{"version":3,"sources":["webpack:///./node_modules/flatpickr/dist/l10n/pt.js","webpack:///./node_modules/credit-card-type/lib/find-best-match.js","webpack:///./node_modules/credit-card-type/lib/matches.js","webpack:///./node_modules/credit-card-type/lib/clone.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/credit-card-type/lib/card-types.js","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack:///./node_modules/credit-card-type/lib/is-valid-input-type.js","webpack:///./node_modules/credit-card-type/lib/add-matching-cards-to-results.js","webpack:///./node_modules/credit-card-type/index.js"],"names":["global","factory","exports","this","fp","window","undefined","flatpickr","l10ns","Portuguese","weekdays","shorthand","longhand","months","rangeSeparator","time_24hr","pt","default","Object","defineProperty","value","hasEnoughResultsToDetermineBestMatch","results","numberOfResultsWithMaxStrengthProperty","filter","result","matchStrength","length","findBestMatch","reduce","bestMatch","module","matchesRange","cardNumber","min","max","maxLengthToCheck","String","substr","integerRepresentationOfCardNumber","parseInt","matchesPattern","pattern","substring","matches","Array","isArray","clone","originalObject","dupe","JSON","parse","stringify","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","navigator","userAgent","indexOf","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","Math","round","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","weekNumbers","wrap","english","daysInMonth","firstDayOfWeek","ordinal","nth","s","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","slice","bool","debounce","fn","wait","t","_this","args","arguments","clearTimeout","setTimeout","apply","arrayify","obj","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","key","setAttribute","appendChild","getEventTarget","event","composedPath","path","target","error","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","getHours","parseFloat","H","J","day","K","RegExp","test","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","Y","year","setFullYear","Z","ISODate","d","h","i","minutes","setMinutes","j","l","m","month","n","u","unixMillSeconds","w","y","tokenRegex","toISOString","options","getMonth","getSeconds","getMinutes","createDateFormatter","_a","_b","config","_c","l10n","_d","isMobile","frmt","overrideLocale","formatDate","split","map","c","arr","join","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","trim","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","val","forEach","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","calculateSecondsSinceMidnight","hours","parseSeconds","secondsSinceMidnight","floor","duration","DAY","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","__assign","assign","p","prototype","hasOwnProperty","call","__spreadArrays","il","r","k","a","jl","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","defaultConfig","setupHelperFunctions","utils","getDaysInMonth","yr","currentMonth","currentYear","init","input","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","updateValue","setCalendarWidth","isSafari","positionCalendar","triggerEvent","getClosestActiveElement","calendarContainer","getRootNode","activeElement","bindToInstance","bind","requestAnimationFrame","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","minBound","maxBound","currentTime","onYearInput","eventTarget","delta","toString","changeYear","handler","ev","el","addEventListener","_handlers","push","removeEventListener","triggerChange","evt","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","ontouchstart","documentClick","capture","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","body","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","startElem","buildMonthDays","firstOfMonth","prevMonthDays","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","monthElement","container","monthNavFragment","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","get","__hidePrevMonthArrow","set","__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","isCalendarElem","eventTarget_1","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","some","newYear","newYearNum","isNewYear","dateToCheck","enable","array","parsed","from","to","valueChanged","trimEnd","getDateStr","allowKeydown","allowInlineKeydown","keyCode","blur","isTimeObj","preventDefault","focusAndClose","delta_1","ctrlKey","stopPropagation","elems","concat","pluginElements","x","shiftKey","charAt","toLowerCase","cellClass","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","hoverableCells","dayElem","timestamp","outOfRange","_positionElement","click","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","dataset","formats","_enable","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","getInputElem","querySelector","customPositionElement","calendarHeight","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","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","toggle","CALLBACKS","updatePositionElement","option","setSelectedDate","inputDate","rule","preloadedDate","nodeName","placeholder","required","inputType","mobileFormatStr","defaultValue","step","data","hooks","name","initEvent","specificFormat","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","which","newValue","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","cardTypes","visa","niceType","patterns","gaps","lengths","code","size","mastercard","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard","_i","TypeError","_loop_1","source","keys","args_1","isValidInputType","addMatchingCardsToResults","cardConfiguration","patternLength","clonedCardConfiguration","testOrder","types","customCards","cardNames","VISA","MASTERCARD","AMERICAN_EXPRESS","DINERS_CLUB","DISCOVER","JCB","UNIONPAY","MAESTRO","ELO","MIR","HIPER","HIPERCARD","ORIGINAL_TEST_ORDER","findType","getAllCardTypes","getCardPosition","ignoreErrorForNotExisting","creditCardType","getTypeInfo","removeCard","addCard","existingCardPosition","updateCard","cardType","updates","clonedCard","changeOrder","currentPosition","resetModifications"],"mappings":"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","file":"js/chunk-vendors~d939e436-legacy.214ac252.js","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.pt = {}));\n}(this, (function (exports) { 'use strict';\n\n var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Portuguese = {\n weekdays: {\n shorthand: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"],\n longhand: [\n \"Domingo\",\n \"Segunda-feira\",\n \"Terça-feira\",\n \"Quarta-feira\",\n \"Quinta-feira\",\n \"Sexta-feira\",\n \"Sábado\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Fev\",\n \"Mar\",\n \"Abr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Ago\",\n \"Set\",\n \"Out\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ],\n },\n rangeSeparator: \" até \",\n time_24hr: true,\n };\n fp.l10ns.pt = Portuguese;\n var pt = fp.l10ns;\n\n exports.Portuguese = Portuguese;\n exports.default = pt;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","'use strict';\n\nfunction hasEnoughResultsToDetermineBestMatch(results) {\n var numberOfResultsWithMaxStrengthProperty = results.filter(function (result) {\n return result.matchStrength;\n }).length;\n\n // if all possible results have a maxStrength property\n // that means the card number is sufficiently long\n // enough to determine conclusively what the type is\n return numberOfResultsWithMaxStrengthProperty > 0 &&\n numberOfResultsWithMaxStrengthProperty === results.length;\n}\n\nfunction findBestMatch(results) {\n if (!hasEnoughResultsToDetermineBestMatch(results)) {\n return;\n }\n\n return results.reduce(function (bestMatch, result) { // eslint-disable-line consistent-return\n if (!bestMatch) {\n return result;\n }\n\n // if the current best match pattern is less specific\n // than this result, set the result as the new best match\n if (bestMatch.matchStrength < result.matchStrength) {\n return result;\n }\n\n return bestMatch;\n });\n}\n\nmodule.exports = findBestMatch;\n","'use strict';\n\n// Adapted from https://github.com/polvo-labs/card-type/blob/aaab11f80fa1939bccc8f24905a06ae3cd864356/src/cardType.js#L37-L42\nfunction matchesRange(cardNumber, min, max) {\n var maxLengthToCheck = String(min).length;\n var substr = cardNumber.substr(0, maxLengthToCheck);\n var integerRepresentationOfCardNumber = parseInt(substr, 10);\n\n min = parseInt(String(min).substr(0, substr.length), 10);\n max = parseInt(String(max).substr(0, substr.length), 10);\n\n return integerRepresentationOfCardNumber >= min && integerRepresentationOfCardNumber <= max;\n}\n\nfunction matchesPattern(cardNumber, pattern) {\n pattern = String(pattern);\n\n return pattern.substring(0, cardNumber.length) === cardNumber.substring(0, pattern.length);\n}\n\nfunction matches(cardNumber, pattern) {\n if (Array.isArray(pattern)) {\n return matchesRange(cardNumber, pattern[0], pattern[1]);\n }\n\n return matchesPattern(cardNumber, pattern);\n}\n\nmodule.exports = matches;\n","'use strict';\n\nfunction clone(originalObject) {\n var dupe;\n\n if (!originalObject) { return null; }\n\n dupe = JSON.parse(JSON.stringify(originalObject));\n\n return dupe;\n}\n\nmodule.exports = clone;\n","export var 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 var 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: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var 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 var 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: function (nth) {\n var 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 var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\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 var 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 var 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 (var 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 var 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\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (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: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var 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: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\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: \"\",\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 var formats = {\n Z: function (date) { return 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: function (date) { return 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: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var 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 var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var 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 }\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 ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (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 };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { 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 var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var 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 var maxHr = config.maxDate.getHours();\n var 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: hours, minutes: minutes, seconds: seconds };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { 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, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__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.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\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: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { 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 var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n .activeElement || document.activeElement);\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var 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 var 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 var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var 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 var 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 var 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 var 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 var 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 (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var 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 var 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 }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof 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 var eventTarget = getEventTarget(event);\n var 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(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var 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\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\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 var selText = function (e) {\n return getEventTarget(e).select();\n };\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\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var 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 var oldYear = self.currentYear;\n var 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 var 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 var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var 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 var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\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 var 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 var 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 var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", 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 i % 7 === 6) {\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 var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var 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 var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var 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 var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? 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 var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var 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 var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var 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 var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var 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 var 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 (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var 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 var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var 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\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var 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 var 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: container,\n yearElement: yearElement,\n monthElement: 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 (var m = self.config.showMonths; m--;) {\n var 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: function () { return self.__hidePrevMonthArrow; },\n set: function (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: function () { return self.__hideNextMonthArrow; },\n set: function (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 var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var 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 var 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 (var i = self.config.showMonths; i--;) {\n var 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 var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var 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 var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var 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, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { 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 var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\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 (var 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 var 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(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\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 }\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 var 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) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var 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 var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; 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 var 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 var isInput = e.target === self._input;\n var valueChanged = self._input.value.trimEnd() !== getDateStr();\n if (isInput &&\n valueChanged &&\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 var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var 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 self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var 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 var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\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 var 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 var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var 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, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var 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 var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var 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 var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (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 function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var 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 var 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(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var 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(function (d) { return 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 var 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 var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var 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 var 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: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return 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 (var 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(function (hook) { return self.config[hook] !== undefined; }).forEach(function (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 (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var 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 = __assign(__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.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__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 var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return 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 var 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 var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var 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 var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var 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 var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var 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 var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\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 var 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 var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var 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 var 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(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var 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 var single = self.config.mode === \"single\" && !self.config.enableTime;\n var 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 var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\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 (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return 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 var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return 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(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return 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(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { 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(function (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(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var 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 updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var 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\", function (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 var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var 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 var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date &&\n compareDates(selectedDate, 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(function (yearElement, i) {\n var 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(specificFormat) {\n var format = specificFormat ||\n (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { 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 var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var 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 var 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 var 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 var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var 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 var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var 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: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__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';\n\nvar cardTypes = {\n visa: {\n niceType: 'Visa',\n type: 'visa',\n patterns: [\n 4\n ],\n gaps: [4, 8, 12],\n lengths: [16, 18, 19],\n code: {\n name: 'CVV',\n size: 3\n }\n },\n mastercard: {\n niceType: 'Mastercard',\n type: 'mastercard',\n patterns: [\n [51, 55],\n [2221, 2229],\n [223, 229],\n [23, 26],\n [270, 271],\n 2720\n ],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: 'CVC',\n size: 3\n }\n },\n 'american-express': {\n niceType: 'American Express',\n type: 'american-express',\n patterns: [\n 34,\n 37\n ],\n gaps: [4, 10],\n lengths: [15],\n code: {\n name: 'CID',\n size: 4\n }\n },\n 'diners-club': {\n niceType: 'Diners Club',\n type: 'diners-club',\n patterns: [\n [300, 305],\n 36,\n 38,\n 39\n ],\n gaps: [4, 10],\n lengths: [14, 16, 19],\n code: {\n name: 'CVV',\n size: 3\n }\n },\n discover: {\n niceType: 'Discover',\n type: 'discover',\n patterns: [\n 6011,\n [644, 649],\n 65\n ],\n gaps: [4, 8, 12],\n lengths: [16, 19],\n code: {\n name: 'CID',\n size: 3\n }\n },\n jcb: {\n niceType: 'JCB',\n type: 'jcb',\n patterns: [\n 2131,\n 1800,\n [3528, 3589]\n ],\n gaps: [4, 8, 12],\n lengths: [16, 17, 18, 19],\n code: {\n name: 'CVV',\n size: 3\n }\n },\n unionpay: {\n niceType: 'UnionPay',\n type: 'unionpay',\n patterns: [\n 620,\n [624, 626],\n [62100, 62182],\n [62184, 62187],\n [62185, 62197],\n [62200, 62205],\n [622010, 622999],\n 622018,\n [622019, 622999],\n [62207, 62209],\n [622126, 622925],\n [623, 626],\n 6270,\n 6272,\n 6276,\n [627700, 627779],\n [627781, 627799],\n [6282, 6289],\n 6291,\n 6292,\n 810,\n [8110, 8131],\n [8132, 8151],\n [8152, 8163],\n [8164, 8171]\n ],\n gaps: [4, 8, 12],\n lengths: [14, 15, 16, 17, 18, 19],\n code: {\n name: 'CVN',\n size: 3\n }\n },\n maestro: {\n niceType: 'Maestro',\n type: 'maestro',\n patterns: [\n 493698,\n [500000, 506698],\n [506779, 508999],\n [56, 59],\n 63,\n 67,\n 6\n ],\n gaps: [4, 8, 12],\n lengths: [12, 13, 14, 15, 16, 17, 18, 19],\n code: {\n name: 'CVC',\n size: 3\n }\n },\n elo: {\n niceType: 'Elo',\n type: 'elo',\n patterns: [\n 401178,\n 401179,\n 438935,\n 457631,\n 457632,\n 431274,\n 451416,\n 457393,\n 504175,\n [506699, 506778],\n [509000, 509999],\n 627780,\n 636297,\n 636368,\n [650031, 650033],\n [650035, 650051],\n [650405, 650439],\n [650485, 650538],\n [650541, 650598],\n [650700, 650718],\n [650720, 650727],\n [650901, 650978],\n [651652, 651679],\n [655000, 655019],\n [655021, 655058]\n ],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: 'CVE',\n size: 3\n }\n },\n mir: {\n niceType: 'Mir',\n type: 'mir',\n patterns: [\n [2200, 2204]\n ],\n gaps: [4, 8, 12],\n lengths: [16, 17, 18, 19],\n code: {\n name: 'CVP2',\n size: 3\n }\n },\n hiper: {\n niceType: 'Hiper',\n type: 'hiper',\n patterns: [\n 637095,\n 637568,\n 637599,\n 637609,\n 637612\n ],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: 'CVC',\n size: 3\n }\n },\n hipercard: {\n niceType: 'Hipercard',\n type: 'hipercard',\n patterns: [\n 606282\n ],\n gaps: [4, 8, 12],\n lengths: [16],\n code: {\n name: 'CVC',\n size: 3\n }\n }\n};\n\nmodule.exports = cardTypes;\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n}\n","'use strict';\n\nfunction isValidInputType(cardNumber) {\n return typeof cardNumber === 'string' || cardNumber instanceof String;\n}\n\nmodule.exports = isValidInputType;\n","'use strict';\n\nvar clone = require('./clone');\nvar matches = require('./matches');\n\nfunction addMatchingCardsToResults(cardNumber, cardConfiguration, results) {\n var i, pattern, patternLength, clonedCardConfiguration;\n\n for (i = 0; i < cardConfiguration.patterns.length; i++) {\n pattern = cardConfiguration.patterns[i];\n\n if (!matches(cardNumber, pattern)) {\n continue;\n }\n\n clonedCardConfiguration = clone(cardConfiguration);\n\n if (Array.isArray(pattern)) {\n patternLength = String(pattern[0]).length;\n } else {\n patternLength = String(pattern).length;\n }\n\n if (cardNumber.length >= patternLength) {\n clonedCardConfiguration.matchStrength = patternLength;\n }\n\n results.push(clonedCardConfiguration);\n break;\n }\n}\n\nmodule.exports = addMatchingCardsToResults;\n","'use strict';\n\nvar types = require('./lib/card-types');\nvar clone = require('./lib/clone');\nvar findBestMatch = require('./lib/find-best-match');\nvar isValidInputType = require('./lib/is-valid-input-type');\nvar addMatchingCardsToResults = require('./lib/add-matching-cards-to-results');\n\nvar testOrder;\nvar customCards = {};\n\nvar cardNames = {\n VISA: 'visa',\n MASTERCARD: 'mastercard',\n AMERICAN_EXPRESS: 'american-express',\n DINERS_CLUB: 'diners-club',\n DISCOVER: 'discover',\n JCB: 'jcb',\n UNIONPAY: 'unionpay',\n MAESTRO: 'maestro',\n ELO: 'elo',\n MIR: 'mir',\n HIPER: 'hiper',\n HIPERCARD: 'hipercard'\n};\n\nvar ORIGINAL_TEST_ORDER = [\n cardNames.VISA,\n cardNames.MASTERCARD,\n cardNames.AMERICAN_EXPRESS,\n cardNames.DINERS_CLUB,\n cardNames.DISCOVER,\n cardNames.JCB,\n cardNames.UNIONPAY,\n cardNames.MAESTRO,\n cardNames.ELO,\n cardNames.MIR,\n cardNames.HIPER,\n cardNames.HIPERCARD\n];\n\ntestOrder = clone(ORIGINAL_TEST_ORDER);\n\nfunction findType(type) {\n return customCards[type] || types[type];\n}\n\nfunction getAllCardTypes() {\n return testOrder.map(function (type) {\n return clone(findType(type));\n });\n}\n\nfunction getCardPosition(name, ignoreErrorForNotExisting) {\n var position = testOrder.indexOf(name);\n\n if (!ignoreErrorForNotExisting && position === -1) {\n throw new Error('\"' + name + '\" is not a supported card type.');\n }\n\n return position;\n}\n\nfunction creditCardType(cardNumber) {\n var bestMatch;\n var results = [];\n\n if (!isValidInputType(cardNumber)) {\n return [];\n }\n\n if (cardNumber.length === 0) {\n return getAllCardTypes(testOrder);\n }\n\n testOrder.forEach(function (type) {\n var cardConfiguration = findType(type);\n\n addMatchingCardsToResults(cardNumber, cardConfiguration, results);\n });\n\n bestMatch = findBestMatch(results);\n\n if (bestMatch) {\n return [bestMatch];\n }\n\n return results;\n}\n\ncreditCardType.getTypeInfo = function (type) {\n return clone(findType(type));\n};\n\ncreditCardType.removeCard = function (name) {\n var position = getCardPosition(name);\n\n testOrder.splice(position, 1);\n};\n\ncreditCardType.addCard = function (config) {\n var existingCardPosition = getCardPosition(config.type, true);\n\n customCards[config.type] = config;\n\n if (existingCardPosition === -1) {\n testOrder.push(config.type);\n }\n};\n\ncreditCardType.updateCard = function (cardType, updates) {\n var clonedCard;\n var originalObject = customCards[cardType] || types[cardType];\n\n if (!originalObject) {\n throw new Error('\"' + cardType + '\" is not a recognized type. Use `addCard` instead.');\n }\n\n if (updates.type && originalObject.type !== updates.type) {\n throw new Error('Cannot overwrite type parameter.');\n }\n\n clonedCard = clone(originalObject, true);\n\n Object.keys(clonedCard).forEach(function (key) {\n if (updates[key]) {\n clonedCard[key] = updates[key];\n }\n });\n\n customCards[clonedCard.type] = clonedCard;\n};\n\ncreditCardType.changeOrder = function (name, position) {\n var currentPosition = getCardPosition(name);\n\n testOrder.splice(currentPosition, 1);\n testOrder.splice(position, 0, name);\n};\n\ncreditCardType.resetModifications = function () {\n testOrder = clone(ORIGINAL_TEST_ORDER);\n customCards = {};\n};\n\ncreditCardType.types = cardNames;\n\nmodule.exports = creditCardType;\n"],"sourceRoot":""}