(function(n){"use strict";typeof define=="function"&&define.amd?define(["angular","moment"],n):typeof exports=="object"?module.exports=n(require("angular"),require("moment")):n(window.angular,window.moment)})(function(n,t){"use strict";function i(i,r){function f(f,e,o){function w(n,t,i){var r,o,u,s,e,h;if(i&&(i.stopPropagation(),i.preventDefault()),n&&t.utcDateValue>-Infinity&&t.selectable&&l[n]){if(r=l[n](t.utcDateValue),o=[],r.weeks)for(u=0;u<r.weeks.length;u+=1)for(s=r.weeks[u],e=0;e<s.dates.length;e+=1)h=s.dates[e],o.push(h);f.beforeRender({$view:r.currentView,$dates:r.dates||o,$leftDate:r.leftDate,$upDate:r.previousViewDate,$rightDate:r.rightDate});f.data=r}}function b(n){for(var a=t.utc(n).startOf("year"),r=parseInt(a.year()/10,10)*10,e=t.utc(v(n)).subtract(1,"year").startOf("year"),y=c(h.$modelValue,"YYYY"),o={currentView:"year",nextView:s.minView==="year"?"setTime":"month",previousViewDate:new u({utcDateValue:null,display:r+"-"+(r+9)}),leftDate:new u({utcDateValue:t.utc(e).subtract(9,"year").valueOf()}),rightDate:new u({utcDateValue:t.utc(e).add(11,"year").valueOf()}),dates:[]},i,l,f=0;f<12;f+=1)i=t.utc(e).add(f,"years"),l={utcDateValue:i.valueOf(),display:i.format("YYYY"),past:i.year()<r,future:i.year()>r+9,active:i.format("YYYY")===y},o.dates.push(new u(l));return o}function k(n){for(var i=t.utc(n).startOf("year"),l=v(n),a=c(h.$modelValue,"YYYY-MMM"),e={previousView:"year",currentView:"month",nextView:s.minView==="month"?"setTime":"day",previousViewDate:new u({utcDateValue:l.valueOf(),display:i.format("YYYY")}),leftDate:new u({utcDateValue:t.utc(i).subtract(1,"year").valueOf()}),rightDate:new u({utcDateValue:t.utc(i).add(1,"year").valueOf()}),dates:[]},f,o,r=0;r<12;r+=1)f=t.utc(i).add(r,"months"),o={utcDateValue:f.valueOf(),display:f.format("MMM"),active:f.format("YYYY-MMM")===a},e.dates.push(new u(o));return e}function d(n){for(var l=t.utc(n),i=t.utc(l).startOf("month"),p=t.utc(l).startOf("year"),w=t.utc(l).endOf("month"),b=t.utc(i).subtract(Math.abs(i.weekday()),"days"),k=c(h.$modelValue,"YYYY-MMM-DD"),a={previousView:"month",currentView:"day",nextView:s.minView==="day"?"setTime":"hour",previousViewDate:new u({utcDateValue:p.valueOf(),display:i.format("YYYY-MMM")}),leftDate:new u({utcDateValue:t.utc(i).subtract(1,"months").valueOf()}),rightDate:new u({utcDateValue:t.utc(i).add(1,"months").valueOf()}),dayNames:[],weeks:[]},e,v,o,r,y,f=0;f<7;f+=1)a.dayNames.push(t.utc().weekday(f).format("dd"));for(e=0;e<6;e+=1){for(v={dates:[]},o=0;o<7;o+=1)r=t.utc(b).add(e*7+o,"days"),y={utcDateValue:r.valueOf(),display:r.format("D"),active:r.format("YYYY-MMM-DD")===k,past:r.isBefore(i),future:r.isAfter(w)},v.dates.push(new u(y));a.weeks.push(v)}return a}function g(n){for(var i=t.utc(n).startOf("day"),l=t.utc(i).startOf("month"),a=c(h.$modelValue,"YYYY-MM-DD H"),e={previousView:"day",currentView:"hour",nextView:s.minView==="hour"?"setTime":"minute",previousViewDate:new u({utcDateValue:l.valueOf(),display:i.format("ll")}),leftDate:new u({utcDateValue:t.utc(i).subtract(1,"days").valueOf()}),rightDate:new u({utcDateValue:t.utc(i).add(1,"days").valueOf()}),dates:[]},f,o,r=0;r<24;r+=1)f=t.utc(i).add(r,"hours"),o={utcDateValue:f.valueOf(),display:f.format("LT"),active:f.format("YYYY-MM-DD H")===a},e.dates.push(new u(o));return e}function nt(n){for(var i=t.utc(n).startOf("hour"),l=t.utc(i).startOf("day"),a=c(h.$modelValue,"YYYY-MM-DD H:mm"),e={previousView:"hour",currentView:"minute",nextView:"setTime",previousViewDate:new u({utcDateValue:l.valueOf(),display:i.format("lll")}),leftDate:new u({utcDateValue:t.utc(i).subtract(1,"hours").valueOf()}),rightDate:new u({utcDateValue:t.utc(i).add(1,"hours").valueOf()}),dates:[]},v=60/s.minuteStep,f,o,r=0;r<v;r+=1)f=t.utc(i).add(r*s.minuteStep,"minute"),o={utcDateValue:f.valueOf(),display:f.format("LT"),active:f.format("YYYY-MM-DD H:mm")===a},e.dates.push(new u(o));return e}function a(n){var i=new Date(n),r=new Date(i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate(),i.getUTCHours(),i.getUTCMinutes(),i.getUTCSeconds(),i.getUTCMilliseconds()),u;switch(s.modelType){case"Date":break;case"moment":r=t(r);break;case"milliseconds":r=n;break;default:r=t(r).format(s.modelType)}u=h.$modelValue;h.$setViewValue(r);s.dropdownSelector&&jQuery(s.dropdownSelector).dropdown("toggle");f.onSetTime({newDate:r,oldDate:u});return l[s.startView](n)}function tt(){f.changeView(s.startView,new u({utcDateValue:it(h.$viewValue)}))}function v(n){var i=parseInt(t.utc(n).year()/10,10)*10;return t.utc(n).year(i).startOf("year")}function c(n,t){return n?y(n).format(t):""}function y(i){return t(i,n.isString(i)?s.parseFormat:undefined)}function it(n){var t=new Date,i;if(n)if(i=y(n),i.isValid())t=i.toDate();else throw"Invalid date: "+n;return t.getTime()-t.getTimezoneOffset()*6e4}function p(){var u={},t;return o.datetimepickerConfig&&(u=f.$parent.$eval(o.datetimepickerConfig)),t=n.extend({},i,u),r.validate(t),t}var h=e.controller("ngModel"),s=p(),l;f.screenReader=s.screenReader;f.changeView=w;h.$render=tt;s.configureOn&&f.$on(s.configureOn,function(){s=p();f.screenReader=s.screenReader;h.$render()});s.renderOn&&f.$on(s.renderOn,h.$render);l={year:b,month:k,day:d,hour:g,minute:nt,setTime:a};f.clearDateTimePicker=function(){h.$setViewValue("")};f.setToday=function(){a((new Date).getTime())}}function u(){var t=new Date,r=t.getTimezoneOffset()*6e4,i,n;this.utcDateValue=t.getTime();this.selectable=!0;this.localDateValue=function(){return this.utcDateValue+r};i=["utcDateValue","localDateValue","display","active","selectable","past","future"];for(n in arguments[0])i.indexOf(n)>=0&&(this[n]=arguments[0][n])}var e={bindToController:!1,controller:f,controllerAs:"dateTimePickerController",replace:!0,require:"ngModel",restrict:"E",scope:{beforeRender:"&",onSetTime:"&"},templateUrl:"templates/datetimepicker.html"};return f.$inject=["$scope","$element","$attrs"],e}function u(){var i={bg:{previous:"предишна",next:"следваща"},ca:{previous:"anterior",next:"següent"},da:{previous:"forrige",next:"næste"},de:{previous:"vorige",next:"weiter"},"en-au":{previous:"previous",next:"next"},"en-gb":{previous:"previous",next:"next"},en:{previous:"previous",next:"next"},"es-us":{previous:"atrás",next:"siguiente"},es:{previous:"atrás",next:"siguiente"},fi:{previous:"edellinen",next:"seuraava"},fr:{previous:"précédent",next:"suivant"},hu:{previous:"előző",next:"következő"},it:{previous:"precedente",next:"successivo"},ja:{previous:"前へ",next:"次へ"},ml:{previous:"മുൻപുള്ളത്",next:"അടുത്തത്"},nl:{previous:"vorige",next:"volgende"},pl:{previous:"poprzednia",next:"następna"},"pt-br":{previous:"anteriores",next:"próximos"},pt:{previous:"anterior",next:"próximo"},ro:{previous:"anterior",next:"următor"},ru:{previous:"предыдущая",next:"следующая"},sk:{previous:"predošlá",next:"ďalšia"},sv:{previous:"föregående",next:"nästa"},tr:{previous:"önceki",next:"sonraki"},uk:{previous:"назад",next:"далі"},"zh-cn":{previous:"上一页",next:"下一页"},"zh-tw":{previous:"上一頁",next:"下一頁"}}[t.locale().toLowerCase()];return n.extend({},{configureOn:null,dropdownSelector:null,minuteStep:5,minView:"minute",modelType:"Date",parseFormat:"YYYY-MM-DDTHH:mm:ss.SSSZZ",renderOn:null,startView:"day"},{screenReader:i})}function r(t){function i(i){var f=["configureOn","dropdownSelector","minuteStep","minView","modelType","parseFormat","renderOn","startView","screenReader"],u,r;for(u in i)if(f.indexOf(u)<0)throw"invalid option: "+u;if(r=["minute","hour","day","month","year"],r.indexOf(i.startView)<0)throw"invalid startView value: "+i.startView;if(r.indexOf(i.minView)<0)throw"invalid minView value: "+i.minView;if(r.indexOf(i.minView)>r.indexOf(i.startView))throw"startView must be greater than minView";if(!n.isNumber(i.minuteStep))throw"minuteStep must be numeric";if(i.minuteStep<=0||i.minuteStep>=60)throw"minuteStep must be greater than zero and less than 60";if(i.configureOn!==null&&!n.isString(i.configureOn))throw"configureOn must be a string";if(i.configureOn!==null&&i.configureOn.length<1)throw"configureOn must not be an empty string";if(i.renderOn!==null&&!n.isString(i.renderOn))throw"renderOn must be a string";if(i.renderOn!==null&&i.renderOn.length<1)throw"renderOn must not be an empty string";if(i.modelType!==null&&!n.isString(i.modelType))throw"modelType must be a string";if(i.modelType!==null&&i.modelType.length<1)throw"modelType must not be an empty string";if(i.modelType!=="Date"&&i.modelType!=="moment"&&i.modelType!=="milliseconds"&&(i.parseFormat=i.modelType),i.dropdownSelector!==null&&!n.isString(i.dropdownSelector))throw"dropdownSelector must be a string";i.dropdownSelector!==null&&(typeof jQuery=="undefined"||typeof jQuery().dropdown!="function")&&(t.error("Please DO NOT specify the dropdownSelector option unless you are using jQuery AND Bootstrap.js. Please include jQuery AND Bootstrap.js, or write code to close the dropdown in the on-set-time callback. \n\nThe dropdownSelector configuration option is being removed because it will not function properly."),delete i.dropdownSelector)}return{validate:i}}n.module("ui.bootstrap.datetimepicker",[]).service("dateTimePickerConfig",u).service("dateTimePickerValidator",r).directive("datetimepicker",i);i.$inject=["dateTimePickerConfig","dateTimePickerValidator"];r.$inject=["$log"]}),function(){"use strict";angular.module("ui.bootstrap.datetimepicker").run(["$templateCache",function(n){n.put("templates/datetimepicker.html",'<div class="datetimepicker table-responsive">\n    <table class="table table-condensed {{ data.currentView }}-view">\n        <thead>\n        <tr>\n            <th class="left" data-ng-click="changeView(data.currentView, data.leftDate, $event)" data-ng-show="data.leftDate.selectable"><i class="glyphicon glyphicon-arrow-left"><span class="sr-only">{{ screenReader.previous }}<\/span><\/i>\n            <\/th>\n            <th class="switch" colspan="5" data-ng-show="data.previousViewDate.selectable" data-ng-click="changeView(data.previousView, data.previousViewDate, $event)">{{ data.previousViewDate.display }}<\/th>\n            <th class="right" data-ng-click="changeView(data.currentView, data.rightDate, $event)" data-ng-show="data.rightDate.selectable"><i class="glyphicon glyphicon-arrow-right"><span class="sr-only">{{ screenReader.next }}<\/span><\/i>\n            <\/th>\n        <\/tr>\n        <tr>\n            <th class="dow" data-ng-repeat="day in data.dayNames">{{ day }}<\/th>\n        <\/tr>\n        <\/thead>\n        <tbody>\n        <tr data-ng-if="data.currentView !== \'day\'">\n            <td colspan="7">\n                          <span class="{{ data.currentView }}" data-ng-repeat="dateObject in data.dates" data-ng-class="{active: dateObject.active, past: dateObject.past, future: dateObject.future, disabled: !dateObject.selectable}" data-ng-click="changeView(data.nextView, dateObject, $event)">{{ dateObject.display }}<\/span><\/td>\n        <\/tr>\n        <tr data-ng-if="data.currentView === \'day\'" data-ng-repeat="week in data.weeks">\n            <td data-ng-repeat="dateObject in week.dates" data-ng-click="changeView(data.nextView, dateObject, $event)" class="day" data-ng-class="{active: dateObject.active, past: dateObject.past, future: dateObject.future, disabled: !dateObject.selectable}">{{ dateObject.display }}<\/td>\n        <\/tr>\n        <\/tbody>\n    <\/table>\n<section class="additional-actions"><div class="pull-left"><a ng-click="setToday()" class="btn">Today<\/a><\/div><div class="pull-right"><a data-ng-click="clearDateTimePicker()" class="btn">Clear<\/a><\/div><\/section><\/div>')}])}(),function(){"use strict";angular.module("ui.bootstrap.datetimepicker").run(["$templateCache",function(n){n.put("templates/datetimepicker.html",'<div class="datetimepicker table-responsive">\n    <table class="table table-condensed {{ data.currentView }}-view">\n        <thead>\n        <tr>\n            <th class="left" data-ng-click="changeView(data.currentView, data.leftDate, $event)" data-ng-show="data.leftDate.selectable"><i class="glyphicon glyphicon-arrow-left"><span class="sr-only">{{ screenReader.previous }}<\/span><\/i>\n            <\/th>\n            <th class="switch" colspan="5" data-ng-show="data.previousViewDate.selectable" data-ng-click="changeView(data.previousView, data.previousViewDate, $event)">{{ data.previousViewDate.display }}<\/th>\n            <th class="right" data-ng-click="changeView(data.currentView, data.rightDate, $event)" data-ng-show="data.rightDate.selectable"><i class="glyphicon glyphicon-arrow-right"><span class="sr-only">{{ screenReader.next }}<\/span><\/i>\n            <\/th>\n        <\/tr>\n        <tr>\n            <th class="dow" data-ng-repeat="day in data.dayNames">{{ day }}<\/th>\n        <\/tr>\n        <\/thead>\n        <tbody>\n        <tr data-ng-if="data.currentView !== \'day\'">\n            <td colspan="7">\n                          <span class="{{ data.currentView }}" data-ng-repeat="dateObject in data.dates" data-ng-class="{active: dateObject.active, past: dateObject.past, future: dateObject.future, disabled: !dateObject.selectable}" data-ng-click="changeView(data.nextView, dateObject, $event)">{{ dateObject.display }}<\/span><\/td>\n        <\/tr>\n        <tr data-ng-if="data.currentView === \'day\'" data-ng-repeat="week in data.weeks">\n            <td data-ng-repeat="dateObject in week.dates" data-ng-click="changeView(data.nextView, dateObject, $event)" class="day" data-ng-class="{active: dateObject.active, past: dateObject.past, future: dateObject.future, disabled: !dateObject.selectable}">{{ dateObject.display }}<\/td>\n        <\/tr>\n        <\/tbody>\n    <\/table>\n<section class="additional-actions"><div class="pull-left"><a ng-click="setToday()" class="btn">Today<\/a><\/div><div class="pull-right"><a data-ng-click="clearDateTimePicker()" class="btn">Clear<\/a><\/div><\/section><\/div>')}])}()