{"version":3,"sources":["webpack:///./lib/utils/datefix.js","webpack:////opt/gitlab/embedded/service/gitlab-rails/node_modules/pikaday/pikaday.js"],"names":["pad","val","len","arguments","length","undefined","slice","parsePikadayDate","dateString","parts","split","year","parseInt","month","day","Date","pikadayToString","date","getDate","getMonth","getFullYear","root","factory","moment","__webpack_require__","e","Error","code","module","exports","hasMoment","hasEventListeners","window","addEventListener","document","sto","setTimeout","addEvent","el","callback","capture","attachEvent","removeEvent","removeEventListener","detachEvent","hasClass","cn","className","indexOf","isArray","obj","test","Object","prototype","toString","call","isDate","isNaN","getTime","isWeekend","getDay","getDaysInMonth","isLeapYear","setToStartOfDay","setHours","compareDates","a","b","extend","to","from","overwrite","prop","hasProp","nodeName","fireEvent","eventName","data","ev","createEvent","initEvent","dispatchEvent","createEventObject","adjustCalendar","calendar","Math","ceil","abs","floor","defaults","field","bound","position","reposition","format","parse","defaultDate","setDefaultDate","firstDay","formatStrict","minDate","maxDate","yearRange","showWeekNumber","pickWholeWeek","minYear","maxYear","minMonth","maxMonth","startRange","endRange","isRTL","yearSuffix","showMonthAfterYear","showDaysInNextAndPreviousMonths","enableSelectionDaysInNextAndPreviousMonths","numberOfMonths","mainCalendar","container","blurFieldOnSelect","i18n","previousMonth","nextMonth","months","weekdays","weekdaysShort","theme","events","onSelect","onOpen","onClose","onDraw","renderDayName","opts","abbr","renderDay","arr","ariaSelected","isEmpty","push","isDisabled","isToday","isSelected","hasEvent","isInRange","isStartRange","isEndRange","join","renderRow","days","isRowSelected","reverse","renderTitle","instance","c","refYear","randId","i","j","monthHtml","yearHtml","_o","isMinYear","isMaxYear","html","prev","next","Pikaday","options","self","this","config","_onMouseDown","_v","target","event","srcElement","parentNode","prevMonth","setDate","getAttribute","hide","blur","_c","preventDefault","returnValue","_onChange","gotoMonth","value","gotoYear","_onKeyChange","isVisible","keyCode","adjustDate","_onInputChange","firedBy","isValid","toDate","show","_onInputFocus","_onInputClick","_onInputBlur","pEl","activeElement","_b","_onClick","onchange","setAttribute","trigger","createElement","appendChild","body","insertBefore","nextSibling","defDate","gotoDate","disableWeekends","disableDayFn","nom","setMinDate","setMaxDate","fallback","_d","toDateString","getMoment","setMoment","preventOnSelect","isMoment","draw","min","max","newCalendar","calendars","firstVisibleDate","lastVisibleDate","visibleDate","setMonth","adjustCalendars","sign","newDay","difference","valueOf","gotoToday","setStartRange","setEndRange","force","_y","_m","random","replace","substr","render","innerHTML","type","focus","adjustPosition","width","height","viewportWidth","viewportHeight","scrollTop","left","top","clientRect","style","offsetWidth","offsetHeight","innerWidth","documentElement","clientWidth","innerHeight","clientHeight","pageYOffset","getBoundingClientRect","pageXOffset","bottom","offsetLeft","offsetTop","offsetParent","now","before","row","yearOfPreviousMonth","yearOfNextMonth","daysInPreviousMonth","cells","after","d","m","y","onejan","isWeekSelected","r","dayNumber","monthNumber","yearNumber","dayConfig","unshift","renderHead","renderTable","str","trim","v","destroy","removeChild"],"mappings":"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","file":"commons~pages.admin.impersonation_tokens~pages.groups.boards~pages.groups.group_members.index~pages.~b70f171c.df8bbb33.chunk.js","sourcesContent":["\nexport const pad = (val, len = 2) => (`0${val}`).slice(-len);\n\n/**\n * Formats dates in Pickaday\n * @param {String} dateString Date in yyyy-mm-dd format\n * @return {Date} UTC format\n */\nexport const parsePikadayDate = (dateString) => {\n const parts = dateString.split('-');\n const year = parseInt(parts[0], 10);\n const month = parseInt(parts[1] - 1, 10);\n const day = parseInt(parts[2], 10);\n\n return new Date(year, month, day);\n};\n\n/**\n * Used `onSelect` method in pickaday\n * @param {Date} date UTC format\n * @return {String} Date formated in yyyy-mm-dd\n */\nexport const pikadayToString = (date) => {\n const day = pad(date.getDate());\n const month = pad(date.getMonth() + 1);\n const year = date.getFullYear();\n\n return `${year}-${month}-${day}`;\n};\n","/*!\n * Pikaday\n *\n * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/dbushell/Pikaday\n */\n\n(function (root, factory)\n{\n 'use strict';\n\n var moment;\n if (typeof exports === 'object') {\n // CommonJS module\n // Load moment.js as an optional dependency\n try { moment = require('moment'); } catch (e) {}\n module.exports = factory(moment);\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(function (req)\n {\n // Load moment.js as an optional dependency\n var id = 'moment';\n try { moment = req(id); } catch (e) {}\n return factory(moment);\n });\n } else {\n root.Pikaday = factory(root.moment);\n }\n}(this, function (moment)\n{\n 'use strict';\n\n /**\n * feature detection and helper functions\n */\n var hasMoment = typeof moment === 'function',\n\n hasEventListeners = !!window.addEventListener,\n\n document = window.document,\n\n sto = window.setTimeout,\n\n addEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.addEventListener(e, callback, !!capture);\n } else {\n el.attachEvent('on' + e, callback);\n }\n },\n\n removeEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.removeEventListener(e, callback, !!capture);\n } else {\n el.detachEvent('on' + e, callback);\n }\n },\n\n trim = function(str)\n {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g,'');\n },\n\n hasClass = function(el, cn)\n {\n return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1;\n },\n\n addClass = function(el, cn)\n {\n if (!hasClass(el, cn)) {\n el.className = (el.className === '') ? cn : el.className + ' ' + cn;\n }\n },\n\n removeClass = function(el, cn)\n {\n el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' '));\n },\n\n isArray = function(obj)\n {\n return (/Array/).test(Object.prototype.toString.call(obj));\n },\n\n isDate = function(obj)\n {\n return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\n },\n\n isWeekend = function(date)\n {\n var day = date.getDay();\n return day === 0 || day === 6;\n },\n\n isLeapYear = function(year)\n {\n // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n },\n\n getDaysInMonth = function(year, month)\n {\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n },\n\n setToStartOfDay = function(date)\n {\n if (isDate(date)) date.setHours(0,0,0,0);\n },\n\n compareDates = function(a,b)\n {\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\n return a.getTime() === b.getTime();\n },\n\n extend = function(to, from, overwrite)\n {\n var prop, hasProp;\n for (prop in from) {\n hasProp = to[prop] !== undefined;\n if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) {\n if (isDate(from[prop])) {\n if (overwrite) {\n to[prop] = new Date(from[prop].getTime());\n }\n }\n else if (isArray(from[prop])) {\n if (overwrite) {\n to[prop] = from[prop].slice(0);\n }\n } else {\n to[prop] = extend({}, from[prop], overwrite);\n }\n } else if (overwrite || !hasProp) {\n to[prop] = from[prop];\n }\n }\n return to;\n },\n\n fireEvent = function(el, eventName, data)\n {\n var ev;\n\n if (document.createEvent) {\n ev = document.createEvent('HTMLEvents');\n ev.initEvent(eventName, true, false);\n ev = extend(ev, data);\n el.dispatchEvent(ev);\n } else if (document.createEventObject) {\n ev = document.createEventObject();\n ev = extend(ev, data);\n el.fireEvent('on' + eventName, ev);\n }\n },\n\n adjustCalendar = function(calendar) {\n if (calendar.month < 0) {\n calendar.year -= Math.ceil(Math.abs(calendar.month)/12);\n calendar.month += 12;\n }\n if (calendar.month > 11) {\n calendar.year += Math.floor(Math.abs(calendar.month)/12);\n calendar.month -= 12;\n }\n return calendar;\n },\n\n /**\n * defaults and localisation\n */\n defaults = {\n\n // bind the picker to a form field\n field: null,\n\n // automatically show/hide the picker on `field` focus (default `true` if `field` is set)\n bound: undefined,\n\n // position of the datepicker, relative to the field (default to bottom & left)\n // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)\n position: 'bottom left',\n\n // automatically fit in the viewport even if it means repositioning from the position option\n reposition: true,\n\n // the default output format for `.toString()` and `field` value\n format: 'YYYY-MM-DD',\n\n // the toString function which gets passed a current date object and format\n // and returns a string\n toString: null,\n\n // used to create date object from current input string\n parse: null,\n\n // the initial date to view when first opened\n defaultDate: null,\n\n // make the `defaultDate` the initial selected value\n setDefaultDate: false,\n\n // first day of week (0: Sunday, 1: Monday etc)\n firstDay: 0,\n\n // the default flag for moment's strict date parsing\n formatStrict: false,\n\n // the minimum/earliest date that can be selected\n minDate: null,\n // the maximum/latest date that can be selected\n maxDate: null,\n\n // number of years either side, or array of upper/lower range\n yearRange: 10,\n\n // show week numbers at head of row\n showWeekNumber: false,\n\n // Week picker mode\n pickWholeWeek: false,\n\n // used internally (don't config outside)\n minYear: 0,\n maxYear: 9999,\n minMonth: undefined,\n maxMonth: undefined,\n\n startRange: null,\n endRange: null,\n\n isRTL: false,\n\n // Additional text to append to the year in the calendar title\n yearSuffix: '',\n\n // Render the month after year in the calendar title\n showMonthAfterYear: false,\n\n // Render days of the calendar grid that fall in the next or previous month\n showDaysInNextAndPreviousMonths: false,\n\n // Allows user to select days that fall in the next or previous month\n enableSelectionDaysInNextAndPreviousMonths: false,\n\n // how many months are visible\n numberOfMonths: 1,\n\n // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`)\n // only used for the first display or when a selected date is not visible\n mainCalendar: 'left',\n\n // Specify a DOM element to render the calendar in\n container: undefined,\n\n // Blur field when date is selected\n blurFieldOnSelect : true,\n\n // internationalization\n i18n: {\n previousMonth : 'Previous Month',\n nextMonth : 'Next Month',\n months : ['January','February','March','April','May','June','July','August','September','October','November','December'],\n weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\n weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']\n },\n\n // Theme Classname\n theme: null,\n\n // events array\n events: [],\n\n // callback function\n onSelect: null,\n onOpen: null,\n onClose: null,\n onDraw: null\n },\n\n\n /**\n * templating functions to abstract HTML rendering\n */\n renderDayName = function(opts, day, abbr)\n {\n day += opts.firstDay;\n while (day >= 7) {\n day -= 7;\n }\n return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];\n },\n\n renderDay = function(opts)\n {\n var arr = [];\n var ariaSelected = 'false';\n if (opts.isEmpty) {\n if (opts.showDaysInNextAndPreviousMonths) {\n arr.push('is-outside-current-month');\n\n if(!opts.enableSelectionDaysInNextAndPreviousMonths) {\n arr.push('is-selection-disabled');\n }\n\n } else {\n return '';\n }\n }\n if (opts.isDisabled) {\n arr.push('is-disabled');\n }\n if (opts.isToday) {\n arr.push('is-today');\n }\n if (opts.isSelected) {\n arr.push('is-selected');\n ariaSelected = 'true';\n }\n if (opts.hasEvent) {\n arr.push('has-event');\n }\n if (opts.isInRange) {\n arr.push('is-inrange');\n }\n if (opts.isStartRange) {\n arr.push('is-startrange');\n }\n if (opts.isEndRange) {\n arr.push('is-endrange');\n }\n return '' +\n '' +\n '';\n },\n\n renderWeek = function (d, m, y) {\n // Lifted from http://javascript.about.com/library/blweekyear.htm, lightly modified.\n var onejan = new Date(y, 0, 1),\n weekNum = Math.ceil((((new Date(y, m, d) - onejan) / 86400000) + onejan.getDay()+1)/7);\n return '' + weekNum + '';\n },\n\n renderRow = function(days, isRTL, pickWholeWeek, isRowSelected)\n {\n return '' + (isRTL ? days.reverse() : days).join('') + '';\n },\n\n renderBody = function(rows)\n {\n return '' + rows.join('') + '';\n },\n\n renderHead = function(opts)\n {\n var i, arr = [];\n if (opts.showWeekNumber) {\n arr.push('');\n }\n for (i = 0; i < 7; i++) {\n arr.push('' + renderDayName(opts, i, true) + '');\n }\n return '' + (opts.isRTL ? arr.reverse() : arr).join('') + '';\n },\n\n renderTitle = function(instance, c, year, month, refYear, randId)\n {\n var i, j, arr,\n opts = instance._o,\n isMinYear = year === opts.minYear,\n isMaxYear = year === opts.maxYear,\n html = '
',\n monthHtml,\n yearHtml,\n prev = true,\n next = true;\n\n for (arr = [], i = 0; i < 12; i++) {\n arr.push('');\n }\n\n monthHtml = '
' + opts.i18n.months[month] + '
';\n\n if (isArray(opts.yearRange)) {\n i = opts.yearRange[0];\n j = opts.yearRange[1] + 1;\n } else {\n i = year - opts.yearRange;\n j = 1 + year + opts.yearRange;\n }\n\n for (arr = []; i < j && i <= opts.maxYear; i++) {\n if (i >= opts.minYear) {\n arr.push('');\n }\n }\n yearHtml = '
' + year + opts.yearSuffix + '
';\n\n if (opts.showMonthAfterYear) {\n html += yearHtml + monthHtml;\n } else {\n html += monthHtml + yearHtml;\n }\n\n if (isMinYear && (month === 0 || opts.minMonth >= month)) {\n prev = false;\n }\n\n if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\n next = false;\n }\n\n if (c === 0) {\n html += '';\n }\n if (c === (instance._o.numberOfMonths - 1) ) {\n html += '';\n }\n\n return html += '
';\n },\n\n renderTable = function(opts, data, randId)\n {\n return '' + renderHead(opts) + renderBody(data) + '
';\n },\n\n\n /**\n * Pikaday constructor\n */\n Pikaday = function(options)\n {\n var self = this,\n opts = self.config(options);\n\n self._onMouseDown = function(e)\n {\n if (!self._v) {\n return;\n }\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n\n if (!hasClass(target, 'is-disabled')) {\n if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) {\n self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day')));\n if (opts.bound) {\n sto(function() {\n self.hide();\n if (opts.blurFieldOnSelect && opts.field) {\n opts.field.blur();\n }\n }, 100);\n }\n }\n else if (hasClass(target, 'pika-prev')) {\n self.prevMonth();\n }\n else if (hasClass(target, 'pika-next')) {\n self.nextMonth();\n }\n }\n if (!hasClass(target, 'pika-select')) {\n // if this is touch event prevent mouse events emulation\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n return false;\n }\n } else {\n self._c = true;\n }\n };\n\n self._onChange = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n if (hasClass(target, 'pika-select-month')) {\n self.gotoMonth(target.value);\n }\n else if (hasClass(target, 'pika-select-year')) {\n self.gotoYear(target.value);\n }\n };\n\n self._onKeyChange = function(e)\n {\n e = e || window.event;\n\n if (self.isVisible()) {\n\n switch(e.keyCode){\n case 13:\n case 27:\n if (opts.field) {\n opts.field.blur();\n }\n break;\n case 37:\n e.preventDefault();\n self.adjustDate('subtract', 1);\n break;\n case 38:\n self.adjustDate('subtract', 7);\n break;\n case 39:\n self.adjustDate('add', 1);\n break;\n case 40:\n self.adjustDate('add', 7);\n break;\n }\n }\n };\n\n self._onInputChange = function(e)\n {\n var date;\n\n if (e.firedBy === self) {\n return;\n }\n if (opts.parse) {\n date = opts.parse(opts.field.value, opts.format);\n } else if (hasMoment) {\n date = moment(opts.field.value, opts.format, opts.formatStrict);\n date = (date && date.isValid()) ? date.toDate() : null;\n }\n else {\n date = new Date(Date.parse(opts.field.value));\n }\n if (isDate(date)) {\n self.setDate(date);\n }\n if (!self._v) {\n self.show();\n }\n };\n\n self._onInputFocus = function()\n {\n self.show();\n };\n\n self._onInputClick = function()\n {\n self.show();\n };\n\n self._onInputBlur = function()\n {\n // IE allows pika div to gain focus; catch blur the input field\n var pEl = document.activeElement;\n do {\n if (hasClass(pEl, 'pika-single')) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n\n if (!self._c) {\n self._b = sto(function() {\n self.hide();\n }, 50);\n }\n self._c = false;\n };\n\n self._onClick = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement,\n pEl = target;\n if (!target) {\n return;\n }\n if (!hasEventListeners && hasClass(target, 'pika-select')) {\n if (!target.onchange) {\n target.setAttribute('onchange', 'return;');\n addEvent(target, 'change', self._onChange);\n }\n }\n do {\n if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n if (self._v && target !== opts.trigger && pEl !== opts.trigger) {\n self.hide();\n }\n };\n\n self.el = document.createElement('div');\n self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : '');\n\n addEvent(self.el, 'mousedown', self._onMouseDown, true);\n addEvent(self.el, 'touchend', self._onMouseDown, true);\n addEvent(self.el, 'change', self._onChange);\n addEvent(document, 'keydown', self._onKeyChange);\n\n if (opts.field) {\n if (opts.container) {\n opts.container.appendChild(self.el);\n } else if (opts.bound) {\n document.body.appendChild(self.el);\n } else {\n opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling);\n }\n addEvent(opts.field, 'change', self._onInputChange);\n\n if (!opts.defaultDate) {\n if (hasMoment && opts.field.value) {\n opts.defaultDate = moment(opts.field.value, opts.format).toDate();\n } else {\n opts.defaultDate = new Date(Date.parse(opts.field.value));\n }\n opts.setDefaultDate = true;\n }\n }\n\n var defDate = opts.defaultDate;\n\n if (isDate(defDate)) {\n if (opts.setDefaultDate) {\n self.setDate(defDate, true);\n } else {\n self.gotoDate(defDate);\n }\n } else {\n self.gotoDate(new Date());\n }\n\n if (opts.bound) {\n this.hide();\n self.el.className += ' is-bound';\n addEvent(opts.trigger, 'click', self._onInputClick);\n addEvent(opts.trigger, 'focus', self._onInputFocus);\n addEvent(opts.trigger, 'blur', self._onInputBlur);\n } else {\n this.show();\n }\n };\n\n\n /**\n * public Pikaday API\n */\n Pikaday.prototype = {\n\n\n /**\n * configure functionality\n */\n config: function(options)\n {\n if (!this._o) {\n this._o = extend({}, defaults, true);\n }\n\n var opts = extend(this._o, options, true);\n\n opts.isRTL = !!opts.isRTL;\n\n opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;\n\n opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null;\n\n opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);\n\n opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;\n\n opts.disableWeekends = !!opts.disableWeekends;\n\n opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null;\n\n var nom = parseInt(opts.numberOfMonths, 10) || 1;\n opts.numberOfMonths = nom > 4 ? 4 : nom;\n\n if (!isDate(opts.minDate)) {\n opts.minDate = false;\n }\n if (!isDate(opts.maxDate)) {\n opts.maxDate = false;\n }\n if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {\n opts.maxDate = opts.minDate = false;\n }\n if (opts.minDate) {\n this.setMinDate(opts.minDate);\n }\n if (opts.maxDate) {\n this.setMaxDate(opts.maxDate);\n }\n\n if (isArray(opts.yearRange)) {\n var fallback = new Date().getFullYear() - 10;\n opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;\n opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;\n } else {\n opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;\n if (opts.yearRange > 100) {\n opts.yearRange = 100;\n }\n }\n\n return opts;\n },\n\n /**\n * return a formatted string of the current selection (using Moment.js if available)\n */\n toString: function(format)\n {\n format = format || this._o.format;\n if (!isDate(this._d)) {\n return '';\n }\n if (this._o.toString) {\n return this._o.toString(this._d, format);\n }\n if (hasMoment) {\n return moment(this._d).format(format);\n }\n return this._d.toDateString();\n },\n\n /**\n * return a Moment.js object of the current selection (if available)\n */\n getMoment: function()\n {\n return hasMoment ? moment(this._d) : null;\n },\n\n /**\n * set the current selection from a Moment.js object (if available)\n */\n setMoment: function(date, preventOnSelect)\n {\n if (hasMoment && moment.isMoment(date)) {\n this.setDate(date.toDate(), preventOnSelect);\n }\n },\n\n /**\n * return a Date object of the current selection\n */\n getDate: function()\n {\n return isDate(this._d) ? new Date(this._d.getTime()) : null;\n },\n\n /**\n * set the current selection\n */\n setDate: function(date, preventOnSelect)\n {\n if (!date) {\n this._d = null;\n\n if (this._o.field) {\n this._o.field.value = '';\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n\n return this.draw();\n }\n if (typeof date === 'string') {\n date = new Date(Date.parse(date));\n }\n if (!isDate(date)) {\n return;\n }\n\n var min = this._o.minDate,\n max = this._o.maxDate;\n\n if (isDate(min) && date < min) {\n date = min;\n } else if (isDate(max) && date > max) {\n date = max;\n }\n\n this._d = new Date(date.getTime());\n setToStartOfDay(this._d);\n this.gotoDate(this._d);\n\n if (this._o.field) {\n this._o.field.value = this.toString();\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n if (!preventOnSelect && typeof this._o.onSelect === 'function') {\n this._o.onSelect.call(this, this.getDate());\n }\n },\n\n /**\n * change view to a specific date\n */\n gotoDate: function(date)\n {\n var newCalendar = true;\n\n if (!isDate(date)) {\n return;\n }\n\n if (this.calendars) {\n var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),\n lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1),\n visibleDate = date.getTime();\n // get the end of the month\n lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);\n lastVisibleDate.setDate(lastVisibleDate.getDate()-1);\n newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate);\n }\n\n if (newCalendar) {\n this.calendars = [{\n month: date.getMonth(),\n year: date.getFullYear()\n }];\n if (this._o.mainCalendar === 'right') {\n this.calendars[0].month += 1 - this._o.numberOfMonths;\n }\n }\n\n this.adjustCalendars();\n },\n\n adjustDate: function(sign, days) {\n\n var day = this.getDate() || new Date();\n var difference = parseInt(days)*24*60*60*1000;\n\n var newDay;\n\n if (sign === 'add') {\n newDay = new Date(day.valueOf() + difference);\n } else if (sign === 'subtract') {\n newDay = new Date(day.valueOf() - difference);\n }\n\n this.setDate(newDay);\n },\n\n adjustCalendars: function() {\n this.calendars[0] = adjustCalendar(this.calendars[0]);\n for (var c = 1; c < this._o.numberOfMonths; c++) {\n this.calendars[c] = adjustCalendar({\n month: this.calendars[0].month + c,\n year: this.calendars[0].year\n });\n }\n this.draw();\n },\n\n gotoToday: function()\n {\n this.gotoDate(new Date());\n },\n\n /**\n * change view to a specific month (zero-index, e.g. 0: January)\n */\n gotoMonth: function(month)\n {\n if (!isNaN(month)) {\n this.calendars[0].month = parseInt(month, 10);\n this.adjustCalendars();\n }\n },\n\n nextMonth: function()\n {\n this.calendars[0].month++;\n this.adjustCalendars();\n },\n\n prevMonth: function()\n {\n this.calendars[0].month--;\n this.adjustCalendars();\n },\n\n /**\n * change view to a specific full year (e.g. \"2012\")\n */\n gotoYear: function(year)\n {\n if (!isNaN(year)) {\n this.calendars[0].year = parseInt(year, 10);\n this.adjustCalendars();\n }\n },\n\n /**\n * change the minDate\n */\n setMinDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.minDate = value;\n this._o.minYear = value.getFullYear();\n this._o.minMonth = value.getMonth();\n } else {\n this._o.minDate = defaults.minDate;\n this._o.minYear = defaults.minYear;\n this._o.minMonth = defaults.minMonth;\n this._o.startRange = defaults.startRange;\n }\n\n this.draw();\n },\n\n /**\n * change the maxDate\n */\n setMaxDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.maxDate = value;\n this._o.maxYear = value.getFullYear();\n this._o.maxMonth = value.getMonth();\n } else {\n this._o.maxDate = defaults.maxDate;\n this._o.maxYear = defaults.maxYear;\n this._o.maxMonth = defaults.maxMonth;\n this._o.endRange = defaults.endRange;\n }\n\n this.draw();\n },\n\n setStartRange: function(value)\n {\n this._o.startRange = value;\n },\n\n setEndRange: function(value)\n {\n this._o.endRange = value;\n },\n\n /**\n * refresh the HTML\n */\n draw: function(force)\n {\n if (!this._v && !force) {\n return;\n }\n var opts = this._o,\n minYear = opts.minYear,\n maxYear = opts.maxYear,\n minMonth = opts.minMonth,\n maxMonth = opts.maxMonth,\n html = '',\n randId;\n\n if (this._y <= minYear) {\n this._y = minYear;\n if (!isNaN(minMonth) && this._m < minMonth) {\n this._m = minMonth;\n }\n }\n if (this._y >= maxYear) {\n this._y = maxYear;\n if (!isNaN(maxMonth) && this._m > maxMonth) {\n this._m = maxMonth;\n }\n }\n\n randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\n\n for (var c = 0; c < opts.numberOfMonths; c++) {\n html += '
' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '
';\n }\n\n this.el.innerHTML = html;\n\n if (opts.bound) {\n if(opts.field.type !== 'hidden') {\n sto(function() {\n opts.trigger.focus();\n }, 1);\n }\n }\n\n if (typeof this._o.onDraw === 'function') {\n this._o.onDraw(this);\n }\n\n if (opts.bound) {\n // let the screen reader user know to use arrow keys\n opts.field.setAttribute('aria-label', 'Use the arrow keys to pick a date');\n }\n },\n\n adjustPosition: function()\n {\n var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect;\n\n if (this._o.container) return;\n\n this.el.style.position = 'absolute';\n\n field = this._o.trigger;\n pEl = field;\n width = this.el.offsetWidth;\n height = this.el.offsetHeight;\n viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\n\n if (typeof field.getBoundingClientRect === 'function') {\n clientRect = field.getBoundingClientRect();\n left = clientRect.left + window.pageXOffset;\n top = clientRect.bottom + window.pageYOffset;\n } else {\n left = pEl.offsetLeft;\n top = pEl.offsetTop + pEl.offsetHeight;\n while((pEl = pEl.offsetParent)) {\n left += pEl.offsetLeft;\n top += pEl.offsetTop;\n }\n }\n\n // default position is bottom & left\n if ((this._o.reposition && left + width > viewportWidth) ||\n (\n this._o.position.indexOf('right') > -1 &&\n left - width + field.offsetWidth > 0\n )\n ) {\n left = left - width + field.offsetWidth;\n }\n if ((this._o.reposition && top + height > viewportHeight + scrollTop) ||\n (\n this._o.position.indexOf('top') > -1 &&\n top - height - field.offsetHeight > 0\n )\n ) {\n top = top - height - field.offsetHeight;\n }\n\n this.el.style.left = left + 'px';\n this.el.style.top = top + 'px';\n },\n\n /**\n * render HTML for a particular month\n */\n render: function(year, month, randId)\n {\n var opts = this._o,\n now = new Date(),\n days = getDaysInMonth(year, month),\n before = new Date(year, month, 1).getDay(),\n data = [],\n row = [];\n setToStartOfDay(now);\n if (opts.firstDay > 0) {\n before -= opts.firstDay;\n if (before < 0) {\n before += 7;\n }\n }\n var previousMonth = month === 0 ? 11 : month - 1,\n nextMonth = month === 11 ? 0 : month + 1,\n yearOfPreviousMonth = month === 0 ? year - 1 : year,\n yearOfNextMonth = month === 11 ? year + 1 : year,\n daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);\n var cells = days + before,\n after = cells;\n while(after > 7) {\n after -= 7;\n }\n cells += 7 - after;\n var isWeekSelected = false;\n for (var i = 0, r = 0; i < cells; i++)\n {\n var day = new Date(year, month, 1 + (i - before)),\n isSelected = isDate(this._d) ? compareDates(day, this._d) : false,\n isToday = compareDates(day, now),\n hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false,\n isEmpty = i < before || i >= (days + before),\n dayNumber = 1 + (i - before),\n monthNumber = month,\n yearNumber = year,\n isStartRange = opts.startRange && compareDates(opts.startRange, day),\n isEndRange = opts.endRange && compareDates(opts.endRange, day),\n isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,\n isDisabled = (opts.minDate && day < opts.minDate) ||\n (opts.maxDate && day > opts.maxDate) ||\n (opts.disableWeekends && isWeekend(day)) ||\n (opts.disableDayFn && opts.disableDayFn(day));\n\n if (isEmpty) {\n if (i < before) {\n dayNumber = daysInPreviousMonth + dayNumber;\n monthNumber = previousMonth;\n yearNumber = yearOfPreviousMonth;\n } else {\n dayNumber = dayNumber - days;\n monthNumber = nextMonth;\n yearNumber = yearOfNextMonth;\n }\n }\n\n var dayConfig = {\n day: dayNumber,\n month: monthNumber,\n year: yearNumber,\n hasEvent: hasEvent,\n isSelected: isSelected,\n isToday: isToday,\n isDisabled: isDisabled,\n isEmpty: isEmpty,\n isStartRange: isStartRange,\n isEndRange: isEndRange,\n isInRange: isInRange,\n showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths,\n enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths\n };\n\n if (opts.pickWholeWeek && isSelected) {\n isWeekSelected = true;\n }\n\n row.push(renderDay(dayConfig));\n\n if (++r === 7) {\n if (opts.showWeekNumber) {\n row.unshift(renderWeek(i - before, month, year));\n }\n data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected));\n row = [];\n r = 0;\n isWeekSelected = false;\n }\n }\n return renderTable(opts, data, randId);\n },\n\n isVisible: function()\n {\n return this._v;\n },\n\n show: function()\n {\n if (!this.isVisible()) {\n this._v = true;\n this.draw();\n removeClass(this.el, 'is-hidden');\n if (this._o.bound) {\n addEvent(document, 'click', this._onClick);\n this.adjustPosition();\n }\n if (typeof this._o.onOpen === 'function') {\n this._o.onOpen.call(this);\n }\n }\n },\n\n hide: function()\n {\n var v = this._v;\n if (v !== false) {\n if (this._o.bound) {\n removeEvent(document, 'click', this._onClick);\n }\n this.el.style.position = 'static'; // reset\n this.el.style.left = 'auto';\n this.el.style.top = 'auto';\n addClass(this.el, 'is-hidden');\n this._v = false;\n if (v !== undefined && typeof this._o.onClose === 'function') {\n this._o.onClose.call(this);\n }\n }\n },\n\n /**\n * GAME OVER\n */\n destroy: function()\n {\n this.hide();\n removeEvent(this.el, 'mousedown', this._onMouseDown, true);\n removeEvent(this.el, 'touchend', this._onMouseDown, true);\n removeEvent(this.el, 'change', this._onChange);\n removeEvent(document, 'keydown', this._onKeyChange);\n if (this._o.field) {\n removeEvent(this._o.field, 'change', this._onInputChange);\n if (this._o.bound) {\n removeEvent(this._o.trigger, 'click', this._onInputClick);\n removeEvent(this._o.trigger, 'focus', this._onInputFocus);\n removeEvent(this._o.trigger, 'blur', this._onInputBlur);\n }\n }\n if (this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n }\n }\n\n };\n\n return Pikaday;\n\n}));\n"],"sourceRoot":""}