{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"jQuery\"","webpack:///./vendor/assets/libs/bootstrap-datepicker/bootstrap-datepicker.js","webpack:///./node_modules/bootstrap-datepicker/dist/js/bootstrap-datepicker.js"],"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","_typeof","iterator","obj","constructor","$","undefined","UTCDate","Date","UTC","apply","arguments","UTCToday","today","getFullYear","getMonth","getDate","isUTCEquals","date1","date2","getUTCFullYear","getUTCMonth","getUTCDate","alias","method","deprecationMsg","fn","datepicker","deprecated","this","extras","DateArray","slice","contains","val","valueOf","length","remove","splice","replace","new_array","isArray","clear","push","copy","a","extend","Datepicker","element","options","data","_events","_secondaryEvents","_process_options","dates","viewDate","defaultViewDate","focusDate","isInput","is","inputField","find","component","hasClass","isInline","picker","DPGlobal","template","_check_template","templates","leftArrow","html","rightArrow","_buildEvents","_attachEvents","addClass","appendTo","rtl","calendarWeeks","attr","Number","startDate","_o","endDate","daysOfWeekDisabled","daysOfWeekHighlighted","datesDisabled","_allow_update","setViewMode","startView","fillDow","fillMonths","update","show","_resolveViewName","view","each","viewModes","viewMode","inArray","names","_resolveDaysOfWeek","daysOfWeek","split","map","tmp","match","ex","opts","lang","language","defaults","minViewMode","maxViewMode","Math","max","min","multidate","multidateSeparator","String","weekStart","weekEnd","format","parseFormat","_local_to_utc","_zero_time","parseDate","assumeNearbyYear","Infinity","plc","orientation","toLowerCase","_plc","grep","word","test","x","y","year","month","day","_applyEvents","evs","el","ch","ev","on","_unapplyEvents","off","events","keyup","proxy","e","keyCode","keydown","paste","showOnFocus","focus","click","blur","_focused_from","target","immediateUpdates","date","navArrowsClick","dayCellClick","resize","place","document","hide","_detachEvents","_attachSecondaryEvents","_detachSecondaryEvents","_trigger","event","altdate","local_date","_utc_to_local","trigger","type","ix","formatDate","prop","enableOnReadonly","container","navigator","msMaxTouchPoints","disableTouchKeyboard","detach","forceParse","setValue","destroy","dateString","originalEvent","clipboardData","types","getData","setDate","preventDefault","utc","local","getTime","getTimezoneOffset","_zero_utc_time","getDates","getUTCDates","selected_date","clearDates","autoclose","setDates","args","setUTCDates","setUTCDate","formatted","getFormattedDate","join","getStartDate","setStartDate","updateNavArrows","getEndDate","setEndDate","setDaysOfWeekDisabled","setDaysOfWeekHighlighted","setDatesDisabled","calendarWidth","outerWidth","calendarHeight","outerHeight","windowWidth","width","scrollTop","appendOffset","offset","parentsZindex","parents","itemZIndex","css","zIndex","zIndexOffset","parent","height","left","top","removeClass","yorient","parseInt","right","oldDates","fromArgs","dateWithinRange","updateViewDate","change","fill","showWeekDays","dowCnt","daysMin","append","localDate","monthsShort","setRange","range","getClassNames","cls","todayHighlight","dateIsDisabled","getUTCDay","_fill_yearsView","selector","cssClass","factor","startYear","endYear","beforeFn","classes","tooltip","before","step","startVal","floor","endVal","focusedVal","selected","currVal","noop","enabled","concat","text","startMonth","endMonth","todaytxt","cleartxt","titleFormat","todayDate","titleBtnVisible","todayBtn","weekOfDateIsDisabled","isNaN","clearBtn","title","prevMonth","nextMonth","setUTCFullYear","weekDay","clsName","ws","th","yth","calWeek","content","beforeShowDay","isFunction","uniqueSort","unique","toString","monthsTitle","months","end","eq","beforeShowMonth","that","moDate","beforeShowYear","beforeShowDecade","beforeShowCentury","prevIsDisabled","nextIsDisabled","toggleClass","stopPropagation","_setDate","index","setUTCMonth","timestamp","currentTarget","dir","navStep","moveMonth","_toggle_multidate","toggleActive","which","moveDay","newDate","moveWeek","new_month","new_date","mag","abs","moveYear","moveAvailableDate","newViewDate","dateChanged","keyboardNavigation","ctrlKey","shiftKey","children","filter","DateRangePicker","inputs","jquery","keepEmptyValues","datepickerPlugin","dateUpdated","pickers","updateDates","opts_from_el","prefix","out","RegExp","re_lower","_","opts_from_locale","locale_opts","k","updateRanges","updating","dp","keep_empty_values","j","old","option","internal_return","Array","shift","$this","elopts","locopts","toArray","Error","Constructor","en","days","daysShort","validParts","nonpunctuation","toValue","toDisplay","separators","parts","assumeNearby","part","fn_map","w","dateAliases","yesterday","tomorrow","filtered","parsed","setters_order","setters_map","yyyy","v","threshold","_d","fparts","match_part","cnt","_date","D","DD","M","MM","yy","substring","dd","mm","seps","headTemplate","contTemplate","footTemplate","noConflict","version","msg","console","warn"],"mappings":"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","file":"js/vendor/libs/bootstrap-datepicker/bootstrap-datepicker-783f7943e661ef8de5a1.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 = 629);\n","(function() { module.exports = window[\"jQuery\"]; }());","import 'bootstrap-datepicker/dist/js/bootstrap-datepicker.js'\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/*!\n * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker)\n *\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') {\n factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n})(function ($, undefined) {\n function UTCDate() {\n return new Date(Date.UTC.apply(Date, arguments));\n }\n\n function UTCToday() {\n var today = new Date();\n return UTCDate(today.getFullYear(), today.getMonth(), today.getDate());\n }\n\n function isUTCEquals(date1, date2) {\n return date1.getUTCFullYear() === date2.getUTCFullYear() && date1.getUTCMonth() === date2.getUTCMonth() && date1.getUTCDate() === date2.getUTCDate();\n }\n\n function alias(method, deprecationMsg) {\n return function () {\n if (deprecationMsg !== undefined) {\n $.fn.datepicker.deprecated(deprecationMsg);\n }\n\n return this[method].apply(this, arguments);\n };\n }\n\n function isValidDate(d) {\n return d && !isNaN(d.getTime());\n }\n\n var DateArray = function () {\n var extras = {\n get: function get(i) {\n return this.slice(i)[0];\n },\n contains: function contains(d) {\n // Array.indexOf is not cross-browser;\n // $.inArray doesn't work with Dates\n var val = d && d.valueOf();\n\n for (var i = 0, l = this.length; i < l; i++) {\n // Use date arithmetic to allow dates with different times to match\n if (0 <= this[i].valueOf() - val && this[i].valueOf() - val < 1000 * 60 * 60 * 24) return i;\n }\n\n return -1;\n },\n remove: function remove(i) {\n this.splice(i, 1);\n },\n replace: function replace(new_array) {\n if (!new_array) return;\n if (!$.isArray(new_array)) new_array = [new_array];\n this.clear();\n this.push.apply(this, new_array);\n },\n clear: function clear() {\n this.length = 0;\n },\n copy: function copy() {\n var a = new DateArray();\n a.replace(this);\n return a;\n }\n };\n return function () {\n var a = [];\n a.push.apply(a, arguments);\n $.extend(a, extras);\n return a;\n };\n }(); // Picker object\n\n\n var Datepicker = function Datepicker(element, options) {\n $.data(element, 'datepicker', this);\n this._events = [];\n this._secondaryEvents = [];\n\n this._process_options(options);\n\n this.dates = new DateArray();\n this.viewDate = this.o.defaultViewDate;\n this.focusDate = null;\n this.element = $(element);\n this.isInput = this.element.is('input');\n this.inputField = this.isInput ? this.element : this.element.find('input');\n this.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .input-group-append, .input-group-prepend, .btn') : false;\n if (this.component && this.component.length === 0) this.component = false;\n this.isInline = !this.component && this.element.is('div');\n this.picker = $(DPGlobal.template); // Checking templates and inserting\n\n if (this._check_template(this.o.templates.leftArrow)) {\n this.picker.find('.prev').html(this.o.templates.leftArrow);\n }\n\n if (this._check_template(this.o.templates.rightArrow)) {\n this.picker.find('.next').html(this.o.templates.rightArrow);\n }\n\n this._buildEvents();\n\n this._attachEvents();\n\n if (this.isInline) {\n this.picker.addClass('datepicker-inline').appendTo(this.element);\n } else {\n this.picker.addClass('datepicker-dropdown dropdown-menu');\n }\n\n if (this.o.rtl) {\n this.picker.addClass('datepicker-rtl');\n }\n\n if (this.o.calendarWeeks) {\n this.picker.find('.datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear').attr('colspan', function (i, val) {\n return Number(val) + 1;\n });\n }\n\n this._process_options({\n startDate: this._o.startDate,\n endDate: this._o.endDate,\n daysOfWeekDisabled: this.o.daysOfWeekDisabled,\n daysOfWeekHighlighted: this.o.daysOfWeekHighlighted,\n datesDisabled: this.o.datesDisabled\n });\n\n this._allow_update = false;\n this.setViewMode(this.o.startView);\n this._allow_update = true;\n this.fillDow();\n this.fillMonths();\n this.update();\n\n if (this.isInline) {\n this.show();\n }\n };\n\n Datepicker.prototype = {\n constructor: Datepicker,\n _resolveViewName: function _resolveViewName(view) {\n $.each(DPGlobal.viewModes, function (i, viewMode) {\n if (view === i || $.inArray(view, viewMode.names) !== -1) {\n view = i;\n return false;\n }\n });\n return view;\n },\n _resolveDaysOfWeek: function _resolveDaysOfWeek(daysOfWeek) {\n if (!$.isArray(daysOfWeek)) daysOfWeek = daysOfWeek.split(/[,\\s]*/);\n return $.map(daysOfWeek, Number);\n },\n _check_template: function _check_template(tmp) {\n try {\n // If empty\n if (tmp === undefined || tmp === \"\") {\n return false;\n } // If no html, everything ok\n\n\n if ((tmp.match(/[<>]/g) || []).length <= 0) {\n return true;\n } // Checking if html is fine\n\n\n var jDom = $(tmp);\n return jDom.length > 0;\n } catch (ex) {\n return false;\n }\n },\n _process_options: function _process_options(opts) {\n // Store raw options for reference\n this._o = $.extend({}, this._o, opts); // Processed options\n\n var o = this.o = $.extend({}, this._o); // Check if \"de-DE\" style date is available, if not language should\n // fallback to 2 letter code eg \"de\"\n\n var lang = o.language;\n\n if (!dates[lang]) {\n lang = lang.split('-')[0];\n if (!dates[lang]) lang = defaults.language;\n }\n\n o.language = lang; // Retrieve view index from any aliases\n\n o.startView = this._resolveViewName(o.startView);\n o.minViewMode = this._resolveViewName(o.minViewMode);\n o.maxViewMode = this._resolveViewName(o.maxViewMode); // Check view is between min and max\n\n o.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, o.startView)); // true, false, or Number > 0\n\n if (o.multidate !== true) {\n o.multidate = Number(o.multidate) || false;\n if (o.multidate !== false) o.multidate = Math.max(0, o.multidate);\n }\n\n o.multidateSeparator = String(o.multidateSeparator);\n o.weekStart %= 7;\n o.weekEnd = (o.weekStart + 6) % 7;\n var format = DPGlobal.parseFormat(o.format);\n\n if (o.startDate !== -Infinity) {\n if (!!o.startDate) {\n if (o.startDate instanceof Date) o.startDate = this._local_to_utc(this._zero_time(o.startDate));else o.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear);\n } else {\n o.startDate = -Infinity;\n }\n }\n\n if (o.endDate !== Infinity) {\n if (!!o.endDate) {\n if (o.endDate instanceof Date) o.endDate = this._local_to_utc(this._zero_time(o.endDate));else o.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear);\n } else {\n o.endDate = Infinity;\n }\n }\n\n o.daysOfWeekDisabled = this._resolveDaysOfWeek(o.daysOfWeekDisabled || []);\n o.daysOfWeekHighlighted = this._resolveDaysOfWeek(o.daysOfWeekHighlighted || []);\n o.datesDisabled = o.datesDisabled || [];\n\n if (!$.isArray(o.datesDisabled)) {\n o.datesDisabled = o.datesDisabled.split(',');\n }\n\n o.datesDisabled = $.map(o.datesDisabled, function (d) {\n return DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear);\n });\n\n var plc = String(o.orientation).toLowerCase().split(/\\s+/g),\n _plc = o.orientation.toLowerCase();\n\n plc = $.grep(plc, function (word) {\n return /^auto|left|right|top|bottom$/.test(word);\n });\n o.orientation = {\n x: 'auto',\n y: 'auto'\n };\n if (!_plc || _plc === 'auto') ; // no action\n else if (plc.length === 1) {\n switch (plc[0]) {\n case 'top':\n case 'bottom':\n o.orientation.y = plc[0];\n break;\n\n case 'left':\n case 'right':\n o.orientation.x = plc[0];\n break;\n }\n } else {\n _plc = $.grep(plc, function (word) {\n return /^left|right$/.test(word);\n });\n o.orientation.x = _plc[0] || 'auto';\n _plc = $.grep(plc, function (word) {\n return /^top|bottom$/.test(word);\n });\n o.orientation.y = _plc[0] || 'auto';\n }\n\n if (o.defaultViewDate instanceof Date || typeof o.defaultViewDate === 'string') {\n o.defaultViewDate = DPGlobal.parseDate(o.defaultViewDate, format, o.language, o.assumeNearbyYear);\n } else if (o.defaultViewDate) {\n var year = o.defaultViewDate.year || new Date().getFullYear();\n var month = o.defaultViewDate.month || 0;\n var day = o.defaultViewDate.day || 1;\n o.defaultViewDate = UTCDate(year, month, day);\n } else {\n o.defaultViewDate = UTCToday();\n }\n },\n _applyEvents: function _applyEvents(evs) {\n for (var i = 0, el, ch, ev; i < evs.length; i++) {\n el = evs[i][0];\n\n if (evs[i].length === 2) {\n ch = undefined;\n ev = evs[i][1];\n } else if (evs[i].length === 3) {\n ch = evs[i][1];\n ev = evs[i][2];\n }\n\n el.on(ev, ch);\n }\n },\n _unapplyEvents: function _unapplyEvents(evs) {\n for (var i = 0, el, ev, ch; i < evs.length; i++) {\n el = evs[i][0];\n\n if (evs[i].length === 2) {\n ch = undefined;\n ev = evs[i][1];\n } else if (evs[i].length === 3) {\n ch = evs[i][1];\n ev = evs[i][2];\n }\n\n el.off(ev, ch);\n }\n },\n _buildEvents: function _buildEvents() {\n var events = {\n keyup: $.proxy(function (e) {\n if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1) this.update();\n }, this),\n keydown: $.proxy(this.keydown, this),\n paste: $.proxy(this.paste, this)\n };\n\n if (this.o.showOnFocus === true) {\n events.focus = $.proxy(this.show, this);\n }\n\n if (this.isInput) {\n // single input\n this._events = [[this.element, events]];\n } // component: input + button\n else if (this.component && this.inputField.length) {\n this._events = [// For components that are not readonly, allow keyboard nav\n [this.inputField, events], [this.component, {\n click: $.proxy(this.show, this)\n }]];\n } else {\n this._events = [[this.element, {\n click: $.proxy(this.show, this),\n keydown: $.proxy(this.keydown, this)\n }]];\n }\n\n this._events.push( // Component: listen for blur on element descendants\n [this.element, '*', {\n blur: $.proxy(function (e) {\n this._focused_from = e.target;\n }, this)\n }], // Input: listen for blur on element\n [this.element, {\n blur: $.proxy(function (e) {\n this._focused_from = e.target;\n }, this)\n }]);\n\n if (this.o.immediateUpdates) {\n // Trigger input updates immediately on changed year/month\n this._events.push([this.element, {\n 'changeYear changeMonth': $.proxy(function (e) {\n this.update(e.date);\n }, this)\n }]);\n }\n\n this._secondaryEvents = [[this.picker, {\n click: $.proxy(this.click, this)\n }], [this.picker, '.prev, .next', {\n click: $.proxy(this.navArrowsClick, this)\n }], [this.picker, '.day:not(.disabled)', {\n click: $.proxy(this.dayCellClick, this)\n }], [$(window), {\n resize: $.proxy(this.place, this)\n }], [$(document), {\n 'mousedown touchstart': $.proxy(function (e) {\n // Clicked outside the datepicker, hide it\n if (!(this.element.is(e.target) || this.element.find(e.target).length || this.picker.is(e.target) || this.picker.find(e.target).length || this.isInline)) {\n this.hide();\n }\n }, this)\n }]];\n },\n _attachEvents: function _attachEvents() {\n this._detachEvents();\n\n this._applyEvents(this._events);\n },\n _detachEvents: function _detachEvents() {\n this._unapplyEvents(this._events);\n },\n _attachSecondaryEvents: function _attachSecondaryEvents() {\n this._detachSecondaryEvents();\n\n this._applyEvents(this._secondaryEvents);\n },\n _detachSecondaryEvents: function _detachSecondaryEvents() {\n this._unapplyEvents(this._secondaryEvents);\n },\n _trigger: function _trigger(event, altdate) {\n var date = altdate || this.dates.get(-1),\n local_date = this._utc_to_local(date);\n\n this.element.trigger({\n type: event,\n date: local_date,\n viewMode: this.viewMode,\n dates: $.map(this.dates, this._utc_to_local),\n format: $.proxy(function (ix, format) {\n if (arguments.length === 0) {\n ix = this.dates.length - 1;\n format = this.o.format;\n } else if (typeof ix === 'string') {\n format = ix;\n ix = this.dates.length - 1;\n }\n\n format = format || this.o.format;\n var date = this.dates.get(ix);\n return DPGlobal.formatDate(date, format, this.o.language);\n }, this)\n });\n },\n show: function show() {\n if (this.inputField.is(':disabled') || this.inputField.prop('readonly') && this.o.enableOnReadonly === false) return;\n if (!this.isInline) this.picker.appendTo(this.o.container);\n this.place();\n this.picker.show();\n\n this._attachSecondaryEvents();\n\n this._trigger('show');\n\n if ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) {\n $(this.element).blur();\n }\n\n return this;\n },\n hide: function hide() {\n if (this.isInline || !this.picker.is(':visible')) return this;\n this.focusDate = null;\n this.picker.hide().detach();\n\n this._detachSecondaryEvents();\n\n this.setViewMode(this.o.startView);\n if (this.o.forceParse && this.inputField.val()) this.setValue();\n\n this._trigger('hide');\n\n return this;\n },\n destroy: function destroy() {\n this.hide();\n\n this._detachEvents();\n\n this._detachSecondaryEvents();\n\n this.picker.remove();\n delete this.element.data().datepicker;\n\n if (!this.isInput) {\n delete this.element.data().date;\n }\n\n return this;\n },\n paste: function paste(e) {\n var dateString;\n\n if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.types && $.inArray('text/plain', e.originalEvent.clipboardData.types) !== -1) {\n dateString = e.originalEvent.clipboardData.getData('text/plain');\n } else if (window.clipboardData) {\n dateString = window.clipboardData.getData('Text');\n } else {\n return;\n }\n\n this.setDate(dateString);\n this.update();\n e.preventDefault();\n },\n _utc_to_local: function _utc_to_local(utc) {\n if (!utc) {\n return utc;\n }\n\n var local = new Date(utc.getTime() + utc.getTimezoneOffset() * 60000);\n\n if (local.getTimezoneOffset() !== utc.getTimezoneOffset()) {\n local = new Date(utc.getTime() + local.getTimezoneOffset() * 60000);\n }\n\n return local;\n },\n _local_to_utc: function _local_to_utc(local) {\n return local && new Date(local.getTime() - local.getTimezoneOffset() * 60000);\n },\n _zero_time: function _zero_time(local) {\n return local && new Date(local.getFullYear(), local.getMonth(), local.getDate());\n },\n _zero_utc_time: function _zero_utc_time(utc) {\n return utc && UTCDate(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate());\n },\n getDates: function getDates() {\n return $.map(this.dates, this._utc_to_local);\n },\n getUTCDates: function getUTCDates() {\n return $.map(this.dates, function (d) {\n return new Date(d);\n });\n },\n getDate: function getDate() {\n return this._utc_to_local(this.getUTCDate());\n },\n getUTCDate: function getUTCDate() {\n var selected_date = this.dates.get(-1);\n\n if (selected_date !== undefined) {\n return new Date(selected_date);\n } else {\n return null;\n }\n },\n clearDates: function clearDates() {\n this.inputField.val('');\n this.update();\n\n this._trigger('changeDate');\n\n if (this.o.autoclose) {\n this.hide();\n }\n },\n setDates: function setDates() {\n var args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n this.update.apply(this, args);\n\n this._trigger('changeDate');\n\n this.setValue();\n return this;\n },\n setUTCDates: function setUTCDates() {\n var args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n this.setDates.apply(this, $.map(args, this._utc_to_local));\n return this;\n },\n setDate: alias('setDates'),\n setUTCDate: alias('setUTCDates'),\n remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead'),\n setValue: function setValue() {\n var formatted = this.getFormattedDate();\n this.inputField.val(formatted);\n return this;\n },\n getFormattedDate: function getFormattedDate(format) {\n if (format === undefined) format = this.o.format;\n var lang = this.o.language;\n return $.map(this.dates, function (d) {\n return DPGlobal.formatDate(d, format, lang);\n }).join(this.o.multidateSeparator);\n },\n getStartDate: function getStartDate() {\n return this.o.startDate;\n },\n setStartDate: function setStartDate(startDate) {\n this._process_options({\n startDate: startDate\n });\n\n this.update();\n this.updateNavArrows();\n return this;\n },\n getEndDate: function getEndDate() {\n return this.o.endDate;\n },\n setEndDate: function setEndDate(endDate) {\n this._process_options({\n endDate: endDate\n });\n\n this.update();\n this.updateNavArrows();\n return this;\n },\n setDaysOfWeekDisabled: function setDaysOfWeekDisabled(daysOfWeekDisabled) {\n this._process_options({\n daysOfWeekDisabled: daysOfWeekDisabled\n });\n\n this.update();\n return this;\n },\n setDaysOfWeekHighlighted: function setDaysOfWeekHighlighted(daysOfWeekHighlighted) {\n this._process_options({\n daysOfWeekHighlighted: daysOfWeekHighlighted\n });\n\n this.update();\n return this;\n },\n setDatesDisabled: function setDatesDisabled(datesDisabled) {\n this._process_options({\n datesDisabled: datesDisabled\n });\n\n this.update();\n return this;\n },\n place: function place() {\n if (this.isInline) return this;\n var calendarWidth = this.picker.outerWidth(),\n calendarHeight = this.picker.outerHeight(),\n visualPadding = 10,\n container = $(this.o.container),\n windowWidth = container.width(),\n scrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(),\n appendOffset = container.offset();\n var parentsZindex = [0];\n this.element.parents().each(function () {\n var itemZIndex = $(this).css('z-index');\n if (itemZIndex !== 'auto' && Number(itemZIndex) !== 0) parentsZindex.push(Number(itemZIndex));\n });\n var zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset;\n var offset = this.component ? this.component.parent().offset() : this.element.offset();\n var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);\n var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);\n var left = offset.left - appendOffset.left;\n var top = offset.top - appendOffset.top;\n\n if (this.o.container !== 'body') {\n top += scrollTop;\n }\n\n this.picker.removeClass('datepicker-orient-top datepicker-orient-bottom ' + 'datepicker-orient-right datepicker-orient-left');\n\n if (this.o.orientation.x !== 'auto') {\n this.picker.addClass('datepicker-orient-' + this.o.orientation.x);\n if (this.o.orientation.x === 'right') left -= calendarWidth - width;\n } // auto x orientation is best-placement: if it crosses a window\n // edge, fudge it sideways\n else {\n if (offset.left < 0) {\n // component is outside the window on the left side. Move it into visible range\n this.picker.addClass('datepicker-orient-left');\n left -= offset.left - visualPadding;\n } else if (left + calendarWidth > windowWidth) {\n // the calendar passes the widow right edge. Align it to component right side\n this.picker.addClass('datepicker-orient-right');\n left += width - calendarWidth;\n } else {\n if (this.o.rtl) {\n // Default to right\n this.picker.addClass('datepicker-orient-right');\n } else {\n // Default to left\n this.picker.addClass('datepicker-orient-left');\n }\n }\n } // auto y orientation is best-situation: top or bottom, no fudging,\n // decision based on which shows more of the calendar\n\n\n var yorient = this.o.orientation.y,\n top_overflow;\n\n if (yorient === 'auto') {\n top_overflow = -scrollTop + top - calendarHeight;\n yorient = top_overflow < 0 ? 'bottom' : 'top';\n }\n\n this.picker.addClass('datepicker-orient-' + yorient);\n if (yorient === 'top') top -= calendarHeight + parseInt(this.picker.css('padding-top'));else top += height;\n\n if (this.o.rtl) {\n var right = windowWidth - (left + width);\n this.picker.css({\n top: top,\n right: right,\n zIndex: zIndex\n });\n } else {\n this.picker.css({\n top: top,\n left: left,\n zIndex: zIndex\n });\n }\n\n return this;\n },\n _allow_update: true,\n update: function update() {\n if (!this._allow_update) return this;\n var oldDates = this.dates.copy(),\n dates = [],\n fromArgs = false;\n\n if (arguments.length) {\n $.each(arguments, $.proxy(function (i, date) {\n if (date instanceof Date) date = this._local_to_utc(date);\n dates.push(date);\n }, this));\n fromArgs = true;\n } else {\n dates = this.isInput ? this.element.val() : this.element.data('date') || this.inputField.val();\n if (dates && this.o.multidate) dates = dates.split(this.o.multidateSeparator);else dates = [dates];\n delete this.element.data().date;\n }\n\n dates = $.map(dates, $.proxy(function (date) {\n return DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear);\n }, this));\n dates = $.grep(dates, $.proxy(function (date) {\n return !this.dateWithinRange(date) || !date;\n }, this), true);\n this.dates.replace(dates);\n\n if (this.o.updateViewDate) {\n if (this.dates.length) this.viewDate = new Date(this.dates.get(-1));else if (this.viewDate < this.o.startDate) this.viewDate = new Date(this.o.startDate);else if (this.viewDate > this.o.endDate) this.viewDate = new Date(this.o.endDate);else this.viewDate = this.o.defaultViewDate;\n }\n\n if (fromArgs) {\n // setting date by clicking\n this.setValue();\n this.element.change();\n } else if (this.dates.length) {\n // setting date by typing\n if (String(oldDates) !== String(this.dates) && fromArgs) {\n this._trigger('changeDate');\n\n this.element.change();\n }\n }\n\n if (!this.dates.length && oldDates.length) {\n this._trigger('clearDate');\n\n this.element.change();\n }\n\n this.fill();\n return this;\n },\n fillDow: function fillDow() {\n if (this.o.showWeekDays) {\n var dowCnt = this.o.weekStart,\n html = '';\n\n if (this.o.calendarWeeks) {\n html += ' ';\n }\n\n while (dowCnt < this.o.weekStart + 7) {\n html += '';\n }\n\n html += '';\n this.picker.find('.datepicker-days thead').append(html);\n }\n },\n fillMonths: function fillMonths() {\n var localDate = this._utc_to_local(this.viewDate);\n\n var html = '';\n var focused;\n\n for (var i = 0; i < 12; i++) {\n focused = localDate && localDate.getMonth() === i ? ' focused' : '';\n html += '' + dates[this.o.language].monthsShort[i] + '';\n }\n\n this.picker.find('.datepicker-months td').html(html);\n },\n setRange: function setRange(range) {\n if (!range || !range.length) delete this.range;else this.range = $.map(range, function (d) {\n return d.valueOf();\n });\n this.fill();\n },\n getClassNames: function getClassNames(date) {\n var cls = [],\n year = this.viewDate.getUTCFullYear(),\n month = this.viewDate.getUTCMonth(),\n today = UTCToday();\n\n if (date.getUTCFullYear() < year || date.getUTCFullYear() === year && date.getUTCMonth() < month) {\n cls.push('old');\n } else if (date.getUTCFullYear() > year || date.getUTCFullYear() === year && date.getUTCMonth() > month) {\n cls.push('new');\n }\n\n if (this.focusDate && date.valueOf() === this.focusDate.valueOf()) cls.push('focused'); // Compare internal UTC date with UTC today, not local today\n\n if (this.o.todayHighlight && isUTCEquals(date, today)) {\n cls.push('today');\n }\n\n if (this.dates.contains(date) !== -1) cls.push('active');\n\n if (!this.dateWithinRange(date)) {\n cls.push('disabled');\n }\n\n if (this.dateIsDisabled(date)) {\n cls.push('disabled', 'disabled-date');\n }\n\n if ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1) {\n cls.push('highlighted');\n }\n\n if (this.range) {\n if (date > this.range[0] && date < this.range[this.range.length - 1]) {\n cls.push('range');\n }\n\n if ($.inArray(date.valueOf(), this.range) !== -1) {\n cls.push('selected');\n }\n\n if (date.valueOf() === this.range[0]) {\n cls.push('range-start');\n }\n\n if (date.valueOf() === this.range[this.range.length - 1]) {\n cls.push('range-end');\n }\n }\n\n return cls;\n },\n _fill_yearsView: function _fill_yearsView(selector, cssClass, factor, year, startYear, endYear, beforeFn) {\n var html = '';\n var step = factor / 10;\n var view = this.picker.find(selector);\n var startVal = Math.floor(year / factor) * factor;\n var endVal = startVal + step * 9;\n var focusedVal = Math.floor(this.viewDate.getFullYear() / step) * step;\n var selected = $.map(this.dates, function (d) {\n return Math.floor(d.getUTCFullYear() / step) * step;\n });\n var classes, tooltip, before;\n\n for (var currVal = startVal - step; currVal <= endVal + step; currVal += step) {\n classes = [cssClass];\n tooltip = null;\n\n if (currVal === startVal - step) {\n classes.push('old');\n } else if (currVal === endVal + step) {\n classes.push('new');\n }\n\n if ($.inArray(currVal, selected) !== -1) {\n classes.push('active');\n }\n\n if (currVal < startYear || currVal > endYear) {\n classes.push('disabled');\n }\n\n if (currVal === focusedVal) {\n classes.push('focused');\n }\n\n if (beforeFn !== $.noop) {\n before = beforeFn(new Date(currVal, 0, 1));\n\n if (before === undefined) {\n before = {};\n } else if (typeof before === 'boolean') {\n before = {\n enabled: before\n };\n } else if (typeof before === 'string') {\n before = {\n classes: before\n };\n }\n\n if (before.enabled === false) {\n classes.push('disabled');\n }\n\n if (before.classes) {\n classes = classes.concat(before.classes.split(/\\s+/));\n }\n\n if (before.tooltip) {\n tooltip = before.tooltip;\n }\n }\n\n html += '' + currVal + '';\n }\n\n view.find('.datepicker-switch').text(startVal + '-' + endVal);\n view.find('td').html(html);\n },\n fill: function fill() {\n var d = new Date(this.viewDate),\n year = d.getUTCFullYear(),\n month = d.getUTCMonth(),\n startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n todaytxt = dates[this.o.language].today || dates['en'].today || '',\n cleartxt = dates[this.o.language].clear || dates['en'].clear || '',\n titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,\n todayDate = UTCToday(),\n titleBtnVisible = (this.o.todayBtn === true || this.o.todayBtn === 'linked') && todayDate >= this.o.startDate && todayDate <= this.o.endDate && !this.weekOfDateIsDisabled(todayDate),\n tooltip,\n before;\n if (isNaN(year) || isNaN(month)) return;\n this.picker.find('.datepicker-days .datepicker-switch').text(DPGlobal.formatDate(d, titleFormat, this.o.language));\n this.picker.find('tfoot .today').text(todaytxt).css('display', titleBtnVisible ? 'table-cell' : 'none');\n this.picker.find('tfoot .clear').text(cleartxt).css('display', this.o.clearBtn === true ? 'table-cell' : 'none');\n this.picker.find('thead .datepicker-title').text(this.o.title).css('display', typeof this.o.title === 'string' && this.o.title !== '' ? 'table-cell' : 'none');\n this.updateNavArrows();\n this.fillMonths();\n var prevMonth = UTCDate(year, month, 0),\n day = prevMonth.getUTCDate();\n prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7) % 7);\n var nextMonth = new Date(prevMonth);\n\n if (prevMonth.getUTCFullYear() < 100) {\n nextMonth.setUTCFullYear(prevMonth.getUTCFullYear());\n }\n\n nextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n nextMonth = nextMonth.valueOf();\n var html = [];\n var weekDay, clsName;\n\n while (prevMonth.valueOf() < nextMonth) {\n weekDay = prevMonth.getUTCDay();\n\n if (weekDay === this.o.weekStart) {\n html.push('');\n\n if (this.o.calendarWeeks) {\n // ISO 8601: First week contains first thursday.\n // ISO also states week starts on Monday, but we can be more abstract here.\n var // Start of current week: based on weekstart/current date\n ws = new Date(+prevMonth + (this.o.weekStart - weekDay - 7) % 7 * 864e5),\n // Thursday of this week\n th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),\n // First Thursday of year, year from thursday\n yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay()) % 7 * 864e5),\n // Calendar week: ms between thursdays, div ms per day, div 7 days\n calWeek = (th - yth) / 864e5 / 7 + 1;\n html.push('' + calWeek + '');\n }\n }\n\n clsName = this.getClassNames(prevMonth);\n clsName.push('day');\n var content = prevMonth.getUTCDate();\n\n if (this.o.beforeShowDay !== $.noop) {\n before = this.o.beforeShowDay(this._utc_to_local(prevMonth));\n if (before === undefined) before = {};else if (typeof before === 'boolean') before = {\n enabled: before\n };else if (typeof before === 'string') before = {\n classes: before\n };\n if (before.enabled === false) clsName.push('disabled');\n if (before.classes) clsName = clsName.concat(before.classes.split(/\\s+/));\n if (before.tooltip) tooltip = before.tooltip;\n if (before.content) content = before.content;\n } //Check if uniqueSort exists (supported by jquery >=1.12 and >=2.2)\n //Fallback to unique function for older jquery versions\n\n\n if ($.isFunction($.uniqueSort)) {\n clsName = $.uniqueSort(clsName);\n } else {\n clsName = $.unique(clsName);\n }\n\n html.push('' + content + '');\n tooltip = null;\n\n if (weekDay === this.o.weekEnd) {\n html.push('');\n }\n\n prevMonth.setUTCDate(prevMonth.getUTCDate() + 1);\n }\n\n this.picker.find('.datepicker-days tbody').html(html.join(''));\n var monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months';\n var months = this.picker.find('.datepicker-months').find('.datepicker-switch').text(this.o.maxViewMode < 2 ? monthsTitle : year).end().find('tbody span').removeClass('active');\n $.each(this.dates, function (i, d) {\n if (d.getUTCFullYear() === year) months.eq(d.getUTCMonth()).addClass('active');\n });\n\n if (year < startYear || year > endYear) {\n months.addClass('disabled');\n }\n\n if (year === startYear) {\n months.slice(0, startMonth).addClass('disabled');\n }\n\n if (year === endYear) {\n months.slice(endMonth + 1).addClass('disabled');\n }\n\n if (this.o.beforeShowMonth !== $.noop) {\n var that = this;\n $.each(months, function (i, month) {\n var moDate = new Date(year, i, 1);\n var before = that.o.beforeShowMonth(moDate);\n if (before === undefined) before = {};else if (typeof before === 'boolean') before = {\n enabled: before\n };else if (typeof before === 'string') before = {\n classes: before\n };\n if (before.enabled === false && !$(month).hasClass('disabled')) $(month).addClass('disabled');\n if (before.classes) $(month).addClass(before.classes);\n if (before.tooltip) $(month).prop('title', before.tooltip);\n });\n } // Generating decade/years picker\n\n\n this._fill_yearsView('.datepicker-years', 'year', 10, year, startYear, endYear, this.o.beforeShowYear); // Generating century/decades picker\n\n\n this._fill_yearsView('.datepicker-decades', 'decade', 100, year, startYear, endYear, this.o.beforeShowDecade); // Generating millennium/centuries picker\n\n\n this._fill_yearsView('.datepicker-centuries', 'century', 1000, year, startYear, endYear, this.o.beforeShowCentury);\n },\n updateNavArrows: function updateNavArrows() {\n if (!this._allow_update) return;\n var d = new Date(this.viewDate),\n year = d.getUTCFullYear(),\n month = d.getUTCMonth(),\n startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n prevIsDisabled,\n nextIsDisabled,\n factor = 1;\n\n switch (this.viewMode) {\n case 4:\n factor *= 10;\n\n /* falls through */\n\n case 3:\n factor *= 10;\n\n /* falls through */\n\n case 2:\n factor *= 10;\n\n /* falls through */\n\n case 1:\n prevIsDisabled = Math.floor(year / factor) * factor <= startYear;\n nextIsDisabled = Math.floor(year / factor) * factor + factor > endYear;\n break;\n\n case 0:\n prevIsDisabled = year <= startYear && month <= startMonth;\n nextIsDisabled = year >= endYear && month >= endMonth;\n break;\n }\n\n this.picker.find('.prev').toggleClass('disabled', prevIsDisabled);\n this.picker.find('.next').toggleClass('disabled', nextIsDisabled);\n },\n click: function click(e) {\n e.preventDefault();\n e.stopPropagation();\n var target, dir, day, year, month;\n target = $(e.target); // Clicked on the switch\n\n if (target.hasClass('datepicker-switch') && this.viewMode !== this.o.maxViewMode) {\n this.setViewMode(this.viewMode + 1);\n } // Clicked on today button\n\n\n if (target.hasClass('today') && !target.hasClass('day')) {\n this.setViewMode(0);\n\n this._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view');\n } // Clicked on clear button\n\n\n if (target.hasClass('clear')) {\n this.clearDates();\n }\n\n if (!target.hasClass('disabled')) {\n // Clicked on a month, year, decade, century\n if (target.hasClass('month') || target.hasClass('year') || target.hasClass('decade') || target.hasClass('century')) {\n this.viewDate.setUTCDate(1);\n day = 1;\n\n if (this.viewMode === 1) {\n month = target.parent().find('span').index(target);\n year = this.viewDate.getUTCFullYear();\n this.viewDate.setUTCMonth(month);\n } else {\n month = 0;\n year = Number(target.text());\n this.viewDate.setUTCFullYear(year);\n }\n\n this._trigger(DPGlobal.viewModes[this.viewMode - 1].e, this.viewDate);\n\n if (this.viewMode === this.o.minViewMode) {\n this._setDate(UTCDate(year, month, day));\n } else {\n this.setViewMode(this.viewMode - 1);\n this.fill();\n }\n }\n }\n\n if (this.picker.is(':visible') && this._focused_from) {\n this._focused_from.focus();\n }\n\n delete this._focused_from;\n },\n dayCellClick: function dayCellClick(e) {\n var $target = $(e.currentTarget);\n var timestamp = $target.data('date');\n var date = new Date(timestamp);\n\n if (this.o.updateViewDate) {\n if (date.getUTCFullYear() !== this.viewDate.getUTCFullYear()) {\n this._trigger('changeYear', this.viewDate);\n }\n\n if (date.getUTCMonth() !== this.viewDate.getUTCMonth()) {\n this._trigger('changeMonth', this.viewDate);\n }\n }\n\n this._setDate(date);\n },\n // Clicked on prev or next\n navArrowsClick: function navArrowsClick(e) {\n var $target = $(e.currentTarget);\n var dir = $target.hasClass('prev') ? -1 : 1;\n\n if (this.viewMode !== 0) {\n dir *= DPGlobal.viewModes[this.viewMode].navStep * 12;\n }\n\n this.viewDate = this.moveMonth(this.viewDate, dir);\n\n this._trigger(DPGlobal.viewModes[this.viewMode].e, this.viewDate);\n\n this.fill();\n },\n _toggle_multidate: function _toggle_multidate(date) {\n var ix = this.dates.contains(date);\n\n if (!date) {\n this.dates.clear();\n }\n\n if (ix !== -1) {\n if (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive) {\n this.dates.remove(ix);\n }\n } else if (this.o.multidate === false) {\n this.dates.clear();\n this.dates.push(date);\n } else {\n this.dates.push(date);\n }\n\n if (typeof this.o.multidate === 'number') while (this.dates.length > this.o.multidate) {\n this.dates.remove(0);\n }\n },\n _setDate: function _setDate(date, which) {\n if (!which || which === 'date') this._toggle_multidate(date && new Date(date));\n if (!which && this.o.updateViewDate || which === 'view') this.viewDate = date && new Date(date);\n this.fill();\n this.setValue();\n\n if (!which || which !== 'view') {\n this._trigger('changeDate');\n }\n\n this.inputField.trigger('change');\n\n if (this.o.autoclose && (!which || which === 'date')) {\n this.hide();\n }\n },\n moveDay: function moveDay(date, dir) {\n var newDate = new Date(date);\n newDate.setUTCDate(date.getUTCDate() + dir);\n return newDate;\n },\n moveWeek: function moveWeek(date, dir) {\n return this.moveDay(date, dir * 7);\n },\n moveMonth: function moveMonth(date, dir) {\n if (!isValidDate(date)) return this.o.defaultViewDate;\n if (!dir) return date;\n var new_date = new Date(date.valueOf()),\n day = new_date.getUTCDate(),\n month = new_date.getUTCMonth(),\n mag = Math.abs(dir),\n new_month,\n test;\n dir = dir > 0 ? 1 : -1;\n\n if (mag === 1) {\n test = dir === -1 // If going back one month, make sure month is not current month\n // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n ? function () {\n return new_date.getUTCMonth() === month;\n } // If going forward one month, make sure month is as expected\n // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n : function () {\n return new_date.getUTCMonth() !== new_month;\n };\n new_month = month + dir;\n new_date.setUTCMonth(new_month); // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\n new_month = (new_month + 12) % 12;\n } else {\n // For magnitudes >1, move one month at a time...\n for (var i = 0; i < mag; i++) {\n // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n new_date = this.moveMonth(new_date, dir);\n } // ...then reset the day, keeping it in the new month\n\n\n new_month = new_date.getUTCMonth();\n new_date.setUTCDate(day);\n\n test = function test() {\n return new_month !== new_date.getUTCMonth();\n };\n } // Common date-resetting loop -- if date is beyond end of month, make it\n // end of month\n\n\n while (test()) {\n new_date.setUTCDate(--day);\n new_date.setUTCMonth(new_month);\n }\n\n return new_date;\n },\n moveYear: function moveYear(date, dir) {\n return this.moveMonth(date, dir * 12);\n },\n moveAvailableDate: function moveAvailableDate(date, dir, fn) {\n do {\n date = this[fn](date, dir);\n if (!this.dateWithinRange(date)) return false;\n fn = 'moveDay';\n } while (this.dateIsDisabled(date));\n\n return date;\n },\n weekOfDateIsDisabled: function weekOfDateIsDisabled(date) {\n return $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1;\n },\n dateIsDisabled: function dateIsDisabled(date) {\n return this.weekOfDateIsDisabled(date) || $.grep(this.o.datesDisabled, function (d) {\n return isUTCEquals(date, d);\n }).length > 0;\n },\n dateWithinRange: function dateWithinRange(date) {\n return date >= this.o.startDate && date <= this.o.endDate;\n },\n keydown: function keydown(e) {\n if (!this.picker.is(':visible')) {\n if (e.keyCode === 40 || e.keyCode === 27) {\n // allow down to re-show picker\n this.show();\n e.stopPropagation();\n }\n\n return;\n }\n\n var dateChanged = false,\n dir,\n newViewDate,\n focusDate = this.focusDate || this.viewDate;\n\n switch (e.keyCode) {\n case 27:\n // escape\n if (this.focusDate) {\n this.focusDate = null;\n this.viewDate = this.dates.get(-1) || this.viewDate;\n this.fill();\n } else this.hide();\n\n e.preventDefault();\n e.stopPropagation();\n break;\n\n case 37: // left\n\n case 38: // up\n\n case 39: // right\n\n case 40:\n // down\n if (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7) break;\n dir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1;\n\n if (this.viewMode === 0) {\n if (e.ctrlKey) {\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n if (newViewDate) this._trigger('changeYear', this.viewDate);\n } else if (e.shiftKey) {\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n if (newViewDate) this._trigger('changeMonth', this.viewDate);\n } else if (e.keyCode === 37 || e.keyCode === 39) {\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay');\n } else if (!this.weekOfDateIsDisabled(focusDate)) {\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek');\n }\n } else if (this.viewMode === 1) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n dir = dir * 4;\n }\n\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n } else if (this.viewMode === 2) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n dir = dir * 4;\n }\n\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n }\n\n if (newViewDate) {\n this.focusDate = this.viewDate = newViewDate;\n this.setValue();\n this.fill();\n e.preventDefault();\n }\n\n break;\n\n case 13:\n // enter\n if (!this.o.forceParse) break;\n focusDate = this.focusDate || this.dates.get(-1) || this.viewDate;\n\n if (this.o.keyboardNavigation) {\n this._toggle_multidate(focusDate);\n\n dateChanged = true;\n }\n\n this.focusDate = null;\n this.viewDate = this.dates.get(-1) || this.viewDate;\n this.setValue();\n this.fill();\n\n if (this.picker.is(':visible')) {\n e.preventDefault();\n e.stopPropagation();\n if (this.o.autoclose) this.hide();\n }\n\n break;\n\n case 9:\n // tab\n this.focusDate = null;\n this.viewDate = this.dates.get(-1) || this.viewDate;\n this.fill();\n this.hide();\n break;\n }\n\n if (dateChanged) {\n if (this.dates.length) this._trigger('changeDate');else this._trigger('clearDate');\n this.inputField.trigger('change');\n }\n },\n setViewMode: function setViewMode(viewMode) {\n this.viewMode = viewMode;\n this.picker.children('div').hide().filter('.datepicker-' + DPGlobal.viewModes[this.viewMode].clsName).show();\n this.updateNavArrows();\n\n this._trigger('changeViewMode', new Date(this.viewDate));\n }\n };\n\n var DateRangePicker = function DateRangePicker(element, options) {\n $.data(element, 'datepicker', this);\n this.element = $(element);\n this.inputs = $.map(options.inputs, function (i) {\n return i.jquery ? i[0] : i;\n });\n delete options.inputs;\n this.keepEmptyValues = options.keepEmptyValues;\n delete options.keepEmptyValues;\n datepickerPlugin.call($(this.inputs), options).on('changeDate', $.proxy(this.dateUpdated, this));\n this.pickers = $.map(this.inputs, function (i) {\n return $.data(i, 'datepicker');\n });\n this.updateDates();\n };\n\n DateRangePicker.prototype = {\n updateDates: function updateDates() {\n this.dates = $.map(this.pickers, function (i) {\n return i.getUTCDate();\n });\n this.updateRanges();\n },\n updateRanges: function updateRanges() {\n var range = $.map(this.dates, function (d) {\n return d.valueOf();\n });\n $.each(this.pickers, function (i, p) {\n p.setRange(range);\n });\n },\n clearDates: function clearDates() {\n $.each(this.pickers, function (i, p) {\n p.clearDates();\n });\n },\n dateUpdated: function dateUpdated(e) {\n // `this.updating` is a workaround for preventing infinite recursion\n // between `changeDate` triggering and `setUTCDate` calling. Until\n // there is a better mechanism.\n if (this.updating) return;\n this.updating = true;\n var dp = $.data(e.target, 'datepicker');\n\n if (dp === undefined) {\n return;\n }\n\n var new_date = dp.getUTCDate(),\n keep_empty_values = this.keepEmptyValues,\n i = $.inArray(e.target, this.inputs),\n j = i - 1,\n k = i + 1,\n l = this.inputs.length;\n if (i === -1) return;\n $.each(this.pickers, function (i, p) {\n if (!p.getUTCDate() && (p === dp || !keep_empty_values)) p.setUTCDate(new_date);\n });\n\n if (new_date < this.dates[j]) {\n // Date being moved earlier/left\n while (j >= 0 && new_date < this.dates[j]) {\n this.pickers[j--].setUTCDate(new_date);\n }\n } else if (new_date > this.dates[k]) {\n // Date being moved later/right\n while (k < l && new_date > this.dates[k]) {\n this.pickers[k++].setUTCDate(new_date);\n }\n }\n\n this.updateDates();\n delete this.updating;\n },\n destroy: function destroy() {\n $.map(this.pickers, function (p) {\n p.destroy();\n });\n $(this.inputs).off('changeDate', this.dateUpdated);\n delete this.element.data().datepicker;\n },\n remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead')\n };\n\n function opts_from_el(el, prefix) {\n // Derive options from element data-attrs\n var data = $(el).data(),\n out = {},\n inkey,\n replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');\n prefix = new RegExp('^' + prefix.toLowerCase());\n\n function re_lower(_, a) {\n return a.toLowerCase();\n }\n\n for (var key in data) {\n if (prefix.test(key)) {\n inkey = key.replace(replace, re_lower);\n out[inkey] = data[key];\n }\n }\n\n return out;\n }\n\n function opts_from_locale(lang) {\n // Derive options from locale plugins\n var out = {}; // Check if \"de-DE\" style date is available, if not language should\n // fallback to 2 letter code eg \"de\"\n\n if (!dates[lang]) {\n lang = lang.split('-')[0];\n if (!dates[lang]) return;\n }\n\n var d = dates[lang];\n $.each(locale_opts, function (i, k) {\n if (k in d) out[k] = d[k];\n });\n return out;\n }\n\n var old = $.fn.datepicker;\n\n var datepickerPlugin = function datepickerPlugin(option) {\n var args = Array.apply(null, arguments);\n args.shift();\n var internal_return;\n this.each(function () {\n var $this = $(this),\n data = $this.data('datepicker'),\n options = _typeof(option) === 'object' && option;\n\n if (!data) {\n var elopts = opts_from_el(this, 'date'),\n // Preliminary otions\n xopts = $.extend({}, defaults, elopts, options),\n locopts = opts_from_locale(xopts.language),\n // Options priority: js args, data-attrs, locales, defaults\n opts = $.extend({}, defaults, locopts, elopts, options);\n\n if ($this.hasClass('input-daterange') || opts.inputs) {\n $.extend(opts, {\n inputs: opts.inputs || $this.find('input').toArray()\n });\n data = new DateRangePicker(this, opts);\n } else {\n data = new Datepicker(this, opts);\n }\n\n $this.data('datepicker', data);\n }\n\n if (typeof option === 'string' && typeof data[option] === 'function') {\n internal_return = data[option].apply(data, args);\n }\n });\n if (internal_return === undefined || internal_return instanceof Datepicker || internal_return instanceof DateRangePicker) return this;\n if (this.length > 1) throw new Error('Using only allowed for the collection of a single element (' + option + ' function)');else return internal_return;\n };\n\n $.fn.datepicker = datepickerPlugin;\n var defaults = $.fn.datepicker.defaults = {\n assumeNearbyYear: false,\n autoclose: false,\n beforeShowDay: $.noop,\n beforeShowMonth: $.noop,\n beforeShowYear: $.noop,\n beforeShowDecade: $.noop,\n beforeShowCentury: $.noop,\n calendarWeeks: false,\n clearBtn: false,\n toggleActive: false,\n daysOfWeekDisabled: [],\n daysOfWeekHighlighted: [],\n datesDisabled: [],\n endDate: Infinity,\n forceParse: true,\n format: 'mm/dd/yyyy',\n keepEmptyValues: false,\n keyboardNavigation: true,\n language: 'en',\n minViewMode: 0,\n maxViewMode: 4,\n multidate: false,\n multidateSeparator: ',',\n orientation: \"auto\",\n rtl: false,\n startDate: -Infinity,\n startView: 0,\n todayBtn: false,\n todayHighlight: false,\n updateViewDate: true,\n weekStart: 0,\n disableTouchKeyboard: false,\n enableOnReadonly: true,\n showOnFocus: true,\n zIndexOffset: 10,\n container: 'body',\n immediateUpdates: false,\n title: '',\n templates: {\n leftArrow: '«',\n rightArrow: '»'\n },\n showWeekDays: true\n };\n var locale_opts = $.fn.datepicker.locale_opts = ['format', 'rtl', 'weekStart'];\n $.fn.datepicker.Constructor = Datepicker;\n var dates = $.fn.datepicker.dates = {\n en: {\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n daysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n monthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n today: \"Today\",\n clear: \"Clear\",\n titleFormat: \"MM yyyy\"\n }\n };\n var DPGlobal = {\n viewModes: [{\n names: ['days', 'month'],\n clsName: 'days',\n e: 'changeMonth'\n }, {\n names: ['months', 'year'],\n clsName: 'months',\n e: 'changeYear',\n navStep: 1\n }, {\n names: ['years', 'decade'],\n clsName: 'years',\n e: 'changeDecade',\n navStep: 10\n }, {\n names: ['decades', 'century'],\n clsName: 'decades',\n e: 'changeCentury',\n navStep: 100\n }, {\n names: ['centuries', 'millennium'],\n clsName: 'centuries',\n e: 'changeMillennium',\n navStep: 1000\n }],\n validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,\n nonpunctuation: /[^ -\\/:-@\\u5e74\\u6708\\u65e5\\[-`{-~\\t\\n\\r]+/g,\n parseFormat: function parseFormat(format) {\n if (typeof format.toValue === 'function' && typeof format.toDisplay === 'function') return format; // IE treats \\0 as a string end in inputs (truncating the value),\n // so it's a bad format delimiter, anyway\n\n var separators = format.replace(this.validParts, '\\0').split('\\0'),\n parts = format.match(this.validParts);\n\n if (!separators || !separators.length || !parts || parts.length === 0) {\n throw new Error(\"Invalid date format.\");\n }\n\n return {\n separators: separators,\n parts: parts\n };\n },\n parseDate: function parseDate(date, format, language, assumeNearby) {\n if (!date) return undefined;\n if (date instanceof Date) return date;\n if (typeof format === 'string') format = DPGlobal.parseFormat(format);\n if (format.toValue) return format.toValue(date, format, language);\n var fn_map = {\n d: 'moveDay',\n m: 'moveMonth',\n w: 'moveWeek',\n y: 'moveYear'\n },\n dateAliases = {\n yesterday: '-1d',\n today: '+0d',\n tomorrow: '+1d'\n },\n parts,\n part,\n dir,\n i,\n fn;\n\n if (date in dateAliases) {\n date = dateAliases[date];\n }\n\n if (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/i.test(date)) {\n parts = date.match(/([\\-+]\\d+)([dmwy])/gi);\n date = new Date();\n\n for (i = 0; i < parts.length; i++) {\n part = parts[i].match(/([\\-+]\\d+)([dmwy])/i);\n dir = Number(part[1]);\n fn = fn_map[part[2].toLowerCase()];\n date = Datepicker.prototype[fn](date, dir);\n }\n\n return Datepicker.prototype._zero_utc_time(date);\n }\n\n parts = date && date.match(this.nonpunctuation) || [];\n\n function applyNearbyYear(year, threshold) {\n if (threshold === true) threshold = 10; // if year is 2 digits or less, than the user most likely is trying to get a recent century\n\n if (year < 100) {\n year += 2000; // if the new year is more than threshold years in advance, use last century\n\n if (year > new Date().getFullYear() + threshold) {\n year -= 100;\n }\n }\n\n return year;\n }\n\n var parsed = {},\n setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],\n setters_map = {\n yyyy: function yyyy(d, v) {\n return d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v);\n },\n m: function m(d, v) {\n if (isNaN(d)) return d;\n v -= 1;\n\n while (v < 0) {\n v += 12;\n }\n\n v %= 12;\n d.setUTCMonth(v);\n\n while (d.getUTCMonth() !== v) {\n d.setUTCDate(d.getUTCDate() - 1);\n }\n\n return d;\n },\n d: function d(_d, v) {\n return _d.setUTCDate(v);\n }\n },\n val,\n filtered;\n setters_map['yy'] = setters_map['yyyy'];\n setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n setters_map['dd'] = setters_map['d'];\n date = UTCToday();\n var fparts = format.parts.slice(); // Remove noop parts\n\n if (parts.length !== fparts.length) {\n fparts = $(fparts).filter(function (i, p) {\n return $.inArray(p, setters_order) !== -1;\n }).toArray();\n } // Process remainder\n\n\n function match_part() {\n var m = this.slice(0, parts[i].length),\n p = parts[i].slice(0, m.length);\n return m.toLowerCase() === p.toLowerCase();\n }\n\n if (parts.length === fparts.length) {\n var cnt;\n\n for (i = 0, cnt = fparts.length; i < cnt; i++) {\n val = parseInt(parts[i], 10);\n part = fparts[i];\n\n if (isNaN(val)) {\n switch (part) {\n case 'MM':\n filtered = $(dates[language].months).filter(match_part);\n val = $.inArray(filtered[0], dates[language].months) + 1;\n break;\n\n case 'M':\n filtered = $(dates[language].monthsShort).filter(match_part);\n val = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n break;\n }\n }\n\n parsed[part] = val;\n }\n\n var _date, s;\n\n for (i = 0; i < setters_order.length; i++) {\n s = setters_order[i];\n\n if (s in parsed && !isNaN(parsed[s])) {\n _date = new Date(date);\n setters_map[s](_date, parsed[s]);\n if (!isNaN(_date)) date = _date;\n }\n }\n }\n\n return date;\n },\n formatDate: function formatDate(date, format, language) {\n if (!date) return '';\n if (typeof format === 'string') format = DPGlobal.parseFormat(format);\n if (format.toDisplay) return format.toDisplay(date, format, language);\n var val = {\n d: date.getUTCDate(),\n D: dates[language].daysShort[date.getUTCDay()],\n DD: dates[language].days[date.getUTCDay()],\n m: date.getUTCMonth() + 1,\n M: dates[language].monthsShort[date.getUTCMonth()],\n MM: dates[language].months[date.getUTCMonth()],\n yy: date.getUTCFullYear().toString().substring(2),\n yyyy: date.getUTCFullYear()\n };\n val.dd = (val.d < 10 ? '0' : '') + val.d;\n val.mm = (val.m < 10 ? '0' : '') + val.m;\n date = [];\n var seps = $.extend([], format.separators);\n\n for (var i = 0, cnt = format.parts.length; i <= cnt; i++) {\n if (seps.length) date.push(seps.shift());\n date.push(val[format.parts[i]]);\n }\n\n return date.join('');\n },\n headTemplate: '' + '' + '' + '' + '' + '' + defaults.templates.leftArrow + '' + '' + '' + defaults.templates.rightArrow + '' + '' + '',\n contTemplate: '',\n footTemplate: '' + '' + '' + '' + '' + '' + '' + ''\n };\n DPGlobal.template = '
' + '
' + '' + DPGlobal.headTemplate + '' + DPGlobal.footTemplate + '
' + '
' + '
' + '' + DPGlobal.headTemplate + DPGlobal.contTemplate + DPGlobal.footTemplate + '
' + '
' + '
' + '' + DPGlobal.headTemplate + DPGlobal.contTemplate + DPGlobal.footTemplate + '
' + '
' + '
' + '' + DPGlobal.headTemplate + DPGlobal.contTemplate + DPGlobal.footTemplate + '
' + '
' + '
' + '' + DPGlobal.headTemplate + DPGlobal.contTemplate + DPGlobal.footTemplate + '
' + '
' + '
';\n $.fn.datepicker.DPGlobal = DPGlobal;\n /* DATEPICKER NO CONFLICT\n * =================== */\n\n $.fn.datepicker.noConflict = function () {\n $.fn.datepicker = old;\n return this;\n };\n /* DATEPICKER VERSION\n * =================== */\n\n\n $.fn.datepicker.version = '1.9.0';\n\n $.fn.datepicker.deprecated = function (msg) {\n var console = window.console;\n\n if (console && console.warn) {\n console.warn('DEPRECATED: ' + msg);\n }\n };\n /* DATEPICKER DATA-API\n * ================== */\n\n\n $(document).on('focus.datepicker.data-api click.datepicker.data-api', '[data-provide=\"datepicker\"]', function (e) {\n var $this = $(this);\n if ($this.data('datepicker')) return;\n e.preventDefault(); // component click requires us to explicitly show it\n\n datepickerPlugin.call($this, 'show');\n });\n $(function () {\n datepickerPlugin.call($('[data-provide=\"datepicker-inline\"]'));\n });\n});"],"sourceRoot":""}