{"version":3,"sources":["node_modules/flatpickr/dist/flatpickr.js","scripts/main.js","node_modules/parcel/src/builtins/hmr-runtime.js"],"names":["global","factory","exports","module","define","amd","self","flatpickr","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","HOOKS","defaults","_disable","_enable","allowInput","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","indexOf","ariaDateFormat","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enable","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","undefined","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","slice","int","bool","debounce","func","wait","immediate","timeout","context","args","clearTimeout","setTimeout","arrayify","obj","Array","toggleClass","elem","className","classList","add","remove","createElement","tag","content","e","document","textContent","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","type","pattern","key","setAttribute","appendChild","getEventTarget","event","composedPath","path","target","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","parseFloat","H","J","day","K","getHours","RegExp","test","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","d","h","minutes","setMinutes","j","l","m","month","u","unixMillSeconds","w","y","tokenRegex","formats","toISOString","options","getMonth","getSeconds","getMinutes","String","substring","createDateFormatter","_a","_b","config","_c","l10n","frmt","overrideLocale","formatDate","split","map","c","arr","join","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","trim","parseDate","matched","ops","matchIndex","regexStr","token_1","isBackSlash","escaped","match","exec","fn","val","forEach","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","min","max","duration","DAY","_i","TypeError","_loop_1","source","keys","args_1","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","defaultConfig","_handlers","pluginElements","loadedPlugins","_bind","bind","_setHoursFromDate","setHoursFromDate","_positionCalendar","positionCalendar","changeMonth","changeYear","clear","close","_createElement","destroy","isEnabled","jumpToDate","open","redraw","set","toggle","setupHelperFunctions","utils","getDaysInMonth","yr","currentMonth","currentYear","init","input","isOpen","parseConfig","setupLocale","setupInputs","setupDates","isMobile","build","bindEvents","selectedDates","latestSelectedDateObj","minDate","updateValue","setCalendarWidth","showTimeInput","isSafari","triggerEvent","bindToInstance","requestAnimationFrame","calendarContainer","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","setDefaultTime","timeWrapper","prevValue","_input","value","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","hours","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDate","maxDateHasTime","setDefaultHours","minHr","minMinutes","maxHr","maxMinutes","onYearInput","delta","toString","handler","ev","el","addEventListener","push","onClick","evt","which","triggerChange","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","body","ontouchstart","documentClick","capture","monthNav","onMonthNavClick","selectDate","timeContainer","selText","select","timeIncrement","jumpDate","jumpTo","oldYear","oldMonth","message","buildMonthSwitch","incrementNumInput","contains","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","tabIndex","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","createDay","dayNumber","dateIsEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","getFirstAvailableDay","startMonth","endMonth","children","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","abs","focusOnDay","offset","dayFocused","isInView","activeElement","startElem","buildMonthDays","firstOfMonth","prevMonthDays","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","container","monthNavFragment","monthElement","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","defineProperty","get","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","getAttribute","title","weekdayContainer","updateWeekdays","splice","concat","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","triggerChangeEvent","toInitial","mobileInput","_initialDate","removeEventListener","lastChild","_type","removeAttribute","k","isCalendarElem","eventTarget_1","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","some","newYear","newYearNum","isNewYear","dateToCheck","array","parsed","from","to","allowKeydown","allowInlineKeydown","keyCode","blur","isTimeObj","preventDefault","focusAndClose","delta_1","ctrlKey","stopPropagation","elems","filter","x","shiftKey","charAt","toLowerCase","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","_positionElement","click","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","JSON","parse","stringify","dataset","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","l10ns","customPositionElement","calendarHeight","reduce","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","bottom","showOnTop","top","pageYOffset","left","pageXOffset","right","rightMost","centerMost","doc","styleSheets","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","cssRules","centerStyle","insertRule","msMaxTouchPoints","isSelectable","selectedDate","shouldChangeMonth","selectedIndex","sort","a","b","single","range","CALLBACKS","option","setSelectedDate","inputDate","rule","preloadedDate","defaultDate","nodeName","placeholder","_showTimeInput","querySelector","required","inputType","step","mobileFormatStr","defaultValue","data","hooks","name","initEvent","getDateStr","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","newValue","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","error","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","initSwitcher","gridMode","listMode","activeClass","displayList","displayGrid","toggleSwitch","btn","active","eventListener","oldBtn","oldClass","newBtn","newClass","getElementById","initDatepicker","id","OVERLAY_ID","OldModule","bundle","Module","moduleName","hot","hotData","_acceptCallbacks","_disposeCallbacks","accept","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","handled","assets","asset","isNew","didAccept","hmrAcceptCheck","parcelRequire","every","generated","js","hmrApply","v","hmrAcceptRun","reload","onclose","log","removeErrorOverlay","stack","overlay","createErrorOverlay","stackTrace","innerText","getParents","modules","parents","dep","isArray","Function","deps","cached","cache","cb"],"mappings":"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","file":"main.d8ebb8d6.js","sourceRoot":"..","sourcesContent":["/* flatpickr v4.6.3, @license MIT */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.flatpickr = factory());\n}(this, function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n 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 ];\n var defaults = {\n _disable: [],\n _enable: [],\n allowInput: 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 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 enable: [],\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 // Thursday in current week decides the year.\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n // January 4 is always in week 1.\n var week1 = new Date(date.getFullYear(), 0, 4);\n // Adjust to Thursday in week 1 and count number of weeks from date to week1.\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\n 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 hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false\n };\n\n var pad = function (number) { return (\"0\" + number).slice(-2); };\n var int = function (bool) { return (bool === true ? 1 : 0); };\n /* istanbul ignore next */\n function debounce(func, wait, immediate) {\n if (immediate === void 0) { immediate = false; }\n var timeout;\n return function () {\n var context = this, args = arguments;\n timeout !== null && clearTimeout(timeout);\n timeout = window.setTimeout(function () {\n timeout = null;\n if (!immediate)\n func.apply(context, args);\n }, wait);\n if (immediate && !timeout)\n func.apply(context, args);\n };\n }\n var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n };\n\n function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n }\n 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 }\n function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n }\n 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; // nothing found\n }\n 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 }\n function getEventTarget(event) {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n\n var doNothing = function () { return undefined; };\n var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\n 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(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(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 };\n var tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\"\n };\n var formats = {\n // get the date in UTC\n Z: function (date) { return date.toISOString(); },\n // weekday name, short, e.g. Thu\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n // full month name e.g. January\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n // padded hour 1-12\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n // hours with leading zero e.g. 03\n H: function (date) { return pad(date.getHours()); },\n // day (1-30) with ordinal suffix e.g. 1st, 2nd\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n // AM/PM\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n // shorthand month e.g. Jan, Sep, Oct, etc\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n // seconds 00-59\n S: function (date) { return pad(date.getSeconds()); },\n // unix timestamp\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n // full year e.g. 2016\n Y: function (date) { return date.getFullYear(); },\n // day in month, padded (01-30)\n d: function (date) { return pad(date.getDate()); },\n // hour from 1-12 (am/pm)\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n // minutes, padded with leading zero e.g. 09\n i: function (date) { return pad(date.getMinutes()); },\n // day in month (1-30)\n j: function (date) { return date.getDate(); },\n // weekday name, full, e.g. Thursday\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n // padded month number (01-12)\n m: function (date) { return pad(date.getMonth() + 1); },\n // the month number (1-12)\n n: function (date) { return date.getMonth() + 1; },\n // seconds 0-59\n s: function (date) { return date.getSeconds(); },\n // Unix Milliseconds\n u: function (date) { return date.getTime(); },\n // number of the day of the week\n w: function (date) { return date.getDay(); },\n // last two digits of year e.g. 16 for 2016\n y: function (date) { return String(date.getFullYear()).substring(2); }\n };\n\n var createDateFormatter = 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 (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined) {\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 };\n 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 // timestamp\n )\n // create a copy\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n // 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 (/Z$/.test(datestr) ||\n /GMT$/.test(datestr) // datestrings w/ timezone\n )\n parsedDate = new Date(date);\n else if (config && config.parseDate)\n parsedDate = config.parseDate(date, format);\n else {\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token_1 = format[i];\n var isBackSlash = token_1 === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token_1] && !escaped) {\n regexStr += tokenRegex[token_1];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token_1 !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token_1],\n val: match[++matchIndex]\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\"; // don't really care\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n }\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n /* istanbul ignore next */\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 };\n /**\n * Compute the difference in dates, measured in ms\n */\n 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 }\n var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n };\n var duration = {\n DAY: 86400000\n };\n\n if (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\n var DEBOUNCED_CHANGE_MS = 300;\n function FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign({}, defaults, flatpickr.defaultConfig),\n l10n: english\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: 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\n ? self.latestSelectedDateObj || self.config.minDate\n : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n self.showTimeInput =\n self.selectedDates.length > 0 || self.config.noCalendar;\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n /* TODO: investigate this further\n \n Currently, there is weird positioning behavior in safari causing pages\n to scroll up. https://github.com/chmln/flatpickr/issues/563\n \n However, most browsers are not Safari and positioning is expensive when used\n in scale. https://github.com/chmln/flatpickr/issues/1096\n */\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1)\n return;\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 /**\n * The handler for all events targeting the time inputs\n */\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n setDefaultTime();\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 /**\n * Syncs the selected date object time with user's time input\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 (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())\n minutes = Math.max(minutes, minTime.getMinutes());\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n setHours(hours, minutes, seconds);\n }\n /**\n * Syncs time input values with a date\n */\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date)\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n function setDefaultHours() {\n var hours = self.config.defaultHour;\n var minutes = self.config.defaultMinute;\n var seconds = self.config.defaultSeconds;\n if (self.config.minDate !== undefined) {\n var minHr = self.config.minDate.getHours();\n var minMinutes = self.config.minDate.getMinutes();\n hours = Math.max(hours, minHr);\n if (hours === minHr)\n minutes = Math.max(minMinutes, minutes);\n if (hours === minHr && minutes === minMinutes)\n seconds = self.config.minDate.getSeconds();\n }\n if (self.config.maxDate !== undefined) {\n var maxHr = self.config.maxDate.getHours();\n var maxMinutes = self.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 = self.config.maxDate.getSeconds();\n }\n setHours(hours, minutes, seconds);\n }\n /**\n * Sets the hours, minutes, and optionally seconds\n * of the latest selected date object and the\n * corresponding time inputs\n * @param {Number} hours the hour. whether its military\n * or am-pm gets inferred from config\n * @param {Number} minutes the minutes\n * @param {Number} seconds the seconds (optional)\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 /**\n * Handles the year input and incrementing events\n * @param {Event} event the keyup or increment event\n */\n function onYearInput(event) {\n var year = parseInt(event.target.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n /**\n * Essentially addEventListener + tracking\n * @param {Element} element the element to addEventListener to\n * @param {String} event the event name\n * @param {Function} handler the event handler\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 element: element,\n event: event,\n handler: handler,\n options: options\n });\n }\n /**\n * A mousedown handler which mimics click.\n * Minimizes latency, since we don't need to wait for mouseup in most cases.\n * Also, avoids handling right clicks.\n *\n * @param {Function} handler the event handler\n */\n function onClick(handler) {\n return function (evt) {\n evt.which === 1 && handler(evt);\n };\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n /**\n * Adds all the necessary event listeners\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(e.target);\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", onClick(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, \"mousedown\", onClick(self.open));\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"mousedown\", onClick(onMonthNavClick));\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"mousedown\", onClick(selectDate));\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return e.target.select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"mousedown\", onClick(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, \"mousedown\", onClick(function (e) {\n updateTime(e);\n triggerChange();\n }));\n }\n }\n }\n /**\n * Set the calendar view to a particular date.\n * @param {Date} jumpDate the date to set the view to\n * @param {boolean} triggerChange if change events should be triggered\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 /* istanbul ignore next */\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 /**\n * The up/down arrow handler for time inputs\n * @param {Event} e the click event\n */\n function timeIncrement(e) {\n if (~e.target.className.indexOf(\"arrow\"))\n incrementNumInput(e, e.target.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n /**\n * Increments/decrements the value of input associ-\n * ated with the up/down arrow by dispatching an\n * \"increment\" event on the input.\n *\n * @param {Event} e the click event\n * @param {Number} delta the diff (usually 1 or -1)\n * @param {Element} inputElem the input element\n */\n function incrementNumInput(e, delta, inputElem) {\n var target = e && e.target;\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\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n 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 dayFocused = isInView(document.activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? document.activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined)\n return self._input.focus();\n if (!dayFocused)\n return focusOnDayElem(startElem);\n getNextAvailableDay(startElem, offset);\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);\n var daysInMonth = self.utils.getDaysInMonth(month), 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 // prepend days from the ending of previous month\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n // Start at 1 since there is no 0th day\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n // append days from the next month\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n //updateNavigationCurrentMonth();\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 // TODO: week numbers for each month\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 bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = e.target;\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 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 ? self.config.defaultHour\n : military2ampm(self.config.defaultHour));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : self.config.defaultMinute);\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.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\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 : self.config.defaultSeconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n // add self.amPM if appropriate\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 = self.l10n.weekdays.shorthand.slice();\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = weekdays.splice(firstDayOfWeek, weekdays.length).concat(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 /* istanbul ignore next */\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 self.showTimeInput = false;\n if (self.config.enableTime === true) {\n setDefaultHours();\n }\n self.redraw();\n if (triggerChangeEvent)\n // triggerChangeEvent is true (default) or an Event\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 var h = self._handlers[i];\n h.element.removeEventListener(h.event, h.handler, h.options);\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 self.input.value = \"\";\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 if (self.config.appendTo && self.config.appendTo.contains(elem))\n return true;\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n 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 // web components\n // e.path is not present in all browsers. circumventing typechecks\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = e.type === \"blur\"\n ? isInput &&\n e.relatedTarget &&\n !isCalendarElem(e.relatedTarget)\n : !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.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n 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 if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless); // 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.length === 0 && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = self.config.enable.length > 0, array = bool ? self.config.enable : 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) // disabled by function\n )\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n // disabled by date\n return bool;\n else if (typeof d === \"string\" && dateToCheck !== undefined) {\n // disabled by date string\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (\n // disabled by range\n 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 self.daysContainer.contains(elem));\n return false;\n }\n function onKeyDown(e) {\n // e.key e.keyCode\n // \"Backspace\" 8\n // \"Tab\" 9\n // \"Enter\" 13\n // \"Escape\" (IE \"Esc\") 27\n // \"ArrowLeft\" (IE \"Left\") 37\n // \"ArrowUp\" (IE \"Up\") 38\n // \"ArrowRight\" (IE \"Right\") 39\n // \"ArrowDown\" (IE \"Down\") 40\n // \"Delete\" (IE \"Del\") 46\n var isInput = e.target === 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, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n return e.target.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(e.target) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(e.target);\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: // escape\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (document.activeElement && isInView(document.activeElement)))) {\n 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 && e.target.$i !== undefined) ||\n e.target === self.input ||\n e.target === 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 (e.target === 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(e.target);\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(e.target) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && e.target === 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(e.target)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n 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 for (var m = 0; m < self.config.showMonths; m++) {\n var month = self.daysContainer.children[m];\n var _loop_1 = function (i, l) {\n var dayElem = month.children[i], 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 \"continue\";\n }\n else if (containsDisabled && !outOfRange)\n return \"continue\";\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 for (var i = 0, l = month.children.length; i < l; i++) {\n _loop_1(i, l);\n }\n }\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function setDefaultTime() {\n self.setDate(self.config.minDate !== undefined\n ? new Date(self.config.minDate.getTime())\n : new Date(), true);\n setDefaultHours();\n updateValue();\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 e.target && e.target.blur();\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n if (self._input.disabled || self.config.inline)\n return;\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.selectedDates.length === 0) {\n setDefaultTime();\n }\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 \"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({}, instanceConfig, JSON.parse(JSON.stringify(element.dataset || {})));\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 || defaults.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 || defaults.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 if (!userConfig.altInputClass) {\n self.config.altInputClass =\n self.input.className + \" \" + self.config.altInputClass;\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.length &&\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 triggerEvent(\"onParseConfig\");\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({}, flatpickr.l10ns[\"default\"], (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __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 (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 +\n inputBounds.left -\n (configPosHorizontal != null && configPosHorizontal === \"center\"\n ? (calendarWidth - inputBounds.width) / 2\n : 0);\n var right = window.document.body.offsetWidth - (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 = document.styleSheets[0];\n // some testing environments don't have css support\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 redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\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 // hack - bugs in the way IE handles focus keeps the calendar open\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(e.target, 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 // unless selecting same date twice, sort ascendingly\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 (self.config.enableTime)\n setTimeout(function () { return (self.showTimeInput = true); }, 50);\n // maintain focus\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 };\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(false);\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 = 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.showTimeInput = self.selectedDates.length > 0;\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate();\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; }); // remove falsy values\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n // Workaround IE11 setting placeholder as the input's value\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 Object.defineProperty(self, \"showTimeInput\", {\n get: function () { return self._showTimeInput; },\n set: function (bool) {\n self._showTimeInput = bool;\n if (self.calendarContainer)\n toggleClass(self.calendarContainer, \"showTimeInput\", bool);\n self.isOpen && positionCalendar();\n }\n });\n }\n function setupInputs() {\n self.input = self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n /* istanbul ignore next */\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n // hack: store previous type to restore it after destroy()\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 // replicate self.element\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n 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.step = self.input.getAttribute(\"step\") || \"any\";\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 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(e.target.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 the instance has been destroyed already, all hooks have been removed\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 // many front-end frameworks bind to the input event\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 if (compareDates(self.selectedDates[i], date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(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(format) {\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 /**\n * Updates the values of inputs associated with the calendar\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 isPrevMonth = self.prevMonthNav.contains(e.target);\n var isNextMonth = self.nextMonthNav.contains(e.target);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(e.target) >= 0) {\n e.target.select();\n }\n else if (e.target.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (e.target.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", input = e.target;\n if (self.amPM !== undefined && e.target === 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 }\n /* istanbul ignore next */\n function _flatpickr(nodeList, config) {\n // static list\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 }\n /* istanbul ignore next */\n if (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n // browser env\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 }\n /* istanbul ignore next */\n var 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 };\n /* istanbul ignore next */\n flatpickr.defaultConfig = {};\n flatpickr.l10ns = {\n en: __assign({}, english),\n \"default\": __assign({}, english)\n };\n flatpickr.localize = function (l10n) {\n flatpickr.l10ns[\"default\"] = __assign({}, flatpickr.l10ns[\"default\"], l10n);\n };\n flatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign({}, flatpickr.defaultConfig, config);\n };\n flatpickr.parseDate = createDateParser({});\n flatpickr.formatDate = createDateFormatter({});\n flatpickr.compareDates = compareDates;\n /* istanbul ignore next */\n if (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n }\n // eslint-disable-next-line @typescript-eslint/camelcase\n Date.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n };\n if (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n }\n\n return flatpickr;\n\n}));\n","import flatpickr from 'flatpickr';\r\n\r\nconst initSwitcher = (gridMode, listMode, content) => {\r\n const activeClass = 'active';\r\n const displayList = 'display_list';\r\n const displayGrid = 'display_grid';\r\n\r\n const toggleSwitch = (btn, className) => {\r\n btn.classList.toggle(activeClass);\r\n content.classList.toggle(className);\r\n };\r\n\r\n let active = listMode;\r\n\r\n const eventListener = (oldBtn, oldClass, newBtn, newClass) => {\r\n return () => {\r\n if(active !== newBtn) {\r\n active = newBtn;\r\n // remove old state\r\n toggleSwitch(oldBtn, oldClass);\r\n // add new state\r\n toggleSwitch(newBtn, newClass);\r\n }\r\n };\r\n };\r\n\r\n gridMode.addEventListener('click', eventListener(listMode, displayList, gridMode, displayGrid));\r\n listMode.addEventListener('click', eventListener(gridMode, displayGrid, listMode, displayList));\r\n};\r\n\r\ninitSwitcher(\r\n document.getElementById('mode-switcher-grid'),\r\n document.getElementById('mode-switcher-list'),\r\n document.getElementById('content')\r\n);\r\n\r\nconst initDatepicker = (id) => {\r\n flatpickr(id, { \r\n dateFormat: \"Y-m-d\", \r\n wrap: true, \r\n weekNumbers: true \r\n });\r\n};\r\n\r\ninitDatepicker('#from-date');\r\ninitDatepicker('#to-date');","var OVERLAY_ID = '__parcel__error__overlay__';\n\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n\n module.bundle.hotData = null;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets, assetsToAccept;\n\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = process.env.HMR_HOSTNAME || location.hostname;\n var protocol = location.protocol === 'https:' ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + ':' + process.env.HMR_PORT + '/');\n ws.onmessage = function(event) {\n checkedAssets = {};\n assetsToAccept = [];\n\n var data = JSON.parse(event.data);\n\n if (data.type === 'update') {\n var handled = false;\n data.assets.forEach(function(asset) {\n if (!asset.isNew) {\n var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);\n if (didAccept) {\n handled = true;\n }\n }\n });\n\n // Enable HMR for CSS by default.\n handled = handled || data.assets.every(function(asset) {\n return asset.type === 'css' && asset.generated.js;\n });\n\n if (handled) {\n console.clear();\n\n data.assets.forEach(function (asset) {\n hmrApply(global.parcelRequire, asset);\n });\n\n assetsToAccept.forEach(function (v) {\n hmrAcceptRun(v[0], v[1]);\n });\n } else if (location.reload) { // `location` global exists in a web worker context but lacks `.reload()` function.\n location.reload();\n }\n }\n\n if (data.type === 'reload') {\n ws.close();\n ws.onclose = function () {\n location.reload();\n }\n }\n\n if (data.type === 'error-resolved') {\n console.log('[parcel] ✨ Error resolved');\n\n removeErrorOverlay();\n }\n\n if (data.type === 'error') {\n console.error('[parcel] 🚨 ' + data.error.message + '\\n' + data.error.stack);\n\n removeErrorOverlay();\n\n var overlay = createErrorOverlay(data);\n document.body.appendChild(overlay);\n }\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n }\n}\n\nfunction createErrorOverlay(data) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n\n // html encode message and stack trace\n var message = document.createElement('div');\n var stackTrace = document.createElement('pre');\n message.innerText = data.error.message;\n stackTrace.innerText = data.error.stack;\n\n overlay.innerHTML = (\n '
' +\n 'ERROR' +\n '🚨' +\n '
' + message.innerHTML + '
' +\n '
' + stackTrace.innerHTML + '
' +\n '
'\n );\n\n return overlay;\n\n}\n\nfunction getParents(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || (Array.isArray(dep) && dep[dep.length - 1] === id)) {\n parents.push(k);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction hmrApply(bundle, asset) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (modules[asset.id] || !bundle.parent) {\n var fn = new Function('require', 'module', 'exports', asset.generated.js);\n asset.isNew = !modules[asset.id];\n modules[asset.id] = [fn, asset.deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n}\n\nfunction hmrAcceptCheck(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (!modules[id] && bundle.parent) {\n return hmrAcceptCheck(bundle.parent, id);\n }\n\n if (checkedAssets[id]) {\n return;\n }\n checkedAssets[id] = true;\n\n var cached = bundle.cache[id];\n\n assetsToAccept.push([bundle, id]);\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n\n return getParents(global.parcelRequire, id).some(function (id) {\n return hmrAcceptCheck(global.parcelRequire, id)\n });\n}\n\nfunction hmrAcceptRun(bundle, id) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n if (cached) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n\n cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n cb();\n });\n return true;\n }\n}\n"]}