{"version":3,"file":"vendors--daterangepicker.chunk.js","mappings":"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","sources":["webpack:///./vendors/daterangepicker/daterangepicker.extend.js","webpack:///./vendors/daterangepicker/daterangepicker.js","webpack:///./vendors/daterangepicker/knockout.daterangepicker.js"],"sourcesContent":["global.moment = moment;\nglobal.$ = $;\nimport * as daterangepicker from 'Vendors/daterangepicker/daterangepicker';\nglobal.daterangepicker = daterangepicker;\n\nimport('Vendors/jquery.outerHTML');\n\n/**\n* @version: 3.0.5\n* @author: Dan Grossman http://www.dangrossman.info/\n* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\n* @website: http://www.daterangepicker.com/\n*/\n// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Make globaly available as well\n define(['moment', 'jquery'], function (root, moment, jquery) {\n if (!jquery.fn) jquery.fn = {}; // webpack server rendering\n if (typeof moment !== 'function' && moment.default) moment = moment.default\n return factory(root, moment, jquery);\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node / Browserify\n //isomorphic issue\n var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined;\n if (!jQuery) {\n jQuery = require('jquery');\n if (!jQuery.fn) jQuery.fn = {};\n }\n var moment = (typeof window != 'undefined' && typeof window.moment != 'undefined') ? window.moment : require('moment');\n module.exports = factory(root, moment, jQuery);\n } else {\n // Browser globals\n root.daterangepicker = factory(root, root.moment, root.$);\n }\n}(global, function (root, moment, $) {\n\n //var DateRangePicker = root.daterangepicker;\n\n function useModalDropDown() {\n //var bp_Width = $(window).width();\n var bp_Width = window.innerWidth > 0 ? window.innerWidth : window.screen.width;\n return bp_Width < 768;\n }\n\n function extend(base, sub, methods) {\n sub.prototype = Object.create(base.prototype);\n sub.prototype.constructor = sub;\n sub.base = base.prototype;\n\n // Copy the methods passed in to the prototype\n for (var name in methods) {\n sub.prototype[name] = methods[name];\n }\n // so we can define the constructor inline\n return sub;\n }\n\n var DateRangePicker = function (element, options, cb) {\n //console.log('>>> before DateRangePicker.base.constructor');\n // inherit from base constructor\n // Call the parent's constructor without hard coding the parent\n DateRangePicker.base.constructor.call(this, element, options, cb);\n //console.log('>>> after DateRangePicker.base.constructor');\n\n\n /*\n this.initStartDate = moment().startOf('day');\n //this.initEndDate = moment().endOf('day');\n \n if (typeof options.initStartDate === 'string')\n this.initStartDate = moment(options.initStartDate, this.locale.format);\n\n //if (typeof options.initEndDate === 'string')\n // this.initEndDate = moment(options.initEndDate, this.locale.format);\n\n if (typeof options.initStartDate === 'object')\n this.initStartDate = moment(options.initStartDate);\n\n //if (typeof options.initEndDate === 'object')\n // this.initEndDate = moment(options.initEndDate);\n */\n\n this.initDate = null; // moment().startOf('day');\n if (typeof options.initDate === 'string')\n this.initDate = moment(options.initDate, this.locale.format);\n if (typeof options.initDate === 'object')\n this.initDate = moment(options.initDate);\n\n if (typeof options.showNavigation === 'undefined') {\n this.showNavigation = true;\n } else {\n this.showNavigation = options.showNavigation;\n }\n\n if (typeof options.showMonthNavigation === 'undefined') {\n this.showMonthNavigation = true;\n } else {\n this.showMonthNavigation = options.showMonthNavigation;\n }\n\n if (typeof options.inline === 'undefined') {\n this.inline = false;\n } else {\n this.inline = options.inline;\n }\n\n\n if (typeof options.renderDateAttributes === 'function') {\n this.renderDateAttributes = options.renderDateAttributes;\n }\n if (typeof options.renderDateValue === 'function') {\n this.renderDateValue = options.renderDateValue;\n }\n this.updateElement();\n\n if (this.inline && this.alwaysShowCalendars) {\n this.show();\n }\n \n }\n\n extend(root.daterangepicker, DateRangePicker, {\n test_extra_method: function () {\n console.log('test_extra_method');\n return \"Ok\";\n }\n });\n\n\n //selectedDate\n\n /*\n DateRangePicker.prototype.constructor_original = DateRangePicker.prototype.constructor;\n DateRangePicker.prototype.constructor = function(element, options, cb) {\n if (typeof options.renderDateValue === 'function') {\n this.renderDateValue = options.renderDateValue;\n }\n this.updateElement();\n };\n */\n\n DateRangePicker.prototype.renderDateValue = function(date, classes, calendarIndex) { \n //console.log('prototype.renderDateValue', date);\n //debugger;\n return date.date(); \n };\n DateRangePicker.prototype.renderDateAttributes = function(date, classes, calendarIndex) { \n //console.log('prototype.renderAttributes', date);\n //debugger;\n return ''; \n };\n\n DateRangePicker.prototype.is_showNavigation = function() { \n let show_navigation = true;\n // if (typeof this.element.data().showNavigation === 'boolean') {\n // show_navigation = this.element.data().showNavigation;\n // }\n // if (typeof this.element.data().showNavigation === 'function') {\n // show_navigation = this.element.data().showNavigation();\n // }\n if (typeof this.showNavigation === 'boolean') {\n show_navigation = this.showNavigation;\n }\n if (typeof this.showNavigation === 'function') {\n show_navigation = this.showNavigation();\n }\n return show_navigation;\n };\n\n DateRangePicker.prototype.is_showMonthNavigation = function() { \n let show_month_navigation = true;\n // if (typeof this.element.data().showMonthNavigation === 'boolean') {\n // show_month_navigation = this.element.data().showMonthNavigation;\n // }\n // if (typeof this.element.data().showMonthNavigation === 'function') {\n // show_month_navigation = this.element.data().showMonthNavigation();\n // }\n if (typeof this.showMonthNavigation === 'boolean') {\n show_month_navigation = this.showMonthNavigation;\n }\n if (typeof this.showMonthNavigation === 'function') {\n show_month_navigation = this.showMonthNavigation();\n }\n return show_month_navigation;\n };\n\n DateRangePicker.prototype.initExtend = function () {\n this.numberOfMonths = this.singleDatePicker ? 1 : 2;\n this.calendarList = [];\n\n if (typeof this.element.data().numberOfMonths === 'number')\n this.numberOfMonths = this.element.data().numberOfMonths;\n\n if (typeof this.element.data().numberOfMonths === 'function')\n this.numberOfMonths = this.element.data().numberOfMonths();\n\n if (typeof this.element.data().hideOtherMonthDays === 'boolean')\n this.hideOtherMonthDays = this.element.data().hideOtherMonthDays;\n\n this.initCalendarList();\n };\n\n DateRangePicker.prototype.useCalendarList = function () {\n if (!this.numberOfMonths) this.initExtend();\n // 2022-04-22 disable original impl.\n if (this.inline) return true;\n return this.numberOfMonths > 1;\n };\n\n DateRangePicker.prototype.dateContainedInCalendarList = function (date) {\n for (var i = 0; i < this.numberOfMonths; i++) {\n if (this.calendarList[i].month) {\n if (this.calendarList[i].month.format('YYYY-MM') == date.format('YYYY-MM')) {\n return true;\n }\n }\n }\n return false;\n };\n\n DateRangePicker.prototype.updateEventListeners = function () {\n //\n // event listeners\n //\n this.container.find('.drp-calendar').off('.daterangepicker');\n this.container.find('.ranges').off('.daterangepicker');\n this.container.find('.drp-buttons').off('.daterangepicker');\n\n //$(document).on('click.daterangepicker', '.drp-calendar .prev', $.proxy(this.clickPrev, this))\n // .on('click.daterangepicker', '.drp-calendar .next', $.proxy(this.clickNext, this))\n // .on('mousedown.daterangepicker', '.drp-calendar td.available', $.proxy(this.clickDate, this))\n // .on('mouseenter.daterangepicker', '.drp-calendar td.available', $.proxy(this.hoverDate, this))\n // .on('change.daterangepicker', '.drp-calendar select.yearselect', $.proxy(this.monthOrYearChanged, this))\n // .on('change.daterangepicker', '.drp-calendar select.monthselect', $.proxy(this.monthOrYearChanged, this))\n // .on('change.daterangepicker', '.drp-calendar select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this));\n\n //$(document).on('click.daterangepicker', '.ranges li', $.proxy(this.clickRange, this));\n\n //$(document).on('click.daterangepicker', '.drp-buttons button.applyBtn', $.proxy(this.clickApply, this))\n // .on('click.daterangepicker', '.drp-buttons button.cancelBtn', $.proxy(this.clickCancel, this));\n\n this.container.find('.drp-calendar')\n .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this))\n .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this))\n .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this))\n .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this))\n .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this))\n .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this))\n .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this));\n\n this.container.find('.ranges')\n .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this));\n\n this.container.find('.drp-buttons')\n .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this))\n .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this));\n\n var _this = this;\n var resizer = function () {\n if (_this.isShowing) {\n _this.hide();\n _this.show();\n }\n };\n\n if (window.addEventListener) {\n window.addEventListener('resize', resizer);\n } else if (window.attachEvent) {\n window.attachEvent('onresize', resizer);\n }\n };\n\n DateRangePicker.prototype.updateTemplate = function () {\n // old version of clean up\n //this.container.find('.drp-calendar:not(.left)').remove();\n ///this.container.find('.drp-calendar').removeClass('left');\n //var calendarElement = this.container.find('.drp-calendar');\n // - - - - - -\n // new version of clean up\n var $calendars = this.container.find('.drp-calendar');\n if ($calendars.length > 1) {\n $calendars.slice(1).remove();\n }\n $calendars.removeClass('left');\n var calendarElement = this.container.find('.drp-calendar');\n // - - - - - -\n \n var calendarListHtml = '';\n for (var i = 0; i < this.numberOfMonths; i++) {\n let calendarElementClone = calendarElement.clone().attr(\"data-calendar-index\", i);\n if (!this.singleDatePicker || this.numberOfMonths > 1) {\n if (i == 0) {\n calendarElementClone.addClass('left');\n }\n if (i == this.numberOfMonths - 1) {\n calendarElementClone.addClass('right');\n }\n }\n calendarListHtml += calendarElementClone.outerHTML();\n }\n calendarElement.replaceWith(calendarListHtml);\n this.updateEventListeners();\n };\n\n DateRangePicker.prototype.initCalendarList = function () {\n var old_numberOfMonths = this.numberOfMonths;\n if (this.calendarList) {\n if (typeof this.element.data().numberOfMonths === 'function')\n this.numberOfMonths = this.element.data().numberOfMonths();\n if (this.calendarList.length == this.numberOfMonths && old_numberOfMonths == this.numberOfMonths) return;\n }\n this.updateTemplate();\n this.calendarList = [];\n for (var i = 0; i < this.numberOfMonths; i++) {\n this.calendarList[i] = {};\n }\n };\n\n DateRangePicker.prototype.useInitDate = function () {\n return this.initDate && this.initDate.isValid();\n };\n\n DateRangePicker.prototype.getInitDate = function () {\n if (this.useInitDate()) {\n return this.initDate;\n } else {\n return this.startDate.clone();\n }\n };\n\n DateRangePicker.prototype.setInitDate = function (initDate) {\n if (typeof initDate === 'string')\n this.initDate = moment(initDate, this.locale.format);\n\n if (typeof initDate === 'object')\n this.initDate = moment(initDate);\n\n /*\n if (this.startDate.isValid()) {\n this.container.find('.drp-selected-startDate .text').html(this.startDate.format(this.locale.format));\n this.container.find('.drp-selected-endDate .text').html(AppData.Translations[\"calendar_arrival_date\"]);\n this.container.find('.drp-selected-startDate .caption').removeClass(\"d-none\");\n this.container.find('.drp-selected-endDate .caption').addClass(\"d-none\");\n } else {\n this.container.find('.drp-selected-startDate .text').html(AppData.Translations[\"calendar_departure_date\"]);\n this.container.find('.drp-selected-endDate .text').html(AppData.Translations[\"calendar_arrival_date\"]);\n this.container.find('.drp-selected-startDate .caption').addClass(\"d-none\");\n this.container.find('.drp-selected-endDate .caption').addClass(\"d-none\");\n }\n if (!this.timePicker)\n this.startDate = this.startDate.startOf('day');\n\n if (this.timePicker && this.timePickerIncrement)\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n if (this.minDate && this.startDate.isBefore(this.minDate)) {\n this.startDate = this.minDate.clone();\n if (this.timePicker && this.timePickerIncrement)\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n }\n\n if (this.maxDate && this.startDate.isAfter(this.maxDate)) {\n this.startDate = this.maxDate.clone();\n if (this.timePicker && this.timePickerIncrement)\n this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n }\n */\n\n if (!this.isShowing)\n this.updateElement();\n\n this.updateMonthsInView();\n\n };\n\n DateRangePicker.prototype.setMinDate = function (minDate) {\n if (typeof minDate === 'string')\n this.minDate = moment(minDate, this.locale.format);\n\n if (typeof minDate === 'object')\n this.minDate = moment(minDate);\n\n if (!this.isShowing)\n this.updateElement();\n\n this.updateMonthsInView();\n\n };\n DateRangePicker.prototype.setMaxDate = function (maxDate) {\n if (typeof maxDate === 'string')\n this.maxDate = moment(maxDate, this.locale.format);\n\n if (typeof maxDate === 'object')\n this.maxDate = moment(maxDate);\n\n if (!this.isShowing)\n this.updateElement();\n\n this.updateMonthsInView();\n\n };\n\n\n DateRangePicker.prototype.setStartDate_original = DateRangePicker.prototype.setStartDate;\n DateRangePicker.prototype.setStartDate = function (startDate) {\n if (typeof startDate === 'string')\n this.startDate = moment(startDate, this.locale.format);\n\n if (typeof startDate === 'object')\n this.startDate = moment(startDate);\n\n if (this.startDate.isValid()) {\n this.container.find('.drp-selected-startDate .text').html(this.startDate.format(this.locale.format));\n this.container.find('.drp-selected-endDate .text').html(AppData.Translations[\"calendar_arrival_date\"]);\n this.container.find('.drp-selected-startDate .caption').removeClass(\"d-none\");\n this.container.find('.drp-selected-endDate .caption').addClass(\"d-none\");\n } else {\n this.container.find('.drp-selected-startDate .text').html(AppData.Translations[\"calendar_departure_date\"]);\n this.container.find('.drp-selected-endDate .text').html(AppData.Translations[\"calendar_arrival_date\"]);\n this.container.find('.drp-selected-startDate .caption').addClass(\"d-none\");\n this.container.find('.drp-selected-endDate .caption').addClass(\"d-none\");\n }\n if (!this.timePicker)\n this.startDate = this.startDate.startOf('day');\n\n if (this.timePicker && this.timePickerIncrement)\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n if (this.minDate && this.startDate.isBefore(this.minDate)) {\n this.startDate = this.minDate.clone();\n if (this.timePicker && this.timePickerIncrement)\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n }\n\n if (this.maxDate && this.startDate.isAfter(this.maxDate)) {\n this.startDate = this.maxDate.clone();\n if (this.timePicker && this.timePickerIncrement)\n this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n }\n\n if (!this.isShowing)\n this.updateElement();\n\n this.updateMonthsInView();\n\n };\n\n DateRangePicker.prototype.setEndDate_original = DateRangePicker.prototype.setEndDate;\n DateRangePicker.prototype.setEndDate = function (endDate) {\n if (typeof endDate === 'string')\n this.endDate = moment(endDate, this.locale.format);\n\n if (typeof endDate === 'object')\n this.endDate = moment(endDate);\n\n if (this.endDate.isValid()) {\n this.container.find('.drp-selected-endDate .text').html(this.endDate.format(this.locale.format));\n this.container.find('.drp-selected-startDate .caption').removeClass(\"d-none\");\n this.container.find('.drp-selected-endDate .caption').removeClass(\"d-none\");\n } else {\n this.container.find('.drp-selected-endDate .text').html(AppData.Translations[\"calendar_arrival_date\"]);\n this.container.find('.drp-selected-startDate .caption').addClass(\"d-none\");\n this.container.find('.drp-selected-endDate .caption').addClass(\"d-none\");\n }\n\n if (!this.timePicker)\n this.endDate = this.endDate.endOf('day');\n\n if (this.timePicker && this.timePickerIncrement)\n this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n if (this.endDate.isBefore(this.startDate))\n this.endDate = this.startDate.clone();\n\n if (this.maxDate && this.endDate.isAfter(this.maxDate))\n this.endDate = this.maxDate.clone();\n\n if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate))\n this.endDate = this.startDate.clone().add(this.maxSpan);\n\n this.previousRightTime = this.endDate.clone();\n\n this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n\n if (!this.isShowing)\n this.updateElement();\n\n this.updateMonthsInView();\n };\n\n DateRangePicker.prototype.showCalendars_original = DateRangePicker.prototype.showCalendars;\n DateRangePicker.prototype.showCalendars = function () {\n this.container.addClass('show-calendar');\n this.element.trigger('showCalendar.daterangepicker', this);\n };\n\n DateRangePicker.prototype.updateMonthsInView_original = DateRangePicker.prototype.updateMonthsInView;\n DateRangePicker.prototype.updateMonthsInView = function () {\n if (this.useCalendarList()) {\n var startDate = (!this.inline && useModalDropDown()) ? moment().startOf('day') : this.getInitDate().clone().date(2);\n\n if (this.endDate) {\n\n //if both dates are visible already, do nothing\n if (!this.singleDatePicker\n && this.dateContainedInCalendarList(this.startDate)\n && this.dateContainedInCalendarList(this.endDate)\n ) {\n return;\n }\n\n if (this.singleDatePicker && this.inline) {\n // hotfix: avoid calenar's moving\n\n /*\n this.calendarList[0].month = startDate.clone().date(2);\n for (var i = 1; i < this.numberOfMonths; i++) {\n this.calendarList[i].month = startDate.clone().date(2).add(i, 'month');\n }\n */\n var hasMonths = true;\n for (var i = 0; i < this.numberOfMonths; i++) {\n hasMonths = hasMonths && this.calendarList[i].month != null;\n }\n\n //if (hasMonths)\n // return;\n\n //if both dates are visible already, do nothing\n if (this.dateContainedInCalendarList(this.startDate) && this.dateContainedInCalendarList(this.endDate)) {\n return;\n }\n }\n\n this.calendarList[0].month = startDate.clone().date(2);\n if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {\n this.calendarList[1].month = this.endDate.clone().date(2);\n } else {\n for (var i = 1; i < this.numberOfMonths; i++) {\n this.calendarList[i].month = startDate.clone().date(2).add(i, 'month');\n }\n }\n\n } else {\n if (this.singleDatePicker && this.inline) {\n // hotfix: avoid calenar's moving\n return;\n }\n\n if (!this.dateContainedInCalendarList(this.startDate)) {\n this.calendarList[0].month = startDate.clone().date(2);\n for (var i = 1; i < this.numberOfMonths; i++) {\n this.calendarList[i].month = startDate.clone().date(2).add(i, 'month');\n }\n }\n }\n } else {\n this.updateMonthsInView_original();\n }\n };\n\n DateRangePicker.prototype.updateCalendars_original = DateRangePicker.prototype.updateCalendars;\n DateRangePicker.prototype.updateCalendars = function () {\n if (this.useCalendarList()) {\n this.renderCalendarList();\n //highlight any predefined range matching the current start and end dates\n this.container.find('.ranges li').removeClass('active');\n if (this.endDate == null) return;\n this.calculateChosenLabel();\n } else {\n if (this.useCalendarList() === undefined) return;\n this.updateCalendars_original();\n }\n };\n\n DateRangePicker.prototype.renderCalendarList = function () {\n if (this.useCalendarList()) {\n let is_showNavigation = this.is_showNavigation();\n let is_showMonthNavigation = this.is_showMonthNavigation();\n for (var index = 0; index < this.numberOfMonths; index++) {\n var month = this.calendarList[index].month.month();\n var year = this.calendarList[index].month.year();\n var hour = this.calendarList[index].month.hour();\n var minute = this.calendarList[index].month.minute();\n var second = this.calendarList[index].month.second();\n var daysInMonth = moment([year, month]).daysInMonth();\n var firstDay = moment([year, month, 1]);\n var lastDay = moment([year, month, daysInMonth]);\n var lastMonth = moment(firstDay).subtract(1, 'month').month();\n var lastYear = moment(firstDay).subtract(1, 'month').year();\n var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();\n var dayOfWeek = firstDay.day();\n\n //initialize a 6 rows x 7 columns array for the calendar\n var calendar = [];\n calendar.firstDay = firstDay;\n calendar.lastDay = lastDay;\n\n for (var i = 0; i < 6; i++) {\n calendar[i] = [];\n }\n\n //populate the calendar with date objects\n var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;\n if (startDay > daysInLastMonth)\n startDay -= 7;\n\n if (dayOfWeek == this.locale.firstDay)\n startDay = daysInLastMonth - 6;\n\n var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\n\n var col, row;\n for (var i = 0, col = 0, row = 0; i < 42; i++ , col++ , curDate = moment(curDate).add(24, 'hour')) {\n if (i > 0 && col % 7 === 0) {\n col = 0;\n row++;\n }\n calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);\n curDate.hour(12);\n\n if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && index == 0) {\n calendar[row][col] = this.minDate.clone();\n }\n\n if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && index == this.numberOfMonths - 1) {\n calendar[row][col] = this.maxDate.clone();\n }\n\n }\n this.calendarList[index].calendar = calendar;\n\n //\n // Display the calendar\n //\n\n\n var minDate = index == 0 ? this.minDate : this.startDate;\n var maxDate = this.maxDate;\n var selected = index == 0 ? this.startDate : this.endDate;\n var arrow = this.locale.direction == 'ltr' ? { left: 'chevron-left', right: 'chevron-right' } : { left: 'chevron-right', right: 'chevron-left' };\n\n var html = '';\n html += '';\n var attrYear = calendar[1][1].year();\n var attrMonth = calendar[1][1].month();\n var attrMonthTitle = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(\" YYYY\");\n html += '';\n if (is_showMonthNavigation) {\n html += '';\n\n // add empty cell for week number\n if (this.showWeekNumbers || this.showISOWeekNumbers)\n html += '';\n\n if (is_showNavigation && (!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || index == 0)) {\n html += '';\n } else {\n html += '';\n }\n\n var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(\" YYYY\");\n\n if (this.showDropdowns) {\n var currentMonth = calendar[1][1].month();\n var currentYear = calendar[1][1].year();\n var maxYear = (maxDate && maxDate.year()) || (this.maxYear);\n var minYear = (minDate && minDate.year()) || (this.minYear);\n var inMinYear = currentYear == minYear;\n var inMaxYear = currentYear == maxYear;\n\n var monthHtml = '\";\n\n var yearHtml = '';\n\n dateHtml = monthHtml + yearHtml;\n }\n\n html += '';\n if (is_showNavigation && (!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || index == this.numberOfMonths - 1 || this.singleDatePicker)) {\n html += '';\n } else {\n html += '';\n }\n\n html += '';\n }\n html += '';\n\n // add week number label\n if (this.showWeekNumbers || this.showISOWeekNumbers)\n html += '';\n\n $.each(this.locale.daysOfWeek, function (index, dayOfWeek) {\n html += '';\n });\n\n html += '';\n html += '';\n html += '';\n\n //adjust maxDate to reflect the maxSpan setting in order to\n //grey out end dates beyond the maxSpan\n if (this.endDate == null && this.maxSpan) {\n var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day');\n if (!maxDate || maxLimit.isBefore(maxDate)) {\n maxDate = maxLimit;\n }\n }\n\n for (var row = 0; row < 6; row++) {\n var weekHtml = '';\n var weekClass = '';\n var hasCurrentMonthDays = false;\n // add week number\n if (this.showWeekNumbers)\n weekHtml += '';\n else if (this.showISOWeekNumbers)\n weekHtml += '';\n\n for (var col = 0; col < 7; col++) {\n\n var classes = [];\n\n //highlight today's date\n if (calendar[row][col].isSame(new Date(), \"day\"))\n classes.push('today');\n\n //highlight weekends\n if (calendar[row][col].isoWeekday() > 5)\n classes.push('weekend');\n\n //grey out the dates in other months displayed at beginning and end of this calendar\n if (calendar[row][col].month() != calendar[1][1].month()) {\n if (this.hideOtherMonthDays) {\n classes.push('off', 'ends', 'invisible');\n } else {\n classes.push('off', 'ends');\n }\n } else {\n hasCurrentMonthDays = true;\n }\n\n //don't allow selection of dates before the minimum date\n if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day'))\n classes.push('off', 'disabled');\n\n //don't allow selection of dates after the maximum date\n if (maxDate && calendar[row][col].isAfter(maxDate, 'day'))\n classes.push('off', 'disabled');\n\n //don't allow selection of date if a custom function decides it's invalid\n if (this.isInvalidDate(calendar[row][col]))\n classes.push('off', 'disabled');\n\n //highlight the currently selected start date\n if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD'))\n classes.push('active', 'start-date');\n\n //highlight the currently selected end date\n if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD'))\n classes.push('active', 'end-date');\n\n //highlight dates in-between the selected dates\n if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate)\n classes.push('in-range');\n\n //apply custom classes for this date\n var isCustom = this.isCustomDate(calendar[row][col]);\n if (isCustom !== false) {\n if (typeof isCustom === 'string')\n classes.push(isCustom);\n else\n Array.prototype.push.apply(classes, isCustom);\n }\n\n // renderDateValue\n var htmlDate = '';\n if (typeof this.renderDateValue == \"function\") {\n htmlDate = this.renderDateValue(calendar[row][col], classes, index);\n } else {\n htmlDate = calendar[row][col].date();\n }\n\n var attrDate = '';\n if (typeof this.renderDateAttributes == \"function\") {\n attrDate = this.renderDateAttributes(calendar[row][col], classes, index);\n }\n if (attrDate == null || typeof attrDate == \"undefined\") {\n attrDate = '';\n }\n\n\n var cname = '', disabled = false;\n for (var i = 0; i < classes.length; i++) {\n cname += classes[i] + ' ';\n if (classes[i] == 'disabled')\n disabled = true;\n }\n if (!disabled)\n cname += 'available';\n\n // using renderDateValue\n weekHtml += '';\n\n }\n weekClass = (!hasCurrentMonthDays && this.hideOtherMonthDays) ? \"d-none\" : \"\";\n html += '' + weekHtml + '';\n }\n\n html += '';\n html += '
' + dateHtml + '
' + this.locale.weekLabel + '' + dayOfWeek + '
' + calendar[row][0].week() + '' + calendar[row][0].isoWeek() + '' + htmlDate + '
';\n\n this.container.find('[data-calendar-index=\"' + index + '\"] .calendar-table').html(html);\n\n }\n }\n };\n\n DateRangePicker.base.move_original = DateRangePicker.base.move;\n DateRangePicker.base.move = function () {\n if (this.inline) {\n this.container.removeClass('opens' + this.opens)\n /*\n this.container.css('top','');\n this.container.css('left','');\n this.container.css('right','');\n this.container.css('position','relative');\n this.container.css('top',0);\n this.container.css('left',0);\n this.container.css('right','auto');\n */\n } else {\n this.container.addClass('opens' + this.opens)\n this.container.css('position','');\n this.move_original();\n }\n };\n\n DateRangePicker.prototype.show_original = DateRangePicker.prototype.show;\n DateRangePicker.prototype.show = function () {\n if (this.useCalendarList()) {\n this.initCalendarList();\n this.show_original();\n } else {\n this.show_original();\n }\n };\n\n DateRangePicker.base.outsideClick_original = DateRangePicker.base.outsideClick;\n DateRangePicker.base.outsideClick = function (e) {\n if (this.inline) {\n // ...\n } else {\n this.outsideClick_original(e);\n }\n };\n \n\n DateRangePicker.prototype.hoverDate_original = DateRangePicker.prototype.hoverDate;\n DateRangePicker.prototype.hoverDate = function (e) {\n if (this.useCalendarList()) {\n //ignore dates that can't be selected\n if (!$(e.target).hasClass('available')) return;\n\n var title = $(e.target).attr('data-title');\n var row = title.substr(1, 1);\n var col = title.substr(3, 1);\n var cal = $(e.target).parents('.drp-calendar');\n var index = cal.data(\"calendar-index\");\n if (index == undefined) return;\n var date = this.calendarList[index].calendar[row][col];\n var calendarList = this.calendarList;\n var startDate = this.startDate;\n\n if (!this.endDate) {\n this.container.find('.drp-calendar tbody td').each(function (i, el) {\n\n //skip week numbers, only look at dates\n if ($(el).hasClass('week')) return;\n\n var title = $(el).attr('data-title');\n var row = title.substr(1, 1);\n var col = title.substr(3, 1);\n var cal = $(el).parents('.drp-calendar');\n var index = cal.data(\"calendar-index\");\n var dt = calendarList[index].calendar[row][col];\n if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) {\n $(el).addClass('in-range');\n } else {\n $(el).removeClass('in-range');\n }\n });\n }\n } else {\n this.hoverDate_original(e);\n }\n };\n\n DateRangePicker.prototype.clickDate_original = DateRangePicker.prototype.clickDate;\n DateRangePicker.prototype.clickDate = function (e) {\n /*\n 1 = Left mouse button\n 2 = Centre mouse button\n 3 = Right mouse button\n */\n if (e.which !== 1) {\n // avoid none Left-Mouse-Button click\n return;\n }\n\n if (this.useCalendarList()) {\n if (!$(e.target).hasClass('available')) return;\n\n var title = $(e.target).attr('data-title');\n var row = title.substr(1, 1);\n var col = title.substr(3, 1);\n var cal = $(e.target).parents('.drp-calendar');\n var index = cal.data(\"calendar-index\");\n if (index == undefined) return;\n var date = this.calendarList[index].calendar[row][col];\n\n //\n // this function needs to do a few things:\n // * alternate between selecting a start and end date for the range,\n // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date\n // * if autoapply is enabled, and an end date was chosen, apply the selection\n // * if single date picker mode, and time picker isn't enabled, apply the selection immediately\n // * if one of the inputs above the calendars was focused, cancel that manual input\n //\n\n if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start\n if (this.timePicker) {\n var hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.left .ampmselect').val();\n if (ampm === 'PM' && hour < 12)\n hour += 12;\n if (ampm === 'AM' && hour === 12)\n hour = 0;\n }\n var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\n }\n var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n date = date.clone().hour(hour).minute(minute).second(second);\n }\n this.endDate = null;\n this.setStartDate(date.clone());\n } else if (!this.endDate && date.isBefore(this.startDate)) {\n //special case: clicking the same date for start/end,\n //but the time of the end date is before the start date\n this.setEndDate(this.startDate.clone());\n } else { // picking end\n if (this.timePicker) {\n var hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.right .ampmselect').val();\n if (ampm === 'PM' && hour < 12)\n hour += 12;\n if (ampm === 'AM' && hour === 12)\n hour = 0;\n }\n var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\n }\n var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n date = date.clone().hour(hour).minute(minute).second(second);\n }\n this.setEndDate(date.clone());\n if (this.autoApply) {\n this.calculateChosenLabel();\n this.clickApply();\n }\n }\n\n if (this.singleDatePicker) {\n this.setEndDate(this.startDate);\n if (!this.timePicker)\n this.clickApply();\n }\n\n this.updateView();\n\n //This is to cancel the blur event handler if the mouse was in one of the inputs\n e.stopPropagation();\n \n } else {\n this.clickDate_original(e);\n }\n };\n \n DateRangePicker.prototype.clickPrev_original = DateRangePicker.prototype.clickPrev;\n DateRangePicker.prototype.clickPrev = function (e) {\n if (this.useCalendarList()) {\n for (var i = 0; i < this.numberOfMonths; i++) {\n this.calendarList[i].month.subtract(1, 'month');\n }\n this.updateCalendars();\n } else {\n this.clickPrev_original(e);\n }\n this.element.trigger('prevMonth.daterangepicker', this);\n };\n\n DateRangePicker.prototype.clickNext_original = DateRangePicker.prototype.clickNext;\n DateRangePicker.prototype.clickNext = function (e) {\n if (this.useCalendarList()) {\n for (var i = 0; i < this.numberOfMonths; i++) {\n this.calendarList[i].month.add(1, 'month');\n }\n this.updateCalendars();\n } else {\n this.clickNext_original(e);\n }\n this.element.trigger('nextMonth.daterangepicker', this);\n };\n\n DateRangePicker.base.clickApply_original = DateRangePicker.base.clickApply;\n DateRangePicker.base.clickApply = function (e) {\n if (!this.inline) {\n this.hide();\n }\n this.element.trigger('apply.daterangepicker', this);\n },\n\n DateRangePicker.base.clickCancel_original = DateRangePicker.base.clickCancel;\n DateRangePicker.base.clickCancel = function (e) {\n this.startDate = this.oldStartDate;\n this.endDate = this.oldEndDate;\n if (!this.inline) {\n this.hide();\n }\n this.element.trigger('cancel.daterangepicker', this);\n },\n\n $.fn.daterangepicker = function(options, callback) {\n var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options);\n this.each(function() {\n var el = $(this);\n if (el.data('daterangepicker'))\n el.data('daterangepicker').remove();\n el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback));\n });\n return this;\n };\n\n return DateRangePicker;\n}));","/**\n* @version: 3.0.5\n* @author: Dan Grossman http://www.dangrossman.info/\n* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\n* @website: http://www.daterangepicker.com/\n*/\n// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Make globaly available as well\n define(['moment', 'jquery'], function (moment, jquery) {\n if (!jquery.fn) jquery.fn = {}; // webpack server rendering\n if (typeof moment !== 'function' && moment.default) moment = moment.default\n return factory(moment, jquery);\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node / Browserify\n //isomorphic issue\n var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined;\n if (!jQuery) {\n jQuery = require('jquery');\n if (!jQuery.fn) jQuery.fn = {};\n }\n var moment = (typeof window != 'undefined' && typeof window.moment != 'undefined') ? window.moment : require('moment');\n module.exports = factory(moment, jQuery);\n } else {\n // Browser globals\n root.daterangepicker = factory(root.moment, root.jQuery);\n }\n}(this, function(moment, $) {\n var DateRangePicker = function(element, options, cb) {\n\n //default settings for options\n this.parentEl = 'body';\n this.element = $(element);\n this.startDate = moment().startOf('day');\n this.endDate = moment().endOf('day');\n this.minDate = false;\n this.maxDate = false;\n this.maxSpan = false;\n this.autoApply = false;\n this.singleDatePicker = false;\n this.showDropdowns = false;\n this.minYear = moment().subtract(100, 'year').format('YYYY');\n this.maxYear = moment().add(100, 'year').format('YYYY');\n this.showWeekNumbers = false;\n this.showISOWeekNumbers = false;\n this.showCustomRangeLabel = true;\n this.timePicker = false;\n this.timePicker24Hour = false;\n this.timePickerIncrement = 1;\n this.timePickerSeconds = false;\n this.linkedCalendars = true;\n this.autoUpdateInput = true;\n this.alwaysShowCalendars = false;\n this.ranges = {};\n\n this.opens = 'right';\n if (this.element.hasClass('pull-right'))\n this.opens = 'left';\n\n this.drops = 'down';\n if (this.element.hasClass('dropup'))\n this.drops = 'up';\n\n this.buttonClasses = 'btn btn-sm';\n this.applyButtonClasses = 'btn-primary';\n this.cancelButtonClasses = 'btn-default';\n\n this.locale = {\n direction: 'ltr',\n format: moment.localeData().longDateFormat('L'),\n separator: ' - ',\n applyLabel: 'Apply',\n cancelLabel: 'Cancel',\n weekLabel: 'W',\n customRangeLabel: 'Custom Range',\n daysOfWeek: moment.weekdaysMin(),\n monthNames: moment.monthsShort(),\n firstDay: moment.localeData().firstDayOfWeek()\n };\n\n this.callback = function() { };\n\n //some state information\n this.isShowing = false;\n this.leftCalendar = {};\n this.rightCalendar = {};\n\n //custom options from user\n if (typeof options !== 'object' || options === null)\n options = {};\n\n //allow setting options with data attributes\n //data-api options will be overwritten with custom javascript options\n options = $.extend(this.element.data(), options);\n\n //html template for the picker UI\n if (typeof options.template !== 'string' && !(options.template instanceof $))\n options.template =\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '' +\n '' +\n ' ' +\n '
' +\n '
';\n\n this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl);\n this.container = $(options.template).appendTo(this.parentEl);\n\n //\n // handle all the possible options overriding defaults\n //\n\n if (typeof options.locale === 'object') {\n\n if (typeof options.locale.direction === 'string')\n this.locale.direction = options.locale.direction;\n\n if (typeof options.locale.format === 'string')\n this.locale.format = options.locale.format;\n\n if (typeof options.locale.separator === 'string')\n this.locale.separator = options.locale.separator;\n\n if (typeof options.locale.daysOfWeek === 'object')\n this.locale.daysOfWeek = options.locale.daysOfWeek.slice();\n\n if (typeof options.locale.monthNames === 'object')\n this.locale.monthNames = options.locale.monthNames.slice();\n\n if (typeof options.locale.firstDay === 'number')\n this.locale.firstDay = options.locale.firstDay;\n\n if (typeof options.locale.applyLabel === 'string')\n this.locale.applyLabel = options.locale.applyLabel;\n\n if (typeof options.locale.cancelLabel === 'string')\n this.locale.cancelLabel = options.locale.cancelLabel;\n\n if (typeof options.locale.weekLabel === 'string')\n this.locale.weekLabel = options.locale.weekLabel;\n\n if (typeof options.locale.customRangeLabel === 'string'){\n //Support unicode chars in the custom range name.\n var elem = document.createElement('textarea');\n elem.innerHTML = options.locale.customRangeLabel;\n var rangeHtml = elem.value;\n this.locale.customRangeLabel = rangeHtml;\n }\n }\n this.container.addClass(this.locale.direction);\n\n if (typeof options.startDate === 'string')\n this.startDate = moment(options.startDate, this.locale.format);\n\n if (typeof options.endDate === 'string')\n this.endDate = moment(options.endDate, this.locale.format);\n\n if (typeof options.minDate === 'string')\n this.minDate = moment(options.minDate, this.locale.format);\n\n if (typeof options.maxDate === 'string')\n this.maxDate = moment(options.maxDate, this.locale.format);\n\n if (typeof options.startDate === 'object')\n this.startDate = moment(options.startDate);\n\n if (typeof options.endDate === 'object')\n this.endDate = moment(options.endDate);\n\n if (typeof options.minDate === 'object')\n this.minDate = moment(options.minDate);\n\n if (typeof options.maxDate === 'object')\n this.maxDate = moment(options.maxDate);\n\n // sanity check for bad options\n if (this.minDate && this.startDate.isBefore(this.minDate))\n this.startDate = this.minDate.clone();\n\n // sanity check for bad options\n if (this.maxDate && this.endDate.isAfter(this.maxDate))\n this.endDate = this.maxDate.clone();\n\n if (typeof options.applyButtonClasses === 'string')\n this.applyButtonClasses = options.applyButtonClasses;\n\n if (typeof options.applyClass === 'string') //backwards compat\n this.applyButtonClasses = options.applyClass;\n\n if (typeof options.cancelButtonClasses === 'string')\n this.cancelButtonClasses = options.cancelButtonClasses;\n\n if (typeof options.cancelClass === 'string') //backwards compat\n this.cancelButtonClasses = options.cancelClass;\n\n if (typeof options.maxSpan === 'object')\n this.maxSpan = options.maxSpan;\n\n if (typeof options.dateLimit === 'object') //backwards compat\n this.maxSpan = options.dateLimit;\n\n if (typeof options.opens === 'string')\n this.opens = options.opens;\n\n if (typeof options.drops === 'string')\n this.drops = options.drops;\n\n if (typeof options.showWeekNumbers === 'boolean')\n this.showWeekNumbers = options.showWeekNumbers;\n\n if (typeof options.showISOWeekNumbers === 'boolean')\n this.showISOWeekNumbers = options.showISOWeekNumbers;\n\n if (typeof options.buttonClasses === 'string')\n this.buttonClasses = options.buttonClasses;\n\n if (typeof options.buttonClasses === 'object')\n this.buttonClasses = options.buttonClasses.join(' ');\n\n if (typeof options.showDropdowns === 'boolean')\n this.showDropdowns = options.showDropdowns;\n\n if (typeof options.minYear === 'number')\n this.minYear = options.minYear;\n\n if (typeof options.maxYear === 'number')\n this.maxYear = options.maxYear;\n\n if (typeof options.showCustomRangeLabel === 'boolean')\n this.showCustomRangeLabel = options.showCustomRangeLabel;\n\n if (typeof options.singleDatePicker === 'boolean') {\n this.singleDatePicker = options.singleDatePicker;\n if (this.singleDatePicker)\n this.endDate = this.startDate.clone();\n }\n\n if (typeof options.timePicker === 'boolean')\n this.timePicker = options.timePicker;\n\n if (typeof options.timePickerSeconds === 'boolean')\n this.timePickerSeconds = options.timePickerSeconds;\n\n if (typeof options.timePickerIncrement === 'number')\n this.timePickerIncrement = options.timePickerIncrement;\n\n if (typeof options.timePicker24Hour === 'boolean')\n this.timePicker24Hour = options.timePicker24Hour;\n\n if (typeof options.autoApply === 'boolean')\n this.autoApply = options.autoApply;\n\n if (typeof options.autoUpdateInput === 'boolean')\n this.autoUpdateInput = options.autoUpdateInput;\n\n if (typeof options.linkedCalendars === 'boolean')\n this.linkedCalendars = options.linkedCalendars;\n\n if (typeof options.isInvalidDate === 'function')\n this.isInvalidDate = options.isInvalidDate;\n\n if (typeof options.isCustomDate === 'function')\n this.isCustomDate = options.isCustomDate;\n\n if (typeof options.alwaysShowCalendars === 'boolean')\n this.alwaysShowCalendars = options.alwaysShowCalendars;\n\n // update day names order to firstDay\n if (this.locale.firstDay != 0) {\n var iterator = this.locale.firstDay;\n while (iterator > 0) {\n this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());\n iterator--;\n }\n }\n\n var start, end, range;\n\n //if no start/end dates set, check if an input element contains initial values\n if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') {\n if ($(this.element).is(':text')) {\n var val = $(this.element).val(),\n split = val.split(this.locale.separator);\n\n start = end = null;\n\n if (split.length == 2) {\n start = moment(split[0], this.locale.format);\n end = moment(split[1], this.locale.format);\n } else if (this.singleDatePicker && val !== \"\") {\n start = moment(val, this.locale.format);\n end = moment(val, this.locale.format);\n }\n if (start !== null && end !== null) {\n this.setStartDate(start);\n this.setEndDate(end);\n }\n }\n }\n\n if (typeof options.ranges === 'object') {\n for (range in options.ranges) {\n\n if (typeof options.ranges[range][0] === 'string')\n start = moment(options.ranges[range][0], this.locale.format);\n else\n start = moment(options.ranges[range][0]);\n\n if (typeof options.ranges[range][1] === 'string')\n end = moment(options.ranges[range][1], this.locale.format);\n else\n end = moment(options.ranges[range][1]);\n\n // If the start or end date exceed those allowed by the minDate or maxSpan\n // options, shorten the range to the allowable period.\n if (this.minDate && start.isBefore(this.minDate))\n start = this.minDate.clone();\n\n var maxDate = this.maxDate;\n if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate))\n maxDate = start.clone().add(this.maxSpan);\n if (maxDate && end.isAfter(maxDate))\n end = maxDate.clone();\n\n // If the end of the range is before the minimum or the start of the range is\n // after the maximum, don't display this range option at all.\n if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day'))\n || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day')))\n continue;\n\n //Support unicode chars in the range names.\n var elem = document.createElement('textarea');\n elem.innerHTML = range;\n var rangeHtml = elem.value;\n\n this.ranges[rangeHtml] = [start, end];\n }\n\n var list = '';\n this.container.find('.ranges').prepend(list);\n }\n\n if (typeof cb === 'function') {\n this.callback = cb;\n }\n\n if (!this.timePicker) {\n this.startDate = this.startDate.startOf('day');\n this.endDate = this.endDate.endOf('day');\n this.container.find('.calendar-time').hide();\n }\n\n //can't be used together for now\n if (this.timePicker && this.autoApply)\n this.autoApply = false;\n\n if (this.autoApply) {\n this.container.addClass('auto-apply');\n }\n\n if (typeof options.ranges === 'object')\n this.container.addClass('show-ranges');\n\n if (this.singleDatePicker) {\n this.container.addClass('single');\n this.container.find('.drp-calendar.left').addClass('single');\n this.container.find('.drp-calendar.left').show();\n this.container.find('.drp-calendar.right').hide();\n if (!this.timePicker) {\n this.container.addClass('auto-apply');\n }\n }\n\n if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) {\n this.container.addClass('show-calendar');\n }\n\n this.container.addClass('opens' + this.opens);\n\n //apply CSS classes and labels to buttons\n this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);\n if (this.applyButtonClasses.length)\n this.container.find('.applyBtn').addClass(this.applyButtonClasses);\n if (this.cancelButtonClasses.length)\n this.container.find('.cancelBtn').addClass(this.cancelButtonClasses);\n this.container.find('.applyBtn').html(this.locale.applyLabel);\n this.container.find('.cancelBtn').html(this.locale.cancelLabel);\n\n //\n // event listeners\n //\n\n this.container.find('.drp-calendar')\n .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this))\n .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this))\n .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this))\n .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this))\n .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this))\n .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this))\n .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this))\n\n this.container.find('.ranges')\n .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this))\n\n this.container.find('.drp-buttons')\n .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this))\n .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this))\n\n if (this.element.is('input') || this.element.is('button')) {\n this.element.on({\n 'click.daterangepicker': $.proxy(this.show, this),\n 'focus.daterangepicker': $.proxy(this.show, this),\n 'keyup.daterangepicker': $.proxy(this.elementChanged, this),\n 'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility\n });\n } else {\n this.element.on('click.daterangepicker', $.proxy(this.toggle, this));\n this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this));\n }\n\n //\n // if attached to a text input, set the initial value\n //\n\n this.updateElement();\n\n };\n\n DateRangePicker.prototype = {\n\n constructor: DateRangePicker,\n\n setStartDate: function(startDate) {\n if (typeof startDate === 'string')\n this.startDate = moment(startDate, this.locale.format);\n\n if (typeof startDate === 'object')\n this.startDate = moment(startDate);\n\n if (!this.timePicker)\n this.startDate = this.startDate.startOf('day');\n\n if (this.timePicker && this.timePickerIncrement)\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n if (this.minDate && this.startDate.isBefore(this.minDate)) {\n this.startDate = this.minDate.clone();\n if (this.timePicker && this.timePickerIncrement)\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n }\n\n if (this.maxDate && this.startDate.isAfter(this.maxDate)) {\n this.startDate = this.maxDate.clone();\n if (this.timePicker && this.timePickerIncrement)\n this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n }\n\n if (!this.isShowing)\n this.updateElement();\n\n this.updateMonthsInView();\n },\n\n setEndDate: function(endDate) {\n if (typeof endDate === 'string')\n this.endDate = moment(endDate, this.locale.format);\n\n if (typeof endDate === 'object')\n this.endDate = moment(endDate);\n\n if (!this.timePicker)\n this.endDate = this.endDate.endOf('day');\n\n if (this.timePicker && this.timePickerIncrement)\n this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n if (this.endDate.isBefore(this.startDate))\n this.endDate = this.startDate.clone();\n\n if (this.maxDate && this.endDate.isAfter(this.maxDate))\n this.endDate = this.maxDate.clone();\n\n if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate))\n this.endDate = this.startDate.clone().add(this.maxSpan);\n\n this.previousRightTime = this.endDate.clone();\n\n this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n\n if (!this.isShowing)\n this.updateElement();\n\n this.updateMonthsInView();\n },\n\n isInvalidDate: function() {\n return false;\n },\n\n isCustomDate: function() {\n return false;\n },\n\n updateView: function() {\n if (this.timePicker) {\n this.renderTimePicker('left');\n this.renderTimePicker('right');\n if (!this.endDate) {\n this.container.find('.right .calendar-time select').prop('disabled', true).addClass('disabled');\n } else {\n this.container.find('.right .calendar-time select').prop('disabled', false).removeClass('disabled');\n }\n }\n if (this.endDate)\n this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n this.updateMonthsInView();\n this.updateCalendars();\n this.updateFormInputs();\n },\n\n updateMonthsInView: function() {\n if (this.endDate) {\n\n //if both dates are visible already, do nothing\n if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&\n (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\n &&\n (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\n ) {\n return;\n }\n\n this.leftCalendar.month = this.startDate.clone().date(2);\n if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {\n this.rightCalendar.month = this.endDate.clone().date(2);\n } else {\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\n }\n\n } else {\n if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) {\n this.leftCalendar.month = this.startDate.clone().date(2);\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\n }\n }\n if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) {\n this.rightCalendar.month = this.maxDate.clone().date(2);\n this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month');\n }\n },\n\n updateCalendars: function() {\n\n if (this.timePicker) {\n var hour, minute, second;\n if (this.endDate) {\n hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\n }\n second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.left .ampmselect').val();\n if (ampm === 'PM' && hour < 12)\n hour += 12;\n if (ampm === 'AM' && hour === 12)\n hour = 0;\n }\n } else {\n hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\n }\n second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.right .ampmselect').val();\n if (ampm === 'PM' && hour < 12)\n hour += 12;\n if (ampm === 'AM' && hour === 12)\n hour = 0;\n }\n }\n this.leftCalendar.month.hour(hour).minute(minute).second(second);\n this.rightCalendar.month.hour(hour).minute(minute).second(second);\n }\n\n this.renderCalendar('left');\n this.renderCalendar('right');\n\n //highlight any predefined range matching the current start and end dates\n this.container.find('.ranges li').removeClass('active');\n if (this.endDate == null) return;\n\n this.calculateChosenLabel();\n },\n\n renderCalendar: function(side) {\n\n //\n // Build the matrix of dates that will populate the calendar\n //\n\n var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar;\n var month = calendar.month.month();\n var year = calendar.month.year();\n var hour = calendar.month.hour();\n var minute = calendar.month.minute();\n var second = calendar.month.second();\n var daysInMonth = moment([year, month]).daysInMonth();\n var firstDay = moment([year, month, 1]);\n var lastDay = moment([year, month, daysInMonth]);\n var lastMonth = moment(firstDay).subtract(1, 'month').month();\n var lastYear = moment(firstDay).subtract(1, 'month').year();\n var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();\n var dayOfWeek = firstDay.day();\n\n //initialize a 6 rows x 7 columns array for the calendar\n var calendar = [];\n calendar.firstDay = firstDay;\n calendar.lastDay = lastDay;\n\n for (var i = 0; i < 6; i++) {\n calendar[i] = [];\n }\n\n //populate the calendar with date objects\n var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;\n if (startDay > daysInLastMonth)\n startDay -= 7;\n\n if (dayOfWeek == this.locale.firstDay)\n startDay = daysInLastMonth - 6;\n\n var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\n\n var col, row;\n for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) {\n if (i > 0 && col % 7 === 0) {\n col = 0;\n row++;\n }\n calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);\n curDate.hour(12);\n\n if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') {\n calendar[row][col] = this.minDate.clone();\n }\n\n if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') {\n calendar[row][col] = this.maxDate.clone();\n }\n\n }\n\n //make the calendar object available to hoverDate/clickDate\n if (side == 'left') {\n this.leftCalendar.calendar = calendar;\n } else {\n this.rightCalendar.calendar = calendar;\n }\n\n //\n // Display the calendar\n //\n\n var minDate = side == 'left' ? this.minDate : this.startDate;\n var maxDate = this.maxDate;\n var selected = side == 'left' ? this.startDate : this.endDate;\n var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'};\n\n var html = '';\n html += '';\n html += '';\n\n // add empty cell for week number\n if (this.showWeekNumbers || this.showISOWeekNumbers)\n html += '';\n\n if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) {\n html += '';\n } else {\n html += '';\n }\n\n var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(\" YYYY\");\n\n if (this.showDropdowns) {\n var currentMonth = calendar[1][1].month();\n var currentYear = calendar[1][1].year();\n var maxYear = (maxDate && maxDate.year()) || (this.maxYear);\n var minYear = (minDate && minDate.year()) || (this.minYear);\n var inMinYear = currentYear == minYear;\n var inMaxYear = currentYear == maxYear;\n\n var monthHtml = '\";\n\n var yearHtml = '';\n\n dateHtml = monthHtml + yearHtml;\n }\n\n html += '';\n if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) {\n html += '';\n } else {\n html += '';\n }\n\n html += '';\n html += '';\n\n // add week number label\n if (this.showWeekNumbers || this.showISOWeekNumbers)\n html += '';\n\n $.each(this.locale.daysOfWeek, function(index, dayOfWeek) {\n html += '';\n });\n\n html += '';\n html += '';\n html += '';\n\n //adjust maxDate to reflect the maxSpan setting in order to\n //grey out end dates beyond the maxSpan\n if (this.endDate == null && this.maxSpan) {\n var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day');\n if (!maxDate || maxLimit.isBefore(maxDate)) {\n maxDate = maxLimit;\n }\n }\n\n for (var row = 0; row < 6; row++) {\n html += '';\n\n // add week number\n if (this.showWeekNumbers)\n html += '';\n else if (this.showISOWeekNumbers)\n html += '';\n\n for (var col = 0; col < 7; col++) {\n\n var classes = [];\n\n //highlight today's date\n if (calendar[row][col].isSame(new Date(), \"day\"))\n classes.push('today');\n\n //highlight weekends\n if (calendar[row][col].isoWeekday() > 5)\n classes.push('weekend');\n\n //grey out the dates in other months displayed at beginning and end of this calendar\n if (calendar[row][col].month() != calendar[1][1].month())\n classes.push('off', 'ends');\n\n //don't allow selection of dates before the minimum date\n if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day'))\n classes.push('off', 'disabled');\n\n //don't allow selection of dates after the maximum date\n if (maxDate && calendar[row][col].isAfter(maxDate, 'day'))\n classes.push('off', 'disabled');\n\n //don't allow selection of date if a custom function decides it's invalid\n if (this.isInvalidDate(calendar[row][col]))\n classes.push('off', 'disabled');\n\n //highlight the currently selected start date\n if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD'))\n classes.push('active', 'start-date');\n\n //highlight the currently selected end date\n if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD'))\n classes.push('active', 'end-date');\n\n //highlight dates in-between the selected dates\n if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate)\n classes.push('in-range');\n\n //apply custom classes for this date\n var isCustom = this.isCustomDate(calendar[row][col]);\n if (isCustom !== false) {\n if (typeof isCustom === 'string')\n classes.push(isCustom);\n else\n Array.prototype.push.apply(classes, isCustom);\n }\n\n var cname = '', disabled = false;\n for (var i = 0; i < classes.length; i++) {\n cname += classes[i] + ' ';\n if (classes[i] == 'disabled')\n disabled = true;\n }\n if (!disabled)\n cname += 'available';\n\n html += '';\n\n }\n html += '';\n }\n\n html += '';\n html += '
' + dateHtml + '
' + this.locale.weekLabel + '' + dayOfWeek + '
' + calendar[row][0].week() + '' + calendar[row][0].isoWeek() + '' + calendar[row][col].date() + '
';\n\n this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html);\n\n },\n\n renderTimePicker: function(side) {\n\n // Don't bother updating the time picker if it's currently disabled\n // because an end date hasn't been clicked yet\n if (side == 'right' && !this.endDate) return;\n\n var html, selected, minDate, maxDate = this.maxDate;\n\n if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate)))\n maxDate = this.startDate.clone().add(this.maxSpan);\n\n if (side == 'left') {\n selected = this.startDate.clone();\n minDate = this.minDate;\n } else if (side == 'right') {\n selected = this.endDate.clone();\n minDate = this.startDate;\n\n //Preserve the time already selected\n var timeSelector = this.container.find('.drp-calendar.right .calendar-time');\n if (timeSelector.html() != '') {\n\n selected.hour(!isNaN(selected.hour()) ? selected.hour() : timeSelector.find('.hourselect option:selected').val());\n selected.minute(!isNaN(selected.minute()) ? selected.minute() : timeSelector.find('.minuteselect option:selected').val());\n selected.second(!isNaN(selected.second()) ? selected.second() : timeSelector.find('.secondselect option:selected').val());\n\n if (!this.timePicker24Hour) {\n var ampm = timeSelector.find('.ampmselect option:selected').val();\n if (ampm === 'PM' && selected.hour() < 12)\n selected.hour(selected.hour() + 12);\n if (ampm === 'AM' && selected.hour() === 12)\n selected.hour(0);\n }\n\n }\n\n if (selected.isBefore(this.startDate))\n selected = this.startDate.clone();\n\n if (maxDate && selected.isAfter(maxDate))\n selected = maxDate.clone();\n\n }\n\n //\n // hours\n //\n\n html = ' ';\n\n //\n // minutes\n //\n\n html += ': ';\n\n //\n // seconds\n //\n\n if (this.timePickerSeconds) {\n html += ': ';\n }\n\n //\n // AM/PM\n //\n\n if (!this.timePicker24Hour) {\n html += '';\n }\n\n this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html);\n\n },\n\n updateFormInputs: function() {\n\n if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) {\n this.container.find('button.applyBtn').prop('disabled', false);\n } else {\n this.container.find('button.applyBtn').prop('disabled', true);\n }\n\n },\n\n move: function() {\n var parentOffset = { top: 0, left: 0 },\n containerTop;\n var parentRightEdge = $(window).width();\n if (!this.parentEl.is('body')) {\n parentOffset = {\n top: this.parentEl.offset().top - this.parentEl.scrollTop(),\n left: this.parentEl.offset().left - this.parentEl.scrollLeft()\n };\n parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left;\n }\n\n if (this.drops == 'up')\n containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;\n else\n containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;\n\n // Force the container to it's actual width\n this.container.css({\n top: 0,\n left: 0,\n right: 'auto'\n });\n var containerWidth = this.container.outerWidth();\n\n this.container[this.drops == 'up' ? 'addClass' : 'removeClass']('drop-up');\n\n if (this.opens == 'left') {\n var containerRight = parentRightEdge - this.element.offset().left - this.element.outerWidth();\n if (containerWidth + containerRight > $(window).width()) {\n this.container.css({\n top: containerTop,\n right: 'auto',\n left: 9\n });\n } else {\n this.container.css({\n top: containerTop,\n right: containerRight,\n left: 'auto'\n });\n }\n } else if (this.opens == 'center') {\n var containerLeft = this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2\n - containerWidth / 2;\n if (containerLeft < 0) {\n this.container.css({\n top: containerTop,\n right: 'auto',\n left: 9\n });\n } else if (containerLeft + containerWidth > $(window).width()) {\n this.container.css({\n top: containerTop,\n left: 'auto',\n right: 0\n });\n } else {\n this.container.css({\n top: containerTop,\n left: containerLeft,\n right: 'auto'\n });\n }\n } else {\n var containerLeft = this.element.offset().left - parentOffset.left;\n if (containerLeft + containerWidth > $(window).width()) {\n this.container.css({\n top: containerTop,\n left: 'auto',\n right: 0\n });\n } else {\n this.container.css({\n top: containerTop,\n left: containerLeft,\n right: 'auto'\n });\n }\n }\n },\n\n show: function(e) {\n if (this.isShowing) return;\n\n // Create a click proxy that is private to this instance of datepicker, for unbinding\n this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this);\n\n // Bind global datepicker mousedown for hiding and\n $(document)\n .on('mousedown.daterangepicker', this._outsideClickProxy)\n // also support mobile devices\n .on('touchend.daterangepicker', this._outsideClickProxy)\n // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them\n .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy)\n // and also close when focus changes to outside the picker (eg. tabbing between controls)\n .on('focusin.daterangepicker', this._outsideClickProxy);\n\n // Reposition the picker if the window is resized while it's open\n $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this));\n\n this.oldStartDate = this.startDate.clone();\n this.oldEndDate = this.endDate.clone();\n this.previousRightTime = this.endDate.clone();\n\n this.updateView();\n this.container.show();\n this.move();\n this.element.trigger('show.daterangepicker', this);\n this.isShowing = true;\n },\n\n hide: function(e) {\n if (!this.isShowing) return;\n\n //incomplete date selection, revert to last values\n if (!this.endDate) {\n this.startDate = this.oldStartDate.clone();\n this.endDate = this.oldEndDate.clone();\n }\n\n //if a new date range was selected, invoke the user callback function\n if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate))\n this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel);\n\n //if picker is attached to a text input, update it\n this.updateElement();\n\n $(document).off('.daterangepicker');\n $(window).off('.daterangepicker');\n this.container.hide();\n this.element.trigger('hide.daterangepicker', this);\n this.isShowing = false;\n },\n\n toggle: function(e) {\n if (this.isShowing) {\n this.hide();\n } else {\n this.show();\n }\n },\n\n outsideClick: function(e) {\n var target = $(e.target);\n // if the page is clicked anywhere except within the daterangerpicker/button\n // itself then call this.hide()\n if (\n // ie modal dialog fix\n e.type == \"focusin\" ||\n target.closest(this.element).length ||\n target.closest(this.container).length ||\n target.closest('.calendar-table').length\n ) return;\n this.hide();\n this.element.trigger('outsideClick.daterangepicker', this);\n },\n\n showCalendars: function() {\n this.container.addClass('show-calendar');\n this.move();\n this.element.trigger('showCalendar.daterangepicker', this);\n },\n\n hideCalendars: function() {\n this.container.removeClass('show-calendar');\n this.element.trigger('hideCalendar.daterangepicker', this);\n },\n\n clickRange: function(e) {\n var label = e.target.getAttribute('data-range-key');\n this.chosenLabel = label;\n if (label == this.locale.customRangeLabel) {\n this.showCalendars();\n } else {\n var dates = this.ranges[label];\n this.startDate = dates[0];\n this.endDate = dates[1];\n\n if (!this.timePicker) {\n this.startDate.startOf('day');\n this.endDate.endOf('day');\n }\n\n if (!this.alwaysShowCalendars)\n this.hideCalendars();\n this.clickApply();\n }\n },\n\n clickPrev: function(e) {\n var cal = $(e.target).parents('.drp-calendar');\n if (cal.hasClass('left')) {\n this.leftCalendar.month.subtract(1, 'month');\n if (this.linkedCalendars)\n this.rightCalendar.month.subtract(1, 'month');\n } else {\n this.rightCalendar.month.subtract(1, 'month');\n }\n this.updateCalendars();\n },\n\n clickNext: function(e) {\n var cal = $(e.target).parents('.drp-calendar');\n if (cal.hasClass('left')) {\n this.leftCalendar.month.add(1, 'month');\n } else {\n this.rightCalendar.month.add(1, 'month');\n if (this.linkedCalendars)\n this.leftCalendar.month.add(1, 'month');\n }\n this.updateCalendars();\n },\n\n hoverDate: function(e) {\n\n //ignore dates that can't be selected\n if (!$(e.target).hasClass('available')) return;\n\n var title = $(e.target).attr('data-title');\n var row = title.substr(1, 1);\n var col = title.substr(3, 1);\n var cal = $(e.target).parents('.drp-calendar');\n var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\n\n //highlight the dates between the start date and the date being hovered as a potential end date\n var leftCalendar = this.leftCalendar;\n var rightCalendar = this.rightCalendar;\n var startDate = this.startDate;\n if (!this.endDate) {\n this.container.find('.drp-calendar tbody td').each(function(index, el) {\n\n //skip week numbers, only look at dates\n if ($(el).hasClass('week')) return;\n\n var title = $(el).attr('data-title');\n var row = title.substr(1, 1);\n var col = title.substr(3, 1);\n var cal = $(el).parents('.drp-calendar');\n var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col];\n\n if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) {\n $(el).addClass('in-range');\n } else {\n $(el).removeClass('in-range');\n }\n\n });\n }\n\n },\n\n clickDate: function(e) {\n\n if (!$(e.target).hasClass('available')) return;\n\n var title = $(e.target).attr('data-title');\n var row = title.substr(1, 1);\n var col = title.substr(3, 1);\n var cal = $(e.target).parents('.drp-calendar');\n var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\n\n //\n // this function needs to do a few things:\n // * alternate between selecting a start and end date for the range,\n // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date\n // * if autoapply is enabled, and an end date was chosen, apply the selection\n // * if single date picker mode, and time picker isn't enabled, apply the selection immediately\n // * if one of the inputs above the calendars was focused, cancel that manual input\n //\n\n if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start\n if (this.timePicker) {\n var hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.left .ampmselect').val();\n if (ampm === 'PM' && hour < 12)\n hour += 12;\n if (ampm === 'AM' && hour === 12)\n hour = 0;\n }\n var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\n }\n var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n date = date.clone().hour(hour).minute(minute).second(second);\n }\n this.endDate = null;\n this.setStartDate(date.clone());\n } else if (!this.endDate && date.isBefore(this.startDate)) {\n //special case: clicking the same date for start/end,\n //but the time of the end date is before the start date\n this.setEndDate(this.startDate.clone());\n } else { // picking end\n if (this.timePicker) {\n var hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.right .ampmselect').val();\n if (ampm === 'PM' && hour < 12)\n hour += 12;\n if (ampm === 'AM' && hour === 12)\n hour = 0;\n }\n var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\n }\n var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n date = date.clone().hour(hour).minute(minute).second(second);\n }\n this.setEndDate(date.clone());\n if (this.autoApply) {\n this.calculateChosenLabel();\n this.clickApply();\n }\n }\n\n if (this.singleDatePicker) {\n this.setEndDate(this.startDate);\n if (!this.timePicker)\n this.clickApply();\n }\n\n this.updateView();\n\n //This is to cancel the blur event handler if the mouse was in one of the inputs\n e.stopPropagation();\n\n },\n\n calculateChosenLabel: function () {\n var customRange = true;\n var i = 0;\n for (var range in this.ranges) {\n if (this.timePicker) {\n var format = this.timePickerSeconds ? \"YYYY-MM-DD HH:mm:ss\" : \"YYYY-MM-DD HH:mm\";\n //ignore times when comparing dates if time picker seconds is not enabled\n if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) {\n customRange = false;\n this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\n break;\n }\n } else {\n //ignore times when comparing dates if time picker is not enabled\n if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {\n customRange = false;\n this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\n break;\n }\n }\n i++;\n }\n if (customRange) {\n if (this.showCustomRangeLabel) {\n this.chosenLabel = this.container.find('.ranges li:last').addClass('active').attr('data-range-key');\n } else {\n this.chosenLabel = null;\n }\n this.showCalendars();\n }\n },\n\n clickApply: function(e) {\n this.hide();\n this.element.trigger('apply.daterangepicker', this);\n },\n\n clickCancel: function(e) {\n this.startDate = this.oldStartDate;\n this.endDate = this.oldEndDate;\n this.hide();\n this.element.trigger('cancel.daterangepicker', this);\n },\n\n monthOrYearChanged: function(e) {\n var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'),\n leftOrRight = isLeft ? 'left' : 'right',\n cal = this.container.find('.drp-calendar.'+leftOrRight);\n\n // Month must be Number for new moment versions\n var month = parseInt(cal.find('.monthselect').val(), 10);\n var year = cal.find('.yearselect').val();\n\n if (!isLeft) {\n if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) {\n month = this.startDate.month();\n year = this.startDate.year();\n }\n }\n\n if (this.minDate) {\n if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) {\n month = this.minDate.month();\n year = this.minDate.year();\n }\n }\n\n if (this.maxDate) {\n if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) {\n month = this.maxDate.month();\n year = this.maxDate.year();\n }\n }\n\n if (isLeft) {\n this.leftCalendar.month.month(month).year(year);\n if (this.linkedCalendars)\n this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');\n } else {\n this.rightCalendar.month.month(month).year(year);\n if (this.linkedCalendars)\n this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');\n }\n this.updateCalendars();\n },\n\n timeChanged: function(e) {\n\n var cal = $(e.target).closest('.drp-calendar'),\n isLeft = cal.hasClass('left');\n\n var hour = parseInt(cal.find('.hourselect').val(), 10);\n var minute = parseInt(cal.find('.minuteselect').val(), 10);\n if (isNaN(minute)) {\n minute = parseInt(cal.find('.minuteselect option:last').val(), 10);\n }\n var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0;\n\n if (!this.timePicker24Hour) {\n var ampm = cal.find('.ampmselect').val();\n if (ampm === 'PM' && hour < 12)\n hour += 12;\n if (ampm === 'AM' && hour === 12)\n hour = 0;\n }\n\n if (isLeft) {\n var start = this.startDate.clone();\n start.hour(hour);\n start.minute(minute);\n start.second(second);\n this.setStartDate(start);\n if (this.singleDatePicker) {\n this.endDate = this.startDate.clone();\n } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {\n this.setEndDate(start.clone());\n }\n } else if (this.endDate) {\n var end = this.endDate.clone();\n end.hour(hour);\n end.minute(minute);\n end.second(second);\n this.setEndDate(end);\n }\n\n //update the calendars so all clickable dates reflect the new time component\n this.updateCalendars();\n\n //update the form inputs above the calendars with the new time\n this.updateFormInputs();\n\n //re-render the time pickers because changing one selection can affect what's enabled in another\n this.renderTimePicker('left');\n this.renderTimePicker('right');\n\n },\n\n elementChanged: function() {\n if (!this.element.is('input')) return;\n if (!this.element.val().length) return;\n\n var dateString = this.element.val().split(this.locale.separator),\n start = null,\n end = null;\n\n if (dateString.length === 2) {\n start = moment(dateString[0], this.locale.format);\n end = moment(dateString[1], this.locale.format);\n }\n\n if (this.singleDatePicker || start === null || end === null) {\n start = moment(this.element.val(), this.locale.format);\n end = start;\n }\n\n if (!start.isValid() || !end.isValid()) return;\n\n this.setStartDate(start);\n this.setEndDate(end);\n this.updateView();\n },\n\n keydown: function(e) {\n //hide on tab or enter\n if ((e.keyCode === 9) || (e.keyCode === 13)) {\n this.hide();\n }\n\n //hide on esc and prevent propagation\n if (e.keyCode === 27) {\n e.preventDefault();\n e.stopPropagation();\n\n this.hide();\n }\n },\n\n updateElement: function() {\n if (this.element.is('input') && this.autoUpdateInput) {\n var newValue = this.startDate.format(this.locale.format);\n if (!this.singleDatePicker) {\n newValue += this.locale.separator + this.endDate.format(this.locale.format);\n }\n if (newValue !== this.element.val()) {\n this.element.val(newValue).trigger('change');\n }\n }\n },\n\n remove: function() {\n this.container.remove();\n this.element.off('.daterangepicker');\n this.element.removeData();\n }\n\n };\n\n $.fn.daterangepicker = function(options, callback) {\n var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options);\n this.each(function() {\n var el = $(this);\n if (el.data('daterangepicker'))\n el.data('daterangepicker').remove();\n el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback));\n });\n return this;\n };\n\n return DateRangePicker;\n\n}));\n","import 'Vendors/daterangepicker/daterangepicker.extend';\r\nimport 'Vendors/jquery.sticky'\r\nimport { UpdateSiteHeaderSticky } from 'Modules/headroom.js';\r\n/* Custom Knockout binding: daterangepicker\r\n* required: daterangepicker.js\r\n*/\r\n(function () {\r\n\r\n var daterange_template = '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n AppData.Translations[\"calendar_modal_headtext\"] + \r\n '
' +\r\n '
' +\r\n '
' +\r\n '
'+\r\n '
' +\r\n ''+ AppData.Translations[\"calendar_departure_date\"] + '' +\r\n '
'+\r\n '
' + \r\n ''+ AppData.Translations[\"calendar_arrival_date\"] + '' +\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 '
' + AppData.Translations[\"calendar_helptext_recom_routes\"] + '
' +\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 '
' + AppData.Translations[\"calendar_helptext_recom_routes\"] + '
' +\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 var daterange_inline_template = '
' +\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 function useModalDropDown() {\r\n //var bp_Width = $(window).width();\r\n var bp_Width = window.innerWidth > 0 ? window.innerWidth : window.screen.width;\r\n return bp_Width < 768;\r\n }\r\n\r\n\r\n function getNumberOfMonths() {\r\n var bp_Width = window.innerWidth > 0 ? window.innerWidth : window.screen.width;\r\n\r\n if (bp_Width < 480) return 24;\r\n if (bp_Width < 768) return 24;\r\n if (bp_Width < 1024) return 2;\r\n return 3;\r\n }\r\n\r\n ko.bindingHandlers.daterangepicker = {\r\n /*** Handle ExtraInfoShown ***/\r\n showExtraInfo: function (element, flgShow, flgWaiting) {\r\n var $element = $(element);\r\n var drp = $element.data('daterangepicker');\r\n //console.log(\"showExtraInfo: \" + drp);\r\n if (drp && drp.container) {\r\n var $extraInfo = drp.container.find('.extra-info');\r\n if (flgShow) {\r\n $extraInfo.show();\r\n } else {\r\n $extraInfo.hide();\r\n }\r\n if (flgWaiting) {\r\n $extraInfo.addClass(\"waiting\");\r\n } else {\r\n $extraInfo.removeClass(\"waiting\");\r\n }\r\n }\r\n },\r\n setDates: function (element, dates) {\r\n if (!dates) return;\r\n dates = ko.unwrap(dates);\r\n\r\n var $element = $(element);\r\n var drp = $element.data('daterangepicker');\r\n if (!drp) return;\r\n\r\n if (typeof dates.initDate != \"undefined\") {\r\n drp.setInitDate(ko.unwrap(dates.initDate));\r\n }\r\n\r\n if (typeof dates.startDate != \"undefined\") {\r\n drp.setStartDate(ko.unwrap(dates.startDate));\r\n }\r\n if (typeof dates.endDate != \"undefined\") {\r\n drp.setEndDate(ko.unwrap(dates.endDate));\r\n }\r\n if (typeof dates.minDate != \"undefined\") {\r\n drp.setMinDate(ko.unwrap(dates.minDate));\r\n }\r\n if (typeof dates.maxDate != \"undefined\") {\r\n drp.setMaxDate(ko.unwrap(dates.maxDate));\r\n }\r\n },\r\n /*** Handle UpdateHighlight ***/\r\n updateHighlightDates: function (element) {\r\n var $element = $(element);\r\n var drp = $element.data('daterangepicker');\r\n //console.log(\"updateHighlightDates: \" + drp);\r\n if (drp) {\r\n //FIXME sometimes calendar dates are not updated imediatly with new hilights \r\n var isShowing = drp.isShowing || drp.container.is(\":visible\") || drp.container.css(\"display\") != 'none';\r\n //console.log(\"updateHighlightDates: isShowing \" + isShowing);\r\n if (isShowing) {\r\n drp.hide();\r\n }\r\n\r\n drp.updateCalendars();\r\n //drp.updateView();\r\n\r\n if (isShowing) {\r\n drp.show();\r\n }\r\n }\r\n },\r\n updateWidth: function (element) {\r\n if (!useModalDropDown()) {\r\n var $element = $(element);\r\n var $dropdown = $('.dropdown-menu');\r\n if ($dropdown) {\r\n var $form = $element.parents(\".search .searchbar-body\");\r\n if ($form && $form.length) {\r\n var leftForm = $form.offset().left;\r\n var newWidth = $form.outerWidth();\r\n $dropdown.css({ \"width\": newWidth });\r\n $dropdown.css({ \"maxWidth\": newWidth });\r\n $dropdown.css({ \"left\": leftForm });\r\n }\r\n }\r\n }\r\n },\r\n updateTitle: function (element, picker, value) {\r\n //$(element).val(picker.startDate.format('L') + ' - ' + picker.endDate.format('L'));\r\n var $element = $(element);\r\n var hasValue = false;\r\n var text = '';\r\n if (value != null) {\r\n var value1 = null;\r\n var value2 = null;\r\n if (value instanceof Array) {\r\n value1 = ko.utils.unwrapObservable(value[0]);\r\n value2 = ko.utils.unwrapObservable(value[1]);\r\n }\r\n var m1 = moment(value1);\r\n var m2 = moment(value2);\r\n \r\n if (m1.isValid() || m2.isValid()) {\r\n var txtValue1 = '...';\r\n if (m1.isValid()) {\r\n if (m1.format('MMMM').length > 3) {\r\n txtValue1 = m1.format('DD. MMM.');\r\n } else {\r\n txtValue1 = m1.format('DD. MMM');\r\n }\r\n }\r\n\r\n var txtValue2 = '...';\r\n if (m2.isValid()) {\r\n if (m2.format('MMMM').length > 3) {\r\n txtValue2 = m2.format('DD. MMM. YYYY');\r\n } else {\r\n txtValue2 = m2.format('DD. MMM YYYY');\r\n }\r\n }\r\n\r\n text = txtValue1 + ' - ' + txtValue2;\r\n hasValue = true;\r\n }\r\n }\r\n if ($element.is('input')) {\r\n $element.val(text);\r\n } else {\r\n if (text == '' && $element.attr('placeholder')) {\r\n text = $element.attr('placeholder');\r\n\r\n }\r\n\r\n var $span = $element.find('span');\r\n if ($span.length > 0) {\r\n $span.html(text);\r\n if (hasValue) {\r\n $span.removeClass('empty');\r\n } else {\r\n $span.addClass('empty');\r\n }\r\n }\r\n }\r\n },\r\n writeValuesToModel: function (value, startDate, endDate) {\r\n var valueToWrite1 = null;\r\n var valueToWrite2 = null;\r\n //First - get all values\r\n if (startDate && startDate.isValid()) {\r\n valueToWrite1 = startDate.toDate();\r\n }\r\n if (endDate && endDate.isValid()) {\r\n valueToWrite2 = endDate.toDate();\r\n }\r\n //Second - set values to valueAccessor\r\n value[0](valueToWrite1);\r\n value[1](valueToWrite2);\r\n },\r\n init: function (element, valueAccessor, allBindingsAccessor) {\r\n //initialize daterangepicker with some optional options\r\n var unwrap = ko.utils.unwrapObservable;\r\n var binding = allBindingsAccessor();\r\n //var options = ko.utils.unwrapObservable(allBindingsAccessor().daterangepickerOptions) || {};\r\n var observable = valueAccessor();\r\n var eventHandlers = unwrap(binding.daterangepickerHandlers) || {};\r\n\r\n var options = {\r\n locale: {\r\n //cancelLabel: 'Clear'\r\n format: 'DD. MMM. YYYY',\r\n weekLabel: AppData.Translations[\"week\"],\r\n monthNames: moment.months()\r\n },\r\n startDate: unwrap(observable[0]) || '',\r\n endDate: unwrap(observable[1]) || '',\r\n template: daterange_template,\r\n numberOfMonths: getNumberOfMonths,\r\n hideOtherMonthDays: true\r\n };\r\n if (binding.daterangepickerOptions) {\r\n //options = $.extend(options, unwrap(binding.daterangepickerOptions));\r\n let opt = unwrap(binding.daterangepickerOptions);\r\n opt = ko.toJS(opt);\r\n if (opt.inline) {\r\n // default inline temlate\r\n options.template = daterange_inline_template;\r\n }\r\n options = $.extend(options, opt);\r\n }\r\n\r\n //setTimeout(function () {\r\n // clean up memory when knockout removes binding\r\n ko.utils.domNodeDisposal.addDisposeCallback(element, function (disposingElement) {\r\n $(disposingElement).off('apply.daterangepicker');\r\n $(disposingElement).off('cancel.daterangepicker');\r\n $(disposingElement).off('show.daterangepicker');\r\n $(disposingElement).off('hide.daterangepicker');\r\n\r\n $(disposingElement).off('prevMonth.daterangepicker');\r\n $(disposingElement).off('nextMonth.daterangepicker');\r\n\r\n var drp = $(disposingElement).data('daterangepicker');\r\n drp.container.find('.daterange-clear').off('click');\r\n // not implemented yet\r\n //$(disposingElement).daterangepicker('destroy');\r\n });\r\n\r\n var handleDateRangePicker = function (start, end, label) {\r\n //console.log(\"CallBack: \" +start.format('YYYY-MM-DD') + \" - \" +end.format('YYYY-MM-DD') + \" Lable: \" +label);\r\n //observable[0](start.toDate());\r\n //observable[1](end.toDate());\r\n\r\n if (typeof eventHandlers.callback == \"function\") {\r\n eventHandlers.callback(start, end, label);\r\n }\r\n };\r\n\r\n var $element = $(element);\r\n $element.daterangepicker(options, handleDateRangePicker);\r\n var drp = $element.data('daterangepicker');\r\n var drp_view = drp.container[0];\r\n drp_view.id = ko.utils.uniqueId('ko-daterangepicker-');\r\n if (options.classes) {\r\n drp.container.addClass(options.classes);\r\n }\r\n drp.container.find('.extra-info .spin').each(function (i, elem) {\r\n //new Spinner({ color: '#36719c', lines: 11, length: 5, width: 2, radius: 4, corners: 1, trail: 58 }).spin(elem);\r\n //new Spinner({ color: '#36719c', lines: 11, length: 6, width: 2, radius: 3, corners: 1, trail: 58 }).spin(elem);\r\n });\r\n\r\n // FIXME 2018-01-19 Extract to settings if start reusing this plugin in other places of page\r\n // qtip classes with '.faded'\r\n var $header = $element.parents('.header');\r\n if ($header.length > 0) {\r\n if (!$header.hasClass('searchpage')) {\r\n drp.container.addClass(\"faded\");\r\n }\r\n }\r\n \r\n\r\n if (binding.clearDates) {\r\n var btn_clear = drp.container.find('.daterange-clear');\r\n ko.utils.registerEventHandler(btn_clear, 'click', function (event) {\r\n binding.clearDates();\r\n $element.data('daterangepicker').hide();\r\n });\r\n }\r\n\r\n if (binding.daterangepickerOptions) {\r\n var dateRangeOptions = unwrap(binding.daterangepickerOptions);\r\n\r\n // Subscribe to handle both changing\r\n if (ko.isObservable(binding.daterangepickerOptions)) {\r\n binding.daterangepickerOptions.subscribe(function (newValue) {\r\n var newOptions = unwrap(newValue);\r\n if (newOptions != null) {\r\n newOptions = ko.toJS(newOptions);\r\n console.log('newOptions',newOptions);\r\n $element.data('daterangepicker').updateOptions(newOptions);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (binding.dateRangeSettings) {\r\n var dateRangeSettings = unwrap(binding.dateRangeSettings);\r\n var extraInfoShown = dateRangeSettings.ExtraInfoShown || false;\r\n var extraInfoWaiting = dateRangeSettings.ExtraInfoWaiting || false;\r\n ko.bindingHandlers.daterangepicker.showExtraInfo(element, extraInfoShown, extraInfoWaiting);\r\n var dates = dateRangeSettings.Dates || null;\r\n ko.bindingHandlers.daterangepicker.setDates(element, dates);\r\n\r\n // Subscribe to handle both changing\r\n if (ko.isObservable(binding.dateRangeSettings)) {\r\n binding.dateRangeSettings.subscribe(function (newValue) {\r\n var newSettings = unwrap(newValue);\r\n //updating ExtraInfoShown\r\n var newExtraInfoShown = false;\r\n if (newSettings != null) {\r\n newExtraInfoShown = newSettings.ExtraInfoShown;\r\n }\r\n var newExtraInfoWaiting = newSettings.ExtraInfoWaiting || false;\r\n ko.bindingHandlers.daterangepicker.showExtraInfo(element, newExtraInfoShown, newExtraInfoWaiting);\r\n\r\n // updating dates (min/max, start/end)\r\n var newDates = newSettings.Dates || null;\r\n if (newSettings != null && newDates) {\r\n ko.bindingHandlers.daterangepicker.setDates(element, newDates);\r\n }\r\n\r\n //updating UpdateHighlight\r\n if (newSettings != null && newSettings.UpdateHighlight) {\r\n ko.bindingHandlers.daterangepicker.updateHighlightDates(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n // handle the field changing\r\n ko.utils.registerEventHandler(element, 'apply.daterangepicker', function (event, picker) {\r\n //$(element).val(picker.startDate.format('L') + ' - ' + picker.endDate.format('L'));\r\n //console.log(\"Apply: \" + picker.startDate.format('YYYY-MM-DD') + \" - \" + picker.endDate.format('YYYY-MM-DD'));\r\n ko.bindingHandlers.daterangepicker.writeValuesToModel(observable, picker.startDate, picker.endDate);\r\n //ko.bindingHandlers.daterangepicker.updateTitle(this, picker, observable);\r\n\r\n if (typeof eventHandlers.apply == \"function\") {\r\n eventHandlers.apply(picker.startDate, picker.endDate);\r\n }\r\n });\r\n\r\n // handle the field clearing\r\n ko.utils.registerEventHandler(element, 'cancel.daterangepicker', function (event, picker) {\r\n //$(this).val('');\r\n ko.bindingHandlers.daterangepicker.writeValuesToModel(observable, null, null);\r\n //ko.bindingHandlers.daterangepicker.updateTitle(this, picker, observable);\r\n\r\n if (typeof eventHandlers.cancel == \"function\") {\r\n eventHandlers.cancel();\r\n }\r\n });\r\n\r\n // handle the field changing\r\n ko.utils.registerEventHandler(element, 'prevMonth.daterangepicker', function (event, picker) {\r\n if (typeof eventHandlers.prevMonth == \"function\") {\r\n eventHandlers.prevMonth(picker.calendarList);\r\n }\r\n });\r\n\r\n // handle the field changing\r\n ko.utils.registerEventHandler(element, 'nextMonth.daterangepicker', function (event, picker) {\r\n if (typeof eventHandlers.nextMonth == \"function\") {\r\n eventHandlers.nextMonth(picker.calendarList);\r\n }\r\n });\r\n\r\n\r\n //drp.container.find('.modal-head').sticky({ topSpacing: 0, zIndex: 5, widthFromWrapper: false });\r\n function fixModalHeadHeight() {\r\n var drp3 = $element.data('daterangepicker');\r\n //console.log(\"fixModalHeadHeight: \" + drp3);\r\n if (drp3 && drp3.container) {\r\n var $contentHead = drp3.container.find('.modal-head');\r\n var $stickyWrapper = $contentHead.parent('.sticky-wrapper');\r\n if ($stickyWrapper.length == 0) {\r\n var wrapper = $('
')\r\n .addClass('sticky-wrapper');\r\n \r\n $contentHead.wrapAll(function() {\r\n return wrapper;\r\n })\r\n $stickyWrapper = $contentHead.parent('.sticky-wrapper');\r\n }\r\n $stickyWrapper.css('height', $contentHead.outerHeight(true));\r\n }\r\n };\r\n fixModalHeadHeight();\r\n\r\n function scrollToStartDate() {\r\n var drp3 = $element.data('daterangepicker');\r\n if (drp3 && drp3.container) {\r\n var $contentHead = drp3.container.find('.modal-head');\r\n var $dpContent = drp3.container.find('.daterangepicker-content');\r\n var $drpCalendar = $(\".drp-calendar:has(.start-date:not(.ends))\");\r\n if ($drpCalendar.length > 0 && $drpCalendar.offset()) {\r\n $dpContent.animate({\r\n scrollTop: $dpContent.scrollTop() + $drpCalendar.offset().top - $contentHead.outerHeight(true)\r\n }, 500);\r\n } else {\r\n $dpContent.animate({\r\n scrollTop: 0\r\n }, 500);\r\n }\r\n }\r\n };\r\n // handle the modal\r\n ko.utils.registerEventHandler(element, 'show.daterangepicker', function (event, picker) {\r\n if (picker && picker.inline) {\r\n return;\r\n }\r\n if (picker && picker.element) {\r\n var top = useModalDropDown() ? ($(window).scrollTop() || $('html, body').scrollTop()) : '';\r\n picker.element.attr(\"data-last-top\", top);\r\n }\r\n\r\n if (picker && picker.container) {\r\n var $container = picker.container;\r\n\r\n if (useModalDropDown()) {\r\n $container.addClass(\"modal\");\r\n $('html').addClass(\"noscroll\");\r\n\r\n setTimeout(function () {\r\n fixModalHeadHeight();\r\n scrollToStartDate();\r\n }, 100);\r\n\r\n /* On some mobile browser when the overlay was previously\r\n opened and scrolled, if you open it again it doesn't \r\n reset its scrollTop property */\r\n //$dropdownContainerQtip.scrollTop = 0;\r\n\r\n $container.find('.modal-close').on('click', function (e) {\r\n if (picker) {\r\n picker.hide();\r\n }\r\n });\r\n } else {\r\n $('html').removeClass(\"noscroll\");\r\n $container.removeClass(\"modal\");\r\n }\r\n }\r\n ko.bindingHandlers.daterangepicker.updateWidth(element);\r\n $(element).addClass('open');\r\n $(element).parents(\".input-wrapper\").addClass('open');\r\n });\r\n ko.utils.registerEventHandler(element, 'hide.daterangepicker', function (event, picker) {\r\n if (picker && picker.inline) {\r\n return;\r\n }\r\n\r\n UpdateSiteHeaderSticky();\r\n if (picker && picker.container) {\r\n var $container = picker.container;\r\n\r\n $container.find('.modal-close').off('click');\r\n $('html').removeClass(\"noscroll\");\r\n }\r\n\r\n if (picker && picker.element) {\r\n var scrollTop = picker.element.attr(\"data-last-top\") || null;\r\n if (scrollTop != null && $.isNumeric(scrollTop) && scrollTop >= 0) {\r\n $('html, body').stop().delay(10).animate({\r\n scrollTop: parseInt(scrollTop)\r\n }, 0);\r\n }\r\n }\r\n $(element).removeClass('open');\r\n $(element).parents(\".input-wrapper\").removeClass('open');\r\n });\r\n\r\n //var btn_close = drp.container.find('.modal-close');\r\n //ko.utils.registerEventHandler(btn_close, 'click', function (event) {\r\n // $element.data('daterangepicker').hide();\r\n //});\r\n\r\n //}, 100);\r\n //return { controlsDescendantBindings: true }\r\n },\r\n update: function (element, valueAccessor) {\r\n var value = ko.utils.unwrapObservable(valueAccessor()),\r\n $element = $(element);\r\n\r\n var value1 = ko.utils.unwrapObservable(value[0]) || '';\r\n var value2 = ko.utils.unwrapObservable(value[1]) || '';\r\n\r\n //handle date data coming via json from Microsoft\r\n //if (String(value1).indexOf('/Date(') == 0) {\r\n // value1 = new Date(parseInt(value1.replace(/\\/Date\\((.*?)\\)\\//gi, \"$1\")));\r\n //}\r\n //if (String(value2).indexOf('/Date(') == 0) {\r\n // value2 = new Date(parseInt(value2.replace(/\\/Date\\((.*?)\\)\\//gi, \"$1\")));\r\n //}\r\n\r\n var drp = $element.data('daterangepicker');\r\n\r\n var current1 = '';\r\n var current2 = '';\r\n if (drp) {\r\n if (drp.startDate) {\r\n current1 = drp.startDate.toDate();\r\n }\r\n if (drp.endDate) {\r\n current2 = drp.endDate.toDate();\r\n }\r\n if (value1 - current1 !== 0) {\r\n //console.log(\"value1 \" + value1);\r\n drp.setStartDate(value1);\r\n }\r\n if (value2 - current2 !== 0) {\r\n //console.log(\"value2 \" + value2);\r\n drp.setEndDate(value2);\r\n }\r\n }\r\n ko.bindingHandlers.daterangepicker.updateTitle(element, drp, value);\r\n }\r\n };\r\n\r\n /* Example of options\r\n $('#demo').daterangepicker({\r\n \"locale\": {\r\n \"format\": \"MM/DD/YYYY\",\r\n \"separator\": \" - \",\r\n \"applyLabel\": \"Apply\",\r\n \"cancelLabel\": \"Cancel\",\r\n \"fromLabel\": \"From\",\r\n \"toLabel\": \"To\",\r\n \"customRangeLabel\": \"Custom\",\r\n \"weekLabel\": \"W\",\r\n \"daysOfWeek\": [\r\n \"Su\",\r\n \"Mo\",\r\n \"Tu\",\r\n \"We\",\r\n \"Th\",\r\n \"Fr\",\r\n \"Sa\"\r\n ],\r\n \"monthNames\": [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\"\r\n ],\r\n \"firstDay\": 1\r\n },\r\n \"startDate\": \"01/18/2018\",\r\n \"endDate\": \"01/24/2018\"\r\n }, function(start, end, label) {\r\n console.log(\"New date range selected: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD') + ' (predefined range: ' + label + ')\");\r\n });\r\n */\r\n\r\n}).call(this);"],"names":["g","moment","$","daterangepicker","root","factory","define","jquery","fn","default","module","exports","jQuery","window","undefined","DateRangePicker","element","options","cb","base","constructor","call","this","initDate","locale","format","showNavigation","showMonthNavigation","inline","renderDateAttributes","renderDateValue","updateElement","alwaysShowCalendars","show","sub","methods","name","prototype","Object","create","extend","test_extra_method","console","log","date","classes","calendarIndex","is_showNavigation","show_navigation","is_showMonthNavigation","show_month_navigation","initExtend","numberOfMonths","singleDatePicker","calendarList","data","hideOtherMonthDays","initCalendarList","useCalendarList","dateContainedInCalendarList","i","month","updateEventListeners","container","find","off","on","proxy","clickPrev","clickNext","clickDate","hoverDate","monthOrYearChanged","timeChanged","clickRange","clickApply","clickCancel","_this","resizer","isShowing","hide","addEventListener","attachEvent","updateTemplate","$calendars","length","slice","remove","removeClass","calendarElement","calendarListHtml","calendarElementClone","clone","attr","addClass","outerHTML","replaceWith","old_numberOfMonths","useInitDate","isValid","getInitDate","startDate","setInitDate","updateMonthsInView","setMinDate","minDate","setMaxDate","maxDate","setStartDate_original","setStartDate","html","AppData","Translations","timePicker","startOf","timePickerIncrement","minute","Math","round","isBefore","isAfter","floor","setEndDate_original","setEndDate","endDate","endOf","maxSpan","add","previousRightTime","separator","showCalendars_original","showCalendars","trigger","updateMonthsInView_original","innerWidth","screen","width","hasMonths","linkedCalendars","year","updateCalendars_original","updateCalendars","renderCalendarList","calculateChosenLabel","index","hour","second","daysInMonth","firstDay","lastDay","lastMonth","subtract","lastYear","daysInLastMonth","dayOfWeek","day","calendar","startDay","curDate","col","row","direction","attrYear","attrMonth","attrMonthTitle","monthNames","showWeekNumbers","showISOWeekNumbers","dateHtml","showDropdowns","currentMonth","currentYear","maxYear","minYear","inMinYear","inMaxYear","monthHtml","m","yearHtml","y","weekLabel","each","daysOfWeek","maxLimit","weekClass","weekHtml","hasCurrentMonthDays","week","isoWeek","isSame","Date","push","isoWeekday","isInvalidDate","isCustom","isCustomDate","Array","apply","htmlDate","attrDate","cname","disabled","replace","move_original","move","opens","css","show_original","outsideClick_original","outsideClick","e","hoverDate_original","target","hasClass","title","substr","parents","el","dt","clickDate_original","which","parseInt","val","timePicker24Hour","ampm","isNaN","timePickerSeconds","autoApply","updateView","stopPropagation","clickPrev_original","clickNext_original","clickApply_original","clickCancel_original","oldStartDate","oldEndDate","callback","implementOptions","defaultOptions","parentEl","showCustomRangeLabel","autoUpdateInput","ranges","drops","buttonClasses","applyButtonClasses","cancelButtonClasses","localeData","longDateFormat","applyLabel","cancelLabel","customRangeLabel","weekdaysMin","monthsShort","firstDayOfWeek","leftCalendar","rightCalendar","template","appendTo","elem","document","createElement","innerHTML","rangeHtml","value","applyClass","cancelClass","dateLimit","join","iterator","shift","start","end","range","is","split","timepicker","list","prepend","elementChanged","keydown","toggle","renderTimePicker","prop","updateFormInputs","renderCalendar","side","selected","timeSelector","i_in_24","time","padded","am_html","pm_html","containerTop","parentOffset","top","left","parentRightEdge","offset","scrollTop","scrollLeft","clientWidth","outerHeight","right","containerWidth","outerWidth","containerRight","containerLeft","_outsideClickProxy","chosenLabel","type","closest","hideCalendars","label","getAttribute","dates","customRange","isLeft","leftOrRight","cal","dateString","keyCode","preventDefault","newValue","removeData","daterange_template","useModalDropDown","getNumberOfMonths","bp_Width","ko","bindingHandlers","showExtraInfo","flgShow","flgWaiting","drp","$extraInfo","setDates","unwrap","updateHighlightDates","updateWidth","$element","$dropdown","$form","leftForm","newWidth","updateTitle","picker","hasValue","text","value1","value2","utils","unwrapObservable","m1","m2","txtValue1","txtValue2","$span","writeValuesToModel","valueToWrite1","valueToWrite2","toDate","init","valueAccessor","allBindingsAccessor","binding","observable","eventHandlers","daterangepickerHandlers","months","daterangepickerOptions","opt","toJS","domNodeDisposal","addDisposeCallback","disposingElement","id","uniqueId","$header","clearDates","btn_clear","registerEventHandler","event","isObservable","subscribe","newOptions","updateOptions","dateRangeSettings","extraInfoShown","ExtraInfoShown","extraInfoWaiting","ExtraInfoWaiting","Dates","newSettings","newExtraInfoShown","newExtraInfoWaiting","newDates","UpdateHighlight","fixModalHeadHeight","drp3","$contentHead","$stickyWrapper","parent","wrapper","wrapAll","cancel","prevMonth","nextMonth","$container","setTimeout","$dpContent","$drpCalendar","animate","scrollToStartDate","isNumeric","stop","delay","update","current1","current2"],"sourceRoot":""}