From 7fc2252fbd7afb3e83b8c9567b7c06eb5c0de056 Mon Sep 17 00:00:00 2001 From: marhi Date: Fri, 10 Mar 2017 23:43:21 +0100 Subject: [PATCH 1/2] Less strict date selection checking --- bundles/ng-daterangepicker.umd.js | 2 +- config/webpack.config.dev.js | 2 +- src/ng-daterangepicker/ng-daterangepicker.component.ts | 9 ++++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/bundles/ng-daterangepicker.umd.js b/bundles/ng-daterangepicker.umd.js index 643298c..54052db 100644 --- a/bundles/ng-daterangepicker.umd.js +++ b/bundles/ng-daterangepicker.umd.js @@ -441,7 +441,7 @@ module.exports = function() { /* 8 */ /***/ (function(module, exports) { -module.exports = "
\n\n
\n Start\n {{ dateFrom | date:'yMd' }}\n \n \n \n \n \n \n \n
\n\n
\n End\n {{ dateTo | date:'yMd' }}\n \n \n \n \n \n \n \n
\n\n
\n
\n
\n \n \n \n \n \n \n {{ date | date:'MMMM y' }}\n \n \n \n \n \n \n
\n
\n {{ name }}\n
\n
\n
\n {{ d.day }}\n
\n
\n
\n
\n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n
\n
\n
\n" +module.exports = "
\r\n\r\n
\r\n Start\r\n {{ dateFrom | date:'yMd' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n End\r\n {{ dateTo | date:'yMd' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ date | date:'MMMM y' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ name }}\r\n
\r\n
\r\n
\r\n {{ d.day }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n" /***/ }), /* 9 */ diff --git a/config/webpack.config.dev.js b/config/webpack.config.dev.js index 56f0c5c..76f4964 100644 --- a/config/webpack.config.dev.js +++ b/config/webpack.config.dev.js @@ -72,7 +72,7 @@ module.exports = { devServer: { compress: true, historyApiFallback: true, - port: 8000, + port: 8007, open: true, hot: true, inline: true, diff --git a/src/ng-daterangepicker/ng-daterangepicker.component.ts b/src/ng-daterangepicker/ng-daterangepicker.component.ts index 183e06d..a472f46 100644 --- a/src/ng-daterangepicker/ng-daterangepicker.component.ts +++ b/src/ng-daterangepicker/ng-daterangepicker.component.ts @@ -146,9 +146,12 @@ export class NgDateRangePickerComponent implements ControlValueAccessor, OnInit selectDate(e: MouseEvent, index: number): void { e.preventDefault(); let selectedDate: Date = this.days[index].date; - if ((this.opened === 'from' && dateFns.isAfter(selectedDate, this.dateTo)) || - (this.opened === 'to' && dateFns.isBefore(selectedDate, this.dateFrom))) { - return; + if (this.opened === 'from' && dateFns.isAfter(selectedDate, this.dateTo)) { + this.dateTo = selectedDate; + } + + if ((this.opened === 'to' && dateFns.isBefore(selectedDate, this.dateFrom))) { + this.dateFrom = selectedDate; } if (this.opened === 'from') { From f60e70043c74648183df1d23b942ac0a32b84f0e Mon Sep 17 00:00:00 2001 From: marhi Date: Sat, 11 Mar 2017 00:18:51 +0100 Subject: [PATCH 2/2] Self adapting date ranges --- .gitignore | 2 +- .../ng-daterangepicker.component.ts | 25 +++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index db2fb52..ee17bee 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ aot/ **/*.js **/*.d.ts **/*.metadata.json - +bundles !config/**/*.js !config/**/*.json !bundles/**/*.js diff --git a/src/ng-daterangepicker/ng-daterangepicker.component.ts b/src/ng-daterangepicker/ng-daterangepicker.component.ts index a472f46..15075f9 100644 --- a/src/ng-daterangepicker/ng-daterangepicker.component.ts +++ b/src/ng-daterangepicker/ng-daterangepicker.component.ts @@ -149,21 +149,30 @@ export class NgDateRangePickerComponent implements ControlValueAccessor, OnInit if (this.opened === 'from' && dateFns.isAfter(selectedDate, this.dateTo)) { this.dateTo = selectedDate; } + if ((this.opened === 'to' && dateFns.isBefore(selectedDate, this.dateFrom))) { this.dateFrom = selectedDate; } - if (this.opened === 'from') { - this.dateFrom = selectedDate; - this.opened = 'to'; - } else if (this.opened === 'to') { + if (dateFns.isAfter(selectedDate, this.dateTo)) { + this.dateFrom = this.dateTo; this.dateTo = selectedDate; - this.opened = 'from'; - } + } - this.generateCalendar(); - } + if (dateFns.isBefore(selectedDate, this.dateFrom)) { + this.dateTo = this.dateFrom; + this.dateFrom = selectedDate; + } + + if (dateFns.isBefore(selectedDate, this.dateTo) && dateFns.isAfter(selectedDate, this.dateFrom)) { + this.opened === 'from' ? ( this.dateFrom = selectedDate, this.opened = 'to' ) : (this.dateTo = selectedDate, this.opened = 'from' ); + } + + this.generateCalendar(); + + +} prevMonth(): void { this.date = dateFns.subMonths(this.date, 1);