Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function() {
- angular
- .module('ng.bootstrap.datetimepicker', [])
- .directive('datetimepicker', [
- '$timeout',
- function($timeout) {
- return {
- restrict: 'EA',
- require: 'ngModel',
- scope: {
- options: '<?',
- onChange: '&?',
- onClick: '&?',
- ngModel: '='
- },
- link: function(scope, element, attrs, ctrl) {
- element.datetimepicker(Object
- .entries(scope.options)
- .filter(([key, value]) =>
- !['modelFormat', 'silentInit']
- .includes(key))
- .reduce((wrap, pair) =>
- ({
- ...wrap,
- ...{
- [pair[+[]]]: pair[-~[]]
- }
- }), {}));
- ctrl.$render = () =>
- element.data('DateTimePicker')
- .date(moment(Date.parse(ctrl.$viewValue)));
- [
- ['click', () =>
- ['function'].includes(typeof scope.onClick) &&
- $timeout(() => scope.onClick())
- ],
- ['dp.change', (
- (event) =>
- event.date &&
- ctrl.$setViewValue(moment(new Date(event.date))
- .format(scope.options.modelFormat)) &&
- event.oldDate &&
- ['function'].includes(typeof scope.onChange()) &&
- $scope.onChange()
- )]
- ].map(([key, value]) => element.on(key, value));
- }
- };
- }
- ]);
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement