UNPKG

ngx-bootstrap-ci

Version:
1 lines • 78.5 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("ngx-bootstrap/chronos"),require("ngx-bootstrap/mini-ngrx"),require("ngx-bootstrap/positioning"),require("ngx-bootstrap/component-loader"),require("@angular/forms"),require("@angular/common"),require("ngx-bootstrap/utils")):"function"==typeof define&&define.amd?define("ngx-bootstrap/datepicker",["exports","@angular/core","rxjs","rxjs/operators","ngx-bootstrap/chronos","ngx-bootstrap/mini-ngrx","ngx-bootstrap/positioning","ngx-bootstrap/component-loader","@angular/forms","@angular/common","ngx-bootstrap/utils"],t):t((e["ngx-bootstrap"]=e["ngx-bootstrap"]||{},e["ngx-bootstrap"].datepicker={}),e.ng.core,e.rxjs,e.rxjs.operators,e.chronos,e.miniNgrx,e.positioning,e.componentLoader,e.ng.forms,e.ng.common,e.utils)}(this,function(e,o,i,n,m,a,t,s,r,c,d){"use strict";var l=function(){function e(){this.adaptivePosition=!1,this.containerClass="theme-green",this.displayMonths=1,this.showWeekNumbers=!0,this.dateInputFormat="L",this.rangeSeparator=" - ",this.rangeInputFormat="L",this.monthTitle="MMMM",this.yearTitle="YYYY",this.dayLabel="D",this.monthLabel="MMMM",this.yearLabel="YYYY",this.weekNumbers="w"}return e.decorators=[{type:o.Injectable}],e}(),h=function(e,t){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function u(e,t){function n(){this.constructor=e}h(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function p(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function f(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,a,s=n.call(e),r=[];try{for(;(void 0===t||0<t--)&&!(i=s.next()).done;)r.push(i.value)}catch(o){a={error:o}}finally{try{i&&!i.done&&(n=s["return"])&&n.call(s)}finally{if(a)throw a.error}}return r}function y(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(f(arguments[t]));return e}var b=function(){function e(){this._customRangesFish=[]}return Object.defineProperty(e.prototype,"minDate",{set:function(e){this._effects.setMinDate(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{set:function(e){this._effects.setMaxDate(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"daysDisabled",{set:function(e){this._effects.setDaysDisabled(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"datesDisabled",{set:function(e){this._effects.setDatesDisabled(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisabled",{set:function(e){this._effects.setDisabled(e)},enumerable:!0,configurable:!0}),e.prototype.setViewMode=function(e){},e.prototype.navigateTo=function(e){},e.prototype.dayHoverHandler=function(e){},e.prototype.weekHoverHandler=function(e){},e.prototype.monthHoverHandler=function(e){},e.prototype.yearHoverHandler=function(e){},e.prototype.daySelectHandler=function(e){},e.prototype.monthSelectHandler=function(e){},e.prototype.yearSelectHandler=function(e){},e.prototype._stopPropagation=function(e){e.stopPropagation()},e}(),g=function(){function t(){}return t.prototype.calculate=function(){return{type:t.CALCULATE}},t.prototype.format=function(){return{type:t.FORMAT}},t.prototype.flag=function(){return{type:t.FLAG}},t.prototype.select=function(e){return{type:t.SELECT,payload:e}},t.prototype.changeViewMode=function(e){return{type:t.CHANGE_VIEWMODE,payload:e}},t.prototype.navigateTo=function(e){return{type:t.NAVIGATE_TO,payload:e}},t.prototype.navigateStep=function(e){return{type:t.NAVIGATE_OFFSET,payload:e}},t.prototype.setOptions=function(e){return{type:t.SET_OPTIONS,payload:e}},t.prototype.selectRange=function(e){return{type:t.SELECT_RANGE,payload:e}},t.prototype.hoverDay=function(e){return{type:t.HOVER,payload:e.isHovered?e.cell.date:null}},t.prototype.minDate=function(e){return{type:t.SET_MIN_DATE,payload:e}},t.prototype.maxDate=function(e){return{type:t.SET_MAX_DATE,payload:e}},t.prototype.daysDisabled=function(e){return{type:t.SET_DAYSDISABLED,payload:e}},t.prototype.datesDisabled=function(e){return{type:t.SET_DATESDISABLED,payload:e}},t.prototype.isDisabled=function(e){return{type:t.SET_IS_DISABLED,payload:e}},t.prototype.setLocale=function(e){return{type:t.SET_LOCALE,payload:e}},t.CALCULATE="[datepicker] calculate dates matrix",t.FORMAT="[datepicker] format datepicker values",t.FLAG="[datepicker] set flags",t.SELECT="[datepicker] select date",t.NAVIGATE_OFFSET="[datepicker] shift view date",t.NAVIGATE_TO="[datepicker] change view date",t.SET_OPTIONS="[datepicker] update render options",t.HOVER="[datepicker] hover date",t.CHANGE_VIEWMODE="[datepicker] switch view mode",t.SET_MIN_DATE="[datepicker] set min date",t.SET_MAX_DATE="[datepicker] set max date",t.SET_DAYSDISABLED="[datepicker] set days disabled",t.SET_DATESDISABLED="[datepicker] set dates disabled",t.SET_IS_DISABLED="[datepicker] set is disabled",t.SET_LOCALE="[datepicker] set datepicker locale",t.SELECT_RANGE="[daterangepicker] select dates range",t.decorators=[{type:o.Injectable}],t}(),v=function(){function e(){this._defaultLocale="en",this._locale=new i.BehaviorSubject(this._defaultLocale),this._localeChange=this._locale.asObservable()}return Object.defineProperty(e.prototype,"locale",{get:function(){return this._locale},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"localeChange",{get:function(){return this._localeChange},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentLocale",{get:function(){return this._locale.getValue()},enumerable:!0,configurable:!0}),e.prototype.use=function(e){e!==this.currentLocale&&this._locale.next(e)},e.decorators=[{type:o.Injectable}],e}(),D=function(){function e(e,t){this._actions=e,this._localeService=t,this._subs=[]}return e.prototype.init=function(e){return this._store=e,this},e.prototype.setValue=function(e){this._store.dispatch(this._actions.select(e))},e.prototype.setRangeValue=function(e){this._store.dispatch(this._actions.selectRange(e))},e.prototype.setMinDate=function(e){return this._store.dispatch(this._actions.minDate(e)),this},e.prototype.setMaxDate=function(e){return this._store.dispatch(this._actions.maxDate(e)),this},e.prototype.setDaysDisabled=function(e){return this._store.dispatch(this._actions.daysDisabled(e)),this},e.prototype.setDatesDisabled=function(e){return this._store.dispatch(this._actions.datesDisabled(e)),this},e.prototype.setDisabled=function(e){return this._store.dispatch(this._actions.isDisabled(e)),this},e.prototype.setOptions=function(e){var t=Object.assign({locale:this._localeService.currentLocale},e);return this._store.dispatch(this._actions.setOptions(t)),this},e.prototype.setBindings=function(e){return e.daysCalendar=this._store.select(function(e){return e.flaggedMonths}).pipe(n.filter(function(e){return!!e})),e.monthsCalendar=this._store.select(function(e){return e.flaggedMonthsCalendar}).pipe(n.filter(function(e){return!!e})),e.yearsCalendar=this._store.select(function(e){return e.yearsCalendarFlagged}).pipe(n.filter(function(e){return!!e})),e.viewMode=this._store.select(function(e){return e.view.mode}),e.options=this._store.select(function(e){return e.showWeekNumbers}).pipe(n.map(function(e){return{showWeekNumbers:e}})),this},e.prototype.setEventHandlers=function(e){var n=this;return e.setViewMode=function(e){n._store.dispatch(n._actions.changeViewMode(e))},e.navigateTo=function(e){n._store.dispatch(n._actions.navigateStep(e.step))},e.dayHoverHandler=function(e){var t=e.cell;t.isOtherMonth||t.isDisabled||(n._store.dispatch(n._actions.hoverDay(e)),t.isHovered=e.isHovered)},e.monthHoverHandler=function(e){e.cell.isHovered=e.isHovered},e.yearHoverHandler=function(e){e.cell.isHovered=e.isHovered},e.monthSelectHandler=function(e){e.isDisabled||n._store.dispatch(n._actions.navigateTo({unit:{month:m.getMonth(e.date),year:m.getFullYear(e.date)},viewMode:"day"}))},e.yearSelectHandler=function(e){e.isDisabled||n._store.dispatch(n._actions.navigateTo({unit:{year:m.getFullYear(e.date)},viewMode:"month"}))},this},e.prototype.registerDatepickerSideEffects=function(){var t=this;return this._subs.push(this._store.select(function(e){return e.view}).subscribe(function(e){t._store.dispatch(t._actions.calculate())})),this._subs.push(this._store.select(function(e){return e.monthsModel}).pipe(n.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.format())})),this._subs.push(this._store.select(function(e){return e.formattedMonths}).pipe(n.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.selectedDate}).pipe(n.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.selectedRange}).pipe(n.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.monthsCalendar}).subscribe(function(){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.yearsCalendarModel}).pipe(n.filter(function(e){return!!e})).subscribe(function(){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(e){return e.hoveredDate}).pipe(n.filter(function(e){return!!e})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._localeService.localeChange.subscribe(function(e){return t._store.dispatch(t._actions.setLocale(e))})),this},e.prototype.destroy=function(){try{for(var e=p(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(a){n={error:a}}finally{try{t&&!t.done&&(i=e["return"])&&i.call(e)}finally{if(n)throw n.error}}var n,i},e.decorators=[{type:o.Injectable}],e.ctorParameters=function(){return[{type:g},{type:v}]},e}(),k={date:new Date,mode:"day"},_=Object.assign(new l,{locale:"en",view:k,selectedRange:[],monthViewOptions:{width:7,height:6}});function w(e,t,n){var i=t&&m.isBefore(m.endOf(e,"month"),t,"day"),a=n&&m.isAfter(m.startOf(e,"month"),n,"day");return i||a}function C(e,t,n){var i=t&&m.isBefore(m.endOf(e,"year"),t,"day"),a=n&&m.isAfter(m.startOf(e,"year"),n,"day");return i||a}function M(e,t){for(var n=e.initialDate,i=new Array(e.height),a=0;a<e.height;a++){i[a]=new Array(e.width);for(var s=0;s<e.width;s++)i[a][s]=t(n),n=m.shiftDate(n,e.shift)}return i}function x(e,t){var n=m.getFirstDayOfMonth(e),i=function a(e,t){if(m.isFirstDayOfWeek(e,t.firstDayOfWeek))return e;var n=function i(e,t){if(0===t)return e;var n=e-t%7;return n<0?n+7:n}(m.getDay(e),t.firstDayOfWeek);return m.shiftDate(e,{day:-n})}(n,t);return{daysMatrix:M({width:t.width,height:t.height,initialDate:i,shift:{day:1}},function(e){return e}),month:n}}function O(e,i,a){return{month:e.month,monthTitle:m.formatDate(e.month,i.monthTitle,i.locale),yearTitle:m.formatDate(e.month,i.yearTitle,i.locale),weekNumbers:function s(e,t,n){return e.map(function(e){return e[0]?m.formatDate(e[0],t,n):""})}(e.daysMatrix,i.weekNumbers,i.locale),weekdays:function r(e){var t=m.getLocale(e),n=t.weekdaysShort(),i=t.firstDayOfWeek();return y(n.slice(i),n.slice(0,i))}(i.locale),weeks:e.daysMatrix.map(function(e,n){return{days:e.map(function(e,t){return{date:e,label:m.formatDate(e,i.dayLabel,i.locale),monthIndex:a,weekIndex:n,dayIndex:t}})}})}}function I(y,b){return y.weeks.forEach(function(f){f.days.forEach(function(e,t){var n=!m.isSameMonth(e.date,y.month),i=!n&&m.isSameDay(e.date,b.hoveredDate),a=!n&&b.selectedRange&&m.isSameDay(e.date,b.selectedRange[0]),s=!n&&b.selectedRange&&m.isSameDay(e.date,b.selectedRange[1]),r=!n&&m.isSameDay(e.date,b.selectedDate)||a||s,o=!n&&b.selectedRange&&function u(e,t,n){if(!e||!t[0])return!1;if(t[1])return e>t[0]&&e<=t[1];if(n)return e>t[0]&&e<=n;return!1}(e.date,b.selectedRange,b.hoveredDate),c=b.isDisabled||m.isBefore(e.date,b.minDate,"day")||m.isAfter(e.date,b.maxDate,"day")||m.isDisabledDay(e.date,b.daysDisabled)||function p(t,e){return!(e===undefined||!e||!e.length)&&e.some(function(e){return m.isSame(t,e,"date")})}(e.date,b.datesDisabled),d=new Date,l=!n&&m.isSameDay(e.date,d),h=Object.assign({},e,{isOtherMonth:n,isHovered:i,isSelected:r,isSelectionStart:a,isSelectionEnd:s,isInRange:o,isDisabled:c,isToday:l});e.isOtherMonth===h.isOtherMonth&&e.isHovered===h.isHovered&&e.isSelected===h.isSelected&&e.isSelectionStart===h.isSelectionStart&&e.isSelectionEnd===h.isSelectionEnd&&e.isDisabled===h.isDisabled&&e.isInRange===h.isInRange||(f.days[t]=h)})}),y.hideLeftArrow=b.isDisabled||0<b.monthIndex&&b.monthIndex!==b.displayMonths,y.hideRightArrow=b.isDisabled||b.monthIndex<b.displayMonths&&b.monthIndex+1!==b.displayMonths,y.disableLeftArrow=w(m.shiftDate(y.month,{month:-1}),b.minDate,b.maxDate),y.disableRightArrow=w(m.shiftDate(y.month,{month:1}),b.minDate,b.maxDate),y}function S(e,t){return!t||t<=e}var E=4,H=3,A={month:1};function V(e,t){var n=m.startOf(e,"year");return{months:M({width:H,height:E,initialDate:n,shift:A},function(e){return{date:e,label:m.formatDate(e,t.monthLabel,t.locale)}}),monthTitle:"",yearTitle:m.formatDate(e,t.yearTitle,t.locale)}}var T=4,P=4,R=T*P,F=-1*(Math.floor(R/2)-1),L={year:1};function j(e,t){var n=m.shiftDate(e,{year:F}),i=M({width:P,height:T,initialDate:n,shift:L},function(e){return{date:e,label:m.formatDate(e,t.yearLabel,t.locale)}});return{years:i,monthTitle:"",yearTitle:function a(e,t){var n=m.formatDate(e[0][0].date,t.yearTitle,t.locale),i=m.formatDate(e[T-1][P-1].date,t.yearTitle,t.locale);return n+" - "+i}(i,t)}}function N(e,t){switch(void 0===e&&(e=_),t.type){case g.CALCULATE:return function c(e){var t=e.displayMonths,n=e.view.date;if("day"===e.view.mode){e.monthViewOptions.firstDayOfWeek=m.getLocale(e.locale).firstDayOfWeek();for(var i=new Array(t),a=0;a<t;a++)i[a]=x(n,e.monthViewOptions),n=m.shiftDate(n,{month:1});return Object.assign({},e,{monthsModel:i})}if("month"===e.view.mode){for(var s=new Array(t),r=0;r<t;r++)s[r]=V(n,Y(e)),n=m.shiftDate(n,{year:1});return Object.assign({},e,{monthsCalendar:s})}if("year"!==e.view.mode)return e;for(var o=new Array(t),r=0;r<t;r++)o[r]=j(n,Y(e)),n=m.shiftDate(n,{year:R});return Object.assign({},e,{yearsCalendarModel:o})}(e);case g.FORMAT:return function d(n,e){if("day"===n.view.mode){var t=n.monthsModel.map(function(e,t){return O(e,Y(n),t)});return Object.assign({},n,{formattedMonths:t})}var i=n.displayMonths,a=n.view.date;if("month"===n.view.mode){for(var s=new Array(i),r=0;r<i;r++)s[r]=V(a,Y(n)),a=m.shiftDate(a,{year:1});return Object.assign({},n,{monthsCalendar:s})}if("year"!==n.view.mode)return n;for(var o=new Array(i),r=0;r<i;r++)o[r]=j(a,Y(n)),a=m.shiftDate(a,{year:16});return Object.assign({},n,{yearsCalendarModel:o})}(e);case g.FLAG:return function r(i,e){if("day"===i.view.mode){var t=i.formattedMonths.map(function(e,t){return I(e,{isDisabled:i.isDisabled,minDate:i.minDate,maxDate:i.maxDate,daysDisabled:i.daysDisabled,datesDisabled:i.datesDisabled,hoveredDate:i.hoveredDate,selectedDate:i.selectedDate,selectedRange:i.selectedRange,displayMonths:i.displayMonths,monthIndex:t})});return Object.assign({},i,{flaggedMonths:t})}if("month"===i.view.mode){var n=i.monthsCalendar.map(function(e,t){return function n(r,o){return r.months.forEach(function(e,s){e.forEach(function(e,t){var n=m.isSameMonth(e.date,o.hoveredMonth),i=o.isDisabled||w(e.date,o.minDate,o.maxDate),a=Object.assign(e,{isHovered:n,isDisabled:i});e.isHovered===a.isHovered&&e.isDisabled===a.isDisabled||(r.months[s][t]=a)})}),r.hideLeftArrow=0<o.monthIndex&&o.monthIndex!==o.displayMonths,r.hideRightArrow=o.monthIndex<o.displayMonths&&o.monthIndex+1!==o.displayMonths,r.disableLeftArrow=C(m.shiftDate(r.months[0][0].date,{year:-1}),o.minDate,o.maxDate),r.disableRightArrow=C(m.shiftDate(r.months[0][0].date,{year:1}),o.minDate,o.maxDate),r}(e,{isDisabled:i.isDisabled,minDate:i.minDate,maxDate:i.maxDate,hoveredMonth:i.hoveredMonth,displayMonths:i.displayMonths,monthIndex:t})});return Object.assign({},i,{flaggedMonthsCalendar:n})}if("year"!==i.view.mode)return i;var a=i.yearsCalendarModel.map(function(e,t){return function n(r,o){r.years.forEach(function(e,s){e.forEach(function(e,t){var n=m.isSameYear(e.date,o.hoveredYear),i=o.isDisabled||C(e.date,o.minDate,o.maxDate),a=Object.assign(e,{isHovered:n,isDisabled:i});e.isHovered===a.isHovered&&e.isDisabled===a.isDisabled||(r.years[s][t]=a)})}),r.hideLeftArrow=0<o.yearIndex&&o.yearIndex!==o.displayMonths,r.hideRightArrow=o.yearIndex<o.displayMonths&&o.yearIndex+1!==o.displayMonths,r.disableLeftArrow=C(m.shiftDate(r.years[0][0].date,{year:-1}),o.minDate,o.maxDate);var e=r.years.length-1,t=r.years[e].length-1;return r.disableRightArrow=C(m.shiftDate(r.years[e][t].date,{year:1}),o.minDate,o.maxDate),r}(e,{isDisabled:i.isDisabled,minDate:i.minDate,maxDate:i.maxDate,hoveredYear:i.hoveredYear,displayMonths:i.displayMonths,yearIndex:t})});return Object.assign({},i,{yearsCalendarFlagged:a})}(e);case g.NAVIGATE_OFFSET:var n=m.shiftDate(m.startOf(e.view.date,"month"),t.payload),i={view:{mode:e.view.mode,date:n}};return Object.assign({},e,i);case g.NAVIGATE_TO:var a=t.payload,s=(n=m.setFullDate(e.view.date,a.unit),i=void 0,void 0);return i=S(a.viewMode,e.minMode)?{view:{date:n,mode:s=a.viewMode}}:{selectedDate:n,view:{date:n,mode:s=e.view.mode}},Object.assign({},e,i);case g.CHANGE_VIEWMODE:if(!S(t.payload,e.minMode))return e;i={view:{date:n=e.view.date,mode:s=t.payload}};return Object.assign({},e,i);case g.HOVER:return Object.assign({},e,{hoveredDate:t.payload});case g.SELECT:i={selectedDate:t.payload,view:e.view},s=e.view.mode,n=z(t.payload||e.view.date,e.minDate,e.maxDate);return i.view={mode:s,date:n},Object.assign({},e,i);case g.SET_OPTIONS:s=(i=t.payload).minMode?i.minMode:e.view.mode,n=z(m.isDateValid(i.value)&&i.value||m.isArray(i.value)&&m.isDateValid(i.value[0])&&i.value[0]||e.view.date,i.minDate,i.maxDate);return i.view={mode:s,date:n},i.value&&(m.isArray(i.value)&&(i.selectedRange=i.value),i.value instanceof Date&&(i.selectedDate=i.value)),Object.assign({},e,i);case g.SELECT_RANGE:i={selectedRange:t.payload,view:e.view},s=e.view.mode,n=z(t.payload&&t.payload[0]||e.view.date,e.minDate,e.maxDate);return i.view={mode:s,date:n},Object.assign({},e,i);case g.SET_MIN_DATE:return Object.assign({},e,{minDate:t.payload});case g.SET_MAX_DATE:return Object.assign({},e,{maxDate:t.payload});case g.SET_IS_DISABLED:return Object.assign({},e,{isDisabled:t.payload});default:return e}}function Y(e){return{locale:e.locale,monthTitle:e.monthTitle,yearTitle:e.yearTitle,dayLabel:e.dayLabel,monthLabel:e.monthLabel,yearLabel:e.yearLabel,weekNumbers:e.weekNumbers}}function z(e,t,n){var i=Array.isArray(e)?e[0]:e;return t&&m.isAfter(t,i,"day")?t:n&&m.isBefore(n,i,"day")?n:i}var B=function(n){function e(){var e=new i.BehaviorSubject({type:"[datepicker] dispatcher init"}),t=new a.MiniState(_,e,N);return n.call(this,e,N,t)||this}return u(e,n),e.decorators=[{type:o.Injectable}],e.ctorParameters=function(){return[]},e}(a.MiniStore),$=function(r){function e(e,t,n,i,a){var s=r.call(this)||this;return s._config=e,s._store=t,s._actions=n,s._positionService=a,s.valueChange=new o.EventEmitter,s._subs=[],s._effects=i,s}return u(e,r),Object.defineProperty(e.prototype,"value",{set:function(e){this._effects.setValue(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this._positionService.setOptions({modifiers:{flip:{enabled:this._config.adaptivePosition}}}),this.isOtherMonthsActive=this._config.selectFromOtherMonth,this.containerClass=this._config.containerClass,this._effects.init(this._store).setOptions(this._config).setBindings(this).setEventHandlers(this).registerDatepickerSideEffects(),this._subs.push(this._store.select(function(e){return e.selectedDate}).subscribe(function(e){return t.valueChange.emit(e)}))},e.prototype.daySelectHandler=function(e){(this.isOtherMonthsActive?e.isDisabled:e.isOtherMonth||e.isDisabled)||this._store.dispatch(this._actions.select(e.date))},e.prototype.ngOnDestroy=function(){try{for(var e=p(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(a){n={error:a}}finally{try{t&&!t.done&&(i=e["return"])&&i.call(e)}finally{if(n)throw n.error}}var n,i;this._effects.destroy()},e.decorators=[{type:o.Component,args:[{selector:"bs-datepicker-container",providers:[B,D],template:'\x3c!-- days calendar view mode --\x3e\n<div class="bs-datepicker" [ngClass]="containerClass" *ngIf="viewMode | async">\n <div class="bs-datepicker-container">\n\n \x3c!--calendars--\x3e\n <div class="bs-calendar-container" [ngSwitch]="viewMode | async" role="application">\n \x3c!--days calendar--\x3e\n <div *ngSwitchCase="\'day\'" class="bs-media-container">\n <bs-days-calendar-view\n *ngFor="let calendar of (daysCalendar | async)"\n [class.bs-datepicker-multiple]="(daysCalendar | async)?.length > 1"\n [calendar]="calendar"\n [options]="options | async"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="setViewMode($event)"\n (onHover)="dayHoverHandler($event)"\n (onHoverWeek)="weekHoverHandler($event)"\n (onSelect)="daySelectHandler($event)"\n ></bs-days-calendar-view>\n </div>\n\n \x3c!--months calendar--\x3e\n <div *ngSwitchCase="\'month\'" class="bs-media-container">\n <bs-month-calendar-view\n *ngFor="let calendar of (monthsCalendar | async)"\n [class.bs-datepicker-multiple]="(daysCalendar | async)?.length > 1"\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="setViewMode($event)"\n (onHover)="monthHoverHandler($event)"\n (onSelect)="monthSelectHandler($event)"\n ></bs-month-calendar-view>\n </div>\n\n \x3c!--years calendar--\x3e\n <div *ngSwitchCase="\'year\'" class="bs-media-container">\n <bs-years-calendar-view\n *ngFor="let calendar of (yearsCalendar | async)"\n [class.bs-datepicker-multiple]="(daysCalendar | async )?.length > 1"\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="setViewMode($event)"\n (onHover)="yearHoverHandler($event)"\n (onSelect)="yearSelectHandler($event)"\n ></bs-years-calendar-view>\n </div>\n\n </div>\n\n \x3c!--applycancel buttons--\x3e\n <div class="bs-datepicker-buttons" *ngIf="false">\n <button class="btn btn-success">Apply</button>\n <button class="btn btn-default">Cancel</button>\n </div>\n\n </div>\n\n \x3c!--custom dates or date ranges picker--\x3e\n <div class="bs-datepicker-custom-range" *ngIf="false">\n <bs-custom-date-view [ranges]="_customRangesFish"></bs-custom-date-view>\n </div>\n</div>\n',host:{"(click)":"_stopPropagation($event)",style:"position: absolute; display: block;",role:"dialog","aria-label":"calendar"}}]}],e.ctorParameters=function(){return[{type:l},{type:B},{type:g},{type:D},{type:t.PositioningService}]},e}(b),W=function(){function e(e,t,n,i,a){this._config=e,this.placement="bottom",this.triggers="click",this.outsideClick=!0,this.container="body",this.outsideEsc=!0,this.bsValueChange=new o.EventEmitter,this._subs=[],Object.assign(this,this._config),this._datepicker=a.createLoader(t,i,n),this.onShown=this._datepicker.onShown,this.onHidden=this._datepicker.onHidden}return Object.defineProperty(e.prototype,"isOpen",{get:function(){return this._datepicker.isShown},set:function(e){e?this.show():this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bsValue",{set:function(e){this._bsValue!==e&&(this._bsValue=e,this.bsValueChange.emit(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this._datepicker.listen({outsideClick:this.outsideClick,outsideEsc:this.outsideEsc,triggers:this.triggers,show:function(){return e.show()}}),this.setConfig()},e.prototype.ngOnChanges=function(e){this._datepickerRef&&this._datepickerRef.instance&&(e.minDate&&(this._datepickerRef.instance.minDate=this.minDate),e.maxDate&&(this._datepickerRef.instance.maxDate=this.maxDate),e.daysDisabled&&(this._datepickerRef.instance.daysDisabled=this.daysDisabled),e.datesDisabled&&(this._datepickerRef.instance.datesDisabled=this.datesDisabled),e.isDisabled&&(this._datepickerRef.instance.isDisabled=this.isDisabled))},e.prototype.show=function(){var t=this;this._datepicker.isShown||(this.setConfig(),this._datepickerRef=this._datepicker.provide({provide:l,useValue:this._config}).attach($).to(this.container).position({attachment:this.placement}).show({placement:this.placement}),this._subs.push(this.bsValueChange.subscribe(function(e){t._datepickerRef.instance.value=e})),this._subs.push(this._datepickerRef.instance.valueChange.subscribe(function(e){t.bsValue=e,t.hide()})))},e.prototype.hide=function(){this.isOpen&&this._datepicker.hide();try{for(var e=p(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(a){n={error:a}}finally{try{t&&!t.done&&(i=e["return"])&&i.call(e)}finally{if(n)throw n.error}}var n,i},e.prototype.toggle=function(){if(this.isOpen)return this.hide();this.show()},e.prototype.setConfig=function(){this._config=Object.assign({},this._config,this.bsConfig,{value:this._bsValue,isDisabled:this.isDisabled,minDate:this.minDate||this.bsConfig&&this.bsConfig.minDate,maxDate:this.maxDate||this.bsConfig&&this.bsConfig.maxDate,daysDisabled:this.daysDisabled||this.bsConfig&&this.bsConfig.daysDisabled,datesDisabled:this.datesDisabled||this.bsConfig&&this.bsConfig.datesDisabled,minMode:this.minMode||this.bsConfig&&this.bsConfig.minMode})},e.prototype.ngOnDestroy=function(){this._datepicker.dispose()},e.decorators=[{type:o.Directive,args:[{selector:"[bsDatepicker]",exportAs:"bsDatepicker"}]}],e.ctorParameters=function(){return[{type:l},{type:o.ElementRef},{type:o.Renderer2},{type:o.ViewContainerRef},{type:s.ComponentLoaderFactory}]},e.propDecorators={placement:[{type:o.Input}],triggers:[{type:o.Input}],outsideClick:[{type:o.Input}],container:[{type:o.Input}],outsideEsc:[{type:o.Input}],isOpen:[{type:o.Input}],onShown:[{type:o.Output}],onHidden:[{type:o.Output}],bsValue:[{type:o.Input}],bsConfig:[{type:o.Input}],isDisabled:[{type:o.Input}],minDate:[{type:o.Input}],maxDate:[{type:o.Input}],minMode:[{type:o.Input}],daysDisabled:[{type:o.Input}],datesDisabled:[{type:o.Input}],bsValueChange:[{type:o.Output}]},e}(),G=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.decorators=[{type:o.Injectable}],t}(l),q=function(s){function e(e,t,n,i,a){return s.call(this,e,t,n,i,a)||this}return u(e,s),e.decorators=[{type:o.Component,args:[{selector:"bs-datepicker-inline-container",providers:[B,D],template:'\x3c!-- days calendar view mode --\x3e\n<div class="bs-datepicker" [ngClass]="containerClass" *ngIf="viewMode | async">\n <div class="bs-datepicker-container">\n\n \x3c!--calendars--\x3e\n <div class="bs-calendar-container" [ngSwitch]="viewMode | async" role="application">\n \x3c!--days calendar--\x3e\n <div *ngSwitchCase="\'day\'" class="bs-media-container">\n <bs-days-calendar-view\n *ngFor="let calendar of (daysCalendar | async)"\n [class.bs-datepicker-multiple]="(daysCalendar | async)?.length > 1"\n [calendar]="calendar"\n [options]="options | async"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="setViewMode($event)"\n (onHover)="dayHoverHandler($event)"\n (onHoverWeek)="weekHoverHandler($event)"\n (onSelect)="daySelectHandler($event)"\n ></bs-days-calendar-view>\n </div>\n\n \x3c!--months calendar--\x3e\n <div *ngSwitchCase="\'month\'" class="bs-media-container">\n <bs-month-calendar-view\n *ngFor="let calendar of (monthsCalendar | async)"\n [class.bs-datepicker-multiple]="(daysCalendar | async)?.length > 1"\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="setViewMode($event)"\n (onHover)="monthHoverHandler($event)"\n (onSelect)="monthSelectHandler($event)"\n ></bs-month-calendar-view>\n </div>\n\n \x3c!--years calendar--\x3e\n <div *ngSwitchCase="\'year\'" class="bs-media-container">\n <bs-years-calendar-view\n *ngFor="let calendar of (yearsCalendar | async)"\n [class.bs-datepicker-multiple]="(daysCalendar | async )?.length > 1"\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="setViewMode($event)"\n (onHover)="yearHoverHandler($event)"\n (onSelect)="yearSelectHandler($event)"\n ></bs-years-calendar-view>\n </div>\n\n </div>\n\n \x3c!--applycancel buttons--\x3e\n <div class="bs-datepicker-buttons" *ngIf="false">\n <button class="btn btn-success">Apply</button>\n <button class="btn btn-default">Cancel</button>\n </div>\n\n </div>\n\n \x3c!--custom dates or date ranges picker--\x3e\n <div class="bs-datepicker-custom-range" *ngIf="false">\n <bs-custom-date-view [ranges]="_customRangesFish"></bs-custom-date-view>\n </div>\n</div>\n',host:{"(click)":"_stopPropagation($event)",style:"display: inline-block;"}}]}],e.ctorParameters=function(){return[{type:l},{type:B},{type:g},{type:D},{type:t.PositioningService}]},e}($),U=function(){function e(e,t,n,i,a){this._config=e,this._elementRef=t,this.bsValueChange=new o.EventEmitter,this._subs=[],Object.assign(this,this._config),this._datepicker=a.createLoader(t,i,n)}return Object.defineProperty(e.prototype,"bsValue",{set:function(e){this._bsValue!==e&&(this._bsValue=e,this.bsValueChange.emit(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this.setConfig(),this._datepickerRef=this._datepicker.provide({provide:l,useValue:this._config}).attach(q).to(this._elementRef).show(),this._subs.push(this.bsValueChange.subscribe(function(e){t._datepickerRef.instance.value=e})),this._subs.push(this._datepickerRef.instance.valueChange.subscribe(function(e){t.bsValue=e}))},e.prototype.ngOnChanges=function(e){this._datepickerRef&&this._datepickerRef.instance&&(e.minDate&&(this._datepickerRef.instance.minDate=this.minDate),e.maxDate&&(this._datepickerRef.instance.maxDate=this.maxDate),e.datesDisabled&&(this._datepickerRef.instance.datesDisabled=this.datesDisabled),e.isDisabled&&(this._datepickerRef.instance.isDisabled=this.isDisabled))},e.prototype.setConfig=function(){this._config=Object.assign({},this._config,this.bsConfig,{value:this._bsValue,isDisabled:this.isDisabled,minDate:this.minDate||this.bsConfig&&this.bsConfig.minDate,maxDate:this.maxDate||this.bsConfig&&this.bsConfig.maxDate,datesDisabled:this.datesDisabled||this.bsConfig&&this.bsConfig.datesDisabled})},e.prototype.ngOnDestroy=function(){this._datepicker.dispose()},e.decorators=[{type:o.Directive,args:[{selector:"bs-datepicker-inline",exportAs:"bsDatepickerInline"}]}],e.ctorParameters=function(){return[{type:G},{type:o.ElementRef},{type:o.Renderer2},{type:o.ViewContainerRef},{type:s.ComponentLoaderFactory}]},e.propDecorators={bsValue:[{type:o.Input}],bsConfig:[{type:o.Input}],isDisabled:[{type:o.Input}],minDate:[{type:o.Input}],maxDate:[{type:o.Input}],datesDisabled:[{type:o.Input}],bsValueChange:[{type:o.Output}]},e}(),Z={provide:r.NG_VALUE_ACCESSOR,useExisting:o.forwardRef(function(){return K}),multi:!0},Q={provide:r.NG_VALIDATORS,useExisting:o.forwardRef(function(){return K}),multi:!0},K=function(){function e(e,t,n,i,a){var s=this;this._picker=e,this._localeService=t,this._renderer=n,this._elRef=i,this.changeDetection=a,this._onChange=Function.prototype,this._onTouched=Function.prototype,this._validatorChange=Function.prototype,this._picker.bsValueChange.subscribe(function(e){s._setInputValue(e),s._value!==e&&(s._value=e,s._onChange(e),s._onTouched()),s.changeDetection.markForCheck()}),this._localeService.localeChange.subscribe(function(){s._setInputValue(s._value)})}return e.prototype._setInputValue=function(e){var t=e?m.formatDate(e,this._picker._config.dateInputFormat,this._localeService.currentLocale):"";this._renderer.setProperty(this._elRef.nativeElement,"value",t)},e.prototype.onChange=function(e){this.writeValue(e.target.value),this._onChange(this._value),this._onTouched()},e.prototype.validate=function(e){var t=e.value;if(null===t||t===undefined||""===t)return null;if(m.isDate(t)){if(!m.isDateValid(t))return{bsDate:{invalid:t}};if(this._picker&&this._picker.minDate&&m.isBefore(t,this._picker.minDate,"date"))return{bsDate:{minDate:this._picker.minDate}};if(this._picker&&this._picker.maxDate&&m.isAfter(t,this._picker.maxDate,"date"))return{bsDate:{maxDate:this._picker.maxDate}}}},e.prototype.registerOnValidatorChange=function(e){this._validatorChange=e},e.prototype.writeValue=function(e){if(e){var t=this._localeService.currentLocale;if(!m.getLocale(t))throw new Error('Locale "'+t+'" is not defined, please add it with "defineLocale(...)"');this._value=m.parseDate(e,this._picker._config.dateInputFormat,this._localeService.currentLocale)}else this._value=null;this._picker.bsValue=this._value},e.prototype.setDisabledState=function(e){(this._picker.isDisabled=e)?this._renderer.setAttribute(this._elRef.nativeElement,"disabled","disabled"):this._renderer.removeAttribute(this._elRef.nativeElement,"disabled")},e.prototype.registerOnChange=function(e){this._onChange=e},e.prototype.registerOnTouched=function(e){this._onTouched=e},e.prototype.onBlur=function(){this._onTouched()},e.prototype.hide=function(){this._picker.hide(),this._renderer.selectRootElement(this._elRef.nativeElement).blur()},e.decorators=[{type:o.Directive,args:[{selector:"input[bsDatepicker]",host:{"(change)":"onChange($event)","(keyup.esc)":"hide()","(blur)":"onBlur()"},providers:[Z,Q]}]}],e.ctorParameters=function(){return[{type:W,decorators:[{type:o.Host}]},{type:v},{type:o.Renderer2},{type:o.ElementRef},{type:o.ChangeDetectorRef}]},e}(),X=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.displayMonths=2,e}return u(e,t),e.decorators=[{type:o.Injectable}],e}(l),J=function(r){function e(e,t,n,i,a){var s=r.call(this)||this;return s._actions=t,s._config=n,s._store=i,s._positionService=a,s.valueChange=new o.EventEmitter,s._rangeStack=[],s._subs=[],s._effects=e,s}return u(e,r),Object.defineProperty(e.prototype,"value",{set:function(e){this._effects.setRangeValue(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this._positionService.setOptions({modifiers:{flip:{enabled:this._config.adaptivePosition}}}),this.containerClass=this._config.containerClass,this.isOtherMonthsActive=this._config.selectFromOtherMonth,this._effects.init(this._store).setOptions(this._config).setBindings(this).setEventHandlers(this).registerDatepickerSideEffects(),this._subs.push(this._store.select(function(e){return e.selectedRange}).subscribe(function(e){return t.valueChange.emit(e)}))},e.prototype.daySelectHandler=function(e){(this.isOtherMonthsActive?e.isDisabled:e.isOtherMonth||e.isDisabled)||(1===this._rangeStack.length&&(this._rangeStack=e.date>=this._rangeStack[0]?[this._rangeStack[0],e.date]:[e.date]),0===this._rangeStack.length&&(this._rangeStack=[e.date]),this._store.dispatch(this._actions.selectRange(this._rangeStack)),2===this._rangeStack.length&&(this._rangeStack=[]))},e.prototype.ngOnDestroy=function(){try{for(var e=p(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(a){n={error:a}}finally{try{t&&!t.done&&(i=e["return"])&&i.call(e)}finally{if(n)throw n.error}}var n,i;this._effects.destroy()},e.decorators=[{type:o.Component,args:[{selector:"bs-daterangepicker-container",providers:[B,D],template:'\x3c!-- days calendar view mode --\x3e\n<div class="bs-datepicker" [ngClass]="containerClass" *ngIf="viewMode | async">\n <div class="bs-datepicker-container">\n\n \x3c!--calendars--\x3e\n <div class="bs-calendar-container" [ngSwitch]="viewMode | async" role="application">\n \x3c!--days calendar--\x3e\n <div *ngSwitchCase="\'day\'" class="bs-media-container">\n <bs-days-calendar-view\n *ngFor="let calendar of (daysCalendar | async)"\n [class.bs-datepicker-multiple]="(daysCalendar | async)?.length > 1"\n [calendar]="calendar"\n [options]="options | async"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="setViewMode($event)"\n (onHover)="dayHoverHandler($event)"\n (onHoverWeek)="weekHoverHandler($event)"\n (onSelect)="daySelectHandler($event)"\n ></bs-days-calendar-view>\n </div>\n\n \x3c!--months calendar--\x3e\n <div *ngSwitchCase="\'month\'" class="bs-media-container">\n <bs-month-calendar-view\n *ngFor="let calendar of (monthsCalendar | async)"\n [class.bs-datepicker-multiple]="(daysCalendar | async)?.length > 1"\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="setViewMode($event)"\n (onHover)="monthHoverHandler($event)"\n (onSelect)="monthSelectHandler($event)"\n ></bs-month-calendar-view>\n </div>\n\n \x3c!--years calendar--\x3e\n <div *ngSwitchCase="\'year\'" class="bs-media-container">\n <bs-years-calendar-view\n *ngFor="let calendar of (yearsCalendar | async)"\n [class.bs-datepicker-multiple]="(daysCalendar | async )?.length > 1"\n [calendar]="calendar"\n (onNavigate)="navigateTo($event)"\n (onViewMode)="setViewMode($event)"\n (onHover)="yearHoverHandler($event)"\n (onSelect)="yearSelectHandler($event)"\n ></bs-years-calendar-view>\n </div>\n\n </div>\n\n \x3c!--applycancel buttons--\x3e\n <div class="bs-datepicker-buttons" *ngIf="false">\n <button class="btn btn-success">Apply</button>\n <button class="btn btn-default">Cancel</button>\n </div>\n\n </div>\n\n \x3c!--custom dates or date ranges picker--\x3e\n <div class="bs-datepicker-custom-range" *ngIf="false">\n <bs-custom-date-view [ranges]="_customRangesFish"></bs-custom-date-view>\n </div>\n</div>\n',host:{"(click)":"_stopPropagation($event)",style:"position: absolute; display: block;",role:"dialog","aria-label":"calendar"}}]}],e.ctorParameters=function(){return[{type:D},{type:g},{type:l},{type:B},{type:t.PositioningService}]},e}(b),ee=function(){function e(e,t,n,i,a){this._config=e,this.placement="bottom",this.triggers="click",this.outsideClick=!0,this.container="body",this.outsideEsc=!0,this.bsValueChange=new o.EventEmitter,this._subs=[],this._datepicker=a.createLoader(t,i,n),Object.assign(this,e),this.onShown=this._datepicker.onShown,this.onHidden=this._datepicker.onHidden}return Object.defineProperty(e.prototype,"isOpen",{get:function(){return this._datepicker.isShown},set:function(e){e?this.show():this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bsValue",{set:function(e){this._bsValue!==e&&(this._bsValue=e,this.bsValueChange.emit(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var e=this;this._datepicker.listen({outsideClick:this.outsideClick,outsideEsc:this.outsideEsc,triggers:this.triggers,show:function(){return e.show()}}),this.setConfig()},e.prototype.ngOnChanges=function(e){this._datepickerRef&&this._datepickerRef.instance&&(e.minDate&&(this._datepickerRef.instance.minDate=this.minDate),e.maxDate&&(this._datepickerRef.instance.maxDate=this.maxDate),e.datesDisabled&&(this._datepickerRef.instance.datesDisabled=this.datesDisabled),e.isDisabled&&(this._datepickerRef.instance.isDisabled=this.isDisabled))},e.prototype.show=function(){var t=this;this._datepicker.isShown||(this.setConfig(),this._datepickerRef=this._datepicker.provide({provide:l,useValue:this._config}).attach(J).to(this.container).position({attachment:this.placement}).show({placement:this.placement}),this._subs.push(this.bsValueChange.subscribe(function(e){t._datepickerRef.instance.value=e})),this._subs.push(this._datepickerRef.instance.valueChange.pipe(n.filter(function(e){return e&&e[0]&&!!e[1]})).subscribe(function(e){t.bsValue=e,t.hide()})))},e.prototype.setConfig=function(){this._config=Object.assign({},this._config,this.bsConfig,{value:this._bsValue,isDisabled:this.isDisabled,minDate:this.minDate||this.bsConfig&&this.bsConfig.minDate,maxDate:this.maxDate||this.bsConfig&&this.bsConfig.maxDate,datesDisabled:this.datesDisabled||this.bsConfig&&this.bsConfig.datesDisabled})},e.prototype.hide=function(){this.isOpen&&this._datepicker.hide();try{for(var e=p(this._subs),t=e.next();!t.done;t=e.next()){t.value.unsubscribe()}}catch(a){n={error:a}}finally{try{t&&!t.done&&(i=e["return"])&&i.call(e)}finally{if(n)throw n.error}}var n,i},e.prototype.toggle=function(){if(this.isOpen)return this.hide();this.show()},e.prototype.ngOnDestroy=function(){this._datepicker.dispose()},e.decorators=[{type:o.Directive,args:[{selector:"[bsDaterangepicker]",exportAs:"bsDaterangepicker"}]}],e.ctorParameters=function(){return[{type:X},{type:o.ElementRef},{type:o.Renderer2},{type:o.ViewContainerRef},{type:s.ComponentLoaderFactory}]},e.propDecorators={placement:[{type:o.Input}],triggers:[{type:o.Input}],outsideClick:[{type:o.Input}],container:[{type:o.Input}],outsideEsc:[{type:o.Input}],isOpen:[{type:o.Input}],onShown:[{type:o.Output}],onHidden:[{type:o.Output}],bsValue:[{type:o.Input}],bsConfig:[{type:o.Input}],isDisabled:[{type:o.Input}],minDate:[{type:o.Input}],maxDate:[{type:o.Input}],datesDisabled:[{type:o.Input}],bsValueChange:[{type:o.Output}]},e}(),te={provide:r.NG_VALUE_ACCESSOR,useExisting:o.forwardRef(function(){return ie}),multi:!0},ne={provide:r.NG_VALIDATORS,useExisting:o.forwardRef(function(){return ie}),multi:!0},ie=function(){function e(e,t,n,i,a){var s=this;this._picker=e,this._localeService=t,this._renderer=n,this._elRef=i,this.changeDetection=a,this._onChange=Function.prototype,this._onTouched=Function.prototype,this._validatorChange=Function.prototype,this._picker.bsValueChange.subscribe(function(e){s._setInputValue(e),s._value!==e&&(s._value=e,s._onChange(e),s._onTouched()),s.changeDetection.markForCheck()}),this._localeService.localeChange.subscribe(function(){s._setInputValue(s._value)})}return e.prototype._setInputValue=function(e){var t="";if(e){var n=e[0]?m.formatDate(e[0],this._picker._config.rangeInputFormat,this._localeService.currentLocale):"",i=e[1]?m.formatDate(e[1],this._picker._config.rangeInputFormat,this._localeService.currentLocale):"";t=n&&i?n+this._picker._config.rangeSeparator+i:""}this._renderer.setProperty(this._elRef.nativeElement,"value",t)},e.prototype.onChange=function(e){this.writeValue(e.target.value),this._onChange(this._value),this._onTouched()},e.prototype.validate=function(e){var t=e.value;if(null===t||t===undefined||!m.isArray(t))return null;var n=m.isDateValid(t[0]),i=m.isDateValid(t[1]);return n?i?this._picker&&this._picker.minDate&&m.isBefore(t[0],this._picker.minDate,"date")?{bsDate:{minDate:this._picker.minDate}}:this._picker&&this._picker.maxDate&&m.isAfter(t[1],this._picker.maxDate,"date")?{bsDate:{maxDate:this._picker.maxDate}}:void 0:{bsDate:{invalid:t[1]}}:{bsDate:{invalid:t[0]}}},e.prototype.registerOnValidatorChange=function(e){this._validatorChange=e},e.prototype.writeValue=function(e){var t=this;if(e){var n=this._localeService.currentLocale;if(!m.getLocale(n))throw new Error('Locale "'+n+'" is not defined, please add it with "defineLocale(...)"');var i=[];"string"==typeof e&&(i=e.split(this._picker._config.rangeSeparator)),Array.isArray(e)&&(i=e),this._value=i.map(function(e){return m.parseDate(e,t._picker._config.dateInputFormat,t._localeService.currentLocale)}).map(function(e){return isNaN(e.valueOf())?null:e})}else this._value=null;this._picker.bsValue=this._value},e.prototype.setDisabledState=function(e){(this._picker.isDisabled=e)?this._renderer.setAttribute(this._elRef.nativeElement,"disabled","disabled"):this._renderer.removeAttribute(this._elRef.nativeElement,"disabled")},e.prototype.registerOnChange=function(e){this._onChange=e},e.prototype.registerOnTouched=function(e){this._onTouched=e},e.prototype.onBlur=function(){this._onTouched()},e.prototype.hide=function(){this._picker.hide(),this._renderer.selectRootElement(this._elRef.nativeElement).blur()},e.decorators=[{type:o.Directive,args:[{selector:"input[bsDaterangepicker]",host:{"(change)":"onChange($event)","(keyup.esc)":"hide()","(blur)":"onBlur()"},providers:[te,ne]}]}],e.ctorParameters=function(){return[{type:ee,decorators:[{type:o.Host}]},{type:v},{type:o.Renderer2},{type:o.ElementRef},{type:o.ChangeDetectorRef}]},e}(),ae=function(){function e(){}return e.decorators=[{type:o.Component,args:[{selector:"bs-calendar-layout",template:'\n \x3c!-- current date, will be added in nearest releases --\x3e\n <bs-current-date title="hey there" *ngIf="false"></bs-current-date>\n\n \x3c!--navigation--\x3e\n <div class="bs-datepicker-head">\n <ng-content select="bs-datepicker-navigation-view"></ng-content>\n </div>\n\n <div class="bs-datepicker-body">\n <ng-content></ng-content>\n </div>\n\n \x3c!--timepicker--\x3e\n <bs-timepicker *ngIf="false"></bs-timepicker>\n '}]}],e}(),se=function(){function e(){}return e.decorators=[{type:o.Component,args:[{selector:"bs-current-date",template:'<div class="current-timedate"><span>{{ title }}</span></div>'}]}],e.propDecorators={title:[{type:o.Input}]},e}(),re=function(){function e(){}return e.decorators=[{type:o.Component,args:[{selector:"bs-custom-date-view",template:'\n <div class="bs-datepicker-predefined-btns">\n <button *ngFor="let range of ranges">{{ range.label }}</button>\n <button *ngIf="isCustomRangeShown">Custom Range</button>\n </div>\n ',changeDetection:o.ChangeDetectionStrategy.OnPush}]}],e.propDecorators={isCustomRangeShown:[{type:o.Input}],ranges:[{type:o.Input}]},e}(),oe=function(){function e(e,t,n){this._config=e,this._elRef=t,this._renderer=n}return e.prototype.ngOnInit=function(){this.day.isToday&&this._config&&this._config.customTodayClass&&this._renderer.addClass(this._elRef.nativeElement,this._config.customTodayClass)},e.decorators=[{type:o.Component,args:[{selector:"[bsDatepickerDayDecorator]",changeDetection:o.ChangeDetectionStrategy.OnPush,host:{"[class.disabled]":"day.isDisabled","[class.is-highlighted]":"day.isHovered","[class.is-other-month]":"day.isOtherMonth","[class.is-active-other-month]":"day.isOtherMonthHovered","[class.in-range]":"day.isInRange","[class.select-start]":"day.isSelectionStart","[class.select-end]":"day.isSelectionEnd","[class.selected]":"day.isSelected"},template:"{{ day.label }}"}]}],e.ctorParameters=function(){return[{type:l},{type:o.ElementRef},{type:o.Renderer2}]},e.propDecorators={day:[{type:o.Input}]},e}(),ce={UP:0,DOWN:1};ce[ce.UP]="UP",ce[ce.DOWN]="DOWN";var de=function(){function e(){this.onNavigate=new o.EventEmitter,this.onViewMode=new o.EventEmitter}return e.prototype.navTo=function(e){this.onNavigate.emit(e?ce.DOWN:ce.UP)},e.prototype.view=function(e){this.onViewMode.emit(e)},e.decorators=[{type:o.Component,args:[{selector:"bs-datepicker-navigation-view",changeDetection:o.ChangeDetectionStrategy.OnPush,template:'\n <button class="previous"\n [disabled]="calendar.disableLeftArrow"\n [style.visibility]="calendar.hideLeftArrow ? \'hidden\' : \'visible\'"\n (click)="navTo(true)"><span>&lsaquo;</span>\n </button>\n\n &#8203; \x3c!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular --\x3e\n\n <button class="current"\n *ngIf="calendar.monthTitle"\n (click)="view(\'month\')"\n ><span>{{ calendar.monthTitle }}</span>\n </button>\n\n &#8203; \x3c!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular --\x3e\n\n <button class="current" (click)="view(\'year\')"\n ><span>{{ calendar.yearTitle }}</span></button>\n\n &#8203; \x3c!-- zero-width space needed for correct alignement\n with preserveWhitespaces: false in Angular --\x3e\n\n <button class="next"\n [disabled]="calendar.disableRightArrow"\n [style.visibility]="calendar.hideRightArrow ? \'hidden\' : \'visible\'"\n (click)="navTo(false)"><span>&rsaquo;</span>\n </button>\n '}]}],e.propDecorators={calendar:[{type:o.Input}],onNavigate:[{type:o.Output}],onViewMode:[{type:o.Output}]},e}(),le=function(){function e(e){this._config=e,this.onNavigate=new o.EventEmitter,this.onViewMode=new o.EventEmitter,this.onSelect=new o.EventEmitter,this.onHover=new o.EventEmitter,this.onHoverWeek=new o.EventEmitter}return e.prototype.navigateTo=function(e){var t=ce.DOWN===e?-1:1;this.onNavigate.emit({step:{month:t}})},e.prototype.changeViewMode=function(e){this.onViewMode.emit(e)},e.prototype.selectDay=function(e){this.onSelect.emit(e)},e.prototype.selectWeek=function(e){var t=this;if(this._config.selectWeek)if(e.days&&e.days[0]&&!e.days[0].isDisabled&&this._config.selectFromOtherMonth)this.onSelect.emit(e.days[0]);else if(0!==e.days.length){var n=e.days.find(function(e){return t._config.selectFromOtherMonth?!e.isDisabled:!e.isOtherMonth&&!e.isDisabled});this.onSelect.emit(n)}},e.prototype.weekHoverHandler=function(e,t){var n=this;this._config.selectWeek&&(e.days.find(function(e){return n._config.selectFromOtherMonth?!e.isDisabled:!e.isOtherMonth&&!e.isDisabled})&&(e.isHovered=t,this.isWeekHovered=t,this.onHoverWeek.emit(e)))},e.prototype.hoverDay=function(e,t){this._config.selectFromOtherMonth&&e.isOtherMonth&&(e.isOtherMonthHovered=t),this.onHover.emit({cell:e,isHovered:t})},e.decorators=[{type:o.Component,args:[{selector:"bs-days-calendar-view",template:'\n <bs-calendar-layout>\n