{"version":3,"sources":["webpack:///./node_modules/dayjs/plugin/utc.js","webpack:///./node_modules/dayjs/locale/ru.js","webpack:///./node_modules/flatpickr/dist/l10n/ru.js","webpack:///./src/components/calendar/Template.vue?171a","webpack:///./src/components/calendar/dateOptions.js","webpack:///src/components/calendar/Template.vue","webpack:///./src/components/calendar/Template.vue?0cd1","webpack:///./src/components/calendar/Template.vue","webpack:///./node_modules/vue-flatpickr-component/dist/vue-flatpickr.min.js","webpack:///./node_modules/flatpickr/dist/flatpickr.js","webpack:///./src/assets/svg/icons/arrow-small-bottom.svg","webpack:///./src/components/calendar/Template.vue?1374","webpack:///./node_modules/dayjs/plugin/customParseFormat.js"],"names":["t","i","module","exports","this","e","s","Date","getTimezoneOffset","n","prototype","utc","date","format","toDate","locale","$L","local","u","parse","$u","$utils","$offset","call","o","init","$d","$y","getUTCFullYear","$M","getUTCMonth","$D","getUTCDate","$W","getUTCDay","$H","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","f","utcOffset","Math","abs","add","r","valueOf","isUTC","toISOString","toString","toUTCString","_","hasOwnProperty","default","split","mm","hh","dd","MM","yy","d","name","weekdays","weekdaysShort","weekdaysMin","months","test","month","monthsShort","weekStart","formats","LT","LTS","L","LL","LLL","LLLL","relativeTime","future","past","m","h","M","y","ordinal","global","factory","fp","window","undefined","flatpickr","l10ns","Russian","shorthand","longhand","firstDayOfWeek","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","time_24hr","ru","Object","defineProperty","value","render","_vm","_h","$createElement","_c","_self","staticClass","_v","on","$event","hoverButton","_l","item","index","key","class","option","isHover","stopPropagation","choseOption","_s","label","isCustomPick","attrs","configDateTimePicker","choseCustom","selectDate","model","callback","$$v","expression","staticRenderFns","formatDate","getCommonDateOptions","dayjs","subtract","startOf","endOf","getReportDateOptions","components","flatPickr","props","type","maxRangeMonth","customDate","isFromReport","tempDate","selectedDate","inline","mode","maxDate","dateFormat","dateOptions","setInitialDate","methods","isCustom","length","$emit","isLeave","resetDateRange","JSON","stringify","limitDateRange","parsedDate","$set","formattedDate","getParsedTime","isFullReset","component","self","l","c","enumerable","get","Symbol","toStringTag","__esModule","create","bind","p","assign","arguments","apply","a","concat","disabled","input","onInput","required","validator","String","Array","config","wrap","defaultDate","events","Boolean","data","mounted","forEach","defaultConfig","replace","toLowerCase","getElem","fpInput","addEventListener","onBlur","$watch","watchDisabled","immediate","$el","parentNode","target","$nextTick","altInput","setAttribute","removeAttribute","watch","deep","handler","set","setDate","beforeDestroy","removeEventListener","destroy","install","__assign","HOOKS","defaults","_disable","_enable","allowInput","altFormat","altInputClass","animate","navigator","userAgent","indexOf","ariaDateFormat","clickOpens","closeOnSelect","conjunction","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enable","enableSeconds","enableTime","errorHandler","err","console","warn","getWeek","givenDate","getTime","setHours","getDate","getDay","week1","getFullYear","round","hourIncrement","ignoredFocusElements","minuteIncrement","monthSelectorType","nextArrow","noCalendar","now","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","weekNumbers","english","daysInMonth","nth","hourAriaLabel","minuteAriaLabel","pad","number","slice","int","bool","debounce","func","wait","timeout","context","args","clearTimeout","setTimeout","arrayify","obj","toggleClass","elem","className","classList","remove","createElement","tag","content","document","textContent","clearNode","node","firstChild","removeChild","findParent","condition","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","appendChild","getEventTarget","event","composedPath","path","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","parseFloat","H","J","day","K","getHours","RegExp","shortMonth","S","seconds","setSeconds","U","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","minutes","setMinutes","j","unixMillSeconds","w","tokenRegex","options","getMonth","getSeconds","getMinutes","substring","createDateFormatter","_a","_b","l10n","frmt","overrideLocale","map","arr","join","createDateParser","givenFormat","timeless","customLocale","dateOrig","toFixed","datestr","trim","parseDate","matched","ops","matchIndex","regexStr","token_1","isBackSlash","escaped","match","exec","fn","val","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","setupHelperFunctions","utils","getDaysInMonth","yr","currentMonth","currentYear","isOpen","parseConfig","setupLocale","setupInputs","setupDates","isMobile","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","minDate","updateValue","setCalendarWidth","showTimeInput","isSafari","positionCalendar","triggerEvent","bindToInstance","requestAnimationFrame","calendarContainer","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","setDefaultTime","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","hours","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","setDefaultHours","minHr","minMinutes","maxHr","maxMinutes","onYearInput","delta","changeYear","ev","el","_handlers","push","onClick","evt","which","triggerChange","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","body","ontouchstart","documentClick","capture","open","monthNav","onMonthNavClick","timeContainer","selText","select","timeIncrement","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","message","buildMonthSwitch","redraw","incrementNumInput","contains","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","tabIndex","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","getFirstAvailableDay","startMonth","endMonth","children","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","changeMonth","focusOnDay","offset","dayFocused","isInView","activeElement","startElem","buildMonthDays","firstOfMonth","prevMonthDays","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","monthElement","container","monthNavFragment","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","getAttribute","title","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","clear","triggerChangeEvent","toInitial","mobileInput","_initialDate","close","lastChild","_type","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","elems","pluginElements","filter","x","shiftKey","charAt","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","_positionElement","click","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","dataset","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","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","shouldChangeMonth","selectedIndex","sort","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","toggle","CALLBACKS","setSelectedDate","inputDate","rule","preloadedDate","nodeName","placeholder","_showTimeInput","querySelector","inputType","step","mobileFormatStr","defaultValue","hooks","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","functional","classNames","staticStyle","rest","zone","A","afternoon","milliseconds","SS","SSS","ss","HH","DD","Do","MMM","findIndex","substr","MMMM","YY","YYYY","ZZ","regex","parser","UTC","v","g","pl","Ls","$locale"],"mappings":"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","file":"chunk-b1ba221c.61f1e3e314.js","sourcesContent":["!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):t.dayjs_plugin_utc=i()}(this,function(){\"use strict\";return function(t,i,e){var s=(new Date).getTimezoneOffset(),n=i.prototype;e.utc=function(t,e){return new i({date:t,utc:!0,format:e})},n.utc=function(){return e(this.toDate(),{locale:this.$L,utc:!0})},n.local=function(){return e(this.toDate(),{locale:this.$L,utc:!1})};var u=n.parse;n.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),u.call(this,t)};var o=n.init;n.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else o.call(this)};var f=n.utcOffset;n.utcOffset=function(t){var i=this.$utils().u;if(i(t))return this.$u?0:i(this.$offset)?f.call(this):this.$offset;var e,n=Math.abs(t)<=16?60*t:t;return 0!==t?(e=this.local().add(n+s,\"minute\")).$offset=n:e=this.utc(),e};var r=n.format;n.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return r.call(this,i)},n.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+s;return this.$d.valueOf()-6e4*t},n.isUTC=function(){return!!this.$u},n.toISOString=function(){return this.toDate().toISOString()},n.toString=function(){return this.toDate().toUTCString()}}});\n","!function(_,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],t):_.dayjs_locale_ru=t(_.dayjs)}(this,function(_){\"use strict\";_=_&&_.hasOwnProperty(\"default\")?_.default:_;var t=\"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря\".split(\"_\"),e=\"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\".split(\"_\"),n=\"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.\".split(\"_\"),s=\"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.\".split(\"_\"),o=/D[oD]?(\\[[^[\\]]*\\]|\\s)+MMMM?/;function r(_,t,e){var n,s;return\"m\"===e?t?\"минута\":\"минуту\":_+\" \"+(n=+_,s={mm:t?\"минута_минуты_минут\":\"минуту_минуты_минут\",hh:\"час_часа_часов\",dd:\"день_дня_дней\",MM:\"месяц_месяца_месяцев\",yy:\"год_года_лет\"}[e].split(\"_\"),n%10==1&&n%100!=11?s[0]:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?s[1]:s[2])}var d={name:\"ru\",weekdays:\"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота\".split(\"_\"),weekdaysShort:\"вск_пнд_втр_срд_чтв_птн_сбт\".split(\"_\"),weekdaysMin:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),months:function(_,n){return o.test(n)?t[_.month()]:e[_.month()]},monthsShort:function(_,t){return o.test(t)?n[_.month()]:s[_.month()]},weekStart:1,formats:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., H:mm\",LLLL:\"dddd, D MMMM YYYY г., H:mm\"},relativeTime:{future:\"через %s\",past:\"%s назад\",s:\"несколько секунд\",m:r,mm:r,h:\"час\",hh:r,d:\"день\",dd:r,M:\"месяц\",MM:r,y:\"год\",yy:r},ordinal:function(_){return _}};return _.locale(d,null,!0),d});\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.ru = {}));\n}(this, function (exports) { 'use strict';\n\n var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Russian = {\n weekdays: {\n shorthand: [\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"],\n longhand: [\n \"Воскресенье\",\n \"Понедельник\",\n \"Вторник\",\n \"Среда\",\n \"Четверг\",\n \"Пятница\",\n \"Суббота\",\n ]\n },\n months: {\n shorthand: [\n \"Янв\",\n \"Фев\",\n \"Март\",\n \"Апр\",\n \"Май\",\n \"Июнь\",\n \"Июль\",\n \"Авг\",\n \"Сен\",\n \"Окт\",\n \"Ноя\",\n \"Дек\",\n ],\n longhand: [\n \"Январь\",\n \"Февраль\",\n \"Март\",\n \"Апрель\",\n \"Май\",\n \"Июнь\",\n \"Июль\",\n \"Август\",\n \"Сентябрь\",\n \"Октябрь\",\n \"Ноябрь\",\n \"Декабрь\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n },\n rangeSeparator: \" — \",\n weekAbbreviation: \"Нед.\",\n scrollTitle: \"Прокрутите для увеличения\",\n toggleTitle: \"Нажмите для переключения\",\n amPM: [\"ДП\", \"ПП\"],\n yearAriaLabel: \"Год\",\n time_24hr: true\n };\n fp.l10ns.ru = Russian;\n var ru = fp.l10ns;\n\n exports.Russian = Russian;\n exports.default = ru;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',{staticClass:\"text-base leading-24 font-semibold mb-2\"},[_vm._v(\" Период \")]),_c('div',{staticClass:\"flex items-start\"},[_c('ul',{staticClass:\"mr-12\",on:{\"mouseleave\":function($event){return _vm.hoverButton(true)}}},_vm._l((_vm.dateOptions),function(item,index){return _c('li',{key:index,staticClass:\"cursor-pointer px-6 py-2 text-sm leading-24 calendar-modal__button\",class:{ 'calendar-modal__button--active': index === _vm.option && !_vm.isHover },on:{\"click\":function($event){$event.stopPropagation();return _vm.choseOption(item.date, index)},\"mouseover\":function($event){return _vm.hoverButton(false, item.date)}}},[_vm._v(\" \"+_vm._s(item.label)+\" \")])}),0),_c('div',{staticClass:\"calendar-modal__wrapper\",on:{\"click\":function($event){_vm.isCustomPick = true}}},[_c('flat-pickr',{staticClass:\"calendar-modal__input\",attrs:{\"config\":_vm.configDateTimePicker,\"placeholder\":\"Inline Picker\"},on:{\"on-change\":_vm.choseCustom,\"input\":_vm.selectDate},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import dayjs from 'dayjs';\n\nconst formatDate = 'DD-MM-YYYY';\n\n/**\n * Даты для календарей в разделах статистики, лидов\n *\n * @returns {Array}\n */\nexport const getCommonDateOptions = () => [\n {\n date: [\n dayjs().subtract(30, 'day').format(formatDate),\n dayjs().format(formatDate),\n ],\n label: 'Последние 30 дней',\n },\n {\n date: [\n dayjs().subtract(7, 'day').format(formatDate),\n dayjs().format(formatDate),\n ],\n label: 'Последние 7 дней',\n },\n {\n date: [\n dayjs().subtract(1, 'month').startOf('month').format(formatDate),\n dayjs().subtract(1, 'month').endOf('month').format(formatDate),\n ],\n label: 'Прошлый месяц',\n },\n {\n date: [\n dayjs().startOf('month').format(formatDate),\n dayjs().format(formatDate),\n ],\n label: 'Этот месяц',\n },\n {\n date: [\n dayjs().subtract(1, 'week').startOf('week').format(formatDate),\n dayjs().subtract(1, 'week').endOf('week').format(formatDate),\n ],\n label: 'Последняя неделя',\n },\n {\n date: [\n dayjs().startOf('week').format(formatDate),\n dayjs().format(formatDate),\n ],\n label: 'Эта неделя',\n },\n];\n\n/**\n * Даты для календаря скачивания PDF отчета\n *\n * @returns {Array}\n */\nexport const getReportDateOptions = () => [\n {\n date: [\n dayjs().subtract(1, 'month').startOf('month').format(formatDate),\n dayjs().subtract(1, 'month').endOf('month').format(formatDate),\n ],\n label: 'Прошлый месяц',\n },\n {\n date: [\n dayjs().subtract(7, 'day').format(formatDate),\n dayjs().format(formatDate),\n ],\n label: 'Последние 7 дней',\n },\n {\n date: [\n dayjs().subtract(30, 'day').format(formatDate),\n dayjs().format(formatDate),\n ],\n label: 'Последние 30 дней',\n },\n {\n date: [\n dayjs().subtract(365, 'day').format(formatDate),\n dayjs().format(formatDate),\n ],\n label: 'Последний год',\n },\n];\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Template.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Template.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Template.vue?vue&type=template&id=5ad2fa74&\"\nimport script from \"./Template.vue?vue&type=script&lang=js&\"\nexport * from \"./Template.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Template.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"flatpickr\")):\"function\"==typeof define&&define.amd?define(\"VueFlatpickr\",[\"flatpickr\"],e):\"object\"==typeof exports?exports.VueFlatpickr=e(require(\"flatpickr\")):t.VueFlatpickr=e(t.flatpickr)}(\"undefined\"!=typeof self?self:this,function(t){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=1)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";n.r(e);var r=n(0),o=n.n(r),i=[\"onChange\",\"onClose\",\"onDestroy\",\"onMonthChange\",\"onOpen\",\"onYearChange\"];function u(){return(u=Object.assign||function(t){for(var e=1;e\",\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","\n module.exports = {\n functional: true,\n render(_h, _vm) {\n const { _c, _v, data, children = [] } = _vm;\n\n const {\n class: classNames,\n staticClass,\n style,\n staticStyle,\n attrs = {},\n ...rest\n } = data;\n\n return _c(\n 'svg',\n {\n class: [classNames,staticClass],\n style: [style,staticStyle],\n attrs: Object.assign({\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\"}, attrs),\n ...rest,\n },\n children.concat([_c('path',{attrs:{\"fill\":\"#1C1819\",\"d\":\"M16 10l-3.647 3.647L8.707 10 8 10.707l4 4h.707l4-4z\"}})])\n )\n }\n }\n ","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Template.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Template.vue?vue&type=style&index=0&lang=scss&\"","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):t.dayjs_plugin_customParseFormat=n()}(this,function(){\"use strict\";var t,n=/(\\[[^[]*\\])|([-:/.()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,e=/\\d\\d/,r=/\\d\\d?/,o=/\\d*[^\\s\\d-:/.()]+/;var s=function(t){return function(n){this[t]=+n}},i=[/[+-]\\d\\d:?\\d\\d/,function(t){var n,e;(this.zone||(this.zone={})).offset=(n=t.match(/([+-]|\\d\\d)/g),0===(e=60*n[1]+ +n[2])?0:\"+\"===n[0]?-e:e)}],a={A:[/[AP]M/,function(t){this.afternoon=\"PM\"===t}],a:[/[ap]m/,function(t){this.afternoon=\"pm\"===t}],S:[/\\d/,function(t){this.milliseconds=100*+t}],SS:[e,function(t){this.milliseconds=10*+t}],SSS:[/\\d{3}/,function(t){this.milliseconds=+t}],s:[r,s(\"seconds\")],ss:[r,s(\"seconds\")],m:[r,s(\"minutes\")],mm:[r,s(\"minutes\")],H:[r,s(\"hours\")],h:[r,s(\"hours\")],HH:[r,s(\"hours\")],hh:[r,s(\"hours\")],D:[r,s(\"day\")],DD:[e,s(\"day\")],Do:[o,function(n){var e=t.ordinal,r=n.match(/\\d+/);if(this.day=r[0],e)for(var o=1;o<=31;o+=1)e(o).replace(/\\[|\\]/g,\"\")===n&&(this.day=o)}],M:[r,s(\"month\")],MM:[e,s(\"month\")],MMM:[o,function(n){var e=t,r=e.months,o=e.monthsShort,s=o?o.findIndex(function(t){return t===n}):r.findIndex(function(t){return t.substr(0,3)===n});if(s<0)throw new Error;this.month=s+1}],MMMM:[o,function(n){var e=t.months.indexOf(n);if(e<0)throw new Error;this.month=e+1}],Y:[/[+-]?\\d+/,s(\"year\")],YY:[e,function(t){t=+t,this.year=t+(t>68?1900:2e3)}],YYYY:[/\\d{4}/,s(\"year\")],Z:i,ZZ:i};var u=function(t,e,r){try{var o=function(t){for(var e=t.match(n),r=e.length,o=0;o0?i-1:l.getMonth(),y=f||0,D=h||0,Y=d||0,g=c||0;return r?new Date(Date.UTC(p,M,v,y,D,Y,g)):new Date(p,M,v,y,D,Y,g)}catch(t){return new Date(\"\")}};return function(n,e,r){var o=e.prototype,s=o.parse;o.parse=function(n){var e=n.date,o=n.format,i=n.pl,a=n.utc;this.$u=a,o?(t=i?r.Ls[i]:this.$locale(),this.$d=u(e,o,a),this.init(n),i&&(this.$L=i)):s.call(this,n)}}});\n"],"sourceRoot":""}