@skyux/datetime 4.12.3 → 4.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/bundles/skyux-datetime.umd.js +1294 -941
  3. package/bundles/skyux-datetime.umd.js.map +1 -1
  4. package/bundles/skyux-datetime.umd.min.js +2 -2
  5. package/bundles/skyux-datetime.umd.min.js.map +1 -1
  6. package/esm2015/modules/datepicker/datepicker-calendar-change.js +1 -0
  7. package/esm2015/modules/datepicker/datepicker-calendar-inner.component.js +30 -4
  8. package/esm2015/modules/datepicker/datepicker-calendar.component.js +15 -2
  9. package/esm2015/modules/datepicker/datepicker-custom-date.js +1 -0
  10. package/esm2015/modules/datepicker/datepicker-date.js +1 -1
  11. package/esm2015/modules/datepicker/datepicker.component.js +47 -4
  12. package/esm2015/modules/datepicker/datepicker.module.js +20 -9
  13. package/esm2015/modules/datepicker/datepicker.service.js +20 -0
  14. package/esm2015/modules/datepicker/daypicker-button.component.js +26 -0
  15. package/esm2015/modules/datepicker/daypicker-cell.component.js +131 -0
  16. package/esm2015/modules/datepicker/daypicker.component.js +95 -3
  17. package/esm2015/public_api.js +1 -1
  18. package/esm2015/skyux-datetime.js +6 -3
  19. package/esm5/modules/datepicker/datepicker-calendar-change.js +1 -0
  20. package/esm5/modules/datepicker/datepicker-calendar-inner.component.js +30 -4
  21. package/esm5/modules/datepicker/datepicker-calendar.component.js +15 -2
  22. package/esm5/modules/datepicker/datepicker-custom-date.js +1 -0
  23. package/esm5/modules/datepicker/datepicker-date.js +1 -1
  24. package/esm5/modules/datepicker/datepicker.component.js +48 -4
  25. package/esm5/modules/datepicker/datepicker.module.js +20 -9
  26. package/esm5/modules/datepicker/datepicker.service.js +21 -0
  27. package/esm5/modules/datepicker/daypicker-button.component.js +27 -0
  28. package/esm5/modules/datepicker/daypicker-cell.component.js +134 -0
  29. package/esm5/modules/datepicker/daypicker.component.js +99 -3
  30. package/esm5/public_api.js +1 -1
  31. package/esm5/skyux-datetime.js +6 -3
  32. package/fesm2015/skyux-datetime.js +1380 -1039
  33. package/fesm2015/skyux-datetime.js.map +1 -1
  34. package/fesm5/skyux-datetime.js +1289 -938
  35. package/fesm5/skyux-datetime.js.map +1 -1
  36. package/modules/datepicker/datepicker-calendar-change.d.ts +24 -0
  37. package/modules/datepicker/datepicker-calendar-inner.component.d.ts +12 -2
  38. package/modules/datepicker/datepicker-calendar.component.d.ts +6 -0
  39. package/modules/datepicker/datepicker-custom-date.d.ts +21 -0
  40. package/modules/datepicker/datepicker-date.d.ts +2 -0
  41. package/modules/datepicker/datepicker.component.d.ts +13 -0
  42. package/modules/datepicker/datepicker.service.d.ts +12 -0
  43. package/modules/datepicker/daypicker-button.component.d.ts +13 -0
  44. package/modules/datepicker/daypicker-cell.component.d.ts +37 -0
  45. package/modules/datepicker/daypicker.component.d.ts +17 -2
  46. package/package.json +3 -2
  47. package/public_api.d.ts +2 -0
  48. package/skyux-datetime.d.ts +5 -2
  49. package/skyux-datetime.metadata.json +1 -1
@@ -1,4 +1,4 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@skyux/i18n"),require("rxjs"),require("rxjs/operators"),require("moment"),require("@angular/common"),require("@angular/forms"),require("@skyux/core"),require("@skyux/forms"),require("@skyux/indicators"),require("@skyux/theme")):"function"==typeof define&&define.amd?define("@skyux/datetime",["exports","@angular/core","@skyux/i18n","rxjs","rxjs/operators","moment","@angular/common","@angular/forms","@skyux/core","@skyux/forms","@skyux/indicators","@skyux/theme"],t):t(((e=e||self).skyux=e.skyux||{},e.skyux.datetime={}),e.ng.core,e.i18n,e.rxjs,e.rxjs.operators,e.moment_,e.ng.common,e.ng.forms,e.core$1,e.forms$1,e.indicators,e.theme)}(this,(function(e,t,n,r,a,i,o,s,c,l,u,d){"use strict";
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@skyux/i18n"),require("rxjs"),require("rxjs/operators"),require("moment"),require("@angular/common"),require("@angular/forms"),require("@skyux/core"),require("@skyux/forms"),require("@skyux/indicators"),require("@skyux/theme"),require("@skyux/popovers")):"function"==typeof define&&define.amd?define("@skyux/datetime",["exports","@angular/core","@skyux/i18n","rxjs","rxjs/operators","moment","@angular/common","@angular/forms","@skyux/core","@skyux/forms","@skyux/indicators","@skyux/theme","@skyux/popovers"],t):t(((e=e||self).skyux=e.skyux||{},e.skyux.datetime={}),e.ng.core,e.i18n,e.rxjs,e.rxjs.operators,e.moment_,e.ng.common,e.ng.forms,e.core$1,e.forms$1,e.indicators,e.theme,e.popovers)}(this,(function(e,t,n,a,r,i,o,s,c,l,u,d,p){"use strict";
2
2
  /*! *****************************************************************************
3
3
  Copyright (c) Microsoft Corporation.
4
4
 
@@ -12,5 +12,5 @@
12
12
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
13
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */function p(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o}function h(e,t){return function(n,r){t(n,r,e)}}var y=i,f=function(){function e(){}return e.format=function(t,r,a){var i;if(r&&r==r){r instanceof Object&&!(r instanceof Date)&&k(r);var o=y(r);return o.isValid()?i=o.toDate():k(r),n.SkyIntlDateFormatter.format(i,t,e._ALIASES[a]||a)}},e._ALIASES={medium:"yMMMdjms",short:"yMdjm",fullDate:"yMMMMEEEEd",longDate:"yMMMMd",mediumDate:"yMMMd",shortDate:"yMd",mediumTime:"jms",shortTime:"jm"},e}();function k(e){throw new Error("Invalid value: "+e)}var m,g,b=function(){function e(e){var t=this;this.localeProvider=e,this.defaultFormat="short",this.defaultLocale="en-US",this.ngUnsubscribe=new r.Subject,this.localeProvider.getLocaleInfo().pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(e){t.defaultLocale=e.locale,t.updateFormattedValue()}))}return e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},e.prototype.transform=function(e,t,n){return this.value=e,this.format=t,this.locale=n,this.updateFormattedValue(),this.formattedValue},e.prototype.updateFormattedValue=function(){var e=this.locale||this.defaultLocale,t=this.format||this.defaultFormat;this.formattedValue=f.format(e,this.value,t)},e.ctorParameters=function(){return[{type:n.SkyAppLocaleProvider}]},e=p([t.Pipe({name:"skyDate",pure:!1})],e)}(),v=function(){function e(){this.resources={"EN-AU":{skyux_date_range_picker_format_label_last_fiscal_year:"Last financial year",skyux_date_range_picker_format_label_this_fiscal_year:"This financial year",skyux_date_range_picker_format_label_next_fiscal_year:"Next financial year"},"EN-GB":{skyux_date_range_picker_format_label_last_fiscal_year:"Last financial year",skyux_date_range_picker_format_label_this_fiscal_year:"This financial year",skyux_date_range_picker_format_label_next_fiscal_year:"Next financial year"},"EN-NZ":{skyux_date_range_picker_format_label_last_fiscal_year:"Last financial year",skyux_date_range_picker_format_label_this_fiscal_year:"This financial year",skyux_date_range_picker_format_label_next_fiscal_year:"Next financial year"},"EN-US":{skyux_date_field_default_label:"Date",skyux_datepicker_trigger_button_label:"Select date",skyux_timepicker_button_label:"Choose time",skyux_timepicker_close:"Done",skyux_timepicker_input_default_label:"Time",skyux_date_range_picker_default_label:"Select a date range",skyux_date_range_picker_format_label_specific_range:"Specific range",skyux_date_range_picker_format_label_before:"Before",skyux_date_range_picker_format_label_after:"After",skyux_date_range_picker_format_label_any_time:"At any time",skyux_date_range_picker_format_label_yesterday:"Yesterday",skyux_date_range_picker_format_label_today:"Today",skyux_date_range_picker_format_label_tomorrow:"Tomorrow",skyux_date_range_picker_format_label_last_week:"Last week",skyux_date_range_picker_format_label_this_week:"This week",skyux_date_range_picker_format_label_next_week:"Next week",skyux_date_range_picker_format_label_last_month:"Last month",skyux_date_range_picker_format_label_this_month:"This month",skyux_date_range_picker_format_label_next_month:"Next month",skyux_date_range_picker_format_label_last_quarter:"Last quarter",skyux_date_range_picker_format_label_this_quarter:"This quarter",skyux_date_range_picker_format_label_next_quarter:"Next quarter",skyux_date_range_picker_format_label_last_calendar_year:"Last calendar year",skyux_date_range_picker_format_label_this_calendar_year:"This calendar year",skyux_date_range_picker_format_label_next_calendar_year:"Next calendar year",skyux_date_range_picker_format_label_last_fiscal_year:"Last fiscal year",skyux_date_range_picker_format_label_this_fiscal_year:"This fiscal year",skyux_date_range_picker_format_label_next_fiscal_year:"Next fiscal year",skyux_date_range_picker_start_date_label:"From date",skyux_date_range_picker_end_date_label:"To date",skyux_date_range_picker_before_date_label:"Before date",skyux_date_range_picker_after_date_label:"After date"}}}return e.prototype.getString=function(e,t){return n.getStringForLocale(this.resources,e.locale,t)},e=p([t.Injectable()],e)}(),D=function(){function e(){}return e=p([t.NgModule({providers:[{provide:n.SKY_LIB_RESOURCES_PROVIDERS,useClass:v,multi:!0}]})],e)}(),_=i,x=function(){function e(e){var t=this;this.localeProvider=e,this.ngUnsubscribe=new r.Subject,this.localeProvider.getLocaleInfo().pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(e){t.currentLocale=e.locale}))}return e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},e.prototype.getCurrentLocale=function(){return this.currentLocale},e.prototype.getLocaleShortFormat=function(e){return _.localeData(e||this.currentLocale).longDateFormat("L")},e.prototype.format=function(e,t,n){if(n||(n=this.currentLocale),!this.isFuzzyDateValid(e))return"";if(!t)return"";var r=this.getDateSeparator(t),a=[],i=t.split(r);n=n||this.currentLocale;for(var o=this.getMomentFromFuzzyDate(e).locale(n),s=0;s<i.length;s++){var c=i[s];if(c)switch(c.substr(0,1).toLowerCase()){case"y":e.year&&a.push(o.format(c));break;case"m":e.month&&a.push(o.format(c));break;case"d":e.day&&a.push(o.format(c))}}return a.join(r)},e.prototype.getMomentFromFuzzyDate=function(e){if(e){var t=e.year||this.getDefaultYear(e),n=e.month>0?e.month-1:0,r=e.day||1;return _([t,n,r])}},e.prototype.getStringFromFuzzyDate=function(e,t){if(e&&t){var n=this.getDateSeparator(t),r=this.getDateFormatIndexes(t),a="",i=[{value:e.year||0,index:r.yearIndex},{value:e.month||0,index:r.monthIndex},{value:e.day||0,index:r.dayIndex}];return i.sort((function(e,t){return e.index-t.index})),i.forEach((function(e){e.value>0&&e.index>-1&&(a&&(a+=n),a+=e.value.toString())})),a.trim()}},e.prototype.getFuzzyDateFromSelectedDate=function(e,t){if(e&&t){var n={},r=this.getDateFormatIndexes(t);return r.yearIndex>-1&&(n.year=e.getFullYear()),r.dayIndex>-1&&(n.day=e.getDate()),r.monthIndex>-1&&(n.month=e.getMonth()+1),n}},e.prototype.getFuzzyDateFromString=function(e,t){if(e&&t){var n,r,a,i=this.getDateComponents(e),o=this.getDateValueIndexes(e,t);switch(i.length){case 3:a=i[o.yearIndex],r=i[o.monthIndex],n=i[o.dayIndex];break;case 2:(a=this.get4DigitYearFromDateString(e))?r=i[0]===a.toString()?i[1]:i[0]:o.dayIndex>-1?n=(r=o.monthIndex<o.dayIndex?i[0]:i[1])===i[1]?i[0]:i[1]:a=(r=o.monthIndex<o.yearIndex?i[0]:i[1])===i[1]?i[0]:i[1];break;case 1:a=e;break;default:return}if(r){if(void 0===(r=this.getMonthNumber(r)))return;if(n){n=parseInt(n,10);var s=this.getMomentFromFuzzyDate({month:r,day:n,year:a});if(isNaN(n)||!s.isValid())return}}if(!a||(a=2===a.toString().length?_.parseTwoDigitYear(a):parseInt(a.toString(),10),!isNaN(a)&&4===a.toString().length))return{month:r,day:n,year:a}}},e.prototype.getFuzzyDateRange=function(e,t){var n,r,a,i,o,s=!1;return e&&e.year&&t&&t.year&&(n=this.getMomentFromFuzzyDate(e),o=(r=this.getMomentFromFuzzyDate(t)).diff(n,"years"),i=r.diff(n,"months"),a=r.diff(n,"days"),s=r.diff(n)>=0),{years:o,months:i,days:a,valid:s}},e.prototype.getCurrentFuzzyDate=function(){var e=_();return{day:e.date(),month:e.month()+1,year:e.year()}},e.prototype.getMostRecentLeapYear=function(){for(var e=(new Date).getFullYear();!this.isLeapYear(e);)e-=1;return e},e.prototype.getDateSeparator=function(e){var t;return["/",".","-"," "].forEach((function(n){!t&&e.indexOf(n)>0&&(t=n)})),t},e.prototype.get4DigitYearFromDateString=function(e){var t,n=this.getDateSeparator(e);if(e.split(n).forEach((function(e){t||4!==parseInt(e,10).toString().length||(t=e)})),t&&!isNaN(Number(t)))return parseInt(t,10)},e.prototype.isLeapYear=function(e){return e%4==0&&e%100!=0||e%400==0},e.prototype.getMonthNumber=function(e){var t,n=parseInt(e,10);if(isNaN(n)){if(!_(e,"MMMM").isValid())return;t=parseInt(_().month(e).format("M"),10)}else t=n;if(1<=t&&t<=12)return t},e.prototype.getDefaultYear=function(e){return 2===e.month&&29===e.day?this.getMostRecentLeapYear():(new Date).getFullYear()},e.prototype.getDateComponents=function(e){var t=this.getDateSeparator(e);return e.split(t)},e.prototype.getDateFormatIndexes=function(e){return{yearIndex:(e=e.toLowerCase()).indexOf("y"),monthIndex:e.indexOf("m"),dayIndex:e.indexOf("d")}},e.prototype.getDateValueIndexes=function(e,t){var n=this.getDateFormatIndexes(t),r=[];return n.yearIndex>-1&&r.push(n.yearIndex),n.monthIndex>-1&&r.push(n.monthIndex),n.dayIndex>-1&&r.push(n.dayIndex),r.sort((function(e,t){return e-t})),{yearIndex:r.indexOf(n.yearIndex),monthIndex:r.indexOf(n.monthIndex),dayIndex:r.indexOf(n.dayIndex)}},e.prototype.isFuzzyDateValid=function(e){return!!e&&(!!(e.day||e.month||e.year)&&(!(!e.day&&e.month&&!e.year)&&!(e.day&&!e.month&&!e.year)))},e.ctorParameters=function(){return[{type:n.SkyAppLocaleProvider}]},e=p([t.Injectable()],e)}(),C=function(){function e(e){this.fuzzyDateService=e}return e.prototype.transform=function(e,t,n){if(e){var r=t||this.fuzzyDateService.getLocaleShortFormat(n),a=n||this.fuzzyDateService.getCurrentLocale();return this.fuzzyDateService.format(e,r,a)}},e.ctorParameters=function(){return[{type:x}]},e=p([t.Pipe({name:"skyFuzzyDate",pure:!1})],e)}(),R=function(){function e(){}return e=p([t.NgModule({declarations:[b,C],providers:[b,C],imports:[o.CommonModule,D],exports:[b,C]})],e)}();(m=e.SkyDateRangeCalculatorId||(e.SkyDateRangeCalculatorId={}))[m.AnyTime=0]="AnyTime",m[m.Before=1]="Before",m[m.After=2]="After",m[m.SpecificRange=3]="SpecificRange",m[m.Yesterday=4]="Yesterday",m[m.Today=5]="Today",m[m.Tomorrow=6]="Tomorrow",m[m.LastWeek=7]="LastWeek",m[m.ThisWeek=8]="ThisWeek",m[m.NextWeek=9]="NextWeek",m[m.LastMonth=10]="LastMonth",m[m.ThisMonth=11]="ThisMonth",m[m.NextMonth=12]="NextMonth",m[m.LastQuarter=13]="LastQuarter",m[m.ThisQuarter=14]="ThisQuarter",m[m.NextQuarter=15]="NextQuarter",m[m.LastCalendarYear=16]="LastCalendarYear",m[m.ThisCalendarYear=17]="ThisCalendarYear",m[m.NextCalendarYear=18]="NextCalendarYear",m[m.LastFiscalYear=19]="LastFiscalYear",m[m.ThisFiscalYear=20]="ThisFiscalYear",m[m.NextFiscalYear=21]="NextFiscalYear",(g=e.SkyDateRangeCalculatorType||(e.SkyDateRangeCalculatorType={}))[g.After=0]="After",g[g.Before=1]="Before",g[g.Range=2]="Range",g[g.Relative=3]="Relative";var I=function(){function e(e){this.renderer=e}return e.prototype.init=function(e){this.el=e.nativeElement},e.prototype.elementIsFocused=function(){var e=document.activeElement;return this.el.contains(e)},e.prototype.elementIsVisible=function(){var e=this.el&&getComputedStyle(this.el);return e&&"visible"===e.visibility},e.prototype.getPlaceholder=function(e){return e.nativeElement.getAttribute("placeholder")},e.prototype.setPlaceholder=function(e,t){this.renderer.setAttribute(e.nativeElement,"placeholder",t)},e.ctorParameters=function(){return[{type:t.Renderer2}]},e=p([t.Injectable()],e)}(),S=i,F=function(){function e(){}return e.setLocale=function(t){S.locale(t||e.defaultLocale)},e.getPreferredShortDateFormat=function(){return S.localeData().longDateFormat("L")||e.defaultShortDateFormat},e.prototype.format=function(e,t){return S(e.getTime()).format(t)},e.prototype.getDateFromString=function(e,t,n){void 0===n&&(n=!1);var r=S(e,t,n);return r.isValid()||(r=S(e,"YYYY-MM-DDThh:mm:ss.SZ",n)),r.toDate()},e.prototype.dateIsValid=function(e){return e&&e instanceof Date&&!isNaN(e.valueOf())&&!isNaN(new Date(e).getDate())},e.defaultLocale="en-US",e.defaultShortDateFormat="MM/DD/YYYY",e}(),w=0,M=function(){function e(){this.selectedDateChange=new t.EventEmitter(void 0),this.calendarModeChange=new t.EventEmitter,this.minMode="day",this.maxMode="year",this.monthColLimit=3,this.yearColLimit=5,this.datepickerMode="day",this.yearRange=20,this.formatDay="DD",this.formatMonth="MMMM",this.formatYear="YYYY",this.formatDayHeader="dd",this.formatDayTitle="MMMM YYYY",this.formatMonthTitle="YYYY",this.datepickerId="sky-datepicker-"+ ++w,this.stepDay={},this.stepMonth={},this.stepYear={},this.modes=["day","month","year"],this.dateFormatter=new F,this.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"}}return Object.defineProperty(e.prototype,"selectedDate",{get:function(){return this._selectedDate},set:function(e){this.dateFormatter.dateIsValid(e)&&(this._selectedDate=e,this.activeDate=e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.selectedDate?this.activeDate=new Date(this.selectedDate):this.activeDate=new Date},e.prototype.ngOnChanges=function(e){this.refreshView()},e.prototype.setCompareHandler=function(e,t){"day"===t&&(this.compareHandlerDay=e),"month"===t&&(this.compareHandlerMonth=e),"year"===t&&(this.compareHandlerYear=e)},e.prototype.compare=function(e,t){if(void 0!==e&&void 0!==t)return"day"===this.datepickerMode&&this.compareHandlerDay?this.compareHandlerDay(e,t):"month"===this.datepickerMode&&this.compareHandlerMonth?this.compareHandlerMonth(e,t):"year"===this.datepickerMode&&this.compareHandlerYear?this.compareHandlerYear(e,t):void 0},e.prototype.setRefreshViewHandler=function(e,t){"day"===t&&(this.refreshViewHandlerDay=e),"month"===t&&(this.refreshViewHandlerMonth=e),"year"===t&&(this.refreshViewHandlerYear=e)},e.prototype.refreshView=function(){"day"===this.datepickerMode&&this.refreshViewHandlerDay&&this.refreshViewHandlerDay(),"month"===this.datepickerMode&&this.refreshViewHandlerMonth&&this.refreshViewHandlerMonth(),"year"===this.datepickerMode&&this.refreshViewHandlerYear&&this.refreshViewHandlerYear()},e.prototype.setKeydownHandler=function(e,t){"day"===t&&(this.handleKeydownDay=e),"month"===t&&(this.handleKeydownMonth=e),"year"===t&&(this.handleKeydownYear=e)},e.prototype.handleKeydown=function(e,t){"day"===this.datepickerMode&&this.handleKeydownDay&&this.handleKeydownDay(e,t),"month"===this.datepickerMode&&this.handleKeydownMonth&&this.handleKeydownMonth(e,t),"year"===this.datepickerMode&&this.handleKeydownYear&&this.handleKeydownYear(e,t)},e.prototype.dateFilter=function(e,t){return this.dateFormatter.format(e,t)},e.prototype.isActive=function(e){return 0===this.compare(e.date,this.activeDate)&&(this.activeDateId=e.uid,!0)},e.prototype.onKeydown=function(e){var t=this.keys[e.which];if(t&&!e.shiftKey&&!e.altKey)if(e.preventDefault(),e.stopPropagation(),"enter"===t||"space"===t){if(this.isDisabled(this.activeDate))return;this.select(this.activeDate)}else!e.ctrlKey||"up"!==t&&"down"!==t?(this.handleKeydown(t,e),this.refreshView()):this.toggleMode("up"===t?1:-1)},e.prototype.createDateObject=function(e,t,n,r){return{date:new Date(e.getFullYear(),e.getMonth(),e.getDate()),label:this.dateFilter(e,t),selected:0===this.compare(e,this.selectedDate),disabled:this.isDisabled(e),current:0===this.compare(e,new Date),secondary:n,uid:r}},e.prototype.createCalendarRows=function(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n},e.prototype.fixTimeZone=function(e){var t=new Date(e);return t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),t},e.prototype.selectCalendar=function(e,t,n){void 0===n&&(n=!1),n||(e.preventDefault(),e.stopPropagation()),this.select(t)},e.prototype.select=function(e,t){void 0===t&&(t=!0),this.activeDate=new Date(e.getFullYear(),e.getMonth(),e.getDate()),this.datepickerMode===this.minMode?(this.selectedDate=new Date(this.activeDate),t&&this.selectedDateChange.emit(this.selectedDate)):(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)-1],this.calendarModeChange.emit(this.datepickerMode)),this.refreshView()},e.prototype.moveCalendar=function(e,t){e.preventDefault(),e.stopPropagation(),this.move(t)},e.prototype.move=function(e){var t;if("day"===this.datepickerMode&&(t=this.stepDay),"month"===this.datepickerMode&&(t=this.stepMonth),"year"===this.datepickerMode&&(t=this.stepYear),t){var n=this.activeDate.getFullYear()+e*(t.years||0),r=this.activeDate.getMonth()+e*(t.months||0);this.activeDate=new Date(n,r,1),this.refreshView()}},e.prototype.toggleModeCalendar=function(e){e.preventDefault(),e.stopPropagation(),this.toggleMode(1)},e.prototype.toggleMode=function(e){1===(e=e||1)&&this.datepickerMode===this.maxMode||this.datepickerMode===this.minMode&&-1===e||(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)+e],this.calendarModeChange.emit(this.datepickerMode),this.refreshView())},e.prototype.isDisabled=function(e){return this.minDate&&this.compare(e,this.minDate)<0||this.maxDate&&this.compare(e,this.maxDate)>0},p([t.Input()],e.prototype,"startingDay",void 0),p([t.Input()],e.prototype,"minDate",void 0),p([t.Input()],e.prototype,"maxDate",void 0),p([t.Input()],e.prototype,"selectedDate",null),p([t.Output()],e.prototype,"selectedDateChange",void 0),p([t.Output()],e.prototype,"calendarModeChange",void 0),e=p([t.Component({selector:"sky-datepicker-inner",template:'<div\n *ngIf="datepickerMode"\n class="sky-datepicker-calendar-inner"\n (keydown)="onKeydown($event)">\n <ng-content></ng-content>\n</div>\n',encapsulation:t.ViewEncapsulation.None,styles:[".sky-datepicker-calendar-inner{border-radius:5px;background-color:#fff;border-top:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;border-right:1px solid #e2e3e4}.sky-datepicker-calendar-inner .sky-btn-default{border:2px solid #fff}.sky-datepicker-calendar-inner .sky-btn-default:hover{border-color:#eeeeef}.sky-datepicker-calendar-inner .sky-datepicker-center{text-align:center}.sky-datepicker-calendar-inner .sky-btn-default.sky-datepicker-btn-selected:hover,.sky-datepicker-calendar-inner .sky-datepicker-btn-selected{background-color:#c1e8fb;border:2px solid #00b4f1}.sky-datepicker-calendar-inner .sky-btn.sky-btn-active{box-shadow:none}.sky-datepicker-calendar-inner .sky-datepicker-secondary{color:#686c73}.sky-datepicker-calendar-inner .sky-datepicker-btn-date{min-width:100%}.sky-datepicker-calendar-inner .sky-datepicker-calendar-title{width:100%}.sky-datepicker-calendar-inner .sky-datepicker-chevron-modern{display:none}.sky-datepicker-calendar-inner .sky-datepicker-header-left{text-align:left}.sky-datepicker-calendar-inner .sky-datepicker-header-right{text-align:right}.sky-theme-modern .sky-datepicker-calendar-inner{border:none;box-shadow:inset 0 0 0 1px #d2d2d2;border-radius:6px;padding:5px 10px}.sky-theme-modern .sky-datepicker-calendar-inner:focus-within{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px 0 rgba(0,0,0,.3)}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default{border:none;box-shadow:inset 0 0 0 1px transparent;padding:5px 7px}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-active,.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-btn-sm.sky-datepicker-btn-date{height:30px;min-width:0;padding:0;width:30px}.sky-theme-modern .sky-datepicker-chevron-default{display:none}.sky-theme-modern .sky-datepicker-chevron-modern{display:inline;font-size:16px}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner:not(:focus-within){border:none;box-shadow:inset 0 0 0 1px #686c73}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner .sky-datepicker-btn-selected{background-color:#009cd1}"]})],e)}(),T=function(){function e(){this.startingDay=0}return e=p([t.Injectable()],e)}(),V=function(){function e(e,n,r){this.adapter=e,this.config=n,this.elementRef=r,this.selectedDateChange=new t.EventEmitter(void 0),this.calendarModeChange=new t.EventEmitter,this._now=new Date,this.formatter=new F,this.configureOptions()}return Object.defineProperty(e.prototype,"startingDay",{get:function(){return this._startingDay||0},set:function(e){this._startingDay=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isVisible",{get:function(){return this.adapter.elementIsVisible()},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){this.adapter.init(this.elementRef)},e.prototype.configureOptions=function(){Object.assign(this,this.config)},e.prototype.onCalendarModeChange=function(e){this.calendarModeChange.emit(e)},e.prototype.onSelectedDateChange=function(e){this.selectedDateChange.emit(e)},e.prototype.writeValue=function(e){void 0!==e&&this.formatter.dateIsValid(e)&&void 0!==this.selectedDate&&0===this._datepicker.compareHandlerDay(e,this.selectedDate)||(this.formatter.dateIsValid(e)?(this.selectedDate=e,this._datepicker.select(e,!1)):(this.selectedDate=new Date,this._datepicker.select(new Date,!1)))},e.ctorParameters=function(){return[{type:I},{type:T},{type:t.ElementRef}]},p([t.Input()],e.prototype,"minDate",void 0),p([t.Input()],e.prototype,"maxDate",void 0),p([t.Input()],e.prototype,"selectedDate",void 0),p([t.Input()],e.prototype,"startingDay",null),p([t.Output()],e.prototype,"selectedDateChange",void 0),p([t.Output()],e.prototype,"calendarModeChange",void 0),p([t.ViewChild(M,{read:M,static:!0})],e.prototype,"_datepicker",void 0),e=p([t.Component({selector:"sky-datepicker-calendar",template:'<div class="sky-datepicker-calendar">\n <sky-datepicker-inner\n [selectedDate]="selectedDate"\n [minDate]="minDate"\n [maxDate]="maxDate"\n [startingDay]="startingDay"\n (selectedDateChange)="onSelectedDateChange($event)"\n (calendarModeChange)="onCalendarModeChange($event)">\n <sky-daypicker tabindex="0"></sky-daypicker>\n <sky-monthpicker tabindex="0"></sky-monthpicker>\n <sky-yearpicker tabindex="0"></sky-yearpicker>\n </sky-datepicker-inner>\n</div>\n',providers:[I],styles:[".sky-datepicker-calendar{display:block}"]})],e)}(),O=function(){function e(e){this.labels=[],this.rows=[],this.weekNumbers=[],this.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31],this.datepicker=e}return e.prototype.ngOnInit=function(){var e=this;this.datepicker.stepDay={months:1},this.datepicker.setRefreshViewHandler((function(){e.refreshDayView()}),"day"),this.datepicker.setCompareHandler(this.compareDays,"day"),this.datepicker.setKeydownHandler((function(t,n){e.keydownDays(t,n)}),"day"),this.datepicker.refreshView()},e.prototype.getDates=function(e,t){for(var n,r=new Array(t),a=new Date(e.getTime()),i=0;i<t;)n=new Date(a.getTime()),n=this.datepicker.fixTimeZone(n),r[i++]=n,a=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);return r},e.prototype.compareDays=function(e,t){var n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=new Date(t.getFullYear(),t.getMonth(),t.getDate());return n.getTime()-r.getTime()},e.prototype.refreshDayView=function(){var e=this.datepicker.activeDate.getFullYear(),t=this.datepicker.activeDate.getMonth(),n=new Date(e,t,1),r=this.datepicker.startingDay-n.getDay(),a=r>0?7-r:-r,i=new Date(n.getTime());a>0&&i.setDate(1-a);for(var o=this.getDates(i,42),s=[],c=0;c<42;c++){var l=this.datepicker.createDateObject(o[c],this.datepicker.formatDay,o[c].getMonth()!==t,this.datepicker.datepickerId+"-"+c);s[c]=l}this.labels=[];for(var u=0;u<7;u++)this.labels[u]={},this.labels[u].abbr=this.datepicker.dateFilter(s[u].date,this.datepicker.formatDayHeader),this.labels[u].full=this.datepicker.dateFilter(s[u].date,"EEEE");this.title=this.datepicker.dateFilter(this.datepicker.activeDate,this.datepicker.formatDayTitle),this.rows=this.datepicker.createCalendarRows(s,7)},e.prototype.keydownDays=function(e,t){var n=this.datepicker.activeDate.getDate();if("left"===e)n-=1;else if("up"===e)n-=7;else if("right"===e)n+=1;else if("down"===e)n+=7;else if("pageup"===e||"pagedown"===e){var r=this.datepicker.activeDate.getMonth()+("pageup"===e?-1:1);this.datepicker.activeDate.setMonth(r,1),n=Math.min(this.getDaysInMonth(this.datepicker.activeDate.getFullYear(),this.datepicker.activeDate.getMonth()),n)}else"home"===e?n=1:"end"===e&&(n=this.getDaysInMonth(this.datepicker.activeDate.getFullYear(),this.datepicker.activeDate.getMonth()));this.datepicker.activeDate.setDate(n)},e.prototype.getDaysInMonth=function(e,t){return 1!==t||e%4!=0||e%400!=0&&e%100==0?this.daysInMonth[t]:29},e.ctorParameters=function(){return[{type:M}]},e=p([t.Component({selector:"sky-daypicker",template:'<div *ngIf="datepicker.datepickerMode === \'day\'"\n class="sky-daypicker-wrapper"\n>\n <table\n class="sky-daypicker-table"\n role="grid"\n [attr.aria-labelledby]="datepicker.datepickerId+\'-title\'"\n [attr.aria-activedescendant]="datepicker.activeDateId"\n >\n <thead>\n <tr>\n <th\n class="sky-datepicker-header-left"\n scope="col"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous"\n (click)="datepicker.moveCalendar($event, -1)"\n tabindex="-1"\n aria-hidden="true"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-left"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-left"\n iconType="skyux"\n ></sky-icon>\n </button>\n </th>\n <th\n scope="col"\n [attr.colspan]="5"\n >\n <button\n [id]="datepicker.datepickerId + \'-title\'"\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title"\n (click)="datepicker.toggleModeCalendar($event)"\n [disabled]="datepicker.datepickerMode === datepicker.maxMode"\n [ngClass]="{\'sky-btn-disabled\': datepicker.datepickerMode === datepicker.maxMode}"\n tabindex="-1"\n aria-hidden="true"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class="sky-datepicker-header-right"\n scope="col"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next"\n (click)="datepicker.moveCalendar($event, 1)"\n tabindex="-1"\n aria-hidden="true"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-right"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-right"\n iconType="skyux"\n ></sky-icon>\n </button>\n </th>\n </tr>\n <tr>\n <th\n scope="col"\n *ngFor="let label of labels"\n class="sky-datepicker-center sky-datepicker-weekdays">\n <small [attr.aria-label]="label.full">\n <b>{{label.abbr}}</b>\n </small>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-template\n ngFor\n [ngForOf]="rows"\n let-row="$implicit"\n let-index="index"\n >\n <tr role="row">\n <td\n *ngFor="let date of row"\n class="sky-datepicker-center"\n role="gridcell"\n [id]="date.uid"\n >\n <button\n type="button"\n class="sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date"\n [ngClass]="{ \'sky-datepicker-btn-selected\': date.selected, \'sky-btn-disabled\': date.disabled, \'sky-btn-active\': datepicker.isActive(date)}"\n [disabled]="date.disabled"\n (click)="datepicker.selectCalendar($event, date.date, true)"\n tabindex="-1"\n >\n <span\n [ngClass]="{\'sky-datepicker-secondary\': date.secondary }"\n >{{date.label}}</span>\n </button>\n </td>\n </tr>\n </ng-template>\n </tbody>\n </table>\n</div>\n',styles:[":host-context(.sky-theme-modern) :host:focus{outline:0}.sky-theme-modern :host:focus{outline:0}"]})],e)}(),P=function(){function e(e){this.rows=[],this.datepicker=e}return e.prototype.ngOnInit=function(){var e=this;this.datepicker.stepMonth={years:1},this.datepicker.setRefreshViewHandler((function(){e.refreshMonthView()}),"month"),this.datepicker.setCompareHandler(this.compareMonth,"month"),this.datepicker.refreshView(),this.datepicker.setKeydownHandler((function(t,n){e.keydownMonths(t,n)}),"month")},e.prototype.compareMonth=function(e,t){var n=new Date(e.getFullYear(),e.getMonth()),r=new Date(t.getFullYear(),t.getMonth());return n.getTime()-r.getTime()},e.prototype.refreshMonthView=function(){for(var e,t=new Array(12),n=this.datepicker.activeDate.getFullYear(),r=0;r<12;r++)e=new Date(n,r,1),e=this.datepicker.fixTimeZone(e),t[r]=this.datepicker.createDateObject(e,this.datepicker.formatMonth,!1,this.datepicker.datepickerId+"-"+r);this.title=this.datepicker.dateFilter(this.datepicker.activeDate,this.datepicker.formatMonthTitle),this.rows=this.datepicker.createCalendarRows(t,this.datepicker.monthColLimit)},e.prototype.keydownMonths=function(e,t){var n=this.datepicker.activeDate.getMonth();if("left"===e)n-=1;else if("up"===e)n-=this.datepicker.monthColLimit;else if("right"===e)n+=1;else if("down"===e)n+=this.datepicker.monthColLimit;else if("pageup"===e||"pagedown"===e){var r=this.datepicker.activeDate.getFullYear()+("pageup"===e?-1:1);this.datepicker.activeDate.setFullYear(r)}else"home"===e?n=0:"end"===e&&(n=11);this.datepicker.activeDate.setMonth(n)},e.ctorParameters=function(){return[{type:M}]},e=p([t.Component({selector:"sky-monthpicker",template:'<table *ngIf="datepicker.datepickerMode===\'month\'" role="grid">\n <thead>\n <tr>\n <th\n class="sky-datepicker-header-left"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous"\n (click)="datepicker.moveCalendar($event, -1)"\n tabindex="-1"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-left"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-left"\n iconType="skyux"\n ></sky-icon>\n </button></th>\n <th [attr.colspan]="((datepicker.monthColLimit - 2) <= 0) ? 1 : datepicker.monthColLimit - 2">\n <button\n [id]="datepicker.datepickerId + \'-title\'"\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title"\n (click)="datepicker.toggleModeCalendar($event)"\n [disabled]="datepicker.datepickerMode === maxMode"\n [ngClass]="{\'sky-btn-disabled\': datepicker.datepickerMode === maxMode}"\n tabindex="-1"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class="sky-datepicker-header-right"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next"\n (click)="datepicker.moveCalendar($event, 1)"\n tabindex="-1"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-right"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-right"\n iconType="skyux"\n ></sky-icon>\n </button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor="let row of rows">\n <td\n *ngFor="let date of row"\n class="text-center"\n role="gridcell"\n id="{{date.uid}}">\n <button\n type="button"\n class="sky-btn sky-btn-default sky-datepicker-btn-date"\n [ngClass]="{\'sky-datepicker-btn-selected\': date.selected, \'sky-btn-disabled\': date.disabled, \'sky-btn-active\': datepicker.isActive(date)}"\n [disabled]="date.disabled"\n (click)="datepicker.selectCalendar($event, date.date)"\n tabindex="-1"\n >\n <span [ngClass]="{\'sky-datepicker-current\': date.current}">{{date.label}}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n',styles:[":host-context(.sky-theme-modern) :host:focus{outline:0}.sky-theme-modern :host:focus{outline:0}"]})],e)}(),Y=function(){function e(e){this.rows=[],this.datepicker=e}return e.prototype.ngOnInit=function(){var e=this;this.datepicker.stepYear={years:this.datepicker.yearRange},this.datepicker.setRefreshViewHandler((function(){e.refreshYearView()}),"year"),this.datepicker.setCompareHandler(this.compareYears,"year"),this.datepicker.setKeydownHandler((function(t,n){e.keydownYears(t,n)}),"year"),this.datepicker.refreshView()},e.prototype.getStartingYear=function(e){return Math.floor((e-1)/this.datepicker.yearRange)*this.datepicker.yearRange+1},e.prototype.compareYears=function(e,t){return e.getFullYear()-t.getFullYear()},e.prototype.refreshYearView=function(){for(var e,t=new Array(this.datepicker.yearRange),n=this.getStartingYear(this.datepicker.activeDate.getFullYear()),r=0;r<this.datepicker.yearRange;r++)(e=new Date(this.datepicker.activeDate)).setFullYear(n+r,0,1),t[r]=this.datepicker.createDateObject(e,this.datepicker.formatYear,!1,this.datepicker.datepickerId+"-"+r);this.title=[t[0].label,t[this.datepicker.yearRange-1].label].join(" - "),this.rows=this.datepicker.createCalendarRows(t,this.datepicker.yearColLimit)},e.prototype.keydownYears=function(e,t){var n=this.datepicker.activeDate.getFullYear();"left"===e?n-=1:"up"===e?n-=this.datepicker.yearColLimit:"right"===e?n+=1:"down"===e?n+=this.datepicker.yearColLimit:"pageup"===e||"pagedown"===e?n+=("pageup"===e?-1:1)*this.datepicker.yearRange:"home"===e?n=this.getStartingYear(this.datepicker.activeDate.getFullYear()):"end"===e&&(n=this.getStartingYear(this.datepicker.activeDate.getFullYear())+this.datepicker.yearRange-1),this.datepicker.activeDate.setFullYear(n)},e.ctorParameters=function(){return[{type:M}]},e=p([t.Component({selector:"sky-yearpicker",template:'<table *ngIf="datepicker.datepickerMode===\'year\'" role="grid">\n <thead>\n <tr>\n <th\n class="sky-datepicker-header-left"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous"\n (click)="datepicker.moveCalendar($event, -1)"\n tabindex="-1"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-left"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-left"\n iconType="skyux"\n ></sky-icon>\n </button>\n </th>\n <th [attr.colspan]="((datepicker.yearColLimit - 2) <= 0) ? 1 : datepicker.yearColLimit - 2">\n <button\n [id]="datepicker.datepickerId + \'-title\'"\n role="heading"\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title"\n (click)="datepicker.toggleModeCalendar($event)"\n [disabled]="datepicker.datepickerMode === datepicker.maxMode"\n [ngClass]="{\'sky-btn-disabled\': datepicker.datepickerMode === datepicker.maxMode}"\n tabindex="-1"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class="sky-datepicker-header-right"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next"\n (click)="datepicker.moveCalendar($event, 1)"\n tabindex="-1"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-right"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-right"\n iconType="skyux"\n ></sky-icon>\n </button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor="let row of rows">\n <td\n *ngFor="let date of row"\n class="sky-datepicker-row"\n role="gridcell"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-datepicker-btn-date"\n [ngClass]="{\'sky-datepicker-btn-selected\': date.selected, \'sky-btn-disabled\': date.disabled, \'sky-btn-active\': datepicker.isActive(date)}"\n [disabled]="date.disabled"\n (click)="datepicker.selectCalendar($event, date.date)"\n tabindex="-1"\n >\n <span\n [ngClass]="{\'sky-datepicker-current\': date.current }">{{date.label}}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n',styles:[":host-context(.sky-theme-modern) :host:focus{outline:0}.sky-theme-modern :host:focus{outline:0}"]})],e)}(),L=0,z=function(){function e(e,n,i,o,s,c){var l=this;this.affixService=e,this.changeDetector=n,this.coreAdapter=i,this.overlayService=o,this.inputBoxHostService=s,this.pickerClass="",this.dateChange=new t.EventEmitter,this.isOpen=!1,this.isVisible=!1,this.ngUnsubscribe=new r.Subject,this._disabled=!1;var u=L++;this.calendarId="sky-datepicker-calendar-"+u,this.triggerButtonId="sky-datepicker-button-"+u,null==c||c.settingsChange.pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(){l.changeDetector.markForCheck()}))}return Object.defineProperty(e.prototype,"buttonIsFocused",{get:function(){if(!this.triggerButtonRef)return!1;var e=document.activeElement;return this.triggerButtonRef.nativeElement===e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"calendarIsFocused",{get:function(){if(!this.calendarRef)return!1;var e=document.activeElement;return this.calendarRef.nativeElement.contains(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"calendarIsVisible",{get:function(){return!!this.calendar&&this.calendar.isVisible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,this.changeDetector.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedDate",{set:function(e){this._selectedDate=e,this.calendar&&this.calendar.writeValue(this._selectedDate)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"calendarRef",{get:function(){return this._calendarRef},set:function(e){var t=this;e&&(this._calendarRef=e,setTimeout((function(){t.calendar.writeValue(t._selectedDate),t.destroyAffixer(),t.createAffixer(),setTimeout((function(){t.coreAdapter.getFocusableChildrenAndApplyFocus(t.calendarRef,".sky-datepicker-calendar-inner",!1),t.isVisible=!0,t.changeDetector.markForCheck()}))})))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.inputBoxHostService&&this.inputBoxHostService.populate({inputTemplate:this.inputTemplateRef,buttonsTemplate:this.triggerButtonTemplateRef})},e.prototype.ngOnDestroy=function(){this.dateChange.complete(),this.ngUnsubscribe.next(),this.ngUnsubscribe.complete(),this.removePickerEventListeners(),this.destroyAffixer(),this.destroyOverlay()},e.prototype.onCalendarModeChange=function(){var e=this;setTimeout((function(){e.affixer.reaffix()}))},e.prototype.onSelectedDateChange=function(e){this.dateChange.emit(e),this.closePicker()},e.prototype.onTriggerButtonClick=function(){this.isOpen?this.closePicker():this.openPicker()},e.prototype.closePicker=function(){this.destroyAffixer(),this.destroyOverlay(),this.removePickerEventListeners(),this.triggerButtonRef.nativeElement.focus(),this.isOpen=!1},e.prototype.openPicker=function(){this.isVisible=!1,this.changeDetector.markForCheck(),this.removePickerEventListeners(),this.calendarUnsubscribe=new r.Subject,this.destroyOverlay(),this.createOverlay(),this.isOpen=!0,this.changeDetector.markForCheck()},e.prototype.createAffixer=function(){var e=this,t=this.affixService.createAffixer(this.calendarRef);t.placementChange.pipe(a.takeUntil(this.calendarUnsubscribe)).subscribe((function(t){e.isVisible=null!==t.placement,e.changeDetector.markForCheck()})),t.affixTo(this.triggerButtonRef.nativeElement,{autoFitContext:c.SkyAffixAutoFitContext.Viewport,enableAutoFit:!0,horizontalAlignment:"right",isSticky:!0,placement:"below"}),this.affixer=t},e.prototype.destroyAffixer=function(){this.affixer&&(this.affixer.destroy(),this.affixer=void 0)},e.prototype.createOverlay=function(){var e=this,t=this.overlayService.create({wrapperClass:this.pickerClass,enableClose:!1,enablePointerEvents:!1});t.backdropClick.pipe(a.takeUntil(this.calendarUnsubscribe)).subscribe((function(){e.isOpen&&e.closePicker()})),this.addKeydownListner(),t.attachTemplate(this.calendarTemplateRef),this.overlay=t},e.prototype.destroyOverlay=function(){this.overlay&&(this.overlayService.close(this.overlay),this.overlay=void 0)},e.prototype.addKeydownListner=function(){var e=this;this.overlayKeydownListner=r.fromEvent(window.document,"keydown").pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(t){var n;"escape"===(null===(n=t.key)||void 0===n?void 0:n.toLowerCase())&&e.isOpen&&e.closePicker()}))},e.prototype.removePickerEventListeners=function(){var e;this.calendarUnsubscribe&&(this.calendarUnsubscribe.next(),this.calendarUnsubscribe.complete(),this.calendarUnsubscribe=void 0),null===(e=this.overlayKeydownListner)||void 0===e||e.unsubscribe()},e.ctorParameters=function(){return[{type:c.SkyAffixService},{type:t.ChangeDetectorRef},{type:c.SkyCoreAdapterService},{type:c.SkyOverlayService},{type:l.SkyInputBoxHostService,decorators:[{type:t.Optional}]},{type:d.SkyThemeService,decorators:[{type:t.Optional}]}]},p([t.Input()],e.prototype,"pickerClass",void 0),p([t.ViewChild(V)],e.prototype,"calendar",void 0),p([t.ViewChild("calendarRef",{read:t.ElementRef})],e.prototype,"calendarRef",null),p([t.ViewChild("calendarTemplateRef",{read:t.TemplateRef})],e.prototype,"calendarTemplateRef",void 0),p([t.ViewChild("triggerButtonRef",{read:t.ElementRef})],e.prototype,"triggerButtonRef",void 0),p([t.ViewChild("inputTemplateRef",{read:t.TemplateRef,static:!0})],e.prototype,"inputTemplateRef",void 0),p([t.ViewChild("triggerButtonTemplateRef",{read:t.TemplateRef,static:!0})],e.prototype,"triggerButtonTemplateRef",void 0),e=p([t.Component({selector:"sky-datepicker",template:'<div\n class="sky-datepicker"\n>\n <ng-container *ngIf="!inputBoxHostService">\n <div\n class="sky-input-group"\n >\n <ng-container *ngTemplateOutlet="inputTemplateRef"></ng-container>\n <ng-container *ngTemplateOutlet="triggerButtonTemplateRef"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div\n class="sky-input-group-btn"\n >\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]="\'skyux_datepicker_trigger_button_label\' | skyLibResources"\n [attr.id]="triggerButtonId"\n [attr.title]="\'skyux_datepicker_trigger_button_label\' | skyLibResources"\n [disabled]="disabled"\n (click)="onTriggerButtonClick()"\n #triggerButtonRef\n >\n <sky-icon *skyThemeIf="\'default\'"\n icon="calendar"\n size="lg"\n ></sky-icon>\n <sky-icon *skyThemeIf="\'modern\'"\n icon="calendar"\n size="lg"\n iconType="skyux"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n class="sky-datepicker-calendar-container sky-shadow sky-elevation-4"\n role="dialog"\n [attr.aria-labelledby]="triggerButtonId"\n [attr.id]="calendarId"\n [class.sky-datepicker-hidden]="!isVisible"\n #calendarRef\n >\n <sky-datepicker-calendar\n [maxDate]="maxDate"\n [minDate]="minDate"\n [startingDay]="startingDay"\n (calendarModeChange)="onCalendarModeChange()"\n (selectedDateChange)="onSelectedDateChange($event)"\n >\n </sky-datepicker-calendar>\n </div>\n</ng-template>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[".sky-datepicker-calendar-container{position:fixed;border-radius:5px}.sky-datepicker-hidden{visibility:hidden}"]}),h(4,t.Optional()),h(5,t.Optional())],e)}(),A=i,E={provide:s.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return U})),multi:!0},j={provide:s.NG_VALIDATORS,useExisting:t.forwardRef((function(){return U})),multi:!0},U=function(){function e(e,t,n,i,o,s,c,l){var u=this;this.adapter=e,this.changeDetector=t,this.configService=n,this.elementRef=i,this.localeProvider=o,this.renderer=s,this.resourcesService=c,this.datepickerComponent=l,this.skyDatepickerNoValidate=!1,this.dateFormatter=new F,this.isFirstChange=!0,this.ngUnsubscribe=new r.Subject,this.onChange=function(e){},this.onTouched=function(){},this.onValidatorChange=function(){},this.initialPlaceholder=this.adapter.getPlaceholder(this.elementRef),this.updatePlaceholder(),this.localeProvider.getLocaleInfo().pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(e){F.setLocale(e.locale),u.preferredShortDateFormat=F.getPreferredShortDateFormat(),u.applyDateFormat()}))}return Object.defineProperty(e.prototype,"dateFormat",{get:function(){return this._dateFormat||this.configService.dateFormat||this.preferredShortDateFormat},set:function(e){e!==this._dateFormat&&(this._dateFormat=e,this.applyDateFormat())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled||!1},set:function(e){this._disabled=e,this.datepickerComponent.disabled=e,this.renderer.setProperty(this.elementRef.nativeElement,"disabled",e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inputIsFocused",{get:function(){return this.adapter.elementIsFocused()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{get:function(){return this._maxDate||this.configService.maxDate},set:function(e){this._maxDate=e,this.datepickerComponent.maxDate=this.maxDate,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minDate",{get:function(){return this._minDate||this.configService.minDate},set:function(e){this._minDate=e,this.datepickerComponent.minDate=this.minDate,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"skyDatepickerInput",{set:function(e){e&&console.warn("[Deprecation warning] You no longer need to provide a template reference variable to the `skyDatepickerInput` attribute (this will be a breaking change in the next major version release).\nDo this instead:\n<sky-datepicker>\n <input skyDatepickerInput />\n</sky-datepicker>")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startingDay",{get:function(){return this._startingDay||this.configService.startingDay},set:function(e){this._startingDay=e,this.datepickerComponent.startingDay=this.startingDay,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"strict",{get:function(){return this._strict||!1},set:function(e){this._strict=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){var t=this.getDateValue(e),n=this._value instanceof Date&&t&&t.getTime()===this._value.getTime(),r=this.isDateStringValid(e);if(r?t===this._value&&n||(this._value=t||e,this.notifyUpdatedValue()):(this._value=e,this.notifyUpdatedValue()),t&&r){var a=this.dateFormatter.format(t,this.dateFormat);this.setInputElementValue(a)}else this.setInputElementValue(e||"")},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;if(!this.datepickerComponent)throw new Error("You must wrap the `skyDatepickerInput` directive within a `<sky-datepicker>` component!");var t=this.elementRef.nativeElement;this.renderer.addClass(t,"sky-form-control"),t.getAttribute("aria-label")||this.resourcesService.getString("skyux_date_field_default_label").pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(n){e.renderer.setAttribute(t,"aria-label",n)}))},e.prototype.ngAfterContentInit=function(){var e=this;this.datepickerComponent.dateChange.pipe(a.distinctUntilChanged()).pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(t){e.isFirstChange=!1,e.value=t,e.onTouched()}))},e.prototype.ngAfterViewInit=function(){var e=this;this.control&&this.control.parent&&setTimeout((function(){e.control.setValue(e.value,{emitEvent:!1}),e.changeDetector.markForCheck()})),this.adapter.init(this.elementRef)},e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},e.prototype.onInputChange=function(e){var t=e.target.value;this.skyDatepickerNoValidate||this.isDateStringValid(t)?this.onValueChange(t):(this._value=t,this.onChange(t),this.control.setErrors({skyDate:{invalid:!0}}))},e.prototype.onInputBlur=function(){this.onTouched()},e.prototype.onInputKeyup=function(){this.control.markAsDirty()},e.prototype.writeValue=function(e){this.value=e},e.prototype.validate=function(e){if(this.control||(this.control=e),!this.skyDatepickerNoValidate){var t=e.value;if(t){var n=this.getDateValue(t);if(!(n&&this.dateFormatter.dateIsValid(n))||!this.isDateStringValid(t))return this.control.markAsTouched(),{skyDate:{invalid:t}};var r=this.minDate;if(r&&this.dateFormatter.dateIsValid(r)&&t<r)return{skyDate:{minDate:r}};var a=this.maxDate;return a&&this.dateFormatter.dateIsValid(a)&&t>a?{skyDate:{maxDate:a}}:void 0}}},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.registerOnValidatorChange=function(e){this.onValidatorChange=e},e.prototype.setDisabledState=function(e){this.disabled=e,this.datepickerComponent.disabled=e},e.prototype.detectInputValueChange=function(){this.onValueChange(this.elementRef.nativeElement.value)},e.prototype.applyDateFormat=function(){if(this.updatePlaceholder(),this.value){var e=this.dateFormatter.format(this.value,this.dateFormat);this.setInputElementValue(e),this.changeDetector.markForCheck()}},e.prototype.onValueChange=function(e){this.isFirstChange=!1,this.value=e},e.prototype.setInputElementValue=function(e){this.renderer.setProperty(this.elementRef.nativeElement,"value",e)},e.prototype.getDateValue=function(e){var t;if(e instanceof Date)t=e;else if("string"==typeof e){var n=this.dateFormatter.getDateFromString(e,this.dateFormat,this.strict);this.dateFormatter.dateIsValid(n)&&(t=n)}return t},e.prototype.isDateStringValid=function(e){if(!e||"string"!=typeof e)return!0;return!!/^[\d\/\-]+$/.test(e)||A(e,A.ISO_8601).isValid()},e.prototype.notifyUpdatedValue=function(){this.onChange(this._value),this.isFirstChange&&this.control&&this.control.markAsPristine(),this.isFirstChange&&this._value&&(this.isFirstChange=!1),this.datepickerComponent.selectedDate=this._value},e.prototype.updatePlaceholder=function(){this.initialPlaceholder||this.adapter.setPlaceholder(this.elementRef,this.dateFormat)},e.ctorParameters=function(){return[{type:I},{type:t.ChangeDetectorRef},{type:T},{type:t.ElementRef},{type:n.SkyAppLocaleProvider},{type:t.Renderer2},{type:n.SkyLibResourcesService},{type:z,decorators:[{type:t.Optional}]}]},p([t.Input()],e.prototype,"dateFormat",null),p([t.Input()],e.prototype,"disabled",null),p([t.Input()],e.prototype,"maxDate",null),p([t.Input()],e.prototype,"minDate",null),p([t.Input()],e.prototype,"skyDatepickerInput",null),p([t.Input()],e.prototype,"skyDatepickerNoValidate",void 0),p([t.Input()],e.prototype,"startingDay",null),p([t.Input()],e.prototype,"strict",null),p([t.HostListener("change",["$event"])],e.prototype,"onInputChange",null),p([t.HostListener("blur")],e.prototype,"onInputBlur",null),p([t.HostListener("keyup")],e.prototype,"onInputKeyup",null),e=p([t.Directive({selector:"[skyDatepickerInput]",providers:[E,j,I]}),h(7,t.Optional())],e)}(),N={provide:s.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return H})),multi:!0},B={provide:s.NG_VALIDATORS,useExisting:t.forwardRef((function(){return H})),multi:!0},H=function(){function e(e,t,n,i,o,s,c,l){var u=this;this.changeDetector=e,this.configService=t,this.elementRef=n,this.fuzzyDateService=i,this.localeProvider=o,this.renderer=s,this.resourcesService=c,this.datepickerComponent=l,this.skyDatepickerNoValidate=!1,this.dateFormatter=new F,this.isFirstChange=!0,this.ngUnsubscribe=new r.Subject,this._futureDisabled=!1,this._disabled=!1,this._yearRequired=!1,this.onChange=function(e){},this.onTouched=function(){},this.onValidatorChange=function(){},this.localeProvider.getLocaleInfo().pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(e){u.locale=e.locale,F.setLocale(u.locale),u.preferredShortDateFormat=F.getPreferredShortDateFormat()}))}return Object.defineProperty(e.prototype,"dateFormat",{get:function(){return this._dateFormat||this.configService.dateFormat||this.preferredShortDateFormat},set:function(e){if(this._dateFormat=e,this.value){var t=this.fuzzyDateService.format(this.value,this.dateFormat,this.locale);this.setInputElementValue(t),this.changeDetector.markForCheck()}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,this.datepickerComponent.disabled=e,this.renderer.setProperty(this.elementRef.nativeElement,"disabled",e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"futureDisabled",{get:function(){return this._futureDisabled},set:function(e){this._futureDisabled=e,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{get:function(){return this._maxDate},set:function(e){this._maxDate=e,this.datepickerComponent.maxDate=this.getMaxDate(),this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minDate",{get:function(){return this._minDate},set:function(e){this._minDate=e,this.datepickerComponent.minDate=this.getMinDate(),this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"skyFuzzyDatepickerInput",{set:function(e){},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startingDay",{get:function(){return this._startingDay||this.configService.startingDay},set:function(e){this._startingDay=e,this.datepickerComponent.startingDay=this.startingDay,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"yearRequired",{get:function(){return this._yearRequired},set:function(e){this._yearRequired=e,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){var t,n,r,a;e instanceof Date?(r=e,a=this.dateFormatter.format(e,this.dateFormat),t=this.fuzzyDateService.getFuzzyDateFromSelectedDate(e,this.dateFormat)):"string"==typeof e?(t=this.fuzzyDateService.getFuzzyDateFromString(e,this.dateFormat),(a=this.fuzzyDateService.format(t,this.dateFormat,this.locale))||(a=e),(n=this.fuzzyDateService.getMomentFromFuzzyDate(t))&&(r=n.toDate())):(t=e,a=this.fuzzyDateService.format(t,this.dateFormat,this.locale),(n=this.fuzzyDateService.getMomentFromFuzzyDate(t))&&(r=n.toDate()));var i=this.fuzzyDatesEqual(this._value,t),o=t!==this._value||!i;this._value=t||e,o&&(this.onChange(this._value),this.isFirstChange&&this.control&&this.control.markAsPristine(),this.isFirstChange&&this._value&&(this.isFirstChange=!1),this.datepickerComponent.selectedDate=r),this.setInputElementValue(a||"")},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;if(this.yearRequired&&-1===this.dateFormat.toLowerCase().indexOf("y"))throw new Error("You have configured conflicting settings. Year is required and dateFormat does not include year.");if(!this.datepickerComponent)throw new Error("You must wrap the `skyFuzzyDatepickerInput` directive within a `<sky-datepicker>` component!");var t=this.elementRef.nativeElement;this.renderer.addClass(t,"sky-form-control"),t.getAttribute("aria-label")||this.resourcesService.getString("skyux_date_field_default_label").pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(n){e.renderer.setAttribute(t,"aria-label",n)}))},e.prototype.ngAfterContentInit=function(){var e=this;this.datepickerComponent.dateChange.pipe(a.distinctUntilChanged(),a.takeUntil(this.ngUnsubscribe)).subscribe((function(t){e.isFirstChange=!1,e.value=t,e.onTouched()}))},e.prototype.ngAfterViewInit=function(){var e=this;this.control&&this.control.parent&&setTimeout((function(){e.control.setValue(e.value,{emitEvent:!1}),e.changeDetector.markForCheck()}))},e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},e.prototype.onInputChange=function(e){this.onValueChange(e.target.value)},e.prototype.onInputBlur=function(){this.onTouched();var e=this.fuzzyDateService.format(this.value,this.dateFormat,this.locale);this.control.valid&&this.setInputElementValue(e||"")},e.prototype.onInputKeyup=function(){this.control.markAsDirty()},e.prototype.writeValue=function(e){this.value=e},e.prototype.validate=function(e){if(this.control||(this.control=e),!this.skyDatepickerNoValidate&&this.control.value){var t,n,r=e.value;if((t="string"==typeof r?this.fuzzyDateService.getFuzzyDateFromString(r,this.dateFormat):r)||(n={skyFuzzyDate:{invalid:r}}),n||t.year||!this.yearRequired||(n={skyFuzzyDate:{yearRequired:r}}),!n&&t.year){this.maxDate&&(this.fuzzyDateService.getFuzzyDateRange(t,this.maxDate).valid||(n={skyFuzzyDate:{maxDate:r}})),!n&&this.minDate&&(this.fuzzyDateService.getFuzzyDateRange(this.minDate,t).valid||(n={skyFuzzyDate:{minDate:r}})),!n&&this.futureDisabled&&(this.fuzzyDateService.getFuzzyDateRange(t,this.fuzzyDateService.getCurrentFuzzyDate()).valid||(n={skyFuzzyDate:{futureDisabled:r}}))}return n&&this.control.markAsTouched(),n}},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.registerOnValidatorChange=function(e){this.onValidatorChange=e},e.prototype.setDisabledState=function(e){this.disabled=e,this.datepickerComponent.disabled=e},e.prototype.detectInputValueChange=function(){this.onValueChange(this.elementRef.nativeElement.value)},e.prototype.onValueChange=function(e){this.isFirstChange=!1,this.value=e},e.prototype.setInputElementValue=function(e){this.renderer.setProperty(this.elementRef.nativeElement,"value",e)},e.prototype.getMaxDate=function(){if(this.maxDate){var e=this.fuzzyDateService.getMomentFromFuzzyDate(this.maxDate);if(e.isValid())return e.toDate()}else if(this.futureDisabled)return new Date;return this.configService.maxDate},e.prototype.getMinDate=function(){if(this.minDate){var e=this.fuzzyDateService.getMomentFromFuzzyDate(this.minDate);if(e.isValid())return e.toDate()}return this.configService.minDate},e.prototype.fuzzyDatesEqual=function(e,t){return e&&t&&(!e.day&&!t.day||e.day===t.day)&&(!e.month&&!t.month||e.month===t.month)&&(!e.year&&!t.year||e.year===t.year)},e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:T},{type:t.ElementRef},{type:x},{type:n.SkyAppLocaleProvider},{type:t.Renderer2},{type:n.SkyLibResourcesService},{type:z,decorators:[{type:t.Optional}]}]},p([t.Input()],e.prototype,"dateFormat",null),p([t.Input()],e.prototype,"disabled",null),p([t.Input()],e.prototype,"futureDisabled",null),p([t.Input()],e.prototype,"maxDate",null),p([t.Input()],e.prototype,"minDate",null),p([t.Input()],e.prototype,"skyDatepickerNoValidate",void 0),p([t.Input()],e.prototype,"skyFuzzyDatepickerInput",null),p([t.Input()],e.prototype,"startingDay",null),p([t.Input()],e.prototype,"yearRequired",null),p([t.HostListener("change",["$event"])],e.prototype,"onInputChange",null),p([t.HostListener("blur")],e.prototype,"onInputBlur",null),p([t.HostListener("keyup")],e.prototype,"onInputKeyup",null),e=p([t.Directive({selector:"[skyFuzzyDatepickerInput]",providers:[N,B]}),h(7,t.Optional())],e)}(),K=function(){function e(){}return e=p([t.NgModule({declarations:[V,M,O,P,Y,z,U,H],imports:[o.CommonModule,n.SkyI18nModule,s.FormsModule,u.SkyIconModule,D,c.SkyAffixModule,c.SkyOverlayModule,d.SkyThemeModule],exports:[V,M,O,P,Y,z,U,H],providers:[c.SkyAppWindowRef,T,x,c.SkyCoreAdapterService,d.SkyThemeService]})],e)}(),q=function(){function e(e,t){this.calculatorId=e,this.config=t,this.type=t.type,this.shortDescription=t.shortDescription}return e.prototype.getValue=function(e,t){var n=this.config.getValue(e,t),r=null;n.startDate instanceof Date&&(r=this.parseDateWithoutTime(n.startDate));var a=null;return n.endDate instanceof Date&&(a=this.parseDateWithoutTime(n.endDate)),{calculatorId:this.calculatorId,startDate:r,endDate:a}},e.prototype.validate=function(e){if(this.config.validate)return this.config.validate(e)},e.prototype.parseDateWithoutTime=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())},e}(),$=function(){function e(){}return Object.defineProperty(e,"today",{get:function(){var e=new Date;return{startDate:e,endDate:e}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"tomorrow",{get:function(){var e=new Date;return e.setDate(e.getDate()+1),{startDate:e,endDate:e}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"yesterday",{get:function(){var e=new Date;return e.setDate(e.getDate()-1),{startDate:e,endDate:e}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"thisWeek",{get:function(){var e=new Date;e.setDate(e.getDate()-e.getDay());var t=new Date;return t.setDate(t.getDate()-t.getDay()+6),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"nextWeek",{get:function(){var e=new Date;e.setDate(e.getDate()-e.getDay()+7);var t=new Date;return t.setDate(t.getDate()-t.getDay()+13),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"lastWeek",{get:function(){var e=new Date;e.setDate(e.getDate()-e.getDay()-7);var t=new Date;return t.setDate(t.getDate()-t.getDay()-1),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"thisMonth",{get:function(){var e=new Date;e.setDate(1);var t=new Date;return t.setMonth(t.getMonth()+1),t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"nextMonth",{get:function(){var e=new Date;e.setDate(1),e.setMonth(e.getMonth()+1);var t=new Date;return t.setDate(1),t.setMonth(t.getMonth()+2),t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"lastMonth",{get:function(){var e=new Date;e.setDate(0),e.setDate(1);var t=new Date;return t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"thisQuarter",{get:function(){var t=new Date,n=new Date,r=t.getMonth(),a=e.getQuarterStartMonth(r);return t.setMonth(a),t.setDate(1),n.setMonth(a+3),n.setDate(0),{startDate:t,endDate:n}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"nextQuarter",{get:function(){var t=new Date,n=new Date,r=t.getMonth(),a=e.getQuarterStartMonth(r);return t.setMonth(a+3),t.setDate(1),n.setMonth(a+6),n.setDate(0),{startDate:t,endDate:n}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"lastQuarter",{get:function(){var t=new Date;t.setDate(1);var n=new Date;n.setDate(1);var r=t.getMonth(),a=e.getQuarterStartMonth(r);return t.setMonth(a-3),t.setDate(1),n.setMonth(a),n.setDate(0),{startDate:t,endDate:n}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"thisCalendarYear",{get:function(){var e=new Date;e.setDate(1),e.setMonth(0);var t=new Date;return t.setDate(1),t.setMonth(0),t.setFullYear(t.getFullYear()+1),t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"nextCalendarYear",{get:function(){var e=new Date;e.setDate(1),e.setMonth(0),e.setFullYear(e.getFullYear()+1);var t=new Date;return t.setDate(1),t.setMonth(0),t.setFullYear(e.getFullYear()+1),t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"lastCalendarYear",{get:function(){var e=new Date;e.setDate(1),e.setMonth(0),e.setFullYear(e.getFullYear()-1);var t=new Date;return t.setDate(1),t.setMonth(0),t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"thisFiscalYear",{get:function(){var t=new Date;return t.setDate(1),e.getClosestFiscalYearRange(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e,"nextFiscalYear",{get:function(){var t=new Date;return t.setDate(1),t.setFullYear(t.getFullYear()+1),e.getClosestFiscalYearRange(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e,"lastFiscalYear",{get:function(){var t=new Date;return t.setDate(1),t.setFullYear(t.getFullYear()-1),e.getClosestFiscalYearRange(t)},enumerable:!0,configurable:!0}),e.getQuarterStartMonth=function(e){return e<3?0:e<6?3:e<9?6:9},e.getClosestFiscalYearRange=function(e){var t=new Date(e);return e.getMonth()>=9?(e.setMonth(9),t.setFullYear(e.getFullYear()+1),t.setMonth(9),t.setDate(0)):(e.setFullYear(e.getFullYear()-1),e.setMonth(9),t.setMonth(9),t.setDate(0)),{startDate:e,endDate:t}},e}(),G=[{calculatorId:e.SkyDateRangeCalculatorId.AnyTime,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_any_time",getValue:function(e,t){return{startDate:e,endDate:t}}},{calculatorId:e.SkyDateRangeCalculatorId.Before,type:e.SkyDateRangeCalculatorType.Before,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_before",getValue:function(e,t){return{startDate:e,endDate:t}}},{calculatorId:e.SkyDateRangeCalculatorId.After,type:e.SkyDateRangeCalculatorType.After,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_after",getValue:function(e,t){return{startDate:e,endDate:t}}},{calculatorId:e.SkyDateRangeCalculatorId.SpecificRange,type:e.SkyDateRangeCalculatorType.Range,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_specific_range",getValue:function(e,t){return{startDate:e,endDate:t}},validate:function(e){if(e.startDate&&e.endDate&&e.startDate>e.endDate)return{endDateBeforeStartDate:!0}}},{calculatorId:e.SkyDateRangeCalculatorId.LastFiscalYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_last_fiscal_year",getValue:function(){return $.lastFiscalYear}},{calculatorId:e.SkyDateRangeCalculatorId.LastMonth,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_last_month",getValue:function(){return $.lastMonth}},{calculatorId:e.SkyDateRangeCalculatorId.LastQuarter,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_last_quarter",getValue:function(){return $.lastQuarter}},{calculatorId:e.SkyDateRangeCalculatorId.LastWeek,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_last_week",getValue:function(){return $.lastWeek}},{calculatorId:e.SkyDateRangeCalculatorId.LastCalendarYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_last_calendar_year",getValue:function(){return $.lastCalendarYear}},{calculatorId:e.SkyDateRangeCalculatorId.NextFiscalYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_next_fiscal_year",getValue:function(){return $.nextFiscalYear}},{calculatorId:e.SkyDateRangeCalculatorId.NextMonth,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_next_month",getValue:function(){return $.nextMonth}},{calculatorId:e.SkyDateRangeCalculatorId.NextQuarter,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_next_quarter",getValue:function(){return $.nextQuarter}},{calculatorId:e.SkyDateRangeCalculatorId.NextWeek,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_next_week",getValue:function(){return $.nextWeek}},{calculatorId:e.SkyDateRangeCalculatorId.NextCalendarYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_next_calendar_year",getValue:function(){return $.nextCalendarYear}},{calculatorId:e.SkyDateRangeCalculatorId.ThisFiscalYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_this_fiscal_year",getValue:function(){return $.thisFiscalYear}},{calculatorId:e.SkyDateRangeCalculatorId.ThisMonth,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_this_month",getValue:function(){return $.thisMonth}},{calculatorId:e.SkyDateRangeCalculatorId.ThisQuarter,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_this_quarter",getValue:function(){return $.thisQuarter}},{calculatorId:e.SkyDateRangeCalculatorId.ThisWeek,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_this_week",getValue:function(){return $.thisWeek}},{calculatorId:e.SkyDateRangeCalculatorId.ThisCalendarYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_this_calendar_year",getValue:function(){return $.thisCalendarYear}},{calculatorId:e.SkyDateRangeCalculatorId.Today,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_today",getValue:function(){return $.today}},{calculatorId:e.SkyDateRangeCalculatorId.Tomorrow,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_tomorrow",getValue:function(){return $.tomorrow}},{calculatorId:e.SkyDateRangeCalculatorId.Yesterday,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_yesterday",getValue:function(){return $.yesterday}}],W=function(){function e(e){this.resourcesService=e,this.calculatorReadyStream=new r.BehaviorSubject(!1),this.calculatorConfigs={},this.calculators=[],this.createDefaultCalculators()}var i;return i=e,e.prototype.createCalculator=function(e){var t=i.lastId++,n=new q(t,e);return this.calculators.push(n),n},e.prototype.getCalculators=function(e){var t=this,n=e.map((function(e){return t.getCalculatorById(e)}));return Promise.all(n)},e.prototype.getCalculatorById=function(e){var t=this,n=parseInt(e,10),r=this.calculators.find((function(e){return e.calculatorId===n}));return new Promise((function(n,i){r?t.calculatorReadyStream.pipe(a.first()).subscribe((function(){n(r)})):i(new Error("A calculator with the ID "+e+" was not found."))}))},e.prototype.createDefaultCalculators=function(){var e=this,t=[];G.forEach((function(n){var r={getValue:n.getValue,validate:n.validate,shortDescription:"",type:n.type};t.push(e.resourcesService.getString(n.shortDescriptionResourceKey).pipe(a.first(),a.map((function(e){r.shortDescription=e})))),e.calculatorConfigs[n.calculatorId]=r})),r.forkJoin(t).pipe(a.first()).subscribe((function(){var t=Object.keys(e.calculatorConfigs).map((function(t){var n=parseInt(t,10);return new q(n,e.calculatorConfigs[n])}));e.calculators=t,e.calculatorReadyStream.next(!0)}))},e.lastId=1e3,e.ctorParameters=function(){return[{type:n.SkyLibResourcesService}]},e=i=p([t.Injectable()],e)}(),Q={provide:s.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return X})),multi:!0},Z={provide:s.NG_VALIDATORS,useExisting:t.forwardRef((function(){return X})),multi:!0},J=0,X=function(){function i(e,t,n,i,o,s){var c=this;this.changeDetector=e,this.dateRangeService=t,this.formBuilder=n,this.localeProvider=i,this.windowRef=o,this.startDateRequired=!1,this.endDateRequired=!1,this.dateRangePickerId="sky-date-range-picker-"+J++,this.isReady=!1,this.showEndDatePicker=!1,this.showStartDatePicker=!1,this.ngUnsubscribe=new r.Subject,this._disabled=!1,this.onChange=function(e){},this.onTouched=function(){},this.onValidatorChange=function(){},this.localeProvider.getLocaleInfo().pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(e){F.setLocale(e.locale),c.preferredShortDateFormat=F.getPreferredShortDateFormat()})),null==s||s.settingsChange.pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(){c.changeDetector.markForCheck()}))}return Object.defineProperty(i.prototype,"calculatorIds",{get:function(){return this._calculatorIds||[e.SkyDateRangeCalculatorId.AnyTime,e.SkyDateRangeCalculatorId.Before,e.SkyDateRangeCalculatorId.After,e.SkyDateRangeCalculatorId.SpecificRange,e.SkyDateRangeCalculatorId.Yesterday,e.SkyDateRangeCalculatorId.Today,e.SkyDateRangeCalculatorId.Tomorrow,e.SkyDateRangeCalculatorId.LastWeek,e.SkyDateRangeCalculatorId.ThisWeek,e.SkyDateRangeCalculatorId.NextWeek,e.SkyDateRangeCalculatorId.LastMonth,e.SkyDateRangeCalculatorId.ThisMonth,e.SkyDateRangeCalculatorId.NextMonth,e.SkyDateRangeCalculatorId.LastQuarter,e.SkyDateRangeCalculatorId.ThisQuarter,e.SkyDateRangeCalculatorId.NextQuarter,e.SkyDateRangeCalculatorId.LastCalendarYear,e.SkyDateRangeCalculatorId.ThisCalendarYear,e.SkyDateRangeCalculatorId.NextCalendarYear,e.SkyDateRangeCalculatorId.LastFiscalYear,e.SkyDateRangeCalculatorId.ThisFiscalYear,e.SkyDateRangeCalculatorId.NextFiscalYear]},set:function(e){this._calculatorIds=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"dateFormat",{get:function(){return this._dateFormat||this.preferredShortDateFormat},set:function(e){this._dateFormat=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,this.formGroup&&(this._disabled?this.formGroup.disable():this.formGroup.enable()),this.changeDetector.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"startDateLabelResourceKey",{get:function(){return this.selectedCalculator.type===e.SkyDateRangeCalculatorType.Range?"skyux_date_range_picker_start_date_label":"skyux_date_range_picker_after_date_label"},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"endDateLabelResourceKey",{get:function(){return this.selectedCalculator.type===e.SkyDateRangeCalculatorType.Range?"skyux_date_range_picker_end_date_label":"skyux_date_range_picker_before_date_label"},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"selectedCalculator",{get:function(){return this.getCalculatorById(this.value.calculatorId)},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"calculatorIdControl",{get:function(){return this.formGroup.get("calculatorId")},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"defaultCalculator",{get:function(){return this.calculators[0]},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"defaultValue",{get:function(){return this.defaultCalculator.getValue()},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"endDateControl",{get:function(){return this.formGroup.get("endDate")},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"startDateControl",{get:function(){return this.formGroup.get("startDate")},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"value",{get:function(){return this._value&&void 0!==this._value.calculatorId?this._value:this.defaultValue},enumerable:!0,configurable:!0}),i.prototype.ngOnInit=function(){var e=this;this.createForm(),this.updateCalculators().then((function(){e.addEventListeners(),e.isReady=!0,e.resetFormGroupValue(),e.showRelevantFormFields();var t=e.value,n=t.startDate,r=t.endDate,a=e.selectedCalculator.getValue(n,r),i=Object.assign({},a,e.value);e.setValue(i,!1),e.control&&e.control.setValue(e.value,{emitEvent:!1})}))},i.prototype.ngOnChanges=function(e){var t=this;e.calculatorIds&&!1===e.calculatorIds.firstChange&&this.updateCalculators().then((function(){var e=t.calculatorIdControl.value;if(!t.calculators.find((function(t){return t.calculatorId===e}))){var n=t.defaultCalculator.getValue();t.setValue(n),t.resetFormGroupValue(n),t.showRelevantFormFields()}}))},i.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},i.prototype.onFieldBlur=function(){this.onTouched()},i.prototype.writeValue=function(e){this.setValue(e,!1),this.isReady&&(e||this.onChange(this.defaultValue),this.resetFormGroupValue(),this.showRelevantFormFields())},i.prototype.validate=function(e){if(this.control||(this.control=e),this.isReady){var t,n=e.value,r=this.calculatorIdControl,a=this.selectedCalculator.validate(n);if(t=a?{skyDateRange:{calculatorId:r.value,errors:a}}:this.startDateControl.errors||this.endDateControl.errors)return r.setErrors(t),r.markAsTouched(),r.markAsDirty(),this.control.markAsTouched(),this.changeDetector.markForCheck(),t;r.setErrors(null)}},i.prototype.registerOnChange=function(e){this.onChange=e},i.prototype.registerOnTouched=function(e){this.onTouched=e},i.prototype.registerOnValidatorChange=function(e){this.onValidatorChange=e},i.prototype.setDisabledState=function(e){this.disabled=e},i.prototype.setValue=function(e,t){void 0===t&&(t=!0),!this.dateRangesEqual(this._value,e)&&(this._value=e,t&&this.onChange(this.value))},i.prototype.patchValue=function(e){var t=Object.assign({},this.value,e);this.setValue(t)},i.prototype.createForm=function(){this.formGroup=this.formBuilder.group({calculatorId:new s.FormControl,startDate:new s.FormControl,endDate:new s.FormControl}),this.disabled&&this.formGroup.disable()},i.prototype.showRelevantFormFields=function(){var t=!1,n=!1;switch(this.selectedCalculator.type){case e.SkyDateRangeCalculatorType.Before:t=!0;break;case e.SkyDateRangeCalculatorType.After:n=!0;break;case e.SkyDateRangeCalculatorType.Range:t=!0,n=!0}this.showEndDatePicker=t,this.showStartDatePicker=n,this.changeDetector.markForCheck()},i.prototype.resetFormGroupValue=function(e){this.formGroup.reset(e||this.value,{emitEvent:!1})},i.prototype.addEventListeners=function(){var e=this;r.combineLatest([this.startDateControl.statusChanges,this.endDateControl.statusChanges]).pipe(a.first()).subscribe((function(t){t.indexOf("INVALID")>-1&&e.windowRef.nativeWindow.setTimeout((function(){e.onValidatorChange()}))})),this.calculatorIdControl.valueChanges.pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(t){var n=parseInt(t,10);if(!isNaN(n)){var r=e.getCalculatorById(n).getValue();e.setValue(r),e.resetFormGroupValue(r),e.showRelevantFormFields()}})),this.startDateControl.valueChanges.pipe(a.distinctUntilChanged(),a.takeUntil(this.ngUnsubscribe)).subscribe((function(t){e.patchValue({startDate:t})})),this.endDateControl.valueChanges.pipe(a.distinctUntilChanged(),a.takeUntil(this.ngUnsubscribe)).subscribe((function(t){e.patchValue({endDate:t})})),r.combineLatest([this.startDateControl.statusChanges,this.endDateControl.statusChanges]).pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(){e.changeDetector.markForCheck()}))},i.prototype.updateCalculators=function(){var e=this;return this.dateRangeService.getCalculators(this.calculatorIds).then((function(t){e.calculators=t,e.changeDetector.markForCheck()}))},i.prototype.getCalculatorById=function(e){return this.calculators.find((function(t){return t.calculatorId===e}))},i.prototype.dateRangesEqual=function(e,t){return JSON.stringify(e)===JSON.stringify(t)},i.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:W},{type:s.FormBuilder},{type:n.SkyAppLocaleProvider},{type:c.SkyAppWindowRef},{type:d.SkyThemeService,decorators:[{type:t.Optional}]}]},p([t.Input()],i.prototype,"calculatorIds",null),p([t.Input()],i.prototype,"dateFormat",null),p([t.Input()],i.prototype,"disabled",null),p([t.Input()],i.prototype,"label",void 0),p([t.Input()],i.prototype,"startDateRequired",void 0),p([t.Input()],i.prototype,"endDateRequired",void 0),i=p([t.Component({selector:"sky-date-range-picker",template:'<div *ngIf="isReady"\n class="sky-date-range-picker"\n [formGroup]="formGroup"\n>\n <div\n class="sky-date-range-picker-form-group"\n >\n <sky-input-box>\n <label\n class="sky-control-label"\n [attr.for]="dateRangePickerId + \'-select-calculator\'"\n >\n {{ label || \'skyux_date_range_picker_default_label\' | skyLibResources }}\n </label>\n <select\n class="sky-form-control"\n formControlName="calculatorId"\n [attr.id]="dateRangePickerId + \'-select-calculator\'"\n (blur)="onFieldBlur()"\n >\n <option *ngFor="let calculator of calculators"\n [value]="calculator.calculatorId"\n >\n {{ calculator.shortDescription }}\n </option>\n </select>\n </sky-input-box>\n </div>\n\n <div\n class="sky-date-range-picker-form-group"\n [hidden]="!showStartDatePicker"\n >\n <sky-input-box>\n <label\n class="sky-control-label"\n [attr.for]="dateRangePickerId + \'-start-date\'"\n [ngClass]="{ \'sky-control-label-required\' : startDateRequired }"\n >\n {{ startDateLabelResourceKey | skyLibResources }}\n </label>\n\n <sky-datepicker>\n <input\n formControlName="startDate"\n [attr.aria-label]="startDateLabelResourceKey | skyLibResources"\n [attr.id]="dateRangePickerId + \'-start-date\'"\n [attr.placeholder]="dateFormat"\n [required]="startDateRequired"\n [dateFormat]="dateFormat"\n (blur)="onFieldBlur()"\n skyDatepickerInput\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n\n <div\n class="sky-date-range-picker-form-group"\n [hidden]="!showEndDatePicker"\n >\n <sky-input-box>\n <label\n class="sky-control-label"\n [attr.for]="dateRangePickerId + \'-end-date\'"\n [ngClass]="{ \'sky-control-label-required\' : endDateRequired }"\n >\n {{ endDateLabelResourceKey | skyLibResources }}\n </label>\n\n <sky-datepicker>\n <input\n formControlName="endDate"\n skyDatepickerInput\n [attr.aria-label]="endDateLabelResourceKey | skyLibResources"\n [attr.id]="dateRangePickerId + \'-end-date\'"\n [attr.placeholder]="dateFormat"\n [dateFormat]="dateFormat"\n [required]="endDateRequired"\n (blur)="onFieldBlur()"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n</div>\n',providers:[Q,Z],changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[".sky-date-range-picker{display:flex;margin-left:-5px;margin-right:-5px}.sky-date-range-picker-form-group{padding-left:5px;padding-right:5px}.sky-date-range-picker-form-group:last-child{margin-bottom:0}:host .sky-date-range-picker{flex-direction:column}:host .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-responsive-container-lg) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-xs) .sky-date-range-picker{flex-direction:column}:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group{flex-basis:100%}@media (min-width:768px){:host .sky-date-range-picker{flex-direction:initial}:host .sky-date-range-picker-form-group{flex-basis:calc(100% / 3);margin-bottom:0}}:host-context(.sky-responsive-container-lg) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker{flex-direction:initial}:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group{flex-basis:calc(100% / 3);margin-bottom:0}:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{padding:0;margin:0 0 20px}.sky-theme-modern .sky-date-range-picker-form-group{padding:0;margin:0 0 20px}@media (min-width:768px){:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{margin:0 20px 0 0}.sky-theme-modern .sky-date-range-picker-form-group{margin:0 20px 0 0}}:host-context(.sky-theme-modern.sky-responsive-container-xs) .sky-date-range-picker-form-group{margin:0 0 20px}:host-context(.sky-theme-modern.sky-responsive-container-lg) .sky-date-range-picker-form-group,:host-context(.sky-theme-modern.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-theme-modern.sky-responsive-container-sm) .sky-date-range-picker-form-group{margin:0 20px 0 0}"]}),h(5,t.Optional())],i)}(),ee=function(){function e(){}return e=p([t.NgModule({declarations:[X],imports:[o.CommonModule,s.FormsModule,s.ReactiveFormsModule,n.SkyI18nModule,K,D,l.SkyInputBoxModule],exports:[X],providers:[c.SkyAppWindowRef,W]})],e)}(),te=i,ne={provide:s.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return ae})),multi:!0},re={provide:s.NG_VALIDATORS,useExisting:t.forwardRef((function(){return ae})),multi:!0},ae=function(){function e(e,t,n,r){this.renderer=e,this.elRef=t,this.resourcesService=n,this.changeDetector=r,this._timeFormat="hh",this._onChange=function(e){},this._onTouched=function(){},this._validatorChange=function(){}}return Object.defineProperty(e.prototype,"skyTimepickerInput",{get:function(){return this._skyTimepickerInput},set:function(e){this._skyTimepickerInput=e,this.updateTimepickerInput()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"timeFormat",{get:function(){return this._timeFormat||"hh"},set:function(e){this._timeFormat=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled||!1},set:function(e){this._disabled=e,this.updateTimepickerInput(),this.renderer.setProperty(this.elRef.nativeElement,"disabled",e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"modelValue",{get:function(){return this._modelValue},set:function(e){e!==this._modelValue&&(this._modelValue=e,this.updateTimepickerInput(),this.setInputValue(e),this._validatorChange(),this._onChange(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.renderer.addClass(this.elRef.nativeElement,"sky-form-control"),this.pickerChangedSubscription=this.skyTimepickerInput.selectedTimeChanged.subscribe((function(t){e.writeValue(t),e._onTouched()})),this.elRef.nativeElement.getAttribute("aria-label")||this.resourcesService.getString("skyux_timepicker_input_default_label").subscribe((function(t){e.renderer.setAttribute(e.elRef.nativeElement,"aria-label",t)}))},e.prototype.ngAfterContentInit=function(){this.control&&this.control.parent&&(this.control.setValue(this.modelValue,{emitEvent:!1}),this.changeDetector.markForCheck())},e.prototype.ngOnDestroy=function(){this.pickerChangedSubscription.unsubscribe()},e.prototype.ngOnChanges=function(){this.skyTimepickerInput.setFormat(this.timeFormat),this.skyTimepickerInput.returnFormat=this.returnFormat},e.prototype.onChange=function(e){this.writeValue(e.target.value)},e.prototype.onBlur=function(){this._onTouched()},e.prototype.registerOnChange=function(e){this._onChange=e},e.prototype.registerOnTouched=function(e){this._onTouched=e},e.prototype.registerOnValidatorChange=function(e){this._validatorChange=e},e.prototype.setDisabledState=function(e){this.disabled=e},e.prototype.writeValue=function(e){this.modelValue=this.formatter(e)},e.prototype.validate=function(e){this.control||(this.control=e);var t=e.value;if(t)return"Invalid date"===t.local?{skyTime:{invalid:e.value}}:void 0},e.prototype.setInputValue=function(e){var t="";if(e){var n=te(e).format(e.customFormat);"Invalid date"!==n&&(t=n)}this.renderer.setProperty(this.elRef.nativeElement,"value",t)},e.prototype.formatter=function(e){if(e&&"string"!=typeof e&&"local"in e)return e;if("string"==typeof e){if(0===e.length)return"";var t=void 0;return"hh"===this.timeFormat&&(t="h:mm A"),"HH"===this.timeFormat&&(t="H:mm"),void 0===this.returnFormat&&(this.returnFormat=t),{hour:te(e,t).hour(),minute:te(e,t).minute(),meridie:te(e,t).format("A"),timezone:parseInt(te(e,t).format("Z"),10),iso8601:te(e,t).toDate(),local:te(e,t).format(t),customFormat:this.returnFormat}}},e.prototype.updateTimepickerInput=function(){this.skyTimepickerInput&&(this.skyTimepickerInput.disabled=this.disabled,this.skyTimepickerInput.selectedTime!==this.modelValue&&(this.skyTimepickerInput.selectedTime=this.modelValue))},e.ctorParameters=function(){return[{type:t.Renderer2},{type:t.ElementRef},{type:n.SkyLibResourcesService},{type:t.ChangeDetectorRef}]},p([t.Input()],e.prototype,"skyTimepickerInput",null),p([t.Input()],e.prototype,"timeFormat",null),p([t.Input()],e.prototype,"returnFormat",void 0),p([t.Input()],e.prototype,"disabled",null),p([t.HostListener("change",["$event"])],e.prototype,"onChange",null),p([t.HostListener("blur")],e.prototype,"onBlur",null),e=p([t.Directive({selector:"[skyTimepickerInput]",providers:[ne,re]})],e)}(),ie=i,oe=0,se=function(){function e(e,n,i,o,s,c){var l=this;this.affixService=e,this.changeDetector=n,this.coreAdapter=i,this.overlayService=o,this.inputBoxHostService=s,this.selectedTimeChanged=new t.EventEmitter,this.is8601=!1,this.timeFormat="hh",this.ngUnsubscribe=new r.Subject;var u=oe++;this.timepickerId="sky-timepicker-"+u,this.triggerButtonId="sky-timepicker-button-"+u,null==c||c.settingsChange.pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(){l.changeDetector.markForCheck()}))}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,this.changeDetector.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedHour",{get:function(){return this.is8601?this.is8601?ie(this.activeTime).hour()+0:void 0:parseInt(ie(this.activeTime).format("h"),0)||1},set:function(e){var t,n=0;"AM"===this.selectedMeridies&&12===e&&(n=-12),"PM"===this.selectedMeridies&&12!==e&&(n=12),this.is8601&&(n=0),t=ie({hour:e}).add(n,"hours").hour(),this.activeTime=ie({hour:t,minute:ie(this.activeTime).get("minute")+0}).toDate(),this.selectedTimeChanged.emit(this.selectedTime)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedMeridies",{get:function(){return this.activeTime?ie(this.activeTime).format("A"):""},set:function(e){this.is8601||e.trim()!==this.selectedMeridies&&(this.activeTime=ie(this.activeTime).add(12,"hours").toDate(),this.selectedTimeChanged.emit(this.selectedTime))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedMinute",{get:function(){return ie(this.activeTime).minute()+0},set:function(e){this.activeTime=ie({hour:ie(this.activeTime).get("hour")+0,minute:e}).toDate(),this.selectedTimeChanged.emit(this.selectedTime)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedTime",{get:function(){return{hour:ie(this.activeTime).hour(),minute:ie(this.activeTime).minute(),meridie:ie(this.activeTime).format("A"),timezone:parseInt(ie(this.activeTime).format("Z"),10),iso8601:this.activeTime,local:ie(this.activeTime).format(this.localeFormat),customFormat:void 0!==this.returnFormat?this.returnFormat:this.localeFormat}},set:function(e){void 0!==e&&"Invalid date"!==e.local&&(this.activeTime=e.iso8601,this.changeDetector.markForCheck())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"timepickerRef",{get:function(){return this._timepickerRef},set:function(e){var t=this;e&&(this._timepickerRef=e,setTimeout((function(){t.destroyAffixer(),t.createAffixer(),setTimeout((function(){t.coreAdapter.getFocusableChildrenAndApplyFocus(t.timepickerRef,".sky-timepicker-content",!1),t.isVisible=!0,t.changeDetector.markForCheck()}))})))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.setFormat(this.timeFormat),this.addKeydownListner(),this.inputBoxHostService&&this.inputBoxHostService.populate({inputTemplate:this.inputTemplateRef,buttonsTemplate:this.triggerButtonTemplateRef})},e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete(),this.removePickerEventListeners(),this.destroyAffixer(),this.destroyOverlay()},e.prototype.setFormat=function(e){var t,n=12,r=12,a=5,i="h:mm A";"hh"===e&&(n=12,r=12,a=5,i="h:mm A",this.is8601=!1),"HH"===e&&(n=24,r=4,a=15,i="HH:mm",this.is8601=!0),t={hours:Array.apply(void 0,Array(n)).map((function(t,n){return"hh"===e?++n:"HH"===e?n:0})),minutes:Array.apply(void 0,Array(r)).map((function(e,t){return t*a})),localeFormat:i,minuteMultiplier:a},this.hours=t.hours,this.minutes=t.minutes,this.localeFormat=t.localeFormat,this.minuteMultiplier=t.minuteMultiplier},e.prototype.onCloseButtonCick=function(){this.closePicker()},e.prototype.setTime=function(e){void 0!==e&&"click"===e.type&&(e.stopPropagation(),"hour"===e.target.name&&(this.selectedHour=parseInt(e.target.innerHTML,0)),"minute"===e.target.name&&(this.selectedMinute=parseInt(e.target.innerHTML,0)),"meridie"===e.target.name&&(this.selectedMeridies=e.target.innerHTML))},e.prototype.onTriggerButtonClick=function(){this.openPicker()},e.prototype.closePicker=function(){this.destroyAffixer(),this.destroyOverlay(),this.removePickerEventListeners(),this.triggerButtonRef.nativeElement.focus(),this.isOpen=!1},e.prototype.openPicker=function(){this.isVisible=!1,this.changeDetector.markForCheck(),this.removePickerEventListeners(),this.timepickerUnsubscribe=new r.Subject,this.destroyOverlay(),this.createOverlay(),this.isOpen=!0,this.changeDetector.markForCheck()},e.prototype.createAffixer=function(){var e=this,t=this.affixService.createAffixer(this.timepickerRef);t.placementChange.pipe(a.takeUntil(this.timepickerUnsubscribe)).subscribe((function(t){e.isVisible=null!==t.placement,e.changeDetector.markForCheck()})),t.affixTo(this.triggerButtonRef.nativeElement,{autoFitContext:c.SkyAffixAutoFitContext.Viewport,enableAutoFit:!0,horizontalAlignment:"right",isSticky:!0,placement:"below"}),this.affixer=t},e.prototype.destroyAffixer=function(){this.affixer&&(this.affixer.destroy(),this.affixer=void 0)},e.prototype.createOverlay=function(){var e=this,t=this.overlayService.create({enableClose:!1,enablePointerEvents:!1});t.backdropClick.pipe(a.takeUntil(this.timepickerUnsubscribe)).subscribe((function(){e.isOpen&&e.closePicker()})),this.addKeydownListner(),t.attachTemplate(this.timepickerTemplateRef),this.overlay=t},e.prototype.destroyOverlay=function(){this.overlay&&(this.overlayService.close(this.overlay),this.overlay=void 0)},e.prototype.addKeydownListner=function(){var e=this;this.overlayKeydownListner=r.fromEvent(window.document,"keydown").pipe(a.takeUntil(this.ngUnsubscribe)).subscribe((function(t){var n;"escape"===(null===(n=t.key)||void 0===n?void 0:n.toLowerCase())&&e.isOpen&&e.closePicker()}))},e.prototype.removePickerEventListeners=function(){var e;this.timepickerUnsubscribe&&(this.timepickerUnsubscribe.next(),this.timepickerUnsubscribe.complete(),this.timepickerUnsubscribe=void 0),null===(e=this.overlayKeydownListner)||void 0===e||e.unsubscribe()},e.ctorParameters=function(){return[{type:c.SkyAffixService},{type:t.ChangeDetectorRef},{type:c.SkyCoreAdapterService},{type:c.SkyOverlayService},{type:l.SkyInputBoxHostService,decorators:[{type:t.Optional}]},{type:d.SkyThemeService,decorators:[{type:t.Optional}]}]},p([t.Output()],e.prototype,"selectedTimeChanged",void 0),p([t.ViewChild("timepickerRef",{read:t.ElementRef})],e.prototype,"timepickerRef",null),p([t.ViewChild("timepickerTemplateRef",{read:t.TemplateRef})],e.prototype,"timepickerTemplateRef",void 0),p([t.ViewChild("triggerButtonRef",{read:t.ElementRef})],e.prototype,"triggerButtonRef",void 0),p([t.ViewChild("inputTemplateRef",{read:t.TemplateRef,static:!0})],e.prototype,"inputTemplateRef",void 0),p([t.ViewChild("triggerButtonTemplateRef",{read:t.TemplateRef,static:!0})],e.prototype,"triggerButtonTemplateRef",void 0),e=p([t.Component({selector:"sky-timepicker",template:'<div\n class="sky-timepicker"\n>\n <ng-container *ngIf="!inputBoxHostService">\n <div\n class="sky-input-group"\n >\n <ng-container *ngTemplateOutlet="inputTemplateRef"></ng-container>\n <ng-container *ngTemplateOutlet="triggerButtonTemplateRef"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div\n class="sky-input-group-btn"\n >\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]="\'skyux_timepicker_button_label\' | skyLibResources"\n [attr.id]="triggerButtonId"\n [attr.title]="\'skyux_timepicker_button_label\' | skyLibResources"\n [disabled]="disabled"\n (click)="onTriggerButtonClick()"\n #triggerButtonRef\n >\n <sky-icon *skyThemeIf="\'default\'"\n icon="clock-o"\n size="lg"\n ></sky-icon>\n <sky-icon *skyThemeIf="\'modern\'"\n icon="clock"\n size="lg"\n iconType="skyux"\n ></sky-icon>\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\n class="sky-timepicker-content"\n >\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\n class="sky-timepicker-column"\n >\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"\n class="sky-timepicker-column"\n >\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\n class="sky-timepicker-footer"\n >\n <section\n class="sky-timepicker-column"\n >\n <button\n class="sky-btn sky-btn-primary"\n type="button"\n (click)="onCloseButtonCick()"\n >\n {{ \'skyux_timepicker_close\' | skyLibResources }}\n </button>\n </section>\n </div>\n </div>\n</ng-template>\n',encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,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;-moz-column-gap:1px;column-gap:1px;-moz-columns:2;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:dotted thin;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{-moz-columns:4;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-theme-modern .sky-timepicker-clock-icon-default,.sky-timepicker-clock-icon-modern{display:none}.sky-theme-modern .sky-timepicker-clock-icon-modern{display:inline}.sky-theme-modern .sky-timepicker-container{background-color:#fff;border:1px solid #cdcfd2;border-radius:6px;font-size:16px}.sky-theme-modern .sky-timepicker-container:focus-within{border:2px solid #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:0}.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:0;border-radius:6px;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-container{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol,.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 button{background-color:transparent;color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol .sky-btn-active{background-color:#009cd1}"]}),h(4,t.Optional()),h(5,t.Optional())],e)}(),ce=function(){function e(){}return e=p([t.NgModule({declarations:[ae,se],imports:[o.CommonModule,n.SkyI18nModule,u.SkyIconModule,D,c.SkyAffixModule,c.SkyOverlayModule,d.SkyThemeModule],providers:[c.SkyCoreAdapterService,d.SkyThemeService],exports:[ae,se]})],e)}();e.SkyDatePipe=b,e.SkyDatePipeModule=R,e.SkyDateRangePickerModule=ee,e.SkyDateRangeService=W,e.SkyDatepickerConfigService=T,e.SkyDatepickerModule=K,e.SkyFuzzyDatePipe=C,e.SkyFuzzyDateService=x,e.SkyTimepickerModule=ce,e.ɵa=D,e.ɵb=v,e.ɵc=X,e.ɵd=V,e.ɵe=I,e.ɵf=M,e.ɵg=O,e.ɵh=P,e.ɵi=Y,e.ɵj=z,e.ɵk=U,e.ɵl=H,e.ɵm=ae,e.ɵn=se,Object.defineProperty(e,"__esModule",{value:!0})}));
15
+ ***************************************************************************** */function h(e,t,n,a){var r,i=arguments.length,o=i<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,a);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(o=(i<3?r(o):i>3?r(t,n,o):r(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o}function y(e,t){return function(n,a){t(n,a,e)}}var k=i,f=function(){function e(){}return e.format=function(t,a,r){var i;if(a&&a==a){a instanceof Object&&!(a instanceof Date)&&m(a);var o=k(a);return o.isValid()?i=o.toDate():m(a),n.SkyIntlDateFormatter.format(i,t,e._ALIASES[r]||r)}},e._ALIASES={medium:"yMMMdjms",short:"yMdjm",fullDate:"yMMMMEEEEd",longDate:"yMMMMd",mediumDate:"yMMMd",shortDate:"yMd",mediumTime:"jms",shortTime:"jm"},e}();function m(e){throw new Error("Invalid value: "+e)}var g,b,D=function(){function e(e){var t=this;this.localeProvider=e,this.defaultFormat="short",this.defaultLocale="en-US",this.ngUnsubscribe=new a.Subject,this.localeProvider.getLocaleInfo().pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(e){t.defaultLocale=e.locale,t.updateFormattedValue()}))}return e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},e.prototype.transform=function(e,t,n){return this.value=e,this.format=t,this.locale=n,this.updateFormattedValue(),this.formattedValue},e.prototype.updateFormattedValue=function(){var e=this.locale||this.defaultLocale,t=this.format||this.defaultFormat;this.formattedValue=f.format(e,this.value,t)},e.ctorParameters=function(){return[{type:n.SkyAppLocaleProvider}]},e=h([t.Pipe({name:"skyDate",pure:!1})],e)}(),v=function(){function e(){this.resources={"EN-AU":{skyux_date_range_picker_format_label_last_fiscal_year:"Last financial year",skyux_date_range_picker_format_label_this_fiscal_year:"This financial year",skyux_date_range_picker_format_label_next_fiscal_year:"Next financial year"},"EN-GB":{skyux_date_range_picker_format_label_last_fiscal_year:"Last financial year",skyux_date_range_picker_format_label_this_fiscal_year:"This financial year",skyux_date_range_picker_format_label_next_fiscal_year:"Next financial year"},"EN-NZ":{skyux_date_range_picker_format_label_last_fiscal_year:"Last financial year",skyux_date_range_picker_format_label_this_fiscal_year:"This financial year",skyux_date_range_picker_format_label_next_fiscal_year:"Next financial year"},"EN-US":{skyux_date_field_default_label:"Date",skyux_datepicker_trigger_button_label:"Select date",skyux_timepicker_button_label:"Choose time",skyux_timepicker_close:"Done",skyux_timepicker_input_default_label:"Time",skyux_date_range_picker_default_label:"Select a date range",skyux_date_range_picker_format_label_specific_range:"Specific range",skyux_date_range_picker_format_label_before:"Before",skyux_date_range_picker_format_label_after:"After",skyux_date_range_picker_format_label_any_time:"At any time",skyux_date_range_picker_format_label_yesterday:"Yesterday",skyux_date_range_picker_format_label_today:"Today",skyux_date_range_picker_format_label_tomorrow:"Tomorrow",skyux_date_range_picker_format_label_last_week:"Last week",skyux_date_range_picker_format_label_this_week:"This week",skyux_date_range_picker_format_label_next_week:"Next week",skyux_date_range_picker_format_label_last_month:"Last month",skyux_date_range_picker_format_label_this_month:"This month",skyux_date_range_picker_format_label_next_month:"Next month",skyux_date_range_picker_format_label_last_quarter:"Last quarter",skyux_date_range_picker_format_label_this_quarter:"This quarter",skyux_date_range_picker_format_label_next_quarter:"Next quarter",skyux_date_range_picker_format_label_last_calendar_year:"Last calendar year",skyux_date_range_picker_format_label_this_calendar_year:"This calendar year",skyux_date_range_picker_format_label_next_calendar_year:"Next calendar year",skyux_date_range_picker_format_label_last_fiscal_year:"Last fiscal year",skyux_date_range_picker_format_label_this_fiscal_year:"This fiscal year",skyux_date_range_picker_format_label_next_fiscal_year:"Next fiscal year",skyux_date_range_picker_start_date_label:"From date",skyux_date_range_picker_end_date_label:"To date",skyux_date_range_picker_before_date_label:"Before date",skyux_date_range_picker_after_date_label:"After date"}}}return e.prototype.getString=function(e,t){return n.getStringForLocale(this.resources,e.locale,t)},e=h([t.Injectable()],e)}(),_=function(){function e(){}return e=h([t.NgModule({providers:[{provide:n.SKY_LIB_RESOURCES_PROVIDERS,useClass:v,multi:!0}]})],e)}(),x=i,C=function(){function e(e){var t=this;this.localeProvider=e,this.ngUnsubscribe=new a.Subject,this.localeProvider.getLocaleInfo().pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(e){t.currentLocale=e.locale}))}return e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},e.prototype.getCurrentLocale=function(){return this.currentLocale},e.prototype.getLocaleShortFormat=function(e){return x.localeData(e||this.currentLocale).longDateFormat("L")},e.prototype.format=function(e,t,n){if(n||(n=this.currentLocale),!this.isFuzzyDateValid(e))return"";if(!t)return"";var a=this.getDateSeparator(t),r=[],i=t.split(a);n=n||this.currentLocale;for(var o=this.getMomentFromFuzzyDate(e).locale(n),s=0;s<i.length;s++){var c=i[s];if(c)switch(c.substr(0,1).toLowerCase()){case"y":e.year&&r.push(o.format(c));break;case"m":e.month&&r.push(o.format(c));break;case"d":e.day&&r.push(o.format(c))}}return r.join(a)},e.prototype.getMomentFromFuzzyDate=function(e){if(e){var t=e.year||this.getDefaultYear(e),n=e.month>0?e.month-1:0,a=e.day||1;return x([t,n,a])}},e.prototype.getStringFromFuzzyDate=function(e,t){if(e&&t){var n=this.getDateSeparator(t),a=this.getDateFormatIndexes(t),r="",i=[{value:e.year||0,index:a.yearIndex},{value:e.month||0,index:a.monthIndex},{value:e.day||0,index:a.dayIndex}];return i.sort((function(e,t){return e.index-t.index})),i.forEach((function(e){e.value>0&&e.index>-1&&(r&&(r+=n),r+=e.value.toString())})),r.trim()}},e.prototype.getFuzzyDateFromSelectedDate=function(e,t){if(e&&t){var n={},a=this.getDateFormatIndexes(t);return a.yearIndex>-1&&(n.year=e.getFullYear()),a.dayIndex>-1&&(n.day=e.getDate()),a.monthIndex>-1&&(n.month=e.getMonth()+1),n}},e.prototype.getFuzzyDateFromString=function(e,t){if(e&&t){var n,a,r,i=this.getDateComponents(e),o=this.getDateValueIndexes(e,t);switch(i.length){case 3:r=i[o.yearIndex],a=i[o.monthIndex],n=i[o.dayIndex];break;case 2:(r=this.get4DigitYearFromDateString(e))?a=i[0]===r.toString()?i[1]:i[0]:o.dayIndex>-1?n=(a=o.monthIndex<o.dayIndex?i[0]:i[1])===i[1]?i[0]:i[1]:r=(a=o.monthIndex<o.yearIndex?i[0]:i[1])===i[1]?i[0]:i[1];break;case 1:r=e;break;default:return}if(a){if(void 0===(a=this.getMonthNumber(a)))return;if(n){n=parseInt(n,10);var s=this.getMomentFromFuzzyDate({month:a,day:n,year:r});if(isNaN(n)||!s.isValid())return}}if(!r||(r=2===r.toString().length?x.parseTwoDigitYear(r):parseInt(r.toString(),10),!isNaN(r)&&4===r.toString().length))return{month:a,day:n,year:r}}},e.prototype.getFuzzyDateRange=function(e,t){var n,a,r,i,o,s=!1;return e&&e.year&&t&&t.year&&(n=this.getMomentFromFuzzyDate(e),o=(a=this.getMomentFromFuzzyDate(t)).diff(n,"years"),i=a.diff(n,"months"),r=a.diff(n,"days"),s=a.diff(n)>=0),{years:o,months:i,days:r,valid:s}},e.prototype.getCurrentFuzzyDate=function(){var e=x();return{day:e.date(),month:e.month()+1,year:e.year()}},e.prototype.getMostRecentLeapYear=function(){for(var e=(new Date).getFullYear();!this.isLeapYear(e);)e-=1;return e},e.prototype.getDateSeparator=function(e){var t;return["/",".","-"," "].forEach((function(n){!t&&e.indexOf(n)>0&&(t=n)})),t},e.prototype.get4DigitYearFromDateString=function(e){var t,n=this.getDateSeparator(e);if(e.split(n).forEach((function(e){t||4!==parseInt(e,10).toString().length||(t=e)})),t&&!isNaN(Number(t)))return parseInt(t,10)},e.prototype.isLeapYear=function(e){return e%4==0&&e%100!=0||e%400==0},e.prototype.getMonthNumber=function(e){var t,n=parseInt(e,10);if(isNaN(n)){if(!x(e,"MMMM").isValid())return;t=parseInt(x().month(e).format("M"),10)}else t=n;if(1<=t&&t<=12)return t},e.prototype.getDefaultYear=function(e){return 2===e.month&&29===e.day?this.getMostRecentLeapYear():(new Date).getFullYear()},e.prototype.getDateComponents=function(e){var t=this.getDateSeparator(e);return e.split(t)},e.prototype.getDateFormatIndexes=function(e){return{yearIndex:(e=e.toLowerCase()).indexOf("y"),monthIndex:e.indexOf("m"),dayIndex:e.indexOf("d")}},e.prototype.getDateValueIndexes=function(e,t){var n=this.getDateFormatIndexes(t),a=[];return n.yearIndex>-1&&a.push(n.yearIndex),n.monthIndex>-1&&a.push(n.monthIndex),n.dayIndex>-1&&a.push(n.dayIndex),a.sort((function(e,t){return e-t})),{yearIndex:a.indexOf(n.yearIndex),monthIndex:a.indexOf(n.monthIndex),dayIndex:a.indexOf(n.dayIndex)}},e.prototype.isFuzzyDateValid=function(e){return!!e&&(!!(e.day||e.month||e.year)&&(!(!e.day&&e.month&&!e.year)&&!(e.day&&!e.month&&!e.year)))},e.ctorParameters=function(){return[{type:n.SkyAppLocaleProvider}]},e=h([t.Injectable()],e)}(),R=function(){function e(e){this.fuzzyDateService=e}return e.prototype.transform=function(e,t,n){if(e){var a=t||this.fuzzyDateService.getLocaleShortFormat(n),r=n||this.fuzzyDateService.getCurrentLocale();return this.fuzzyDateService.format(e,a,r)}},e.ctorParameters=function(){return[{type:C}]},e=h([t.Pipe({name:"skyFuzzyDate",pure:!1})],e)}(),I=function(){function e(){}return e=h([t.NgModule({declarations:[D,R],providers:[D,R],imports:[o.CommonModule,_],exports:[D,R]})],e)}();(g=e.SkyDateRangeCalculatorId||(e.SkyDateRangeCalculatorId={}))[g.AnyTime=0]="AnyTime",g[g.Before=1]="Before",g[g.After=2]="After",g[g.SpecificRange=3]="SpecificRange",g[g.Yesterday=4]="Yesterday",g[g.Today=5]="Today",g[g.Tomorrow=6]="Tomorrow",g[g.LastWeek=7]="LastWeek",g[g.ThisWeek=8]="ThisWeek",g[g.NextWeek=9]="NextWeek",g[g.LastMonth=10]="LastMonth",g[g.ThisMonth=11]="ThisMonth",g[g.NextMonth=12]="NextMonth",g[g.LastQuarter=13]="LastQuarter",g[g.ThisQuarter=14]="ThisQuarter",g[g.NextQuarter=15]="NextQuarter",g[g.LastCalendarYear=16]="LastCalendarYear",g[g.ThisCalendarYear=17]="ThisCalendarYear",g[g.NextCalendarYear=18]="NextCalendarYear",g[g.LastFiscalYear=19]="LastFiscalYear",g[g.ThisFiscalYear=20]="ThisFiscalYear",g[g.NextFiscalYear=21]="NextFiscalYear",(b=e.SkyDateRangeCalculatorType||(e.SkyDateRangeCalculatorType={}))[b.After=0]="After",b[b.Before=1]="Before",b[b.Range=2]="Range",b[b.Relative=3]="Relative";var S=function(){function e(e){this.renderer=e}return e.prototype.init=function(e){this.el=e.nativeElement},e.prototype.elementIsFocused=function(){var e=document.activeElement;return this.el.contains(e)},e.prototype.elementIsVisible=function(){var e=this.el&&getComputedStyle(this.el);return e&&"visible"===e.visibility},e.prototype.getPlaceholder=function(e){return e.nativeElement.getAttribute("placeholder")},e.prototype.setPlaceholder=function(e,t){this.renderer.setAttribute(e.nativeElement,"placeholder",t)},e.ctorParameters=function(){return[{type:t.Renderer2}]},e=h([t.Injectable()],e)}(),w=i,F=function(){function e(){}return e.setLocale=function(t){w.locale(t||e.defaultLocale)},e.getPreferredShortDateFormat=function(){return w.localeData().longDateFormat("L")||e.defaultShortDateFormat},e.prototype.format=function(e,t){return w(e.getTime()).format(t)},e.prototype.getDateFromString=function(e,t,n){void 0===n&&(n=!1);var a=w(e,t,n);return a.isValid()||(a=w(e,"YYYY-MM-DDThh:mm:ss.SZ",n)),a.toDate()},e.prototype.dateIsValid=function(e){return e&&e instanceof Date&&!isNaN(e.valueOf())&&!isNaN(new Date(e).getDate())},e.defaultLocale="en-US",e.defaultShortDateFormat="MM/DD/YYYY",e}(),T=0,M=function(){function e(){this.selectedDateChange=new t.EventEmitter(void 0),this.calendarModeChange=new t.EventEmitter,this.minMode="day",this.maxMode="year",this.monthColLimit=3,this.yearColLimit=5,this.datepickerMode="day",this.yearRange=20,this.formatDay="DD",this.formatMonth="MMMM",this.formatYear="YYYY",this.formatDayHeader="dd",this.formatDayTitle="MMMM YYYY",this.formatMonthTitle="YYYY",this.datepickerId="sky-datepicker-"+ ++T,this.stepDay={},this.stepMonth={},this.stepYear={},this.modes=["day","month","year"],this.dateFormatter=new F,this.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"},this.ngUnsubscribe=new a.Subject}return Object.defineProperty(e.prototype,"selectedDate",{get:function(){return this._selectedDate},set:function(e){this.dateFormatter.dateIsValid(e)&&(this._selectedDate=e,this.activeDate=e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.selectedDate?this.activeDate=new Date(this.selectedDate):this.activeDate=new Date},e.prototype.ngOnChanges=function(e){this.refreshView()},e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},e.prototype.setCompareHandler=function(e,t){"day"===t&&(this.compareHandlerDay=e),"month"===t&&(this.compareHandlerMonth=e),"year"===t&&(this.compareHandlerYear=e)},e.prototype.compare=function(e,t){if(void 0!==e&&void 0!==t)return"day"===this.datepickerMode&&this.compareHandlerDay?this.compareHandlerDay(e,t):"month"===this.datepickerMode&&this.compareHandlerMonth?this.compareHandlerMonth(e,t):"year"===this.datepickerMode&&this.compareHandlerYear?this.compareHandlerYear(e,t):void 0},e.prototype.setRefreshViewHandler=function(e,t){"day"===t&&(this.refreshViewHandlerDay=e),"month"===t&&(this.refreshViewHandlerMonth=e),"year"===t&&(this.refreshViewHandlerYear=e)},e.prototype.refreshView=function(){"day"===this.datepickerMode&&this.refreshViewHandlerDay&&this.refreshViewHandlerDay(),"month"===this.datepickerMode&&this.refreshViewHandlerMonth&&this.refreshViewHandlerMonth(),"year"===this.datepickerMode&&this.refreshViewHandlerYear&&this.refreshViewHandlerYear()},e.prototype.setKeydownHandler=function(e,t){"day"===t&&(this.handleKeydownDay=e),"month"===t&&(this.handleKeydownMonth=e),"year"===t&&(this.handleKeydownYear=e)},e.prototype.handleKeydown=function(e,t){"day"===this.datepickerMode&&this.handleKeydownDay&&this.handleKeydownDay(e,t),"month"===this.datepickerMode&&this.handleKeydownMonth&&this.handleKeydownMonth(e,t),"year"===this.datepickerMode&&this.handleKeydownYear&&this.handleKeydownYear(e,t)},e.prototype.dateFilter=function(e,t){return this.dateFormatter.format(e,t)},e.prototype.isActive=function(e){return 0===this.compare(e.date,this.activeDate)&&(this.activeDateId=e.uid,!0)},e.prototype.onKeydown=function(e){var t=this.keys[e.which];if(t&&!e.shiftKey&&!e.altKey)if(e.preventDefault(),e.stopPropagation(),"enter"===t||"space"===t){if(this.isDisabled(this.activeDate))return;this.select(this.activeDate)}else!e.ctrlKey||"up"!==t&&"down"!==t?(this.handleKeydown(t,e),this.refreshView()):this.toggleMode("up"===t?1:-1)},e.prototype.createDateObject=function(e,t,n,a){var r=this.getCustomDate(e);return{date:new Date(e.getFullYear(),e.getMonth(),e.getDate()),label:this.dateFilter(e,t),selected:0===this.compare(e,this.selectedDate),disabled:this.isDisabled(e),current:0===this.compare(e,new Date),secondary:n,uid:a,keyDate:r?r.keyDate:void 0,keyDateText:r?r.keyDateText:[]}},e.prototype.createCalendarRows=function(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n},e.prototype.fixTimeZone=function(e){var t=new Date(e);return t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),t},e.prototype.selectCalendar=function(e,t,n){void 0===n&&(n=!1),n||(e.preventDefault(),e.stopPropagation()),this.select(t)},e.prototype.select=function(e,t){void 0===t&&(t=!0),this.activeDate=new Date(e.getFullYear(),e.getMonth(),e.getDate()),this.datepickerMode===this.minMode?(this.selectedDate=new Date(this.activeDate),t&&this.selectedDateChange.emit(this.selectedDate)):(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)-1],this.calendarModeChange.emit(this.datepickerMode)),this.refreshView()},e.prototype.moveCalendar=function(e,t){e.preventDefault(),e.stopPropagation(),this.move(t)},e.prototype.move=function(e){var t;if("day"===this.datepickerMode&&(t=this.stepDay),"month"===this.datepickerMode&&(t=this.stepMonth),"year"===this.datepickerMode&&(t=this.stepYear),t){var n=this.activeDate.getFullYear()+e*(t.years||0),a=this.activeDate.getMonth()+e*(t.months||0);this.activeDate=new Date(n,a,1),this.refreshView()}},e.prototype.toggleModeCalendar=function(e){e.preventDefault(),e.stopPropagation(),this.toggleMode(1)},e.prototype.toggleMode=function(e){1===(e=e||1)&&this.datepickerMode===this.maxMode||this.datepickerMode===this.minMode&&-1===e||(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)+e],this.calendarModeChange.emit(this.datepickerMode),this.refreshView())},e.prototype.isDisabled=function(e){var t=this.getCustomDate(e);return this.minDate&&this.compare(e,this.minDate)<0||this.maxDate&&this.compare(e,this.maxDate)>0||t&&t.disabled},e.prototype.getCustomDate=function(e){if(this.customDates)return this.customDates.find((function(t){return t.date.getTime()===e.getTime()}))},h([t.Input()],e.prototype,"customDates",void 0),h([t.Input()],e.prototype,"startingDay",void 0),h([t.Input()],e.prototype,"minDate",void 0),h([t.Input()],e.prototype,"maxDate",void 0),h([t.Input()],e.prototype,"selectedDate",null),h([t.Output()],e.prototype,"selectedDateChange",void 0),h([t.Output()],e.prototype,"calendarModeChange",void 0),e=h([t.Component({selector:"sky-datepicker-inner",template:'<div\n *ngIf="datepickerMode"\n class="sky-datepicker-calendar-inner"\n (keydown)="onKeydown($event)">\n <ng-content></ng-content>\n</div>\n',encapsulation:t.ViewEncapsulation.None,styles:[".sky-datepicker-calendar-inner{border-radius:5px;background-color:#fff;border-top:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;border-right:1px solid #e2e3e4}.sky-datepicker-calendar-inner .sky-btn-default{border:2px solid #fff}.sky-datepicker-calendar-inner .sky-btn-default:hover{border-color:#eeeeef}.sky-datepicker-calendar-inner .sky-datepicker-center{text-align:center}.sky-datepicker-calendar-inner .sky-btn-default.sky-datepicker-btn-selected:hover,.sky-datepicker-calendar-inner .sky-datepicker-btn-selected{background-color:#c1e8fb;border:2px solid #00b4f1}.sky-datepicker-calendar-inner .sky-btn.sky-btn-active{box-shadow:none}.sky-datepicker-calendar-inner .sky-datepicker-secondary{color:#686c73}.sky-datepicker-calendar-inner .sky-datepicker-btn-date{min-width:100%}.sky-datepicker-calendar-inner .sky-datepicker-calendar-title{width:100%}.sky-datepicker-calendar-inner .sky-datepicker-chevron-modern{display:none}.sky-datepicker-calendar-inner .sky-datepicker-header-left{text-align:left}.sky-datepicker-calendar-inner .sky-datepicker-header-right{text-align:right}.sky-theme-modern .sky-datepicker-calendar-inner{border:none;box-shadow:inset 0 0 0 1px #d2d2d2;border-radius:6px;padding:5px 10px}.sky-theme-modern .sky-datepicker-calendar-inner:focus-within{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px 0 rgba(0,0,0,.3)}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default{border:none;box-shadow:inset 0 0 0 1px transparent;padding:5px 7px}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-active,.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-btn-sm.sky-datepicker-btn-date{height:30px;min-width:0;padding:0;width:30px}.sky-theme-modern .sky-datepicker-chevron-default{display:none}.sky-theme-modern .sky-datepicker-chevron-modern{display:inline;font-size:16px}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner:not(:focus-within){border:none;box-shadow:inset 0 0 0 1px #686c73}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner .sky-datepicker-btn-selected{background-color:#009cd1}"]})],e)}(),O=function(){function e(){this.startingDay=0}return e=h([t.Injectable()],e)}(),V=function(){function e(e,n,a){this.adapter=e,this.config=n,this.elementRef=a,this.selectedDateChange=new t.EventEmitter(void 0),this.calendarDateRangeChange=new t.EventEmitter,this.calendarModeChange=new t.EventEmitter,this._now=new Date,this.formatter=new F,this.configureOptions()}return Object.defineProperty(e.prototype,"startingDay",{get:function(){return this._startingDay||0},set:function(e){this._startingDay=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isVisible",{get:function(){return this.adapter.elementIsVisible()},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){this.adapter.init(this.elementRef)},e.prototype.configureOptions=function(){Object.assign(this,this.config)},e.prototype.onCalendarDateRangeChange=function(e){this.calendarDateRangeChange.next(e)},e.prototype.onCalendarModeChange=function(e){this.calendarModeChange.emit(e)},e.prototype.onSelectedDateChange=function(e){this.selectedDateChange.emit(e)},e.prototype.writeValue=function(e){void 0!==e&&this.formatter.dateIsValid(e)&&void 0!==this.selectedDate&&0===this._datepicker.compareHandlerDay(e,this.selectedDate)||(this.formatter.dateIsValid(e)?(this.selectedDate=e,this._datepicker.select(e,!1)):(this.selectedDate=new Date,this._datepicker.select(new Date,!1)))},e.ctorParameters=function(){return[{type:S},{type:O},{type:t.ElementRef}]},h([t.Input()],e.prototype,"customDates",void 0),h([t.Input()],e.prototype,"isDaypickerWaiting",void 0),h([t.Input()],e.prototype,"minDate",void 0),h([t.Input()],e.prototype,"maxDate",void 0),h([t.Input()],e.prototype,"selectedDate",void 0),h([t.Input()],e.prototype,"startingDay",null),h([t.Output()],e.prototype,"selectedDateChange",void 0),h([t.Output()],e.prototype,"calendarDateRangeChange",void 0),h([t.Output()],e.prototype,"calendarModeChange",void 0),h([t.ViewChild(M,{read:M,static:!0})],e.prototype,"_datepicker",void 0),e=h([t.Component({selector:"sky-datepicker-calendar",template:'<div class="sky-datepicker-calendar">\n <sky-datepicker-inner\n [customDates]="customDates"\n [selectedDate]="selectedDate"\n [minDate]="minDate"\n [maxDate]="maxDate"\n [startingDay]="startingDay"\n (selectedDateChange)="onSelectedDateChange($event)"\n (calendarModeChange)="onCalendarModeChange($event)"\n >\n <sky-daypicker\n tabindex="0"\n [customDates]="customDates"\n [isWaiting]="isDaypickerWaiting"\n (calendarDateRangeChange)="onCalendarDateRangeChange($event)"\n ></sky-daypicker>\n <sky-monthpicker tabindex="0"></sky-monthpicker>\n <sky-yearpicker tabindex="0"></sky-yearpicker>\n </sky-datepicker-inner>\n</div>\n',providers:[S],styles:[".sky-datepicker-calendar{display:block}"]})],e)}(),P=0,Y=function(){function e(e,n,i,o,s,c){var l=this;this.affixService=e,this.changeDetector=n,this.coreAdapter=i,this.overlayService=o,this.inputBoxHostService=s,this.pickerClass="",this.calendarDateRangeChange=new t.EventEmitter,this.dateChange=new t.EventEmitter,this.isDaypickerWaiting=!1,this.isOpen=!1,this.isVisible=!1,this.ngUnsubscribe=new a.Subject,this._disabled=!1;var u=P++;this.calendarId="sky-datepicker-calendar-"+u,this.triggerButtonId="sky-datepicker-button-"+u,null==c||c.settingsChange.pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(){l.changeDetector.markForCheck()}))}return Object.defineProperty(e.prototype,"buttonIsFocused",{get:function(){if(!this.triggerButtonRef)return!1;var e=document.activeElement;return this.triggerButtonRef.nativeElement===e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"calendarIsFocused",{get:function(){if(!this.calendarRef)return!1;var e=document.activeElement;return this.calendarRef.nativeElement.contains(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"calendarIsVisible",{get:function(){return!!this.calendar&&this.calendar.isVisible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,this.changeDetector.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedDate",{set:function(e){this._selectedDate=e,this.calendar&&this.calendar.writeValue(this._selectedDate)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"calendarRef",{get:function(){return this._calendarRef},set:function(e){var t=this;e&&(this._calendarRef=e,setTimeout((function(){t.calendar.writeValue(t._selectedDate),t.destroyAffixer(),t.createAffixer(),setTimeout((function(){t.coreAdapter.getFocusableChildrenAndApplyFocus(t.calendarRef,".sky-datepicker-calendar-inner",!1),t.isVisible=!0,t.changeDetector.markForCheck()}))})))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.inputBoxHostService&&this.inputBoxHostService.populate({inputTemplate:this.inputTemplateRef,buttonsTemplate:this.triggerButtonTemplateRef})},e.prototype.ngOnDestroy=function(){this.dateChange.complete(),this.ngUnsubscribe.next(),this.ngUnsubscribe.complete(),this.removePickerEventListeners(),this.destroyAffixer(),this.destroyOverlay()},e.prototype.onCalendarModeChange=function(){var e=this;setTimeout((function(){e.affixer.reaffix()}))},e.prototype.onSelectedDateChange=function(e){this.dateChange.emit(e),this.closePicker()},e.prototype.onTriggerButtonClick=function(){this.isOpen?this.closePicker():this.openPicker()},e.prototype.onCalendarDateRangeChange=function(e){var t=this;if(e){this.cancelCustomDatesSubscription();var n={startDate:e.startDate,endDate:e.endDate,customDates:void 0};this.calendarDateRangeChange.emit(n),n.customDates&&(this.isDaypickerWaiting=!0,this.changeDetector.detectChanges(),this.customDatesSubscription=n.customDates.pipe(r.debounceTime(250)).subscribe((function(e){t.customDates=e,t.isDaypickerWaiting=!1,t.changeDetector.markForCheck()})))}},e.prototype.closePicker=function(){this.destroyAffixer(),this.destroyOverlay(),this.removePickerEventListeners(),this.triggerButtonRef.nativeElement.focus(),this.isOpen=!1},e.prototype.openPicker=function(){this.isVisible=!1,this.changeDetector.markForCheck(),this.removePickerEventListeners(),this.calendarUnsubscribe=new a.Subject,this.destroyOverlay(),this.createOverlay(),this.isOpen=!0,this.changeDetector.markForCheck()},e.prototype.createAffixer=function(){var e=this,t=this.affixService.createAffixer(this.calendarRef);t.placementChange.pipe(r.takeUntil(this.calendarUnsubscribe)).subscribe((function(t){e.isVisible=null!==t.placement,e.changeDetector.markForCheck()})),t.affixTo(this.triggerButtonRef.nativeElement,{autoFitContext:c.SkyAffixAutoFitContext.Viewport,enableAutoFit:!0,horizontalAlignment:"right",isSticky:!0,placement:"below"}),this.affixer=t},e.prototype.destroyAffixer=function(){this.affixer&&(this.affixer.destroy(),this.affixer=void 0)},e.prototype.createOverlay=function(){var e=this,t=this.overlayService.create({wrapperClass:this.pickerClass,enableClose:!1,enablePointerEvents:!1});t.backdropClick.pipe(r.takeUntil(this.calendarUnsubscribe)).subscribe((function(){e.isOpen&&e.closePicker()})),this.addKeydownListner(),t.attachTemplate(this.calendarTemplateRef),this.overlay=t},e.prototype.destroyOverlay=function(){this.overlay&&(this.overlayService.close(this.overlay),this.overlay=void 0)},e.prototype.addKeydownListner=function(){var e=this;this.overlayKeydownListner=a.fromEvent(window.document,"keydown").pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(t){var n;"escape"===(null===(n=t.key)||void 0===n?void 0:n.toLowerCase())&&e.isOpen&&e.closePicker()}))},e.prototype.removePickerEventListeners=function(){var e;this.calendarUnsubscribe&&(this.calendarUnsubscribe.next(),this.calendarUnsubscribe.complete(),this.calendarUnsubscribe=void 0),null===(e=this.overlayKeydownListner)||void 0===e||e.unsubscribe()},e.prototype.cancelCustomDatesSubscription=function(){this.customDatesSubscription&&(this.customDatesSubscription.unsubscribe(),this.customDatesSubscription=void 0)},e.ctorParameters=function(){return[{type:c.SkyAffixService},{type:t.ChangeDetectorRef},{type:c.SkyCoreAdapterService},{type:c.SkyOverlayService},{type:l.SkyInputBoxHostService,decorators:[{type:t.Optional}]},{type:d.SkyThemeService,decorators:[{type:t.Optional}]}]},h([t.Input()],e.prototype,"pickerClass",void 0),h([t.Output()],e.prototype,"calendarDateRangeChange",void 0),h([t.ViewChild(V)],e.prototype,"calendar",void 0),h([t.ViewChild("calendarRef",{read:t.ElementRef})],e.prototype,"calendarRef",null),h([t.ViewChild("calendarTemplateRef",{read:t.TemplateRef})],e.prototype,"calendarTemplateRef",void 0),h([t.ViewChild("triggerButtonRef",{read:t.ElementRef})],e.prototype,"triggerButtonRef",void 0),h([t.ViewChild("inputTemplateRef",{read:t.TemplateRef,static:!0})],e.prototype,"inputTemplateRef",void 0),h([t.ViewChild("triggerButtonTemplateRef",{read:t.TemplateRef,static:!0})],e.prototype,"triggerButtonTemplateRef",void 0),e=h([t.Component({selector:"sky-datepicker",template:'<div\n class="sky-datepicker"\n>\n <ng-container *ngIf="!inputBoxHostService">\n <div\n class="sky-input-group"\n >\n <ng-container *ngTemplateOutlet="inputTemplateRef"></ng-container>\n <ng-container *ngTemplateOutlet="triggerButtonTemplateRef"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div\n class="sky-input-group-btn"\n >\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]="\'skyux_datepicker_trigger_button_label\' | skyLibResources"\n [attr.id]="triggerButtonId"\n [attr.title]="\'skyux_datepicker_trigger_button_label\' | skyLibResources"\n [disabled]="disabled"\n (click)="onTriggerButtonClick()"\n #triggerButtonRef\n >\n <sky-icon *skyThemeIf="\'default\'"\n icon="calendar"\n size="lg"\n ></sky-icon>\n <sky-icon *skyThemeIf="\'modern\'"\n icon="calendar"\n size="lg"\n iconType="skyux"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n class="sky-datepicker-calendar-container sky-shadow sky-elevation-4"\n role="dialog"\n [attr.aria-labelledby]="triggerButtonId"\n [attr.id]="calendarId"\n [class.sky-datepicker-hidden]="!isVisible"\n #calendarRef\n >\n <sky-datepicker-calendar\n [customDates]="customDates"\n [isDaypickerWaiting]="isDaypickerWaiting"\n [maxDate]="maxDate"\n [minDate]="minDate"\n [startingDay]="startingDay"\n (calendarDateRangeChange)="onCalendarDateRangeChange($event)"\n (calendarModeChange)="onCalendarModeChange()"\n (selectedDateChange)="onSelectedDateChange($event)"\n >\n </sky-datepicker-calendar>\n </div>\n</ng-template>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[".sky-datepicker-calendar-container{position:fixed;border-radius:5px}.sky-datepicker-hidden{visibility:hidden}"]}),y(4,t.Optional()),y(5,t.Optional())],e)}(),L=i,E={provide:s.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return z})),multi:!0},A={provide:s.NG_VALIDATORS,useExisting:t.forwardRef((function(){return z})),multi:!0},z=function(){function e(e,t,n,i,o,s,c,l){var u=this;this.adapter=e,this.changeDetector=t,this.configService=n,this.elementRef=i,this.localeProvider=o,this.renderer=s,this.resourcesService=c,this.datepickerComponent=l,this.skyDatepickerNoValidate=!1,this.dateFormatter=new F,this.isFirstChange=!0,this.ngUnsubscribe=new a.Subject,this.onChange=function(e){},this.onTouched=function(){},this.onValidatorChange=function(){},this.initialPlaceholder=this.adapter.getPlaceholder(this.elementRef),this.updatePlaceholder(),this.localeProvider.getLocaleInfo().pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(e){F.setLocale(e.locale),u.preferredShortDateFormat=F.getPreferredShortDateFormat(),u.applyDateFormat()}))}return Object.defineProperty(e.prototype,"dateFormat",{get:function(){return this._dateFormat||this.configService.dateFormat||this.preferredShortDateFormat},set:function(e){e!==this._dateFormat&&(this._dateFormat=e,this.applyDateFormat())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled||!1},set:function(e){this._disabled=e,this.datepickerComponent.disabled=e,this.renderer.setProperty(this.elementRef.nativeElement,"disabled",e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inputIsFocused",{get:function(){return this.adapter.elementIsFocused()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{get:function(){return this._maxDate||this.configService.maxDate},set:function(e){this._maxDate=e,this.datepickerComponent.maxDate=this.maxDate,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minDate",{get:function(){return this._minDate||this.configService.minDate},set:function(e){this._minDate=e,this.datepickerComponent.minDate=this.minDate,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"skyDatepickerInput",{set:function(e){e&&console.warn("[Deprecation warning] You no longer need to provide a template reference variable to the `skyDatepickerInput` attribute (this will be a breaking change in the next major version release).\nDo this instead:\n<sky-datepicker>\n <input skyDatepickerInput />\n</sky-datepicker>")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startingDay",{get:function(){return this._startingDay||this.configService.startingDay},set:function(e){this._startingDay=e,this.datepickerComponent.startingDay=this.startingDay,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"strict",{get:function(){return this._strict||!1},set:function(e){this._strict=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){var t=this.getDateValue(e),n=this._value instanceof Date&&t&&t.getTime()===this._value.getTime(),a=this.isDateStringValid(e);if(a?t===this._value&&n||(this._value=t||e,this.notifyUpdatedValue()):(this._value=e,this.notifyUpdatedValue()),t&&a){var r=this.dateFormatter.format(t,this.dateFormat);this.setInputElementValue(r)}else this.setInputElementValue(e||"")},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;if(!this.datepickerComponent)throw new Error("You must wrap the `skyDatepickerInput` directive within a `<sky-datepicker>` component!");var t=this.elementRef.nativeElement;this.renderer.addClass(t,"sky-form-control"),t.getAttribute("aria-label")||this.resourcesService.getString("skyux_date_field_default_label").pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(n){e.renderer.setAttribute(t,"aria-label",n)}))},e.prototype.ngAfterContentInit=function(){var e=this;this.datepickerComponent.dateChange.pipe(r.distinctUntilChanged()).pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(t){e.isFirstChange=!1,e.value=t,e.onTouched()}))},e.prototype.ngAfterViewInit=function(){var e=this;this.control&&this.control.parent&&setTimeout((function(){e.control.setValue(e.value,{emitEvent:!1}),e.changeDetector.markForCheck()})),this.adapter.init(this.elementRef)},e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},e.prototype.onInputChange=function(e){var t=e.target.value;this.skyDatepickerNoValidate||this.isDateStringValid(t)?this.onValueChange(t):(this._value=t,this.onChange(t),this.control.setErrors({skyDate:{invalid:!0}}))},e.prototype.onInputBlur=function(){this.onTouched()},e.prototype.onInputKeyup=function(){this.control.markAsDirty()},e.prototype.writeValue=function(e){this.value=e},e.prototype.validate=function(e){if(this.control||(this.control=e),!this.skyDatepickerNoValidate){var t=e.value;if(t){var n=this.getDateValue(t);if(!(n&&this.dateFormatter.dateIsValid(n))||!this.isDateStringValid(t))return this.control.markAsTouched(),{skyDate:{invalid:t}};var a=this.minDate;if(a&&this.dateFormatter.dateIsValid(a)&&t<a)return{skyDate:{minDate:a}};var r=this.maxDate;return r&&this.dateFormatter.dateIsValid(r)&&t>r?{skyDate:{maxDate:r}}:void 0}}},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.registerOnValidatorChange=function(e){this.onValidatorChange=e},e.prototype.setDisabledState=function(e){this.disabled=e,this.datepickerComponent.disabled=e},e.prototype.detectInputValueChange=function(){this.onValueChange(this.elementRef.nativeElement.value)},e.prototype.applyDateFormat=function(){if(this.updatePlaceholder(),this.value){var e=this.dateFormatter.format(this.value,this.dateFormat);this.setInputElementValue(e),this.changeDetector.markForCheck()}},e.prototype.onValueChange=function(e){this.isFirstChange=!1,this.value=e},e.prototype.setInputElementValue=function(e){this.renderer.setProperty(this.elementRef.nativeElement,"value",e)},e.prototype.getDateValue=function(e){var t;if(e instanceof Date)t=e;else if("string"==typeof e){var n=this.dateFormatter.getDateFromString(e,this.dateFormat,this.strict);this.dateFormatter.dateIsValid(n)&&(t=n)}return t},e.prototype.isDateStringValid=function(e){if(!e||"string"!=typeof e)return!0;return!!/^[\d\/\-]+$/.test(e)||L(e,L.ISO_8601).isValid()},e.prototype.notifyUpdatedValue=function(){this.onChange(this._value),this.isFirstChange&&this.control&&this.control.markAsPristine(),this.isFirstChange&&this._value&&(this.isFirstChange=!1),this.datepickerComponent.selectedDate=this._value},e.prototype.updatePlaceholder=function(){this.initialPlaceholder||this.adapter.setPlaceholder(this.elementRef,this.dateFormat)},e.ctorParameters=function(){return[{type:S},{type:t.ChangeDetectorRef},{type:O},{type:t.ElementRef},{type:n.SkyAppLocaleProvider},{type:t.Renderer2},{type:n.SkyLibResourcesService},{type:Y,decorators:[{type:t.Optional}]}]},h([t.Input()],e.prototype,"dateFormat",null),h([t.Input()],e.prototype,"disabled",null),h([t.Input()],e.prototype,"maxDate",null),h([t.Input()],e.prototype,"minDate",null),h([t.Input()],e.prototype,"skyDatepickerInput",null),h([t.Input()],e.prototype,"skyDatepickerNoValidate",void 0),h([t.Input()],e.prototype,"startingDay",null),h([t.Input()],e.prototype,"strict",null),h([t.HostListener("change",["$event"])],e.prototype,"onInputChange",null),h([t.HostListener("blur")],e.prototype,"onInputBlur",null),h([t.HostListener("keyup")],e.prototype,"onInputKeyup",null),e=h([t.Directive({selector:"[skyDatepickerInput]",providers:[E,A,S]}),y(7,t.Optional())],e)}(),j={provide:s.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return B})),multi:!0},U={provide:s.NG_VALIDATORS,useExisting:t.forwardRef((function(){return B})),multi:!0},B=function(){function e(e,t,n,i,o,s,c,l){var u=this;this.changeDetector=e,this.configService=t,this.elementRef=n,this.fuzzyDateService=i,this.localeProvider=o,this.renderer=s,this.resourcesService=c,this.datepickerComponent=l,this.skyDatepickerNoValidate=!1,this.dateFormatter=new F,this.isFirstChange=!0,this.ngUnsubscribe=new a.Subject,this._futureDisabled=!1,this._disabled=!1,this._yearRequired=!1,this.onChange=function(e){},this.onTouched=function(){},this.onValidatorChange=function(){},this.localeProvider.getLocaleInfo().pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(e){u.locale=e.locale,F.setLocale(u.locale),u.preferredShortDateFormat=F.getPreferredShortDateFormat()}))}return Object.defineProperty(e.prototype,"dateFormat",{get:function(){return this._dateFormat||this.configService.dateFormat||this.preferredShortDateFormat},set:function(e){if(this._dateFormat=e,this.value){var t=this.fuzzyDateService.format(this.value,this.dateFormat,this.locale);this.setInputElementValue(t),this.changeDetector.markForCheck()}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,this.datepickerComponent.disabled=e,this.renderer.setProperty(this.elementRef.nativeElement,"disabled",e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"futureDisabled",{get:function(){return this._futureDisabled},set:function(e){this._futureDisabled=e,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{get:function(){return this._maxDate},set:function(e){this._maxDate=e,this.datepickerComponent.maxDate=this.getMaxDate(),this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minDate",{get:function(){return this._minDate},set:function(e){this._minDate=e,this.datepickerComponent.minDate=this.getMinDate(),this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"skyFuzzyDatepickerInput",{set:function(e){},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startingDay",{get:function(){return this._startingDay||this.configService.startingDay},set:function(e){this._startingDay=e,this.datepickerComponent.startingDay=this.startingDay,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"yearRequired",{get:function(){return this._yearRequired},set:function(e){this._yearRequired=e,this.onValidatorChange()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){var t,n,a,r;e instanceof Date?(a=e,r=this.dateFormatter.format(e,this.dateFormat),t=this.fuzzyDateService.getFuzzyDateFromSelectedDate(e,this.dateFormat)):"string"==typeof e?(t=this.fuzzyDateService.getFuzzyDateFromString(e,this.dateFormat),(r=this.fuzzyDateService.format(t,this.dateFormat,this.locale))||(r=e),(n=this.fuzzyDateService.getMomentFromFuzzyDate(t))&&(a=n.toDate())):(t=e,r=this.fuzzyDateService.format(t,this.dateFormat,this.locale),(n=this.fuzzyDateService.getMomentFromFuzzyDate(t))&&(a=n.toDate()));var i=this.fuzzyDatesEqual(this._value,t),o=t!==this._value||!i;this._value=t||e,o&&(this.onChange(this._value),this.isFirstChange&&this.control&&this.control.markAsPristine(),this.isFirstChange&&this._value&&(this.isFirstChange=!1),this.datepickerComponent.selectedDate=a),this.setInputElementValue(r||"")},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;if(this.yearRequired&&-1===this.dateFormat.toLowerCase().indexOf("y"))throw new Error("You have configured conflicting settings. Year is required and dateFormat does not include year.");if(!this.datepickerComponent)throw new Error("You must wrap the `skyFuzzyDatepickerInput` directive within a `<sky-datepicker>` component!");var t=this.elementRef.nativeElement;this.renderer.addClass(t,"sky-form-control"),t.getAttribute("aria-label")||this.resourcesService.getString("skyux_date_field_default_label").pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(n){e.renderer.setAttribute(t,"aria-label",n)}))},e.prototype.ngAfterContentInit=function(){var e=this;this.datepickerComponent.dateChange.pipe(r.distinctUntilChanged(),r.takeUntil(this.ngUnsubscribe)).subscribe((function(t){e.isFirstChange=!1,e.value=t,e.onTouched()}))},e.prototype.ngAfterViewInit=function(){var e=this;this.control&&this.control.parent&&setTimeout((function(){e.control.setValue(e.value,{emitEvent:!1}),e.changeDetector.markForCheck()}))},e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},e.prototype.onInputChange=function(e){this.onValueChange(e.target.value)},e.prototype.onInputBlur=function(){this.onTouched();var e=this.fuzzyDateService.format(this.value,this.dateFormat,this.locale);this.control.valid&&this.setInputElementValue(e||"")},e.prototype.onInputKeyup=function(){this.control.markAsDirty()},e.prototype.writeValue=function(e){this.value=e},e.prototype.validate=function(e){if(this.control||(this.control=e),!this.skyDatepickerNoValidate&&this.control.value){var t,n,a=e.value;if((t="string"==typeof a?this.fuzzyDateService.getFuzzyDateFromString(a,this.dateFormat):a)||(n={skyFuzzyDate:{invalid:a}}),n||t.year||!this.yearRequired||(n={skyFuzzyDate:{yearRequired:a}}),!n&&t.year){this.maxDate&&(this.fuzzyDateService.getFuzzyDateRange(t,this.maxDate).valid||(n={skyFuzzyDate:{maxDate:a}})),!n&&this.minDate&&(this.fuzzyDateService.getFuzzyDateRange(this.minDate,t).valid||(n={skyFuzzyDate:{minDate:a}})),!n&&this.futureDisabled&&(this.fuzzyDateService.getFuzzyDateRange(t,this.fuzzyDateService.getCurrentFuzzyDate()).valid||(n={skyFuzzyDate:{futureDisabled:a}}))}return n&&this.control.markAsTouched(),n}},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.registerOnValidatorChange=function(e){this.onValidatorChange=e},e.prototype.setDisabledState=function(e){this.disabled=e,this.datepickerComponent.disabled=e},e.prototype.detectInputValueChange=function(){this.onValueChange(this.elementRef.nativeElement.value)},e.prototype.onValueChange=function(e){this.isFirstChange=!1,this.value=e},e.prototype.setInputElementValue=function(e){this.renderer.setProperty(this.elementRef.nativeElement,"value",e)},e.prototype.getMaxDate=function(){if(this.maxDate){var e=this.fuzzyDateService.getMomentFromFuzzyDate(this.maxDate);if(e.isValid())return e.toDate()}else if(this.futureDisabled)return new Date;return this.configService.maxDate},e.prototype.getMinDate=function(){if(this.minDate){var e=this.fuzzyDateService.getMomentFromFuzzyDate(this.minDate);if(e.isValid())return e.toDate()}return this.configService.minDate},e.prototype.fuzzyDatesEqual=function(e,t){return e&&t&&(!e.day&&!t.day||e.day===t.day)&&(!e.month&&!t.month||e.month===t.month)&&(!e.year&&!t.year||e.year===t.year)},e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:O},{type:t.ElementRef},{type:C},{type:n.SkyAppLocaleProvider},{type:t.Renderer2},{type:n.SkyLibResourcesService},{type:Y,decorators:[{type:t.Optional}]}]},h([t.Input()],e.prototype,"dateFormat",null),h([t.Input()],e.prototype,"disabled",null),h([t.Input()],e.prototype,"futureDisabled",null),h([t.Input()],e.prototype,"maxDate",null),h([t.Input()],e.prototype,"minDate",null),h([t.Input()],e.prototype,"skyDatepickerNoValidate",void 0),h([t.Input()],e.prototype,"skyFuzzyDatepickerInput",null),h([t.Input()],e.prototype,"startingDay",null),h([t.Input()],e.prototype,"yearRequired",null),h([t.HostListener("change",["$event"])],e.prototype,"onInputChange",null),h([t.HostListener("blur")],e.prototype,"onInputBlur",null),h([t.HostListener("keyup")],e.prototype,"onInputKeyup",null),e=h([t.Directive({selector:"[skyFuzzyDatepickerInput]",providers:[j,U]}),y(7,t.Optional())],e)}(),N=function(){function e(){this.keyDatePopoverStream=new a.Subject}return e=h([t.Injectable()],e)}(),H=function(){function e(e){this.datepicker=e}return e.ctorParameters=function(){return[{type:M}]},h([t.Input()],e.prototype,"date",void 0),e=h([t.Component({selector:"sky-daypicker-button",template:'<button\n class="sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date"\n tabindex="-1"\n type="button"\n [disabled]="date.disabled"\n [ngClass]="{\n \'sky-datepicker-btn-selected\': date.selected,\n \'sky-btn-disabled\': date.disabled,\n \'sky-btn-active\': datepicker.isActive(date),\n \'sky-datepicker-btn-disabled\': date.disabled,\n \'sky-datepicker-btn-key-date\': date.keyDate\n }"\n (click)="datepicker.selectCalendar($event, date.date, true)"\n>\n <span\n [ngClass]="{ \'sky-datepicker-secondary\': date.secondary }"\n >\n {{date.label}}\n </span>\n</button>\n',styles:['.sky-datepicker-btn-disabled{font-style:italic}.sky-datepicker-btn-key-date{position:relative}.sky-datepicker-btn-key-date::before{position:absolute;content:"";height:5px;width:5px;background-color:#d93a3d;border-radius:50%;left:15px;top:22px}:host-context(.sky-theme-modern) .sky-datepicker-btn-key-date::before{left:12px}.sky-theme-modern .sky-datepicker-btn-key-date::before{left:12px}']})],e)}(),K=function(){function e(e,t){this.datepicker=e,this.datepickerService=t,this.hasTooltip=!1,this.popoverController=new a.Subject,this.activeUid="",this.cancelPopover=!1,this.popoverOpen=!1,this.ngUnsubscribe=new a.Subject}return e.prototype.ngOnInit=function(){var e=this;this.hasTooltip=this.date.keyDate&&this.date.keyDateText&&this.date.keyDateText.length>0&&this.date.keyDateText[0].length>0,this.datepicker.isActive(this.date)&&this.activeDateHasChanged&&this.hasTooltip&&(this.activeUid=this.date.uid,this.showTooltip()),this.hasTooltip&&this.datepickerService.keyDatePopoverStream.pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(t){e.activeUid=t?t.uid:"",e.date.uid!==e.activeUid&&e.hideTooltip()}))},e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},e.prototype.onDayMouseenter=function(){this.cancelPopover=!1,this.hasTooltip&&(this.showTooltip(),this.datepickerService.keyDatePopoverStream.next(this.date))},e.prototype.onDayMouseleave=function(){this.cancelPopover=!0,this.hasTooltip&&this.hideTooltip(),this.datepickerService.keyDatePopoverStream.next(void 0)},e.prototype.onPopoverClosed=function(){this.popoverOpen=!1},e.prototype.onPopoverOpened=function(){this.popoverOpen=!0,this.cancelPopover&&(this.hideTooltip(),this.cancelPopover=!1)},e.prototype.getKeyDateLabel=function(){return this.hasTooltip?this.date.keyDateText.join(", "):""},e.prototype.hideTooltip=function(){this.popoverOpen&&this.popoverController.next({type:p.SkyPopoverMessageType.Close})},e.prototype.showTooltip=function(){var e=this;this.hasTooltip&&!this.popoverOpen&&setTimeout((function(){e.cancelPopover||e.activeUid!==e.date.uid||e.popoverController.next({type:p.SkyPopoverMessageType.Open})}),500)},e.ctorParameters=function(){return[{type:M},{type:N}]},h([t.Input()],e.prototype,"activeDateHasChanged",void 0),h([t.Input()],e.prototype,"date",void 0),e=h([t.Component({selector:"sky-daypicker-cell",template:'<div *ngIf="hasTooltip"\n class="sky-daypicker-cell"\n [attr.aria-label]="getKeyDateLabel()"\n [skyPopover]="dayInfoPopover"\n skyPopoverPlacement="left"\n [skyPopoverMessageStream]="popoverController"\n (mouseenter)="onDayMouseenter()"\n (mouseleave)="onDayMouseleave()"\n>\n <ng-container *ngTemplateOutlet="daypickerButtonTemplateRef"></ng-container>\n <sky-popover\n (popoverClosed)="onPopoverClosed()"\n (popoverOpened)="onPopoverOpened()"\n #dayInfoPopover\n >\n <div *ngFor="let text of date.keyDateText">\n {{text}}\n </div>\n </sky-popover>\n</div>\n<div *ngIf="!hasTooltip"\n class="sky-daypicker-cell"\n (mouseenter)="onDayMouseenter()"\n (mouseleave)="onDayMouseleave()"\n>\n <ng-container *ngTemplateOutlet="daypickerButtonTemplateRef"></ng-container>\n</div>\n\n<ng-template #daypickerButtonTemplateRef>\n <sky-daypicker-button\n [date]="date"\n >\n </sky-daypicker-button>\n</ng-template>\n',changeDetection:t.ChangeDetectionStrategy.OnPush})],e)}(),q=function(){function e(e){this.calendarDateRangeChange=new t.EventEmitter,this.isWaiting=!1,this.labels=[],this.rows=[],this.weekNumbers=[],this.activeDateHasChanged=!1,this.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31],this.ngUnsubscribe=new a.Subject,this.datepicker=e}return Object.defineProperty(e.prototype,"customDates",{set:function(e){e&&this.applyCustomDates(e,this.rows)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.datepicker.stepDay={months:1},this.initialDate=this.datepicker.activeDate.getDate(),this.datepicker.setRefreshViewHandler((function(){e.refreshDayView()}),"day"),this.datepicker.setCompareHandler(this.compareDays,"day"),this.datepicker.setKeydownHandler((function(t,n){e.keydownDays(t,n)}),"day"),this.datepicker.refreshView()},e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},e.prototype.getDates=function(e,t){for(var n,a=new Array(t),r=new Date(e.getTime()),i=0;i<t;)n=new Date(r.getTime()),n=this.datepicker.fixTimeZone(n),a[i++]=n,r=new Date(r.getFullYear(),r.getMonth(),r.getDate()+1);return a},e.prototype.compareDays=function(e,t){var n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),a=new Date(t.getFullYear(),t.getMonth(),t.getDate());return n.getTime()-a.getTime()},e.prototype.refreshDayView=function(){var e=this.datepicker.activeDate.getFullYear(),t=this.datepicker.activeDate.getMonth(),n=new Date(e,t,1),a=this.datepicker.startingDay-n.getDay(),r=a>0?7-a:-a,i=new Date(n.getTime());this.datepicker.activeDate.getDate()!==this.initialDate&&(this.activeDateHasChanged=!0),r>0&&i.setDate(1-r);for(var o=this.getDates(i,42),s=[],c=0;c<42;c++){var l=this.datepicker.createDateObject(o[c],this.datepicker.formatDay,o[c].getMonth()!==t,this.datepicker.datepickerId+"-"+c);s[c]=l}this.labels=[];for(var u=0;u<7;u++)this.labels[u]={},this.labels[u].abbr=this.datepicker.dateFilter(s[u].date,this.datepicker.formatDayHeader),this.labels[u].full=this.datepicker.dateFilter(s[u].date,"EEEE");this.title=this.datepicker.dateFilter(this.datepicker.activeDate,this.datepicker.formatDayTitle);var d=this.getDateRange(this.rows);this.rows=this.datepicker.createCalendarRows(s,7);var p=this.getDateRange(this.rows);this.dateRangeRowsAreEqual(d,p)||this.calendarDateRangeChange.next({startDate:p.startDate,endDate:p.endDate})},e.prototype.keydownDays=function(e,t){var n=this.datepicker.activeDate.getDate();if("left"===e)n-=1;else if("up"===e)n-=7;else if("right"===e)n+=1;else if("down"===e)n+=7;else if("pageup"===e||"pagedown"===e){var a=this.datepicker.activeDate.getMonth()+("pageup"===e?-1:1);this.datepicker.activeDate.setMonth(a,1),n=Math.min(this.getDaysInMonth(this.datepicker.activeDate.getFullYear(),this.datepicker.activeDate.getMonth()),n)}else"home"===e?n=1:"end"===e&&(n=this.getDaysInMonth(this.datepicker.activeDate.getFullYear(),this.datepicker.activeDate.getMonth()));this.datepicker.activeDate.setDate(n)},e.prototype.getDaysInMonth=function(e,t){return 1!==t||e%4!=0||e%400!=0&&e%100==0?this.daysInMonth[t]:29},e.prototype.applyCustomDates=function(e,t){var n,a,r;e&&t&&e.forEach((function(e){r=-1,t.forEach((function(t){-1===r&&(r=t.findIndex((function(t){return t.date.getTime()===e.date.getTime()})))>-1&&(n=t[r],a={current:n.current,date:n.date,disabled:!!n.disabled||!!e.disabled,keyDate:!!e.keyDate||!!n.keyDate,keyDateText:e.keyDateText||n.keyDateText,label:n.label,secondary:n.secondary,selected:n.selected,uid:n.uid},t[r]=a)}))}))},e.prototype.dateRangeRowsAreEqual=function(e,t){return!e&&!t||!(e&&!t||!e&&t)&&(0===this.compareDays(e.startDate,t.startDate)&&0===this.compareDays(e.endDate,t.endDate))},e.prototype.getDateRange=function(e){if(e&&e.length>0)return{startDate:e[0][0].date,endDate:e[e.length-1][e[e.length-1].length-1].date}},e.ctorParameters=function(){return[{type:M}]},h([t.Input()],e.prototype,"customDates",null),h([t.Output()],e.prototype,"calendarDateRangeChange",void 0),h([t.Input()],e.prototype,"isWaiting",void 0),e=h([t.Component({selector:"sky-daypicker",template:'<div *ngIf="datepicker.datepickerMode === \'day\'"\n class="sky-daypicker-wrapper"\n>\n <table\n class="sky-daypicker-table"\n role="grid"\n [attr.aria-labelledby]="datepicker.datepickerId+\'-title\'"\n [attr.aria-activedescendant]="datepicker.activeDateId"\n >\n <thead>\n <tr>\n <th\n class="sky-datepicker-header-left"\n scope="col"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous"\n (click)="datepicker.moveCalendar($event, -1)"\n tabindex="-1"\n aria-hidden="true"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-left"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-left"\n iconType="skyux"\n ></sky-icon>\n </button>\n </th>\n <th\n scope="col"\n [attr.colspan]="5"\n >\n <button\n [id]="datepicker.datepickerId + \'-title\'"\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title"\n (click)="datepicker.toggleModeCalendar($event)"\n [disabled]="datepicker.datepickerMode === datepicker.maxMode"\n [ngClass]="{\'sky-btn-disabled\': datepicker.datepickerMode === datepicker.maxMode}"\n tabindex="-1"\n aria-hidden="true"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class="sky-datepicker-header-right"\n scope="col"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next"\n (click)="datepicker.moveCalendar($event, 1)"\n tabindex="-1"\n aria-hidden="true"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-right"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-right"\n iconType="skyux"\n ></sky-icon>\n </button>\n </th>\n </tr>\n <tr>\n <th\n scope="col"\n *ngFor="let label of labels"\n class="sky-datepicker-center sky-datepicker-weekdays">\n <small [attr.aria-label]="label.full">\n <b>{{label.abbr}}</b>\n </small>\n </th>\n </tr>\n </thead>\n <tbody>\n \x3c!-- Wait indicator for async custom date stream --\x3e\n <sky-wait\n [isWaiting]="isWaiting"\n >\n </sky-wait>\n <ng-template\n ngFor\n [ngForOf]="rows"\n let-row="$implicit"\n let-index="index"\n >\n <tr role="row">\n <td *ngFor="let date of row"\n class="sky-datepicker-center"\n role="gridcell"\n [id]="date.uid"\n >\n <sky-daypicker-cell\n [activeDateHasChanged]="activeDateHasChanged"\n [date]="date"\n >\n </sky-daypicker-cell>\n </td>\n </tr>\n </ng-template>\n </tbody>\n </table>\n</div>\n',styles:[":host-context(.sky-theme-modern) :host:focus{outline:0}.sky-theme-modern :host:focus{outline:0}"]})],e)}(),W=function(){function e(e){this.rows=[],this.datepicker=e}return e.prototype.ngOnInit=function(){var e=this;this.datepicker.stepMonth={years:1},this.datepicker.setRefreshViewHandler((function(){e.refreshMonthView()}),"month"),this.datepicker.setCompareHandler(this.compareMonth,"month"),this.datepicker.refreshView(),this.datepicker.setKeydownHandler((function(t,n){e.keydownMonths(t,n)}),"month")},e.prototype.compareMonth=function(e,t){var n=new Date(e.getFullYear(),e.getMonth()),a=new Date(t.getFullYear(),t.getMonth());return n.getTime()-a.getTime()},e.prototype.refreshMonthView=function(){for(var e,t=new Array(12),n=this.datepicker.activeDate.getFullYear(),a=0;a<12;a++)e=new Date(n,a,1),e=this.datepicker.fixTimeZone(e),t[a]=this.datepicker.createDateObject(e,this.datepicker.formatMonth,!1,this.datepicker.datepickerId+"-"+a);this.title=this.datepicker.dateFilter(this.datepicker.activeDate,this.datepicker.formatMonthTitle),this.rows=this.datepicker.createCalendarRows(t,this.datepicker.monthColLimit)},e.prototype.keydownMonths=function(e,t){var n=this.datepicker.activeDate.getMonth();if("left"===e)n-=1;else if("up"===e)n-=this.datepicker.monthColLimit;else if("right"===e)n+=1;else if("down"===e)n+=this.datepicker.monthColLimit;else if("pageup"===e||"pagedown"===e){var a=this.datepicker.activeDate.getFullYear()+("pageup"===e?-1:1);this.datepicker.activeDate.setFullYear(a)}else"home"===e?n=0:"end"===e&&(n=11);this.datepicker.activeDate.setMonth(n)},e.ctorParameters=function(){return[{type:M}]},e=h([t.Component({selector:"sky-monthpicker",template:'<table *ngIf="datepicker.datepickerMode===\'month\'" role="grid">\n <thead>\n <tr>\n <th\n class="sky-datepicker-header-left"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous"\n (click)="datepicker.moveCalendar($event, -1)"\n tabindex="-1"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-left"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-left"\n iconType="skyux"\n ></sky-icon>\n </button></th>\n <th [attr.colspan]="((datepicker.monthColLimit - 2) <= 0) ? 1 : datepicker.monthColLimit - 2">\n <button\n [id]="datepicker.datepickerId + \'-title\'"\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title"\n (click)="datepicker.toggleModeCalendar($event)"\n [disabled]="datepicker.datepickerMode === maxMode"\n [ngClass]="{\'sky-btn-disabled\': datepicker.datepickerMode === maxMode}"\n tabindex="-1"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class="sky-datepicker-header-right"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next"\n (click)="datepicker.moveCalendar($event, 1)"\n tabindex="-1"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-right"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-right"\n iconType="skyux"\n ></sky-icon>\n </button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor="let row of rows">\n <td\n *ngFor="let date of row"\n class="text-center"\n role="gridcell"\n id="{{date.uid}}">\n <button\n type="button"\n class="sky-btn sky-btn-default sky-datepicker-btn-date"\n [ngClass]="{\'sky-datepicker-btn-selected\': date.selected, \'sky-btn-disabled\': date.disabled, \'sky-btn-active\': datepicker.isActive(date)}"\n [disabled]="date.disabled"\n (click)="datepicker.selectCalendar($event, date.date)"\n tabindex="-1"\n >\n <span [ngClass]="{\'sky-datepicker-current\': date.current}">{{date.label}}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n',styles:[":host-context(.sky-theme-modern) :host:focus{outline:0}.sky-theme-modern :host:focus{outline:0}"]})],e)}(),$=function(){function e(e){this.rows=[],this.datepicker=e}return e.prototype.ngOnInit=function(){var e=this;this.datepicker.stepYear={years:this.datepicker.yearRange},this.datepicker.setRefreshViewHandler((function(){e.refreshYearView()}),"year"),this.datepicker.setCompareHandler(this.compareYears,"year"),this.datepicker.setKeydownHandler((function(t,n){e.keydownYears(t,n)}),"year"),this.datepicker.refreshView()},e.prototype.getStartingYear=function(e){return Math.floor((e-1)/this.datepicker.yearRange)*this.datepicker.yearRange+1},e.prototype.compareYears=function(e,t){return e.getFullYear()-t.getFullYear()},e.prototype.refreshYearView=function(){for(var e,t=new Array(this.datepicker.yearRange),n=this.getStartingYear(this.datepicker.activeDate.getFullYear()),a=0;a<this.datepicker.yearRange;a++)(e=new Date(this.datepicker.activeDate)).setFullYear(n+a,0,1),t[a]=this.datepicker.createDateObject(e,this.datepicker.formatYear,!1,this.datepicker.datepickerId+"-"+a);this.title=[t[0].label,t[this.datepicker.yearRange-1].label].join(" - "),this.rows=this.datepicker.createCalendarRows(t,this.datepicker.yearColLimit)},e.prototype.keydownYears=function(e,t){var n=this.datepicker.activeDate.getFullYear();"left"===e?n-=1:"up"===e?n-=this.datepicker.yearColLimit:"right"===e?n+=1:"down"===e?n+=this.datepicker.yearColLimit:"pageup"===e||"pagedown"===e?n+=("pageup"===e?-1:1)*this.datepicker.yearRange:"home"===e?n=this.getStartingYear(this.datepicker.activeDate.getFullYear()):"end"===e&&(n=this.getStartingYear(this.datepicker.activeDate.getFullYear())+this.datepicker.yearRange-1),this.datepicker.activeDate.setFullYear(n)},e.ctorParameters=function(){return[{type:M}]},e=h([t.Component({selector:"sky-yearpicker",template:'<table *ngIf="datepicker.datepickerMode===\'year\'" role="grid">\n <thead>\n <tr>\n <th\n class="sky-datepicker-header-left"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous"\n (click)="datepicker.moveCalendar($event, -1)"\n tabindex="-1"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-left"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-left"\n iconType="skyux"\n ></sky-icon>\n </button>\n </th>\n <th [attr.colspan]="((datepicker.yearColLimit - 2) <= 0) ? 1 : datepicker.yearColLimit - 2">\n <button\n [id]="datepicker.datepickerId + \'-title\'"\n role="heading"\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title"\n (click)="datepicker.toggleModeCalendar($event)"\n [disabled]="datepicker.datepickerMode === datepicker.maxMode"\n [ngClass]="{\'sky-btn-disabled\': datepicker.datepickerMode === datepicker.maxMode}"\n tabindex="-1"\n >\n <strong>{{title}}</strong>\n </button>\n </th>\n <th\n class="sky-datepicker-header-right"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next"\n (click)="datepicker.moveCalendar($event, 1)"\n tabindex="-1"\n >\n <sky-icon\n class="sky-datepicker-chevron-default"\n icon="chevron-right"\n ></sky-icon>\n <sky-icon\n class="sky-datepicker-chevron-modern"\n icon="chevron-right"\n iconType="skyux"\n ></sky-icon>\n </button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor="let row of rows">\n <td\n *ngFor="let date of row"\n class="sky-datepicker-row"\n role="gridcell"\n >\n <button\n type="button"\n class="sky-btn sky-btn-default sky-datepicker-btn-date"\n [ngClass]="{\'sky-datepicker-btn-selected\': date.selected, \'sky-btn-disabled\': date.disabled, \'sky-btn-active\': datepicker.isActive(date)}"\n [disabled]="date.disabled"\n (click)="datepicker.selectCalendar($event, date.date)"\n tabindex="-1"\n >\n <span\n [ngClass]="{\'sky-datepicker-current\': date.current }">{{date.label}}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n',styles:[":host-context(.sky-theme-modern) :host:focus{outline:0}.sky-theme-modern :host:focus{outline:0}"]})],e)}(),G=function(){function e(){}return e=h([t.NgModule({declarations:[V,M,q,W,$,Y,z,B,K,H],imports:[o.CommonModule,n.SkyI18nModule,s.FormsModule,u.SkyIconModule,_,c.SkyAffixModule,c.SkyOverlayModule,d.SkyThemeModule,p.SkyPopoverModule,u.SkyWaitModule],exports:[V,M,q,W,$,Y,z,B,K,H],providers:[c.SkyAppWindowRef,O,C,c.SkyCoreAdapterService,d.SkyThemeService,N]})],e)}(),Q=function(){function e(e,t){this.calculatorId=e,this.config=t,this.type=t.type,this.shortDescription=t.shortDescription}return e.prototype.getValue=function(e,t){var n=this.config.getValue(e,t),a=null;n.startDate instanceof Date&&(a=this.parseDateWithoutTime(n.startDate));var r=null;return n.endDate instanceof Date&&(r=this.parseDateWithoutTime(n.endDate)),{calculatorId:this.calculatorId,startDate:a,endDate:r}},e.prototype.validate=function(e){if(this.config.validate)return this.config.validate(e)},e.prototype.parseDateWithoutTime=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())},e}(),Z=function(){function e(){}return Object.defineProperty(e,"today",{get:function(){var e=new Date;return{startDate:e,endDate:e}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"tomorrow",{get:function(){var e=new Date;return e.setDate(e.getDate()+1),{startDate:e,endDate:e}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"yesterday",{get:function(){var e=new Date;return e.setDate(e.getDate()-1),{startDate:e,endDate:e}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"thisWeek",{get:function(){var e=new Date;e.setDate(e.getDate()-e.getDay());var t=new Date;return t.setDate(t.getDate()-t.getDay()+6),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"nextWeek",{get:function(){var e=new Date;e.setDate(e.getDate()-e.getDay()+7);var t=new Date;return t.setDate(t.getDate()-t.getDay()+13),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"lastWeek",{get:function(){var e=new Date;e.setDate(e.getDate()-e.getDay()-7);var t=new Date;return t.setDate(t.getDate()-t.getDay()-1),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"thisMonth",{get:function(){var e=new Date;e.setDate(1);var t=new Date;return t.setMonth(t.getMonth()+1),t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"nextMonth",{get:function(){var e=new Date;e.setDate(1),e.setMonth(e.getMonth()+1);var t=new Date;return t.setDate(1),t.setMonth(t.getMonth()+2),t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"lastMonth",{get:function(){var e=new Date;e.setDate(0),e.setDate(1);var t=new Date;return t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"thisQuarter",{get:function(){var t=new Date,n=new Date,a=t.getMonth(),r=e.getQuarterStartMonth(a);return t.setMonth(r),t.setDate(1),n.setMonth(r+3),n.setDate(0),{startDate:t,endDate:n}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"nextQuarter",{get:function(){var t=new Date,n=new Date,a=t.getMonth(),r=e.getQuarterStartMonth(a);return t.setMonth(r+3),t.setDate(1),n.setMonth(r+6),n.setDate(0),{startDate:t,endDate:n}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"lastQuarter",{get:function(){var t=new Date;t.setDate(1);var n=new Date;n.setDate(1);var a=t.getMonth(),r=e.getQuarterStartMonth(a);return t.setMonth(r-3),t.setDate(1),n.setMonth(r),n.setDate(0),{startDate:t,endDate:n}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"thisCalendarYear",{get:function(){var e=new Date;e.setDate(1),e.setMonth(0);var t=new Date;return t.setDate(1),t.setMonth(0),t.setFullYear(t.getFullYear()+1),t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"nextCalendarYear",{get:function(){var e=new Date;e.setDate(1),e.setMonth(0),e.setFullYear(e.getFullYear()+1);var t=new Date;return t.setDate(1),t.setMonth(0),t.setFullYear(e.getFullYear()+1),t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"lastCalendarYear",{get:function(){var e=new Date;e.setDate(1),e.setMonth(0),e.setFullYear(e.getFullYear()-1);var t=new Date;return t.setDate(1),t.setMonth(0),t.setDate(0),{startDate:e,endDate:t}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"thisFiscalYear",{get:function(){var t=new Date;return t.setDate(1),e.getClosestFiscalYearRange(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e,"nextFiscalYear",{get:function(){var t=new Date;return t.setDate(1),t.setFullYear(t.getFullYear()+1),e.getClosestFiscalYearRange(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e,"lastFiscalYear",{get:function(){var t=new Date;return t.setDate(1),t.setFullYear(t.getFullYear()-1),e.getClosestFiscalYearRange(t)},enumerable:!0,configurable:!0}),e.getQuarterStartMonth=function(e){return e<3?0:e<6?3:e<9?6:9},e.getClosestFiscalYearRange=function(e){var t=new Date(e);return e.getMonth()>=9?(e.setMonth(9),t.setFullYear(e.getFullYear()+1),t.setMonth(9),t.setDate(0)):(e.setFullYear(e.getFullYear()-1),e.setMonth(9),t.setMonth(9),t.setDate(0)),{startDate:e,endDate:t}},e}(),J=[{calculatorId:e.SkyDateRangeCalculatorId.AnyTime,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_any_time",getValue:function(e,t){return{startDate:e,endDate:t}}},{calculatorId:e.SkyDateRangeCalculatorId.Before,type:e.SkyDateRangeCalculatorType.Before,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_before",getValue:function(e,t){return{startDate:e,endDate:t}}},{calculatorId:e.SkyDateRangeCalculatorId.After,type:e.SkyDateRangeCalculatorType.After,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_after",getValue:function(e,t){return{startDate:e,endDate:t}}},{calculatorId:e.SkyDateRangeCalculatorId.SpecificRange,type:e.SkyDateRangeCalculatorType.Range,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_specific_range",getValue:function(e,t){return{startDate:e,endDate:t}},validate:function(e){if(e.startDate&&e.endDate&&e.startDate>e.endDate)return{endDateBeforeStartDate:!0}}},{calculatorId:e.SkyDateRangeCalculatorId.LastFiscalYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_last_fiscal_year",getValue:function(){return Z.lastFiscalYear}},{calculatorId:e.SkyDateRangeCalculatorId.LastMonth,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_last_month",getValue:function(){return Z.lastMonth}},{calculatorId:e.SkyDateRangeCalculatorId.LastQuarter,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_last_quarter",getValue:function(){return Z.lastQuarter}},{calculatorId:e.SkyDateRangeCalculatorId.LastWeek,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_last_week",getValue:function(){return Z.lastWeek}},{calculatorId:e.SkyDateRangeCalculatorId.LastCalendarYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_last_calendar_year",getValue:function(){return Z.lastCalendarYear}},{calculatorId:e.SkyDateRangeCalculatorId.NextFiscalYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_next_fiscal_year",getValue:function(){return Z.nextFiscalYear}},{calculatorId:e.SkyDateRangeCalculatorId.NextMonth,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_next_month",getValue:function(){return Z.nextMonth}},{calculatorId:e.SkyDateRangeCalculatorId.NextQuarter,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_next_quarter",getValue:function(){return Z.nextQuarter}},{calculatorId:e.SkyDateRangeCalculatorId.NextWeek,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_next_week",getValue:function(){return Z.nextWeek}},{calculatorId:e.SkyDateRangeCalculatorId.NextCalendarYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_next_calendar_year",getValue:function(){return Z.nextCalendarYear}},{calculatorId:e.SkyDateRangeCalculatorId.ThisFiscalYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_this_fiscal_year",getValue:function(){return Z.thisFiscalYear}},{calculatorId:e.SkyDateRangeCalculatorId.ThisMonth,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_this_month",getValue:function(){return Z.thisMonth}},{calculatorId:e.SkyDateRangeCalculatorId.ThisQuarter,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_this_quarter",getValue:function(){return Z.thisQuarter}},{calculatorId:e.SkyDateRangeCalculatorId.ThisWeek,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_this_week",getValue:function(){return Z.thisWeek}},{calculatorId:e.SkyDateRangeCalculatorId.ThisCalendarYear,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_this_calendar_year",getValue:function(){return Z.thisCalendarYear}},{calculatorId:e.SkyDateRangeCalculatorId.Today,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_today",getValue:function(){return Z.today}},{calculatorId:e.SkyDateRangeCalculatorId.Tomorrow,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_tomorrow",getValue:function(){return Z.tomorrow}},{calculatorId:e.SkyDateRangeCalculatorId.Yesterday,type:e.SkyDateRangeCalculatorType.Relative,shortDescriptionResourceKey:"skyux_date_range_picker_format_label_yesterday",getValue:function(){return Z.yesterday}}],X=function(){function e(e){this.resourcesService=e,this.calculatorReadyStream=new a.BehaviorSubject(!1),this.calculatorConfigs={},this.calculators=[],this.createDefaultCalculators()}var i;return i=e,e.prototype.createCalculator=function(e){var t=i.lastId++,n=new Q(t,e);return this.calculators.push(n),n},e.prototype.getCalculators=function(e){var t=this,n=e.map((function(e){return t.getCalculatorById(e)}));return Promise.all(n)},e.prototype.getCalculatorById=function(e){var t=this,n=parseInt(e,10),a=this.calculators.find((function(e){return e.calculatorId===n}));return new Promise((function(n,i){a?t.calculatorReadyStream.pipe(r.first()).subscribe((function(){n(a)})):i(new Error("A calculator with the ID "+e+" was not found."))}))},e.prototype.createDefaultCalculators=function(){var e=this,t=[];J.forEach((function(n){var a={getValue:n.getValue,validate:n.validate,shortDescription:"",type:n.type};t.push(e.resourcesService.getString(n.shortDescriptionResourceKey).pipe(r.first(),r.map((function(e){a.shortDescription=e})))),e.calculatorConfigs[n.calculatorId]=a})),a.forkJoin(t).pipe(r.first()).subscribe((function(){var t=Object.keys(e.calculatorConfigs).map((function(t){var n=parseInt(t,10);return new Q(n,e.calculatorConfigs[n])}));e.calculators=t,e.calculatorReadyStream.next(!0)}))},e.lastId=1e3,e.ctorParameters=function(){return[{type:n.SkyLibResourcesService}]},e=i=h([t.Injectable()],e)}(),ee={provide:s.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return ae})),multi:!0},te={provide:s.NG_VALIDATORS,useExisting:t.forwardRef((function(){return ae})),multi:!0},ne=0,ae=function(){function i(e,t,n,i,o,s){var c=this;this.changeDetector=e,this.dateRangeService=t,this.formBuilder=n,this.localeProvider=i,this.windowRef=o,this.startDateRequired=!1,this.endDateRequired=!1,this.dateRangePickerId="sky-date-range-picker-"+ne++,this.isReady=!1,this.showEndDatePicker=!1,this.showStartDatePicker=!1,this.ngUnsubscribe=new a.Subject,this._disabled=!1,this.onChange=function(e){},this.onTouched=function(){},this.onValidatorChange=function(){},this.localeProvider.getLocaleInfo().pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(e){F.setLocale(e.locale),c.preferredShortDateFormat=F.getPreferredShortDateFormat()})),null==s||s.settingsChange.pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(){c.changeDetector.markForCheck()}))}return Object.defineProperty(i.prototype,"calculatorIds",{get:function(){return this._calculatorIds||[e.SkyDateRangeCalculatorId.AnyTime,e.SkyDateRangeCalculatorId.Before,e.SkyDateRangeCalculatorId.After,e.SkyDateRangeCalculatorId.SpecificRange,e.SkyDateRangeCalculatorId.Yesterday,e.SkyDateRangeCalculatorId.Today,e.SkyDateRangeCalculatorId.Tomorrow,e.SkyDateRangeCalculatorId.LastWeek,e.SkyDateRangeCalculatorId.ThisWeek,e.SkyDateRangeCalculatorId.NextWeek,e.SkyDateRangeCalculatorId.LastMonth,e.SkyDateRangeCalculatorId.ThisMonth,e.SkyDateRangeCalculatorId.NextMonth,e.SkyDateRangeCalculatorId.LastQuarter,e.SkyDateRangeCalculatorId.ThisQuarter,e.SkyDateRangeCalculatorId.NextQuarter,e.SkyDateRangeCalculatorId.LastCalendarYear,e.SkyDateRangeCalculatorId.ThisCalendarYear,e.SkyDateRangeCalculatorId.NextCalendarYear,e.SkyDateRangeCalculatorId.LastFiscalYear,e.SkyDateRangeCalculatorId.ThisFiscalYear,e.SkyDateRangeCalculatorId.NextFiscalYear]},set:function(e){this._calculatorIds=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"dateFormat",{get:function(){return this._dateFormat||this.preferredShortDateFormat},set:function(e){this._dateFormat=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,this.formGroup&&(this._disabled?this.formGroup.disable():this.formGroup.enable()),this.changeDetector.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"startDateLabelResourceKey",{get:function(){return this.selectedCalculator.type===e.SkyDateRangeCalculatorType.Range?"skyux_date_range_picker_start_date_label":"skyux_date_range_picker_after_date_label"},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"endDateLabelResourceKey",{get:function(){return this.selectedCalculator.type===e.SkyDateRangeCalculatorType.Range?"skyux_date_range_picker_end_date_label":"skyux_date_range_picker_before_date_label"},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"selectedCalculator",{get:function(){return this.getCalculatorById(this.value.calculatorId)},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"calculatorIdControl",{get:function(){return this.formGroup.get("calculatorId")},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"defaultCalculator",{get:function(){return this.calculators[0]},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"defaultValue",{get:function(){return this.defaultCalculator.getValue()},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"endDateControl",{get:function(){return this.formGroup.get("endDate")},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"startDateControl",{get:function(){return this.formGroup.get("startDate")},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"value",{get:function(){return this._value&&void 0!==this._value.calculatorId?this._value:this.defaultValue},enumerable:!0,configurable:!0}),i.prototype.ngOnInit=function(){var e=this;this.createForm(),this.updateCalculators().then((function(){e.addEventListeners(),e.isReady=!0,e.resetFormGroupValue(),e.showRelevantFormFields();var t=e.value,n=t.startDate,a=t.endDate,r=e.selectedCalculator.getValue(n,a),i=Object.assign({},r,e.value);e.setValue(i,!1),e.control&&e.control.setValue(e.value,{emitEvent:!1})}))},i.prototype.ngOnChanges=function(e){var t=this;e.calculatorIds&&!1===e.calculatorIds.firstChange&&this.updateCalculators().then((function(){var e=t.calculatorIdControl.value;if(!t.calculators.find((function(t){return t.calculatorId===e}))){var n=t.defaultCalculator.getValue();t.setValue(n),t.resetFormGroupValue(n),t.showRelevantFormFields()}}))},i.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},i.prototype.onFieldBlur=function(){this.onTouched()},i.prototype.writeValue=function(e){this.setValue(e,!1),this.isReady&&(e||this.onChange(this.defaultValue),this.resetFormGroupValue(),this.showRelevantFormFields())},i.prototype.validate=function(e){if(this.control||(this.control=e),this.isReady){var t,n=e.value,a=this.calculatorIdControl,r=this.selectedCalculator.validate(n);if(t=r?{skyDateRange:{calculatorId:a.value,errors:r}}:this.startDateControl.errors||this.endDateControl.errors)return a.setErrors(t),a.markAsTouched(),a.markAsDirty(),this.control.markAsTouched(),this.changeDetector.markForCheck(),t;a.setErrors(null)}},i.prototype.registerOnChange=function(e){this.onChange=e},i.prototype.registerOnTouched=function(e){this.onTouched=e},i.prototype.registerOnValidatorChange=function(e){this.onValidatorChange=e},i.prototype.setDisabledState=function(e){this.disabled=e},i.prototype.setValue=function(e,t){void 0===t&&(t=!0),!this.dateRangesEqual(this._value,e)&&(this._value=e,t&&this.onChange(this.value))},i.prototype.patchValue=function(e){var t=Object.assign({},this.value,e);this.setValue(t)},i.prototype.createForm=function(){this.formGroup=this.formBuilder.group({calculatorId:new s.FormControl,startDate:new s.FormControl,endDate:new s.FormControl}),this.disabled&&this.formGroup.disable()},i.prototype.showRelevantFormFields=function(){var t=!1,n=!1;switch(this.selectedCalculator.type){case e.SkyDateRangeCalculatorType.Before:t=!0;break;case e.SkyDateRangeCalculatorType.After:n=!0;break;case e.SkyDateRangeCalculatorType.Range:t=!0,n=!0}this.showEndDatePicker=t,this.showStartDatePicker=n,this.changeDetector.markForCheck()},i.prototype.resetFormGroupValue=function(e){this.formGroup.reset(e||this.value,{emitEvent:!1})},i.prototype.addEventListeners=function(){var e=this;a.combineLatest([this.startDateControl.statusChanges,this.endDateControl.statusChanges]).pipe(r.first()).subscribe((function(t){t.indexOf("INVALID")>-1&&e.windowRef.nativeWindow.setTimeout((function(){e.onValidatorChange()}))})),this.calculatorIdControl.valueChanges.pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(t){var n=parseInt(t,10);if(!isNaN(n)){var a=e.getCalculatorById(n).getValue();e.setValue(a),e.resetFormGroupValue(a),e.showRelevantFormFields()}})),this.startDateControl.valueChanges.pipe(r.distinctUntilChanged(),r.takeUntil(this.ngUnsubscribe)).subscribe((function(t){e.patchValue({startDate:t})})),this.endDateControl.valueChanges.pipe(r.distinctUntilChanged(),r.takeUntil(this.ngUnsubscribe)).subscribe((function(t){e.patchValue({endDate:t})})),a.combineLatest([this.startDateControl.statusChanges,this.endDateControl.statusChanges]).pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(){e.changeDetector.markForCheck()}))},i.prototype.updateCalculators=function(){var e=this;return this.dateRangeService.getCalculators(this.calculatorIds).then((function(t){e.calculators=t,e.changeDetector.markForCheck()}))},i.prototype.getCalculatorById=function(e){return this.calculators.find((function(t){return t.calculatorId===e}))},i.prototype.dateRangesEqual=function(e,t){return JSON.stringify(e)===JSON.stringify(t)},i.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:X},{type:s.FormBuilder},{type:n.SkyAppLocaleProvider},{type:c.SkyAppWindowRef},{type:d.SkyThemeService,decorators:[{type:t.Optional}]}]},h([t.Input()],i.prototype,"calculatorIds",null),h([t.Input()],i.prototype,"dateFormat",null),h([t.Input()],i.prototype,"disabled",null),h([t.Input()],i.prototype,"label",void 0),h([t.Input()],i.prototype,"startDateRequired",void 0),h([t.Input()],i.prototype,"endDateRequired",void 0),i=h([t.Component({selector:"sky-date-range-picker",template:'<div *ngIf="isReady"\n class="sky-date-range-picker"\n [formGroup]="formGroup"\n>\n <div\n class="sky-date-range-picker-form-group"\n >\n <sky-input-box>\n <label\n class="sky-control-label"\n [attr.for]="dateRangePickerId + \'-select-calculator\'"\n >\n {{ label || \'skyux_date_range_picker_default_label\' | skyLibResources }}\n </label>\n <select\n class="sky-form-control"\n formControlName="calculatorId"\n [attr.id]="dateRangePickerId + \'-select-calculator\'"\n (blur)="onFieldBlur()"\n >\n <option *ngFor="let calculator of calculators"\n [value]="calculator.calculatorId"\n >\n {{ calculator.shortDescription }}\n </option>\n </select>\n </sky-input-box>\n </div>\n\n <div\n class="sky-date-range-picker-form-group"\n [hidden]="!showStartDatePicker"\n >\n <sky-input-box>\n <label\n class="sky-control-label"\n [attr.for]="dateRangePickerId + \'-start-date\'"\n [ngClass]="{ \'sky-control-label-required\' : startDateRequired }"\n >\n {{ startDateLabelResourceKey | skyLibResources }}\n </label>\n\n <sky-datepicker>\n <input\n formControlName="startDate"\n [attr.aria-label]="startDateLabelResourceKey | skyLibResources"\n [attr.id]="dateRangePickerId + \'-start-date\'"\n [attr.placeholder]="dateFormat"\n [required]="startDateRequired"\n [dateFormat]="dateFormat"\n (blur)="onFieldBlur()"\n skyDatepickerInput\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n\n <div\n class="sky-date-range-picker-form-group"\n [hidden]="!showEndDatePicker"\n >\n <sky-input-box>\n <label\n class="sky-control-label"\n [attr.for]="dateRangePickerId + \'-end-date\'"\n [ngClass]="{ \'sky-control-label-required\' : endDateRequired }"\n >\n {{ endDateLabelResourceKey | skyLibResources }}\n </label>\n\n <sky-datepicker>\n <input\n formControlName="endDate"\n skyDatepickerInput\n [attr.aria-label]="endDateLabelResourceKey | skyLibResources"\n [attr.id]="dateRangePickerId + \'-end-date\'"\n [attr.placeholder]="dateFormat"\n [dateFormat]="dateFormat"\n [required]="endDateRequired"\n (blur)="onFieldBlur()"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n</div>\n',providers:[ee,te],changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[".sky-date-range-picker{display:flex;margin-left:-5px;margin-right:-5px}.sky-date-range-picker-form-group{padding-left:5px;padding-right:5px}.sky-date-range-picker-form-group:last-child{margin-bottom:0}:host .sky-date-range-picker{flex-direction:column}:host .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-responsive-container-lg) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-xs) .sky-date-range-picker{flex-direction:column}:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group{flex-basis:100%}@media (min-width:768px){:host .sky-date-range-picker{flex-direction:initial}:host .sky-date-range-picker-form-group{flex-basis:calc(100% / 3);margin-bottom:0}}:host-context(.sky-responsive-container-lg) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker{flex-direction:initial}:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group{flex-basis:calc(100% / 3);margin-bottom:0}:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{padding:0;margin:0 0 20px}.sky-theme-modern .sky-date-range-picker-form-group{padding:0;margin:0 0 20px}@media (min-width:768px){:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{margin:0 20px 0 0}.sky-theme-modern .sky-date-range-picker-form-group{margin:0 20px 0 0}}:host-context(.sky-theme-modern.sky-responsive-container-xs) .sky-date-range-picker-form-group{margin:0 0 20px}:host-context(.sky-theme-modern.sky-responsive-container-lg) .sky-date-range-picker-form-group,:host-context(.sky-theme-modern.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-theme-modern.sky-responsive-container-sm) .sky-date-range-picker-form-group{margin:0 20px 0 0}"]}),y(5,t.Optional())],i)}(),re=function(){function e(){}return e=h([t.NgModule({declarations:[ae],imports:[o.CommonModule,s.FormsModule,s.ReactiveFormsModule,n.SkyI18nModule,G,_,l.SkyInputBoxModule],exports:[ae],providers:[c.SkyAppWindowRef,X]})],e)}(),ie=i,oe={provide:s.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return ce})),multi:!0},se={provide:s.NG_VALIDATORS,useExisting:t.forwardRef((function(){return ce})),multi:!0},ce=function(){function e(e,t,n,a){this.renderer=e,this.elRef=t,this.resourcesService=n,this.changeDetector=a,this._timeFormat="hh",this._onChange=function(e){},this._onTouched=function(){},this._validatorChange=function(){}}return Object.defineProperty(e.prototype,"skyTimepickerInput",{get:function(){return this._skyTimepickerInput},set:function(e){this._skyTimepickerInput=e,this.updateTimepickerInput()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"timeFormat",{get:function(){return this._timeFormat||"hh"},set:function(e){this._timeFormat=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled||!1},set:function(e){this._disabled=e,this.updateTimepickerInput(),this.renderer.setProperty(this.elRef.nativeElement,"disabled",e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"modelValue",{get:function(){return this._modelValue},set:function(e){e!==this._modelValue&&(this._modelValue=e,this.updateTimepickerInput(),this.setInputValue(e),this._validatorChange(),this._onChange(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this.renderer.addClass(this.elRef.nativeElement,"sky-form-control"),this.pickerChangedSubscription=this.skyTimepickerInput.selectedTimeChanged.subscribe((function(t){e.writeValue(t),e._onTouched()})),this.elRef.nativeElement.getAttribute("aria-label")||this.resourcesService.getString("skyux_timepicker_input_default_label").subscribe((function(t){e.renderer.setAttribute(e.elRef.nativeElement,"aria-label",t)}))},e.prototype.ngAfterContentInit=function(){this.control&&this.control.parent&&(this.control.setValue(this.modelValue,{emitEvent:!1}),this.changeDetector.markForCheck())},e.prototype.ngOnDestroy=function(){this.pickerChangedSubscription.unsubscribe()},e.prototype.ngOnChanges=function(){this.skyTimepickerInput.setFormat(this.timeFormat),this.skyTimepickerInput.returnFormat=this.returnFormat},e.prototype.onChange=function(e){this.writeValue(e.target.value)},e.prototype.onBlur=function(){this._onTouched()},e.prototype.registerOnChange=function(e){this._onChange=e},e.prototype.registerOnTouched=function(e){this._onTouched=e},e.prototype.registerOnValidatorChange=function(e){this._validatorChange=e},e.prototype.setDisabledState=function(e){this.disabled=e},e.prototype.writeValue=function(e){this.modelValue=this.formatter(e)},e.prototype.validate=function(e){this.control||(this.control=e);var t=e.value;if(t)return"Invalid date"===t.local?{skyTime:{invalid:e.value}}:void 0},e.prototype.setInputValue=function(e){var t="";if(e){var n=ie(e).format(e.customFormat);"Invalid date"!==n&&(t=n)}this.renderer.setProperty(this.elRef.nativeElement,"value",t)},e.prototype.formatter=function(e){if(e&&"string"!=typeof e&&"local"in e)return e;if("string"==typeof e){if(0===e.length)return"";var t=void 0;return"hh"===this.timeFormat&&(t="h:mm A"),"HH"===this.timeFormat&&(t="H:mm"),void 0===this.returnFormat&&(this.returnFormat=t),{hour:ie(e,t).hour(),minute:ie(e,t).minute(),meridie:ie(e,t).format("A"),timezone:parseInt(ie(e,t).format("Z"),10),iso8601:ie(e,t).toDate(),local:ie(e,t).format(t),customFormat:this.returnFormat}}},e.prototype.updateTimepickerInput=function(){this.skyTimepickerInput&&(this.skyTimepickerInput.disabled=this.disabled,this.skyTimepickerInput.selectedTime!==this.modelValue&&(this.skyTimepickerInput.selectedTime=this.modelValue))},e.ctorParameters=function(){return[{type:t.Renderer2},{type:t.ElementRef},{type:n.SkyLibResourcesService},{type:t.ChangeDetectorRef}]},h([t.Input()],e.prototype,"skyTimepickerInput",null),h([t.Input()],e.prototype,"timeFormat",null),h([t.Input()],e.prototype,"returnFormat",void 0),h([t.Input()],e.prototype,"disabled",null),h([t.HostListener("change",["$event"])],e.prototype,"onChange",null),h([t.HostListener("blur")],e.prototype,"onBlur",null),e=h([t.Directive({selector:"[skyTimepickerInput]",providers:[oe,se]})],e)}(),le=i,ue=0,de=function(){function e(e,n,i,o,s,c){var l=this;this.affixService=e,this.changeDetector=n,this.coreAdapter=i,this.overlayService=o,this.inputBoxHostService=s,this.selectedTimeChanged=new t.EventEmitter,this.is8601=!1,this.timeFormat="hh",this.ngUnsubscribe=new a.Subject;var u=ue++;this.timepickerId="sky-timepicker-"+u,this.triggerButtonId="sky-timepicker-button-"+u,null==c||c.settingsChange.pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(){l.changeDetector.markForCheck()}))}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,this.changeDetector.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedHour",{get:function(){return this.is8601?this.is8601?le(this.activeTime).hour()+0:void 0:parseInt(le(this.activeTime).format("h"),0)||1},set:function(e){var t,n=0;"AM"===this.selectedMeridies&&12===e&&(n=-12),"PM"===this.selectedMeridies&&12!==e&&(n=12),this.is8601&&(n=0),t=le({hour:e}).add(n,"hours").hour(),this.activeTime=le({hour:t,minute:le(this.activeTime).get("minute")+0}).toDate(),this.selectedTimeChanged.emit(this.selectedTime)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedMeridies",{get:function(){return this.activeTime?le(this.activeTime).format("A"):""},set:function(e){this.is8601||e.trim()!==this.selectedMeridies&&(this.activeTime=le(this.activeTime).add(12,"hours").toDate(),this.selectedTimeChanged.emit(this.selectedTime))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedMinute",{get:function(){return le(this.activeTime).minute()+0},set:function(e){this.activeTime=le({hour:le(this.activeTime).get("hour")+0,minute:e}).toDate(),this.selectedTimeChanged.emit(this.selectedTime)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedTime",{get:function(){return{hour:le(this.activeTime).hour(),minute:le(this.activeTime).minute(),meridie:le(this.activeTime).format("A"),timezone:parseInt(le(this.activeTime).format("Z"),10),iso8601:this.activeTime,local:le(this.activeTime).format(this.localeFormat),customFormat:void 0!==this.returnFormat?this.returnFormat:this.localeFormat}},set:function(e){void 0!==e&&"Invalid date"!==e.local&&(this.activeTime=e.iso8601,this.changeDetector.markForCheck())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"timepickerRef",{get:function(){return this._timepickerRef},set:function(e){var t=this;e&&(this._timepickerRef=e,setTimeout((function(){t.destroyAffixer(),t.createAffixer(),setTimeout((function(){t.coreAdapter.getFocusableChildrenAndApplyFocus(t.timepickerRef,".sky-timepicker-content",!1),t.isVisible=!0,t.changeDetector.markForCheck()}))})))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.setFormat(this.timeFormat),this.addKeydownListner(),this.inputBoxHostService&&this.inputBoxHostService.populate({inputTemplate:this.inputTemplateRef,buttonsTemplate:this.triggerButtonTemplateRef})},e.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete(),this.removePickerEventListeners(),this.destroyAffixer(),this.destroyOverlay()},e.prototype.setFormat=function(e){var t,n=12,a=12,r=5,i="h:mm A";"hh"===e&&(n=12,a=12,r=5,i="h:mm A",this.is8601=!1),"HH"===e&&(n=24,a=4,r=15,i="HH:mm",this.is8601=!0),t={hours:Array.apply(void 0,Array(n)).map((function(t,n){return"hh"===e?++n:"HH"===e?n:0})),minutes:Array.apply(void 0,Array(a)).map((function(e,t){return t*r})),localeFormat:i,minuteMultiplier:r},this.hours=t.hours,this.minutes=t.minutes,this.localeFormat=t.localeFormat,this.minuteMultiplier=t.minuteMultiplier},e.prototype.onCloseButtonCick=function(){this.closePicker()},e.prototype.setTime=function(e){void 0!==e&&"click"===e.type&&(e.stopPropagation(),"hour"===e.target.name&&(this.selectedHour=parseInt(e.target.innerHTML,0)),"minute"===e.target.name&&(this.selectedMinute=parseInt(e.target.innerHTML,0)),"meridie"===e.target.name&&(this.selectedMeridies=e.target.innerHTML))},e.prototype.onTriggerButtonClick=function(){this.openPicker()},e.prototype.closePicker=function(){this.destroyAffixer(),this.destroyOverlay(),this.removePickerEventListeners(),this.triggerButtonRef.nativeElement.focus(),this.isOpen=!1},e.prototype.openPicker=function(){this.isVisible=!1,this.changeDetector.markForCheck(),this.removePickerEventListeners(),this.timepickerUnsubscribe=new a.Subject,this.destroyOverlay(),this.createOverlay(),this.isOpen=!0,this.changeDetector.markForCheck()},e.prototype.createAffixer=function(){var e=this,t=this.affixService.createAffixer(this.timepickerRef);t.placementChange.pipe(r.takeUntil(this.timepickerUnsubscribe)).subscribe((function(t){e.isVisible=null!==t.placement,e.changeDetector.markForCheck()})),t.affixTo(this.triggerButtonRef.nativeElement,{autoFitContext:c.SkyAffixAutoFitContext.Viewport,enableAutoFit:!0,horizontalAlignment:"right",isSticky:!0,placement:"below"}),this.affixer=t},e.prototype.destroyAffixer=function(){this.affixer&&(this.affixer.destroy(),this.affixer=void 0)},e.prototype.createOverlay=function(){var e=this,t=this.overlayService.create({enableClose:!1,enablePointerEvents:!1});t.backdropClick.pipe(r.takeUntil(this.timepickerUnsubscribe)).subscribe((function(){e.isOpen&&e.closePicker()})),this.addKeydownListner(),t.attachTemplate(this.timepickerTemplateRef),this.overlay=t},e.prototype.destroyOverlay=function(){this.overlay&&(this.overlayService.close(this.overlay),this.overlay=void 0)},e.prototype.addKeydownListner=function(){var e=this;this.overlayKeydownListner=a.fromEvent(window.document,"keydown").pipe(r.takeUntil(this.ngUnsubscribe)).subscribe((function(t){var n;"escape"===(null===(n=t.key)||void 0===n?void 0:n.toLowerCase())&&e.isOpen&&e.closePicker()}))},e.prototype.removePickerEventListeners=function(){var e;this.timepickerUnsubscribe&&(this.timepickerUnsubscribe.next(),this.timepickerUnsubscribe.complete(),this.timepickerUnsubscribe=void 0),null===(e=this.overlayKeydownListner)||void 0===e||e.unsubscribe()},e.ctorParameters=function(){return[{type:c.SkyAffixService},{type:t.ChangeDetectorRef},{type:c.SkyCoreAdapterService},{type:c.SkyOverlayService},{type:l.SkyInputBoxHostService,decorators:[{type:t.Optional}]},{type:d.SkyThemeService,decorators:[{type:t.Optional}]}]},h([t.Output()],e.prototype,"selectedTimeChanged",void 0),h([t.ViewChild("timepickerRef",{read:t.ElementRef})],e.prototype,"timepickerRef",null),h([t.ViewChild("timepickerTemplateRef",{read:t.TemplateRef})],e.prototype,"timepickerTemplateRef",void 0),h([t.ViewChild("triggerButtonRef",{read:t.ElementRef})],e.prototype,"triggerButtonRef",void 0),h([t.ViewChild("inputTemplateRef",{read:t.TemplateRef,static:!0})],e.prototype,"inputTemplateRef",void 0),h([t.ViewChild("triggerButtonTemplateRef",{read:t.TemplateRef,static:!0})],e.prototype,"triggerButtonTemplateRef",void 0),e=h([t.Component({selector:"sky-timepicker",template:'<div\n class="sky-timepicker"\n>\n <ng-container *ngIf="!inputBoxHostService">\n <div\n class="sky-input-group"\n >\n <ng-container *ngTemplateOutlet="inputTemplateRef"></ng-container>\n <ng-container *ngTemplateOutlet="triggerButtonTemplateRef"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div\n class="sky-input-group-btn"\n >\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]="\'skyux_timepicker_button_label\' | skyLibResources"\n [attr.id]="triggerButtonId"\n [attr.title]="\'skyux_timepicker_button_label\' | skyLibResources"\n [disabled]="disabled"\n (click)="onTriggerButtonClick()"\n #triggerButtonRef\n >\n <sky-icon *skyThemeIf="\'default\'"\n icon="clock-o"\n size="lg"\n ></sky-icon>\n <sky-icon *skyThemeIf="\'modern\'"\n icon="clock"\n size="lg"\n iconType="skyux"\n ></sky-icon>\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\n class="sky-timepicker-content"\n >\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\n class="sky-timepicker-column"\n >\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"\n class="sky-timepicker-column"\n >\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\n class="sky-timepicker-footer"\n >\n <section\n class="sky-timepicker-column"\n >\n <button\n class="sky-btn sky-btn-primary"\n type="button"\n (click)="onCloseButtonCick()"\n >\n {{ \'skyux_timepicker_close\' | skyLibResources }}\n </button>\n </section>\n </div>\n </div>\n</ng-template>\n',encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,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;-moz-column-gap:1px;column-gap:1px;-moz-columns:2;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:dotted thin;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{-moz-columns:4;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-theme-modern .sky-timepicker-clock-icon-default,.sky-timepicker-clock-icon-modern{display:none}.sky-theme-modern .sky-timepicker-clock-icon-modern{display:inline}.sky-theme-modern .sky-timepicker-container{background-color:#fff;border:1px solid #cdcfd2;border-radius:6px;font-size:16px}.sky-theme-modern .sky-timepicker-container:focus-within{border:2px solid #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:0}.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:0;border-radius:6px;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-container{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol,.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 button{background-color:transparent;color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-timepicker-column ol .sky-btn-active{background-color:#009cd1}"]}),y(4,t.Optional()),y(5,t.Optional())],e)}(),pe=function(){function e(){}return e=h([t.NgModule({declarations:[ce,de],imports:[o.CommonModule,n.SkyI18nModule,u.SkyIconModule,_,c.SkyAffixModule,c.SkyOverlayModule,d.SkyThemeModule],providers:[c.SkyCoreAdapterService,d.SkyThemeService],exports:[ce,de]})],e)}();e.SkyDatePipe=D,e.SkyDatePipeModule=I,e.SkyDateRangePickerModule=re,e.SkyDateRangeService=X,e.SkyDatepickerConfigService=O,e.SkyDatepickerModule=G,e.SkyFuzzyDatePipe=R,e.SkyFuzzyDateService=C,e.SkyTimepickerModule=pe,e.ɵa=_,e.ɵb=v,e.ɵc=ae,e.ɵd=V,e.ɵe=S,e.ɵf=M,e.ɵg=q,e.ɵh=W,e.ɵi=$,e.ɵj=Y,e.ɵk=z,e.ɵl=B,e.ɵm=K,e.ɵn=N,e.ɵo=H,e.ɵp=ce,e.ɵq=de,Object.defineProperty(e,"__esModule",{value:!0})}));
16
16
  //# sourceMappingURL=skyux-datetime.umd.min.js.map