{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"jQuery\"","webpack:///./vendor/assets/libs/bootstrap-daterangepicker/bootstrap-daterangepicker.js","webpack:///./node_modules/bootstrap-daterangepicker/daterangepicker.js","webpack:///external \"moment\""],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","window","fnDaterangepicker","$","fn","daterangepicker","options","callback","this","showWeekNumbers","showISOWeekNumbers","each","instance","data","container","addClass","_typeof","iterator","obj","constructor","moment","jquery","default","DateRangePicker","element","cb","parentEl","startDate","startOf","endDate","endOf","minDate","maxDate","maxSpan","autoApply","singleDatePicker","showDropdowns","minYear","subtract","format","maxYear","add","showCustomRangeLabel","timePicker","timePicker24Hour","timePickerIncrement","timePickerSeconds","linkedCalendars","autoUpdateInput","alwaysShowCalendars","ranges","opens","hasClass","drops","buttonClasses","applyButtonClasses","cancelButtonClasses","locale","direction","localeData","longDateFormat","separator","applyLabel","cancelLabel","weekLabel","customRangeLabel","daysOfWeek","weekdaysMin","monthNames","monthsShort","firstDay","firstDayOfWeek","isShowing","leftCalendar","rightCalendar","extend","template","length","appendTo","slice","elem","document","createElement","innerHTML","rangeHtml","isBefore","clone","isAfter","applyClass","cancelClass","dateLimit","join","isInvalidDate","isCustomDate","push","shift","start","end","range","is","val","split","setStartDate","setEndDate","timepicker","list","find","prepend","hide","show","html","on","proxy","clickPrev","clickNext","clickDate","hoverDate","monthOrYearChanged","timeChanged","clickRange","clickApply","clickCancel","elementChanged","keydown","toggle","updateElement","minute","Math","round","floor","updateMonthsInView","previousRightTime","updateView","renderTimePicker","removeAttr","removeClass","attr","updateCalendars","updateFormInputs","month","date","year","hour","second","ampm","parseInt","isNaN","renderCalendar","calculateChosenLabel","side","calendar","daysInMonth","lastDay","lastMonth","lastYear","daysInLastMonth","dayOfWeek","day","startDay","curDate","col","row","dateHtml","currentMonth","currentYear","inMinYear","inMaxYear","monthHtml","yearHtml","y","index","maxLimit","week","isoWeek","classes","isSame","Date","isoWeekday","isCustom","Array","apply","cname","disabled","replace","selected","timeSelector","i_in_24","time","padded","am_html","pm_html","move","containerTop","parentOffset","top","left","parentRightEdge","width","offset","scrollTop","scrollLeft","clientWidth","outerHeight","css","right","containerWidth","outerWidth","containerRight","containerLeft","e","_outsideClickProxy","outsideClick","oldStartDate","oldEndDate","trigger","chosenLabel","off","target","type","closest","showCalendars","hideCalendars","label","getAttribute","dates","parents","title","substr","el","dt","stopPropagation","customRange","isLeft","leftOrRight","cal","dateString","isValid","keyCode","preventDefault","newValue","remove","removeData","implementOptions","defaultOptions","factory"],"mappings":"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","file":"js/vendor/libs/bootstrap-daterangepicker/bootstrap-daterangepicker-20aded28934892669543.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://optimal.seneris.com/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 633);\n","(function() { module.exports = window[\"jQuery\"]; }());","import 'bootstrap-daterangepicker/daterangepicker.js'\n\n// Monkey-patch to detect when weeks are shown\n\nconst fnDaterangepicker = $.fn.daterangepicker\n\n$.fn.daterangepicker = function (options, callback) {\n fnDaterangepicker.call(this, options, callback)\n\n if (options && (options.showWeekNumbers || options.showISOWeekNumbers)) {\n this.each(function () {\n const instance = $(this).data('daterangepicker')\n\n if (instance && instance.container)\n instance.container.addClass('with-week-numbers')\n })\n }\n\n return this\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\r\n* @version: 3.0.5\r\n* @author: Dan Grossman http://www.dangrossman.info/\r\n* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.\r\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\r\n* @website: http://www.daterangepicker.com/\r\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\n if (typeof moment !== 'function' && moment.default) moment = moment.default;\n return factory(moment, jquery);\n });\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object' && module.exports) {\n // Node / Browserify\n //isomorphic issue\n var jQuery = typeof window != 'undefined' ? window.jQuery : undefined;\n\n if (!jQuery) {\n jQuery = require('jquery');\n if (!jQuery.fn) jQuery.fn = {};\n }\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 DateRangePicker(element, options, cb) {\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 this.opens = 'right';\n if (this.element.hasClass('pull-right')) this.opens = 'left';\n this.drops = 'down';\n if (this.element.hasClass('dropup')) this.drops = 'up';\n this.buttonClasses = 'btn btn-sm';\n this.applyButtonClasses = 'btn-primary';\n this.cancelButtonClasses = 'btn-default';\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 () {}; //some state information\n\n\n this.isShowing = false;\n this.leftCalendar = {};\n this.rightCalendar = {}; //custom options from user\n\n if (_typeof(options) !== 'object' || options === null) options = {}; //allow setting options with data attributes\n //data-api options will be overwritten with custom javascript options\n\n options = $.extend(this.element.data(), options); //html template for the picker UI\n\n if (typeof options.template !== 'string' && !(options.template instanceof $)) options.template = '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '' + '' + ' ' + '
' + '
';\n this.parentEl = options.parentEl && $(options.parentEl).length ? $(options.parentEl) : $(this.parentEl);\n this.container = $(options.template).appendTo(this.parentEl); //\n // handle all the possible options overriding defaults\n //\n\n if (_typeof(options.locale) === 'object') {\n if (typeof options.locale.direction === 'string') this.locale.direction = options.locale.direction;\n if (typeof options.locale.format === 'string') this.locale.format = options.locale.format;\n if (typeof options.locale.separator === 'string') this.locale.separator = options.locale.separator;\n if (_typeof(options.locale.daysOfWeek) === 'object') this.locale.daysOfWeek = options.locale.daysOfWeek.slice();\n if (_typeof(options.locale.monthNames) === 'object') this.locale.monthNames = options.locale.monthNames.slice();\n if (typeof options.locale.firstDay === 'number') this.locale.firstDay = options.locale.firstDay;\n if (typeof options.locale.applyLabel === 'string') this.locale.applyLabel = options.locale.applyLabel;\n if (typeof options.locale.cancelLabel === 'string') this.locale.cancelLabel = options.locale.cancelLabel;\n if (typeof options.locale.weekLabel === 'string') 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\n this.container.addClass(this.locale.direction);\n if (typeof options.startDate === 'string') this.startDate = moment(options.startDate, this.locale.format);\n if (typeof options.endDate === 'string') this.endDate = moment(options.endDate, this.locale.format);\n if (typeof options.minDate === 'string') this.minDate = moment(options.minDate, this.locale.format);\n if (typeof options.maxDate === 'string') this.maxDate = moment(options.maxDate, this.locale.format);\n if (_typeof(options.startDate) === 'object') this.startDate = moment(options.startDate);\n if (_typeof(options.endDate) === 'object') this.endDate = moment(options.endDate);\n if (_typeof(options.minDate) === 'object') this.minDate = moment(options.minDate);\n if (_typeof(options.maxDate) === 'object') this.maxDate = moment(options.maxDate); // sanity check for bad options\n\n if (this.minDate && this.startDate.isBefore(this.minDate)) this.startDate = this.minDate.clone(); // sanity check for bad options\n\n if (this.maxDate && this.endDate.isAfter(this.maxDate)) this.endDate = this.maxDate.clone();\n if (typeof options.applyButtonClasses === 'string') this.applyButtonClasses = options.applyButtonClasses;\n if (typeof options.applyClass === 'string') //backwards compat\n this.applyButtonClasses = options.applyClass;\n if (typeof options.cancelButtonClasses === 'string') this.cancelButtonClasses = options.cancelButtonClasses;\n if (typeof options.cancelClass === 'string') //backwards compat\n this.cancelButtonClasses = options.cancelClass;\n if (_typeof(options.maxSpan) === 'object') this.maxSpan = options.maxSpan;\n if (_typeof(options.dateLimit) === 'object') //backwards compat\n this.maxSpan = options.dateLimit;\n if (typeof options.opens === 'string') this.opens = options.opens;\n if (typeof options.drops === 'string') this.drops = options.drops;\n if (typeof options.showWeekNumbers === 'boolean') this.showWeekNumbers = options.showWeekNumbers;\n if (typeof options.showISOWeekNumbers === 'boolean') this.showISOWeekNumbers = options.showISOWeekNumbers;\n if (typeof options.buttonClasses === 'string') this.buttonClasses = options.buttonClasses;\n if (_typeof(options.buttonClasses) === 'object') this.buttonClasses = options.buttonClasses.join(' ');\n if (typeof options.showDropdowns === 'boolean') this.showDropdowns = options.showDropdowns;\n if (typeof options.minYear === 'number') this.minYear = options.minYear;\n if (typeof options.maxYear === 'number') this.maxYear = options.maxYear;\n if (typeof options.showCustomRangeLabel === 'boolean') this.showCustomRangeLabel = options.showCustomRangeLabel;\n\n if (typeof options.singleDatePicker === 'boolean') {\n this.singleDatePicker = options.singleDatePicker;\n if (this.singleDatePicker) this.endDate = this.startDate.clone();\n }\n\n if (typeof options.timePicker === 'boolean') this.timePicker = options.timePicker;\n if (typeof options.timePickerSeconds === 'boolean') this.timePickerSeconds = options.timePickerSeconds;\n if (typeof options.timePickerIncrement === 'number') this.timePickerIncrement = options.timePickerIncrement;\n if (typeof options.timePicker24Hour === 'boolean') this.timePicker24Hour = options.timePicker24Hour;\n if (typeof options.autoApply === 'boolean') this.autoApply = options.autoApply;\n if (typeof options.autoUpdateInput === 'boolean') this.autoUpdateInput = options.autoUpdateInput;\n if (typeof options.linkedCalendars === 'boolean') this.linkedCalendars = options.linkedCalendars;\n if (typeof options.isInvalidDate === 'function') this.isInvalidDate = options.isInvalidDate;\n if (typeof options.isCustomDate === 'function') this.isCustomDate = options.isCustomDate;\n if (typeof options.alwaysShowCalendars === 'boolean') this.alwaysShowCalendars = options.alwaysShowCalendars; // update day names order to firstDay\n\n if (this.locale.firstDay != 0) {\n var iterator = this.locale.firstDay;\n\n while (iterator > 0) {\n this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());\n iterator--;\n }\n }\n\n var start, end, range; //if no start/end dates set, check if an input element contains initial values\n\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 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\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 if (typeof options.ranges[range][0] === 'string') start = moment(options.ranges[range][0], this.locale.format);else start = moment(options.ranges[range][0]);\n if (typeof options.ranges[range][1] === 'string') end = moment(options.ranges[range][1], this.locale.format);else end = moment(options.ranges[range][1]); // If the start or end date exceed those allowed by the minDate or maxSpan\n // options, shorten the range to the allowable period.\n\n if (this.minDate && start.isBefore(this.minDate)) start = this.minDate.clone();\n var maxDate = this.maxDate;\n if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate)) maxDate = start.clone().add(this.maxSpan);\n if (maxDate && end.isAfter(maxDate)) end = maxDate.clone(); // 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\n if (this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day') || maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day')) continue; //Support unicode chars in the range names.\n\n var elem = document.createElement('textarea');\n elem.innerHTML = range;\n var rangeHtml = elem.value;\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 } //can't be used together for now\n\n\n if (this.timePicker && this.autoApply) this.autoApply = false;\n\n if (this.autoApply) {\n this.container.addClass('auto-apply');\n }\n\n if (_typeof(options.ranges) === 'object') 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\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); //apply CSS classes and labels to buttons\n\n this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);\n if (this.applyButtonClasses.length) this.container.find('.applyBtn').addClass(this.applyButtonClasses);\n if (this.cancelButtonClasses.length) 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 // event listeners\n //\n\n this.container.find('.drp-calendar').on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this)).on('click.daterangepicker', '.next', $.proxy(this.clickNext, this)).on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this)).on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this)).on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this)).on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this)).on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this));\n this.container.find('.ranges').on('click.daterangepicker', 'li', $.proxy(this.clickRange, this));\n this.container.find('.drp-buttons').on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)).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 });\n } else {\n this.element.on('click.daterangepicker', $.proxy(this.toggle, this));\n this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this));\n } //\n // if attached to a text input, set the initial value\n //\n\n\n this.updateElement();\n };\n\n DateRangePicker.prototype = {\n constructor: DateRangePicker,\n setStartDate: function setStartDate(startDate) {\n if (typeof startDate === 'string') this.startDate = moment(startDate, this.locale.format);\n if (_typeof(startDate) === 'object') this.startDate = moment(startDate);\n if (!this.timePicker) this.startDate = this.startDate.startOf('day');\n if (this.timePicker && this.timePickerIncrement) 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) 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) this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n }\n\n if (!this.isShowing) this.updateElement();\n this.updateMonthsInView();\n },\n setEndDate: function setEndDate(endDate) {\n if (typeof endDate === 'string') this.endDate = moment(endDate, this.locale.format);\n if (_typeof(endDate) === 'object') this.endDate = moment(endDate);\n if (!this.timePicker) this.endDate = this.endDate.endOf('day');\n if (this.timePicker && this.timePickerIncrement) this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n if (this.endDate.isBefore(this.startDate)) this.endDate = this.startDate.clone();\n if (this.maxDate && this.endDate.isAfter(this.maxDate)) this.endDate = this.maxDate.clone();\n if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate)) this.endDate = this.startDate.clone().add(this.maxSpan);\n this.previousRightTime = this.endDate.clone();\n this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n if (!this.isShowing) this.updateElement();\n this.updateMonthsInView();\n },\n isInvalidDate: function isInvalidDate() {\n return false;\n },\n isCustomDate: function isCustomDate() {\n return false;\n },\n updateView: function updateView() {\n if (this.timePicker) {\n this.renderTimePicker('left');\n this.renderTimePicker('right');\n\n if (!this.endDate) {\n this.container.find('.right .calendar-time select').attr('disabled', 'disabled').addClass('disabled');\n } else {\n this.container.find('.right .calendar-time select').removeAttr('disabled').removeClass('disabled');\n }\n }\n\n if (this.endDate) 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 updateMonthsInView: function updateMonthsInView() {\n if (this.endDate) {\n //if both dates are visible already, do nothing\n if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) && (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))) {\n return;\n }\n\n this.leftCalendar.month = this.startDate.clone().date(2);\n\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 } 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\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 updateCalendars: function updateCalendars() {\n if (this.timePicker) {\n var hour, minute, second;\n\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\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\n }\n\n second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.left .ampmselect').val();\n if (ampm === 'PM' && hour < 12) hour += 12;\n if (ampm === 'AM' && hour === 12) 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\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\n }\n\n second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.right .ampmselect').val();\n if (ampm === 'PM' && hour < 12) hour += 12;\n if (ampm === 'AM' && hour === 12) hour = 0;\n }\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'); //highlight any predefined range matching the current start and end dates\n\n this.container.find('.ranges li').removeClass('active');\n if (this.endDate == null) return;\n this.calculateChosenLabel();\n },\n renderCalendar: function renderCalendar(side) {\n //\n // Build the matrix of dates that will populate the calendar\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(); //initialize a 6 rows x 7 columns array for the calendar\n\n var calendar = [];\n calendar.firstDay = firstDay;\n calendar.lastDay = lastDay;\n\n for (var i = 0; i < 6; i++) {\n calendar[i] = [];\n } //populate the calendar with date objects\n\n\n var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;\n if (startDay > daysInLastMonth) startDay -= 7;\n if (dayOfWeek == this.locale.firstDay) startDay = daysInLastMonth - 6;\n var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\n var col, row;\n\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\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 } //make the calendar object available to hoverDate/clickDate\n\n\n if (side == 'left') {\n this.leftCalendar.calendar = calendar;\n } else {\n this.rightCalendar.calendar = calendar;\n } //\n // Display the calendar\n //\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' ? {\n left: 'chevron-left',\n right: 'chevron-right'\n } : {\n left: 'chevron-right',\n right: 'chevron-left'\n };\n var html = '';\n html += '';\n html += ''; // add empty cell for week number\n\n if (this.showWeekNumbers || this.showISOWeekNumbers) 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 var monthHtml = '\";\n var yearHtml = '';\n dateHtml = monthHtml + yearHtml;\n }\n\n html += '';\n\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 += ''; // add week number label\n\n if (this.showWeekNumbers || this.showISOWeekNumbers) html += '';\n $.each(this.locale.daysOfWeek, function (index, dayOfWeek) {\n html += '';\n });\n html += '';\n html += '';\n html += ''; //adjust maxDate to reflect the maxSpan setting in order to\n //grey out end dates beyond the maxSpan\n\n if (this.endDate == null && this.maxSpan) {\n var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day');\n\n if (!maxDate || maxLimit.isBefore(maxDate)) {\n maxDate = maxLimit;\n }\n }\n\n for (var row = 0; row < 6; row++) {\n html += ''; // add week number\n\n if (this.showWeekNumbers) html += '';else if (this.showISOWeekNumbers) html += '';\n\n for (var col = 0; col < 7; col++) {\n var classes = []; //highlight today's date\n\n if (calendar[row][col].isSame(new Date(), \"day\")) classes.push('today'); //highlight weekends\n\n if (calendar[row][col].isoWeekday() > 5) classes.push('weekend'); //grey out the dates in other months displayed at beginning and end of this calendar\n\n if (calendar[row][col].month() != calendar[1][1].month()) classes.push('off', 'ends'); //don't allow selection of dates before the minimum date\n\n if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day')) classes.push('off', 'disabled'); //don't allow selection of dates after the maximum date\n\n if (maxDate && calendar[row][col].isAfter(maxDate, 'day')) classes.push('off', 'disabled'); //don't allow selection of date if a custom function decides it's invalid\n\n if (this.isInvalidDate(calendar[row][col])) classes.push('off', 'disabled'); //highlight the currently selected start date\n\n if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD')) classes.push('active', 'start-date'); //highlight the currently selected end date\n\n if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD')) classes.push('active', 'end-date'); //highlight dates in-between the selected dates\n\n if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate) classes.push('in-range'); //apply custom classes for this date\n\n var isCustom = this.isCustomDate(calendar[row][col]);\n\n if (isCustom !== false) {\n if (typeof isCustom === 'string') classes.push(isCustom);else Array.prototype.push.apply(classes, isCustom);\n }\n\n var cname = '',\n disabled = false;\n\n for (var i = 0; i < classes.length; i++) {\n cname += classes[i] + ' ';\n if (classes[i] == 'disabled') disabled = true;\n }\n\n if (!disabled) cname += 'available';\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 this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html);\n },\n renderTimePicker: function renderTimePicker(side) {\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 var html,\n selected,\n minDate,\n maxDate = this.maxDate;\n if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate))) 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; //Preserve the time already selected\n\n var timeSelector = this.container.find('.drp-calendar.right .calendar-time');\n\n if (timeSelector.html() != '') {\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) selected.hour(selected.hour() + 12);\n if (ampm === 'AM' && selected.hour() === 12) selected.hour(0);\n }\n }\n\n if (selected.isBefore(this.startDate)) selected = this.startDate.clone();\n if (maxDate && selected.isAfter(maxDate)) selected = maxDate.clone();\n } //\n // hours\n //\n\n\n html = ' '; //\n // minutes\n //\n\n html += ': '; //\n // seconds\n //\n\n if (this.timePickerSeconds) {\n html += ': ';\n } //\n // AM/PM\n //\n\n\n if (!this.timePicker24Hour) {\n html += '';\n }\n\n this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html);\n },\n updateFormInputs: function updateFormInputs() {\n if (this.singleDatePicker || this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate))) {\n this.container.find('button.applyBtn').removeAttr('disabled');\n } else {\n this.container.find('button.applyBtn').attr('disabled', 'disabled');\n }\n },\n move: function move() {\n var parentOffset = {\n top: 0,\n left: 0\n },\n containerTop;\n var parentRightEdge = $(window).width();\n\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') containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;else containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; // Force the container to it's actual width\n\n this.container.css({\n top: 0,\n left: 0,\n right: 'auto'\n });\n var containerWidth = this.container.outerWidth();\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\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 - containerWidth / 2;\n\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\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 show: function show(e) {\n if (this.isShowing) return; // Create a click proxy that is private to this instance of datepicker, for unbinding\n\n this._outsideClickProxy = $.proxy(function (e) {\n this.outsideClick(e);\n }, this); // Bind global datepicker mousedown for hiding and\n\n $(document).on('mousedown.daterangepicker', this._outsideClickProxy) // also support mobile devices\n .on('touchend.daterangepicker', this._outsideClickProxy) // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them\n .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy) // and also close when focus changes to outside the picker (eg. tabbing between controls)\n .on('focusin.daterangepicker', this._outsideClickProxy); // Reposition the picker if the window is resized while it's open\n\n $(window).on('resize.daterangepicker', $.proxy(function (e) {\n this.move(e);\n }, this));\n this.oldStartDate = this.startDate.clone();\n this.oldEndDate = this.endDate.clone();\n this.previousRightTime = this.endDate.clone();\n this.updateView();\n this.container.show();\n this.move();\n this.element.trigger('show.daterangepicker', this);\n this.isShowing = true;\n },\n hide: function hide(e) {\n if (!this.isShowing) return; //incomplete date selection, revert to last values\n\n if (!this.endDate) {\n this.startDate = this.oldStartDate.clone();\n this.endDate = this.oldEndDate.clone();\n } //if a new date range was selected, invoke the user callback function\n\n\n if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel); //if picker is attached to a text input, update it\n\n this.updateElement();\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 toggle: function toggle(e) {\n if (this.isShowing) {\n this.hide();\n } else {\n this.show();\n }\n },\n outsideClick: function outsideClick(e) {\n var target = $(e.target); // if the page is clicked anywhere except within the daterangerpicker/button\n // itself then call this.hide()\n\n if ( // ie modal dialog fix\n e.type == \"focusin\" || target.closest(this.element).length || target.closest(this.container).length || target.closest('.calendar-table').length) return;\n this.hide();\n this.element.trigger('outsideClick.daterangepicker', this);\n },\n showCalendars: function showCalendars() {\n this.container.addClass('show-calendar');\n this.move();\n this.element.trigger('showCalendar.daterangepicker', this);\n },\n hideCalendars: function hideCalendars() {\n this.container.removeClass('show-calendar');\n this.element.trigger('hideCalendar.daterangepicker', this);\n },\n clickRange: function clickRange(e) {\n var label = e.target.getAttribute('data-range-key');\n this.chosenLabel = label;\n\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) this.hideCalendars();\n this.clickApply();\n }\n },\n clickPrev: function clickPrev(e) {\n var cal = $(e.target).parents('.drp-calendar');\n\n if (cal.hasClass('left')) {\n this.leftCalendar.month.subtract(1, 'month');\n if (this.linkedCalendars) this.rightCalendar.month.subtract(1, 'month');\n } else {\n this.rightCalendar.month.subtract(1, 'month');\n }\n\n this.updateCalendars();\n },\n clickNext: function clickNext(e) {\n var cal = $(e.target).parents('.drp-calendar');\n\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) this.leftCalendar.month.add(1, 'month');\n }\n\n this.updateCalendars();\n },\n hoverDate: function hoverDate(e) {\n //ignore dates that can't be selected\n if (!$(e.target).hasClass('available')) return;\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]; //highlight the dates between the start date and the date being hovered as a potential end date\n\n var leftCalendar = this.leftCalendar;\n var rightCalendar = this.rightCalendar;\n var startDate = this.startDate;\n\n if (!this.endDate) {\n this.container.find('.drp-calendar tbody td').each(function (index, el) {\n //skip week numbers, only look at dates\n if ($(el).hasClass('week')) return;\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 clickDate: function clickDate(e) {\n if (!$(e.target).hasClass('available')) return;\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 // 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')) {\n //picking start\n if (this.timePicker) {\n var hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.left .ampmselect').val();\n if (ampm === 'PM' && hour < 12) hour += 12;\n if (ampm === 'AM' && hour === 12) hour = 0;\n }\n\n var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\n }\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\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 {\n // picking end\n if (this.timePicker) {\n var hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n\n if (!this.timePicker24Hour) {\n var ampm = this.container.find('.right .ampmselect').val();\n if (ampm === 'PM' && hour < 12) hour += 12;\n if (ampm === 'AM' && hour === 12) hour = 0;\n }\n\n var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n\n if (isNaN(minute)) {\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\n }\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\n this.setEndDate(date.clone());\n\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) this.clickApply();\n }\n\n this.updateView(); //This is to cancel the blur event handler if the mouse was in one of the inputs\n\n e.stopPropagation();\n },\n calculateChosenLabel: function calculateChosenLabel() {\n var customRange = true;\n var i = 0;\n\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\"; //ignore times when comparing dates if time picker seconds is not enabled\n\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\n i++;\n }\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\n this.showCalendars();\n }\n },\n clickApply: function clickApply(e) {\n this.hide();\n this.element.trigger('apply.daterangepicker', this);\n },\n clickCancel: function clickCancel(e) {\n this.startDate = this.oldStartDate;\n this.endDate = this.oldEndDate;\n this.hide();\n this.element.trigger('cancel.daterangepicker', this);\n },\n monthOrYearChanged: function monthOrYearChanged(e) {\n var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'),\n leftOrRight = isLeft ? 'left' : 'right',\n cal = this.container.find('.drp-calendar.' + leftOrRight); // Month must be Number for new moment versions\n\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) this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');\n } else {\n this.rightCalendar.month.month(month).year(year);\n if (this.linkedCalendars) this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');\n }\n\n this.updateCalendars();\n },\n timeChanged: function timeChanged(e) {\n var cal = $(e.target).closest('.drp-calendar'),\n isLeft = cal.hasClass('left');\n var hour = parseInt(cal.find('.hourselect').val(), 10);\n var minute = parseInt(cal.find('.minuteselect').val(), 10);\n\n if (isNaN(minute)) {\n minute = parseInt(cal.find('.minuteselect option:last').val(), 10);\n }\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) hour += 12;\n if (ampm === 'AM' && hour === 12) 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\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 } //update the calendars so all clickable dates reflect the new time component\n\n\n this.updateCalendars(); //update the form inputs above the calendars with the new time\n\n this.updateFormInputs(); //re-render the time pickers because changing one selection can affect what's enabled in another\n\n this.renderTimePicker('left');\n this.renderTimePicker('right');\n },\n elementChanged: function elementChanged() {\n if (!this.element.is('input')) return;\n if (!this.element.val().length) return;\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 this.setStartDate(start);\n this.setEndDate(end);\n this.updateView();\n },\n keydown: function keydown(e) {\n //hide on tab or enter\n if (e.keyCode === 9 || e.keyCode === 13) {\n this.hide();\n } //hide on esc and prevent propagation\n\n\n if (e.keyCode === 27) {\n e.preventDefault();\n e.stopPropagation();\n this.hide();\n }\n },\n updateElement: function updateElement() {\n if (this.element.is('input') && this.autoUpdateInput) {\n var newValue = this.startDate.format(this.locale.format);\n\n if (!this.singleDatePicker) {\n newValue += this.locale.separator + this.endDate.format(this.locale.format);\n }\n\n if (newValue !== this.element.val()) {\n this.element.val(newValue).trigger('change');\n }\n }\n },\n remove: function remove() {\n this.container.remove();\n this.element.off('.daterangepicker');\n this.element.removeData();\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')) el.data('daterangepicker').remove();\n el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback));\n });\n return this;\n };\n\n return DateRangePicker;\n});","(function() { module.exports = window[\"moment\"]; }());"],"sourceRoot":""}