Socket
Socket
Sign inDemoInstall

angular-datetime-range

Package Overview
Dependencies
2
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.10 to 0.2.11

2

bower.json
{
"name": "angular-datetime-range",
"version": "0.2.10",
"version": "0.2.11",
"description": "UI widget for datetime range input, converted to an angular directive for your convenience.",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/g1eb/angular-datetime-range",

@@ -1,1 +0,1 @@

"use strict";angular.module("g1b.datetime-range",[]).directive("datetimeRange",["$document","$timeout",function(e,t){return{restrict:"E",scope:{start:"=",end:"=",presets:"=?",onChange:"&?",onChangeStart:"&?",onChangeEnd:"&?",onClose:"&?"},replace:!0,template:"<div class=datetime-range><div class=start-datetime ng-click=selectDate(start) ng-class=\"{'active': selected === start, 'warning': warning === 'start' }\"><div class=date ng-bind=\"start.format('DD MMMM YYYY')\"></div><div class=time ng-bind=\"start.format('HH : mm : ss')\"></div></div><div class=end-datetime ng-click=selectDate(end) ng-class=\"{'active': selected === end, 'warning': warning === 'end'}\"><div class=date ng-bind=\"end.format('DD MMMM YYYY')\"></div><div class=time ng-bind=\"end.format('HH : mm : ss')\"></div></div><div class=presets ng-show=!!presets><div class=dots ng-show=!presetsActive ng-click=\"presetsActive = !presetsActive\"><div class=dot ng-repeat=\"dot in '.....' track by $index\"></div></div><div class=list ng-class=\"{'active': !!presetsActive}\"><div class=preset-button ng-repeat=\"preset in presets\" ng-click=selectPreset(preset) ng-bind=preset.name></div></div></div><div class=edit-popover ng-show=!!selected><div class=calendar-toggle ng-class=\"{'start': selected === start, 'end': selected === end}\" ng-click=\"calendarActive = !calendarActive\" ng-bind=\"selected.format('DD MMMM YYYY')\"></div><div class=calendar ng-show=!!calendarActive><div class=calendar-header scroll-up=\"calendar.add(1, 'months')\" scroll-down=\"calendar.subtract(1, 'months')\"><div class=\"arrow arrow-left\" ng-click=\"calendar.subtract(1, 'months')\"></div><span ng-bind=\"calendar.format('YYYY') === current.format('YYYY') ? calendar.format('MMMM') : calendar.format('MMMM YYYY')\"></span><div class=\"arrow arrow-right\" ng-click=\"calendar.add(1, 'months')\"></div></div><div class=calendar-body><div class=weekdays><span class=weekday ng-repeat=\"weekday in 'weeeeek' track by $index\" ng-bind=\"calendar.clone().startOf('week').add($index, 'days').format('ddd')\"></span></div><div class=week ng-repeat=\"week in 'months' | limitTo: ((calendar.clone().endOf('month').endOf('week').diff(calendar.clone().startOf('month').startOf('week'), 'days') / 7) + 1) track by $index\"><span class=date ng-repeat=\"date in 'weeeeek' track by $index\" ng-class=\"{ 'current': calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).startOf('day').isSame(current.clone().startOf('day')), 'active': calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).startOf('day').isSame(selected.clone().startOf('day')), 'inactive': calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).month() !== calendar.month() }\" ng-click=\"setDate(selected.clone().year(calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).year()).month(calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).month()).date(calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).date()), true)\" ng-bind=\"calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).date()\"></span></div></div></div><div class=timer><div class=timer-hours scroll-up=\"setDate(selected.clone().add(1, 'hours'))\" scroll-down=\"setDate(selected.clone().subtract(1, 'hours'))\"><div class=\"arrow arrow-up\" ng-click=\"setDate(selected.clone().add(1, 'hours'))\"></div><span ng-bind=\"selected.format('HH')\"></span><div class=\"arrow arrow-down\" ng-click=\"setDate(selected.clone().subtract(1, 'hours'))\"></div></div><div class=timer-divider>:</div><div class=timer-minutes scroll-up=\"setDate(selected.clone().add(1, 'minutes'))\" scroll-down=\"setDate(selected.clone().subtract(1, 'minutes'))\"><div class=\"arrow arrow-up\" ng-click=\"setDate(selected.clone().add(1, 'minutes'))\"></div><span ng-bind=\"selected.format('mm')\"></span><div class=\"arrow arrow-down\" ng-click=\"setDate(selected.clone().subtract(1, 'minutes'))\"></div></div><div class=timer-divider>:</div><div class=timer-seconds scroll-up=\"setDate(selected.clone().add(1, 'seconds'))\" scroll-down=\"setDate(selected.clone().subtract(1, 'seconds'))\"><div class=\"arrow arrow-up\" ng-click=\"setDate(selected.clone().add(1, 'seconds'))\"></div><span ng-bind=\"selected.format('ss')\"></span><div class=\"arrow arrow-down\" ng-click=\"setDate(selected.clone().subtract(1, 'seconds'))\"></div></div></div><div class=close-button><div ng-click=close()>Close</div></div></div></div>",compile:function(){return{pre:function(){},post:function(n,a){n.current=moment(),n.selectDate=function(e){n.selected===e?n.selected=void 0:(n.selected=e,n.calendar=n.selected.clone(),n.presetsActive=!1)},n.setDate=function(e,a){n.selected.isSame(e)||(n.selected===n.start&&e<n.end||n.selected===n.end&&e>n.start?(n.selected.year(e.year()).month(e.month()).date(e.date()).hours(e.hours()).minutes(e.minutes()).seconds(e.seconds()),(n.selected.clone().startOf("week").month()!==n.calendar.month()&&n.selected.clone().endOf("week").month()!==n.calendar.month()||a)&&(n.calendar=n.selected.clone()),n.callback()):(n.warning=n.selected===n.start?"end":"start",t(function(){n.warning=void 0},250)))},n.selectPreset=function(e){n.selected&&n.selected===n.start?n.selected=e.start:n.selected&&n.selected===n.end&&(n.selected=e.end),n.start=e.start,n.end=e.end,n.presetsActive=!1,t(function(){n.callback(!0)})},n.callback=function(e){n.onChangeStart&&(e||n.selected===n.start)&&n.onChangeStart(),n.onChangeEnd&&(e||n.selected===n.end)&&n.onChangeEnd(),n.onChange&&n.onChange()},n.start&&!n.start._isAMomentObject&&(n.start=moment(n.start)),n.end&&!n.end._isAMomentObject&&(n.end=moment(n.end)),n.close=function(){n.selected="",n.presetsActive=!1,n.calendarActive=!1,n.onClose&&n.onClose()},e.on("mousedown",function(e){a[0].contains(e.target)||!n.presetsActive&&!n.selected||n.$apply(function(){n.close()})}),e.on("keyup",function(e){27===e.keyCode&&(n.presetsActive||n.selected)&&n.$apply(function(){n.close()})})}}}}}]),angular.module("g1b.datetime-range").directive("scrollUp",function(){return{restrict:"A",compile:function(){return{pre:function(){},post:function(e,t,n){t.bind("DOMMouseScroll mousewheel wheel",function(t){t=t.originalEvent||t;var a=t.wheelDelta||-1*t.deltaY||0;a>0&&(e.$apply(function(){e.$eval(n.scrollUp)}),t.preventDefault())})}}}}}),angular.module("g1b.datetime-range").directive("scrollDown",function(){return{restrict:"A",compile:function(){return{pre:function(){},post:function(e,t,n){t.bind("DOMMouseScroll mousewheel wheel",function(t){t=t.originalEvent||t;var a=t.wheelDelta||-1*t.deltaY||0;0>a&&(e.$apply(function(){e.$eval(n.scrollDown)}),t.preventDefault())})}}}}});
"use strict";angular.module("g1b.datetime-range",[]).directive("datetimeRange",["$document","$timeout",function(e,t){return{restrict:"E",scope:{start:"=",end:"=",presets:"=?",onChange:"&?",onChangeStart:"&?",onChangeEnd:"&?",onClose:"&?"},replace:!0,template:"<div class=datetime-range><div class=start-datetime ng-click=selectDate(start) ng-class=\"{'active': selected === start, 'warning': warning === 'start' }\"><div class=date ng-bind=\"start.format('DD MMMM YYYY')\"></div><div class=time ng-bind=\"start.format('HH : mm : ss')\"></div></div><div class=end-datetime ng-click=selectDate(end) ng-class=\"{'active': selected === end, 'warning': warning === 'end'}\"><div class=date ng-bind=\"end.format('DD MMMM YYYY')\"></div><div class=time ng-bind=\"end.format('HH : mm : ss')\"></div></div><div class=presets ng-show=!!presets><div class=dots ng-show=!presetsActive ng-click=\"presetsActive = !presetsActive\"><div class=dot ng-repeat=\"dot in '.....' track by $index\"></div></div><div class=list ng-class=\"{'active': !!presetsActive}\"><div class=preset-button ng-repeat=\"preset in presets\" ng-click=selectPreset(preset) ng-bind=preset.name></div></div></div><div class=edit-popover ng-show=!!selected><div class=calendar-toggle ng-class=\"{'start': selected === start, 'end': selected === end}\" ng-click=\"calendarActive = !calendarActive\" ng-bind=\"selected.format('DD MMMM YYYY')\"></div><div class=calendar ng-show=!!calendarActive><div class=calendar-header scroll-up=\"calendar.add(1, 'months')\" scroll-down=\"calendar.subtract(1, 'months')\"><div class=\"arrow arrow-left\" ng-click=\"calendar.subtract(1, 'months')\"></div><span ng-bind=\"calendar.format('YYYY') === current.format('YYYY') ? calendar.format('MMMM') : calendar.format('MMMM YYYY')\"></span><div class=\"arrow arrow-right\" ng-click=\"calendar.add(1, 'months')\"></div></div><div class=calendar-body><div class=weekdays><span class=weekday ng-repeat=\"weekday in 'weeeeek' track by $index\" ng-bind=\"calendar.clone().startOf('week').add($index, 'days').format('ddd')\"></span></div><div class=week ng-repeat=\"week in 'months' | limitTo: ((calendar.clone().endOf('month').endOf('week').diff(calendar.clone().startOf('month').startOf('week'), 'days') / 7) + 1) track by $index\"><span class=date ng-repeat=\"date in 'weeeeek' track by $index\" ng-class=\"{ 'current': calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).startOf('day').isSame(current.clone().startOf('day')), 'active': calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).startOf('day').isSame(selected.clone().startOf('day')), 'inactive': calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).month() !== calendar.month() }\" ng-click=\"setDate(selected.clone().year(calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).year()).month(calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).month()).date(calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).date()), true)\" ng-bind=\"calendar.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).date()\"></span></div></div></div><div class=timer><div class=timer-hours scroll-up=\"setDate(selected.clone().add(1, 'hours'))\" scroll-down=\"setDate(selected.clone().subtract(1, 'hours'))\"><div class=\"arrow arrow-up\" ng-click=\"setDate(selected.clone().add(1, 'hours'))\"></div><span ng-bind=\"selected.format('HH')\"></span><div class=\"arrow arrow-down\" ng-click=\"setDate(selected.clone().subtract(1, 'hours'))\"></div></div><div class=timer-divider>:</div><div class=timer-minutes scroll-up=\"setDate(selected.clone().add(1, 'minutes'))\" scroll-down=\"setDate(selected.clone().subtract(1, 'minutes'))\"><div class=\"arrow arrow-up\" ng-click=\"setDate(selected.clone().add(1, 'minutes'))\"></div><span ng-bind=\"selected.format('mm')\"></span><div class=\"arrow arrow-down\" ng-click=\"setDate(selected.clone().subtract(1, 'minutes'))\"></div></div><div class=timer-divider>:</div><div class=timer-seconds scroll-up=\"setDate(selected.clone().add(1, 'seconds'))\" scroll-down=\"setDate(selected.clone().subtract(1, 'seconds'))\"><div class=\"arrow arrow-up\" ng-click=\"setDate(selected.clone().add(1, 'seconds'))\"></div><span ng-bind=\"selected.format('ss')\"></span><div class=\"arrow arrow-down\" ng-click=\"setDate(selected.clone().subtract(1, 'seconds'))\"></div></div></div><div class=close-button><div ng-click=close()>Close</div></div></div></div>",compile:function(){return{pre:function(){},post:function(n,a){n.current=moment(),n.start&&!n.start._isAMomentObject&&(n.start=moment(n.start)),n.end&&!n.end._isAMomentObject&&(n.end=moment(n.end)),n.selectDate=function(e){n.selected===e?n.selected=void 0:(n.selected=e,n.calendar=n.selected.clone(),n.presetsActive=!1)},n.setDate=function(e,a){n.selected.isSame(e)||(n.selected===n.start&&e<n.end||n.selected===n.end&&e>n.start?(n.selected.year(e.year()).month(e.month()).date(e.date()).hours(e.hours()).minutes(e.minutes()).seconds(e.seconds()),(n.selected.clone().startOf("week").month()!==n.calendar.month()&&n.selected.clone().endOf("week").month()!==n.calendar.month()||a)&&(n.calendar=n.selected.clone()),n.selected===n.start&&n.callbackStart(),n.selected===n.end&&n.callbackEnd(),n.callbackAll()):(n.warning=n.selected===n.start?"end":"start",t(function(){n.warning=void 0},250)))},n.selectPreset=function(e){n.close(),n.start.isSame(e.start)&&n.end.isSame(e.end)||(n.start.isSame(e.start)||(n.start=e.start.clone(),n.callbackStart()),n.end.isSame(e.end)||(n.end=e.end.clone(),n.callbackEnd()),n.callbackAll())},n.callbackStart=function(){n.onChangeStart&&t(function(){n.onChangeStart()})},n.callbackEnd=function(){n.onChangeEnd&&t(function(){n.onChangeEnd()})},n.callbackAll=function(){n.onChange&&t(function(){n.onChange()})},n.close=function(){n.selected="",n.presetsActive=!1,n.calendarActive=!1,n.onClose&&n.onClose()},e.on("mousedown",function(e){a[0].contains(e.target)||!n.presetsActive&&!n.selected||n.$apply(function(){n.close()})}),e.on("keyup",function(e){27===e.keyCode&&(n.presetsActive||n.selected)&&n.$apply(function(){n.close()})})}}}}}]),angular.module("g1b.datetime-range").directive("scrollUp",function(){return{restrict:"A",compile:function(){return{pre:function(){},post:function(e,t,n){t.bind("DOMMouseScroll mousewheel wheel",function(t){t=t.originalEvent||t;var a=t.wheelDelta||-1*t.deltaY||0;a>0&&(e.$apply(function(){e.$eval(n.scrollUp)}),t.preventDefault())})}}}}}),angular.module("g1b.datetime-range").directive("scrollDown",function(){return{restrict:"A",compile:function(){return{pre:function(){},post:function(e,t,n){t.bind("DOMMouseScroll mousewheel wheel",function(t){t=t.originalEvent||t;var a=t.wheelDelta||-1*t.deltaY||0;0>a&&(e.$apply(function(){e.$eval(n.scrollDown)}),t.preventDefault())})}}}}});
{
"name": "angular-datetime-range",
"version": "0.2.10",
"version": "0.2.11",
"description": "UI widget for datetime range input, converted to an angular directive for your convenience.",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/g1eb/angular-datetime-range#readme",

@@ -27,2 +27,12 @@ 'use strict';

// Convert start datetime to moment.js if its not a moment object yet
if ( scope.start && !scope.start._isAMomentObject ) {
scope.start = moment(scope.start);
}
// Convert end datetime to moment.js if its not a moment object yet
if ( scope.end && !scope.end._isAMomentObject ) {
scope.end = moment(scope.end);
}
// Set selected date

@@ -47,3 +57,9 @@ scope.selectDate = function (date) {

}
scope.callback();
if ( scope.selected === scope.start ) {
scope.callbackStart();
}
if ( scope.selected === scope.end ) {
scope.callbackEnd();
}
scope.callbackAll();
} else {

@@ -59,39 +75,51 @@ scope.warning = ( scope.selected === scope.start ) ? 'end' : 'start';

scope.selectPreset = function (preset) {
if ( !!scope.selected && scope.selected === scope.start ) {
scope.selected = preset.start;
} else if ( !!scope.selected && scope.selected === scope.end ) {
scope.selected = preset.end;
// Hide presets menu on select
scope.close();
// Don't do anything if nothing is changed
if ( scope.start.isSame(preset.start) && scope.end.isSame(preset.end) ) { return; }
// Update start datetime object if changed
if ( !scope.start.isSame(preset.start) ) {
scope.start = preset.start.clone();
scope.callbackStart();
}
scope.start = preset.start;
scope.end = preset.end;
scope.presetsActive = false;
$timeout(function () {
scope.callback(true);
});
// Update end datetime object if changed
if ( !scope.end.isSame(preset.end) ) {
scope.end = preset.end.clone();
scope.callbackEnd();
}
// Something has definitely changed, fire ambiguous callback
scope.callbackAll();
};
// Callbacks fired on change of start and/or end datetime objects
scope.callback = function (allChanged) {
if ( !!scope.onChangeStart && (allChanged || scope.selected === scope.start) ) {
scope.onChangeStart();
// Callbacks fired on change of start datetime object
scope.callbackStart = function () {
if ( !!scope.onChangeStart ) {
$timeout(function () {
scope.onChangeStart();
});
}
if ( !!scope.onChangeEnd && (allChanged || scope.selected === scope.end) ) {
scope.onChangeEnd();
};
// Callbacks fired on change of end datetime object
scope.callbackEnd = function () {
if ( !!scope.onChangeEnd ) {
$timeout(function () {
scope.onChangeEnd();
});
}
};
// Callbacks fired on change of start and/or end datetime objects
scope.callbackAll = function () {
if ( !!scope.onChange ) {
scope.onChange();
$timeout(function () {
scope.onChange();
});
}
};
// Convert start datetime to moment.js if its not a moment object yet
if ( scope.start && !scope.start._isAMomentObject ) {
scope.start = moment(scope.start);
}
// Convert end datetime to moment.js if its not a moment object yet
if ( scope.end && !scope.end._isAMomentObject ) {
scope.end = moment(scope.end);
}
// Close edit popover

@@ -98,0 +126,0 @@ scope.close = function () {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc