From 90464783a8c9c89661bd42e078c9e40588861262 Mon Sep 17 00:00:00 2001 From: Moe Alam Date: Sat, 19 Dec 2020 09:03:44 -0800 Subject: [PATCH] Update daterangepicker.js --- web/libs/js/daterangepicker.js | 39 ++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/web/libs/js/daterangepicker.js b/web/libs/js/daterangepicker.js index a6ea6c8b..5f7d304b 100644 --- a/web/libs/js/daterangepicker.js +++ b/web/libs/js/daterangepicker.js @@ -1,5 +1,5 @@ /** -* @version: 3.0.5 +* @version: 3.1 * @author: Dan Grossman http://www.dangrossman.info/ * @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved. * @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php @@ -11,7 +11,7 @@ // AMD. Make globaly available as well define(['moment', 'jquery'], function (moment, jquery) { if (!jquery.fn) jquery.fn = {}; // webpack server rendering - if (typeof moment !== 'function' && moment.default) moment = moment.default + if (typeof moment !== 'function' && moment.hasOwnProperty('default')) moment = moment['default'] return factory(moment, jquery); }); } else if (typeof module === 'object' && module.exports) { @@ -28,7 +28,7 @@ // Browser globals root.daterangepicker = factory(root.moment, root.jQuery); } -}(this, function(moment, $) { +}(typeof window !== 'undefined' ? window : this, function(moment, $) { var DateRangePicker = function(element, options, cb) { //default settings for options @@ -386,7 +386,7 @@ this.container.find('.drp-calendar.left').addClass('single'); this.container.find('.drp-calendar.left').show(); this.container.find('.drp-calendar.right').hide(); - if (!this.timePicker) { + if (!this.timePicker && this.autoApply) { this.container.addClass('auto-apply'); } } @@ -417,14 +417,14 @@ .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this)) .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this)) .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this)) - .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this)) + .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this)); this.container.find('.ranges') - .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this)) + .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this)); this.container.find('.drp-buttons') .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)) - .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this)) + .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this)); if (this.element.is('input') || this.element.is('button')) { this.element.on({ @@ -1023,7 +1023,9 @@ move: function() { var parentOffset = { top: 0, left: 0 }, - containerTop; + containerTop, + drops = this.drops; + var parentRightEdge = $(window).width(); if (!this.parentEl.is('body')) { parentOffset = { @@ -1033,10 +1035,21 @@ parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left; } - if (this.drops == 'up') - containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; - else + switch (drops) { + case 'auto': containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; + if (containerTop + this.container.outerHeight() >= this.parentEl[0].scrollHeight) { + containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; + drops = 'up'; + } + break; + case 'up': + containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; + break; + default: + containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; + break; + } // Force the container to it's actual width this.container.css({ @@ -1046,7 +1059,7 @@ }); var containerWidth = this.container.outerWidth(); - this.container[this.drops == 'up' ? 'addClass' : 'removeClass']('drop-up'); + this.container.toggleClass('drop-up', drops == 'up'); if (this.opens == 'left') { var containerRight = parentRightEdge - this.element.offset().left - this.element.outerWidth(); @@ -1341,7 +1354,7 @@ if (this.singleDatePicker) { this.setEndDate(this.startDate); - if (!this.timePicker) + if (!this.timePicker && this.autoApply) this.clickApply(); }