forked from fragaria/angular-daterangepicker
/
angular-daterangepicker.min.js
2 lines (2 loc) · 3.8 KB
/
angular-daterangepicker.min.js
1
2
(function(){var a;a=angular.module("daterangepicker",[]),a.constant("dateRangePickerConfig",{clearLabel:"Clear",locale:{separator:"-",format:"YYYY-MM-DD"}}),a.directive("dateRangePicker",["$compile","$timeout","$parse","dateRangePickerConfig",function(a,b,c,d){return{require:"ngModel",restrict:"A",scope:{min:"=",max:"=",model:"=ngModel",opts:"=options",clearable:"="},link:function(a,c,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t;if("false"!==e.dateRangePicker)return j=function(){var a,b;return b=angular.extend.apply(angular,Array.prototype.slice.call(arguments).map(function(a){return null!=a?a.locale:void 0}).filter(function(a){return!!a})),a=angular.extend.apply(angular,arguments),a.locale=b,a},s=$(c),r=a.opts,t=j({},angular.copy(d),r),k=null,g=function(){return k.setStartDate(),k.setEndDate()},l=function(a){return function(b){if(k&&b)return a(moment(b))}},n=l(function(a){return k.endDate<a&&k.setEndDate(a),t.startDate=a,k.setStartDate(a)}),m=l(function(a){return k.startDate>a&&k.setStartDate(a),t.endDate=a,k.setEndDate(a)}),o=function(a){return function(b,c){return!b||!c||a(moment(b),moment(c))}},q=o(function(a,b){return a.isBefore(b)||a.isSame(b,"day")}),p=o(function(a,b){return a.isAfter(b)||a.isSame(b,"day")}),f.$formatters.push(function(a){var b;return b=function(a){return moment.isMoment(a)?a.format(t.locale.format):moment(a).format(t.locale.format)},t.singleDatePicker&&a?b(a):a&&a.startDate?[b(a.startDate),b(a.endDate)].join(t.locale.separator):""}),f.$render=function(){return f.$modelValue&&f.$modelValue.startDate?(n(f.$modelValue.startDate),m(f.$modelValue.endDate)):g(),s.val(f.$viewValue)},f.$parsers.push(function(a){var b,c,d,e,f;if(c=function(a){return moment(a,t.locale.format)},d=t.singleDatePicker?null:{startDate:null,endDate:null},angular.isString(a)&&a.length>0)if(t.singleDatePicker)d=c(a);else{if(f=a.split(t.locale.separator).map(c),e=f[0]?f[0].startOf("day"):null,b=f[1]?f[1].endOf("day"):null,e&&!e.isValid()||b&&!b.isValid())return;d.startDate=e,d.endDate=b}return d}),f.$isEmpty=function(a){return!(angular.isString(a)&&a.length>0)},h=function(){var c,d;s.daterangepicker(angular.extend(t,{autoUpdateInput:!1}),function(b,c){return a.$apply(function(){return a.model=t.singleDatePicker?b:{startDate:b,endDate:c}})}),k=s.data("daterangepicker"),s.on("apply.daterangepicker",function(c,d){t.singleDatePicker?(!a.model||angular.isString(a.model)||t.maxDate||t.minDate)&&(a.model=d.startDate,b(function(){return a.$apply()})):a.model&&a.model.startDate&&a.model.endDate&&!t.maxDate&&!t.minDate||(a.model={startDate:d.startDate,endDate:d.endDate},b(function(){return a.$apply()}))}),s.on("cancel.daterangepicker outsideClick.daterangepicker",function(c,d){a.model&&(t.maxDate||t.minDate)&&(t.singleDatePicker?a.model=d.startDate:a.model.startDate&&a.model.endDate&&(a.model={startDate:d.startDate,endDate:d.endDate}),b(function(){return a.$apply()}))}),d=[];for(c in t.eventHandlers)d.push(s.on(c,function(b){var c;return c=b.type+"."+b.namespace,a.$evalAsync(t.eventHandlers[c])}));return d},h(),a.$watch("model.startDate",function(a){return n(a)}),a.$watch("model.endDate",function(a){return m(a)}),t.singleDatePicker&&a.$watch("model",function(a){!a||a.startDate||a.endDate||(m(a),n(a))}),i=function(b,c,d,g){if(e[b])return f.$validators[b]=function(a){return a&&c(t[g],a[d])},a.$watch(b,function(a){return t[g]=!!a&&moment(a),h()})},i("min",q,"startDate","minDate"),i("max",p,"endDate","maxDate"),e.options&&a.$watch("opts",function(a){return t=j(t,a),h()}),e.clearable&&a.$watch("clearable",function(b){if(b&&(t=j(t,{locale:{cancelLabel:t.clearLabel}})),h(),b)return s.on("cancel.daterangepicker",function(){return a.$apply(function(){return a.model=t.singleDatePicker?null:{startDate:null,endDate:null}})})}),a.$on("$destroy",function(){return null!=k?k.remove():void 0})}}}])}).call(this);
//# sourceMappingURL=angular-daterangepicker.min.js.map