@skyux/datetime 10.23.0 → 10.25.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.
@@ -60,6 +60,9 @@ const RESOURCES = {
60
60
  },
61
61
  skyux_timepicker_close: { message: 'Done' },
62
62
  skyux_date_range_picker_default_label: { message: 'Select a date range' },
63
+ skyux_date_range_picker_end_date_before_start_date_error_label_text: {
64
+ message: 'Change the date range so that the end date is before the start date.',
65
+ },
63
66
  skyux_date_range_picker_format_label_specific_range: {
64
67
  message: 'Specific range',
65
68
  },
@@ -142,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
142
145
  ],
143
146
  }]
144
147
  }] });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWRhdGV0aW1lLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktZGF0ZXRpbWUtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFFMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCwyQkFBMkIsRUFFM0IsYUFBYSxFQUdiLHNCQUFzQixFQUN0QixxQkFBcUIsR0FDdEIsTUFBTSxhQUFhLENBQUM7O0FBRXJCLE1BQU0sU0FBUyxHQUFvQztJQUNqRCxPQUFPLEVBQUU7UUFDUCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO1FBQ0QscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7UUFDRCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO1FBQ0QscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7UUFDRCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxpQ0FBaUMsRUFBRSxFQUFFLE9BQU8s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Tyw0QkFBNEI7SUFDaEMsU0FBUyxDQUNkLFVBQTRCLEVBQzVCLElBQVk7UUFFWixPQUFPLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBV0gsTUFBTSxPQUFPLDBCQUEwQjs4R0FBMUIsMEJBQTBCOytHQUExQiwwQkFBMEIsWUFUM0IsYUFBYTsrR0FTWiwwQkFBMEIsYUFSMUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsMkJBQTJCO2dCQUNwQyxRQUFRLEVBQUUsNEJBQTRCO2dCQUN0QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsWUFQUyxhQUFhOzsyRkFTWiwwQkFBMEI7a0JBVnRDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDJCQUEyQjs0QkFDcEMsUUFBUSxFQUFFLDRCQUE0Qjs0QkFDdEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuXG4vKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS1kYXRldGltZScgc2NoZW1hdGljLlxuICogVG8gdXBkYXRlIHRoaXMgZmlsZSwgc2ltcGx5IHJlcnVuIHRoZSBjb21tYW5kLlxuICovXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICBTa3lBcHBMb2NhbGVJbmZvLFxuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyLFxuICBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICBnZXRMaWJTdHJpbmdGb3JMb2NhbGUsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiBSZWNvcmQ8c3RyaW5nLCBTa3lMaWJSZXNvdXJjZXM+ID0ge1xuICAnRU4tQVUnOiB7XG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2xhc3RfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdMYXN0IGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90aGlzX2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnVGhpcyBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbmV4dF9maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ05leHQgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gIH0sXG4gICdFTi1HQic6IHtcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ0xhc3QgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RoaXNfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9uZXh0X2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTmV4dCBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgfSxcbiAgJ0VOLU5aJzoge1xuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9sYXN0X2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTGFzdCBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdGhpc19maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ1RoaXMgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX25leHRfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdOZXh0IGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICB9LFxuICAnRU4tVVMnOiB7XG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9mb3JtYXRfaGludF90ZXh0OiB7IG1lc3NhZ2U6ICdVc2UgdGhlIGZvcm1hdCB7MH0uJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfdHJpZ2dlcl9idXR0b25fbGFiZWw6IHsgbWVzc2FnZTogJ1NlbGVjdCBkYXRlJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfdHJpZ2dlcl9idXR0b25fbGFiZWxfY29udGV4dDoge1xuICAgICAgbWVzc2FnZTogJ09wZW4gY2FsZW5kYXIgZm9yIHswfScsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlcGlja2VyX21vdmVfY2FsZW5kYXJfcHJldmlvdXNfZGF5OiB7IG1lc3NhZ2U6ICdQcmV2aW91cyBtb250aCcgfSxcbiAgICBza3l1eF9kYXRlcGlja2VyX21vdmVfY2FsZW5kYXJfbmV4dF9kYXk6IHsgbWVzc2FnZTogJ05leHQgbW9udGgnIH0sXG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX3ByZXZpb3VzX21vbnRoOiB7IG1lc3NhZ2U6ICdQcmV2aW91cyB5ZWFyJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfbW92ZV9jYWxlbmRhcl9uZXh0X21vbnRoOiB7IG1lc3NhZ2U6ICdOZXh0IHllYXInIH0sXG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX3ByZXZpb3VzX3llYXI6IHsgbWVzc2FnZTogJ1ByZXZpb3VzIHBhZ2UnIH0sXG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX25leHRfeWVhcjogeyBtZXNzYWdlOiAnTmV4dCBwYWdlJyB9LFxuICAgIHNreXV4X3RpbWVwaWNrZXJfYnV0dG9uX2xhYmVsOiB7IG1lc3NhZ2U6ICdDaG9vc2UgdGltZScgfSxcbiAgICBza3l1eF90aW1lcGlja2VyX2J1dHRvbl9sYWJlbF9jb250ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnT3BlbiB0aW1lIHBpY2tlciBmb3IgezB9JyxcbiAgICB9LFxuICAgIHNreXV4X3RpbWVwaWNrZXJfY2xvc2U6IHsgbWVzc2FnZTogJ0RvbmUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZGVmYXVsdF9sYWJlbDogeyBtZXNzYWdlOiAnU2VsZWN0IGEgZGF0ZSByYW5nZScgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfc3BlY2lmaWNfcmFuZ2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdTcGVjaWZpYyByYW5nZScsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfYmVmb3JlOiB7IG1lc3NhZ2U6ICdCZWZvcmUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2FmdGVyOiB7IG1lc3NhZ2U6ICdBZnRlcicgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfYW55X3RpbWU6IHsgbWVzc2FnZTogJ0F0IGFueSB0aW1lJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF95ZXN0ZXJkYXk6IHsgbWVzc2FnZTogJ1llc3RlcmRheScgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdG9kYXk6IHsgbWVzc2FnZTogJ1RvZGF5JyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90b21vcnJvdzogeyBtZXNzYWdlOiAnVG9tb3Jyb3cnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2xhc3Rfd2VlazogeyBtZXNzYWdlOiAnTGFzdCB3ZWVrJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90aGlzX3dlZWs6IHsgbWVzc2FnZTogJ1RoaXMgd2VlaycgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbmV4dF93ZWVrOiB7IG1lc3NhZ2U6ICdOZXh0IHdlZWsnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2xhc3RfbW9udGg6IHsgbWVzc2FnZTogJ0xhc3QgbW9udGgnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RoaXNfbW9udGg6IHsgbWVzc2FnZTogJ1RoaXMgbW9udGgnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX25leHRfbW9udGg6IHsgbWVzc2FnZTogJ05leHQgbW9udGgnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2xhc3RfcXVhcnRlcjoge1xuICAgICAgbWVzc2FnZTogJ0xhc3QgcXVhcnRlcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdGhpc19xdWFydGVyOiB7XG4gICAgICBtZXNzYWdlOiAnVGhpcyBxdWFydGVyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9uZXh0X3F1YXJ0ZXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdOZXh0IHF1YXJ0ZXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2xhc3RfY2FsZW5kYXJfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ0xhc3QgY2FsZW5kYXIgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdGhpc19jYWxlbmRhcl95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnVGhpcyBjYWxlbmRhciB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9uZXh0X2NhbGVuZGFyX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdOZXh0IGNhbGVuZGFyIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2xhc3RfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdMYXN0IGZpc2NhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90aGlzX2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnVGhpcyBmaXNjYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbmV4dF9maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ05leHQgZmlzY2FsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfc3RhcnRfZGF0ZV9sYWJlbDogeyBtZXNzYWdlOiAnRnJvbSBkYXRlJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2VuZF9kYXRlX2xhYmVsOiB7IG1lc3NhZ2U6ICdUbyBkYXRlJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2JlZm9yZV9kYXRlX2xhYmVsOiB7IG1lc3NhZ2U6ICdCZWZvcmUgZGF0ZScgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9hZnRlcl9kYXRlX2xhYmVsOiB7IG1lc3NhZ2U6ICdBZnRlciBkYXRlJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2RlZmF1bHRfYXJpYV9sYWJlbDogeyBtZXNzYWdlOiAnezB9IGZvciB7MX0nIH0sXG4gIH0sXG59O1xuXG5Ta3lMaWJSZXNvdXJjZXNTZXJ2aWNlLmFkZFJlc291cmNlcyhSRVNPVVJDRVMpO1xuXG5leHBvcnQgY2xhc3MgU2t5RGF0ZXRpbWVSZXNvdXJjZXNQcm92aWRlciBpbXBsZW1lbnRzIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyIHtcbiAgcHVibGljIGdldFN0cmluZyhcbiAgICBsb2NhbGVJbmZvOiBTa3lBcHBMb2NhbGVJbmZvLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZ2V0TGliU3RyaW5nRm9yTG9jYWxlKFJFU09VUkNFUywgbG9jYWxlSW5mby5sb2NhbGUsIG5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogSW1wb3J0IGludG8gYW55IGNvbXBvbmVudCBsaWJyYXJ5IG1vZHVsZSB0aGF0IG5lZWRzIHRvIHVzZSByZXNvdXJjZSBzdHJpbmdzLlxuICovXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbU2t5STE4bk1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNLWV9MSUJfUkVTT1VSQ0VTX1BST1ZJREVSUyxcbiAgICAgIHVzZUNsYXNzOiBTa3lEYXRldGltZVJlc291cmNlc1Byb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0ZXRpbWVSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWRhdGV0aW1lLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktZGF0ZXRpbWUtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFFMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCwyQkFBMkIsRUFFM0IsYUFBYSxFQUdiLHNCQUFzQixFQUN0QixxQkFBcUIsR0FDdEIsTUFBTSxhQUFhLENBQUM7O0FBRXJCLE1BQU0sU0FBUyxHQUFvQztJQUNqRCxPQUFPLEVBQUU7UUFDUCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO1FBQ0QscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7UUFDRCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO1FBQ0QscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AscURBQXFELEVBQUU7WUFDckQsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQjtRQUNELHFEQUFxRCxFQUFFO1lBQ3JELE9BQU8sRUFBRSxxQkFBcUI7U0FDL0I7UUFDRCxxREFBcUQsRUFBRTtZQUNyRCxPQUFPLEVBQUUscUJBQXFCO1NBQy9CO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxpQ0FBaUMsRUFBRSxFQUFFLE9BQU8s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QixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUUvQyxNQUFNLE9BQU8sNEJBQTRCO0lBQ2hDLFNBQVMsQ0FDZCxVQUE0QixFQUM1QixJQUFZO1FBRVosT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQVdILE1BQU0sT0FBTywwQkFBMEI7OEdBQTFCLDBCQUEwQjsrR0FBMUIsMEJBQTBCLFlBVDNCLGFBQWE7K0dBU1osMEJBQTBCLGFBUjFCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLFlBUFMsYUFBYTs7MkZBU1osMEJBQTBCO2tCQVZ0QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFFBQVEsRUFBRSw0QkFBNEI7NEJBQ3RDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cblxuLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktZGF0ZXRpbWUnIHNjaGVtYXRpYy5cbiAqIFRvIHVwZGF0ZSB0aGlzIGZpbGUsIHNpbXBseSByZXJ1biB0aGUgY29tbWFuZC5cbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNLWV9MSUJfUkVTT1VSQ0VTX1BST1ZJREVSUyxcbiAgU2t5QXBwTG9jYWxlSW5mbyxcbiAgU2t5STE4bk1vZHVsZSxcbiAgU2t5TGliUmVzb3VyY2VzLFxuICBTa3lMaWJSZXNvdXJjZXNQcm92aWRlcixcbiAgU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgZ2V0TGliU3RyaW5nRm9yTG9jYWxlLFxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmNvbnN0IFJFU09VUkNFUzogUmVjb3JkPHN0cmluZywgU2t5TGliUmVzb3VyY2VzPiA9IHtcbiAgJ0VOLUFVJzoge1xuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9sYXN0X2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTGFzdCBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdGhpc19maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ1RoaXMgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX25leHRfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdOZXh0IGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICB9LFxuICAnRU4tR0InOiB7XG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX2xhc3RfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdMYXN0IGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90aGlzX2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnVGhpcyBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbmV4dF9maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ05leHQgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gIH0sXG4gICdFTi1OWic6IHtcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ0xhc3QgZmluYW5jaWFsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RoaXNfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGZpbmFuY2lhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9uZXh0X2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTmV4dCBmaW5hbmNpYWwgeWVhcicsXG4gICAgfSxcbiAgfSxcbiAgJ0VOLVVTJzoge1xuICAgIHNreXV4X2RhdGVwaWNrZXJfZm9ybWF0X2hpbnRfdGV4dDogeyBtZXNzYWdlOiAnVXNlIHRoZSBmb3JtYXQgezB9LicgfSxcbiAgICBza3l1eF9kYXRlcGlja2VyX3RyaWdnZXJfYnV0dG9uX2xhYmVsOiB7IG1lc3NhZ2U6ICdTZWxlY3QgZGF0ZScgfSxcbiAgICBza3l1eF9kYXRlcGlja2VyX3RyaWdnZXJfYnV0dG9uX2xhYmVsX2NvbnRleHQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdPcGVuIGNhbGVuZGFyIGZvciB7MH0nLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX3ByZXZpb3VzX2RheTogeyBtZXNzYWdlOiAnUHJldmlvdXMgbW9udGgnIH0sXG4gICAgc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX25leHRfZGF5OiB7IG1lc3NhZ2U6ICdOZXh0IG1vbnRoJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfbW92ZV9jYWxlbmRhcl9wcmV2aW91c19tb250aDogeyBtZXNzYWdlOiAnUHJldmlvdXMgeWVhcicgfSxcbiAgICBza3l1eF9kYXRlcGlja2VyX21vdmVfY2FsZW5kYXJfbmV4dF9tb250aDogeyBtZXNzYWdlOiAnTmV4dCB5ZWFyJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfbW92ZV9jYWxlbmRhcl9wcmV2aW91c195ZWFyOiB7IG1lc3NhZ2U6ICdQcmV2aW91cyBwYWdlJyB9LFxuICAgIHNreXV4X2RhdGVwaWNrZXJfbW92ZV9jYWxlbmRhcl9uZXh0X3llYXI6IHsgbWVzc2FnZTogJ05leHQgcGFnZScgfSxcbiAgICBza3l1eF90aW1lcGlja2VyX2J1dHRvbl9sYWJlbDogeyBtZXNzYWdlOiAnQ2hvb3NlIHRpbWUnIH0sXG4gICAgc2t5dXhfdGltZXBpY2tlcl9idXR0b25fbGFiZWxfY29udGV4dDoge1xuICAgICAgbWVzc2FnZTogJ09wZW4gdGltZSBwaWNrZXIgZm9yIHswfScsXG4gICAgfSxcbiAgICBza3l1eF90aW1lcGlja2VyX2Nsb3NlOiB7IG1lc3NhZ2U6ICdEb25lJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2RlZmF1bHRfbGFiZWw6IHsgbWVzc2FnZTogJ1NlbGVjdCBhIGRhdGUgcmFuZ2UnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZW5kX2RhdGVfYmVmb3JlX3N0YXJ0X2RhdGVfZXJyb3JfbGFiZWxfdGV4dDoge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ0NoYW5nZSB0aGUgZGF0ZSByYW5nZSBzbyB0aGF0IHRoZSBlbmQgZGF0ZSBpcyBiZWZvcmUgdGhlIHN0YXJ0IGRhdGUuJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9zcGVjaWZpY19yYW5nZToge1xuICAgICAgbWVzc2FnZTogJ1NwZWNpZmljIHJhbmdlJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9iZWZvcmU6IHsgbWVzc2FnZTogJ0JlZm9yZScgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfYWZ0ZXI6IHsgbWVzc2FnZTogJ0FmdGVyJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9hbnlfdGltZTogeyBtZXNzYWdlOiAnQXQgYW55IHRpbWUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3llc3RlcmRheTogeyBtZXNzYWdlOiAnWWVzdGVyZGF5JyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90b2RheTogeyBtZXNzYWdlOiAnVG9kYXknIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RvbW9ycm93OiB7IG1lc3NhZ2U6ICdUb21vcnJvdycgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF93ZWVrOiB7IG1lc3NhZ2U6ICdMYXN0IHdlZWsnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RoaXNfd2VlazogeyBtZXNzYWdlOiAnVGhpcyB3ZWVrJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9uZXh0X3dlZWs6IHsgbWVzc2FnZTogJ05leHQgd2VlaycgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9tb250aDogeyBtZXNzYWdlOiAnTGFzdCBtb250aCcgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfdGhpc19tb250aDogeyBtZXNzYWdlOiAnVGhpcyBtb250aCcgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbmV4dF9tb250aDogeyBtZXNzYWdlOiAnTmV4dCBtb250aCcgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9xdWFydGVyOiB7XG4gICAgICBtZXNzYWdlOiAnTGFzdCBxdWFydGVyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90aGlzX3F1YXJ0ZXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIHF1YXJ0ZXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX25leHRfcXVhcnRlcjoge1xuICAgICAgbWVzc2FnZTogJ05leHQgcXVhcnRlcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9jYWxlbmRhcl95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTGFzdCBjYWxlbmRhciB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF90aGlzX2NhbGVuZGFyX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGNhbGVuZGFyIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX25leHRfY2FsZW5kYXJfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ05leHQgY2FsZW5kYXIgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9mb3JtYXRfbGFiZWxfbGFzdF9maXNjYWxfeWVhcjoge1xuICAgICAgbWVzc2FnZTogJ0xhc3QgZmlzY2FsIHllYXInLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZm9ybWF0X2xhYmVsX3RoaXNfZmlzY2FsX3llYXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGZpc2NhbCB5ZWFyJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2Zvcm1hdF9sYWJlbF9uZXh0X2Zpc2NhbF95ZWFyOiB7XG4gICAgICBtZXNzYWdlOiAnTmV4dCBmaXNjYWwgeWVhcicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9zdGFydF9kYXRlX2xhYmVsOiB7IG1lc3NhZ2U6ICdGcm9tIGRhdGUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZW5kX2RhdGVfbGFiZWw6IHsgbWVzc2FnZTogJ1RvIGRhdGUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfYmVmb3JlX2RhdGVfbGFiZWw6IHsgbWVzc2FnZTogJ0JlZm9yZSBkYXRlJyB9LFxuICAgIHNreXV4X2RhdGVfcmFuZ2VfcGlja2VyX2FmdGVyX2RhdGVfbGFiZWw6IHsgbWVzc2FnZTogJ0FmdGVyIGRhdGUnIH0sXG4gICAgc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZGVmYXVsdF9hcmlhX2xhYmVsOiB7IG1lc3NhZ2U6ICd7MH0gZm9yIHsxfScgfSxcbiAgfSxcbn07XG5cblNreUxpYlJlc291cmNlc1NlcnZpY2UuYWRkUmVzb3VyY2VzKFJFU09VUkNFUyk7XG5cbmV4cG9ydCBjbGFzcyBTa3lEYXRldGltZVJlc291cmNlc1Byb3ZpZGVyIGltcGxlbWVudHMgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIge1xuICBwdWJsaWMgZ2V0U3RyaW5nKFxuICAgIGxvY2FsZUluZm86IFNreUFwcExvY2FsZUluZm8sXG4gICAgbmFtZTogc3RyaW5nLFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRMaWJTdHJpbmdGb3JMb2NhbGUoUkVTT1VSQ0VTLCBsb2NhbGVJbmZvLmxvY2FsZSwgbmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICAgICAgdXNlQ2xhc3M6IFNreURhdGV0aW1lUmVzb3VyY2VzUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRldGltZVJlc291cmNlc01vZHVsZSB7fVxuIl19
@@ -7,14 +7,14 @@ import { SkyLibResourcesService, getLibStringForLocale, SkyI18nModule, SKY_LIB_R
7
7
  import { Subject, takeUntil as takeUntil$1, fromEvent, BehaviorSubject, forkJoin, distinctUntilChanged as distinctUntilChanged$1, merge } from 'rxjs';
8
8
  import { takeUntil, debounceTime, distinctUntilChanged, first, map } from 'rxjs/operators';
9
9
  import moment from 'moment';
10
- import * as i2$3 from '@angular/forms';
10
+ import * as i6 from '@skyux/forms';
11
+ import { SkyFormErrorModule, SkyFormFieldLabelTextRequiredService, SKY_FORM_ERRORS_ENABLED, SkyInputBoxModule, SkyFormErrorsModule } from '@skyux/forms';
12
+ import * as i2$2 from '@angular/forms';
11
13
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule, FormBuilder, FormControl, NgControl, Validators, ReactiveFormsModule } from '@angular/forms';
12
- import * as i2$2 from '@skyux/forms';
13
- import { SkyFormFieldLabelTextRequiredService, SkyInputBoxModule } from '@skyux/forms';
14
+ import * as i1$1 from '@skyux/core';
15
+ import { SkyLiveAnnouncerService, SkyAppFormat, SkyAffixAutoFitContext, SKY_STACKING_CONTEXT, SkyAffixModule, SkyLogService } from '@skyux/core';
14
16
  import * as i4$1 from '@angular/cdk/a11y';
15
17
  import { A11yModule } from '@angular/cdk/a11y';
16
- import * as i1$1 from '@skyux/core';
17
- import { SkyLiveAnnouncerService, SkyAppFormat, SkyAffixAutoFitContext, SKY_STACKING_CONTEXT, SkyAffixModule } from '@skyux/core';
18
18
  import * as i2$1 from '@skyux/indicators';
19
19
  import { SkyIconModule, SkyWaitModule } from '@skyux/indicators';
20
20
  import * as i4 from '@skyux/popovers';
@@ -81,6 +81,9 @@ const RESOURCES = {
81
81
  },
82
82
  skyux_timepicker_close: { message: 'Done' },
83
83
  skyux_date_range_picker_default_label: { message: 'Select a date range' },
84
+ skyux_date_range_picker_end_date_before_start_date_error_label_text: {
85
+ message: 'Change the date range so that the end date is before the start date.',
86
+ },
84
87
  skyux_date_range_picker_format_label_specific_range: {
85
88
  message: 'Specific range',
86
89
  },
@@ -2148,13 +2151,13 @@ class SkyDatepickerComponent {
2148
2151
  }
2149
2152
  }
2150
2153
  }
2151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyDatepickerComponent, deps: [{ token: i1$1.SkyAffixService }, { token: i0.ChangeDetectorRef }, { token: i1$1.SkyCoreAdapterService }, { token: i1$1.SkyOverlayService }, { token: i2$2.SkyInputBoxHostService, optional: true }, { token: i3.SkyThemeService, optional: true }, { token: SKY_STACKING_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
2154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyDatepickerComponent, deps: [{ token: i1$1.SkyAffixService }, { token: i0.ChangeDetectorRef }, { token: i1$1.SkyCoreAdapterService }, { token: i1$1.SkyOverlayService }, { token: i6.SkyInputBoxHostService, optional: true }, { token: i3.SkyThemeService, optional: true }, { token: SKY_STACKING_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
2152
2155
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: { pickerClass: "pickerClass" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange", dateFormatChange: "dateFormatChange", openChange: "openChange" }, viewQueries: [{ propertyName: "calendar", first: true, predicate: SkyDatepickerCalendarComponent, descendants: true }, { propertyName: "calendarRef", first: true, predicate: ["calendarRef"], descendants: true, read: ElementRef }, { propertyName: "calendarTemplateRef", first: true, predicate: ["calendarTemplateRef"], descendants: true, read: TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"sky-datepicker\">\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content />\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-datepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? calendarId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <sky-icon icon=\"calendar\" size=\"lg\" />\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n class=\"sky-datepicker-calendar-container sky-shadow sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"calendarId\"\n [class.sky-datepicker-hidden]=\"!isVisible\"\n #calendarRef\n >\n <sky-datepicker-calendar\n cdkTrapFocus\n [customDates]=\"customDates\"\n [isDaypickerWaiting]=\"isDaypickerWaiting\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startAtDate]=\"startAtDate\"\n [startingDay]=\"startingDay\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange()\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n </sky-datepicker-calendar>\n </div>\n</ng-template>\n", styles: [".sky-datepicker-calendar-container{position:fixed;border-radius:5px}.sky-datepicker-hidden{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i4$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "component", type: SkyDatepickerCalendarComponent, selector: "sky-datepicker-calendar", inputs: ["customDates", "isDaypickerWaiting", "minDate", "maxDate", "startAtDate", "selectedDate", "startingDay"], outputs: ["calendarDateRangeChange", "calendarModeChange", "selectedDateChange"] }, { kind: "pipe", type: i1.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2153
2156
  }
2154
2157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyDatepickerComponent, decorators: [{
2155
2158
  type: Component,
2156
2159
  args: [{ selector: 'sky-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-datepicker\">\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content />\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-datepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? calendarId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"\n inputBoxHostService?.labelText\n ? ('skyux_datepicker_trigger_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_datepicker_trigger_button_label' | skyLibResources)\n \"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <sky-icon icon=\"calendar\" size=\"lg\" />\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n class=\"sky-datepicker-calendar-container sky-shadow sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"calendarId\"\n [class.sky-datepicker-hidden]=\"!isVisible\"\n #calendarRef\n >\n <sky-datepicker-calendar\n cdkTrapFocus\n [customDates]=\"customDates\"\n [isDaypickerWaiting]=\"isDaypickerWaiting\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startAtDate]=\"startAtDate\"\n [startingDay]=\"startingDay\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange()\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n </sky-datepicker-calendar>\n </div>\n</ng-template>\n", styles: [".sky-datepicker-calendar-container{position:fixed;border-radius:5px}.sky-datepicker-hidden{visibility:hidden}\n"] }]
2157
- }], ctorParameters: () => [{ type: i1$1.SkyAffixService }, { type: i0.ChangeDetectorRef }, { type: i1$1.SkyCoreAdapterService }, { type: i1$1.SkyOverlayService }, { type: i2$2.SkyInputBoxHostService, decorators: [{
2160
+ }], ctorParameters: () => [{ type: i1$1.SkyAffixService }, { type: i0.ChangeDetectorRef }, { type: i1$1.SkyCoreAdapterService }, { type: i1$1.SkyOverlayService }, { type: i6.SkyInputBoxHostService, decorators: [{
2158
2161
  type: Optional
2159
2162
  }] }, { type: i3.SkyThemeService, decorators: [{
2160
2163
  type: Optional
@@ -3221,7 +3224,8 @@ class SkyDatepickerModule {
3221
3224
  SkyAffixModule,
3222
3225
  SkyThemeModule,
3223
3226
  SkyPopoverModule,
3224
- SkyWaitModule], exports: [SkyDatepickerCalendarComponent,
3227
+ SkyWaitModule,
3228
+ SkyFormErrorModule], exports: [SkyDatepickerCalendarComponent,
3225
3229
  SkyDatepickerComponent,
3226
3230
  SkyDatepickerInputDirective,
3227
3231
  SkyFuzzyDatepickerInputDirective] }); }
@@ -3233,7 +3237,8 @@ class SkyDatepickerModule {
3233
3237
  SkyAffixModule,
3234
3238
  SkyThemeModule,
3235
3239
  SkyPopoverModule,
3236
- SkyWaitModule] }); }
3240
+ SkyWaitModule,
3241
+ SkyFormErrorModule] }); }
3237
3242
  }
3238
3243
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyDatepickerModule, decorators: [{
3239
3244
  type: NgModule,
@@ -3261,6 +3266,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
3261
3266
  SkyThemeModule,
3262
3267
  SkyPopoverModule,
3263
3268
  SkyWaitModule,
3269
+ SkyFormErrorModule,
3264
3270
  ],
3265
3271
  exports: [
3266
3272
  SkyDatepickerCalendarComponent,
@@ -4111,6 +4117,22 @@ class SkyDateRangePickerComponent {
4111
4117
  this.formGroup.enable();
4112
4118
  }
4113
4119
  }
4120
+ /**
4121
+ * The label for the date range picker.
4122
+ * @deprecated Use the `labelText` input instead.
4123
+ */
4124
+ set label(value) {
4125
+ this.#_label = value;
4126
+ if (value) {
4127
+ this.#logger.deprecated('SkyDateRangePickerComponent.label', {
4128
+ deprecationMajorVersion: 10,
4129
+ replacementRecommendation: 'Use the `labelText` input instead.',
4130
+ });
4131
+ }
4132
+ }
4133
+ get label() {
4134
+ return this.#_label;
4135
+ }
4114
4136
  get #calculatorIdControl() {
4115
4137
  return this.formGroup.get('calculatorId');
4116
4138
  }
@@ -4121,8 +4143,8 @@ class SkyDateRangePickerComponent {
4121
4143
  return this.formGroup.get('startDate');
4122
4144
  }
4123
4145
  #_calculatorIds;
4146
+ #_label;
4124
4147
  #_value;
4125
- #hostControl;
4126
4148
  #ngUnsubscribe;
4127
4149
  #notifyChange;
4128
4150
  #notifyTouched;
@@ -4130,6 +4152,7 @@ class SkyDateRangePickerComponent {
4130
4152
  #dateRangeSvc;
4131
4153
  #injector;
4132
4154
  #labelTextRequiredSvc;
4155
+ #logger;
4133
4156
  constructor() {
4134
4157
  /**
4135
4158
  * Whether to require users to specify a end date.
@@ -4165,6 +4188,7 @@ class SkyDateRangePickerComponent {
4165
4188
  this.#labelTextRequiredSvc = inject(SkyFormFieldLabelTextRequiredService, {
4166
4189
  optional: true,
4167
4190
  });
4191
+ this.#logger = inject(SkyLogService);
4168
4192
  this.calculators = this.#dateRangeSvc.calculators;
4169
4193
  this.selectedCalculator = this.calculators[0];
4170
4194
  const initialValue = this.#getDefaultValue(this.selectedCalculator);
@@ -4177,23 +4201,23 @@ class SkyDateRangePickerComponent {
4177
4201
  }
4178
4202
  ngOnInit() {
4179
4203
  if (this.#labelTextRequiredSvc) {
4180
- this.#labelTextRequiredSvc.validateLabelText(this.label);
4181
- if (!this.label) {
4204
+ this.#labelTextRequiredSvc.validateLabelText(this.labelText || this.label);
4205
+ if (!this.label && !this.labelText) {
4182
4206
  this.display = 'none';
4183
4207
  }
4184
4208
  }
4185
4209
  }
4186
4210
  ngAfterViewInit() {
4187
- this.#hostControl = this.#injector.get(NgControl, null, {
4211
+ this.hostControl = this.#injector.get(NgControl, null, {
4188
4212
  optional: true,
4189
4213
  self: true,
4190
4214
  })?.control;
4191
4215
  // Set a default value on the control if it's undefined on init.
4192
4216
  // We need to use setTimeout to avoid interfering with the first
4193
4217
  // validation cycle.
4194
- if (isPartialValue(this.#hostControl?.value)) {
4218
+ if (isPartialValue(this.hostControl?.value)) {
4195
4219
  setTimeout(() => {
4196
- this.#hostControl?.setValue(this.#getValue(), {
4220
+ this.hostControl?.setValue(this.#getValue(), {
4197
4221
  emitEvent: false,
4198
4222
  onlySelf: true,
4199
4223
  });
@@ -4201,7 +4225,7 @@ class SkyDateRangePickerComponent {
4201
4225
  }
4202
4226
  // Update the view when "required" or "disabled" states are changed on the
4203
4227
  // host control.
4204
- this.#hostControl?.statusChanges
4228
+ this.hostControl?.statusChanges
4205
4229
  .pipe(distinctUntilChanged$1(), takeUntil$1(this.#ngUnsubscribe))
4206
4230
  .subscribe(() => {
4207
4231
  this.#changeDetector.markForCheck();
@@ -4226,7 +4250,7 @@ class SkyDateRangePickerComponent {
4226
4250
  this.#setValue(value, { emitEvent: false });
4227
4251
  const newValue = this.#getValue();
4228
4252
  // Update the host control if the value is different.
4229
- if (!areDateRangesEqual(this.#hostControl?.value, newValue)) {
4253
+ if (!areDateRangesEqual(this.hostControl?.value, newValue)) {
4230
4254
  this.#notifyChange?.(newValue);
4231
4255
  }
4232
4256
  });
@@ -4240,7 +4264,7 @@ class SkyDateRangePickerComponent {
4240
4264
  // since multiple calls to updateValueAndValidity in the same
4241
4265
  // cycle may collide with one another.
4242
4266
  setTimeout(() => {
4243
- this.#hostControl?.updateValueAndValidity({
4267
+ this.hostControl?.updateValueAndValidity({
4244
4268
  emitEvent: false,
4245
4269
  onlySelf: true,
4246
4270
  });
@@ -4256,7 +4280,7 @@ class SkyDateRangePickerComponent {
4256
4280
  * @see https://github.com/angular/angular/issues/10887#issuecomment-2035267400
4257
4281
  */
4258
4282
  ngDoCheck() {
4259
- const control = this.#hostControl;
4283
+ const control = this.hostControl;
4260
4284
  const touched = this.formGroup.touched;
4261
4285
  if (control) {
4262
4286
  if (control.touched && !touched) {
@@ -4321,14 +4345,14 @@ class SkyDateRangePickerComponent {
4321
4345
  this.#patchValue(value);
4322
4346
  // Update the host control if it is set to a partial or null value.
4323
4347
  if (isPartialValue(value)) {
4324
- this.#hostControl?.setValue(this.#getValue(), {
4348
+ this.hostControl?.setValue(this.#getValue(), {
4325
4349
  emitEvent: false,
4326
4350
  onlySelf: true,
4327
4351
  });
4328
4352
  }
4329
4353
  }
4330
4354
  isRequired() {
4331
- return !!(this.required || this.#hostControl?.hasValidator(Validators.required));
4355
+ return !!(this.required || this.hostControl?.hasValidator(Validators.required));
4332
4356
  }
4333
4357
  onBlur() {
4334
4358
  this.#notifyTouched?.();
@@ -4400,7 +4424,7 @@ class SkyDateRangePickerComponent {
4400
4424
  this.#changeDetector.markForCheck();
4401
4425
  }
4402
4426
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyDateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4403
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.4", type: SkyDateRangePickerComponent, isStandalone: true, selector: "sky-date-range-picker", inputs: { calculatorIds: "calculatorIds", dateFormat: "dateFormat", disabled: ["disabled", "disabled", booleanAttribute], endDateRequired: ["endDateRequired", "endDateRequired", booleanAttribute], helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", hintText: "hintText", label: "label", required: ["required", "required", booleanAttribute], stacked: ["stacked", "stacked", booleanAttribute], startDateRequired: ["startDateRequired", "startDateRequired", booleanAttribute], helpKey: "helpKey" }, host: { properties: { "class.sky-margin-stacked-lg": "this.stacked", "style.display": "this.display" } }, providers: [
4427
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.4", type: SkyDateRangePickerComponent, isStandalone: true, selector: "sky-date-range-picker", inputs: { calculatorIds: "calculatorIds", dateFormat: "dateFormat", disabled: ["disabled", "disabled", booleanAttribute], endDateRequired: ["endDateRequired", "endDateRequired", booleanAttribute], helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", hintText: "hintText", label: "label", labelText: "labelText", required: ["required", "required", booleanAttribute], stacked: ["stacked", "stacked", booleanAttribute], startDateRequired: ["startDateRequired", "startDateRequired", booleanAttribute], helpKey: "helpKey" }, host: { properties: { "class.sky-margin-stacked-lg": "this.stacked", "style.display": "this.display" } }, providers: [
4404
4428
  {
4405
4429
  provide: NG_VALIDATORS,
4406
4430
  useExisting: SkyDateRangePickerComponent,
@@ -4411,7 +4435,8 @@ class SkyDateRangePickerComponent {
4411
4435
  useExisting: SkyDateRangePickerComponent,
4412
4436
  multi: true,
4413
4437
  },
4414
- ], ngImport: i0, template: "<div\n class=\"sky-date-range-picker\"\n [formGroup]=\"formGroup\"\n (focusout)=\"onBlur()\"\n>\n <div\n class=\"sky-date-range-picker-form-group\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n !showStartDatePicker && !showEndDatePicker\n }\"\n >\n <sky-input-box\n [hasErrors]=\"hasErrors\"\n [helpKey]=\"helpKey\"\n [helpPopoverContent]=\"helpPopoverContent\"\n [helpPopoverTitle]=\"helpPopoverTitle\"\n [hintText]=\"hintText\"\n [labelText]=\"\n label || ('skyux_date_range_picker_default_label' | skyLibResources)\n \"\n >\n <select\n formControlName=\"calculatorId\"\n [required]=\"isRequired()\"\n (blur)=\"onBlur()\"\n >\n <option\n *ngFor=\"let calculator of calculators\"\n [value]=\"calculator.calculatorId\"\n >\n {{\n calculator._shortDescriptionResourceKey\n ? (calculator._shortDescriptionResourceKey | skyLibResources)\n : calculator.shortDescription\n }}\n </option>\n </select>\n </sky-input-box>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper\"\n [hidden]=\"!showStartDatePicker\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n showStartDatePicker && !showEndDatePicker\n }\"\n >\n <sky-input-box\n [errorsScreenReaderOnly]=\"true\"\n [hasErrors]=\"hasErrors\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker>\n <input\n formControlName=\"startDate\"\n name=\"startDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n : label)\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"\n showStartDatePicker && (startDateRequired || isRequired())\n \"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper\"\n [hidden]=\"!showEndDatePicker\"\n [ngClass]=\"{ 'sky-date-range-picker-last-input': showEndDatePicker }\"\n >\n <sky-input-box\n [errorsScreenReaderOnly]=\"true\"\n [hasErrors]=\"hasErrors\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker>\n <input\n formControlName=\"endDate\"\n name=\"endDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n : label)\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"showEndDatePicker && (endDateRequired || isRequired())\"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n</div>\n", styles: [":host{display:block}.sky-date-range-picker{display:flex}@media (max-width: 768px){.sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:var(--sky-margin-stacked-lg)}}:host .sky-date-range-picker{flex-direction:column}:host .sky-date-range-picker-form-group{flex-basis:100%}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:column}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}@media (min-width: 768px){:host .sky-date-range-picker{flex-direction:initial}:host .sky-date-range-picker-form-group{flex-basis:33.3333333333%}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:5px}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:5px}}:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:initial}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:33.3333333333%}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:5px}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:5px}@media (min-width: 768px){:host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}}.sky-responsive-container-sm :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-md :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-lg :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{padding:0}@media (min-width: 768px){:host-context(.sky-theme-modern) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-right:20px}}.sky-theme-modern .sky-date-range-picker-form-group{padding:0}@media (min-width: 768px){.sky-theme-modern .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-right:20px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: SkyDatepickerModule }, { kind: "component", type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: ["pickerClass"], outputs: ["calendarDateRangeChange", "dateFormatChange", "openChange"] }, { kind: "directive", type: SkyDatepickerInputDirective, selector: "[skyDatepickerInput]", inputs: ["dateFormat", "disabled", "maxDate", "minDate", "startAtDate", "skyDatepickerInput", "skyDatepickerNoValidate", "startingDay", "strict"] }, { kind: "pipe", type: SkyDateRangePickerEndDateResourceKeyPipe, name: "skyDateRangePickerEndDateResourceKey" }, { kind: "pipe", type: SkyDateRangePickerStartDateResourceKeyPipe, name: "skyDateRangePickerStartDateResourceKey" }, { kind: "ngmodule", type: SkyDatetimeResourcesModule }, { kind: "pipe", type: i1.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyInputBoxModule }, { kind: "component", type: i2$2.λ10, selector: "sky-input-box", inputs: ["hasErrors", "disabled", "labelText", "characterLimit", "stacked", "helpPopoverTitle", "helpPopoverContent", "helpKey", "hintText", "errorsScreenReaderOnly"] }, { kind: "directive", type: i2$2.λ20, selector: "input:not([skyId]):not(.sky-form-control),select:not([skyId]):not(.sky-form-control),textarea:not([skyId]):not(.sky-form-control)", inputs: ["autocomplete"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4438
+ { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },
4439
+ ], ngImport: i0, template: "<div\n class=\"sky-date-range-picker\"\n [formGroup]=\"formGroup\"\n (focusout)=\"onBlur()\"\n>\n <div\n class=\"sky-date-range-picker-form-group\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n !showStartDatePicker && !showEndDatePicker\n }\"\n >\n <sky-input-box\n [hasErrors]=\"hasErrors\"\n [helpKey]=\"helpKey\"\n [helpPopoverContent]=\"helpPopoverContent\"\n [helpPopoverTitle]=\"helpPopoverTitle\"\n [hintText]=\"hintText\"\n [labelText]=\"\n labelText ||\n label ||\n ('skyux_date_range_picker_default_label' | skyLibResources)\n \"\n >\n <select\n formControlName=\"calculatorId\"\n [required]=\"isRequired()\"\n (blur)=\"onBlur()\"\n >\n <option\n *ngFor=\"let calculator of calculators\"\n [value]=\"calculator.calculatorId\"\n >\n {{\n calculator._shortDescriptionResourceKey\n ? (calculator._shortDescriptionResourceKey | skyLibResources)\n : calculator.shortDescription\n }}\n </option>\n </select>\n </sky-input-box>\n <sky-form-errors\n *ngIf=\"labelText && hostControl?.errors?.['skyDateRange']\"\n [labelText]=\"labelText\"\n >\n <sky-form-error\n *ngIf=\"\n hostControl?.errors?.['skyDateRange']?.errors.endDateBeforeStartDate\n \"\n [errorName]=\"'endDateBeforeStartDate'\"\n [errorText]=\"\n 'skyux_date_range_picker_end_date_before_start_date_error_label_text'\n | skyLibResources\n \"\n />\n <ng-content select=\"sky-form-error\" />\n </sky-form-errors>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper\"\n [hidden]=\"!showStartDatePicker\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n showStartDatePicker && !showEndDatePicker\n }\"\n >\n <sky-input-box\n [errorsScreenReaderOnly]=\"true\"\n [hasErrors]=\"hasErrors\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker>\n <input\n formControlName=\"startDate\"\n name=\"startDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n labelText || label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n : (labelText ? labelText : label))\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"\n showStartDatePicker && (startDateRequired || isRequired())\n \"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper\"\n [hidden]=\"!showEndDatePicker\"\n [ngClass]=\"{ 'sky-date-range-picker-last-input': showEndDatePicker }\"\n >\n <sky-input-box\n [errorsScreenReaderOnly]=\"true\"\n [hasErrors]=\"hasErrors\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker>\n <input\n formControlName=\"endDate\"\n name=\"endDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n labelText || label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n : (labelText ? labelText : label))\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"showEndDatePicker && (endDateRequired || isRequired())\"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n</div>\n", styles: [":host{display:block}.sky-date-range-picker{display:flex}@media (max-width: 768px){.sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:var(--sky-margin-stacked-lg)}}:host .sky-date-range-picker{flex-direction:column}:host .sky-date-range-picker-form-group{flex-basis:100%}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:column}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}@media (min-width: 768px){:host .sky-date-range-picker{flex-direction:initial}:host .sky-date-range-picker-form-group{flex-basis:33.3333333333%}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:5px}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:5px}}:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:initial}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:33.3333333333%}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:5px}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:5px}@media (min-width: 768px){:host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}}.sky-responsive-container-sm :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-md :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-lg :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{padding:0}@media (min-width: 768px){:host-context(.sky-theme-modern) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-right:20px}}.sky-theme-modern .sky-date-range-picker-form-group{padding:0}@media (min-width: 768px){.sky-theme-modern .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-right:20px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: SkyDatepickerModule }, { kind: "component", type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: ["pickerClass"], outputs: ["calendarDateRangeChange", "dateFormatChange", "openChange"] }, { kind: "directive", type: SkyDatepickerInputDirective, selector: "[skyDatepickerInput]", inputs: ["dateFormat", "disabled", "maxDate", "minDate", "startAtDate", "skyDatepickerInput", "skyDatepickerNoValidate", "startingDay", "strict"] }, { kind: "pipe", type: SkyDateRangePickerEndDateResourceKeyPipe, name: "skyDateRangePickerEndDateResourceKey" }, { kind: "pipe", type: SkyDateRangePickerStartDateResourceKeyPipe, name: "skyDateRangePickerStartDateResourceKey" }, { kind: "ngmodule", type: SkyDatetimeResourcesModule }, { kind: "pipe", type: i1.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyInputBoxModule }, { kind: "component", type: i6.λ10, selector: "sky-input-box", inputs: ["hasErrors", "disabled", "labelText", "characterLimit", "stacked", "helpPopoverTitle", "helpPopoverContent", "helpKey", "hintText", "errorsScreenReaderOnly"] }, { kind: "directive", type: i6.λ20, selector: "input:not([skyId]):not(.sky-form-control),select:not([skyId]):not(.sky-form-control),textarea:not([skyId]):not(.sky-form-control)", inputs: ["autocomplete"] }, { kind: "component", type: i6.λ22, selector: "sky-form-error", inputs: ["errorName", "errorText"] }, { kind: "ngmodule", type: SkyFormErrorsModule }, { kind: "component", type: i6.λ21, selector: "sky-form-errors", inputs: ["errors", "labelText", "showErrors"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4415
4440
  }
4416
4441
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyDateRangePickerComponent, decorators: [{
4417
4442
  type: Component,
@@ -4424,6 +4449,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
4424
4449
  SkyDateRangePickerStartDateResourceKeyPipe,
4425
4450
  SkyDatetimeResourcesModule,
4426
4451
  SkyInputBoxModule,
4452
+ SkyFormErrorsModule,
4427
4453
  ], providers: [
4428
4454
  {
4429
4455
  provide: NG_VALIDATORS,
@@ -4435,7 +4461,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
4435
4461
  useExisting: SkyDateRangePickerComponent,
4436
4462
  multi: true,
4437
4463
  },
4438
- ], selector: 'sky-date-range-picker', standalone: true, template: "<div\n class=\"sky-date-range-picker\"\n [formGroup]=\"formGroup\"\n (focusout)=\"onBlur()\"\n>\n <div\n class=\"sky-date-range-picker-form-group\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n !showStartDatePicker && !showEndDatePicker\n }\"\n >\n <sky-input-box\n [hasErrors]=\"hasErrors\"\n [helpKey]=\"helpKey\"\n [helpPopoverContent]=\"helpPopoverContent\"\n [helpPopoverTitle]=\"helpPopoverTitle\"\n [hintText]=\"hintText\"\n [labelText]=\"\n label || ('skyux_date_range_picker_default_label' | skyLibResources)\n \"\n >\n <select\n formControlName=\"calculatorId\"\n [required]=\"isRequired()\"\n (blur)=\"onBlur()\"\n >\n <option\n *ngFor=\"let calculator of calculators\"\n [value]=\"calculator.calculatorId\"\n >\n {{\n calculator._shortDescriptionResourceKey\n ? (calculator._shortDescriptionResourceKey | skyLibResources)\n : calculator.shortDescription\n }}\n </option>\n </select>\n </sky-input-box>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper\"\n [hidden]=\"!showStartDatePicker\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n showStartDatePicker && !showEndDatePicker\n }\"\n >\n <sky-input-box\n [errorsScreenReaderOnly]=\"true\"\n [hasErrors]=\"hasErrors\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker>\n <input\n formControlName=\"startDate\"\n name=\"startDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n : label)\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"\n showStartDatePicker && (startDateRequired || isRequired())\n \"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper\"\n [hidden]=\"!showEndDatePicker\"\n [ngClass]=\"{ 'sky-date-range-picker-last-input': showEndDatePicker }\"\n >\n <sky-input-box\n [errorsScreenReaderOnly]=\"true\"\n [hasErrors]=\"hasErrors\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker>\n <input\n formControlName=\"endDate\"\n name=\"endDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n : label)\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"showEndDatePicker && (endDateRequired || isRequired())\"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n</div>\n", styles: [":host{display:block}.sky-date-range-picker{display:flex}@media (max-width: 768px){.sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:var(--sky-margin-stacked-lg)}}:host .sky-date-range-picker{flex-direction:column}:host .sky-date-range-picker-form-group{flex-basis:100%}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:column}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}@media (min-width: 768px){:host .sky-date-range-picker{flex-direction:initial}:host .sky-date-range-picker-form-group{flex-basis:33.3333333333%}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:5px}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:5px}}:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:initial}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:33.3333333333%}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:5px}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:5px}@media (min-width: 768px){:host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}}.sky-responsive-container-sm :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-md :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-lg :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{padding:0}@media (min-width: 768px){:host-context(.sky-theme-modern) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-right:20px}}.sky-theme-modern .sky-date-range-picker-form-group{padding:0}@media (min-width: 768px){.sky-theme-modern .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-right:20px}}\n"] }]
4464
+ { provide: SKY_FORM_ERRORS_ENABLED, useValue: true },
4465
+ ], selector: 'sky-date-range-picker', standalone: true, template: "<div\n class=\"sky-date-range-picker\"\n [formGroup]=\"formGroup\"\n (focusout)=\"onBlur()\"\n>\n <div\n class=\"sky-date-range-picker-form-group\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n !showStartDatePicker && !showEndDatePicker\n }\"\n >\n <sky-input-box\n [hasErrors]=\"hasErrors\"\n [helpKey]=\"helpKey\"\n [helpPopoverContent]=\"helpPopoverContent\"\n [helpPopoverTitle]=\"helpPopoverTitle\"\n [hintText]=\"hintText\"\n [labelText]=\"\n labelText ||\n label ||\n ('skyux_date_range_picker_default_label' | skyLibResources)\n \"\n >\n <select\n formControlName=\"calculatorId\"\n [required]=\"isRequired()\"\n (blur)=\"onBlur()\"\n >\n <option\n *ngFor=\"let calculator of calculators\"\n [value]=\"calculator.calculatorId\"\n >\n {{\n calculator._shortDescriptionResourceKey\n ? (calculator._shortDescriptionResourceKey | skyLibResources)\n : calculator.shortDescription\n }}\n </option>\n </select>\n </sky-input-box>\n <sky-form-errors\n *ngIf=\"labelText && hostControl?.errors?.['skyDateRange']\"\n [labelText]=\"labelText\"\n >\n <sky-form-error\n *ngIf=\"\n hostControl?.errors?.['skyDateRange']?.errors.endDateBeforeStartDate\n \"\n [errorName]=\"'endDateBeforeStartDate'\"\n [errorText]=\"\n 'skyux_date_range_picker_end_date_before_start_date_error_label_text'\n | skyLibResources\n \"\n />\n <ng-content select=\"sky-form-error\" />\n </sky-form-errors>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper\"\n [hidden]=\"!showStartDatePicker\"\n [ngClass]=\"{\n 'sky-date-range-picker-last-input':\n showStartDatePicker && !showEndDatePicker\n }\"\n >\n <sky-input-box\n [errorsScreenReaderOnly]=\"true\"\n [hasErrors]=\"hasErrors\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker>\n <input\n formControlName=\"startDate\"\n name=\"startDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n labelText || label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n : (labelText ? labelText : label))\n : (selectedCalculator.type\n | skyDateRangePickerStartDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"\n showStartDatePicker && (startDateRequired || isRequired())\n \"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n <div\n class=\"sky-date-range-picker-form-group sky-date-range-datepicker-wrapper\"\n [hidden]=\"!showEndDatePicker\"\n [ngClass]=\"{ 'sky-date-range-picker-last-input': showEndDatePicker }\"\n >\n <sky-input-box\n [errorsScreenReaderOnly]=\"true\"\n [hasErrors]=\"hasErrors\"\n [labelText]=\"\n selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources\n \"\n >\n <sky-datepicker>\n <input\n formControlName=\"endDate\"\n name=\"endDate\"\n skyDatepickerInput\n type=\"text\"\n [attr.aria-label]=\"\n labelText || label\n ? ('skyux_date_range_picker_default_aria_label'\n | skyLibResources\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n : (labelText ? labelText : label))\n : (selectedCalculator.type\n | skyDateRangePickerEndDateResourceKey\n | skyLibResources)\n \"\n [dateFormat]=\"dateFormat\"\n [required]=\"showEndDatePicker && (endDateRequired || isRequired())\"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n</div>\n", styles: [":host{display:block}.sky-date-range-picker{display:flex}@media (max-width: 768px){.sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-bottom:var(--sky-margin-stacked-lg)}}:host .sky-date-range-picker{flex-direction:column}:host .sky-date-range-picker-form-group{flex-basis:100%}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:column}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:initial}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:initial}@media (min-width: 768px){:host .sky-date-range-picker{flex-direction:initial}:host .sky-date-range-picker-form-group{flex-basis:33.3333333333%}:host .sky-date-range-picker-form-group:not(:first-of-type){padding-left:5px}:host .sky-date-range-picker-form-group:not(:last-of-type){padding-right:5px}}:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:initial}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:33.3333333333%}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:first-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:first-of-type){padding-left:5px}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group:not(:last-of-type),:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group:not(:last-of-type){padding-right:5px}@media (min-width: 768px){:host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}}.sky-responsive-container-sm :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-md :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group,.sky-responsive-container-lg :host-context(sky-filter-inline-item) .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{padding:0}@media (min-width: 768px){:host-context(.sky-theme-modern) .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-right:20px}}.sky-theme-modern .sky-date-range-picker-form-group{padding:0}@media (min-width: 768px){.sky-theme-modern .sky-date-range-picker-form-group:not(.sky-date-range-picker-last-input){margin-right:20px}}\n"] }]
4439
4466
  }], ctorParameters: () => [], propDecorators: { calculatorIds: [{
4440
4467
  type: Input
4441
4468
  }], dateFormat: [{
@@ -4454,6 +4481,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
4454
4481
  type: Input
4455
4482
  }], label: [{
4456
4483
  type: Input
4484
+ }], labelText: [{
4485
+ type: Input
4457
4486
  }], required: [{
4458
4487
  type: Input,
4459
4488
  args: [{ transform: booleanAttribute }]
@@ -4475,13 +4504,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
4475
4504
 
4476
4505
  class SkyDateRangePickerModule {
4477
4506
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4478
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: SkyDateRangePickerModule, imports: [SkyDateRangePickerComponent], exports: [SkyDateRangePickerComponent] }); }
4479
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyDateRangePickerModule, imports: [SkyDateRangePickerComponent] }); }
4507
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: SkyDateRangePickerModule, imports: [SkyDateRangePickerComponent], exports: [SkyDateRangePickerComponent, SkyFormErrorModule] }); }
4508
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyDateRangePickerModule, imports: [SkyDateRangePickerComponent, SkyFormErrorModule] }); }
4480
4509
  }
4481
4510
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyDateRangePickerModule, decorators: [{
4482
4511
  type: NgModule,
4483
4512
  args: [{
4484
- exports: [SkyDateRangePickerComponent],
4513
+ exports: [SkyDateRangePickerComponent, SkyFormErrorModule],
4485
4514
  imports: [SkyDateRangePickerComponent],
4486
4515
  }]
4487
4516
  }] });
@@ -4840,13 +4869,13 @@ class SkyTimepickerComponent {
4840
4869
  /* istanbul ignore next */
4841
4870
  this.#overlayKeyupListener?.unsubscribe();
4842
4871
  }
4843
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyTimepickerComponent, deps: [{ token: i1$1.SkyAffixService }, { token: i0.ChangeDetectorRef }, { token: i1$1.SkyCoreAdapterService }, { token: i1$1.SkyOverlayService }, { token: i2$2.SkyInputBoxHostService, optional: true }, { token: i3.SkyThemeService, optional: true }, { token: SKY_STACKING_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
4872
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyTimepickerComponent, deps: [{ token: i1$1.SkyAffixService }, { token: i0.ChangeDetectorRef }, { token: i1$1.SkyCoreAdapterService }, { token: i1$1.SkyOverlayService }, { token: i6.SkyInputBoxHostService, optional: true }, { token: i3.SkyThemeService, optional: true }, { token: SKY_STACKING_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
4844
4873
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: SkyTimepickerComponent, selector: "sky-timepicker", outputs: { selectedTimeChanged: "selectedTimeChanged" }, viewQueries: [{ propertyName: "timepickerRef", first: true, predicate: ["timepickerRef"], descendants: true, read: ElementRef }, { propertyName: "timepickerTemplateRef", first: true, predicate: ["timepickerTemplateRef"], descendants: true, read: TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"sky-timepicker\">\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content />\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-timepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? timepickerId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n inputBoxHostService?.labelText\n ? ('skyux_timepicker_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_timepicker_button_label' | skyLibResources)\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"\n inputBoxHostService?.labelText\n ? ('skyux_timepicker_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_timepicker_button_label' | skyLibResources)\n \"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <sky-icon icon=\"clock\" size=\"lg\" />\n </button>\n </div>\n</ng-template>\n\n<ng-template #timepickerTemplateRef>\n <div\n class=\"sky-timepicker-container sky-shadow sky-box sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"timepickerId\"\n [class.sky-timepicker-hidden]=\"!isVisible\"\n #timepickerRef\n >\n <div class=\"sky-timepicker-content\">\n <section\n class=\"sky-timepicker-column\"\n [ngClass]=\"{ 'sky-timepicker-24hour': is8601 }\"\n >\n <ol>\n <li *ngFor=\"let hour of hours\">\n <button\n name=\"hour\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedHour === hour }\"\n (click)=\"setTime($event)\"\n >\n {{ hour }}\n </button>\n </li>\n </ol>\n </section>\n <section class=\"sky-timepicker-column\">\n <ol>\n <li *ngFor=\"let minute of minutes\">\n <button\n name=\"minute\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMinute === minute }\"\n (click)=\"setTime($event)\"\n >\n {{ '00'.substring(0, 2 - minute.toString().length) + minute }}\n </button>\n </li>\n </ol>\n </section>\n <section *ngIf=\"!is8601\" class=\"sky-timepicker-column\">\n <ol>\n <li>\n <button\n name=\"meridie\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMeridies === 'AM' }\"\n (click)=\"setTime($event)\"\n >\n AM\n </button>\n </li>\n <li>\n <button\n name=\"meridie\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMeridies === 'PM' }\"\n (click)=\"setTime($event)\"\n >\n PM\n </button>\n </li>\n </ol>\n </section>\n </div>\n <div class=\"sky-timepicker-footer\">\n <section class=\"sky-timepicker-column\">\n <button\n class=\"sky-btn sky-btn-primary\"\n type=\"button\"\n (click)=\"onCloseButtonClick()\"\n >\n {{ 'skyux_timepicker_close' | skyLibResources }}\n </button>\n </section>\n </div>\n </div>\n</ng-template>\n", styles: [".sky-timepicker-container{position:fixed;font-size:15px;padding:5px;background-color:#eeeeef;border-radius:5px}.sky-timepicker-container :last-child ol{display:flex;flex-direction:column;height:100%}.sky-timepicker-container :last-child ol li{border-bottom:1px solid #e2e3e4;flex:1}.sky-timepicker-column{margin:5px}.sky-timepicker-column ol{border-top:1px solid #e2e3e4;border-right:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;column-gap:1px;columns:2;list-style-type:none;margin:0;padding:0}.sky-timepicker-column ol li{text-align:center;cursor:pointer;margin:0}.sky-timepicker-column ol li button{cursor:pointer}.sky-timepicker-column ol li button:focus{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.sky-timepicker-column ol li button:hover{background-color:#eeeeef}.sky-timepicker-column ol li button:active{background-color:#e2e3e4}.sky-timepicker-column ol li button.sky-btn-active:hover{background-color:#c1e8fb}.sky-timepicker-column ol .sky-btn-active{background-color:#c1e8fb;box-shadow:inset 0 0 0 2px #00b4f1;border-radius:3px}.sky-timepicker-column.sky-timepicker-24hour ol{columns:4}.sky-timepicker-column.sky-timepicker-24hour ol li{border-bottom-width:0}.sky-timepicker-content{display:flex}.sky-timepicker-content button{background-color:#fff;border-width:0;padding:5px 15px;width:100%;height:100%}.sky-timepicker-footer{margin:0;padding:0 5px}.sky-timepicker-footer .sky-timepicker-column{margin-left:0;margin-right:0;width:100%}.sky-timepicker-hidden{visibility:hidden}.sky-timepicker-clock-icon-modern,.sky-theme-modern .sky-timepicker-clock-icon-default{display:none}.sky-theme-modern .sky-timepicker-clock-icon-modern{display:inline}.sky-theme-modern .sky-timepicker-container{background-color:#fff;border:solid 1px #cdcfd2;border-radius:6px;font-size:16px}.sky-theme-modern .sky-timepicker-container:focus-within{border:solid 2px #1870B8;padding:4px}.sky-theme-modern .sky-timepicker-container:last-child ol li{border-bottom:none}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol .sky-btn-default{border-width:1px;border-color:transparent;padding:4px 6px;outline:none}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:hover:not(.sky-btn-active){background-color:transparent}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol .sky-btn-active,.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:hover{box-shadow:inset 0 0 0 1px #00b4f1;border-radius:6px}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:active,.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:focus{outline:none;border-radius:6px;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol li button.sky-btn-active:hover,.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol .sky-btn-active{background-color:var(--sky-background-color-input-selected)}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-container{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-container:not(:focus-within){border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol{border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol button{background-color:transparent;color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol .sky-btn-active{background-color:#009cd1}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "pipe", type: i1.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4845
4874
  }
4846
4875
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyTimepickerComponent, decorators: [{
4847
4876
  type: Component,
4848
4877
  args: [{ selector: 'sky-timepicker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-timepicker\">\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content />\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-timepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? timepickerId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n inputBoxHostService?.labelText\n ? ('skyux_timepicker_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_timepicker_button_label' | skyLibResources)\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"\n inputBoxHostService?.labelText\n ? ('skyux_timepicker_button_label_context'\n | skyLibResources: inputBoxHostService?.labelText)\n : ('skyux_timepicker_button_label' | skyLibResources)\n \"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <sky-icon icon=\"clock\" size=\"lg\" />\n </button>\n </div>\n</ng-template>\n\n<ng-template #timepickerTemplateRef>\n <div\n class=\"sky-timepicker-container sky-shadow sky-box sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"timepickerId\"\n [class.sky-timepicker-hidden]=\"!isVisible\"\n #timepickerRef\n >\n <div class=\"sky-timepicker-content\">\n <section\n class=\"sky-timepicker-column\"\n [ngClass]=\"{ 'sky-timepicker-24hour': is8601 }\"\n >\n <ol>\n <li *ngFor=\"let hour of hours\">\n <button\n name=\"hour\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedHour === hour }\"\n (click)=\"setTime($event)\"\n >\n {{ hour }}\n </button>\n </li>\n </ol>\n </section>\n <section class=\"sky-timepicker-column\">\n <ol>\n <li *ngFor=\"let minute of minutes\">\n <button\n name=\"minute\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMinute === minute }\"\n (click)=\"setTime($event)\"\n >\n {{ '00'.substring(0, 2 - minute.toString().length) + minute }}\n </button>\n </li>\n </ol>\n </section>\n <section *ngIf=\"!is8601\" class=\"sky-timepicker-column\">\n <ol>\n <li>\n <button\n name=\"meridie\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMeridies === 'AM' }\"\n (click)=\"setTime($event)\"\n >\n AM\n </button>\n </li>\n <li>\n <button\n name=\"meridie\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMeridies === 'PM' }\"\n (click)=\"setTime($event)\"\n >\n PM\n </button>\n </li>\n </ol>\n </section>\n </div>\n <div class=\"sky-timepicker-footer\">\n <section class=\"sky-timepicker-column\">\n <button\n class=\"sky-btn sky-btn-primary\"\n type=\"button\"\n (click)=\"onCloseButtonClick()\"\n >\n {{ 'skyux_timepicker_close' | skyLibResources }}\n </button>\n </section>\n </div>\n </div>\n</ng-template>\n", styles: [".sky-timepicker-container{position:fixed;font-size:15px;padding:5px;background-color:#eeeeef;border-radius:5px}.sky-timepicker-container :last-child ol{display:flex;flex-direction:column;height:100%}.sky-timepicker-container :last-child ol li{border-bottom:1px solid #e2e3e4;flex:1}.sky-timepicker-column{margin:5px}.sky-timepicker-column ol{border-top:1px solid #e2e3e4;border-right:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;column-gap:1px;columns:2;list-style-type:none;margin:0;padding:0}.sky-timepicker-column ol li{text-align:center;cursor:pointer;margin:0}.sky-timepicker-column ol li button{cursor:pointer}.sky-timepicker-column ol li button:focus{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.sky-timepicker-column ol li button:hover{background-color:#eeeeef}.sky-timepicker-column ol li button:active{background-color:#e2e3e4}.sky-timepicker-column ol li button.sky-btn-active:hover{background-color:#c1e8fb}.sky-timepicker-column ol .sky-btn-active{background-color:#c1e8fb;box-shadow:inset 0 0 0 2px #00b4f1;border-radius:3px}.sky-timepicker-column.sky-timepicker-24hour ol{columns:4}.sky-timepicker-column.sky-timepicker-24hour ol li{border-bottom-width:0}.sky-timepicker-content{display:flex}.sky-timepicker-content button{background-color:#fff;border-width:0;padding:5px 15px;width:100%;height:100%}.sky-timepicker-footer{margin:0;padding:0 5px}.sky-timepicker-footer .sky-timepicker-column{margin-left:0;margin-right:0;width:100%}.sky-timepicker-hidden{visibility:hidden}.sky-timepicker-clock-icon-modern,.sky-theme-modern .sky-timepicker-clock-icon-default{display:none}.sky-theme-modern .sky-timepicker-clock-icon-modern{display:inline}.sky-theme-modern .sky-timepicker-container{background-color:#fff;border:solid 1px #cdcfd2;border-radius:6px;font-size:16px}.sky-theme-modern .sky-timepicker-container:focus-within{border:solid 2px #1870B8;padding:4px}.sky-theme-modern .sky-timepicker-container:last-child ol li{border-bottom:none}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol .sky-btn-default{border-width:1px;border-color:transparent;padding:4px 6px;outline:none}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:hover:not(.sky-btn-active){background-color:transparent}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol .sky-btn-active,.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:hover{box-shadow:inset 0 0 0 1px #00b4f1;border-radius:6px}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:active,.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol button:focus{outline:none;border-radius:6px;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol li button.sky-btn-active:hover,.sky-theme-modern .sky-timepicker-container .sky-timepicker-column ol .sky-btn-active{background-color:var(--sky-background-color-input-selected)}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-container{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-container:not(:focus-within){border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol{border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol button{background-color:transparent;color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol .sky-btn-active{background-color:#009cd1}\n"] }]
4849
- }], ctorParameters: () => [{ type: i1$1.SkyAffixService }, { type: i0.ChangeDetectorRef }, { type: i1$1.SkyCoreAdapterService }, { type: i1$1.SkyOverlayService }, { type: i2$2.SkyInputBoxHostService, decorators: [{
4878
+ }], ctorParameters: () => [{ type: i1$1.SkyAffixService }, { type: i0.ChangeDetectorRef }, { type: i1$1.SkyCoreAdapterService }, { type: i1$1.SkyOverlayService }, { type: i6.SkyInputBoxHostService, decorators: [{
4850
4879
  type: Optional
4851
4880
  }] }, { type: i3.SkyThemeService, decorators: [{
4852
4881
  type: Optional