{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/flatpickr/dist/esm/types/options.js","webpack:///./node_modules/flatpickr/dist/esm/l10n/default.js","webpack:///./node_modules/flatpickr/dist/esm/utils/index.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dom.js","webpack:///./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dates.js","webpack:///./node_modules/flatpickr/dist/esm/index.js","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack:///./node_modules/vue-flatpickr-component/dist/vue-flatpickr.min.js"],"names":["fixRegExpWellKnownSymbolLogic","anObject","toObject","toLength","toInteger","requireObjectCoercible","advanceStringIndex","regExpExec","max","Math","min","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","it","undefined","String","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","O","this","replacer","call","regexp","indexOf","res","done","value","rx","S","functionalReplace","global","fullUnicode","unicode","lastIndex","results","result","push","matchStr","accumulatedResult","nextSourcePosition","i","length","matched","position","index","captures","j","namedCaptures","groups","replacerArgs","concat","replacement","apply","getSubstitution","slice","str","tailPos","m","symbols","match","ch","capture","charAt","n","f","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","warn","getWeek","givenDate","date","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","round","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","s","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","bool","debounce","fn","wait","t","clearTimeout","setTimeout","arguments","arrayify","obj","Array","toggleClass","elem","className","classList","add","remove","createElement","tag","content","e","document","textContent","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","type","pattern","key","setAttribute","appendChild","getEventTarget","event","composedPath","path","target","error","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","parseFloat","H","J","day","K","getHours","RegExp","test","M","shortMonth","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","d","h","minutes","setMinutes","l","month","u","unixMillSeconds","w","y","tokenRegex","toISOString","options","getMonth","getSeconds","getMinutes","substring","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","formatDate","split","map","c","arr","join","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","trim","parseDate","ops","matchIndex","regexStr","token","isBackSlash","escaped","exec","val","forEach","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","duration","DAY","getDefaultHours","hours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","Object","assign","flatpickr","defaultConfig","setupHelperFunctions","utils","currentMonth","yr","currentYear","init","input","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","updateValue","setCalendarWidth","isSafari","positionCalendar","triggerEvent","bindToInstance","bind","requestAnimationFrame","calendarContainer","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","defaultDate","defaults","getMilliseconds","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","onYearInput","eventTarget","delta","toString","changeYear","handler","ev","el","addEventListener","_handlers","removeEventListener","triggerChange","evt","prototype","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","body","ontouchstart","documentClick","open","monthNav","onMonthNavClick","selectDate","timeContainer","selText","select","timeIncrement","onBlur","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","message","buildMonthSwitch","redraw","incrementNumInput","contains","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","tabIndex","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","getFirstAvailableDay","startMonth","endMonth","children","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","abs","changeMonth","focusOnDay","offset","dayFocused","isInView","activeElement","startElem","buildMonthDays","firstOfMonth","prevMonthDays","getDaysInMonth","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","container","monthNavFragment","monthElement","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","defineProperty","get","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","getAttribute","title","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","clear","triggerChangeEvent","toInitial","mobileInput","_initialDate","close","destroy","lastChild","_type","removeAttribute","k","isCalendarElem","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","some","newYear","newYearNum","isNewYear","_a","dateToCheck","enable","array","parsed","from","to","allowKeydown","allowInlineKeydown","keyCode","blur","isTimeObj","preventDefault","focusAndClose","ctrlKey","stopPropagation","elems","pluginElements","filter","x","shiftKey","toLowerCase","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","_positionElement","click","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","JSON","parse","stringify","dataset","formats","_enable","set","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","getInputElem","querySelector","l10ns","default","customPositionElement","calendarHeight","reduce","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","bottom","showOnTop","top","pageYOffset","left","pageXOffset","isCenter","isRight","right","rightMost","centerMost","doc","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","cssRules","centerStyle","insertRule","editableSheet","styleSheets","sheet","createStyleSheet","head","msMaxTouchPoints","isSelectable","selectedDate","shouldChangeMonth","selectedIndex","sort","a","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","toggle","CALLBACKS","option","setSelectedDate","inputDate","rule","preloadedDate","nodeName","placeholder","required","inputType","mobileFormatStr","defaultValue","step","data","hooks","name","initEvent","getDateStr","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","which","newValue","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","args","TypeError","source","keys","module","exports","r","o","enumerable","Symbol","toStringTag","__esModule","create","hasOwnProperty","p","replace","render","attrs","props","on","onInput","validator","events","Boolean","fp","mounted","$emit","getElem","fpInput","$on","$watch","watchDisabled","immediate","methods","$el","$nextTick","watch","deep","beforeDestroy","component","install"],"mappings":"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","file":"js/chunk-7fd4987b.52137561.js","sourcesContent":["'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","export const HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport const defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: (err) => typeof console !== \"undefined\" && console.warn(err),\n getWeek: (givenDate) => {\n const date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export const english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: (nth) => {\n const s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export const pad = (number, length = 2) => `000${number}`.slice(length * -1);\nexport const int = (bool) => (bool === true ? 1 : 0);\nexport function debounce(fn, wait) {\n let t;\n return function () {\n clearTimeout(t);\n t = setTimeout(() => fn.apply(this, arguments), wait);\n };\n}\nexport const arrayify = (obj) => obj instanceof Array ? obj : [obj];\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n const e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n const wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (const key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n const path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nconst doNothing = () => undefined;\nexport const monthToStr = (monthNumber, shorthand, locale) => locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\nexport const revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n H: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n J: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n K: (dateObj, amPM, locale) => {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: (_, unixSeconds) => new Date(parseFloat(unixSeconds) * 1000),\n W: function (dateObj, weekNum, locale) {\n const weekNumber = parseInt(weekNum);\n const date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: (dateObj, year) => {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: (_, ISODate) => new Date(ISODate),\n d: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n h: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n i: (dateObj, minutes) => {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: (_, unixMillSeconds) => new Date(parseFloat(unixMillSeconds)),\n w: doNothing,\n y: (dateObj, year) => {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport const tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport const formats = {\n Z: (date) => date.toISOString(),\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: (date) => pad(date.getHours()),\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: (date, locale) => locale.amPM[int(date.getHours() > 11)],\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: (date) => pad(date.getSeconds()),\n U: (date) => date.getTime() / 1000,\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: (date) => pad(date.getFullYear(), 4),\n d: (date) => pad(date.getDate()),\n h: (date) => (date.getHours() % 12 ? date.getHours() % 12 : 12),\n i: (date) => pad(date.getMinutes()),\n j: (date) => date.getDate(),\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: (date) => pad(date.getMonth() + 1),\n n: (date) => date.getMonth() + 1,\n s: (date) => date.getSeconds(),\n u: (date) => date.getTime(),\n w: (date) => date.getDay(),\n y: (date) => String(date.getFullYear()).substring(2),\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport const createDateFormatter = ({ config = defaults, l10n = english, isMobile = false, }) => (dateObj, frmt, overrideLocale) => {\n const locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map((c, i, arr) => formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\")\n .join(\"\");\n};\nexport const createDateParser = ({ config = defaults, l10n = english }) => (date, givenFormat, timeless, customLocale) => {\n if (date !== 0 && !date)\n return undefined;\n const locale = customLocale || l10n;\n let parsedDate;\n const dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n const format = givenFormat || (config || defaults).dateFormat;\n const datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr))\n parsedDate = new Date(date);\n else if (config && config.parseDate)\n parsedDate = config.parseDate(date, format);\n else {\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n let matched, ops = [];\n for (let i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n const token = format[i];\n const isBackSlash = token === \"\\\\\";\n const escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n const match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n ops.forEach(({ fn, val }) => (parsedDate = fn(parsedDate, val, locale) || parsedDate));\n }\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(`Invalid date provided: ${dateOrig}`));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n};\nexport function compareDates(date1, date2, timeless = true) {\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport const isBetween = (ts, ts1, ts2) => {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport const duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n let hours = config.defaultHour;\n let minutes = config.defaultMinute;\n let seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n const minHour = config.minDate.getHours();\n const minMinutes = config.minDate.getMinutes();\n const minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n const maxHr = config.maxDate.getHours();\n const maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours, minutes, seconds };\n}\n","import { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nconst DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n const self = {\n config: Object.assign(Object.assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth(month = self.currentMonth, yr = self.currentYear) {\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n const config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n const daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n const defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n const defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n const prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n let hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n const limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n const limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (limitMaxHours) {\n const maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n const minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n const date = dateObj || self.latestSelectedDateObj;\n if (date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n const eventTarget = getEventTarget(event);\n const year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach((ev) => bind(element, ev, handler, options));\n if (element instanceof Array)\n return element.forEach((el) => bind(el, event, handler, options));\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: () => element.removeEventListener(event, handler),\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach((evt) => {\n Array.prototype.forEach.call(self.element.querySelectorAll(`[data-${evt}]`), (el) => bind(el, \"click\", self[evt]));\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n const debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", (e) => {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n const selText = (e) => getEventTarget(e).select();\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", () => self.secondElement && self.secondElement.select());\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", (e) => {\n updateTime(e);\n triggerChange();\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n const jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n const oldYear = self.currentYear;\n const oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n const eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n const target = e && getEventTarget(e);\n const input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n const event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n const fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n const { weekWrapper, weekNumbers } = buildWeeks();\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n const customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n const wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, dayNumber, i) {\n const dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n const startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n for (let m = startMonth; m != endMonth; m += delta) {\n const month = self.daysContainer.children[m];\n const startIndex = delta > 0 ? 0 : month.children.length - 1;\n const endIndex = delta > 0 ? month.children.length : -1;\n for (let i = startIndex; i != endIndex; i += delta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n const givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n const loopDelta = delta > 0 ? 1 : -1;\n for (let m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n const month = self.daysContainer.children[m];\n const startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n const numMonthDays = month.children.length;\n for (let i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n const dayFocused = isInView(document.activeElement || document.body);\n const startElem = current !== undefined\n ? current\n : dayFocused\n ? document.activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n const firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n const prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n const daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n let dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (let dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n const dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n const frag = document.createDocumentFragment();\n for (let i = 0; i < self.config.showMonths; i++) {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n const shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (let i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n const month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n const container = createElement(\"div\", \"flatpickr-month\");\n const monthNavFragment = window.document.createDocumentFragment();\n let monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", (e) => {\n const target = getEventTarget(e);\n const selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n const yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n const yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n const currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container,\n yearElement,\n monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (let m = self.config.showMonths; m--;) {\n const month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: () => self.__hidePrevMonthArrow,\n set(bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: () => self.__hideNextMonthArrow,\n set(bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n const defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n const separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n const hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n const minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n const secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (let i = self.config.showMonths; i--;) {\n const container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n const firstDayOfWeek = self.l10n.firstDayOfWeek;\n let weekdays = [...self.l10n.weekdays.shorthand];\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = [\n ...weekdays.splice(firstDayOfWeek, weekdays.length),\n ...weekdays.splice(0, firstDayOfWeek),\n ];\n }\n for (let i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = `\n \n ${weekdays.join(\"\")}\n \n `;\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n const weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n const weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper,\n weekNumbers,\n };\n }\n function changeMonth(value, isOffset = true) {\n const delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent = true, toInitial = true) {\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n const { hours, minutes, seconds } = getDefaultHours(self.config);\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (let i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n const wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach((k) => {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem))\n return true;\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n const eventTarget = getEventTarget(e);\n const isCalendarElement = isCalendarElem(eventTarget);\n const isInput = eventTarget === self.input ||\n eventTarget === self.altInput ||\n self.element.contains(eventTarget) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n const lostFocus = e.type === \"blur\"\n ? isInput &&\n e.relatedTarget &&\n !isCalendarElem(e.relatedTarget)\n : !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n const isIgnored = !self.config.ignoredFocusElements.some((elem) => elem.contains(eventTarget));\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n const newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless = true) {\n var _a;\n const dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n const bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (let i = 0, d; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n const parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n const isInput = e.target === self._input;\n if (isInput &&\n (self.selectedDates.length > 0 || self._input.value.length > 0) &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n const eventTarget = getEventTarget(e);\n const isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n const allowInput = self.config.allowInput;\n const allowKeydown = self.isOpen && (!allowInput || !isInput);\n const allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n const isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (document.activeElement && isInView(document.activeElement)))) {\n const delta = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta);\n else {\n e.stopPropagation();\n changeMonth(delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n const delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n const elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter((x) => x);\n const i = elems.indexOf(eventTarget);\n if (i !== -1) {\n const target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n const hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n let containsDisabled = false;\n let minRange = 0, maxRange = 0;\n for (let t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n for (let m = 0; m < self.config.showMonths; m++) {\n const month = self.daysContainer.children[m];\n for (let i = 0, l = month.children.length; i < l; i++) {\n const dayElem = month.children[i], date = dayElem.dateObj;\n const timestamp = date.getTime();\n const outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n continue;\n }\n else if (containsDisabled && !outOfRange)\n continue;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n }\n }\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement = self._positionElement) {\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n const eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n const wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(() => self.hourElement.select(), 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return (date) => {\n const dateObj = (self.config[`_${type}Date`] = self.parseDate(date, self.config.dateFormat));\n const inverseDateObj = self.config[`_${type === \"min\" ? \"max\" : \"min\"}Date`];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter((d) => isEnabled(d));\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n const boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n const userConfig = Object.assign(Object.assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n const formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: () => self.config._enable,\n set: (dates) => {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: () => self.config._disable,\n set: (dates) => {\n self.config._disable = parseDateRules(dates);\n },\n });\n const timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n const defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n const defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + ` h:i${userConfig.enableSeconds ? \":S\" : \"\"} K`;\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: () => self.config._minDate,\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: () => self.config._maxDate,\n set: minMaxDateSetter(\"max\"),\n });\n const minMaxTimeSetter = (type) => (val) => {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n };\n Object.defineProperty(self.config, \"minTime\", {\n get: () => self.config._minTime,\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: () => self.config._maxTime,\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (let i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter((hook) => self.config[hook] !== undefined).forEach((hook) => {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (let i = 0; i < self.config.plugins.length; i++) {\n const pluginConf = self.config.plugins[i](self) || {};\n for (const key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(`flatpickr: invalid locale ${self.config.locale}`));\n self.l10n = Object.assign(Object.assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.K = `(${self.l10n.amPM[0]}|${self.l10n.amPM[1]}|${self.l10n.amPM[0].toLowerCase()}|${self.l10n.amPM[1].toLowerCase()})`;\n const userConfig = Object.assign(Object.assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n const positionElement = customPositionElement || self._positionElement;\n const calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, ((acc, child) => acc + child.offsetHeight), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n const top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n let left = window.pageXOffset + inputBounds.left;\n let isCenter = false;\n let isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n const right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n const rightMost = left + calendarWidth > window.document.body.offsetWidth;\n const centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = `${top}px`;\n if (!rightMost) {\n self.calendarContainer.style.left = `${left}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = `${right}px`;\n }\n else {\n const doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n const bodyWidth = window.document.body.offsetWidth;\n const centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n const centerBefore = \".flatpickr-calendar.centerMost:before\";\n const centerAfter = \".flatpickr-calendar.centerMost:after\";\n const centerIndex = doc.cssRules.length;\n const centerStyle = `{left:${inputBounds.left}px;right:auto;}`;\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(`${centerBefore},${centerAfter}${centerStyle}`, centerIndex);\n self.calendarContainer.style.left = `${centerLeft}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n let editableSheet = null;\n for (let i = 0; i < document.styleSheets.length; i++) {\n const sheet = document.styleSheets[i];\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n const isSelectable = (day) => day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n const t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n const target = t;\n const selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n const shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n const selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n const isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n const single = self.config.mode === \"single\" && !self.config.enableTime;\n const range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n const CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n clickOpens: [\n () => {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (const key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach((x) => x());\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach((x) => x());\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n let dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map((d) => self.parseDate(d, format));\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map((date) => self.parseDate(date, format));\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map((date) => self.parseDate(date, format));\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(inputDate)}`));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter((d) => d instanceof Date && isEnabled(d, false)));\n if (self.config.mode === \"range\")\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n function setDate(date, triggerChange = false, format = self.config.dateFormat) {\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map((rule) => {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter((x) => x);\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n const preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n const inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", (e) => {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n const hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (let i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n const e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (let i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach((yearElement, i) => {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(format) {\n return self.selectedDates\n .map((dObj) => self.formatDate(dObj, format))\n .filter((d, i, arr) => self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i)\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange = true) {\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n const eventTarget = getEventTarget(e);\n const isPrevMonth = self.prevMonthNav.contains(eventTarget);\n const isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n const isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n const min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n let newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n const isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n const nodes = Array.prototype.slice\n .call(nodeList)\n .filter((x) => x instanceof HTMLElement);\n const instances = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: Object.assign({}, English),\n default: Object.assign({}, English),\n};\nflatpickr.localize = (l10n) => {\n flatpickr.l10ns.default = Object.assign(Object.assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = (config) => {\n flatpickr.defaultConfig = Object.assign(Object.assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target, ...args) {\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n for (const source of args) {\n if (source) {\n Object.keys(source).forEach((key) => (target[key] = source[key]));\n }\n }\n return target;\n };\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"flatpickr\")):\"function\"==typeof define&&define.amd?define(\"VueFlatpickr\",[\"flatpickr\"],e):\"object\"==typeof exports?exports.VueFlatpickr=e(require(\"flatpickr\")):t.VueFlatpickr=e(t.flatpickr)}(\"undefined\"!=typeof self?self:this,(function(t){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=1)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";n.r(e),n.d(e,\"Component\",(function(){return c})),n.d(e,\"Plugin\",(function(){return p}));var r=n(0),o=n.n(r),i=[\"onChange\",\"onClose\",\"onDestroy\",\"onMonthChange\",\"onOpen\",\"onYearChange\"];function u(){return(u=Object.assign||function(t){for(var e=1;e