@skyux/datetime 11.22.0 → 11.23.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 (48) hide show
  1. package/documentation.json +2248 -2178
  2. package/esm2022/lib/modules/date-range-picker/date-range-picker.component.mjs +20 -5
  3. package/esm2022/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +2 -2
  4. package/esm2022/lib/modules/datepicker/datepicker-host.service.mjs +61 -0
  5. package/esm2022/lib/modules/datepicker/datepicker-input-fuzzy.directive.mjs +27 -10
  6. package/esm2022/lib/modules/datepicker/datepicker-input.directive.mjs +27 -15
  7. package/esm2022/lib/modules/datepicker/datepicker.component.mjs +16 -3
  8. package/esm2022/lib/modules/datepicker/daypicker-button.component.mjs +2 -2
  9. package/esm2022/lib/modules/timepicker/timepicker.component.mjs +6 -3
  10. package/esm2022/testing/legacy/datepicker-fixture.mjs +56 -0
  11. package/esm2022/testing/legacy/timepicker-fixture.mjs +52 -0
  12. package/esm2022/testing/modules/date-range-picker/date-range-picker-harness.filters.mjs +2 -0
  13. package/esm2022/testing/modules/date-range-picker/date-range-picker-harness.mjs +143 -0
  14. package/esm2022/testing/modules/datepicker/datepicker-calendar-harness.filters.mjs +2 -0
  15. package/esm2022/testing/modules/datepicker/datepicker-calendar-harness.mjs +88 -0
  16. package/esm2022/testing/modules/datepicker/datepicker-harness.filters.mjs +2 -0
  17. package/esm2022/testing/modules/datepicker/datepicker-harness.mjs +59 -0
  18. package/esm2022/testing/modules/datepicker/datepicker-input-harness.mjs +29 -0
  19. package/esm2022/testing/public-api.mjs +6 -6
  20. package/fesm2022/skyux-datetime-testing.mjs +157 -146
  21. package/fesm2022/skyux-datetime-testing.mjs.map +1 -1
  22. package/fesm2022/skyux-datetime.mjs +145 -33
  23. package/fesm2022/skyux-datetime.mjs.map +1 -1
  24. package/lib/modules/datepicker/datepicker-host.service.d.ts +21 -0
  25. package/lib/modules/datepicker/datepicker-input-fuzzy.directive.d.ts +1 -0
  26. package/lib/modules/datepicker/datepicker-input.directive.d.ts +1 -1
  27. package/lib/modules/datepicker/datepicker.component.d.ts +8 -2
  28. package/lib/modules/timepicker/timepicker.component.d.ts +1 -0
  29. package/package.json +9 -9
  30. package/testing/{datepicker-fixture.d.ts → legacy/datepicker-fixture.d.ts} +1 -0
  31. package/testing/{datepicker → modules/datepicker}/datepicker-harness.d.ts +1 -1
  32. package/testing/{datepicker/datepicker-harness-input.d.ts → modules/datepicker/datepicker-input-harness.d.ts} +4 -0
  33. package/testing/public-api.d.ts +8 -8
  34. package/esm2022/testing/date-range-picker/date-range-picker-harness.filters.mjs +0 -2
  35. package/esm2022/testing/date-range-picker/date-range-picker-harness.mjs +0 -143
  36. package/esm2022/testing/datepicker/datepicker-calendar-harness.filters.mjs +0 -2
  37. package/esm2022/testing/datepicker/datepicker-calendar-harness.mjs +0 -88
  38. package/esm2022/testing/datepicker/datepicker-harness-input.mjs +0 -19
  39. package/esm2022/testing/datepicker/datepicker-harness.filters.mjs +0 -2
  40. package/esm2022/testing/datepicker/datepicker-harness.mjs +0 -59
  41. package/esm2022/testing/datepicker-fixture.mjs +0 -55
  42. package/esm2022/testing/timepicker-fixture.mjs +0 -52
  43. /package/testing/{timepicker-fixture.d.ts → legacy/timepicker-fixture.d.ts} +0 -0
  44. /package/testing/{date-range-picker → modules/date-range-picker}/date-range-picker-harness.d.ts +0 -0
  45. /package/testing/{date-range-picker → modules/date-range-picker}/date-range-picker-harness.filters.d.ts +0 -0
  46. /package/testing/{datepicker → modules/datepicker}/datepicker-calendar-harness.d.ts +0 -0
  47. /package/testing/{datepicker → modules/datepicker}/datepicker-calendar-harness.filters.d.ts +0 -0
  48. /package/testing/{datepicker → modules/datepicker}/datepicker-harness.filters.d.ts +0 -0
@@ -0,0 +1,143 @@
1
+ import { SkyComponentHarness } from '@skyux/core/testing';
2
+ import { SkyInputBoxHarness } from '@skyux/forms/testing';
3
+ import { SkyDatepickerHarness } from '../datepicker/datepicker-harness';
4
+ /**
5
+ * Harness for interacting with date range picker components in tests.
6
+ */
7
+ export class SkyDateRangePickerHarness extends SkyComponentHarness {
8
+ /**
9
+ * @internal
10
+ */
11
+ static { this.hostSelector = 'sky-date-range-picker'; }
12
+ #getStartDateInputBoxHarness = this.locatorFor(SkyInputBoxHarness.with({
13
+ ancestor: '.sky-date-range-picker-start-date',
14
+ }));
15
+ #getEndDateInputBoxHarness = this.locatorFor(SkyInputBoxHarness.with({
16
+ ancestor: '.sky-date-range-picker-end-date',
17
+ }));
18
+ #getCalculatorIdInputBoxHarness = this.locatorFor(SkyInputBoxHarness.with({
19
+ ancestor: '.sky-date-range-picker-select-calculator',
20
+ }));
21
+ /**
22
+ * Gets a `HarnessPredicate` that can be used to search for a
23
+ * `SkyDateRangePickerHarness` that meets certain criteria.
24
+ */
25
+ static with(filters) {
26
+ return SkyDateRangePickerHarness.getDataSkyIdPredicate(filters);
27
+ }
28
+ /**
29
+ * Clicks the help inline button.
30
+ */
31
+ async clickHelpInline() {
32
+ await (await this.#getCalculatorIdInputBoxHarness()).clickHelpInline();
33
+ }
34
+ /**
35
+ * Gets the help popover content.
36
+ */
37
+ async getHelpPopoverContent() {
38
+ return (await (await this.#getCalculatorIdInputBoxHarness()).getHelpPopoverContent());
39
+ }
40
+ /**
41
+ * Gets the help inline popover title.
42
+ */
43
+ async getHelpPopoverTitle() {
44
+ return await (await this.#getCalculatorIdInputBoxHarness()).getHelpPopoverTitle();
45
+ }
46
+ /**
47
+ * Gets the hint text.
48
+ */
49
+ async getHintText() {
50
+ return await (await this.#getCalculatorIdInputBoxHarness()).getHintText();
51
+ }
52
+ /**
53
+ * Gets the label text.
54
+ */
55
+ async getLabelText() {
56
+ return await (await this.#getCalculatorIdInputBoxHarness()).getLabelText();
57
+ }
58
+ /**
59
+ * Whether date range picker end date before start date error is thrown.
60
+ */
61
+ async hasEndDateBeforeStartDateError() {
62
+ return await (await this.#getCalculatorIdInputBoxHarness()).hasCustomFormError('endDateBeforeStartDate');
63
+ }
64
+ /**
65
+ * Whether end date input has required error.
66
+ */
67
+ async hasEndDateRequiredError() {
68
+ return await (await this.#getEndDateInputBoxHarness()).hasRequiredError();
69
+ }
70
+ /**
71
+ * Whether a custom error has fired.
72
+ * @params errorName `errorName` property of the custom `sky-form-error`.
73
+ */
74
+ async hasError(errorName) {
75
+ return await (await this.#getCalculatorIdInputBoxHarness()).hasCustomFormError(errorName);
76
+ }
77
+ /**
78
+ * Whether start date input has required error.
79
+ */
80
+ async hasStartDateRequiredError() {
81
+ return await (await this.#getStartDateInputBoxHarness()).hasRequiredError();
82
+ }
83
+ /**
84
+ * Whether the date range picker component is disabled.
85
+ */
86
+ async isDisabled() {
87
+ return await (await this.#getCalculatorIdInputBoxHarness()).getDisabled();
88
+ }
89
+ /**
90
+ * Whether end date datepicker is visible.
91
+ */
92
+ async isEndDateVisible() {
93
+ return !(await (await this.locatorFor('.sky-date-range-picker-end-date')()).getProperty('hidden'));
94
+ }
95
+ /**
96
+ * Whether the date range picker has stacked enabled.
97
+ */
98
+ async isStacked() {
99
+ return await (await this.host()).hasClass('sky-form-field-stacked');
100
+ }
101
+ /**
102
+ * Whether start date datepicker is visible.
103
+ */
104
+ async isStartDateVisible() {
105
+ return !(await (await this.locatorFor('.sky-date-range-picker-start-date')()).getProperty('hidden'));
106
+ }
107
+ /**
108
+ * Selects the specified calculator.
109
+ */
110
+ async selectCalculator(calculatorId) {
111
+ const select = await this.locatorFor('select[FormControlName="calculatorId"')();
112
+ return await select.selectOptions(calculatorId);
113
+ }
114
+ /**
115
+ * Sets the end date.
116
+ * @param newDate date input as a formatted string.
117
+ */
118
+ async setEndDateValue(newDate) {
119
+ if (!(await this.isEndDateVisible())) {
120
+ throw new Error('Unable to set end date. End datepicker is not visible.');
121
+ }
122
+ const input = await (await this.#getEndDatepicker()).getControl();
123
+ await input.setValue(newDate);
124
+ }
125
+ /**
126
+ * Sets the start date.
127
+ * @param newDate date input as a formatted string.
128
+ */
129
+ async setStartDateValue(newDate) {
130
+ if (!(await this.isEndDateVisible())) {
131
+ throw new Error('Unable to set start date. Start datepicker is not visible.');
132
+ }
133
+ const input = await (await this.#getStartDatepicker()).getControl();
134
+ await input.setValue(newDate);
135
+ }
136
+ async #getEndDatepicker() {
137
+ return await (await this.#getEndDateInputBoxHarness()).queryHarness(SkyDatepickerHarness);
138
+ }
139
+ async #getStartDatepicker() {
140
+ return await (await this.#getStartDateInputBoxHarness()).queryHarness(SkyDatepickerHarness);
141
+ }
142
+ }
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS90ZXN0aW5nL3NyYy9tb2R1bGVzL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJeEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsbUJBQW1CO0lBQ2hFOztPQUVHO2FBQ1csaUJBQVksR0FBRyx1QkFBdUIsQ0FBQztJQUVyRCw0QkFBNEIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUM1QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDdEIsUUFBUSxFQUFFLG1DQUFtQztLQUM5QyxDQUFDLENBQ0gsQ0FBQztJQUNGLDBCQUEwQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQzFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUN0QixRQUFRLEVBQUUsaUNBQWlDO0tBQzVDLENBQUMsQ0FDSCxDQUFDO0lBQ0YsK0JBQStCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FDL0Msa0JBQWtCLENBQUMsSUFBSSxDQUFDO1FBQ3RCLFFBQVEsRUFBRSwwQ0FBMEM7S0FDckQsQ0FBQyxDQUNILENBQUM7SUFFRjs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUFrQztRQUVsQyxPQUFPLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxlQUFlO1FBQzFCLE1BQU0s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R0c7SUFDSSxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQWU7UUFDMUMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xFLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQWU7UUFDNUMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQsQ0FDN0QsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BFLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQjtRQUNyQixPQUFPLE1BQU0sQ0FDWCxNQUFNLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUN4QyxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CO1FBQ3ZCLE9BQU8sTUFBTSxDQUNYLE1BQU0sSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQzFDLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQgfSBmcm9tICdAc2t5dXgvZGF0ZXRpbWUnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2Zvcm1zL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lEYXRlcGlja2VySGFybmVzcyB9IGZyb20gJy4uL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1oYXJuZXNzJztcblxuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlUGlja2VyRmlsdGVycyB9IGZyb20gJy4vZGF0ZS1yYW5nZS1waWNrZXItaGFybmVzcy5maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGRhdGUgcmFuZ2UgcGlja2VyIGNvbXBvbmVudHMgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lEYXRlUmFuZ2VQaWNrZXJIYXJuZXNzIGV4dGVuZHMgU2t5Q29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1kYXRlLXJhbmdlLXBpY2tlcic7XG5cbiAgI2dldFN0YXJ0RGF0ZUlucHV0Qm94SGFybmVzcyA9IHRoaXMubG9jYXRvckZvcihcbiAgICBTa3lJbnB1dEJveEhhcm5lc3Mud2l0aCh7XG4gICAgICBhbmNlc3RvcjogJy5za3ktZGF0ZS1yYW5nZS1waWNrZXItc3RhcnQtZGF0ZScsXG4gICAgfSksXG4gICk7XG4gICNnZXRFbmREYXRlSW5wdXRCb3hIYXJuZXNzID0gdGhpcy5sb2NhdG9yRm9yKFxuICAgIFNreUlucHV0Qm94SGFybmVzcy53aXRoKHtcbiAgICAgIGFuY2VzdG9yOiAnLnNreS1kYXRlLXJhbmdlLXBpY2tlci1lbmQtZGF0ZScsXG4gICAgfSksXG4gICk7XG4gICNnZXRDYWxjdWxhdG9ySWRJbnB1dEJveEhhcm5lc3MgPSB0aGlzLmxvY2F0b3JGb3IoXG4gICAgU2t5SW5wdXRCb3hIYXJuZXNzLndpdGgoe1xuICAgICAgYW5jZXN0b3I6ICcuc2t5LWRhdGUtcmFuZ2UtcGlja2VyLXNlbGVjdC1jYWxjdWxhdG9yJyxcbiAgICB9KSxcbiAgKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5RGF0ZVJhbmdlUGlja2VySGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreURhdGVSYW5nZVBpY2tlckZpbHRlcnMsXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5RGF0ZVJhbmdlUGlja2VySGFybmVzcz4ge1xuICAgIHJldHVybiBTa3lEYXRlUmFuZ2VQaWNrZXJIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIGhlbHAgaW5saW5lIGJ1dHRvbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja0hlbHBJbmxpbmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgKGF3YWl0IHRoaXMuI2dldENhbGN1bGF0b3JJZElucHV0Qm94SGFybmVzcygpKS5jbGlja0hlbHBJbmxpbmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBoZWxwIHBvcG92ZXIgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIZWxwUG9wb3ZlckNvbnRlbnQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IChcbiAgICAgIGF3YWl0IHRoaXMuI2dldENhbGN1bGF0b3JJZElucHV0Qm94SGFybmVzcygpXG4gICAgKS5nZXRIZWxwUG9wb3ZlckNvbnRlbnQoKSkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlbHAgaW5saW5lIHBvcG92ZXIgdGl0bGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVscFBvcG92ZXJUaXRsZSgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBhd2FpdCAoXG4gICAgICBhd2FpdCB0aGlzLiNnZXRDYWxjdWxhdG9ySWRJbnB1dEJveEhhcm5lc3MoKVxuICAgICkuZ2V0SGVscFBvcG92ZXJUaXRsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhpbnQgdGV4dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIaW50VGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0Q2FsY3VsYXRvcklkSW5wdXRCb3hIYXJuZXNzKCkpLmdldEhpbnRUZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGFiZWwgdGV4dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRMYWJlbFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldENhbGN1bGF0b3JJZElucHV0Qm94SGFybmVzcygpKS5nZXRMYWJlbFRleHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGRhdGUgcmFuZ2UgcGlja2VyIGVuZCBkYXRlIGJlZm9yZSBzdGFydCBkYXRlIGVycm9yIGlzIHRocm93bi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNFbmREYXRlQmVmb3JlU3RhcnREYXRlRXJyb3IoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChcbiAgICAgIGF3YWl0IHRoaXMuI2dldENhbGN1bGF0b3JJZElucHV0Qm94SGFybmVzcygpXG4gICAgKS5oYXNDdXN0b21Gb3JtRXJyb3IoJ2VuZERhdGVCZWZvcmVTdGFydERhdGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGVuZCBkYXRlIGlucHV0IGhhcyByZXF1aXJlZCBlcnJvci5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNFbmREYXRlUmVxdWlyZWRFcnJvcigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEVuZERhdGVJbnB1dEJveEhhcm5lc3MoKSkuaGFzUmVxdWlyZWRFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBjdXN0b20gZXJyb3IgaGFzIGZpcmVkLlxuICAgKiBAcGFyYW1zIGVycm9yTmFtZSBgZXJyb3JOYW1lYCBwcm9wZXJ0eSBvZiB0aGUgY3VzdG9tIGBza3ktZm9ybS1lcnJvcmAuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzRXJyb3IoZXJyb3JOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKFxuICAgICAgYXdhaXQgdGhpcy4jZ2V0Q2FsY3VsYXRvcklkSW5wdXRCb3hIYXJuZXNzKClcbiAgICApLmhhc0N1c3RvbUZvcm1FcnJvcihlcnJvck5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgc3RhcnQgZGF0ZSBpbnB1dCBoYXMgcmVxdWlyZWQgZXJyb3IuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzU3RhcnREYXRlUmVxdWlyZWRFcnJvcigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldFN0YXJ0RGF0ZUlucHV0Qm94SGFybmVzcygpKS5oYXNSZXF1aXJlZEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZGF0ZSByYW5nZSBwaWNrZXIgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzRGlzYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRDYWxjdWxhdG9ySWRJbnB1dEJveEhhcm5lc3MoKSkuZ2V0RGlzYWJsZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGVuZCBkYXRlIGRhdGVwaWNrZXIgaXMgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc0VuZERhdGVWaXNpYmxlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAhKGF3YWl0IChcbiAgICAgIGF3YWl0IHRoaXMubG9jYXRvckZvcignLnNreS1kYXRlLXJhbmdlLXBpY2tlci1lbmQtZGF0ZScpKClcbiAgICApLmdldFByb3BlcnR5KCdoaWRkZW4nKSk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZGF0ZSByYW5nZSBwaWNrZXIgaGFzIHN0YWNrZWQgZW5hYmxlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc1N0YWNrZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLmhvc3QoKSkuaGFzQ2xhc3MoJ3NreS1mb3JtLWZpZWxkLXN0YWNrZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHN0YXJ0IGRhdGUgZGF0ZXBpY2tlciBpcyB2aXNpYmxlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzU3RhcnREYXRlVmlzaWJsZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gIShhd2FpdCAoXG4gICAgICBhd2FpdCB0aGlzLmxvY2F0b3JGb3IoJy5za3ktZGF0ZS1yYW5nZS1waWNrZXItc3RhcnQtZGF0ZScpKClcbiAgICApLmdldFByb3BlcnR5KCdoaWRkZW4nKSk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgc3BlY2lmaWVkIGNhbGN1bGF0b3IuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VsZWN0Q2FsY3VsYXRvcihcbiAgICBjYWxjdWxhdG9ySWQ6IFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZCxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2VsZWN0ID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yKFxuICAgICAgJ3NlbGVjdFtGb3JtQ29udHJvbE5hbWU9XCJjYWxjdWxhdG9ySWRcIicsXG4gICAgKSgpO1xuICAgIHJldHVybiBhd2FpdCBzZWxlY3Quc2VsZWN0T3B0aW9ucyhjYWxjdWxhdG9ySWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGVuZCBkYXRlLlxuICAgKiBAcGFyYW0gbmV3RGF0ZSBkYXRlIGlucHV0IGFzIGEgZm9ybWF0dGVkIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXRFbmREYXRlVmFsdWUobmV3RGF0ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCEoYXdhaXQgdGhpcy5pc0VuZERhdGVWaXNpYmxlKCkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBzZXQgZW5kIGRhdGUuIEVuZCBkYXRlcGlja2VyIGlzIG5vdCB2aXNpYmxlLicpO1xuICAgIH1cbiAgICBjb25zdCBpbnB1dCA9IGF3YWl0IChhd2FpdCB0aGlzLiNnZXRFbmREYXRlcGlja2VyKCkpLmdldENvbnRyb2woKTtcbiAgICBhd2FpdCBpbnB1dC5zZXRWYWx1ZShuZXdEYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzdGFydCBkYXRlLlxuICAgKiBAcGFyYW0gbmV3RGF0ZSBkYXRlIGlucHV0IGFzIGEgZm9ybWF0dGVkIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXRTdGFydERhdGVWYWx1ZShuZXdEYXRlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIShhd2FpdCB0aGlzLmlzRW5kRGF0ZVZpc2libGUoKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1VuYWJsZSB0byBzZXQgc3RhcnQgZGF0ZS4gU3RhcnQgZGF0ZXBpY2tlciBpcyBub3QgdmlzaWJsZS4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgaW5wdXQgPSBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0U3RhcnREYXRlcGlja2VyKCkpLmdldENvbnRyb2woKTtcbiAgICBhd2FpdCBpbnB1dC5zZXRWYWx1ZShuZXdEYXRlKTtcbiAgfVxuXG4gIGFzeW5jICNnZXRFbmREYXRlcGlja2VyKCk6IFByb21pc2U8U2t5RGF0ZXBpY2tlckhhcm5lc3M+IHtcbiAgICByZXR1cm4gYXdhaXQgKFxuICAgICAgYXdhaXQgdGhpcy4jZ2V0RW5kRGF0ZUlucHV0Qm94SGFybmVzcygpXG4gICAgKS5xdWVyeUhhcm5lc3MoU2t5RGF0ZXBpY2tlckhhcm5lc3MpO1xuICB9XG5cbiAgYXN5bmMgI2dldFN0YXJ0RGF0ZXBpY2tlcigpOiBQcm9taXNlPFNreURhdGVwaWNrZXJIYXJuZXNzPiB7XG4gICAgcmV0dXJuIGF3YWl0IChcbiAgICAgIGF3YWl0IHRoaXMuI2dldFN0YXJ0RGF0ZUlucHV0Qm94SGFybmVzcygpXG4gICAgKS5xdWVyeUhhcm5lc3MoU2t5RGF0ZXBpY2tlckhhcm5lc3MpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jYWxlbmRhci1oYXJuZXNzLmZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvdGVzdGluZy9zcmMvbW9kdWxlcy9kYXRlcGlja2VyL2RhdGVwaWNrZXItY2FsZW5kYXItaGFybmVzcy5maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlSGFybmVzc0ZpbHRlcnMgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5cbi8qKlxuICogQSBzZXQgb2YgY3JpdGVyaWEgdGhhdCBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgYSBsaXN0IG9mIGBTa3lEYXRlcGlja2VyQ2FsZW5kYXJIYXJuZXNzYCBpbnN0YW5jZXMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGVcbmV4cG9ydCBpbnRlcmZhY2UgU2t5RGF0ZXBpY2tlckNhbGVuZGFySGFybmVzc0ZpbHRlcnNcbiAgZXh0ZW5kcyBCYXNlSGFybmVzc0ZpbHRlcnMge31cbiJdfQ==
@@ -0,0 +1,88 @@
1
+ import { HarnessPredicate } from '@angular/cdk/testing';
2
+ import { SkyComponentHarness } from '@skyux/core/testing';
3
+ /**
4
+ * Harness for interacting with datepicker calendar in tests.
5
+ */
6
+ export class SkyDatepickerCalendarHarness extends SkyComponentHarness {
7
+ /**
8
+ * @internal
9
+ */
10
+ static { this.hostSelector = '.sky-datepicker-calendar-container'; }
11
+ #getDaypicker = this.locatorForOptional('sky-daypicker');
12
+ #getMonthpicker = this.locatorForOptional('sky-monthpicker');
13
+ #getNextButton = this.locatorFor('.sky-datepicker-btn-next');
14
+ #getPreviousButton = this.locatorFor('.sky-datepicker-btn-previous');
15
+ #getSelected = this.locatorFor('.sky-datepicker-btn-selected');
16
+ #getTitle = this.locatorFor('.sky-datepicker-calendar-title');
17
+ #getTitleButton = this.locatorFor('.sky-datepicker-calendar-title');
18
+ /**
19
+ * @internal
20
+ */
21
+ static with(filters) {
22
+ return new HarnessPredicate(SkyDatepickerCalendarHarness, filters);
23
+ }
24
+ /**
25
+ * Clicks the specified date, month or year.
26
+ * @params the specified value to click, in the following format
27
+ * day format: dddd, MMMM Do YYYY
28
+ * month format: MMMM YYYY
29
+ * year format: YYYY
30
+ */
31
+ async clickDate(date) {
32
+ try {
33
+ await (await this.locatorFor(`[aria-label="${date}"]`)()).click();
34
+ }
35
+ catch {
36
+ throw new Error(`Unable to find date with label "${date}". Check that the format is correct and matches the current calendar mode.`);
37
+ }
38
+ }
39
+ /**
40
+ * Clicks the 'next' button on the calendar header.
41
+ */
42
+ async clickNextButton() {
43
+ await (await this.#getNextButton()).click();
44
+ }
45
+ /**
46
+ * Clicks the 'previous' button on the calendar header.
47
+ */
48
+ async clickPreviousButton() {
49
+ await (await this.#getPreviousButton()).click();
50
+ }
51
+ /**
52
+ * Clicks the 'title' button on the calendar header.
53
+ */
54
+ async clickTitleButton() {
55
+ const button = await this.#getTitleButton();
56
+ if (await button.hasClass('sky-btn-disabled')) {
57
+ throw new Error('Title button is disabled.');
58
+ }
59
+ await button.click();
60
+ }
61
+ /**
62
+ * Gets the current calendar mode.
63
+ */
64
+ async getCalendarMode() {
65
+ if (await this.#getDaypicker()) {
66
+ return 'day';
67
+ }
68
+ else if (await this.#getMonthpicker()) {
69
+ return 'month';
70
+ }
71
+ else {
72
+ return 'year';
73
+ }
74
+ }
75
+ /**
76
+ * Gets the current title.
77
+ */
78
+ async getCalendarTitle() {
79
+ return (await (await this.#getTitle()).text()).trim();
80
+ }
81
+ /**
82
+ * Gets the value of the currently selected calendar item.
83
+ */
84
+ async getSelectedValue() {
85
+ return await (await this.#getSelected()).getAttribute('aria-label');
86
+ }
87
+ }
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jYWxlbmRhci1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3Rlc3Rpbmcvc3JjL21vZHVsZXMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWNhbGVuZGFyLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsbUJBQW1CO0lBQ25FOztPQUVHO2FBQ1csaUJBQVksR0FBRyxvQ0FBb0MsQ0FBQztJQUVsRSxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pELGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM3RCxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzdELGtCQUFrQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNyRSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQy9ELFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDOUQsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUVwRTs7T0FFRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQTRDO1FBRTVDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyw0QkFBNEIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2pDLElBQUksQ0FBQztZQUNILE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BFLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxNQUFNLElBQUksS0FBSyxDQUNiLG1DQUFtQyxJQUFJLDRFQUE0RSxDQUNwSCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxlQUFlO1FBQzFCLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxtQkFBbUI7UUFDOUIsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZ0JBQWdCO1FBQzNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRTVDLElBQUksTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUVELE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxlQUFlO1FBQzFCLElBQUksTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUMvQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7YUFBTSxJQUFJLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDeEMsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGdCQUFnQjtRQUMzQixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZ0JBQWdCO1FBQzNCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5Q29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1oYXJuZXNzLmZpbHRlcnMnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggZGF0ZXBpY2tlciBjYWxlbmRhciBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreURhdGVwaWNrZXJDYWxlbmRhckhhcm5lc3MgZXh0ZW5kcyBTa3lDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnLnNreS1kYXRlcGlja2VyLWNhbGVuZGFyLWNvbnRhaW5lcic7XG5cbiAgI2dldERheXBpY2tlciA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCdza3ktZGF5cGlja2VyJyk7XG4gICNnZXRNb250aHBpY2tlciA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCdza3ktbW9udGhwaWNrZXInKTtcbiAgI2dldE5leHRCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktZGF0ZXBpY2tlci1idG4tbmV4dCcpO1xuICAjZ2V0UHJldmlvdXNCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktZGF0ZXBpY2tlci1idG4tcHJldmlvdXMnKTtcbiAgI2dldFNlbGVjdGVkID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWRhdGVwaWNrZXItYnRuLXNlbGVjdGVkJyk7XG4gICNnZXRUaXRsZSA9IHRoaXMubG9jYXRvckZvcignLnNreS1kYXRlcGlja2VyLWNhbGVuZGFyLXRpdGxlJyk7XG4gICNnZXRUaXRsZUJ1dHRvbiA9IHRoaXMubG9jYXRvckZvcignLnNreS1kYXRlcGlja2VyLWNhbGVuZGFyLXRpdGxlJyk7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreURhdGVwaWNrZXJDYWxlbmRhckhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreURhdGVwaWNrZXJDYWxlbmRhckhhcm5lc3M+IHtcbiAgICByZXR1cm4gbmV3IEhhcm5lc3NQcmVkaWNhdGUoU2t5RGF0ZXBpY2tlckNhbGVuZGFySGFybmVzcywgZmlsdGVycyk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBzcGVjaWZpZWQgZGF0ZSwgbW9udGggb3IgeWVhci5cbiAgICogQHBhcmFtcyB0aGUgc3BlY2lmaWVkIHZhbHVlIHRvIGNsaWNrLCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdFxuICAgKiBkYXkgZm9ybWF0OiBkZGRkLCBNTU1NIERvIFlZWVlcbiAgICogbW9udGggZm9ybWF0OiBNTU1NIFlZWVlcbiAgICogeWVhciBmb3JtYXQ6IFlZWVlcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja0RhdGUoZGF0ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IChhd2FpdCB0aGlzLmxvY2F0b3JGb3IoYFthcmlhLWxhYmVsPVwiJHtkYXRlfVwiXWApKCkpLmNsaWNrKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbmFibGUgdG8gZmluZCBkYXRlIHdpdGggbGFiZWwgXCIke2RhdGV9XCIuIENoZWNrIHRoYXQgdGhlIGZvcm1hdCBpcyBjb3JyZWN0IGFuZCBtYXRjaGVzIHRoZSBjdXJyZW50IGNhbGVuZGFyIG1vZGUuYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBDbGlja3MgdGhlICduZXh0JyBidXR0b24gb24gdGhlIGNhbGVuZGFyIGhlYWRlci5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja05leHRCdXR0b24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgKGF3YWl0IHRoaXMuI2dldE5leHRCdXR0b24oKSkuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlICdwcmV2aW91cycgYnV0dG9uIG9uIHRoZSBjYWxlbmRhciBoZWFkZXIuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tQcmV2aW91c0J1dHRvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0UHJldmlvdXNCdXR0b24oKSkuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlICd0aXRsZScgYnV0dG9uIG9uIHRoZSBjYWxlbmRhciBoZWFkZXIuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tUaXRsZUJ1dHRvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLiNnZXRUaXRsZUJ1dHRvbigpO1xuXG4gICAgaWYgKGF3YWl0IGJ1dHRvbi5oYXNDbGFzcygnc2t5LWJ0bi1kaXNhYmxlZCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RpdGxlIGJ1dHRvbiBpcyBkaXNhYmxlZC4nKTtcbiAgICB9XG5cbiAgICBhd2FpdCBidXR0b24uY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGNhbGVuZGFyIG1vZGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0Q2FsZW5kYXJNb2RlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKGF3YWl0IHRoaXMuI2dldERheXBpY2tlcigpKSB7XG4gICAgICByZXR1cm4gJ2RheSc7XG4gICAgfSBlbHNlIGlmIChhd2FpdCB0aGlzLiNnZXRNb250aHBpY2tlcigpKSB7XG4gICAgICByZXR1cm4gJ21vbnRoJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICd5ZWFyJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCB0aXRsZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRDYWxlbmRhclRpdGxlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0VGl0bGUoKSkudGV4dCgpKS50cmltKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjYWxlbmRhciBpdGVtLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNlbGVjdGVkVmFsdWUoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRTZWxlY3RlZCgpKS5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1oYXJuZXNzLmZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvdGVzdGluZy9zcmMvbW9kdWxlcy9kYXRlcGlja2VyL2RhdGVwaWNrZXItaGFybmVzcy5maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEEgc2V0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGEgbGlzdCBvZiBgU2t5RGF0ZXBpY2tlckhhcm5lc3NgIGluc3RhbmNlcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2UsIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZVxuZXhwb3J0IGludGVyZmFjZSBTa3lEYXRlcGlja2VyRmlsdGVycyBleHRlbmRzIFNreUhhcm5lc3NGaWx0ZXJzIHt9XG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { SkyComponentHarness } from '@skyux/core/testing';
2
+ import { SkyDatepickerCalendarHarness } from './datepicker-calendar-harness';
3
+ import { SkyDatepickerInputHarness } from './datepicker-input-harness';
4
+ /**
5
+ * Harness for interacting with datepicker components in tests.
6
+ */
7
+ export class SkyDatepickerHarness extends SkyComponentHarness {
8
+ /**
9
+ * @internal
10
+ */
11
+ static { this.hostSelector = 'sky-datepicker, .sky-input-group'; }
12
+ #documentRootLocator = this.documentRootLocatorFactory();
13
+ #getCalendarButton = this.locatorFor('.sky-input-group-datepicker-btn');
14
+ /**
15
+ * Gets a `HarnessPredicate` that can be used to search for a
16
+ * `SkyDatepickerHarness` that meets certain criteria.
17
+ *
18
+ * These filters only work for standalone datepickers. For datepickers
19
+ * wrapped inside `sky-input-box`, place filters on the input box instead and
20
+ * query the datepicker using a `SkyInputBoxHarness`.
21
+ * For the input box implementation, see the code example.
22
+ */
23
+ static with(filters) {
24
+ return SkyDatepickerHarness.getDataSkyIdPredicate(filters);
25
+ }
26
+ /**
27
+ * Clicks the calendar button.
28
+ */
29
+ async clickCalendarButton() {
30
+ return await (await this.#getCalendarButton()).click();
31
+ }
32
+ /**
33
+ * Gets the `SkyDatepickerCalendarHarness` for the calendar picker controlled by
34
+ * the datepicker. Throws an error if the calendar picker is not open.
35
+ */
36
+ async getDatepickerCalendar() {
37
+ const calendarId = await this.#getAriaControls();
38
+ if (!calendarId) {
39
+ throw new Error('Unable to get calendar picker because picker is closed.');
40
+ }
41
+ return await this.#documentRootLocator.locatorFor(SkyDatepickerCalendarHarness.with({ selector: `#${calendarId}` }))();
42
+ }
43
+ /**
44
+ * Gets the datepicker input harness.
45
+ */
46
+ async getControl() {
47
+ return await this.locatorFor(SkyDatepickerInputHarness)();
48
+ }
49
+ /**
50
+ * Whether the datepicker calendar picker is open.
51
+ */
52
+ async isDatepickerOpen() {
53
+ return ((await (await this.#getCalendarButton()).getAttribute('aria-expanded')) === 'true');
54
+ }
55
+ async #getAriaControls() {
56
+ return await (await this.#getCalendarButton()).getAttribute('aria-controls');
57
+ }
58
+ }
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3Rlc3Rpbmcvc3JjL21vZHVsZXMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBQzNEOztPQUVHO2FBQ1csaUJBQVksR0FBRyxrQ0FBa0MsQ0FBQztJQUVoRSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUV6RCxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFFeEU7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUE2QjtRQUU3QixPQUFPLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxtQkFBbUI7UUFDOUIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMscUJBQXFCO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFakQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQ2IseURBQXlELENBQzFELENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQy9DLDRCQUE0QixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FDbEUsRUFBRSxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxnQkFBZ0I7UUFDM0IsT0FBTyxDQUNMLENBQUMsTUFBTSxDQUNMLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQ2hDLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0I7UUFDcEIsT0FBTyxNQUFNLENBQ1gsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FDaEMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreURhdGVwaWNrZXJDYWxlbmRhckhhcm5lc3MgfSBmcm9tICcuL2RhdGVwaWNrZXItY2FsZW5kYXItaGFybmVzcyc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyRmlsdGVycyB9IGZyb20gJy4vZGF0ZXBpY2tlci1oYXJuZXNzLmZpbHRlcnMnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlcklucHV0SGFybmVzcyB9IGZyb20gJy4vZGF0ZXBpY2tlci1pbnB1dC1oYXJuZXNzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGRhdGVwaWNrZXIgY29tcG9uZW50cyBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreURhdGVwaWNrZXJIYXJuZXNzIGV4dGVuZHMgU2t5Q29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1kYXRlcGlja2VyLCAuc2t5LWlucHV0LWdyb3VwJztcblxuICAjZG9jdW1lbnRSb290TG9jYXRvciA9IHRoaXMuZG9jdW1lbnRSb290TG9jYXRvckZhY3RvcnkoKTtcblxuICAjZ2V0Q2FsZW5kYXJCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktaW5wdXQtZ3JvdXAtZGF0ZXBpY2tlci1idG4nKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5RGF0ZXBpY2tlckhhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYS5cbiAgICpcbiAgICogVGhlc2UgZmlsdGVycyBvbmx5IHdvcmsgZm9yIHN0YW5kYWxvbmUgZGF0ZXBpY2tlcnMuIEZvciBkYXRlcGlja2Vyc1xuICAgKiB3cmFwcGVkIGluc2lkZSBgc2t5LWlucHV0LWJveGAsIHBsYWNlIGZpbHRlcnMgb24gdGhlIGlucHV0IGJveCBpbnN0ZWFkIGFuZFxuICAgKiBxdWVyeSB0aGUgZGF0ZXBpY2tlciB1c2luZyBhIGBTa3lJbnB1dEJveEhhcm5lc3NgLlxuICAgKiBGb3IgdGhlIGlucHV0IGJveCBpbXBsZW1lbnRhdGlvbiwgc2VlIHRoZSBjb2RlIGV4YW1wbGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5RGF0ZXBpY2tlckZpbHRlcnMsXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5RGF0ZXBpY2tlckhhcm5lc3M+IHtcbiAgICByZXR1cm4gU2t5RGF0ZXBpY2tlckhhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyB0aGUgY2FsZW5kYXIgYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrQ2FsZW5kYXJCdXR0b24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRDYWxlbmRhckJ1dHRvbigpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGBTa3lEYXRlcGlja2VyQ2FsZW5kYXJIYXJuZXNzYCBmb3IgdGhlIGNhbGVuZGFyIHBpY2tlciBjb250cm9sbGVkIGJ5XG4gICAqIHRoZSBkYXRlcGlja2VyLiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIGNhbGVuZGFyIHBpY2tlciBpcyBub3Qgb3Blbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXREYXRlcGlja2VyQ2FsZW5kYXIoKTogUHJvbWlzZTxTa3lEYXRlcGlja2VyQ2FsZW5kYXJIYXJuZXNzPiB7XG4gICAgY29uc3QgY2FsZW5kYXJJZCA9IGF3YWl0IHRoaXMuI2dldEFyaWFDb250cm9scygpO1xuXG4gICAgaWYgKCFjYWxlbmRhcklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdVbmFibGUgdG8gZ2V0IGNhbGVuZGFyIHBpY2tlciBiZWNhdXNlIHBpY2tlciBpcyBjbG9zZWQuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2RvY3VtZW50Um9vdExvY2F0b3IubG9jYXRvckZvcihcbiAgICAgIFNreURhdGVwaWNrZXJDYWxlbmRhckhhcm5lc3Mud2l0aCh7IHNlbGVjdG9yOiBgIyR7Y2FsZW5kYXJJZH1gIH0pLFxuICAgICkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkYXRlcGlja2VyIGlucHV0IGhhcm5lc3MuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0Q29udHJvbCgpOiBQcm9taXNlPFNreURhdGVwaWNrZXJJbnB1dEhhcm5lc3M+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yKFNreURhdGVwaWNrZXJJbnB1dEhhcm5lc3MpKCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZGF0ZXBpY2tlciBjYWxlbmRhciBwaWNrZXIgaXMgb3Blbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc0RhdGVwaWNrZXJPcGVuKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoXG4gICAgICAoYXdhaXQgKFxuICAgICAgICBhd2FpdCB0aGlzLiNnZXRDYWxlbmRhckJ1dHRvbigpXG4gICAgICApLmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpKSA9PT0gJ3RydWUnXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jICNnZXRBcmlhQ29udHJvbHMoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IChcbiAgICAgIGF3YWl0IHRoaXMuI2dldENhbGVuZGFyQnV0dG9uKClcbiAgICApLmdldEF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { SkyInputHarness } from '@skyux/core/testing';
2
+ /**
3
+ * Harness to interact with the datepicker input harness.
4
+ */
5
+ export class SkyDatepickerInputHarness extends SkyInputHarness {
6
+ /**
7
+ * @internal
8
+ */
9
+ static { this.hostSelector = '[skyDatepickerInput]'; }
10
+ /**
11
+ * Blurs the input.
12
+ */
13
+ async blur() {
14
+ await super.blur();
15
+ const host = await this.host();
16
+ await host.dispatchEvent('focusout', {
17
+ relatedTarget: null,
18
+ });
19
+ }
20
+ /**
21
+ * Sets the value of the input.
22
+ */
23
+ async setValue(value) {
24
+ await super.setValue(value);
25
+ await this.blur();
26
+ await (await this.host()).dispatchEvent('change');
27
+ }
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnB1dC1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3Rlc3Rpbmcvc3JjL21vZHVsZXMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWlucHV0LWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXREOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGVBQWU7SUFDNUQ7O09BRUc7YUFDVyxpQkFBWSxHQUFHLHNCQUFzQixDQUFDO0lBRXBEOztPQUVHO0lBQ2EsS0FBSyxDQUFDLElBQUk7UUFDeEIsTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFL0IsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUNuQyxhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDYSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQWE7UUFDMUMsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5SW5wdXRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbi8qKlxuICogSGFybmVzcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBkYXRlcGlja2VyIGlucHV0IGhhcm5lc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lEYXRlcGlja2VySW5wdXRIYXJuZXNzIGV4dGVuZHMgU2t5SW5wdXRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnW3NreURhdGVwaWNrZXJJbnB1dF0nO1xuXG4gIC8qKlxuICAgKiBCbHVycyB0aGUgaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgYmx1cigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5ibHVyKCk7XG5cbiAgICBjb25zdCBob3N0ID0gYXdhaXQgdGhpcy5ob3N0KCk7XG5cbiAgICBhd2FpdCBob3N0LmRpc3BhdGNoRXZlbnQoJ2ZvY3Vzb3V0Jywge1xuICAgICAgcmVsYXRlZFRhcmdldDogbnVsbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgc2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLnNldFZhbHVlKHZhbHVlKTtcblxuICAgIGF3YWl0IHRoaXMuYmx1cigpO1xuICAgIGF3YWl0IChhd2FpdCB0aGlzLmhvc3QoKSkuZGlzcGF0Y2hFdmVudCgnY2hhbmdlJyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
- export { SkyDatepickerFixture } from './datepicker-fixture';
2
- export { SkyTimepickerFixture } from './timepicker-fixture';
3
- export { SkyDateRangePickerHarness } from './date-range-picker/date-range-picker-harness';
4
- export { SkyDatepickerHarness } from './datepicker/datepicker-harness';
5
- export { SkyDatepickerCalendarHarness } from './datepicker/datepicker-calendar-harness';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRzFGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU2t5RGF0ZXBpY2tlckZpeHR1cmUgfSBmcm9tICcuL2RhdGVwaWNrZXItZml4dHVyZSc7XG5leHBvcnQgeyBTa3lUaW1lcGlja2VyRml4dHVyZSB9IGZyb20gJy4vdGltZXBpY2tlci1maXh0dXJlJztcblxuZXhwb3J0IHsgU2t5RGF0ZVJhbmdlUGlja2VyRmlsdGVycyB9IGZyb20gJy4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXItaGFybmVzcy5maWx0ZXJzJztcbmV4cG9ydCB7IFNreURhdGVSYW5nZVBpY2tlckhhcm5lc3MgfSBmcm9tICcuL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLWhhcm5lc3MnO1xuXG5leHBvcnQgeyBTa3lEYXRlcGlja2VyRmlsdGVycyB9IGZyb20gJy4vZGF0ZXBpY2tlci9kYXRlcGlja2VyLWhhcm5lc3MuZmlsdGVycyc7XG5leHBvcnQgeyBTa3lEYXRlcGlja2VySGFybmVzcyB9IGZyb20gJy4vZGF0ZXBpY2tlci9kYXRlcGlja2VyLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5RGF0ZXBpY2tlckNhbGVuZGFySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci1oYXJuZXNzLmZpbHRlcnMnO1xuZXhwb3J0IHsgU2t5RGF0ZXBpY2tlckNhbGVuZGFySGFybmVzcyB9IGZyb20gJy4vZGF0ZXBpY2tlci9kYXRlcGlja2VyLWNhbGVuZGFyLWhhcm5lc3MnO1xuIl19
1
+ export { SkyDatepickerFixture } from './legacy/datepicker-fixture';
2
+ export { SkyTimepickerFixture } from './legacy/timepicker-fixture';
3
+ export { SkyDateRangePickerHarness } from './modules/date-range-picker/date-range-picker-harness';
4
+ export { SkyDatepickerCalendarHarness } from './modules/datepicker/datepicker-calendar-harness';
5
+ export { SkyDatepickerHarness } from './modules/datepicker/datepicker-harness';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRW5FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBR2xHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRWhHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU2t5RGF0ZXBpY2tlckZpeHR1cmUgfSBmcm9tICcuL2xlZ2FjeS9kYXRlcGlja2VyLWZpeHR1cmUnO1xuZXhwb3J0IHsgU2t5VGltZXBpY2tlckZpeHR1cmUgfSBmcm9tICcuL2xlZ2FjeS90aW1lcGlja2VyLWZpeHR1cmUnO1xuXG5leHBvcnQgeyBTa3lEYXRlUmFuZ2VQaWNrZXJIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5RGF0ZVJhbmdlUGlja2VyRmlsdGVycyB9IGZyb20gJy4vbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci1oYXJuZXNzLmZpbHRlcnMnO1xuXG5leHBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci1oYXJuZXNzJztcbmV4cG9ydCB7IFNreURhdGVwaWNrZXJDYWxlbmRhckhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci1oYXJuZXNzLmZpbHRlcnMnO1xuZXhwb3J0IHsgU2t5RGF0ZXBpY2tlckhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5RGF0ZXBpY2tlckZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWhhcm5lc3MuZmlsdGVycyc7XG4iXX0=