angular-eonasdan-datetimepicker
Version:
A wrapper directive around the bootstrap-datetimepicker component.
1 lines • 1.01 kB
JavaScript
!function(){"use strict";var e=angular.module("ae-datetimepicker",[]);e.directive("datetimepicker",["$timeout",function(e){return{restrict:"EA",require:"ngModel",scope:{options:"=?",onChange:"&?",onClick:"&?"},link:function(t,n,i,a){var o=n.parent().hasClass("input-group")?n.parent():n;t.$watch("options",function(e){var t=o.data("DateTimePicker");$.map(e,function(e,n){t[n](e)})},!0),a.$render=function(){var e=o.data("DateTimePicker").date();!a.$viewValue&&e?o.data("DateTimePicker").clear():a.$viewValue&&(moment.isMoment(a.$viewValue)||a.$setViewValue(moment(a.$viewValue)),o.data("DateTimePicker").date(a.$viewValue))};var u=function(e,t){return moment.isMoment(e)&&moment.isMoment(t)&&e.valueOf()===t.valueOf()};o.on("dp.change",function(n){if(!u(n.date,a.$viewValue)){var i=n.date===!1?null:n.date;a.$setViewValue(i),e(function(){"function"==typeof t.onChange&&t.onChange()})}}),o.on("click",function(){e(function(){"function"==typeof t.onClick&&t.onClick()})}),o.datetimepicker(t.options)}}}])}();