@skyux/datetime 5.6.2 → 6.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/esm2020/index.mjs +28 -0
  2. package/esm2020/lib/modules/date-pipe/date-format-utility.mjs +46 -0
  3. package/esm2020/lib/modules/date-pipe/date-pipe.module.mjs +21 -0
  4. package/esm2020/lib/modules/date-pipe/date.pipe.mjs +65 -0
  5. package/esm2020/lib/modules/date-pipe/fuzzy-date.pipe.mjs +47 -0
  6. package/esm2020/lib/modules/date-range-picker/date-range-picker.component.mjs +448 -0
  7. package/esm2020/lib/modules/date-range-picker/date-range-picker.module.mjs +47 -0
  8. package/esm2020/lib/modules/date-range-picker/date-range.service.mjs +97 -0
  9. package/esm2020/lib/modules/date-range-picker/types/date-range-calculation.mjs +2 -0
  10. package/esm2020/lib/modules/date-range-picker/types/date-range-calculator-config.mjs +2 -0
  11. package/esm2020/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.mjs +2 -0
  12. package/esm2020/lib/modules/date-range-picker/types/date-range-calculator-id.mjs +118 -0
  13. package/esm2020/lib/modules/date-range-picker/types/date-range-calculator-type.mjs +23 -0
  14. package/esm2020/lib/modules/date-range-picker/types/date-range-calculator-validate-function.mjs +2 -0
  15. package/esm2020/lib/modules/date-range-picker/types/date-range-calculator.mjs +56 -0
  16. package/esm2020/lib/modules/date-range-picker/types/date-range-default-calculator-config.mjs +2 -0
  17. package/esm2020/lib/modules/date-range-picker/types/date-range-default-calculator-configs.mjs +147 -0
  18. package/esm2020/lib/modules/date-range-picker/types/date-range-relative-value.mjs +249 -0
  19. package/esm2020/lib/modules/date-range-picker/types/date-range.mjs +2 -0
  20. package/esm2020/lib/modules/datepicker/date-formatter.mjs +38 -0
  21. package/esm2020/lib/modules/datepicker/datepicker-adapter.service.mjs +33 -0
  22. package/esm2020/lib/modules/datepicker/datepicker-calendar-change.mjs +2 -0
  23. package/esm2020/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +310 -0
  24. package/esm2020/lib/modules/datepicker/datepicker-calendar.component.mjs +104 -0
  25. package/esm2020/lib/modules/datepicker/datepicker-config.service.mjs +21 -0
  26. package/esm2020/lib/modules/datepicker/datepicker-custom-date.mjs +2 -0
  27. package/esm2020/lib/modules/datepicker/datepicker-date.mjs +2 -0
  28. package/esm2020/lib/modules/datepicker/datepicker-input-fuzzy.directive.mjs +466 -0
  29. package/esm2020/lib/modules/datepicker/datepicker-input.directive.mjs +445 -0
  30. package/esm2020/lib/modules/datepicker/datepicker.component.mjs +328 -0
  31. package/esm2020/lib/modules/datepicker/datepicker.module.mjs +95 -0
  32. package/esm2020/lib/modules/datepicker/datepicker.service.mjs +21 -0
  33. package/esm2020/lib/modules/datepicker/daypicker-button.component.mjs +22 -0
  34. package/esm2020/lib/modules/datepicker/daypicker-cell.component.mjs +126 -0
  35. package/esm2020/lib/modules/datepicker/daypicker.component.mjs +211 -0
  36. package/esm2020/lib/modules/datepicker/fuzzy-date.mjs +2 -0
  37. package/esm2020/lib/modules/datepicker/fuzzy-date.service.mjs +403 -0
  38. package/esm2020/lib/modules/datepicker/monthpicker.component.mjs +80 -0
  39. package/esm2020/lib/modules/datepicker/yearpicker.component.mjs +86 -0
  40. package/esm2020/lib/modules/shared/sky-datetime-resources.module.mjs +131 -0
  41. package/esm2020/lib/modules/timepicker/timepicker.component.mjs +361 -0
  42. package/esm2020/lib/modules/timepicker/timepicker.directive.mjs +228 -0
  43. package/esm2020/lib/modules/timepicker/timepicker.interface.mjs +2 -0
  44. package/esm2020/lib/modules/timepicker/timepicker.module.mjs +46 -0
  45. package/esm2020/skyux-datetime.mjs +5 -0
  46. package/esm2020/testing/datepicker-fixture.mjs +54 -0
  47. package/esm2020/testing/public-api.mjs +3 -0
  48. package/esm2020/testing/skyux-datetime-testing.mjs +5 -0
  49. package/esm2020/testing/timepicker-fixture.mjs +50 -0
  50. package/fesm2015/{skyux-datetime-testing.js → skyux-datetime-testing.mjs} +1 -1
  51. package/fesm2015/skyux-datetime-testing.mjs.map +1 -0
  52. package/fesm2015/skyux-datetime.mjs +4726 -0
  53. package/fesm2015/skyux-datetime.mjs.map +1 -0
  54. package/{esm2015/testing/datepicker-fixture.js → fesm2020/skyux-datetime-testing.mjs} +57 -2
  55. package/fesm2020/skyux-datetime-testing.mjs.map +1 -0
  56. package/{fesm2015/skyux-datetime.js → fesm2020/skyux-datetime.mjs} +111 -159
  57. package/fesm2020/skyux-datetime.mjs.map +1 -0
  58. package/lib/modules/shared/sky-datetime-resources.module.d.ts +1 -1
  59. package/package.json +38 -17
  60. package/testing/package.json +5 -5
  61. package/bundles/skyux-datetime-testing.umd.js +0 -143
  62. package/bundles/skyux-datetime.umd.js +0 -5488
  63. package/esm2015/index.js +0 -28
  64. package/esm2015/index.js.map +0 -1
  65. package/esm2015/lib/modules/date-pipe/date-format-utility.js +0 -46
  66. package/esm2015/lib/modules/date-pipe/date-format-utility.js.map +0 -1
  67. package/esm2015/lib/modules/date-pipe/date-pipe.module.js +0 -21
  68. package/esm2015/lib/modules/date-pipe/date-pipe.module.js.map +0 -1
  69. package/esm2015/lib/modules/date-pipe/date.pipe.js +0 -65
  70. package/esm2015/lib/modules/date-pipe/date.pipe.js.map +0 -1
  71. package/esm2015/lib/modules/date-pipe/fuzzy-date.pipe.js +0 -47
  72. package/esm2015/lib/modules/date-pipe/fuzzy-date.pipe.js.map +0 -1
  73. package/esm2015/lib/modules/date-range-picker/date-range-picker.component.js +0 -453
  74. package/esm2015/lib/modules/date-range-picker/date-range-picker.component.js.map +0 -1
  75. package/esm2015/lib/modules/date-range-picker/date-range-picker.module.js +0 -47
  76. package/esm2015/lib/modules/date-range-picker/date-range-picker.module.js.map +0 -1
  77. package/esm2015/lib/modules/date-range-picker/date-range.service.js +0 -97
  78. package/esm2015/lib/modules/date-range-picker/date-range.service.js.map +0 -1
  79. package/esm2015/lib/modules/date-range-picker/types/date-range-calculation.js +0 -2
  80. package/esm2015/lib/modules/date-range-picker/types/date-range-calculation.js.map +0 -1
  81. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-config.js +0 -2
  82. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-config.js.map +0 -1
  83. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.js +0 -2
  84. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.js.map +0 -1
  85. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-id.js +0 -118
  86. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-id.js.map +0 -1
  87. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-type.js +0 -23
  88. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-type.js.map +0 -1
  89. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-validate-function.js +0 -2
  90. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-validate-function.js.map +0 -1
  91. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator.js +0 -56
  92. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator.js.map +0 -1
  93. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-config.js +0 -2
  94. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-config.js.map +0 -1
  95. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-configs.js +0 -147
  96. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-configs.js.map +0 -1
  97. package/esm2015/lib/modules/date-range-picker/types/date-range-relative-value.js +0 -249
  98. package/esm2015/lib/modules/date-range-picker/types/date-range-relative-value.js.map +0 -1
  99. package/esm2015/lib/modules/date-range-picker/types/date-range.js +0 -2
  100. package/esm2015/lib/modules/date-range-picker/types/date-range.js.map +0 -1
  101. package/esm2015/lib/modules/datepicker/date-formatter.js +0 -38
  102. package/esm2015/lib/modules/datepicker/date-formatter.js.map +0 -1
  103. package/esm2015/lib/modules/datepicker/datepicker-adapter.service.js +0 -33
  104. package/esm2015/lib/modules/datepicker/datepicker-adapter.service.js.map +0 -1
  105. package/esm2015/lib/modules/datepicker/datepicker-calendar-change.js +0 -2
  106. package/esm2015/lib/modules/datepicker/datepicker-calendar-change.js.map +0 -1
  107. package/esm2015/lib/modules/datepicker/datepicker-calendar-inner.component.js +0 -315
  108. package/esm2015/lib/modules/datepicker/datepicker-calendar-inner.component.js.map +0 -1
  109. package/esm2015/lib/modules/datepicker/datepicker-calendar.component.js +0 -109
  110. package/esm2015/lib/modules/datepicker/datepicker-calendar.component.js.map +0 -1
  111. package/esm2015/lib/modules/datepicker/datepicker-config.service.js +0 -21
  112. package/esm2015/lib/modules/datepicker/datepicker-config.service.js.map +0 -1
  113. package/esm2015/lib/modules/datepicker/datepicker-custom-date.js +0 -2
  114. package/esm2015/lib/modules/datepicker/datepicker-custom-date.js.map +0 -1
  115. package/esm2015/lib/modules/datepicker/datepicker-date.js +0 -2
  116. package/esm2015/lib/modules/datepicker/datepicker-date.js.map +0 -1
  117. package/esm2015/lib/modules/datepicker/datepicker-input-fuzzy.directive.js +0 -467
  118. package/esm2015/lib/modules/datepicker/datepicker-input-fuzzy.directive.js.map +0 -1
  119. package/esm2015/lib/modules/datepicker/datepicker-input.directive.js +0 -446
  120. package/esm2015/lib/modules/datepicker/datepicker-input.directive.js.map +0 -1
  121. package/esm2015/lib/modules/datepicker/datepicker.component.js +0 -333
  122. package/esm2015/lib/modules/datepicker/datepicker.component.js.map +0 -1
  123. package/esm2015/lib/modules/datepicker/datepicker.module.js +0 -95
  124. package/esm2015/lib/modules/datepicker/datepicker.module.js.map +0 -1
  125. package/esm2015/lib/modules/datepicker/datepicker.service.js +0 -21
  126. package/esm2015/lib/modules/datepicker/datepicker.service.js.map +0 -1
  127. package/esm2015/lib/modules/datepicker/daypicker-button.component.js +0 -26
  128. package/esm2015/lib/modules/datepicker/daypicker-button.component.js.map +0 -1
  129. package/esm2015/lib/modules/datepicker/daypicker-cell.component.js +0 -130
  130. package/esm2015/lib/modules/datepicker/daypicker-cell.component.js.map +0 -1
  131. package/esm2015/lib/modules/datepicker/daypicker.component.js +0 -215
  132. package/esm2015/lib/modules/datepicker/daypicker.component.js.map +0 -1
  133. package/esm2015/lib/modules/datepicker/fuzzy-date.js +0 -2
  134. package/esm2015/lib/modules/datepicker/fuzzy-date.js.map +0 -1
  135. package/esm2015/lib/modules/datepicker/fuzzy-date.service.js +0 -403
  136. package/esm2015/lib/modules/datepicker/fuzzy-date.service.js.map +0 -1
  137. package/esm2015/lib/modules/datepicker/monthpicker.component.js +0 -84
  138. package/esm2015/lib/modules/datepicker/monthpicker.component.js.map +0 -1
  139. package/esm2015/lib/modules/datepicker/yearpicker.component.js +0 -90
  140. package/esm2015/lib/modules/datepicker/yearpicker.component.js.map +0 -1
  141. package/esm2015/lib/modules/shared/sky-datetime-resources.module.js +0 -131
  142. package/esm2015/lib/modules/shared/sky-datetime-resources.module.js.map +0 -1
  143. package/esm2015/lib/modules/timepicker/timepicker.component.js +0 -367
  144. package/esm2015/lib/modules/timepicker/timepicker.component.js.map +0 -1
  145. package/esm2015/lib/modules/timepicker/timepicker.directive.js +0 -228
  146. package/esm2015/lib/modules/timepicker/timepicker.directive.js.map +0 -1
  147. package/esm2015/lib/modules/timepicker/timepicker.interface.js +0 -2
  148. package/esm2015/lib/modules/timepicker/timepicker.interface.js.map +0 -1
  149. package/esm2015/lib/modules/timepicker/timepicker.module.js +0 -46
  150. package/esm2015/lib/modules/timepicker/timepicker.module.js.map +0 -1
  151. package/esm2015/skyux-datetime.js +0 -5
  152. package/esm2015/skyux-datetime.js.map +0 -1
  153. package/esm2015/testing/datepicker-fixture.js.map +0 -1
  154. package/esm2015/testing/public-api.js +0 -3
  155. package/esm2015/testing/public-api.js.map +0 -1
  156. package/esm2015/testing/skyux-datetime-testing.js +0 -5
  157. package/esm2015/testing/skyux-datetime-testing.js.map +0 -1
  158. package/esm2015/testing/timepicker-fixture.js +0 -50
  159. package/esm2015/testing/timepicker-fixture.js.map +0 -1
  160. package/fesm2015/skyux-datetime-testing.js.map +0 -1
  161. package/fesm2015/skyux-datetime.js.map +0 -1
@@ -0,0 +1,228 @@
1
+ import { ChangeDetectorRef, Directive, ElementRef, HostListener, Input, Renderer2, forwardRef, } from '@angular/core';
2
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
+ import { SkyLibResourcesService } from '@skyux/i18n';
4
+ import moment from 'moment';
5
+ import { SkyTimepickerComponent } from './timepicker.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@skyux/i18n";
8
+ // tslint:disable:no-forward-ref no-use-before-declare
9
+ const SKY_TIMEPICKER_VALUE_ACCESSOR = {
10
+ provide: NG_VALUE_ACCESSOR,
11
+ useExisting: forwardRef(() => SkyTimepickerInputDirective),
12
+ multi: true,
13
+ };
14
+ const SKY_TIMEPICKER_VALIDATOR = {
15
+ provide: NG_VALIDATORS,
16
+ useExisting: forwardRef(() => SkyTimepickerInputDirective),
17
+ multi: true,
18
+ };
19
+ // tslint:enable
20
+ export class SkyTimepickerInputDirective {
21
+ constructor(renderer, elRef, resourcesService, changeDetector) {
22
+ this.renderer = renderer;
23
+ this.elRef = elRef;
24
+ this.resourcesService = resourcesService;
25
+ this.changeDetector = changeDetector;
26
+ this._timeFormat = 'hh';
27
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
28
+ this._onChange = (_) => { };
29
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
30
+ this._onTouched = () => { };
31
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
32
+ this._validatorChange = () => { };
33
+ }
34
+ /**
35
+ * Creates the timepicker input field and picker. Place this attribute on an `input` element,
36
+ * and wrap the input in a `sky-timepicker` component.
37
+ * This attribute must be set to the instance of the `sky-timepicker`.
38
+ * @required
39
+ */
40
+ get skyTimepickerInput() {
41
+ return this._skyTimepickerInput;
42
+ }
43
+ set skyTimepickerInput(value) {
44
+ this._skyTimepickerInput = value;
45
+ this.updateTimepickerInput();
46
+ }
47
+ /**
48
+ * Specifies the 12-hour `hh` or 24-hour `HH` time format for the input.
49
+ * @default "hh"
50
+ */
51
+ set timeFormat(value) {
52
+ this._timeFormat = value;
53
+ }
54
+ get timeFormat() {
55
+ return this._timeFormat || 'hh';
56
+ }
57
+ /**
58
+ * Indicates whether to disable the timepicker.
59
+ * @default false
60
+ */
61
+ get disabled() {
62
+ return this._disabled || false;
63
+ }
64
+ set disabled(value) {
65
+ this._disabled = value;
66
+ this.updateTimepickerInput();
67
+ this.renderer.setProperty(this.elRef.nativeElement, 'disabled', value);
68
+ }
69
+ get modelValue() {
70
+ return this._modelValue;
71
+ }
72
+ set modelValue(value) {
73
+ if (value !== this._modelValue) {
74
+ this._modelValue = value;
75
+ this.updateTimepickerInput();
76
+ this.setInputValue(value);
77
+ this._validatorChange();
78
+ this._onChange(value);
79
+ }
80
+ }
81
+ ngOnInit() {
82
+ this.renderer.addClass(this.elRef.nativeElement, 'sky-form-control');
83
+ this.pickerChangedSubscription =
84
+ this.skyTimepickerInput.selectedTimeChanged.subscribe((newTime) => {
85
+ this.writeValue(newTime);
86
+ this._onTouched();
87
+ });
88
+ /* istanbul ignore else */
89
+ if (!this.elRef.nativeElement.getAttribute('aria-label')) {
90
+ this.resourcesService
91
+ .getString('skyux_timepicker_input_default_label')
92
+ .subscribe((value) => {
93
+ this.renderer.setAttribute(this.elRef.nativeElement, 'aria-label', value);
94
+ });
95
+ }
96
+ }
97
+ ngAfterContentInit() {
98
+ // Watch for the control to be added and initialize the value immediately.
99
+ /* istanbul ignore else */
100
+ if (this.control && this.control.parent) {
101
+ this.control.setValue(this.modelValue, {
102
+ emitEvent: false,
103
+ });
104
+ this.changeDetector.markForCheck();
105
+ }
106
+ }
107
+ ngOnDestroy() {
108
+ this.pickerChangedSubscription.unsubscribe();
109
+ }
110
+ ngOnChanges() {
111
+ this.skyTimepickerInput.setFormat(this.timeFormat);
112
+ this.skyTimepickerInput.returnFormat = this.returnFormat;
113
+ }
114
+ onChange(event) {
115
+ this.writeValue(event.target.value);
116
+ }
117
+ /* istanbul ignore next */
118
+ onBlur() {
119
+ this._onTouched();
120
+ }
121
+ registerOnChange(fn) {
122
+ this._onChange = fn;
123
+ }
124
+ registerOnTouched(fn) {
125
+ this._onTouched = fn;
126
+ }
127
+ registerOnValidatorChange(fn) {
128
+ this._validatorChange = fn;
129
+ }
130
+ setDisabledState(isDisabled) {
131
+ this.disabled = isDisabled;
132
+ }
133
+ writeValue(value) {
134
+ this.modelValue = this.formatter(value);
135
+ }
136
+ validate(control) {
137
+ if (!this.control) {
138
+ this.control = control;
139
+ }
140
+ const value = control.value;
141
+ if (!value) {
142
+ return undefined;
143
+ }
144
+ /* istanbul ignore next */
145
+ if (value.local === 'Invalid date') {
146
+ return {
147
+ skyTime: {
148
+ invalid: control.value,
149
+ },
150
+ };
151
+ }
152
+ return undefined;
153
+ }
154
+ setInputValue(value) {
155
+ let formattedValue = '';
156
+ if (value) {
157
+ const output = moment(value).format(value.customFormat);
158
+ /* istanbul ignore else */
159
+ if (output !== 'Invalid date') {
160
+ formattedValue = output;
161
+ }
162
+ }
163
+ this.renderer.setProperty(this.elRef.nativeElement, 'value', formattedValue);
164
+ }
165
+ formatter(time) {
166
+ if (time && typeof time !== 'string' && 'local' in time) {
167
+ return time;
168
+ }
169
+ if (typeof time === 'string') {
170
+ if (time.length === 0) {
171
+ return '';
172
+ }
173
+ let currentFormat;
174
+ if (this.timeFormat === 'hh') {
175
+ currentFormat = 'h:mm A';
176
+ }
177
+ if (this.timeFormat === 'HH') {
178
+ currentFormat = 'H:mm';
179
+ }
180
+ if (typeof this.returnFormat === 'undefined') {
181
+ this.returnFormat = currentFormat;
182
+ }
183
+ const formatTime = {
184
+ hour: moment(time, currentFormat).hour(),
185
+ minute: moment(time, currentFormat).minute(),
186
+ meridie: moment(time, currentFormat).format('A'),
187
+ timezone: parseInt(moment(time, currentFormat).format('Z'), 10),
188
+ iso8601: moment(time, currentFormat).toDate(),
189
+ local: moment(time, currentFormat).format(currentFormat),
190
+ customFormat: this.returnFormat,
191
+ };
192
+ return formatTime;
193
+ }
194
+ }
195
+ updateTimepickerInput() {
196
+ if (this.skyTimepickerInput) {
197
+ this.skyTimepickerInput.disabled = this.disabled;
198
+ /* istanbul ignore else */
199
+ if (this.skyTimepickerInput.selectedTime !== this.modelValue) {
200
+ this.skyTimepickerInput.selectedTime = this.modelValue;
201
+ }
202
+ }
203
+ }
204
+ }
205
+ SkyTimepickerInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTimepickerInputDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.SkyLibResourcesService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
206
+ SkyTimepickerInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyTimepickerInputDirective, selector: "[skyTimepickerInput]", inputs: { skyTimepickerInput: "skyTimepickerInput", timeFormat: "timeFormat", returnFormat: "returnFormat", disabled: "disabled" }, host: { listeners: { "change": "onChange($event)", "blur": "onBlur()" } }, providers: [SKY_TIMEPICKER_VALUE_ACCESSOR, SKY_TIMEPICKER_VALIDATOR], usesOnChanges: true, ngImport: i0 });
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTimepickerInputDirective, decorators: [{
208
+ type: Directive,
209
+ args: [{
210
+ selector: '[skyTimepickerInput]',
211
+ providers: [SKY_TIMEPICKER_VALUE_ACCESSOR, SKY_TIMEPICKER_VALIDATOR],
212
+ }]
213
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.SkyLibResourcesService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { skyTimepickerInput: [{
214
+ type: Input
215
+ }], timeFormat: [{
216
+ type: Input
217
+ }], returnFormat: [{
218
+ type: Input
219
+ }], disabled: [{
220
+ type: Input
221
+ }], onChange: [{
222
+ type: HostListener,
223
+ args: ['change', ['$event']]
224
+ }], onBlur: [{
225
+ type: HostListener,
226
+ args: ['blur']
227
+ }] } });
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL3RpbWVwaWNrZXIvdGltZXBpY2tlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBSUwsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUVsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUdoRSxzREFBc0Q7QUFDdEQsTUFBTSw2QkFBNkIsR0FBRztJQUNwQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7SUFDMUQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSx3QkFBd0IsR0FBRztJQUMvQixPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLGdCQUFnQjtBQUtoQixNQUFNLE9BQU8sMkJBQTJCO0lBcUZ0QyxZQUNVLFFBQW1CLEVBQ25CLEtBQWlCLEVBQ2pCLGdCQUF3QyxFQUN4QyxjQUFpQztRQUhqQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIscUJB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RTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFFakQsMEJBQTBCO1lBQzFCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUM1RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDeEQ7U0FDRjtJQUNILENBQUM7O3dIQXBQVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiw4UEFGM0IsQ0FBQyw2QkFBNkIsRUFBRSx3QkFBd0IsQ0FBQzsyRkFFekQsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDLDZCQUE2QixFQUFFLHdCQUF3QixDQUFDO2lCQUNyRTs4TEFvQlksa0JBQWtCO3NCQUQ1QixLQUFLO2dCQWVLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBY0MsWUFBWTtzQkFEbEIsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQXFGQyxRQUFRO3NCQURkLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU8zQixNQUFNO3NCQURaLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5VGltZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vdGltZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VGltZXBpY2tlclRpbWVPdXRwdXQgfSBmcm9tICcuL3RpbWVwaWNrZXIuaW50ZXJmYWNlJztcblxuLy8gdHNsaW50OmRpc2FibGU6bm8tZm9yd2FyZC1yZWYgbm8tdXNlLWJlZm9yZS1kZWNsYXJlXG5jb25zdCBTS1lfVElNRVBJQ0tFUl9WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreVRpbWVwaWNrZXJJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuY29uc3QgU0tZX1RJTUVQSUNLRVJfVkFMSURBVE9SID0ge1xuICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lUaW1lcGlja2VySW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbi8vIHRzbGludDplbmFibGVcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lUaW1lcGlja2VySW5wdXRdJyxcbiAgcHJvdmlkZXJzOiBbU0tZX1RJTUVQSUNLRVJfVkFMVUVfQUNDRVNTT1IsIFNLWV9USU1FUElDS0VSX1ZBTElEQVRPUl0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbWVwaWNrZXJJbnB1dERpcmVjdGl2ZVxuICBpbXBsZW1lbnRzXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBWYWxpZGF0b3IsXG4gICAgT25DaGFuZ2VzLFxuICAgIEFmdGVyQ29udGVudEluaXRcbntcbiAgcHVibGljIHBpY2tlckNoYW5nZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfdGltZUZvcm1hdCA9ICdoaCc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHRpbWVwaWNrZXIgaW5wdXQgZmllbGQgYW5kIHBpY2tlci4gUGxhY2UgdGhpcyBhdHRyaWJ1dGUgb24gYW4gYGlucHV0YCBlbGVtZW50LFxuICAgKiBhbmQgd3JhcCB0aGUgaW5wdXQgaW4gYSBgc2t5LXRpbWVwaWNrZXJgIGNvbXBvbmVudC5cbiAgICogVGhpcyBhdHRyaWJ1dGUgbXVzdCBiZSBzZXQgdG8gdGhlIGluc3RhbmNlIG9mIHRoZSBgc2t5LXRpbWVwaWNrZXJgLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgc2t5VGltZXBpY2tlcklucHV0KCk6IFNreVRpbWVwaWNrZXJDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl9za3lUaW1lcGlja2VySW5wdXQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHNreVRpbWVwaWNrZXJJbnB1dCh2YWx1ZTogU2t5VGltZXBpY2tlckNvbXBvbmVudCkge1xuICAgIHRoaXMuX3NreVRpbWVwaWNrZXJJbnB1dCA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlVGltZXBpY2tlcklucHV0KCk7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSAxMi1ob3VyIGBoaGAgb3IgMjQtaG91ciBgSEhgIHRpbWUgZm9ybWF0IGZvciB0aGUgaW5wdXQuXG4gICAqIEBkZWZhdWx0IFwiaGhcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0aW1lRm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90aW1lRm9ybWF0ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRpbWVGb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGltZUZvcm1hdCB8fCAnaGgnO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGN1c3RvbSB0aW1lIGZvcm1hdC4gRm9yIGV4YW1wbGVzLFxuICAgKiBzZWUgdGhlIFttb21lbnQuanNdKGh0dHBzOi8vbW9tZW50anMuY29tL2RvY3MvIy9kaXNwbGF5aW5nL2Zvcm1hdC8pIGRvY3MuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmV0dXJuRm9ybWF0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIHRpbWVwaWNrZXIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuXG4gICAgdGhpcy51cGRhdGVUaW1lcGlja2VySW5wdXQoKTtcblxuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBtb2RlbFZhbHVlKCk6IFNreVRpbWVwaWNrZXJUaW1lT3V0cHV0IHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZWxWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0IG1vZGVsVmFsdWUodmFsdWU6IFNreVRpbWVwaWNrZXJUaW1lT3V0cHV0KSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl9tb2RlbFZhbHVlKSB7XG4gICAgICB0aGlzLl9tb2RlbFZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVRpbWVwaWNrZXJJbnB1dCgpO1xuICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlKHZhbHVlKTtcbiAgICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZSgpO1xuICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuICBwcml2YXRlIF9tb2RlbFZhbHVlOiBTa3lUaW1lcGlja2VyVGltZU91dHB1dDtcbiAgcHJpdmF0ZSBfc2t5VGltZXBpY2tlcklucHV0OiBTa3lUaW1lcGlja2VyQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCAnc2t5LWZvcm0tY29udHJvbCcpO1xuICAgIHRoaXMucGlja2VyQ2hhbmdlZFN1YnNjcmlwdGlvbiA9XG4gICAgICB0aGlzLnNreVRpbWVwaWNrZXJJbnB1dC5zZWxlY3RlZFRpbWVDaGFuZ2VkLnN1YnNjcmliZShcbiAgICAgICAgKG5ld1RpbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShuZXdUaW1lKTtcbiAgICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCF0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VzU2VydmljZVxuICAgICAgICAuZ2V0U3RyaW5nKCdza3l1eF90aW1lcGlja2VyX2lucHV0X2RlZmF1bHRfbGFiZWwnKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnYXJpYS1sYWJlbCcsXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gV2F0Y2ggZm9yIHRoZSBjb250cm9sIHRvIGJlIGFkZGVkIGFuZCBpbml0aWFsaXplIHRoZSB2YWx1ZSBpbW1lZGlhdGVseS5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmNvbnRyb2wgJiYgdGhpcy5jb250cm9sLnBhcmVudCkge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMubW9kZWxWYWx1ZSwge1xuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnBpY2tlckNoYW5nZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnNreVRpbWVwaWNrZXJJbnB1dC5zZXRGb3JtYXQodGhpcy50aW1lRm9ybWF0KTtcbiAgICB0aGlzLnNreVRpbWVwaWNrZXJJbnB1dC5yZXR1cm5Gb3JtYXQgPSB0aGlzLnJldHVybkZvcm1hdDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy53cml0ZVZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgcHVibGljIG9uQmx1cigpIHtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG4gIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5tb2RlbFZhbHVlID0gdGhpcy5mb3JtYXR0ZXIodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHZhbHVlLmxvY2FsID09PSAnSW52YWxpZCBkYXRlJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2t5VGltZToge1xuICAgICAgICAgIGludmFsaWQ6IGNvbnRyb2wudmFsdWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHNldElucHV0VmFsdWUodmFsdWU6IFNreVRpbWVwaWNrZXJUaW1lT3V0cHV0KTogdm9pZCB7XG4gICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gJyc7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBvdXRwdXQgPSBtb21lbnQodmFsdWUpLmZvcm1hdCh2YWx1ZS5jdXN0b21Gb3JtYXQpO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChvdXRwdXQgIT09ICdJbnZhbGlkIGRhdGUnKSB7XG4gICAgICAgIGZvcm1hdHRlZFZhbHVlID0gb3V0cHV0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAndmFsdWUnLFxuICAgICAgZm9ybWF0dGVkVmFsdWVcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXR0ZXIodGltZTogYW55KSB7XG4gICAgaWYgKHRpbWUgJiYgdHlwZW9mIHRpbWUgIT09ICdzdHJpbmcnICYmICdsb2NhbCcgaW4gdGltZSkge1xuICAgICAgcmV0dXJuIHRpbWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGltZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh0aW1lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgICBsZXQgY3VycmVudEZvcm1hdDogc3RyaW5nO1xuICAgICAgaWYgKHRoaXMudGltZUZvcm1hdCA9PT0gJ2hoJykge1xuICAgICAgICBjdXJyZW50Rm9ybWF0ID0gJ2g6bW0gQSc7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50aW1lRm9ybWF0ID09PSAnSEgnKSB7XG4gICAgICAgIGN1cnJlbnRGb3JtYXQgPSAnSDptbSc7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHRoaXMucmV0dXJuRm9ybWF0ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB0aGlzLnJldHVybkZvcm1hdCA9IGN1cnJlbnRGb3JtYXQ7XG4gICAgICB9XG4gICAgICBjb25zdCBmb3JtYXRUaW1lOiBTa3lUaW1lcGlja2VyVGltZU91dHB1dCA9IHtcbiAgICAgICAgaG91cjogbW9tZW50KHRpbWUsIGN1cnJlbnRGb3JtYXQpLmhvdXIoKSxcbiAgICAgICAgbWludXRlOiBtb21lbnQodGltZSwgY3VycmVudEZvcm1hdCkubWludXRlKCksXG4gICAgICAgIG1lcmlkaWU6IG1vbWVudCh0aW1lLCBjdXJyZW50Rm9ybWF0KS5mb3JtYXQoJ0EnKSxcbiAgICAgICAgdGltZXpvbmU6IHBhcnNlSW50KG1vbWVudCh0aW1lLCBjdXJyZW50Rm9ybWF0KS5mb3JtYXQoJ1onKSwgMTApLFxuICAgICAgICBpc284NjAxOiBtb21lbnQodGltZSwgY3VycmVudEZvcm1hdCkudG9EYXRlKCksXG4gICAgICAgIGxvY2FsOiBtb21lbnQodGltZSwgY3VycmVudEZvcm1hdCkuZm9ybWF0KGN1cnJlbnRGb3JtYXQpLFxuICAgICAgICBjdXN0b21Gb3JtYXQ6IHRoaXMucmV0dXJuRm9ybWF0LFxuICAgICAgfTtcbiAgICAgIHJldHVybiBmb3JtYXRUaW1lO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGltZXBpY2tlcklucHV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNreVRpbWVwaWNrZXJJbnB1dCkge1xuICAgICAgdGhpcy5za3lUaW1lcGlja2VySW5wdXQuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHRoaXMuc2t5VGltZXBpY2tlcklucHV0LnNlbGVjdGVkVGltZSAhPT0gdGhpcy5tb2RlbFZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2t5VGltZXBpY2tlcklucHV0LnNlbGVjdGVkVGltZSA9IHRoaXMubW9kZWxWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByaXZhdGUgX29uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gKCkgPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBfdmFsaWRhdG9yQ2hhbmdlID0gKCkgPT4ge307XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL3RpbWVwaWNrZXIvdGltZXBpY2tlci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2t5VGltZXBpY2tlclRpbWVPdXRwdXQge1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBob3VyLlxuICAgKi9cbiAgaG91cjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1pbnV0ZS5cbiAgICovXG4gIG1pbnV0ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1lcmlkaWFuIChgQU1gIG9yIGBQTWApLlxuICAgKi9cbiAgbWVyaWRpZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHRpbWUgem9uZS5cbiAgICovXG4gIHRpbWV6b25lOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZGF0ZSBpbiBbaXNvODYwMSBmb3JtYXRdKGh0dHBzOi8vd3d3Lmlzby5vcmcvaXNvLTg2MDEtZGF0ZS1hbmQtdGltZS1mb3JtYXQuaHRtbCkuXG4gICAqL1xuICBpc284NjAxOiBEYXRlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGRhdGUgaW4gdGhlIGN1cnJlbnQgbG9jYWwgdGltZSBmb3JtYXQuXG4gICAqL1xuICBsb2NhbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHRpbWUgZm9ybWF0IHN0cmluZy5cbiAgICovXG4gIGN1c3RvbUZvcm1hdDogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,46 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { SkyAffixModule, SkyOverlayModule } from '@skyux/core';
4
+ import { SkyI18nModule } from '@skyux/i18n';
5
+ import { SkyIconModule } from '@skyux/indicators';
6
+ import { SkyThemeModule } from '@skyux/theme';
7
+ import { SkyDatetimeResourcesModule } from '../shared/sky-datetime-resources.module';
8
+ import { SkyTimepickerComponent } from './timepicker.component';
9
+ import { SkyTimepickerInputDirective } from './timepicker.directive';
10
+ import * as i0 from "@angular/core";
11
+ export class SkyTimepickerModule {
12
+ }
13
+ SkyTimepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ SkyTimepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTimepickerModule, declarations: [SkyTimepickerInputDirective, SkyTimepickerComponent], imports: [CommonModule,
15
+ SkyI18nModule,
16
+ SkyIconModule,
17
+ SkyDatetimeResourcesModule,
18
+ SkyAffixModule,
19
+ SkyOverlayModule,
20
+ SkyThemeModule], exports: [SkyTimepickerInputDirective, SkyTimepickerComponent] });
21
+ SkyTimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTimepickerModule, imports: [[
22
+ CommonModule,
23
+ SkyI18nModule,
24
+ SkyIconModule,
25
+ SkyDatetimeResourcesModule,
26
+ SkyAffixModule,
27
+ SkyOverlayModule,
28
+ SkyThemeModule,
29
+ ]] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyTimepickerModule, decorators: [{
31
+ type: NgModule,
32
+ args: [{
33
+ declarations: [SkyTimepickerInputDirective, SkyTimepickerComponent],
34
+ imports: [
35
+ CommonModule,
36
+ SkyI18nModule,
37
+ SkyIconModule,
38
+ SkyDatetimeResourcesModule,
39
+ SkyAffixModule,
40
+ SkyOverlayModule,
41
+ SkyThemeModule,
42
+ ],
43
+ exports: [SkyTimepickerInputDirective, SkyTimepickerComponent],
44
+ }]
45
+ }] });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL3RpbWVwaWNrZXIvdGltZXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWVyRSxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsaUJBWmYsMkJBQTJCLEVBQUUsc0JBQXNCLGFBRWhFLFlBQVk7UUFDWixhQUFhO1FBQ2IsYUFBYTtRQUNiLDBCQUEwQjtRQUMxQixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLGNBQWMsYUFFTiwyQkFBMkIsRUFBRSxzQkFBc0I7aUhBRWxELG1CQUFtQixZQVhyQjtZQUNQLFlBQVk7WUFDWixhQUFhO1lBQ2IsYUFBYTtZQUNiLDBCQUEwQjtZQUMxQixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGNBQWM7U0FDZjsyRkFHVSxtQkFBbUI7a0JBYi9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLEVBQUUsc0JBQXNCLENBQUM7b0JBQ25FLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYiwwQkFBMEI7d0JBQzFCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRSxDQUFDLDJCQUEyQixFQUFFLHNCQUFzQixDQUFDO2lCQUMvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5QWZmaXhNb2R1bGUsIFNreU92ZXJsYXlNb2R1bGUgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU2t5RGF0ZXRpbWVSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWRhdGV0aW1lLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lUaW1lcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUaW1lcGlja2VySW5wdXREaXJlY3RpdmUgfSBmcm9tICcuL3RpbWVwaWNrZXIuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5VGltZXBpY2tlcklucHV0RGlyZWN0aXZlLCBTa3lUaW1lcGlja2VyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lJMThuTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5RGF0ZXRpbWVSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5QWZmaXhNb2R1bGUsXG4gICAgU2t5T3ZlcmxheU1vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1NreVRpbWVwaWNrZXJJbnB1dERpcmVjdGl2ZSwgU2t5VGltZXBpY2tlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRpbWVwaWNrZXJNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtZGF0ZXRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL3NreXV4LWRhdGV0aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,54 @@
1
+ import { By } from '@angular/platform-browser';
2
+ import { SkyAppTestUtility } from '@skyux-sdk/testing';
3
+ /**
4
+ * Allows interaction with a SKY UX datepicker component.
5
+ */
6
+ export class SkyDatepickerFixture {
7
+ constructor(fixture, skyTestId) {
8
+ this.debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-datepicker');
9
+ }
10
+ /**
11
+ * The datepicker's currently selected date.
12
+ */
13
+ get date() {
14
+ return this.getDatepickerInputEl().nativeElement.value;
15
+ }
16
+ /**
17
+ * Flag indicating if datepicker input is disabled.
18
+ */
19
+ get disabled() {
20
+ return this.getDatepickerInputEl().nativeElement.disabled;
21
+ }
22
+ /**
23
+ * The datepicker's calendar element.
24
+ */
25
+ get calendarEl() {
26
+ const button = this.debugEl.query(By.css('.sky-datepicker .sky-input-group-datepicker-btn')).nativeElement;
27
+ const calendarId = button.getAttribute('aria-controls');
28
+ if (!calendarId) {
29
+ /* tslint:disable-next-line:no-null-keyword */
30
+ return null;
31
+ }
32
+ return document.getElementById(calendarId);
33
+ }
34
+ /**
35
+ * Click the calendar button to open or close calendar.
36
+ */
37
+ clickDatepickerCalenderButtonEl() {
38
+ this.debugEl
39
+ .query(By.css('.sky-datepicker .sky-input-group-datepicker-btn'))
40
+ .nativeElement.click();
41
+ }
42
+ clickDayEl(dayIndex) {
43
+ const dayEls = this.calendarEl.querySelectorAll('.sky-datepicker-btn-date');
44
+ const dayEl = dayEls[dayIndex];
45
+ if (!dayEl) {
46
+ throw new Error(`No day exists at index ${dayIndex}.`);
47
+ }
48
+ dayEl.click();
49
+ }
50
+ getDatepickerInputEl() {
51
+ return this.debugEl.query(By.css('.sky-datepicker input'));
52
+ }
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3Rlc3Rpbmcvc3JjL2RhdGVwaWNrZXItZml4dHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQVksT0FBOEIsRUFBRSxTQUFpQjtRQUMzRCxJQUFJLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUN0RCxPQUFPLEVBQ1AsU0FBUyxFQUNULGdCQUFnQixDQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7SUFDNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUMvQixFQUFFLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQzFELENBQUMsYUFBYSxDQUFDO1FBRWhCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLDhDQUE4QztZQUM5QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLCtCQUErQjtRQUNwQyxJQUFJLENBQUMsT0FBTzthQUNULEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7YUFDaEUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxVQUFVLENBQUMsUUFBZ0I7UUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRTVFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsUUFBUSxHQUFHLENBQUMsQ0FBQztTQUN4RDtRQUVELEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVidWdFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRGaXh0dXJlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IEJ5IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTa3lBcHBUZXN0VXRpbGl0eSB9IGZyb20gJ0Bza3l1eC1zZGsvdGVzdGluZyc7XG5cbi8qKlxuICogQWxsb3dzIGludGVyYWN0aW9uIHdpdGggYSBTS1kgVVggZGF0ZXBpY2tlciBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lEYXRlcGlja2VyRml4dHVyZSB7XG4gIHByaXZhdGUgZGVidWdFbDogRGVidWdFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8YW55Piwgc2t5VGVzdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRlYnVnRWwgPSBTa3lBcHBUZXN0VXRpbGl0eS5nZXREZWJ1Z0VsZW1lbnRCeVRlc3RJZChcbiAgICAgIGZpeHR1cmUsXG4gICAgICBza3lUZXN0SWQsXG4gICAgICAnc2t5LWRhdGVwaWNrZXInXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZXBpY2tlcidzIGN1cnJlbnRseSBzZWxlY3RlZCBkYXRlLlxuICAgKi9cbiAgcHVibGljIGdldCBkYXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZXBpY2tlcklucHV0RWwoKS5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyBpZiBkYXRlcGlja2VyIGlucHV0IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRlcGlja2VySW5wdXRFbCgpLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRhdGVwaWNrZXIncyBjYWxlbmRhciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGdldCBjYWxlbmRhckVsKCk6IGFueSB7XG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5kZWJ1Z0VsLnF1ZXJ5KFxuICAgICAgQnkuY3NzKCcuc2t5LWRhdGVwaWNrZXIgLnNreS1pbnB1dC1ncm91cC1kYXRlcGlja2VyLWJ0bicpXG4gICAgKS5uYXRpdmVFbGVtZW50O1xuXG4gICAgY29uc3QgY2FsZW5kYXJJZCA9IGJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnKTtcbiAgICBpZiAoIWNhbGVuZGFySWQpIHtcbiAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1udWxsLWtleXdvcmQgKi9cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjYWxlbmRhcklkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGljayB0aGUgY2FsZW5kYXIgYnV0dG9uIHRvIG9wZW4gb3IgY2xvc2UgY2FsZW5kYXIuXG4gICAqL1xuICBwdWJsaWMgY2xpY2tEYXRlcGlja2VyQ2FsZW5kZXJCdXR0b25FbCgpOiB2b2lkIHtcbiAgICB0aGlzLmRlYnVnRWxcbiAgICAgIC5xdWVyeShCeS5jc3MoJy5za3ktZGF0ZXBpY2tlciAuc2t5LWlucHV0LWdyb3VwLWRhdGVwaWNrZXItYnRuJykpXG4gICAgICAubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgcHVibGljIGNsaWNrRGF5RWwoZGF5SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGRheUVscyA9IHRoaXMuY2FsZW5kYXJFbC5xdWVyeVNlbGVjdG9yQWxsKCcuc2t5LWRhdGVwaWNrZXItYnRuLWRhdGUnKTtcblxuICAgIGNvbnN0IGRheUVsID0gZGF5RWxzW2RheUluZGV4XTtcblxuICAgIGlmICghZGF5RWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gZGF5IGV4aXN0cyBhdCBpbmRleCAke2RheUluZGV4fS5gKTtcbiAgICB9XG5cbiAgICBkYXlFbC5jbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXRlcGlja2VySW5wdXRFbCgpOiBEZWJ1Z0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmRlYnVnRWwucXVlcnkoQnkuY3NzKCcuc2t5LWRhdGVwaWNrZXIgaW5wdXQnKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './datepicker-fixture';
2
+ export * from './timepicker-fixture';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZXBpY2tlci1maXh0dXJlJztcbmV4cG9ydCAqIGZyb20gJy4vdGltZXBpY2tlci1maXh0dXJlJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtZGF0ZXRpbWUtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS90ZXN0aW5nL3NyYy9za3l1eC1kYXRldGltZS10ZXN0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { By } from '@angular/platform-browser';
2
+ import { SkyAppTestUtility } from '@skyux-sdk/testing';
3
+ /**
4
+ * Allows interaction with a SKY UX timepicker component.
5
+ */
6
+ export class SkyTimepickerFixture {
7
+ constructor(fixture, skyTestId) {
8
+ this.fixture = fixture;
9
+ this.skyTestId = skyTestId;
10
+ this.debugEl = SkyAppTestUtility.getDebugElementByTestId(this.fixture, this.skyTestId, 'sky-timepicker');
11
+ }
12
+ /**
13
+ * The timepicker's currently selected time.
14
+ */
15
+ get value() {
16
+ return this.getTimepickerInputEl().nativeElement.value;
17
+ }
18
+ /**
19
+ * Set the timepicker's selected time.
20
+ */
21
+ set value(value) {
22
+ const timepickerInputEl = this.getTimepickerInputEl().nativeElement;
23
+ timepickerInputEl.value = value;
24
+ this.fixture.detectChanges();
25
+ SkyAppTestUtility.fireDomEvent(timepickerInputEl, 'change');
26
+ this.fixture.detectChanges();
27
+ }
28
+ /**
29
+ * Flag indicating if timepicker input is disabled.
30
+ */
31
+ get isDisabled() {
32
+ return this.getTimepickerInputEl().nativeElement.disabled;
33
+ }
34
+ /**
35
+ * Set the timepicker's disabled value
36
+ */
37
+ set isDisabled(value) {
38
+ this.getTimepickerInputEl().nativeElement.disabled = value;
39
+ }
40
+ /**
41
+ * Flag indicating if timepicker input is valid.
42
+ */
43
+ get isValid() {
44
+ return !this.getTimepickerInputEl().nativeElement.classList.contains('ng-invalid');
45
+ }
46
+ getTimepickerInputEl() {
47
+ return this.debugEl.query(By.css('.sky-timepicker input'));
48
+ }
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3Rlc3Rpbmcvc3JjL3RpbWVwaWNrZXItZml4dHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQ1UsT0FBOEIsRUFDOUIsU0FBaUI7UUFEakIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUV6QixJQUFJLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUN0RCxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxTQUFTLEVBQ2QsZ0JBQWdCLENBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLLENBQUMsS0FBYTtRQUM1QixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUNwRSxpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFN0IsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVUsQ0FBQyxLQUFjO1FBQ2xDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQ2xFLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlYnVnRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU2t5QXBwVGVzdFV0aWxpdHkgfSBmcm9tICdAc2t5dXgtc2RrL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEFsbG93cyBpbnRlcmFjdGlvbiB3aXRoIGEgU0tZIFVYIHRpbWVwaWNrZXIgY29tcG9uZW50LlxuICovXG5leHBvcnQgY2xhc3MgU2t5VGltZXBpY2tlckZpeHR1cmUge1xuICBwcml2YXRlIGRlYnVnRWw6IERlYnVnRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8YW55PixcbiAgICBwcml2YXRlIHNreVRlc3RJZDogc3RyaW5nXG4gICkge1xuICAgIHRoaXMuZGVidWdFbCA9IFNreUFwcFRlc3RVdGlsaXR5LmdldERlYnVnRWxlbWVudEJ5VGVzdElkKFxuICAgICAgdGhpcy5maXh0dXJlLFxuICAgICAgdGhpcy5za3lUZXN0SWQsXG4gICAgICAnc2t5LXRpbWVwaWNrZXInXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGltZXBpY2tlcidzIGN1cnJlbnRseSBzZWxlY3RlZCB0aW1lLlxuICAgKi9cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFRpbWVwaWNrZXJJbnB1dEVsKCkubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRpbWVwaWNrZXIncyBzZWxlY3RlZCB0aW1lLlxuICAgKi9cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdGltZXBpY2tlcklucHV0RWwgPSB0aGlzLmdldFRpbWVwaWNrZXJJbnB1dEVsKCkubmF0aXZlRWxlbWVudDtcbiAgICB0aW1lcGlja2VySW5wdXRFbC52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBTa3lBcHBUZXN0VXRpbGl0eS5maXJlRG9tRXZlbnQodGltZXBpY2tlcklucHV0RWwsICdjaGFuZ2UnKTtcbiAgICB0aGlzLmZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyBpZiB0aW1lcGlja2VyIGlucHV0IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFRpbWVwaWNrZXJJbnB1dEVsKCkubmF0aXZlRWxlbWVudC5kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRpbWVwaWNrZXIncyBkaXNhYmxlZCB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHNldCBpc0Rpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5nZXRUaW1lcGlja2VySW5wdXRFbCgpLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgaWYgdGltZXBpY2tlciBpbnB1dCBpcyB2YWxpZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZ2V0VGltZXBpY2tlcklucHV0RWwoKS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcbiAgICAgICduZy1pbnZhbGlkJ1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFRpbWVwaWNrZXJJbnB1dEVsKCk6IERlYnVnRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktdGltZXBpY2tlciBpbnB1dCcpKTtcbiAgfVxufVxuIl19
@@ -106,4 +106,4 @@ class SkyTimepickerFixture {
106
106
  */
107
107
 
108
108
  export { SkyDatepickerFixture, SkyTimepickerFixture };
109
- //# sourceMappingURL=skyux-datetime-testing.js.map
109
+ //# sourceMappingURL=skyux-datetime-testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyux-datetime-testing.mjs","sources":["../../../../../libs/components/datetime/testing/src/datepicker-fixture.ts","../../../../../libs/components/datetime/testing/src/timepicker-fixture.ts","../../../../../libs/components/datetime/testing/src/skyux-datetime-testing.ts"],"sourcesContent":["import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX datepicker component.\n */\nexport class SkyDatepickerFixture {\n private debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-datepicker'\n );\n }\n\n /**\n * The datepicker's currently selected date.\n */\n public get date(): string {\n return this.getDatepickerInputEl().nativeElement.value;\n }\n\n /**\n * Flag indicating if datepicker input is disabled.\n */\n public get disabled(): boolean {\n return this.getDatepickerInputEl().nativeElement.disabled;\n }\n\n /**\n * The datepicker's calendar element.\n */\n public get calendarEl(): any {\n const button = this.debugEl.query(\n By.css('.sky-datepicker .sky-input-group-datepicker-btn')\n ).nativeElement;\n\n const calendarId = button.getAttribute('aria-controls');\n if (!calendarId) {\n /* tslint:disable-next-line:no-null-keyword */\n return null;\n }\n\n return document.getElementById(calendarId);\n }\n\n /**\n * Click the calendar button to open or close calendar.\n */\n public clickDatepickerCalenderButtonEl(): void {\n this.debugEl\n .query(By.css('.sky-datepicker .sky-input-group-datepicker-btn'))\n .nativeElement.click();\n }\n\n public clickDayEl(dayIndex: number): void {\n const dayEls = this.calendarEl.querySelectorAll('.sky-datepicker-btn-date');\n\n const dayEl = dayEls[dayIndex];\n\n if (!dayEl) {\n throw new Error(`No day exists at index ${dayIndex}.`);\n }\n\n dayEl.click();\n }\n\n private getDatepickerInputEl(): DebugElement {\n return this.debugEl.query(By.css('.sky-datepicker input'));\n }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX timepicker component.\n */\nexport class SkyTimepickerFixture {\n private debugEl: DebugElement;\n\n constructor(\n private fixture: ComponentFixture<any>,\n private skyTestId: string\n ) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n this.fixture,\n this.skyTestId,\n 'sky-timepicker'\n );\n }\n\n /**\n * The timepicker's currently selected time.\n */\n public get value(): string {\n return this.getTimepickerInputEl().nativeElement.value;\n }\n\n /**\n * Set the timepicker's selected time.\n */\n public set value(value: string) {\n const timepickerInputEl = this.getTimepickerInputEl().nativeElement;\n timepickerInputEl.value = value;\n this.fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(timepickerInputEl, 'change');\n this.fixture.detectChanges();\n }\n\n /**\n * Flag indicating if timepicker input is disabled.\n */\n public get isDisabled(): boolean {\n return this.getTimepickerInputEl().nativeElement.disabled;\n }\n\n /**\n * Set the timepicker's disabled value\n */\n public set isDisabled(value: boolean) {\n this.getTimepickerInputEl().nativeElement.disabled = value;\n }\n\n /**\n * Flag indicating if timepicker input is valid.\n */\n public get isValid(): boolean {\n return !this.getTimepickerInputEl().nativeElement.classList.contains(\n 'ng-invalid'\n );\n }\n\n private getTimepickerInputEl(): DebugElement {\n return this.debugEl.query(By.css('.sky-timepicker input'));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}