{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@png/npm-bookingmask/node_modules/flatpickr/dist/l10n/index.js","webpack:///./node_modules/@png/npm-iibe/node_modules/flatpickr/dist/flatpickr.js","webpack:///./node_modules/@png/npm-iibe/node_modules/flatpickr/dist/l10n/index.js","webpack:///../src/index.js","webpack:///./node_modules/@png/npm-svg-icon/node_modules/@iconfu/svg-inject/dist/svg-inject.js","webpack:///./node_modules/headroom.js/dist/headroom.js","webpack:///./node_modules/jquery-ajax-unobtrusive/dist/jquery.unobtrusive-ajax.js","webpack:///./node_modules/custom-select/node_modules/custom-event-polyfill/custom-event-polyfill.js","webpack:///./node_modules/lightgallery.js/lib/js/lightgallery.js","webpack:///./node_modules/lightgallery.js/lib/js/lg-utils.js","webpack:///./node_modules/lg-thumbnail.js/dist/lg-thumbnail.js","webpack:///./node_modules/lg-autoplay.js/dist/lg-autoplay.js","webpack:///./node_modules/lg-video.js/dist/lg-video.js","webpack:///./node_modules/lg-fullscreen.js/dist/lg-fullscreen.js","webpack:///./node_modules/lg-pager.js/dist/lg-pager.js","webpack:///./node_modules/lg-zoom.js/dist/lg-zoom.js","webpack:///./node_modules/lg-hash.js/dist/lg-hash.js","webpack:///./node_modules/lg-share.js/dist/lg-share.js","webpack:///./node_modules/@png/npm-bookingmask/src/utils.js","webpack:///./node_modules/@png/npm-bookingmask/src/index.js","webpack:///./node_modules/@png/npm-header/src/js/components/menu-toggle.js","webpack:///./node_modules/@png/npm-header/src/js/helpers/scrollbar-width.js","webpack:///./node_modules/@png/npm-header/src/js/components/submenu-toggle.js","webpack:///./node_modules/@png/npm-header/src/js/helpers/siblings.js","webpack:///./node_modules/@png/npm-header/src/js/index.js","webpack:///./node_modules/@png/npm-iibe/src/index.js","webpack:///./node_modules/@png/npm-select-dropdown/src/index.js","webpack:///./node_modules/@png/npm-svg-icon/src/index.js","webpack:///./src/js/modules/scroll-header.js","webpack:///./src/js/modules/clear-cache.js","webpack:///./src/js/modules/cookie-bar.js","webpack:///./src/js/modules/light-gallery.js","webpack:///./src/js/modules/sticky.js","webpack:///./src/js/modules/video.js","webpack:///./node_modules/jump.js/dist/jump.module.js","webpack:///./src/js/modules/smooth-scroll.js","webpack:///./src/js/sites/default/index.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./node_modules/@png/npm-bookingmask/node_modules/flatpickr/dist/flatpickr.js","webpack:///(webpack)/buildin/module.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","factory","__assign","assign","arguments","length","apply","this","fp","window","undefined","flatpickr","l10ns","Arabic","weekdays","shorthand","longhand","months","ar","fp$1","Austria","firstDayOfWeek","weekAbbreviation","rangeSeparator","scrollTitle","toggleTitle","at","fp$2","Azerbaijan","ordinal","amPM","az","fp$3","Belarusian","yearAriaLabel","be","fp$4","Bulgarian","bg","fp$5","Bangla","bn","fp$6","Catalan","nth","cat","fp$7","Czech","cs","fp$8","Welsh","cy","fp$9","Danish","da","fp$a","German","de","english","daysInMonth","fp$b","Esperanto","eo","fp$c","Spanish","es","fp$d","Estonian","et","fp$e","Persian","fa","fp$f","Finnish","fi","fp$g","Faroese","fo","fp$h","French","fr","fp$i","Greek","gr","fp$j","Hebrew","he","fp$k","Hindi","hi","fp$l","Croatian","hr","fp$m","Hungarian","hu","fp$n","Indonesian","id","fp$o","Icelandic","is","fp$p","Italian","it","fp$q","Japanese","ja","fp$r","Korean","ko","fp$s","Khmer","km","fp$t","Kazakh","kz","fp$u","Lithuanian","lt","fp$v","Latvian","lv","fp$w","Macedonian","mk","fp$x","Mongolian","mn","fp$z","Burmese","my","fp$A","Dutch","nl","fp$B","Norwegian","no","fp$C","Punjabi","pa","fp$D","Polish","pl","fp$E","Portuguese","pt","fp$F","Romanian","ro","fp$G","Russian","ru","fp$H","Sinhala","si","fp$I","Slovak","sk","fp$J","Slovenian","sl","fp$K","Albanian","sq","fp$L","Serbian","sr","fp$M","Swedish","sv","fp$N","Thai","th","fp$O","Turkish","tr","fp$P","Ukrainian","uk","fp$Q","Vietnamese","vn","fp$R","Mandarin","zh","fp$S","MandarinTraditional","zh_tw","l10n","en","ms","default","define","HOOKS","defaults","_disable","_enable","allowInput","altFormat","altInput","altInputClass","animate","navigator","userAgent","indexOf","ariaDateFormat","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enable","enableSeconds","enableTime","errorHandler","err","console","warn","getWeek","givenDate","date","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","Math","round","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","nextArrow","noCalendar","now","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","pad","number","slice","int","bool","debounce","func","wait","immediate","timeout","context","args","clearTimeout","setTimeout","arrayify","obj","Array","toggleClass","elem","className","classList","add","remove","createElement","tag","content","e","document","textContent","clearNode","node","firstChild","removeChild","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","type","pattern","setAttribute","appendChild","do_nothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","parseFloat","H","J","day","K","getHours","RegExp","test","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","h","minutes","setMinutes","j","month","u","unixMillSeconds","w","y","tokenRegex","formats","toISOString","options","getMonth","getSeconds","getMinutes","String","substring","createDateFormatter","_a","_b","config","_c","frmt","overrideLocale","formatDate","split","map","arr","join","createDateParser","givenFormat","timeless","customLocale","parsedDate","date_orig","toFixed","format","datestr","trim","parseDate","matched","ops","matchIndex","regexStr","token_1","isBackSlash","escaped","match","exec","fn","val","forEach","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","min","max","duration","DAY","target","_i","TypeError","_loop_1","source","keys","args_1","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","defaultConfig","bindToInstance","setCalendarWidth","requestAnimationFrame","calendarContainer","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","selectedDates","setDefaultTime","preventDefault","isKeyDown","input","getAttribute","step","curValue","delta","which","newValue","isHourElem","hourElement","isMinuteElem","minuteElement","incrementNumInput","abs","timeWrapper","prevValue","_input","setHoursFromInputs","updateValue","_debouncedChange","hours","secondElement","limitMinHours","minTime","minDate","minDateHasTime","latestSelectedDateObj","maxTime","maxDate","maxDateHasTime","setHoursFromDate","setDefaultHours","min_hr","min_minutes","max_hr","max_minutes","isMobile","onYearInput","event","toString","changeYear","handler","ev","el","addEventListener","_handlers","push","onClick","evt","triggerChange","triggerEvent","jumpToDate","jumpDate","jumpTo","currentYear","currentMonth","message","redraw","timeIncrement","contains","inputElem","parentNode","createEvent","dispatchEvent","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","tabIndex","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","onMouseOver","getFirstAvailableDay","startMonth","endMonth","children","startIndex","endIndex","focusOnDay","current","offset","dayFocused","isInView","activeElement","body","startElem","givenMonth","loopDelta","numMonthDays","changeMonth","getNextAvailableDay","buildMonthDays","firstOfMonth","prevMonthDays","utils","getDaysInMonth","createDocumentFragment","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","buildDays","frag","buildMonth","container","monthNavFragment","monthElement","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","splice","concat","innerHTML","is_offset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","appendTo","documentClick","isOpen","eventTarget_1","composedPath","isCalendarElement","isInput","path","lostFocus","relatedTarget","isIgnored","some","close","clear","newYear","newYearNum","isNewYear","dateToCheck","array","parsed","from","to","allowKeydown","allowInlineKeydown","keyCode","blur","open","isTimeObj","timeContainer","focusAndClose","selectDate","delta_1","ctrlKey","stopPropagation","elems","filter","x","shiftKey","charAt","toLowerCase","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","lastDate","lastChild","containsDisabled","minRange","maxRange","prevMonth","dayElem","timestamp","outOfRange","onResize","positionCalendar","minMaxDateSetter","inverseDateObj","currentYearElement","removeAttribute","setupLocale","customPositionElement","_positionElement","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","centerIndex","cssRules","centerStyle","insertRule","centerBefore","msMaxTouchPoints","findParent","condition","selectedDate","shouldChangeMonth","selectedIndex","sort","a","b","showTimeInput","single","range","_bind","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_createElement","destroy","removeEventListener","insertBefore","_type","k","click","wasOpen","select","set","option","CALLBACKS","setSelectedDate","toggle","inputDate","dates","JSON","stringify","parseDateRules","rule","data","hooks","initEvent","getDateStr","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","boolOpts","userConfig","parse","dataset","timeMode","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","parseConfig","querySelector","nodeName","placeholder","required","nextSibling","preloadedDate","defaultDate","_showTimeInput","setupDates","yr","fragment","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","buildWeeks","rContainer","separator","hourInput","minuteInput","military2ampm","secondInput","title","buildTime","customAppend","nodeType","build","querySelectorAll","inputType","defaultValue","setupMobile","debouncedResize","ontouchstart","capture","bindEvents","isSafari","init","_flatpickr","nodeList","nodes","HTMLElement","instances","error","HTMLCollection","NodeList","selector","Node","localize","setDefaults","jQuery","fp_incr","customParams","selects","tagName","toUpperCase","elementsList","builder","defaultParams","containerClass","openerClass","panelClass","optionClass","optgroupClass","isSelectedClass","hasFocusClass","isDisabledClass","isOpenClass","builderParams","uId","opener","focusedElement","selectedElement","panel","currLabel","resetSearchTimeout","searchKey","cstOption","offsetTop","offsetParent","scrollTop","CustomEvent","bubbles","customSelectOriginalOption","setFocusedElement","currentFocusedIndex","openedCustomSelect","setSelectedElement","selected","moveFocuesedElement","fromCharCode","text","substr","index","currPanel","currOption","cstList","li","cstOptgroup","subNodes","parseMarkup","lj","targetPar","nodePar","markupToInsert","possible","floor","random","addEvents","removeEvents","toSelect","append","cstNode","removedNode","changeEvent","empty","removed","optGroup","replaceChild","xmlSerializer","domParser","_CREATE_ELEMENT_","_GET_ELEMENTS_BY_TAG_NAME_","_LENGTH_","_STYLE_","_TITLE_","_UNDEFINED_","_SET_ATTRIBUTE_","_GET_ATTRIBUTE_","NULL","__SVGINJECT","ID_SUFFIX","ID_SUFFIX_REGEX","LOAD_FAIL","SVG_NOT_SUPPORTED","SVG_INVALID","ATTRIBUTE_EXCLUSION_NAMES","A_ELEMENT","IS_SVG_SUPPORTED","SVGRect","DEFAULT_OPTIONS","useCache","copyAttributes","makeIdsUnique","IRI_TAG_PROPERTIES_MAP","clipPath","cursor","linearGradient","marker","mask","radialGradient","INJECTED","FAIL","uniqueIdCounter","svgElemToSvgString","svgElement","XMLSerializer","serializeToString","svgElem","idElem","idSuffix","idElements","iriTagNames","iriProperties","changed","localName","refAttrName","iri","mappedProperty","propertyName","funcIriRegex","descElements","replace","hasAttributes","inject","imgElem","absUrl","attribute","attributeName","attributeValue","attributes","titleElem","beforeInject","injectElem","removeOnLoadAttribute","afterInject","svgInvalid","mergeOptions","mergedOptions","argument","buildSvgElement","svgStr","verify","svgDoc","DOMParser","parseFromString","svgStringToSvgDoc","documentElement","div","errorMessage","msg","fail","status","onFail","svgNotSupported","loadFail","removeEventListeners","onload","onerror","imgNotSet","SVGInjectInstance","createSVGInject","globalName","defaultOptions","svgLoadCache","SVGInject","img","run","resolve","allFinish","onAllFinish","injectIndex","injectCount","finish","SVGInjectElement","Promise","callback","svgInjectAttributeValue","isArray","beforeLoad","src","onFinishCallbacks","onFinish","onFinishCallback","url","href","useCacheOption","makeIdsUniqueOption","setSvgLoadCacheValue","svgLoad","handleLoadValue","loadValue","hasUniqueIds","svgString","uniqueIdsSvgString","makeIdsUniqueCached","isCallbackQueue","errorCallback","req","XMLHttpRequest","onreadystatechange","readyState","responseXML","responseText","send","loadSvg","svgXml","Document","afterLoad","svgElemOrSvgString","isString","SVGElement","css","head","createTextNode","addStyleToHead","setOptions","fallbackSrc","root","features","rAF","webkitRequestAnimationFrame","mozRequestAnimationFrame","Debouncer","ticking","Headroom","extend","result","replacement","lastKnownScrollY","tolerance","down","up","classes","scroller","initialised","onPin","onUnpin","onTop","onNotTop","onBottom","onNotBottom","constructor","update","requestTick","rafCallback","handleEvent","cutsTheMustard","debouncer","initial","attachEvent","getScrollY","unpin","pinned","unpinned","pin","notTop","notBottom","getViewportHeight","clientHeight","getElementPhysicalHeight","elm","getScrollerPhysicalHeight","getDocumentHeight","scrollHeight","getElementHeight","getScrollerHeight","isOutOfBounds","currentScrollY","pastTop","pastBottom","toleranceExceeded","direction","shouldUnpin","scrollingDown","pastOffset","shouldPin","scrollingUp","scrollDirection","$","data_click","data_target","data_validation","getFunction","code","argNames","parts","shift","Function","isMethodProxySafe","method","asyncOnBeforeSend","xhr","setRequestHeader","asyncOnSuccess","contentType","each","prepend","replaceWith","html","asyncRequest","confirm","loading","cache","beforeSend","show","complete","hide","success","getResponseHeader","$element","attr","formdata","FormData","v","file","files","processData","ajax","on","form","parents","pageX","pageY","removeData","currentTarget","validationInfo","clickInfo","clickTarget","isCancel","hasClass","validate","action","serializeArray","ce","defaultPrevented","params","origPrevent","cancelable","detail","initCustomEvent","Event","_lgUtils","_lgUtils2","_extends","lgData","uid","lgModules","cssEasing","easing","speed","height","addClass","startClass","backdropDuration","hideBarsDelay","useLeft","closable","loop","escKey","keyPress","controls","slideEndAnimatoin","hideControlOnEnd","mousewheel","getCaptionFromTitleOrAlt","appendSubHtmlTo","subHtmlSelectorRelative","preload","showAfterLoad","selectWithin","nextHtml","prevHtml","iframeMaxWidth","download","counter","appendCounterTo","swipeThreshold","enableSwipe","enableDrag","dynamic","dynamicEl","galleryId","Plugin","lGalleryOn","lgBusy","hideBartimeout","isTouch","items","___slide","outer","_this","_hash","location","hash","trigger","structure","slide","arrow","closeGallery","removeClass","template","list","subHtmlCont","setVendor","setTop","doCss","inner","prevScrollTop","wH","lGallery","transition","support","isVideo","html5","youtube","vimeo","dailymotion","vk","addHtml","currentEle","subHtml","fL","loadContent","rec","delay","_img","_src","_poster","_srcset","_sizes","_html","_hasPoster","getResponsiveSrc","srcItms","rsWidth","rsSrc","__src","wWidth","innerWidth","poster","responsive","srcset","sizes","iframe","_isVideo","videoClass","picturefill","elements","_speed","fromTouch","fromThumb","_prevIndex","_length","_time","_next","_prev","downloadUrl","getElementById","prevIndex","arrowDisable","touchPrev","touchNext","goToNextSlide","goToPrevSlide","next","prev","setTranslate","xValue","yValue","touchMove","startCoords","endCoords","distance","clientWidth","touchEnd","opacity","isMoved","manageSwipeClass","targetTouches","isDraging","scrollLeft","deltaY","mousedown","off","lguid","lightGallery","label","customEvent","Listener","events","_id","_event","param","encodeURIComponent","f","require","1","global","thumbnailDefaults","thumbnail","animateThumb","currentPagerPosition","thumbWidth","thumbContHeight","thumbMargin","exThumbImage","showThumbByDefault","toggleThumb","pullCaptionUp","enableThumbDrag","enableThumbSwipe","loadYoutubeThumbnail","youtubeThumbSize","loadVimeoThumbnail","vimeoThumbSize","loadDailymotionThumbnail","Thumbnail","core","thumbOuter","thumbOuterWidth","thumbTotalWidth","thumbIndex","thumbClickable","thumbkeyPress","$thumb","thumbList","vimeoErrorThumbSize","getThumb","thumb","thumbImg","vimeoId","$this","vimeoVideoId","script","tempLeft","lgScript","getElementsByClassName","lgThumbnail","autoplayDefaults","autoplay","pause","progressBar","fourceAutoplay","autoplayControls","appendAutoplayControlsTo","Autoplay","interval","fromAuto","canceledOnTouch","fourceAutoplayTemp","progress","startlAuto","cancelAuto","_progressBar","_progress","setInterval","clearInterval","lgAutoplay","videoDefaults","videoMaxWidth","youtubePlayerParams","vimeoPlayerParams","dailymotionPlayerParams","vkPlayerParams","videojs","videojsOptions","Video","videoLoaded","loadVideo","play","maxWidth","loadOnClick","$el","youtubePlayer","vimeoPlayer","dailymotionPlayer","html5Player","contentWindow","postMessage","$f","api","_loadVideo","$tempImg","$videoSlide","vkPlayer","noposter","video","lgVideo","fullscreenDefaults","fullScreen","isFullScreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","Fullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","requestFullscreen","msRequestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","exitFullscreen","msExitFullscreen","mozCancelFullScreen","webkitExitFullscreen","fullscreen","lgFullscreen","pagerDefaults","pager","Pager","$pagerCont","$pagerOuter","pagerList","lgPager","isChrome","zoomDefaults","scale","zoom","actualSize","enableZoomAfter","useLeftForZoom","Zoom","zoomabletimeout","zoomIcons","scaleVal","image","offsetX","offsetY","parentElement","callScale","resetZoom","fromIcon","nw","naturalWidth","tapped","zoomDrag","zoomSwipe","allowX","allowY","distanceX","distanceY","_el","touchendZoom","minY","maxY","minX","maxX","lgZoom","hashDefaults","Hash","oldHash","_idx","history","pushState","pathname","search","lgHash","shareSefaults","share","facebook","facebookDropdownText","twitter","twitterDropdownText","googlePlus","googlePlusDropdownText","pinterest","pinterestDropdownText","Share","shareHtml","getSharePropsUrl","getShareProps","prop","shareProp","group1","lgShare","getNextDate","Bookingmask","displayFormat","datepickerType","language","bookingmask","checkInDisplay","checkInInput","checkOutDisplay","checkOutInput","dateRangeTrigger","today","tomorrow","setCheckInDate","instance","setCheckoutDateSeparate","onRangeDateChange","dateStr","newCheckOutDate","setCheckOutRangeDate","flatPickrOpts","locales","inputDates","checkInDate","checkOutInstance","checkOutDate","nextDate","MenuToggle","rootModule","menuModals","modalTriggers","toggleMenu","reset","triggerModal","isAnimating","modalId","forceClose","modalList","menuModal","find","modal","openModal","animateModal","toggleAnimationState","paddingRight","overflow","SubmenuToggle","menus","desktopMenuBreakpoint","openUrlOnToggle","submenuToggle","parent","onDocumentClick","getMenu","normalLinks","menu","normalLink","hasNestedSubmenu","disableUrl","siblings","sibling","getSiblings","isDesktopMenu","Header","menuToggle","disableTransitions","Iibe","moduleList","formModule","timeoutDelay","btn","roomIdField","dateField","nightsField","roomField","priceField","iibeRoomId","iibeDate","iibeNights","iibeRoom","iibePrice","button","onButtonClick","roomId","dateValue","nightsValue","resultsContainer","fetch","then","response","ok","statusText","createButtonListeners","removeLoader","catch","apiErrorMessage","getOptions","dateIncrementer","dateDecrementer","nightsIncrementer","nightsDecrementer","currentDate","onChangeDebounce","isToday","prevDate","SelectDropdown","DocumentTouch","customSelect","SvgIcon","ScrollHeader","ClearCache","token","Cookies","headers","Authorization","res","reload","CookieBar","expireDays","cookiePath","approvedCookies","checkbox","expires","LightGallery","Sticky","velocity","checkScrollPosition","player","setVolume","includes","isVimeo","Vimeo","Player","amount","mute","unmute","toggleSound","easeInOutQuad","_typeof","iterator","singleton","start","stop","a11y","timeStart","timeElapsed","timeCurrent","scrollTo","done","scrollY","jumper","SmoothScroll","header","headerOffset","jump","registeredInModuleLoader","OldCookies","noConflict","converter","setMilliseconds","getMilliseconds","toUTCString","write","decodeURIComponent","escape","stringifiedAttributes","cookie","cookies","rdecode","json","read","getJSON","withConverter","webpackPolyfill","deprecate","paths"],"mappings":"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a,CACbd,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,QACA,eACA,kBACA,WACA,cACA,OACA,UAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,SACA,OACA,QACA,MACA,OACA,OACA,SACA,WACA,UACA,SACA,WAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAEXN,eAAgB,MAChBD,iBAAkB,KAClBE,YAAa,2BACbC,YAAa,aACbK,KAAM,CAAC,KAAM,OAEjBH,EAAKf,MAAMmB,GAAKH,EAChBD,EAAKf,MAEL,IAAIoB,EAAyB,oBAAXvB,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXqB,EAAa,CACbnB,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,UACA,aACA,UACA,SACA,SACA,UACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,WACA,OACA,UACA,WACA,UACA,UACA,SACA,UACA,WACA,aACA,WACA,YAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,IAEXN,eAAgB,MAChBD,iBAAkB,OAClBE,YAAa,6BACbC,YAAa,6BACbK,KAAM,CAAC,KAAM,MACbI,cAAe,OAEnBF,EAAKpB,MAAMuB,GAAKF,EAChBD,EAAKpB,MAEL,IAAIwB,EAAyB,oBAAX3B,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXyB,EAAY,CACZvB,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,SACA,aACA,UACA,QACA,YACA,QACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SAC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,OACvDC,SAAU,CACN,SACA,SACA,UACA,SACA,UACA,SACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAGRa,QAAS,WACL,MAAO,KAEXR,eAAgB,EAChBE,eAAgB,QAChBD,iBAAkB,OAEtB8B,EAAKxC,MAAM0C,GAAKD,EAChBD,EAAKxC,MAEL,IAAI2C,EAAyB,oBAAX9C,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX4C,EAAS,CACT1C,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,UACA,SACA,WACA,WACA,aACA,UACA,YAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBC,iBAAkB,KAClBC,eAAgB,QAChBC,YAAa,sBACbC,YAAa,0BAEjB8B,EAAK3C,MAAM6C,GAAKD,EAChBD,EAAK3C,MAEL,IAAI8C,EAAU,CACV5C,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,SACA,SACA,UACA,YACA,WACA,SACA,aAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAGR2C,YAAa,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC1DtC,eAAgB,EAChBQ,QAAS,SAAUe,GACf,IAAI5C,EAAI4C,EAAM,IACd,GAAI5C,EAAI,GAAKA,EAAI,GACb,MAAO,KACX,OAAQA,EAAI,IACR,KAAK,EACD,MAAO,KACX,KAAK,EACD,MAAO,KACX,KAAK,EACD,MAAO,KACX,QACI,MAAO,OAGnBuB,eAAgB,OAChBD,iBAAkB,KAClBE,YAAa,sBACbC,YAAa,kBACbK,KAAM,CAAC,KAAM,MACbI,cAAe,QAGf0B,EAAyB,oBAAXnD,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXiD,EAAY,CACZxC,eAAgB,EAChBE,eAAgB,QAChBD,iBAAkB,MAClBE,YAAa,oCACbC,YAAa,kBACbX,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,UACA,QACA,QACA,WACA,QACA,WACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,QACA,SACA,OACA,QACA,QACA,UACA,YACA,UACA,WACA,aAGRa,QAAS,WACL,MAAO,OAGf+B,EAAKhD,MAAMkD,GAAKD,EAChBD,EAAKhD,MAEL,IAAImD,EAAyB,oBAAXtD,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXoD,EAAU,CACVlD,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,UACA,QACA,SACA,YACA,SACA,UACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,QACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,aACA,UACA,YACA,cAGRa,QAAS,WACL,MAAO,KAEXR,eAAgB,EAChBE,eAAgB,OAEpBwC,EAAKnD,MAAMqD,GAAKD,EAChBD,EAAKnD,MAEL,IAAIsD,EAAyB,oBAAXzD,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXuD,EAAW,CACXrD,SAAU,CACNC,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC1CC,SAAU,CACN,WACA,YACA,YACA,YACA,YACA,QACA,YAGRC,OAAQ,CACJF,UAAW,CACP,OACA,QACA,QACA,MACA,MACA,QACA,QACA,MACA,OACA,MACA,MACA,QAEJC,SAAU,CACN,UACA,WACA,QACA,SACA,MACA,QACA,QACA,SACA,YACA,WACA,WACA,cAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAEXP,iBAAkB,MAClBC,eAAgB,SAChBC,YAAa,sBACbC,YAAa,uBAEjByC,EAAKtD,MAAMwD,GAAKD,EAChBD,EAAKtD,MAEL,IAAIyD,EAAyB,oBAAX5D,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX0D,EAAU,CACVxD,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,OAAQ,MAAO,OAAQ,QACrDC,SAAU,CACN,UACA,SACA,UACA,WACA,WACA,OACA,SAGRC,OAAQ,CACJF,UAAW,CACP,SACA,QACA,OACA,QACA,KACA,OACA,QACA,MACA,UACA,QACA,SACA,UAEJC,SAAU,CACN,SACA,QACA,OACA,QACA,KACA,OACA,QACA,MACA,UACA,QACA,SACA,WAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAGfwC,EAAKzD,MAAM2D,GAAKD,EAChBD,EAAKzD,MAEL,IAAI4D,EAAyB,oBAAX/D,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX6D,EAAU,CACVpD,eAAgB,EAChBP,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,YACA,YACA,UACA,cACA,UACA,YACA,aAGRC,OAAQ,CACJF,UAAW,CACP,QACA,QACA,SACA,QACA,QACA,OACA,QACA,MACA,OACA,OACA,SACA,SAEJC,SAAU,CACN,WACA,WACA,YACA,WACA,WACA,UACA,WACA,SACA,UACA,UACA,YACA,aAGRa,QAAS,WACL,MAAO,MAGf2C,EAAK5D,MAAM8D,GAAKD,EAChBD,EAAK5D,MAEL,IAAI+D,EAAyB,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MAAO,IAEXwF,EAAY,CACZtF,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,aACA,YACA,cACA,eACA,cACA,aACA,gBAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,YACA,UACA,WACA,aAGRa,QAAS,WACL,MAAO,KAEXR,eAAgB,EAChBE,eAAgB,QAChBD,iBAAkB,OAClBY,cAAe,MAEnBiE,EAAKvF,MAAMyF,GAAKD,EAChBD,EAAKvF,MAEL,IAAI0F,EAAyB,oBAAX7F,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX2F,GAAU,CACVzF,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,WACA,SACA,UACA,YACA,UACA,UACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,QACA,SACA,SACA,SACA,SACA,SACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBQ,QAAS,WAAc,MAAO,KAC9BN,eAAgB,OAChBD,iBAAkB,KAClBE,YAAa,wBACbC,YAAa,uBAEjB6E,EAAK1F,MAAM4F,GAAKD,GAChBD,EAAK1F,MAEL,IAAI6F,GAAyB,oBAAXhG,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX8F,GAAW,CACX5F,SAAU,CACNC,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC1CC,SAAU,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGRC,OAAQ,CACJF,UAAW,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,OAEJC,SAAU,CACN,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MA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CACN,QACA,SACA,UACA,UACA,SACA,YACA,eAGRC,OAAQ,CACJF,UAAW,CACP,KACA,MACA,MACA,QACA,KACA,MACA,OACA,KACA,MACA,KACA,MACA,OAEJC,SAAU,CACN,QACA,SACA,OACA,SACA,KACA,MACA,QACA,OACA,QACA,SACA,QACA,WAIZ0H,GAAK9H,MAAMgI,GAAKD,GAChBD,GAAK9H,MAEL,IAAIiI,GAAyB,oBAAXpI,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXkI,GAAS,CACThI,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,YACA,eACA,SACA,QACA,WACA,SACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,OACA,SACA,WACA,MACA,WACA,SACA,WACA,WACA,cACA,WACA,aAGRO,eAAgB,OAChBD,iBAAkB,QAClBE,YAAa,uBACbC,YAAa,yBACbJ,eAAgB,EAChBQ,QAAS,WACL,MAAO,MAGfgH,GAAKjI,MAAMmI,GAAKD,GAChBD,GAAKjI,MAEL,IAAIoI,GAAyB,oBAAXvI,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXqI,GAAa,CACbnI,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,UACA,gBACA,cACA,eACA,eACA,cACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,YACA,QACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,aAGRO,eAAgB,SAEpByH,GAAKpI,MAAMsI,GAAKD,GAChBD,GAAKpI,MAEL,IAAIuI,GAAyB,oBAAX1I,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXwI,GAAW,CACXtI,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,WACA,OACA,QACA,WACA,MACA,SACA,YAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,WACA,YACA,SACA,UACA,MACA,QACA,QACA,SACA,aACA,YACA,YACA,cAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAGfsH,GAAKvI,MAAMyI,GAAKD,GAChBD,GAAKvI,MAEL,IAAI0I,GAAyB,oBAAX7I,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX2I,GAAU,CACVzI,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,cACA,cACA,UACA,QACA,UACA,UACA,YAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,OACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,OACA,SACA,MACA,OACA,OACA,SACA,WACA,UACA,SACA,YAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,IAEXN,eAAgB,MAChBD,iBAAkB,OAClBE,YAAa,4BACbC,YAAa,2BACbK,KAAM,CAAC,KAAM,MACbI,cAAe,OAEnBoH,GAAK1I,MAAM4I,GAAKD,GAChBD,GAAK1I,MAEL,IAAI6I,GAAyB,oBAAXhJ,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX8I,GAAU,CACV5I,SAAU,CACNC,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,OAAQ,KAAM,MAC9CC,SAAU,CACN,QACA,QACA,YACA,QACA,iBACA,WACA,cAGRC,OAAQ,CACJF,UAAW,CACP,KACA,MACA,OACA,SACA,OACA,OACA,OACA,MACA,OACA,MACA,OACA,QAEJC,SAAU,CACN,SACA,WACA,SACA,WACA,OACA,OACA,OACA,UACA,cACA,WACA,YACA,eAIZyI,GAAK7I,MAAM+I,GAAKD,GAChBD,GAAK7I,MAEL,IAAIgJ,GAAyB,oBAAXnJ,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXiJ,GAAS,CACT/I,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,OACrDC,SAAU,CACN,SACA,WACA,SACA,SACA,UACA,SACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,QACA,QACA,MACA,MACA,MACA,SACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBE,eAAgB,OAChBM,QAAS,WACL,MAAO,MAGf+H,GAAKhJ,MAAMkJ,GAAKD,GAChBD,GAAKhJ,MAEL,IAAImJ,GAAyB,oBAAXtJ,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXoJ,GAAY,CACZlJ,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,UACA,aACA,QACA,QACA,UACA,QACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,QACA,QACA,MACA,QACA,QACA,SACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBE,eAAgB,OAChBM,QAAS,WACL,MAAO,MAGfkI,GAAKnJ,MAAMqJ,GAAKD,GAChBD,GAAKnJ,MAEL,IAAIsJ,GAAyB,oBAAXzJ,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXuJ,GAAW,CACXrJ,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,SACA,SACA,UACA,YACA,UACA,WACA,aAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,QACA,SACA,OACA,QACA,MACA,UACA,SACA,QACA,UACA,QACA,SACA,aAIZkJ,GAAKtJ,MAAMwJ,GAAKD,GAChBD,GAAKtJ,MAEL,IAAIyJ,GAAyB,oBAAX5J,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX0J,GAAU,CACVxJ,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,UACA,aACA,SACA,QACA,WACA,QACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,OACA,QACA,MACA,MACA,MACA,SACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBC,iBAAkB,OAClBC,eAAgB,QAEpB8I,GAAKzJ,MAAM2J,GAAKD,GAChBD,GAAKzJ,MAEL,IAAI4J,GAAyB,oBAAX/J,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX6J,GAAU,CACVpJ,eAAgB,EAChBC,iBAAkB,IAClBR,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,SACA,SACA,SACA,SACA,UACA,SACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,OACA,QACA,MACA,OACA,OACA,UACA,YACA,UACA,WACA,aAGRa,QAAS,WACL,MAAO,MAGf2I,GAAK5J,MAAM8J,GAAKD,GAChBD,GAAK5J,MAEL,IAAI+J,GAAyB,oBAAXlK,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXgK,GAAO,CACP9J,SAAU,CACNC,UAAW,CAAC,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAC5CC,SAAU,CACN,UACA,SACA,SACA,MACA,WACA,QACA,UAGRC,OAAQ,CACJF,UAAW,CACP,OACA,OACA,QACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,QAEJC,SAAU,CACN,SACA,aACA,SACA,SACA,UACA,WACA,UACA,UACA,UACA,SACA,YACA,YAGRK,eAAgB,EAChBE,eAAgB,QAChBC,YAAa,yBACbC,YAAa,mBACbI,QAAS,WACL,MAAO,KAGf8I,GAAK/J,MAAMiK,GAAKD,GAChBD,GAAK/J,MAEL,IAAIkK,GAAyB,oBAAXrK,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXmK,GAAU,CACVjK,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,QACA,YACA,OACA,WACA,WACA,OACA,cAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,OACA,QACA,OACA,QACA,QACA,UACA,SACA,UACA,QACA,OACA,QACA,WAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAEXN,eAAgB,MAChBD,iBAAkB,KAClBE,YAAa,yBACbC,YAAa,UACbK,KAAM,CAAC,KAAM,OAEjBgJ,GAAKlK,MAAMoK,GAAKD,GAChBD,GAAKlK,MAEL,IAAIqK,GAAyB,oBAAXxK,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXsK,GAAY,CACZ7J,eAAgB,EAChBP,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,SACA,YACA,WACA,SACA,SACA,WACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,QACA,WACA,UACA,UACA,UACA,SACA,UACA,WACA,UACA,WACA,aAIZiK,GAAKrK,MAAMuK,GAAKD,GAChBD,GAAKrK,MAEL,IAAIwK,GAAyB,oBAAX3K,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXyK,GAAa,CACbvK,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,WACA,UACA,SACA,SACA,UACA,UACA,YAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,QAEJC,SAAU,CACN,YACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,aACA,aACA,WACA,aAGRK,eAAgB,GAEpB+J,GAAKxK,MAAM0K,GAAKD,GAChBD,GAAKxK,MAEL,IAAI2K,GAAyB,oBAAX9K,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX4K,GAAW,CACX1K,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGRC,OAAQ,CACJF,UAAW,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,OAEJC,SAAU,CACN,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,QAGRO,eAAgB,MAChBD,iBAAkB,IAClBE,YAAa,OACbC,YAAa,mBAEjB8J,GAAK3K,MAAM6K,GAAKD,GAChBD,GAAK3K,MAEL,IAAI8K,GAAyB,oBAAXjL,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX+K,GAAsB,CACtB7K,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGRC,OAAQ,CACJF,UAAW,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,OAEJC,SAAU,CACN,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,QAGRO,eAAgB,MAChBD,iBAAkB,IAClBE,YAAa,OACbC,YAAa,mBAEjBiK,GAAK9K,MAAMgL,MAAQD,GACnBD,GAAK9K,MAEL,IAAIiL,GAAO,CACP3K,GAAIL,EACJa,GAAIN,EACJW,GAAIH,EACJO,GAAIF,EACJK,GAAID,EACJI,GAAID,EACJK,IAAKF,EACLK,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJ,QAAWtD,EAAS,GAAIwD,GACxBoI,GAAIpI,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJgE,GAhsCY,CACZjL,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,SACA,QACA,SACA,OACA,SACA,SACA,UAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,MACA,QACA,MACA,MACA,QACA,OACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAopCXsG,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,MAAOD,IAGX5N,EAAQiO,QAAUH,GAElBlN,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAvtGnC,WAAnB,EAAOnB,SAA0C,IAAXC,EAAyBiC,EAAQlC,IAC1BkO,EAAO,CAAC,QAAF,gE,4BCDpChM,E;oCAAAA,EAIX,WAAc;;;;;;;;;;;;kFAiBlB,IAAIC,EAAW,WAQX,OAPAA,EAAWvB,OAAOwB,QAAU,SAAkBhB,GAC1C,IA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CN,SACA,SACA,WACA,SACA,cACA,WACA,WAGRC,OAAQ,CACJF,UAAW,CACP,OACA,SACA,QACA,SACA,KACA,MACA,QACA,KACA,SACA,QACA,MACA,QAEJC,SAAU,CACN,YACA,cACA,QACA,SACA,KACA,MACA,QACA,QACA,aACA,UACA,UACA,cAIZuB,EAAK3B,MAAM6B,GAAKD,EAChBD,EAAK3B,MAEL,IAAI8B,EAAyB,oBAAXjC,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX+B,EAAU,CACV7B,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,WACA,UACA,UACA,WACA,SACA,YACA,aAGRC,OAAQ,CACJF,UAAW,CACP,MACA,OACA,OACA,MACA,OACA,OACA,MACA,KACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,QACA,SACA,OACA,QACA,OACA,OACA,SACA,QACA,WACA,UACA,WACA,aAGRa,QAAS,SAAUe,GACf,IAAI5C,EAAI4C,EAAM,IACd,GAAI5C,EAAI,GAAKA,EAAI,GACb,MAAO,IACX,OAAQA,EAAI,IACR,KAAK,EACD,MAAO,IACX,KAAK,EACD,MAAO,IACX,KAAK,EACD,MAAO,IACX,KAAK,EACD,MAAO,IACX,QACI,MAAO,MAGnBqB,eAAgB,GAEpBqB,EAAK9B,MAAMiC,IAAMF,EACjBD,EAAK9B,MAEL,IAAIkC,EAAyB,oBAAXrC,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXmC,EAAQ,CACRjC,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,SACA,UACA,QACA,SACA,UACA,QACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,QACA,OACA,SACA,QACA,SACA,SACA,WACA,QACA,OACA,QACA,WACA,aAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAE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,CACZxC,eAAgB,EAChBE,eAAgB,QAChBD,iBAAkB,MAClBE,YAAa,oCACbC,YAAa,kBACbX,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,UACA,QACA,QACA,WACA,QACA,WACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,QACA,SACA,OACA,QACA,QACA,UACA,YACA,UACA,WACA,aAGRa,QAAS,WACL,MAAO,OAGf+B,EAAKhD,MAAMkD,GAAKD,EAChBD,EAAKhD,MAEL,IAAImD,EAAyB,oBAAXtD,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXoD,EAAU,CACVlD,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,UACA,QACA,SACA,YACA,SACA,UACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,QACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,aACA,UACA,YACA,cAGRa,QAAS,WACL,MAAO,KAEXR,eAAgB,EAChBE,eAAgB,OAEpBwC,EAAKnD,MAAMqD,GAAKD,EAChBD,EAAKnD,MAEL,IAAIsD,EAAyB,oBAAXzD,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXuD,EAAW,CACXrD,SAAU,CACNC,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC1CC,SAAU,CACN,WACA,YACA,YACA,YACA,YACA,QACA,YAGRC,OAAQ,CACJF,UAAW,CACP,OACA,QACA,QACA,MACA,MACA,QACA,QACA,MACA,OACA,MACA,MACA,QAEJC,SAAU,CACN,UACA,WACA,QACA,SACA,MACA,QACA,QACA,SACA,YACA,WACA,WACA,cAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAE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CACJF,UAAW,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,OAEJC,SAAU,CACN,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,QAGRa,QAAS,WACL,MAAO,MAGf+E,GAAKhG,MAAMkG,GAAKD,GAChBD,GAAKhG,MAEL,IAAImG,GAAyB,oBAAXtG,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXoG,GAAQ,CACRlG,SAAU,CACNC,UAAW,CAAC,UAAW,OAAQ,SAAU,MAAO,SAAU,QAAS,QACnEC,SAAU,CACN,UACA,OACA,SACA,MACA,aACA,QACA,SAGRC,OAAQ,CACJF,UAAW,CACP,OACA,SACA,OACA,OACA,OACA,SACA,SACA,OACA,QACA,OACA,WACA,QAEJC,SAAU,CACN,OACA,SACA,OACA,OACA,OACA,SACA,SACA,OACA,QACA,OACA,WACA,SAGRa,QAAS,WACL,MAAO,IAEXR,eAAgB,EAChBE,eAAgB,QAChBD,iBAAkB,UAClBE,YAAa,oBACbC,YAAa,uBACbS,cAAe,SAEnB6E,GAAKnG,MAAMqG,GAAKD,GAChBD,GAAKnG,MAEL,IAAIsG,GAAyB,oBAAXzG,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXuG,GAAS,CACTrG,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,WACA,WACA,WACA,WACA,WACA,OACA,UAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,WACA,QACA,SACA,cAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,IAEXN,eAAgB,MAChBD,iBAAkB,OAClBE,YAAa,4BACbC,YAAa,wBACbK,KAAM,CAAC,KAAM,MACbI,cAAe,OAEnBgF,GAAKtG,MAAMwG,GAAKD,GAChBD,GAAKtG,MAEL,IAAIyG,GAAyB,oBAAX5G,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX0G,GAAa,CACbxG,SAAU,CACNC,UAAW,CAAC,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAC5CC,SAAU,CACN,cACA,cACA,cACA,eACA,iBACA,eACA,gBAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,QACA,WACA,SACA,WACA,QACA,aACA,YACA,SACA,YACA,YAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,MAEXP,iBAAkB,MAClBE,YAAa,6BACbC,YAAa,2BAEjB4F,GAAKzG,MAAM2G,GAAKD,GAChBD,GAAKzG,MAEL,IAAI4G,GAAyB,oBAAX/G,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX6G,GAAU,CACVpG,eAAgB,EAChBP,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,YACA,YACA,WACA,YACA,cACA,aACA,cAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,WACA,YACA,QACA,UACA,QACA,SACA,SACA,UACA,aACA,WACA,YACA,cAGRO,eAAgB,UAEpBiG,GAAK5G,MAAM8G,GAAKD,GAChBD,GAAK5G,MAEL,IAAI+G,GAAyB,oBAAXlH,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXgH,GAAa,CACb9G,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,SACA,aACA,UACA,QACA,WACA,QACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,WACA,UACA,aAGRK,eAAgB,EAChBC,iBAAkB,OAClBC,eAAgB,QAEpBoG,GAAK/G,MAAMiH,GAAKD,GAChBD,GAAK/G,MAEL,IAAIkH,GAAyB,oBAAXrH,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXmH,GAAY,CACZ1G,eAAgB,EAChBP,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CAAC,QAAS,SAAU,SAAU,QAAS,SAAU,QAAS,QAExEC,OAAQ,CACJF,UAAW,CACP,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,YAEJC,SAAU,CACN,gBACA,iBACA,kBACA,kBACA,gBACA,mBACA,gBACA,iBACA,eACA,iBACA,qBACA,wBAGRO,eAAgB,OAEpBuG,GAAKlH,MAAMoH,GAAKD,GAChBD,GAAKlH,OAEwB,oBAAXH,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,KAkDVA,MAEL,IAAIqH,GAAyB,oBAAXxH,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXsH,GAAU,CACVpH,SAAU,CACNC,UAAW,CAAC,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,MACpDC,SAAU,CACN,YACA,UACA,SACA,WACA,WACA,SACA,QAGRC,OAAQ,CACJF,UAAW,CACP,MACA,KACA,MACA,MACA,KACA,OACA,QACA,KACA,MACA,QACA,MACA,MAEJC,SAAU,CACN,WACA,aACA,MACA,OACA,KACA,OACA,UACA,SACA,WACA,aACA,WACA,YAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAGfoG,GAAKrH,MAAMuH,GAAKD,GAChBD,GAAKrH,MAEL,IAAIwH,GAAyB,oBAAX3H,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXyH,GAAQ,CACRvH,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,SACA,UACA,UACA,WACA,YACA,UACA,aAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,QACA,QACA,MACA,OACA,OACA,WACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBC,iBAAkB,KAClBC,eAAgB,QAChBC,YAAa,gCACbC,YAAa,sBACbI,QAAS,SAAUe,GACf,OAAY,IAARA,GAAqB,IAARA,GAAaA,GAAO,GAC1B,MACJ,OAGfwF,GAAKxH,MAAM0H,GAAKD,GAChBD,GAAKxH,MAEL,IAAI2H,GAAyB,oBAAX9H,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX4H,GAAY,CACZ1H,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,SACA,SACA,UACA,SACA,UACA,SACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBE,eAAgB,QAChBD,iBAAkB,MAClBE,YAAa,qBACbC,YAAa,qBACbI,QAAS,WACL,MAAO,MAGf0G,GAAK3H,MAAM6H,GAAKD,GAChBD,GAAK3H,MAEL,IAAI8H,GAAyB,oBAAXjI,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX+H,GAAU,CACV7H,SAAU,CACNC,UAAW,CAAC,KAAM,MAAO,OAAQ,OAAQ,MAAO,SAAU,WAC1DC,SAAU,CACN,QACA,SACA,UACA,UACA,SACA,YACA,eAGRC,OAAQ,CACJF,UAAW,CACP,KACA,MACA,MACA,QACA,KACA,MACA,OACA,KACA,MACA,KACA,MACA,OAEJC,SAAU,CACN,QACA,SACA,OACA,SACA,KACA,MACA,QACA,OACA,QACA,SACA,QACA,WAIZ0H,GAAK9H,MAAMgI,GAAKD,GAChBD,GAAK9H,MAEL,IAAIiI,GAAyB,oBAAXpI,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXkI,GAAS,CACThI,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,YACA,eACA,SACA,QACA,WACA,SACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,OACA,SACA,WACA,MACA,WACA,SACA,WACA,WACA,cACA,WACA,aAGRO,eAAgB,OAChBD,iBAAkB,QAClBE,YAAa,uBACbC,YAAa,yBACbJ,eAAgB,EAChBQ,QAAS,WACL,MAAO,MAGfgH,GAAKjI,MAAMmI,GAAKD,GAChBD,GAAKjI,MAEL,IAAIoI,GAAyB,oBAAXvI,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXqI,GAAa,CACbnI,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,UACA,gBACA,cACA,eACA,eACA,cACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,YACA,QACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,aAGRO,eAAgB,SAEpByH,GAAKpI,MAAMsI,GAAKD,GAChBD,GAAKpI,MAEL,IAAIuI,GAAyB,oBAAX1I,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXwI,GAAW,CACXtI,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,WACA,OACA,QACA,WACA,MACA,SACA,YAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,WACA,YACA,SACA,UACA,MACA,QACA,QACA,SACA,aACA,YACA,YACA,cAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAGfsH,GAAKvI,MAAMyI,GAAKD,GAChBD,GAAKvI,MAEL,IAAI0I,GAAyB,oBAAX7I,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX2I,GAAU,CACVzI,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,cACA,cACA,UACA,QACA,UACA,UACA,YAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,OACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,OACA,SACA,MACA,OACA,OACA,SACA,WACA,UACA,SACA,YAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,IAEXN,eAAgB,MAChBD,iBAAkB,OAClBE,YAAa,4BACbC,YAAa,2BACbK,KAAM,CAAC,KAAM,MACbI,cAAe,OAEnBoH,GAAK1I,MAAM4I,GAAKD,GAChBD,GAAK1I,MAEL,IAAI6I,GAAyB,oBAAXhJ,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX8I,GAAU,CACV5I,SAAU,CACNC,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,OAAQ,KAAM,MAC9CC,SAAU,CACN,QACA,QACA,YACA,QACA,iBACA,WACA,cAGRC,OAAQ,CACJF,UAAW,CACP,KACA,MACA,OACA,SACA,OACA,OACA,OACA,MACA,OACA,MACA,OACA,QAEJC,SAAU,CACN,SACA,WACA,SACA,WACA,OACA,OACA,OACA,UACA,cACA,WACA,YACA,eAIZyI,GAAK7I,MAAM+I,GAAKD,GAChBD,GAAK7I,MAEL,IAAIgJ,GAAyB,oBAAXnJ,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXiJ,GAAS,CACT/I,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,OACrDC,SAAU,CACN,SACA,WACA,SACA,SACA,UACA,SACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,QACA,QACA,MACA,MACA,MACA,SACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBE,eAAgB,OAChBM,QAAS,WACL,MAAO,MAGf+H,GAAKhJ,MAAMkJ,GAAKD,GAChBD,GAAKhJ,MAEL,IAAImJ,GAAyB,oBAAXtJ,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXoJ,GAAY,CACZlJ,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,UACA,aACA,QACA,QACA,UACA,QACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,QACA,QACA,MACA,QACA,QACA,SACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBE,eAAgB,OAChBM,QAAS,WACL,MAAO,MAGfkI,GAAKnJ,MAAMqJ,GAAKD,GAChBD,GAAKnJ,MAEL,IAAIsJ,GAAyB,oBAAXzJ,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXuJ,GAAW,CACXrJ,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,SACA,SACA,UACA,YACA,UACA,WACA,aAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,QACA,SACA,OACA,QACA,MACA,UACA,SACA,QACA,UACA,QACA,SACA,aAIZkJ,GAAKtJ,MAAMwJ,GAAKD,GAChBD,GAAKtJ,MAEL,IAAIyJ,GAAyB,oBAAX5J,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX0J,GAAU,CACVxJ,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,UACA,aACA,SACA,QACA,WACA,QACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,UACA,OACA,QACA,MACA,MACA,MACA,SACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBC,iBAAkB,OAClBC,eAAgB,QAEpB8I,GAAKzJ,MAAM2J,GAAKD,GAChBD,GAAKzJ,MAEL,IAAI4J,GAAyB,oBAAX/J,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX6J,GAAU,CACVpJ,eAAgB,EAChBC,iBAAkB,IAClBR,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,SACA,SACA,SACA,SACA,UACA,SACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,OACA,QACA,MACA,OACA,OACA,UACA,YACA,UACA,WACA,aAGRa,QAAS,WACL,MAAO,MAGf2I,GAAK5J,MAAM8J,GAAKD,GAChBD,GAAK5J,MAEL,IAAI+J,GAAyB,oBAAXlK,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXgK,GAAO,CACP9J,SAAU,CACNC,UAAW,CAAC,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAC5CC,SAAU,CACN,UACA,SACA,SACA,MACA,WACA,QACA,UAGRC,OAAQ,CACJF,UAAW,CACP,OACA,OACA,QACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,QAEJC,SAAU,CACN,SACA,aACA,SACA,SACA,UACA,WACA,UACA,UACA,UACA,SACA,YACA,YAGRK,eAAgB,EAChBE,eAAgB,QAChBC,YAAa,yBACbC,YAAa,mBACbI,QAAS,WACL,MAAO,KAGf8I,GAAK/J,MAAMiK,GAAKD,GAChBD,GAAK/J,MAEL,IAAIkK,GAAyB,oBAAXrK,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXmK,GAAU,CACVjK,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,QACA,YACA,OACA,WACA,WACA,OACA,cAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,OACA,QACA,OACA,QACA,QACA,UACA,SACA,UACA,QACA,OACA,QACA,WAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAEXN,eAAgB,MAChBD,iBAAkB,KAClBE,YAAa,yBACbC,YAAa,UACbK,KAAM,CAAC,KAAM,OAEjBgJ,GAAKlK,MAAMoK,GAAKD,GAChBD,GAAKlK,MAEL,IAAIqK,GAAyB,oBAAXxK,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXsK,GAAY,CACZ7J,eAAgB,EAChBP,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,SACA,YACA,WACA,SACA,SACA,WACA,WAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,SACA,QACA,WACA,UACA,UACA,UACA,SACA,UACA,WACA,UACA,WACA,aAIZiK,GAAKrK,MAAMuK,GAAKD,GAChBD,GAAKrK,MAEL,IAAIwK,GAAyB,oBAAX3K,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEXyK,GAAa,CACbvK,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,WACA,UACA,SACA,SACA,UACA,UACA,YAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,QAEJC,SAAU,CACN,YACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,aACA,aACA,WACA,aAGRK,eAAgB,GAEpB+J,GAAKxK,MAAM0K,GAAKD,GAChBD,GAAKxK,MAEL,IAAI2K,GAAyB,oBAAX9K,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX4K,GAAW,CACX1K,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGRC,OAAQ,CACJF,UAAW,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,OAEJC,SAAU,CACN,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,QAGRO,eAAgB,MAChBD,iBAAkB,IAClBE,YAAa,OACbC,YAAa,mBAEjB8J,GAAK3K,MAAM6K,GAAKD,GAChBD,GAAK3K,MAEL,IAAI8K,GAAyB,oBAAXjL,aAA+CC,IAArBD,OAAOE,UAC7CF,OAAOE,UACP,CACEC,MAAO,IAEX+K,GAAsB,CACtB7K,SAAU,CACNC,UAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,SAAU,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGRC,OAAQ,CACJF,UAAW,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,OAEJC,SAAU,CACN,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,QAGRO,eAAgB,MAChBD,iBAAkB,IAClBE,YAAa,OACbC,YAAa,mBAEjBiK,GAAK9K,MAAMgL,MAAQD,GACnBD,GAAK9K,MAEL,IAAIiL,GAAO,CACP3K,GAAIL,EACJa,GAAIN,EACJW,GAAIH,EACJO,GAAIF,EACJK,GAAID,EACJI,GAAID,EACJK,IAAKF,EACLK,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJ,QAAWtD,EAAS,GAAIwD,GACxBoI,GAAIpI,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,EACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJgE,GAhsCY,CACZjL,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,SACA,QACA,SACA,OACA,SACA,SACA,UAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,MACA,QACA,MACA,MACA,QACA,OACA,YACA,UACA,WACA,aAGRK,eAAgB,EAChBQ,QAAS,WACL,MAAO,KAopCXsG,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,GAAID,GACJI,MAAOD,IAGX5N,EAAQiO,QAAUH,GAElBlN,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAvtGnC,WAAnB,EAAOnB,SAA0C,IAAXC,EAAyBiC,EAAQlC,IAC1BkO,EAAO,CAAC,QAAF,gE,kpBCikBxC,SAAsBoO,EAAS8W,GAE5C,IAAMb,EAAN,GACMc,EAAN,GAEA,OAAQ,WAEN,GAAI/W,GAAWA,aAAX,aAAJ,WAAiDA,EAAQgX,QAAQC,cAC/DhB,EAAA,aAEK,GAAIjW,GAAJ,iBAAsBA,EAE3B,IADA,IAAMkX,EAAelf,SAASsd,iBAA9B,GACS1xB,EAAJ,EAAWC,EAAIqzB,EAApB,OAAyCtzB,EAAzC,MACMszB,EAAatzB,aAAcuyB,aAA/B,WACKe,EAAatzB,GAAGozB,QAAQC,eAC3BhB,EAAA,KAAciB,EAAd,SAIC,GAAIlX,GAAWA,EAAf,OACL,IAAK,IAAI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","file":"sites/default/index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 299);\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.index = {}));\n}(this, function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Arabic = {\n weekdays: {\n shorthand: [\"أحد\", \"اثنين\", \"ثلاثاء\", \"أربعاء\", \"خميس\", \"جمعة\", \"سبت\"],\n longhand: [\n \"الأحد\",\n \"الاثنين\",\n \"الثلاثاء\",\n \"الأربعاء\",\n \"الخميس\",\n \"الجمعة\",\n \"السبت\",\n ]\n },\n months: {\n shorthand: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"],\n longhand: [\n \"يناير\",\n \"فبراير\",\n \"مارس\",\n \"أبريل\",\n \"مايو\",\n \"يونيو\",\n \"يوليو\",\n \"أغسطس\",\n \"سبتمبر\",\n \"أكتوبر\",\n \"نوفمبر\",\n \"ديسمبر\",\n ]\n }\n };\n fp.l10ns.ar = Arabic;\n fp.l10ns;\n\n var fp$1 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Austria = {\n weekdays: {\n shorthand: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n longhand: [\n \"Sonntag\",\n \"Montag\",\n \"Dienstag\",\n \"Mittwoch\",\n \"Donnerstag\",\n \"Freitag\",\n \"Samstag\",\n ]\n },\n months: {\n shorthand: [\n \"Jän\",\n \"Feb\",\n \"Mär\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Jänner\",\n \"Februar\",\n \"März\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Dezember\",\n ]\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"KW\",\n rangeSeparator: \" bis \",\n scrollTitle: \"Zum Ändern scrollen\",\n toggleTitle: \"Zum Umschalten klicken\"\n };\n fp$1.l10ns.at = Austria;\n fp$1.l10ns;\n\n var fp$2 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Azerbaijan = {\n weekdays: {\n shorthand: [\"Baz\", \"BzE\", \"ÇAx\", \"Çər\", \"CAx\", \"Cüm\", \"Şən\"],\n longhand: [\n \"Bazar\",\n \"Bazar ertəsi\",\n \"Çərşənbə axşamı\",\n \"Çərşənbə\",\n \"Cümə axşamı\",\n \"Cümə\",\n \"Şənbə\",\n ]\n },\n months: {\n shorthand: [\n \"Yan\",\n \"Fev\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"İyn\",\n \"İyl\",\n \"Avq\",\n \"Sen\",\n \"Okt\",\n \"Noy\",\n \"Dek\",\n ],\n longhand: [\n \"Yanvar\",\n \"Fevral\",\n \"Mart\",\n \"Aprel\",\n \"May\",\n \"İyun\",\n \"İyul\",\n \"Avqust\",\n \"Sentyabr\",\n \"Oktyabr\",\n \"Noyabr\",\n \"Dekabr\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n rangeSeparator: \" - \",\n weekAbbreviation: \"Hf\",\n scrollTitle: \"Artırmaq üçün sürüşdürün\",\n toggleTitle: \"Aç / Bağla\",\n amPM: [\"GƏ\", \"GS\"]\n };\n fp$2.l10ns.az = Azerbaijan;\n fp$2.l10ns;\n\n var fp$3 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Belarusian = {\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 };\n fp$3.l10ns.be = Belarusian;\n fp$3.l10ns;\n\n var fp$4 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Bulgarian = {\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 };\n fp$4.l10ns.bg = Bulgarian;\n fp$4.l10ns;\n\n var fp$5 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Bangla = {\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 };\n fp$5.l10ns.bn = Bangla;\n fp$5.l10ns;\n\n var fp$6 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Catalan = {\n weekdays: {\n shorthand: [\"Dg\", \"Dl\", \"Dt\", \"Dc\", \"Dj\", \"Dv\", \"Ds\"],\n longhand: [\n \"Diumenge\",\n \"Dilluns\",\n \"Dimarts\",\n \"Dimecres\",\n \"Dijous\",\n \"Divendres\",\n \"Dissabte\",\n ]\n },\n months: {\n shorthand: [\n \"Gen\",\n \"Febr\",\n \"Març\",\n \"Abr\",\n \"Maig\",\n \"Juny\",\n \"Jul\",\n \"Ag\",\n \"Set\",\n \"Oct\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Gener\",\n \"Febrer\",\n \"Març\",\n \"Abril\",\n \"Maig\",\n \"Juny\",\n \"Juliol\",\n \"Agost\",\n \"Setembre\",\n \"Octubre\",\n \"Novembre\",\n \"Desembre\",\n ]\n },\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"è\";\n switch (s % 10) {\n case 1:\n return \"r\";\n case 2:\n return \"n\";\n case 3:\n return \"r\";\n case 4:\n return \"t\";\n default:\n return \"è\";\n }\n },\n firstDayOfWeek: 1\n };\n fp$6.l10ns.cat = Catalan;\n fp$6.l10ns;\n\n var fp$7 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Czech = {\n weekdays: {\n shorthand: [\"Ne\", \"Po\", \"Út\", \"St\", \"Čt\", \"Pá\", \"So\"],\n longhand: [\n \"Neděle\",\n \"Pondělí\",\n \"Úterý\",\n \"Středa\",\n \"Čtvrtek\",\n \"Pátek\",\n \"Sobota\",\n ]\n },\n months: {\n shorthand: [\n \"Led\",\n \"Ún\",\n \"Bře\",\n \"Dub\",\n \"Kvě\",\n \"Čer\",\n \"Čvc\",\n \"Srp\",\n \"Zář\",\n \"Říj\",\n \"Lis\",\n \"Pro\",\n ],\n longhand: [\n \"Leden\",\n \"Únor\",\n \"Březen\",\n \"Duben\",\n \"Květen\",\n \"Červen\",\n \"Červenec\",\n \"Srpen\",\n \"Září\",\n \"Říjen\",\n \"Listopad\",\n \"Prosinec\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n rangeSeparator: \" do \",\n weekAbbreviation: \"Týd.\",\n scrollTitle: \"Rolujte pro změnu\",\n toggleTitle: \"Přepnout dopoledne/odpoledne\",\n amPM: [\"dop.\", \"odp.\"],\n yearAriaLabel: \"Rok\"\n };\n fp$7.l10ns.cs = Czech;\n fp$7.l10ns;\n\n var fp$8 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Welsh = {\n weekdays: {\n shorthand: [\"Sul\", \"Llun\", \"Maw\", \"Mer\", \"Iau\", \"Gwe\", \"Sad\"],\n longhand: [\n \"Dydd Sul\",\n \"Dydd Llun\",\n \"Dydd Mawrth\",\n \"Dydd Mercher\",\n \"Dydd Iau\",\n \"Dydd Gwener\",\n \"Dydd Sadwrn\",\n ]\n },\n months: {\n shorthand: [\n \"Ion\",\n \"Chwef\",\n \"Maw\",\n \"Ebr\",\n \"Mai\",\n \"Meh\",\n \"Gorff\",\n \"Awst\",\n \"Medi\",\n \"Hyd\",\n \"Tach\",\n \"Rhag\",\n ],\n longhand: [\n \"Ionawr\",\n \"Chwefror\",\n \"Mawrth\",\n \"Ebrill\",\n \"Mai\",\n \"Mehefin\",\n \"Gorffennaf\",\n \"Awst\",\n \"Medi\",\n \"Hydref\",\n \"Tachwedd\",\n \"Rhagfyr\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function (nth) {\n if (nth === 1)\n return \"af\";\n if (nth === 2)\n return \"ail\";\n if (nth === 3 || nth === 4)\n return \"ydd\";\n if (nth === 5 || nth === 6)\n return \"ed\";\n if ((nth >= 7 && nth <= 10) ||\n nth == 12 ||\n nth == 15 ||\n nth == 18 ||\n nth == 20)\n return \"fed\";\n if (nth == 11 ||\n nth == 13 ||\n nth == 14 ||\n nth == 16 ||\n nth == 17 ||\n nth == 19)\n return \"eg\";\n if (nth >= 21 && nth <= 39)\n return \"ain\";\n // Inconclusive.\n return \"\";\n }\n };\n fp$8.l10ns.cy = Welsh;\n fp$8.l10ns;\n\n var fp$9 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Danish = {\n weekdays: {\n shorthand: [\"søn\", \"man\", \"tir\", \"ons\", \"tors\", \"fre\", \"lør\"],\n longhand: [\n \"søndag\",\n \"mandag\",\n \"tirsdag\",\n \"onsdag\",\n \"torsdag\",\n \"fredag\",\n \"lørdag\",\n ]\n },\n months: {\n shorthand: [\n \"jan\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"maj\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sep\",\n \"okt\",\n \"nov\",\n \"dec\",\n ],\n longhand: [\n \"januar\",\n \"februar\",\n \"marts\",\n \"april\",\n \"maj\",\n \"juni\",\n \"juli\",\n \"august\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ]\n },\n ordinal: function () {\n return \".\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"uge\"\n };\n fp$9.l10ns.da = Danish;\n fp$9.l10ns;\n\n var fp$a = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var German = {\n weekdays: {\n shorthand: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n longhand: [\n \"Sonntag\",\n \"Montag\",\n \"Dienstag\",\n \"Mittwoch\",\n \"Donnerstag\",\n \"Freitag\",\n \"Samstag\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mär\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"März\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Dezember\",\n ]\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"KW\",\n rangeSeparator: \" bis \",\n scrollTitle: \"Zum Ändern scrollen\",\n toggleTitle: \"Zum Umschalten klicken\"\n };\n fp$a.l10ns.de = German;\n fp$a.l10ns;\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 };\n\n var fp$b = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Esperanto = {\n firstDayOfWeek: 1,\n rangeSeparator: \" ĝis \",\n weekAbbreviation: \"Sem\",\n scrollTitle: \"Rulumu por pligrandigi la valoron\",\n toggleTitle: \"Klaku por ŝalti\",\n weekdays: {\n shorthand: [\"Dim\", \"Lun\", \"Mar\", \"Mer\", \"Ĵaŭ\", \"Ven\", \"Sab\"],\n longhand: [\n \"dimanĉo\",\n \"lundo\",\n \"mardo\",\n \"merkredo\",\n \"ĵaŭdo\",\n \"vendredo\",\n \"sabato\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Aŭg\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"januaro\",\n \"februaro\",\n \"marto\",\n \"aprilo\",\n \"majo\",\n \"junio\",\n \"julio\",\n \"aŭgusto\",\n \"septembro\",\n \"oktobro\",\n \"novembro\",\n \"decembro\",\n ]\n },\n ordinal: function () {\n return \"-a\";\n }\n };\n fp$b.l10ns.eo = Esperanto;\n fp$b.l10ns;\n\n var fp$c = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Spanish = {\n weekdays: {\n shorthand: [\"Dom\", \"Lun\", \"Mar\", \"Mié\", \"Jue\", \"Vie\", \"Sáb\"],\n longhand: [\n \"Domingo\",\n \"Lunes\",\n \"Martes\",\n \"Miércoles\",\n \"Jueves\",\n \"Viernes\",\n \"Sábado\",\n ]\n },\n months: {\n shorthand: [\n \"Ene\",\n \"Feb\",\n \"Mar\",\n \"Abr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Ago\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dic\",\n ],\n longhand: [\n \"Enero\",\n \"Febrero\",\n \"Marzo\",\n \"Abril\",\n \"Mayo\",\n \"Junio\",\n \"Julio\",\n \"Agosto\",\n \"Septiembre\",\n \"Octubre\",\n \"Noviembre\",\n \"Diciembre\",\n ]\n },\n ordinal: function () {\n return \"º\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" a \"\n };\n fp$c.l10ns.es = Spanish;\n fp$c.l10ns;\n\n var fp$d = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Estonian = {\n weekdays: {\n shorthand: [\"P\", \"E\", \"T\", \"K\", \"N\", \"R\", \"L\"],\n longhand: [\n \"Pühapäev\",\n \"Esmaspäev\",\n \"Teisipäev\",\n \"Kolmapäev\",\n \"Neljapäev\",\n \"Reede\",\n \"Laupäev\",\n ]\n },\n months: {\n shorthand: [\n \"Jaan\",\n \"Veebr\",\n \"Märts\",\n \"Apr\",\n \"Mai\",\n \"Juuni\",\n \"Juuli\",\n \"Aug\",\n \"Sept\",\n \"Okt\",\n \"Nov\",\n \"Dets\",\n ],\n longhand: [\n \"Jaanuar\",\n \"Veebruar\",\n \"Märts\",\n \"Aprill\",\n \"Mai\",\n \"Juuni\",\n \"Juuli\",\n \"August\",\n \"September\",\n \"Oktoober\",\n \"November\",\n \"Detsember\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n weekAbbreviation: \"Näd\",\n rangeSeparator: \" kuni \",\n scrollTitle: \"Keri, et suurendada\",\n toggleTitle: \"Klõpsa, et vahetada\"\n };\n fp$d.l10ns.et = Estonian;\n fp$d.l10ns;\n\n var fp$e = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Persian = {\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: 6,\n ordinal: function () {\n return \"\";\n }\n };\n fp$e.l10ns.fa = Persian;\n fp$e.l10ns;\n\n var fp$f = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Finnish = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Su\", \"Ma\", \"Ti\", \"Ke\", \"To\", \"Pe\", \"La\"],\n longhand: [\n \"Sunnuntai\",\n \"Maanantai\",\n \"Tiistai\",\n \"Keskiviikko\",\n \"Torstai\",\n \"Perjantai\",\n \"Lauantai\",\n ]\n },\n months: {\n shorthand: [\n \"Tammi\",\n \"Helmi\",\n \"Maalis\",\n \"Huhti\",\n \"Touko\",\n \"Kesä\",\n \"Heinä\",\n \"Elo\",\n \"Syys\",\n \"Loka\",\n \"Marras\",\n \"Joulu\",\n ],\n longhand: [\n \"Tammikuu\",\n \"Helmikuu\",\n \"Maaliskuu\",\n \"Huhtikuu\",\n \"Toukokuu\",\n \"Kesäkuu\",\n \"Heinäkuu\",\n \"Elokuu\",\n \"Syyskuu\",\n \"Lokakuu\",\n \"Marraskuu\",\n \"Joulukuu\",\n ]\n },\n ordinal: function () {\n return \".\";\n }\n };\n fp$f.l10ns.fi = Finnish;\n fp$f.l10ns;\n\n var fp$g = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Faroese = {\n weekdays: {\n shorthand: [\"Sun\", \"Mán\", \"Týs\", \"Mik\", \"Hós\", \"Frí\", \"Ley\"],\n longhand: [\n \"Sunnudagur\",\n \"Mánadagur\",\n \"Týsdagur\",\n \"Mikudagur\",\n \"Hósdagur\",\n \"Fríggjadagur\",\n \"Leygardagur\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mars\",\n \"Apríl\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"Septembur\",\n \"Oktobur\",\n \"Novembur\",\n \"Desembur\",\n ]\n },\n ordinal: function () {\n return \".\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"vika\",\n scrollTitle: \"Rulla fyri at broyta\",\n toggleTitle: \"Trýst fyri at skifta\",\n yearAriaLabel: \"Ár\"\n };\n fp$g.l10ns.fo = Faroese;\n fp$g.l10ns;\n\n var fp$h = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var French = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"dim\", \"lun\", \"mar\", \"mer\", \"jeu\", \"ven\", \"sam\"],\n longhand: [\n \"dimanche\",\n \"lundi\",\n \"mardi\",\n \"mercredi\",\n \"jeudi\",\n \"vendredi\",\n \"samedi\",\n ]\n },\n months: {\n shorthand: [\n \"janv\",\n \"févr\",\n \"mars\",\n \"avr\",\n \"mai\",\n \"juin\",\n \"juil\",\n \"août\",\n \"sept\",\n \"oct\",\n \"nov\",\n \"déc\",\n ],\n longhand: [\n \"janvier\",\n \"février\",\n \"mars\",\n \"avril\",\n \"mai\",\n \"juin\",\n \"juillet\",\n \"août\",\n \"septembre\",\n \"octobre\",\n \"novembre\",\n \"décembre\",\n ]\n },\n ordinal: function (nth) {\n if (nth > 1)\n return \"\";\n return \"er\";\n },\n rangeSeparator: \" au \",\n weekAbbreviation: \"Sem\",\n scrollTitle: \"Défiler pour augmenter la valeur\",\n toggleTitle: \"Cliquer pour basculer\"\n };\n fp$h.l10ns.fr = French;\n fp$h.l10ns;\n\n var fp$i = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Greek = {\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 weekAbbreviation: \"Εβδ\",\n rangeSeparator: \" έως \",\n scrollTitle: \"Μετακυλήστε για προσαύξηση\",\n toggleTitle: \"Κάντε κλικ για αλλαγή\",\n amPM: [\"ΠΜ\", \"ΜΜ\"]\n };\n fp$i.l10ns.gr = Greek;\n fp$i.l10ns;\n\n var fp$j = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Hebrew = {\n weekdays: {\n shorthand: [\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\"],\n longhand: [\"ראשון\", \"שני\", \"שלישי\", \"רביעי\", \"חמישי\", \"שישי\", \"שבת\"]\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 rangeSeparator: \" אל \"\n };\n fp$j.l10ns.he = Hebrew;\n fp$j.l10ns;\n\n var fp$k = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Hindi = {\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 };\n fp$k.l10ns.hi = Hindi;\n fp$k.l10ns;\n\n var fp$l = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Croatian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Uto\", \"Sri\", \"Čet\", \"Pet\", \"Sub\"],\n longhand: [\n \"Nedjelja\",\n \"Ponedjeljak\",\n \"Utorak\",\n \"Srijeda\",\n \"Četvrtak\",\n \"Petak\",\n \"Subota\",\n ]\n },\n months: {\n shorthand: [\n \"Sij\",\n \"Velj\",\n \"Ožu\",\n \"Tra\",\n \"Svi\",\n \"Lip\",\n \"Srp\",\n \"Kol\",\n \"Ruj\",\n \"Lis\",\n \"Stu\",\n \"Pro\",\n ],\n longhand: [\n \"Siječanj\",\n \"Veljača\",\n \"Ožujak\",\n \"Travanj\",\n \"Svibanj\",\n \"Lipanj\",\n \"Srpanj\",\n \"Kolovoz\",\n \"Rujan\",\n \"Listopad\",\n \"Studeni\",\n \"Prosinac\",\n ]\n }\n };\n fp$l.l10ns.hr = Croatian;\n fp$l.l10ns;\n\n var fp$m = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Hungarian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"V\", \"H\", \"K\", \"Sz\", \"Cs\", \"P\", \"Szo\"],\n longhand: [\n \"Vasárnap\",\n \"Hétfő\",\n \"Kedd\",\n \"Szerda\",\n \"Csütörtök\",\n \"Péntek\",\n \"Szombat\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Már\",\n \"Ápr\",\n \"Máj\",\n \"Jún\",\n \"Júl\",\n \"Aug\",\n \"Szep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Január\",\n \"Február\",\n \"Március\",\n \"Április\",\n \"Május\",\n \"Június\",\n \"Július\",\n \"Augusztus\",\n \"Szeptember\",\n \"Október\",\n \"November\",\n \"December\",\n ]\n },\n ordinal: function () {\n return \".\";\n },\n weekAbbreviation: \"Hét\",\n scrollTitle: \"Görgessen\",\n toggleTitle: \"Kattintson a váltáshoz\",\n rangeSeparator: \" - \"\n };\n fp$m.l10ns.hu = Hungarian;\n fp$m.l10ns;\n\n var fp$n = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Indonesian = {\n weekdays: {\n shorthand: [\"Min\", \"Sen\", \"Sel\", \"Rab\", \"Kam\", \"Jum\", \"Sab\"],\n longhand: [\"Minggu\", \"Senin\", \"Selasa\", \"Rabu\", \"Kamis\", \"Jumat\", \"Sabtu\"]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mei\",\n \"Jun\",\n \"Jul\",\n \"Agu\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Januari\",\n \"Februari\",\n \"Maret\",\n \"April\",\n \"Mei\",\n \"Juni\",\n \"Juli\",\n \"Agustus\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Desember\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n }\n };\n fp$n.l10ns.id = Indonesian;\n fp$n.l10ns;\n\n var fp$o = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Icelandic = {\n weekdays: {\n shorthand: [\"Sun\", \"Mán\", \"Þri\", \"Mið\", \"Fim\", \"Fös\", \"Lau\"],\n longhand: [\n \"Sunnudagur\",\n \"Mánudagur\",\n \"Þriðjudagur\",\n \"Miðvikudagur\",\n \"Fimmtudagur\",\n \"Föstudagur\",\n \"Laugardagur\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maí\",\n \"Jún\",\n \"Júl\",\n \"Ágú\",\n \"Sep\",\n \"Okt\",\n \"Nóv\",\n \"Des\",\n ],\n longhand: [\n \"Janúar\",\n \"Febrúar\",\n \"Mars\",\n \"Apríl\",\n \"Maí\",\n \"Júní\",\n \"Júlí\",\n \"Ágúst\",\n \"September\",\n \"Október\",\n \"Nóvember\",\n \"Desember\",\n ]\n },\n ordinal: function () {\n return \".\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"vika\",\n yearAriaLabel: \"Ár\"\n };\n fp$o.l10ns.is = Icelandic;\n fp$o.l10ns;\n\n var fp$p = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Italian = {\n weekdays: {\n shorthand: [\"Dom\", \"Lun\", \"Mar\", \"Mer\", \"Gio\", \"Ven\", \"Sab\"],\n longhand: [\n \"Domenica\",\n \"Lunedì\",\n \"Martedì\",\n \"Mercoledì\",\n \"Giovedì\",\n \"Venerdì\",\n \"Sabato\",\n ]\n },\n months: {\n shorthand: [\n \"Gen\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mag\",\n \"Giu\",\n \"Lug\",\n \"Ago\",\n \"Set\",\n \"Ott\",\n \"Nov\",\n \"Dic\",\n ],\n longhand: [\n \"Gennaio\",\n \"Febbraio\",\n \"Marzo\",\n \"Aprile\",\n \"Maggio\",\n \"Giugno\",\n \"Luglio\",\n \"Agosto\",\n \"Settembre\",\n \"Ottobre\",\n \"Novembre\",\n \"Dicembre\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () { return \"°\"; },\n rangeSeparator: \" al \",\n weekAbbreviation: \"Se\",\n scrollTitle: \"Scrolla per aumentare\",\n toggleTitle: \"Clicca per cambiare\"\n };\n fp$p.l10ns.it = Italian;\n fp$p.l10ns;\n\n var fp$q = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Japanese = {\n weekdays: {\n shorthand: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"],\n longhand: [\n \"日曜日\",\n \"月曜日\",\n \"火曜日\",\n \"水曜日\",\n \"木曜日\",\n \"金曜日\",\n \"土曜日\",\n ]\n },\n months: {\n shorthand: [\n \"1月\",\n \"2月\",\n \"3月\",\n \"4月\",\n \"5月\",\n \"6月\",\n \"7月\",\n \"8月\",\n \"9月\",\n \"10月\",\n \"11月\",\n \"12月\",\n ],\n longhand: [\n \"1月\",\n \"2月\",\n \"3月\",\n \"4月\",\n \"5月\",\n \"6月\",\n \"7月\",\n \"8月\",\n \"9月\",\n \"10月\",\n \"11月\",\n \"12月\",\n ]\n }\n };\n fp$q.l10ns.ja = Japanese;\n fp$q.l10ns;\n\n var fp$r = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Korean = {\n weekdays: {\n shorthand: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"],\n longhand: [\n \"일요일\",\n \"월요일\",\n \"화요일\",\n \"수요일\",\n \"목요일\",\n \"금요일\",\n \"토요일\",\n ]\n },\n months: {\n shorthand: [\n \"1월\",\n \"2월\",\n \"3월\",\n \"4월\",\n \"5월\",\n \"6월\",\n \"7월\",\n \"8월\",\n \"9월\",\n \"10월\",\n \"11월\",\n \"12월\",\n ],\n longhand: [\n \"1월\",\n \"2월\",\n \"3월\",\n \"4월\",\n \"5월\",\n \"6월\",\n \"7월\",\n \"8월\",\n \"9월\",\n \"10월\",\n \"11월\",\n \"12월\",\n ]\n },\n ordinal: function () {\n return \"일\";\n }\n };\n fp$r.l10ns.ko = Korean;\n fp$r.l10ns;\n\n var fp$s = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Khmer = {\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 ordinal: function () {\n return \"\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" ដល់ \",\n weekAbbreviation: \"សប្តាហ៍\",\n scrollTitle: \"រំកិលដើម្បីបង្កើន\",\n toggleTitle: \"ចុចដើម្បីផ្លាស់ប្ដូរ\",\n yearAriaLabel: \"ឆ្នាំ\"\n };\n fp$s.l10ns.km = Khmer;\n fp$s.l10ns;\n\n var fp$t = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Kazakh = {\n weekdays: {\n shorthand: [\"Жс\", \"Дс\", \"Сc\", \"Ср\", \"Бс\", \"Жм\", \"Сб\"],\n longhand: [\n \"Жексенбi\",\n \"Дүйсенбi\",\n \"Сейсенбi\",\n \"Сәрсенбi\",\n \"Бейсенбi\",\n \"Жұма\",\n \"Сенбi\",\n ]\n },\n months: {\n shorthand: [\n \"Қаң\",\n \"Ақп\",\n \"Нау\",\n \"Сәу\",\n \"Мам\",\n \"Мау\",\n \"Шiл\",\n \"Там\",\n \"Қыр\",\n \"Қаз\",\n \"Қар\",\n \"Жел\",\n ],\n longhand: [\n \"Қаңтар\",\n \"Ақпан\",\n \"Наурыз\",\n \"Сәуiр\",\n \"Мамыр\",\n \"Маусым\",\n \"Шiлде\",\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 };\n fp$t.l10ns.kz = Kazakh;\n fp$t.l10ns;\n\n var fp$u = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Lithuanian = {\n weekdays: {\n shorthand: [\"S\", \"Pr\", \"A\", \"T\", \"K\", \"Pn\", \"Š\"],\n longhand: [\n \"Sekmadienis\",\n \"Pirmadienis\",\n \"Antradienis\",\n \"Trečiadienis\",\n \"Ketvirtadienis\",\n \"Penktadienis\",\n \"Šeštadienis\",\n ]\n },\n months: {\n shorthand: [\n \"Sau\",\n \"Vas\",\n \"Kov\",\n \"Bal\",\n \"Geg\",\n \"Bir\",\n \"Lie\",\n \"Rgp\",\n \"Rgs\",\n \"Spl\",\n \"Lap\",\n \"Grd\",\n ],\n longhand: [\n \"Sausis\",\n \"Vasaris\",\n \"Kovas\",\n \"Balandis\",\n \"Gegužė\",\n \"Birželis\",\n \"Liepa\",\n \"Rugpjūtis\",\n \"Rugsėjis\",\n \"Spalis\",\n \"Lapkritis\",\n \"Gruodis\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"-a\";\n },\n weekAbbreviation: \"Sav\",\n scrollTitle: \"Keisti laiką pelės rateliu\",\n toggleTitle: \"Perjungti laiko formatą\"\n };\n fp$u.l10ns.lt = Lithuanian;\n fp$u.l10ns;\n\n var fp$v = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Latvian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Sv\", \"Pr\", \"Ot\", \"Tr\", \"Ce\", \"Pk\", \"Se\"],\n longhand: [\n \"Svētdiena\",\n \"Pirmdiena\",\n \"Otrdiena\",\n \"Trešdiena\",\n \"Ceturtdiena\",\n \"Piektdiena\",\n \"Sestdiena\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Jūn\",\n \"Jūl\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Janvāris\",\n \"Februāris\",\n \"Marts\",\n \"Aprīlis\",\n \"Maijs\",\n \"Jūnijs\",\n \"Jūlijs\",\n \"Augusts\",\n \"Septembris\",\n \"Oktobris\",\n \"Novembris\",\n \"Decembris\",\n ]\n },\n rangeSeparator: \" līdz \"\n };\n fp$v.l10ns.lv = Latvian;\n fp$v.l10ns;\n\n var fp$w = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Macedonian = {\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 weekAbbreviation: \"Нед.\",\n rangeSeparator: \" до \"\n };\n fp$w.l10ns.mk = Macedonian;\n fp$w.l10ns;\n\n var fp$x = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Mongolian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Да\", \"Мя\", \"Лх\", \"Пү\", \"Ба\", \"Бя\", \"Ня\"],\n longhand: [\"Даваа\", \"Мягмар\", \"Лхагва\", \"Пүрэв\", \"Баасан\", \"Бямба\", \"Ням\"]\n },\n months: {\n shorthand: [\n \"1-р сар\",\n \"2-р сар\",\n \"3-р сар\",\n \"4-р сар\",\n \"5-р сар\",\n \"6-р сар\",\n \"7-р сар\",\n \"8-р сар\",\n \"9-р сар\",\n \"10-р сар\",\n \"11-р сар\",\n \"12-р сар\",\n ],\n longhand: [\n \"Нэгдүгээр сар\",\n \"Хоёрдугаар сар\",\n \"Гуравдугаар сар\",\n \"Дөрөвдүгээр сар\",\n \"Тавдугаар сар\",\n \"Зургаадугаар сар\",\n \"Долдугаар сар\",\n \"Наймдугаар сар\",\n \"Есдүгээр сар\",\n \"Аравдугаар сар\",\n \"Арваннэгдүгээр сар\",\n \"Арванхоёрдугаар сар\",\n ]\n },\n rangeSeparator: \"-с \"\n };\n fp$x.l10ns.mn = Mongolian;\n fp$x.l10ns;\n\n var fp$y = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Malaysian = {\n weekdays: {\n shorthand: [\"Min\", \"Isn\", \"Sel\", \"Rab\", \"Kha\", \"Jum\", \"Sab\"],\n longhand: [\n \"Minggu\",\n \"Isnin\",\n \"Selasa\",\n \"Rabu\",\n \"Khamis\",\n \"Jumaat\",\n \"Sabtu\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mac\",\n \"Apr\",\n \"Mei\",\n \"Jun\",\n \"Jul\",\n \"Ogo\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dis\",\n ],\n longhand: [\n \"Januari\",\n \"Februari\",\n \"Mac\",\n \"April\",\n \"Mei\",\n \"Jun\",\n \"Julai\",\n \"Ogos\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Disember\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n }\n };\n fp$y.l10ns;\n\n var fp$z = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Burmese = {\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 };\n fp$z.l10ns.my = Burmese;\n fp$z.l10ns;\n\n var fp$A = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Dutch = {\n weekdays: {\n shorthand: [\"zo\", \"ma\", \"di\", \"wo\", \"do\", \"vr\", \"za\"],\n longhand: [\n \"zondag\",\n \"maandag\",\n \"dinsdag\",\n \"woensdag\",\n \"donderdag\",\n \"vrijdag\",\n \"zaterdag\",\n ]\n },\n months: {\n shorthand: [\n \"jan\",\n \"feb\",\n \"mrt\",\n \"apr\",\n \"mei\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sept\",\n \"okt\",\n \"nov\",\n \"dec\",\n ],\n longhand: [\n \"januari\",\n \"februari\",\n \"maart\",\n \"april\",\n \"mei\",\n \"juni\",\n \"juli\",\n \"augustus\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ]\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"wk\",\n rangeSeparator: \" tot \",\n scrollTitle: \"Scroll voor volgende / vorige\",\n toggleTitle: \"Klik om te wisselen\",\n ordinal: function (nth) {\n if (nth === 1 || nth === 8 || nth >= 20)\n return \"ste\";\n return \"de\";\n }\n };\n fp$A.l10ns.nl = Dutch;\n fp$A.l10ns;\n\n var fp$B = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Norwegian = {\n weekdays: {\n shorthand: [\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\"],\n longhand: [\n \"Søndag\",\n \"Mandag\",\n \"Tirsdag\",\n \"Onsdag\",\n \"Torsdag\",\n \"Fredag\",\n \"Lørdag\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mars\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Desember\",\n ]\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"Uke\",\n scrollTitle: \"Scroll for å endre\",\n toggleTitle: \"Klikk for å veksle\",\n ordinal: function () {\n return \".\";\n }\n };\n fp$B.l10ns.no = Norwegian;\n fp$B.l10ns;\n\n var fp$C = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Punjabi = {\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 };\n fp$C.l10ns.pa = Punjabi;\n fp$C.l10ns;\n\n var fp$D = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Polish = {\n weekdays: {\n shorthand: [\"Nd\", \"Pn\", \"Wt\", \"Śr\", \"Cz\", \"Pt\", \"So\"],\n longhand: [\n \"Niedziela\",\n \"Poniedziałek\",\n \"Wtorek\",\n \"Środa\",\n \"Czwartek\",\n \"Piątek\",\n \"Sobota\",\n ]\n },\n months: {\n shorthand: [\n \"Sty\",\n \"Lut\",\n \"Mar\",\n \"Kwi\",\n \"Maj\",\n \"Cze\",\n \"Lip\",\n \"Sie\",\n \"Wrz\",\n \"Paź\",\n \"Lis\",\n \"Gru\",\n ],\n longhand: [\n \"Styczeń\",\n \"Luty\",\n \"Marzec\",\n \"Kwiecień\",\n \"Maj\",\n \"Czerwiec\",\n \"Lipiec\",\n \"Sierpień\",\n \"Wrzesień\",\n \"Październik\",\n \"Listopad\",\n \"Grudzień\",\n ]\n },\n rangeSeparator: \" do \",\n weekAbbreviation: \"tydz.\",\n scrollTitle: \"Przwiń aby zwiększyć\",\n toggleTitle: \"Kliknij aby przełączyć\",\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n }\n };\n fp$D.l10ns.pl = Polish;\n fp$D.l10ns;\n\n var fp$E = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Portuguese = {\n weekdays: {\n shorthand: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"],\n longhand: [\n \"Domingo\",\n \"Segunda-feira\",\n \"Terça-feira\",\n \"Quarta-feira\",\n \"Quinta-feira\",\n \"Sexta-feira\",\n \"Sábado\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Fev\",\n \"Mar\",\n \"Abr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Ago\",\n \"Set\",\n \"Out\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ]\n },\n rangeSeparator: \" até \"\n };\n fp$E.l10ns.pt = Portuguese;\n fp$E.l10ns;\n\n var fp$F = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Romanian = {\n weekdays: {\n shorthand: [\"Dum\", \"Lun\", \"Mar\", \"Mie\", \"Joi\", \"Vin\", \"Sam\"],\n longhand: [\n \"Duminică\",\n \"Luni\",\n \"Marți\",\n \"Miercuri\",\n \"Joi\",\n \"Vineri\",\n \"Sâmbătă\",\n ]\n },\n months: {\n shorthand: [\n \"Ian\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Iun\",\n \"Iul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Noi\",\n \"Dec\",\n ],\n longhand: [\n \"Ianuarie\",\n \"Februarie\",\n \"Martie\",\n \"Aprilie\",\n \"Mai\",\n \"Iunie\",\n \"Iulie\",\n \"August\",\n \"Septembrie\",\n \"Octombrie\",\n \"Noiembrie\",\n \"Decembrie\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n }\n };\n fp$F.l10ns.ro = Romanian;\n fp$F.l10ns;\n\n var fp$G = 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 };\n fp$G.l10ns.ru = Russian;\n fp$G.l10ns;\n\n var fp$H = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Sinhala = {\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 };\n fp$H.l10ns.si = Sinhala;\n fp$H.l10ns;\n\n var fp$I = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Slovak = {\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Ut\", \"Str\", \"Štv\", \"Pia\", \"Sob\"],\n longhand: [\n \"Nedeľa\",\n \"Pondelok\",\n \"Utorok\",\n \"Streda\",\n \"Štvrtok\",\n \"Piatok\",\n \"Sobota\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Máj\",\n \"Jún\",\n \"Júl\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Január\",\n \"Február\",\n \"Marec\",\n \"Apríl\",\n \"Máj\",\n \"Jún\",\n \"Júl\",\n \"August\",\n \"September\",\n \"Október\",\n \"November\",\n \"December\",\n ]\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" do \",\n ordinal: function () {\n return \".\";\n }\n };\n fp$I.l10ns.sk = Slovak;\n fp$I.l10ns;\n\n var fp$J = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Slovenian = {\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Tor\", \"Sre\", \"Čet\", \"Pet\", \"Sob\"],\n longhand: [\n \"Nedelja\",\n \"Ponedeljek\",\n \"Torek\",\n \"Sreda\",\n \"Četrtek\",\n \"Petek\",\n \"Sobota\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Avg\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Marec\",\n \"April\",\n \"Maj\",\n \"Junij\",\n \"Julij\",\n \"Avgust\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"December\",\n ]\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" do \",\n ordinal: function () {\n return \".\";\n }\n };\n fp$J.l10ns.sl = Slovenian;\n fp$J.l10ns;\n\n var fp$K = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Albanian = {\n weekdays: {\n shorthand: [\"Di\", \"Hë\", \"Ma\", \"Më\", \"En\", \"Pr\", \"Sh\"],\n longhand: [\n \"E Diel\",\n \"E Hënë\",\n \"E Martë\",\n \"E Mërkurë\",\n \"E Enjte\",\n \"E Premte\",\n \"E Shtunë\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Shk\",\n \"Mar\",\n \"Pri\",\n \"Maj\",\n \"Qer\",\n \"Kor\",\n \"Gus\",\n \"Sht\",\n \"Tet\",\n \"Nën\",\n \"Dhj\",\n ],\n longhand: [\n \"Janar\",\n \"Shkurt\",\n \"Mars\",\n \"Prill\",\n \"Maj\",\n \"Qershor\",\n \"Korrik\",\n \"Gusht\",\n \"Shtator\",\n \"Tetor\",\n \"Nëntor\",\n \"Dhjetor\",\n ]\n }\n };\n fp$K.l10ns.sq = Albanian;\n fp$K.l10ns;\n\n var fp$L = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Serbian = {\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Uto\", \"Sre\", \"Čet\", \"Pet\", \"Sub\"],\n longhand: [\n \"Nedelja\",\n \"Ponedeljak\",\n \"Utorak\",\n \"Sreda\",\n \"Četvrtak\",\n \"Petak\",\n \"Subota\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Avg\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mart\",\n \"April\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Avgust\",\n \"Septembar\",\n \"Oktobar\",\n \"Novembar\",\n \"Decembar\",\n ]\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"Ned.\",\n rangeSeparator: \" do \"\n };\n fp$L.l10ns.sr = Serbian;\n fp$L.l10ns;\n\n var fp$M = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Swedish = {\n firstDayOfWeek: 1,\n weekAbbreviation: \"v\",\n weekdays: {\n shorthand: [\"Sön\", \"Mån\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\"],\n longhand: [\n \"Söndag\",\n \"Måndag\",\n \"Tisdag\",\n \"Onsdag\",\n \"Torsdag\",\n \"Fredag\",\n \"Lördag\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Januari\",\n \"Februari\",\n \"Mars\",\n \"April\",\n \"Maj\",\n \"Juni\",\n \"Juli\",\n \"Augusti\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"December\",\n ]\n },\n ordinal: function () {\n return \".\";\n }\n };\n fp$M.l10ns.sv = Swedish;\n fp$M.l10ns;\n\n var fp$N = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Thai = {\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 rangeSeparator: \" ถึง \",\n scrollTitle: \"เลื่อนเพื่อเพิ่มหรือลด\",\n toggleTitle: \"คลิกเพื่อเปลี่ยน\",\n ordinal: function () {\n return \"\";\n }\n };\n fp$N.l10ns.th = Thai;\n fp$N.l10ns;\n\n var fp$O = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Turkish = {\n weekdays: {\n shorthand: [\"Paz\", \"Pzt\", \"Sal\", \"Çar\", \"Per\", \"Cum\", \"Cmt\"],\n longhand: [\n \"Pazar\",\n \"Pazartesi\",\n \"Salı\",\n \"Çarşamba\",\n \"Perşembe\",\n \"Cuma\",\n \"Cumartesi\",\n ]\n },\n months: {\n shorthand: [\n \"Oca\",\n \"Şub\",\n \"Mar\",\n \"Nis\",\n \"May\",\n \"Haz\",\n \"Tem\",\n \"Ağu\",\n \"Eyl\",\n \"Eki\",\n \"Kas\",\n \"Ara\",\n ],\n longhand: [\n \"Ocak\",\n \"Şubat\",\n \"Mart\",\n \"Nisan\",\n \"Mayıs\",\n \"Haziran\",\n \"Temmuz\",\n \"Ağustos\",\n \"Eylül\",\n \"Ekim\",\n \"Kasım\",\n \"Aralık\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n rangeSeparator: \" - \",\n weekAbbreviation: \"Hf\",\n scrollTitle: \"Artırmak için kaydırın\",\n toggleTitle: \"Aç/Kapa\",\n amPM: [\"ÖÖ\", \"ÖS\"]\n };\n fp$O.l10ns.tr = Turkish;\n fp$O.l10ns;\n\n var fp$P = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Ukrainian = {\n firstDayOfWeek: 1,\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 };\n fp$P.l10ns.uk = Ukrainian;\n fp$P.l10ns;\n\n var fp$Q = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Vietnamese = {\n weekdays: {\n shorthand: [\"CN\", \"T2\", \"T3\", \"T4\", \"T5\", \"T6\", \"T7\"],\n longhand: [\n \"Chủ nhật\",\n \"Thứ hai\",\n \"Thứ ba\",\n \"Thứ tư\",\n \"Thứ năm\",\n \"Thứ sáu\",\n \"Thứ bảy\",\n ]\n },\n months: {\n shorthand: [\n \"Th1\",\n \"Th2\",\n \"Th3\",\n \"Th4\",\n \"Th5\",\n \"Th6\",\n \"Th7\",\n \"Th8\",\n \"Th9\",\n \"Th10\",\n \"Th11\",\n \"Th12\",\n ],\n longhand: [\n \"Tháng một\",\n \"Tháng hai\",\n \"Tháng ba\",\n \"Tháng tư\",\n \"Tháng năm\",\n \"Tháng sáu\",\n \"Tháng bảy\",\n \"Tháng tám\",\n \"Tháng chín\",\n \"Tháng mười\",\n \"Tháng 11\",\n \"Tháng 12\",\n ]\n },\n firstDayOfWeek: 1\n };\n fp$Q.l10ns.vn = Vietnamese;\n fp$Q.l10ns;\n\n var fp$R = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Mandarin = {\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 rangeSeparator: \" 至 \",\n weekAbbreviation: \"周\",\n scrollTitle: \"滚动切换\",\n toggleTitle: \"点击切换 12/24 小时时制\"\n };\n fp$R.l10ns.zh = Mandarin;\n fp$R.l10ns;\n\n var fp$S = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var MandarinTraditional = {\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 rangeSeparator: \" 至 \",\n weekAbbreviation: \"週\",\n scrollTitle: \"滾動切換\",\n toggleTitle: \"點擊切換 12/24 小時時制\"\n };\n fp$S.l10ns.zh_tw = MandarinTraditional;\n fp$S.l10ns;\n\n var l10n = {\n ar: Arabic,\n at: Austria,\n az: Azerbaijan,\n be: Belarusian,\n bg: Bulgarian,\n bn: Bangla,\n cat: Catalan,\n cs: Czech,\n cy: Welsh,\n da: Danish,\n de: German,\n \"default\": __assign({}, english),\n en: english,\n eo: Esperanto,\n es: Spanish,\n et: Estonian,\n fa: Persian,\n fi: Finnish,\n fo: Faroese,\n fr: French,\n gr: Greek,\n he: Hebrew,\n hi: Hindi,\n hr: Croatian,\n hu: Hungarian,\n id: Indonesian,\n is: Icelandic,\n it: Italian,\n ja: Japanese,\n ko: Korean,\n km: Khmer,\n kz: Kazakh,\n lt: Lithuanian,\n lv: Latvian,\n mk: Macedonian,\n mn: Mongolian,\n ms: Malaysian,\n my: Burmese,\n nl: Dutch,\n no: Norwegian,\n pa: Punjabi,\n pl: Polish,\n pt: Portuguese,\n ro: Romanian,\n ru: Russian,\n si: Sinhala,\n sk: Slovak,\n sl: Slovenian,\n sq: Albanian,\n sr: Serbian,\n sv: Swedish,\n th: Thai,\n tr: Turkish,\n uk: Ukrainian,\n vn: Vietnamese,\n zh: Mandarin,\n zh_tw: MandarinTraditional\n };\n\n exports.default = l10n;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","/* flatpickr v4.5.7, @license MIT */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.flatpickr = factory());\n}(this, function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n ];\n var defaults = {\n _disable: [],\n _enable: [],\n allowInput: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enable: [],\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n // Thursday in current week decides the year.\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n // January 4 is always in week 1.\n var week1 = new Date(date.getFullYear(), 0, 4);\n // Adjust to Thursday in week 1 and count number of weeks from date to week1.\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false\n };\n\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ]\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\"\n };\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 do_nothing = function () { return undefined; };\n var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\n var revFormat = {\n D: do_nothing,\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) {\n var weekNumber = parseInt(weekNum);\n return new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\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: do_nothing,\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: do_nothing,\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 date_orig = 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: \" + date_orig));\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({}, flatpickr.defaultConfig),\n l10n: english\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\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 min_hr = self.config.minDate.getHours();\n var min_minutes = self.config.minDate.getMinutes();\n hours = Math.max(hours, min_hr);\n if (hours === min_hr)\n minutes = Math.max(min_minutes, minutes);\n if (hours === min_hr && minutes === min_minutes)\n seconds = self.config.minDate.getSeconds();\n }\n if (self.config.maxDate !== undefined) {\n var max_hr = self.config.maxDate.getHours();\n var max_minutes = self.config.maxDate.getMinutes();\n hours = Math.min(hours, max_hr);\n if (hours === max_hr)\n minutes = Math.min(max_minutes, minutes);\n if (hours === max_hr && minutes === max_minutes)\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.static)\n bind(self._input, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"click\", 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 */\n function jumpToDate(jumpDate) {\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 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 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(\"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 buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement = createElement(\"span\", \"cur-month\");\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, \"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, \"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 self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\");\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 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, is_offset) {\n if (is_offset === void 0) { is_offset = true; }\n var delta = is_offset ? 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 }\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 \"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 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 }\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 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 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) {\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 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 (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 ].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 if (target !== undefined) {\n e.preventDefault();\n target.focus();\n }\n else if (e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n }\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 triggerEvent(\"onKeyDown\", e);\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"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()), lastDate = self.daysContainer.lastChild\n .lastChild.dateObj.getTime();\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < lastDate; 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 prevMonth = self.daysContainer.children[m - 1];\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 (month.contains(elem) ||\n !(m > 0 &&\n prevMonth &&\n prevMonth.lastChild.dateObj.getTime() >= timestamp)) {\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n }\n };\n 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(), false);\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 formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : flatpickr.defaultConfig.dateFormat +\n \" H:i\" +\n (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : flatpickr.defaultConfig.altFormat +\n (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\")\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\")\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i\");\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 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 - 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(\"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 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 };\n function set(option, value) {\n if (option !== null && typeof option === \"object\")\n Object.assign(self.config, option);\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 = self.selectedDates[0];\n self.redraw();\n jumpToDate();\n setHoursFromDate();\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.input.className + \" \" + 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 self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) +\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.selectedDates.length === 0)\n return self.clear(triggerChange);\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 e.preventDefault();\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 // 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 = defaults;\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\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n }\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","(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.index = {}));\n}(this, function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Arabic = {\n weekdays: {\n shorthand: [\"أحد\", \"اثنين\", \"ثلاثاء\", \"أربعاء\", \"خميس\", \"جمعة\", \"سبت\"],\n longhand: [\n \"الأحد\",\n \"الاثنين\",\n \"الثلاثاء\",\n \"الأربعاء\",\n \"الخميس\",\n \"الجمعة\",\n \"السبت\",\n ]\n },\n months: {\n shorthand: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"],\n longhand: [\n \"يناير\",\n \"فبراير\",\n \"مارس\",\n \"أبريل\",\n \"مايو\",\n \"يونيو\",\n \"يوليو\",\n \"أغسطس\",\n \"سبتمبر\",\n \"أكتوبر\",\n \"نوفمبر\",\n \"ديسمبر\",\n ]\n }\n };\n fp.l10ns.ar = Arabic;\n fp.l10ns;\n\n var fp$1 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Austria = {\n weekdays: {\n shorthand: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n longhand: [\n \"Sonntag\",\n \"Montag\",\n \"Dienstag\",\n \"Mittwoch\",\n \"Donnerstag\",\n \"Freitag\",\n \"Samstag\",\n ]\n },\n months: {\n shorthand: [\n \"Jän\",\n \"Feb\",\n \"Mär\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Jänner\",\n \"Februar\",\n \"März\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Dezember\",\n ]\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"KW\",\n rangeSeparator: \" bis \",\n scrollTitle: \"Zum Ändern scrollen\",\n toggleTitle: \"Zum Umschalten klicken\"\n };\n fp$1.l10ns.at = Austria;\n fp$1.l10ns;\n\n var fp$2 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Azerbaijan = {\n weekdays: {\n shorthand: [\"Baz\", \"BzE\", \"ÇAx\", \"Çər\", \"CAx\", \"Cüm\", \"Şən\"],\n longhand: [\n \"Bazar\",\n \"Bazar ertəsi\",\n \"Çərşənbə axşamı\",\n \"Çərşənbə\",\n \"Cümə axşamı\",\n \"Cümə\",\n \"Şənbə\",\n ]\n },\n months: {\n shorthand: [\n \"Yan\",\n \"Fev\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"İyn\",\n \"İyl\",\n \"Avq\",\n \"Sen\",\n \"Okt\",\n \"Noy\",\n \"Dek\",\n ],\n longhand: [\n \"Yanvar\",\n \"Fevral\",\n \"Mart\",\n \"Aprel\",\n \"May\",\n \"İyun\",\n \"İyul\",\n \"Avqust\",\n \"Sentyabr\",\n \"Oktyabr\",\n \"Noyabr\",\n \"Dekabr\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n rangeSeparator: \" - \",\n weekAbbreviation: \"Hf\",\n scrollTitle: \"Artırmaq üçün sürüşdürün\",\n toggleTitle: \"Aç / Bağla\",\n amPM: [\"GƏ\", \"GS\"]\n };\n fp$2.l10ns.az = Azerbaijan;\n fp$2.l10ns;\n\n var fp$3 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Belarusian = {\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 };\n fp$3.l10ns.be = Belarusian;\n fp$3.l10ns;\n\n var fp$4 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Bulgarian = {\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 };\n fp$4.l10ns.bg = Bulgarian;\n fp$4.l10ns;\n\n var fp$5 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Bangla = {\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 };\n fp$5.l10ns.bn = Bangla;\n fp$5.l10ns;\n\n var fp$6 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Catalan = {\n weekdays: {\n shorthand: [\"Dg\", \"Dl\", \"Dt\", \"Dc\", \"Dj\", \"Dv\", \"Ds\"],\n longhand: [\n \"Diumenge\",\n \"Dilluns\",\n \"Dimarts\",\n \"Dimecres\",\n \"Dijous\",\n \"Divendres\",\n \"Dissabte\",\n ]\n },\n months: {\n shorthand: [\n \"Gen\",\n \"Febr\",\n \"Març\",\n \"Abr\",\n \"Maig\",\n \"Juny\",\n \"Jul\",\n \"Ag\",\n \"Set\",\n \"Oct\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Gener\",\n \"Febrer\",\n \"Març\",\n \"Abril\",\n \"Maig\",\n \"Juny\",\n \"Juliol\",\n \"Agost\",\n \"Setembre\",\n \"Octubre\",\n \"Novembre\",\n \"Desembre\",\n ]\n },\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"è\";\n switch (s % 10) {\n case 1:\n return \"r\";\n case 2:\n return \"n\";\n case 3:\n return \"r\";\n case 4:\n return \"t\";\n default:\n return \"è\";\n }\n },\n firstDayOfWeek: 1\n };\n fp$6.l10ns.cat = Catalan;\n fp$6.l10ns;\n\n var fp$7 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Czech = {\n weekdays: {\n shorthand: [\"Ne\", \"Po\", \"Út\", \"St\", \"Čt\", \"Pá\", \"So\"],\n longhand: [\n \"Neděle\",\n \"Pondělí\",\n \"Úterý\",\n \"Středa\",\n \"Čtvrtek\",\n \"Pátek\",\n \"Sobota\",\n ]\n },\n months: {\n shorthand: [\n \"Led\",\n \"Ún\",\n \"Bře\",\n \"Dub\",\n \"Kvě\",\n \"Čer\",\n \"Čvc\",\n \"Srp\",\n \"Zář\",\n \"Říj\",\n \"Lis\",\n \"Pro\",\n ],\n longhand: [\n \"Leden\",\n \"Únor\",\n \"Březen\",\n \"Duben\",\n \"Květen\",\n \"Červen\",\n \"Červenec\",\n \"Srpen\",\n \"Září\",\n \"Říjen\",\n \"Listopad\",\n \"Prosinec\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n rangeSeparator: \" do \",\n weekAbbreviation: \"Týd.\",\n scrollTitle: \"Rolujte pro změnu\",\n toggleTitle: \"Přepnout dopoledne/odpoledne\",\n amPM: [\"dop.\", \"odp.\"],\n yearAriaLabel: \"Rok\"\n };\n fp$7.l10ns.cs = Czech;\n fp$7.l10ns;\n\n var fp$8 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Welsh = {\n weekdays: {\n shorthand: [\"Sul\", \"Llun\", \"Maw\", \"Mer\", \"Iau\", \"Gwe\", \"Sad\"],\n longhand: [\n \"Dydd Sul\",\n \"Dydd Llun\",\n \"Dydd Mawrth\",\n \"Dydd Mercher\",\n \"Dydd Iau\",\n \"Dydd Gwener\",\n \"Dydd Sadwrn\",\n ]\n },\n months: {\n shorthand: [\n \"Ion\",\n \"Chwef\",\n \"Maw\",\n \"Ebr\",\n \"Mai\",\n \"Meh\",\n \"Gorff\",\n \"Awst\",\n \"Medi\",\n \"Hyd\",\n \"Tach\",\n \"Rhag\",\n ],\n longhand: [\n \"Ionawr\",\n \"Chwefror\",\n \"Mawrth\",\n \"Ebrill\",\n \"Mai\",\n \"Mehefin\",\n \"Gorffennaf\",\n \"Awst\",\n \"Medi\",\n \"Hydref\",\n \"Tachwedd\",\n \"Rhagfyr\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function (nth) {\n if (nth === 1)\n return \"af\";\n if (nth === 2)\n return \"ail\";\n if (nth === 3 || nth === 4)\n return \"ydd\";\n if (nth === 5 || nth === 6)\n return \"ed\";\n if ((nth >= 7 && nth <= 10) ||\n nth == 12 ||\n nth == 15 ||\n nth == 18 ||\n nth == 20)\n return \"fed\";\n if (nth == 11 ||\n nth == 13 ||\n nth == 14 ||\n nth == 16 ||\n nth == 17 ||\n nth == 19)\n return \"eg\";\n if (nth >= 21 && nth <= 39)\n return \"ain\";\n // Inconclusive.\n return \"\";\n }\n };\n fp$8.l10ns.cy = Welsh;\n fp$8.l10ns;\n\n var fp$9 = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Danish = {\n weekdays: {\n shorthand: [\"søn\", \"man\", \"tir\", \"ons\", \"tors\", \"fre\", \"lør\"],\n longhand: [\n \"søndag\",\n \"mandag\",\n \"tirsdag\",\n \"onsdag\",\n \"torsdag\",\n \"fredag\",\n \"lørdag\",\n ]\n },\n months: {\n shorthand: [\n \"jan\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"maj\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sep\",\n \"okt\",\n \"nov\",\n \"dec\",\n ],\n longhand: [\n \"januar\",\n \"februar\",\n \"marts\",\n \"april\",\n \"maj\",\n \"juni\",\n \"juli\",\n \"august\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ]\n },\n ordinal: function () {\n return \".\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"uge\"\n };\n fp$9.l10ns.da = Danish;\n fp$9.l10ns;\n\n var fp$a = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var German = {\n weekdays: {\n shorthand: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n longhand: [\n \"Sonntag\",\n \"Montag\",\n \"Dienstag\",\n \"Mittwoch\",\n \"Donnerstag\",\n \"Freitag\",\n \"Samstag\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mär\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"März\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Dezember\",\n ]\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"KW\",\n rangeSeparator: \" bis \",\n scrollTitle: \"Zum Ändern scrollen\",\n toggleTitle: \"Zum Umschalten klicken\"\n };\n fp$a.l10ns.de = German;\n fp$a.l10ns;\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 };\n\n var fp$b = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Esperanto = {\n firstDayOfWeek: 1,\n rangeSeparator: \" ĝis \",\n weekAbbreviation: \"Sem\",\n scrollTitle: \"Rulumu por pligrandigi la valoron\",\n toggleTitle: \"Klaku por ŝalti\",\n weekdays: {\n shorthand: [\"Dim\", \"Lun\", \"Mar\", \"Mer\", \"Ĵaŭ\", \"Ven\", \"Sab\"],\n longhand: [\n \"dimanĉo\",\n \"lundo\",\n \"mardo\",\n \"merkredo\",\n \"ĵaŭdo\",\n \"vendredo\",\n \"sabato\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Aŭg\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"januaro\",\n \"februaro\",\n \"marto\",\n \"aprilo\",\n \"majo\",\n \"junio\",\n \"julio\",\n \"aŭgusto\",\n \"septembro\",\n \"oktobro\",\n \"novembro\",\n \"decembro\",\n ]\n },\n ordinal: function () {\n return \"-a\";\n }\n };\n fp$b.l10ns.eo = Esperanto;\n fp$b.l10ns;\n\n var fp$c = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Spanish = {\n weekdays: {\n shorthand: [\"Dom\", \"Lun\", \"Mar\", \"Mié\", \"Jue\", \"Vie\", \"Sáb\"],\n longhand: [\n \"Domingo\",\n \"Lunes\",\n \"Martes\",\n \"Miércoles\",\n \"Jueves\",\n \"Viernes\",\n \"Sábado\",\n ]\n },\n months: {\n shorthand: [\n \"Ene\",\n \"Feb\",\n \"Mar\",\n \"Abr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Ago\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dic\",\n ],\n longhand: [\n \"Enero\",\n \"Febrero\",\n \"Marzo\",\n \"Abril\",\n \"Mayo\",\n \"Junio\",\n \"Julio\",\n \"Agosto\",\n \"Septiembre\",\n \"Octubre\",\n \"Noviembre\",\n \"Diciembre\",\n ]\n },\n ordinal: function () {\n return \"º\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" a \"\n };\n fp$c.l10ns.es = Spanish;\n fp$c.l10ns;\n\n var fp$d = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Estonian = {\n weekdays: {\n shorthand: [\"P\", \"E\", \"T\", \"K\", \"N\", \"R\", \"L\"],\n longhand: [\n \"Pühapäev\",\n \"Esmaspäev\",\n \"Teisipäev\",\n \"Kolmapäev\",\n \"Neljapäev\",\n \"Reede\",\n \"Laupäev\",\n ]\n },\n months: {\n shorthand: [\n \"Jaan\",\n \"Veebr\",\n \"Märts\",\n \"Apr\",\n \"Mai\",\n \"Juuni\",\n \"Juuli\",\n \"Aug\",\n \"Sept\",\n \"Okt\",\n \"Nov\",\n \"Dets\",\n ],\n longhand: [\n \"Jaanuar\",\n \"Veebruar\",\n \"Märts\",\n \"Aprill\",\n \"Mai\",\n \"Juuni\",\n \"Juuli\",\n \"August\",\n \"September\",\n \"Oktoober\",\n \"November\",\n \"Detsember\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n weekAbbreviation: \"Näd\",\n rangeSeparator: \" kuni \",\n scrollTitle: \"Keri, et suurendada\",\n toggleTitle: \"Klõpsa, et vahetada\"\n };\n fp$d.l10ns.et = Estonian;\n fp$d.l10ns;\n\n var fp$e = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Persian = {\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: 6,\n ordinal: function () {\n return \"\";\n }\n };\n fp$e.l10ns.fa = Persian;\n fp$e.l10ns;\n\n var fp$f = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Finnish = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Su\", \"Ma\", \"Ti\", \"Ke\", \"To\", \"Pe\", \"La\"],\n longhand: [\n \"Sunnuntai\",\n \"Maanantai\",\n \"Tiistai\",\n \"Keskiviikko\",\n \"Torstai\",\n \"Perjantai\",\n \"Lauantai\",\n ]\n },\n months: {\n shorthand: [\n \"Tammi\",\n \"Helmi\",\n \"Maalis\",\n \"Huhti\",\n \"Touko\",\n \"Kesä\",\n \"Heinä\",\n \"Elo\",\n \"Syys\",\n \"Loka\",\n \"Marras\",\n \"Joulu\",\n ],\n longhand: [\n \"Tammikuu\",\n \"Helmikuu\",\n \"Maaliskuu\",\n \"Huhtikuu\",\n \"Toukokuu\",\n \"Kesäkuu\",\n \"Heinäkuu\",\n \"Elokuu\",\n \"Syyskuu\",\n \"Lokakuu\",\n \"Marraskuu\",\n \"Joulukuu\",\n ]\n },\n ordinal: function () {\n return \".\";\n }\n };\n fp$f.l10ns.fi = Finnish;\n fp$f.l10ns;\n\n var fp$g = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Faroese = {\n weekdays: {\n shorthand: [\"Sun\", \"Mán\", \"Týs\", \"Mik\", \"Hós\", \"Frí\", \"Ley\"],\n longhand: [\n \"Sunnudagur\",\n \"Mánadagur\",\n \"Týsdagur\",\n \"Mikudagur\",\n \"Hósdagur\",\n \"Fríggjadagur\",\n \"Leygardagur\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mars\",\n \"Apríl\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"Septembur\",\n \"Oktobur\",\n \"Novembur\",\n \"Desembur\",\n ]\n },\n ordinal: function () {\n return \".\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"vika\",\n scrollTitle: \"Rulla fyri at broyta\",\n toggleTitle: \"Trýst fyri at skifta\",\n yearAriaLabel: \"Ár\"\n };\n fp$g.l10ns.fo = Faroese;\n fp$g.l10ns;\n\n var fp$h = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var French = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"dim\", \"lun\", \"mar\", \"mer\", \"jeu\", \"ven\", \"sam\"],\n longhand: [\n \"dimanche\",\n \"lundi\",\n \"mardi\",\n \"mercredi\",\n \"jeudi\",\n \"vendredi\",\n \"samedi\",\n ]\n },\n months: {\n shorthand: [\n \"janv\",\n \"févr\",\n \"mars\",\n \"avr\",\n \"mai\",\n \"juin\",\n \"juil\",\n \"août\",\n \"sept\",\n \"oct\",\n \"nov\",\n \"déc\",\n ],\n longhand: [\n \"janvier\",\n \"février\",\n \"mars\",\n \"avril\",\n \"mai\",\n \"juin\",\n \"juillet\",\n \"août\",\n \"septembre\",\n \"octobre\",\n \"novembre\",\n \"décembre\",\n ]\n },\n ordinal: function (nth) {\n if (nth > 1)\n return \"\";\n return \"er\";\n },\n rangeSeparator: \" au \",\n weekAbbreviation: \"Sem\",\n scrollTitle: \"Défiler pour augmenter la valeur\",\n toggleTitle: \"Cliquer pour basculer\"\n };\n fp$h.l10ns.fr = French;\n fp$h.l10ns;\n\n var fp$i = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Greek = {\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 weekAbbreviation: \"Εβδ\",\n rangeSeparator: \" έως \",\n scrollTitle: \"Μετακυλήστε για προσαύξηση\",\n toggleTitle: \"Κάντε κλικ για αλλαγή\",\n amPM: [\"ΠΜ\", \"ΜΜ\"]\n };\n fp$i.l10ns.gr = Greek;\n fp$i.l10ns;\n\n var fp$j = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Hebrew = {\n weekdays: {\n shorthand: [\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\"],\n longhand: [\"ראשון\", \"שני\", \"שלישי\", \"רביעי\", \"חמישי\", \"שישי\", \"שבת\"]\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 rangeSeparator: \" אל \"\n };\n fp$j.l10ns.he = Hebrew;\n fp$j.l10ns;\n\n var fp$k = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Hindi = {\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 };\n fp$k.l10ns.hi = Hindi;\n fp$k.l10ns;\n\n var fp$l = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Croatian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Uto\", \"Sri\", \"Čet\", \"Pet\", \"Sub\"],\n longhand: [\n \"Nedjelja\",\n \"Ponedjeljak\",\n \"Utorak\",\n \"Srijeda\",\n \"Četvrtak\",\n \"Petak\",\n \"Subota\",\n ]\n },\n months: {\n shorthand: [\n \"Sij\",\n \"Velj\",\n \"Ožu\",\n \"Tra\",\n \"Svi\",\n \"Lip\",\n \"Srp\",\n \"Kol\",\n \"Ruj\",\n \"Lis\",\n \"Stu\",\n \"Pro\",\n ],\n longhand: [\n \"Siječanj\",\n \"Veljača\",\n \"Ožujak\",\n \"Travanj\",\n \"Svibanj\",\n \"Lipanj\",\n \"Srpanj\",\n \"Kolovoz\",\n \"Rujan\",\n \"Listopad\",\n \"Studeni\",\n \"Prosinac\",\n ]\n }\n };\n fp$l.l10ns.hr = Croatian;\n fp$l.l10ns;\n\n var fp$m = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Hungarian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"V\", \"H\", \"K\", \"Sz\", \"Cs\", \"P\", \"Szo\"],\n longhand: [\n \"Vasárnap\",\n \"Hétfő\",\n \"Kedd\",\n \"Szerda\",\n \"Csütörtök\",\n \"Péntek\",\n \"Szombat\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Már\",\n \"Ápr\",\n \"Máj\",\n \"Jún\",\n \"Júl\",\n \"Aug\",\n \"Szep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Január\",\n \"Február\",\n \"Március\",\n \"Április\",\n \"Május\",\n \"Június\",\n \"Július\",\n \"Augusztus\",\n \"Szeptember\",\n \"Október\",\n \"November\",\n \"December\",\n ]\n },\n ordinal: function () {\n return \".\";\n },\n weekAbbreviation: \"Hét\",\n scrollTitle: \"Görgessen\",\n toggleTitle: \"Kattintson a váltáshoz\",\n rangeSeparator: \" - \"\n };\n fp$m.l10ns.hu = Hungarian;\n fp$m.l10ns;\n\n var fp$n = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Indonesian = {\n weekdays: {\n shorthand: [\"Min\", \"Sen\", \"Sel\", \"Rab\", \"Kam\", \"Jum\", \"Sab\"],\n longhand: [\"Minggu\", \"Senin\", \"Selasa\", \"Rabu\", \"Kamis\", \"Jumat\", \"Sabtu\"]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mei\",\n \"Jun\",\n \"Jul\",\n \"Agu\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Januari\",\n \"Februari\",\n \"Maret\",\n \"April\",\n \"Mei\",\n \"Juni\",\n \"Juli\",\n \"Agustus\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Desember\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n }\n };\n fp$n.l10ns.id = Indonesian;\n fp$n.l10ns;\n\n var fp$o = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Icelandic = {\n weekdays: {\n shorthand: [\"Sun\", \"Mán\", \"Þri\", \"Mið\", \"Fim\", \"Fös\", \"Lau\"],\n longhand: [\n \"Sunnudagur\",\n \"Mánudagur\",\n \"Þriðjudagur\",\n \"Miðvikudagur\",\n \"Fimmtudagur\",\n \"Föstudagur\",\n \"Laugardagur\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maí\",\n \"Jún\",\n \"Júl\",\n \"Ágú\",\n \"Sep\",\n \"Okt\",\n \"Nóv\",\n \"Des\",\n ],\n longhand: [\n \"Janúar\",\n \"Febrúar\",\n \"Mars\",\n \"Apríl\",\n \"Maí\",\n \"Júní\",\n \"Júlí\",\n \"Ágúst\",\n \"September\",\n \"Október\",\n \"Nóvember\",\n \"Desember\",\n ]\n },\n ordinal: function () {\n return \".\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"vika\",\n yearAriaLabel: \"Ár\"\n };\n fp$o.l10ns.is = Icelandic;\n fp$o.l10ns;\n\n var fp$p = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Italian = {\n weekdays: {\n shorthand: [\"Dom\", \"Lun\", \"Mar\", \"Mer\", \"Gio\", \"Ven\", \"Sab\"],\n longhand: [\n \"Domenica\",\n \"Lunedì\",\n \"Martedì\",\n \"Mercoledì\",\n \"Giovedì\",\n \"Venerdì\",\n \"Sabato\",\n ]\n },\n months: {\n shorthand: [\n \"Gen\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mag\",\n \"Giu\",\n \"Lug\",\n \"Ago\",\n \"Set\",\n \"Ott\",\n \"Nov\",\n \"Dic\",\n ],\n longhand: [\n \"Gennaio\",\n \"Febbraio\",\n \"Marzo\",\n \"Aprile\",\n \"Maggio\",\n \"Giugno\",\n \"Luglio\",\n \"Agosto\",\n \"Settembre\",\n \"Ottobre\",\n \"Novembre\",\n \"Dicembre\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () { return \"°\"; },\n rangeSeparator: \" al \",\n weekAbbreviation: \"Se\",\n scrollTitle: \"Scrolla per aumentare\",\n toggleTitle: \"Clicca per cambiare\"\n };\n fp$p.l10ns.it = Italian;\n fp$p.l10ns;\n\n var fp$q = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Japanese = {\n weekdays: {\n shorthand: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"],\n longhand: [\n \"日曜日\",\n \"月曜日\",\n \"火曜日\",\n \"水曜日\",\n \"木曜日\",\n \"金曜日\",\n \"土曜日\",\n ]\n },\n months: {\n shorthand: [\n \"1月\",\n \"2月\",\n \"3月\",\n \"4月\",\n \"5月\",\n \"6月\",\n \"7月\",\n \"8月\",\n \"9月\",\n \"10月\",\n \"11月\",\n \"12月\",\n ],\n longhand: [\n \"1月\",\n \"2月\",\n \"3月\",\n \"4月\",\n \"5月\",\n \"6月\",\n \"7月\",\n \"8月\",\n \"9月\",\n \"10月\",\n \"11月\",\n \"12月\",\n ]\n }\n };\n fp$q.l10ns.ja = Japanese;\n fp$q.l10ns;\n\n var fp$r = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Korean = {\n weekdays: {\n shorthand: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"],\n longhand: [\n \"일요일\",\n \"월요일\",\n \"화요일\",\n \"수요일\",\n \"목요일\",\n \"금요일\",\n \"토요일\",\n ]\n },\n months: {\n shorthand: [\n \"1월\",\n \"2월\",\n \"3월\",\n \"4월\",\n \"5월\",\n \"6월\",\n \"7월\",\n \"8월\",\n \"9월\",\n \"10월\",\n \"11월\",\n \"12월\",\n ],\n longhand: [\n \"1월\",\n \"2월\",\n \"3월\",\n \"4월\",\n \"5월\",\n \"6월\",\n \"7월\",\n \"8월\",\n \"9월\",\n \"10월\",\n \"11월\",\n \"12월\",\n ]\n },\n ordinal: function () {\n return \"일\";\n }\n };\n fp$r.l10ns.ko = Korean;\n fp$r.l10ns;\n\n var fp$s = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Khmer = {\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 ordinal: function () {\n return \"\";\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" ដល់ \",\n weekAbbreviation: \"សប្តាហ៍\",\n scrollTitle: \"រំកិលដើម្បីបង្កើន\",\n toggleTitle: \"ចុចដើម្បីផ្លាស់ប្ដូរ\",\n yearAriaLabel: \"ឆ្នាំ\"\n };\n fp$s.l10ns.km = Khmer;\n fp$s.l10ns;\n\n var fp$t = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Kazakh = {\n weekdays: {\n shorthand: [\"Жс\", \"Дс\", \"Сc\", \"Ср\", \"Бс\", \"Жм\", \"Сб\"],\n longhand: [\n \"Жексенбi\",\n \"Дүйсенбi\",\n \"Сейсенбi\",\n \"Сәрсенбi\",\n \"Бейсенбi\",\n \"Жұма\",\n \"Сенбi\",\n ]\n },\n months: {\n shorthand: [\n \"Қаң\",\n \"Ақп\",\n \"Нау\",\n \"Сәу\",\n \"Мам\",\n \"Мау\",\n \"Шiл\",\n \"Там\",\n \"Қыр\",\n \"Қаз\",\n \"Қар\",\n \"Жел\",\n ],\n longhand: [\n \"Қаңтар\",\n \"Ақпан\",\n \"Наурыз\",\n \"Сәуiр\",\n \"Мамыр\",\n \"Маусым\",\n \"Шiлде\",\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 };\n fp$t.l10ns.kz = Kazakh;\n fp$t.l10ns;\n\n var fp$u = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Lithuanian = {\n weekdays: {\n shorthand: [\"S\", \"Pr\", \"A\", \"T\", \"K\", \"Pn\", \"Š\"],\n longhand: [\n \"Sekmadienis\",\n \"Pirmadienis\",\n \"Antradienis\",\n \"Trečiadienis\",\n \"Ketvirtadienis\",\n \"Penktadienis\",\n \"Šeštadienis\",\n ]\n },\n months: {\n shorthand: [\n \"Sau\",\n \"Vas\",\n \"Kov\",\n \"Bal\",\n \"Geg\",\n \"Bir\",\n \"Lie\",\n \"Rgp\",\n \"Rgs\",\n \"Spl\",\n \"Lap\",\n \"Grd\",\n ],\n longhand: [\n \"Sausis\",\n \"Vasaris\",\n \"Kovas\",\n \"Balandis\",\n \"Gegužė\",\n \"Birželis\",\n \"Liepa\",\n \"Rugpjūtis\",\n \"Rugsėjis\",\n \"Spalis\",\n \"Lapkritis\",\n \"Gruodis\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"-a\";\n },\n weekAbbreviation: \"Sav\",\n scrollTitle: \"Keisti laiką pelės rateliu\",\n toggleTitle: \"Perjungti laiko formatą\"\n };\n fp$u.l10ns.lt = Lithuanian;\n fp$u.l10ns;\n\n var fp$v = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Latvian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Sv\", \"Pr\", \"Ot\", \"Tr\", \"Ce\", \"Pk\", \"Se\"],\n longhand: [\n \"Svētdiena\",\n \"Pirmdiena\",\n \"Otrdiena\",\n \"Trešdiena\",\n \"Ceturtdiena\",\n \"Piektdiena\",\n \"Sestdiena\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Jūn\",\n \"Jūl\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Janvāris\",\n \"Februāris\",\n \"Marts\",\n \"Aprīlis\",\n \"Maijs\",\n \"Jūnijs\",\n \"Jūlijs\",\n \"Augusts\",\n \"Septembris\",\n \"Oktobris\",\n \"Novembris\",\n \"Decembris\",\n ]\n },\n rangeSeparator: \" līdz \"\n };\n fp$v.l10ns.lv = Latvian;\n fp$v.l10ns;\n\n var fp$w = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Macedonian = {\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 weekAbbreviation: \"Нед.\",\n rangeSeparator: \" до \"\n };\n fp$w.l10ns.mk = Macedonian;\n fp$w.l10ns;\n\n var fp$x = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Mongolian = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"Да\", \"Мя\", \"Лх\", \"Пү\", \"Ба\", \"Бя\", \"Ня\"],\n longhand: [\"Даваа\", \"Мягмар\", \"Лхагва\", \"Пүрэв\", \"Баасан\", \"Бямба\", \"Ням\"]\n },\n months: {\n shorthand: [\n \"1-р сар\",\n \"2-р сар\",\n \"3-р сар\",\n \"4-р сар\",\n \"5-р сар\",\n \"6-р сар\",\n \"7-р сар\",\n \"8-р сар\",\n \"9-р сар\",\n \"10-р сар\",\n \"11-р сар\",\n \"12-р сар\",\n ],\n longhand: [\n \"Нэгдүгээр сар\",\n \"Хоёрдугаар сар\",\n \"Гуравдугаар сар\",\n \"Дөрөвдүгээр сар\",\n \"Тавдугаар сар\",\n \"Зургаадугаар сар\",\n \"Долдугаар сар\",\n \"Наймдугаар сар\",\n \"Есдүгээр сар\",\n \"Аравдугаар сар\",\n \"Арваннэгдүгээр сар\",\n \"Арванхоёрдугаар сар\",\n ]\n },\n rangeSeparator: \"-с \"\n };\n fp$x.l10ns.mn = Mongolian;\n fp$x.l10ns;\n\n var fp$y = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Malaysian = {\n weekdays: {\n shorthand: [\"Min\", \"Isn\", \"Sel\", \"Rab\", \"Kha\", \"Jum\", \"Sab\"],\n longhand: [\n \"Minggu\",\n \"Isnin\",\n \"Selasa\",\n \"Rabu\",\n \"Khamis\",\n \"Jumaat\",\n \"Sabtu\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mac\",\n \"Apr\",\n \"Mei\",\n \"Jun\",\n \"Jul\",\n \"Ogo\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dis\",\n ],\n longhand: [\n \"Januari\",\n \"Februari\",\n \"Mac\",\n \"April\",\n \"Mei\",\n \"Jun\",\n \"Julai\",\n \"Ogos\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Disember\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n }\n };\n fp$y.l10ns;\n\n var fp$z = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Burmese = {\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 };\n fp$z.l10ns.my = Burmese;\n fp$z.l10ns;\n\n var fp$A = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Dutch = {\n weekdays: {\n shorthand: [\"zo\", \"ma\", \"di\", \"wo\", \"do\", \"vr\", \"za\"],\n longhand: [\n \"zondag\",\n \"maandag\",\n \"dinsdag\",\n \"woensdag\",\n \"donderdag\",\n \"vrijdag\",\n \"zaterdag\",\n ]\n },\n months: {\n shorthand: [\n \"jan\",\n \"feb\",\n \"mrt\",\n \"apr\",\n \"mei\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sept\",\n \"okt\",\n \"nov\",\n \"dec\",\n ],\n longhand: [\n \"januari\",\n \"februari\",\n \"maart\",\n \"april\",\n \"mei\",\n \"juni\",\n \"juli\",\n \"augustus\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ]\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"wk\",\n rangeSeparator: \" tot \",\n scrollTitle: \"Scroll voor volgende / vorige\",\n toggleTitle: \"Klik om te wisselen\",\n ordinal: function (nth) {\n if (nth === 1 || nth === 8 || nth >= 20)\n return \"ste\";\n return \"de\";\n }\n };\n fp$A.l10ns.nl = Dutch;\n fp$A.l10ns;\n\n var fp$B = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Norwegian = {\n weekdays: {\n shorthand: [\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\"],\n longhand: [\n \"Søndag\",\n \"Mandag\",\n \"Tirsdag\",\n \"Onsdag\",\n \"Torsdag\",\n \"Fredag\",\n \"Lørdag\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Des\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mars\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Desember\",\n ]\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" til \",\n weekAbbreviation: \"Uke\",\n scrollTitle: \"Scroll for å endre\",\n toggleTitle: \"Klikk for å veksle\",\n ordinal: function () {\n return \".\";\n }\n };\n fp$B.l10ns.no = Norwegian;\n fp$B.l10ns;\n\n var fp$C = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Punjabi = {\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 };\n fp$C.l10ns.pa = Punjabi;\n fp$C.l10ns;\n\n var fp$D = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Polish = {\n weekdays: {\n shorthand: [\"Nd\", \"Pn\", \"Wt\", \"Śr\", \"Cz\", \"Pt\", \"So\"],\n longhand: [\n \"Niedziela\",\n \"Poniedziałek\",\n \"Wtorek\",\n \"Środa\",\n \"Czwartek\",\n \"Piątek\",\n \"Sobota\",\n ]\n },\n months: {\n shorthand: [\n \"Sty\",\n \"Lut\",\n \"Mar\",\n \"Kwi\",\n \"Maj\",\n \"Cze\",\n \"Lip\",\n \"Sie\",\n \"Wrz\",\n \"Paź\",\n \"Lis\",\n \"Gru\",\n ],\n longhand: [\n \"Styczeń\",\n \"Luty\",\n \"Marzec\",\n \"Kwiecień\",\n \"Maj\",\n \"Czerwiec\",\n \"Lipiec\",\n \"Sierpień\",\n \"Wrzesień\",\n \"Październik\",\n \"Listopad\",\n \"Grudzień\",\n ]\n },\n rangeSeparator: \" do \",\n weekAbbreviation: \"tydz.\",\n scrollTitle: \"Przwiń aby zwiększyć\",\n toggleTitle: \"Kliknij aby przełączyć\",\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n }\n };\n fp$D.l10ns.pl = Polish;\n fp$D.l10ns;\n\n var fp$E = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Portuguese = {\n weekdays: {\n shorthand: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"],\n longhand: [\n \"Domingo\",\n \"Segunda-feira\",\n \"Terça-feira\",\n \"Quarta-feira\",\n \"Quinta-feira\",\n \"Sexta-feira\",\n \"Sábado\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Fev\",\n \"Mar\",\n \"Abr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Ago\",\n \"Set\",\n \"Out\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ]\n },\n rangeSeparator: \" até \"\n };\n fp$E.l10ns.pt = Portuguese;\n fp$E.l10ns;\n\n var fp$F = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Romanian = {\n weekdays: {\n shorthand: [\"Dum\", \"Lun\", \"Mar\", \"Mie\", \"Joi\", \"Vin\", \"Sam\"],\n longhand: [\n \"Duminică\",\n \"Luni\",\n \"Marți\",\n \"Miercuri\",\n \"Joi\",\n \"Vineri\",\n \"Sâmbătă\",\n ]\n },\n months: {\n shorthand: [\n \"Ian\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Mai\",\n \"Iun\",\n \"Iul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Noi\",\n \"Dec\",\n ],\n longhand: [\n \"Ianuarie\",\n \"Februarie\",\n \"Martie\",\n \"Aprilie\",\n \"Mai\",\n \"Iunie\",\n \"Iulie\",\n \"August\",\n \"Septembrie\",\n \"Octombrie\",\n \"Noiembrie\",\n \"Decembrie\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \"\";\n }\n };\n fp$F.l10ns.ro = Romanian;\n fp$F.l10ns;\n\n var fp$G = 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 };\n fp$G.l10ns.ru = Russian;\n fp$G.l10ns;\n\n var fp$H = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Sinhala = {\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 };\n fp$H.l10ns.si = Sinhala;\n fp$H.l10ns;\n\n var fp$I = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Slovak = {\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Ut\", \"Str\", \"Štv\", \"Pia\", \"Sob\"],\n longhand: [\n \"Nedeľa\",\n \"Pondelok\",\n \"Utorok\",\n \"Streda\",\n \"Štvrtok\",\n \"Piatok\",\n \"Sobota\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Máj\",\n \"Jún\",\n \"Júl\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Január\",\n \"Február\",\n \"Marec\",\n \"Apríl\",\n \"Máj\",\n \"Jún\",\n \"Júl\",\n \"August\",\n \"September\",\n \"Október\",\n \"November\",\n \"December\",\n ]\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" do \",\n ordinal: function () {\n return \".\";\n }\n };\n fp$I.l10ns.sk = Slovak;\n fp$I.l10ns;\n\n var fp$J = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Slovenian = {\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Tor\", \"Sre\", \"Čet\", \"Pet\", \"Sob\"],\n longhand: [\n \"Nedelja\",\n \"Ponedeljek\",\n \"Torek\",\n \"Sreda\",\n \"Četrtek\",\n \"Petek\",\n \"Sobota\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Avg\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Marec\",\n \"April\",\n \"Maj\",\n \"Junij\",\n \"Julij\",\n \"Avgust\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"December\",\n ]\n },\n firstDayOfWeek: 1,\n rangeSeparator: \" do \",\n ordinal: function () {\n return \".\";\n }\n };\n fp$J.l10ns.sl = Slovenian;\n fp$J.l10ns;\n\n var fp$K = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Albanian = {\n weekdays: {\n shorthand: [\"Di\", \"Hë\", \"Ma\", \"Më\", \"En\", \"Pr\", \"Sh\"],\n longhand: [\n \"E Diel\",\n \"E Hënë\",\n \"E Martë\",\n \"E Mërkurë\",\n \"E Enjte\",\n \"E Premte\",\n \"E Shtunë\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Shk\",\n \"Mar\",\n \"Pri\",\n \"Maj\",\n \"Qer\",\n \"Kor\",\n \"Gus\",\n \"Sht\",\n \"Tet\",\n \"Nën\",\n \"Dhj\",\n ],\n longhand: [\n \"Janar\",\n \"Shkurt\",\n \"Mars\",\n \"Prill\",\n \"Maj\",\n \"Qershor\",\n \"Korrik\",\n \"Gusht\",\n \"Shtator\",\n \"Tetor\",\n \"Nëntor\",\n \"Dhjetor\",\n ]\n }\n };\n fp$K.l10ns.sq = Albanian;\n fp$K.l10ns;\n\n var fp$L = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Serbian = {\n weekdays: {\n shorthand: [\"Ned\", \"Pon\", \"Uto\", \"Sre\", \"Čet\", \"Pet\", \"Sub\"],\n longhand: [\n \"Nedelja\",\n \"Ponedeljak\",\n \"Utorak\",\n \"Sreda\",\n \"Četvrtak\",\n \"Petak\",\n \"Subota\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Avg\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Januar\",\n \"Februar\",\n \"Mart\",\n \"April\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Avgust\",\n \"Septembar\",\n \"Oktobar\",\n \"Novembar\",\n \"Decembar\",\n ]\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"Ned.\",\n rangeSeparator: \" do \"\n };\n fp$L.l10ns.sr = Serbian;\n fp$L.l10ns;\n\n var fp$M = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Swedish = {\n firstDayOfWeek: 1,\n weekAbbreviation: \"v\",\n weekdays: {\n shorthand: [\"Sön\", \"Mån\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\"],\n longhand: [\n \"Söndag\",\n \"Måndag\",\n \"Tisdag\",\n \"Onsdag\",\n \"Torsdag\",\n \"Fredag\",\n \"Lördag\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"Maj\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"Januari\",\n \"Februari\",\n \"Mars\",\n \"April\",\n \"Maj\",\n \"Juni\",\n \"Juli\",\n \"Augusti\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"December\",\n ]\n },\n ordinal: function () {\n return \".\";\n }\n };\n fp$M.l10ns.sv = Swedish;\n fp$M.l10ns;\n\n var fp$N = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Thai = {\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 rangeSeparator: \" ถึง \",\n scrollTitle: \"เลื่อนเพื่อเพิ่มหรือลด\",\n toggleTitle: \"คลิกเพื่อเปลี่ยน\",\n ordinal: function () {\n return \"\";\n }\n };\n fp$N.l10ns.th = Thai;\n fp$N.l10ns;\n\n var fp$O = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Turkish = {\n weekdays: {\n shorthand: [\"Paz\", \"Pzt\", \"Sal\", \"Çar\", \"Per\", \"Cum\", \"Cmt\"],\n longhand: [\n \"Pazar\",\n \"Pazartesi\",\n \"Salı\",\n \"Çarşamba\",\n \"Perşembe\",\n \"Cuma\",\n \"Cumartesi\",\n ]\n },\n months: {\n shorthand: [\n \"Oca\",\n \"Şub\",\n \"Mar\",\n \"Nis\",\n \"May\",\n \"Haz\",\n \"Tem\",\n \"Ağu\",\n \"Eyl\",\n \"Eki\",\n \"Kas\",\n \"Ara\",\n ],\n longhand: [\n \"Ocak\",\n \"Şubat\",\n \"Mart\",\n \"Nisan\",\n \"Mayıs\",\n \"Haziran\",\n \"Temmuz\",\n \"Ağustos\",\n \"Eylül\",\n \"Ekim\",\n \"Kasım\",\n \"Aralık\",\n ]\n },\n firstDayOfWeek: 1,\n ordinal: function () {\n return \".\";\n },\n rangeSeparator: \" - \",\n weekAbbreviation: \"Hf\",\n scrollTitle: \"Artırmak için kaydırın\",\n toggleTitle: \"Aç/Kapa\",\n amPM: [\"ÖÖ\", \"ÖS\"]\n };\n fp$O.l10ns.tr = Turkish;\n fp$O.l10ns;\n\n var fp$P = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Ukrainian = {\n firstDayOfWeek: 1,\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 };\n fp$P.l10ns.uk = Ukrainian;\n fp$P.l10ns;\n\n var fp$Q = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Vietnamese = {\n weekdays: {\n shorthand: [\"CN\", \"T2\", \"T3\", \"T4\", \"T5\", \"T6\", \"T7\"],\n longhand: [\n \"Chủ nhật\",\n \"Thứ hai\",\n \"Thứ ba\",\n \"Thứ tư\",\n \"Thứ năm\",\n \"Thứ sáu\",\n \"Thứ bảy\",\n ]\n },\n months: {\n shorthand: [\n \"Th1\",\n \"Th2\",\n \"Th3\",\n \"Th4\",\n \"Th5\",\n \"Th6\",\n \"Th7\",\n \"Th8\",\n \"Th9\",\n \"Th10\",\n \"Th11\",\n \"Th12\",\n ],\n longhand: [\n \"Tháng một\",\n \"Tháng hai\",\n \"Tháng ba\",\n \"Tháng tư\",\n \"Tháng năm\",\n \"Tháng sáu\",\n \"Tháng bảy\",\n \"Tháng tám\",\n \"Tháng chín\",\n \"Tháng mười\",\n \"Tháng 11\",\n \"Tháng 12\",\n ]\n },\n firstDayOfWeek: 1\n };\n fp$Q.l10ns.vn = Vietnamese;\n fp$Q.l10ns;\n\n var fp$R = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var Mandarin = {\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 rangeSeparator: \" 至 \",\n weekAbbreviation: \"周\",\n scrollTitle: \"滚动切换\",\n toggleTitle: \"点击切换 12/24 小时时制\"\n };\n fp$R.l10ns.zh = Mandarin;\n fp$R.l10ns;\n\n var fp$S = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {}\n };\n var MandarinTraditional = {\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 rangeSeparator: \" 至 \",\n weekAbbreviation: \"週\",\n scrollTitle: \"滾動切換\",\n toggleTitle: \"點擊切換 12/24 小時時制\"\n };\n fp$S.l10ns.zh_tw = MandarinTraditional;\n fp$S.l10ns;\n\n var l10n = {\n ar: Arabic,\n at: Austria,\n az: Azerbaijan,\n be: Belarusian,\n bg: Bulgarian,\n bn: Bangla,\n cat: Catalan,\n cs: Czech,\n cy: Welsh,\n da: Danish,\n de: German,\n \"default\": __assign({}, english),\n en: english,\n eo: Esperanto,\n es: Spanish,\n et: Estonian,\n fa: Persian,\n fi: Finnish,\n fo: Faroese,\n fr: French,\n gr: Greek,\n he: Hebrew,\n hi: Hindi,\n hr: Croatian,\n hu: Hungarian,\n id: Indonesian,\n is: Icelandic,\n it: Italian,\n ja: Japanese,\n ko: Korean,\n km: Khmer,\n kz: Kazakh,\n lt: Lithuanian,\n lv: Latvian,\n mk: Macedonian,\n mn: Mongolian,\n ms: Malaysian,\n my: Burmese,\n nl: Dutch,\n no: Norwegian,\n pa: Punjabi,\n pl: Polish,\n pt: Portuguese,\n ro: Romanian,\n ru: Russian,\n si: Sinhala,\n sk: Slovak,\n sl: Slovenian,\n sq: Albanian,\n sr: Serbian,\n sv: Swedish,\n th: Thai,\n tr: Turkish,\n uk: Ukrainian,\n vn: Vietnamese,\n zh: Mandarin,\n zh_tw: MandarinTraditional\n };\n\n exports.default = l10n;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","/**\n * custom-select\n * A lightweight JS script for custom select creation.\n * Needs no dependencies.\n *\n * v0.0.1\n * (https://github.com/custom-select/custom-select)\n *\n * Copyright (c) 2016 Gionatan Lombardi & Marco Nucara\n * MIT License\n */\n\nimport 'custom-event-polyfill';\n\nconst defaultParams = {\n containerClass: 'custom-select-container',\n openerClass: 'custom-select-opener',\n panelClass: 'custom-select-panel',\n optionClass: 'custom-select-option',\n optgroupClass: 'custom-select-optgroup',\n isSelectedClass: 'is-selected',\n hasFocusClass: 'has-focus',\n isDisabledClass: 'is-disabled',\n isOpenClass: 'is-open',\n};\n\nfunction builder(el, builderParams) {\n const containerClass = 'customSelect';\n let isOpen = false;\n let uId = '';\n const select = el;\n let container;\n let opener;\n let focusedElement;\n let selectedElement;\n let panel;\n let currLabel;\n\n let resetSearchTimeout;\n let searchKey = '';\n\n //\n // Inner Functions\n //\n\n // Sets the focused element with the neccessary classes substitutions\n function setFocusedElement(cstOption) {\n if (focusedElement) {\n focusedElement.classList.remove(builderParams.hasFocusClass);\n }\n if (typeof cstOption !== 'undefined') {\n focusedElement = cstOption;\n focusedElement.classList.add(builderParams.hasFocusClass);\n // Offset update: checks if the focused element is in the visible part of the panelClass\n // if not dispatches a custom event\n if (isOpen) {\n if (cstOption.offsetTop < cstOption.offsetParent.scrollTop\n || cstOption.offsetTop >\n (cstOption.offsetParent.scrollTop + cstOption.offsetParent.clientHeight)\n - cstOption.clientHeight) {\n cstOption.dispatchEvent(new CustomEvent('custom-select:focus-outside-panel', { bubbles: true }));\n }\n }\n } else {\n focusedElement = undefined;\n }\n }\n\n // Reassigns the focused and selected custom option\n // Updates the opener text\n // IMPORTANT: the setSelectedElement function doesn't change the select value!\n function setSelectedElement(cstOption) {\n if (selectedElement) {\n selectedElement.classList.remove(builderParams.isSelectedClass);\n selectedElement.removeAttribute('id');\n opener.removeAttribute('aria-activedescendant');\n }\n if (typeof cstOption !== 'undefined') {\n cstOption.classList.add(builderParams.isSelectedClass);\n cstOption.setAttribute('id', `${containerClass}-${uId}-selectedOption`);\n opener.setAttribute('aria-activedescendant', `${containerClass}-${uId}-selectedOption`);\n selectedElement = cstOption;\n opener.children[0].textContent = selectedElement.customSelectOriginalOption.text;\n } else {\n selectedElement = undefined;\n opener.children[0].textContent = '';\n }\n setFocusedElement(cstOption);\n }\n\n function setValue(value) {\n // Gets the option with the provided value\n let toSelect = select.querySelector(`option[value='${value}']`);\n // If no option has the provided value get the first\n if (!toSelect) {\n [toSelect] = select.options;\n }\n // The option with the provided value becomes the selected one\n // And changes the select current value\n toSelect.selected = true;\n\n setSelectedElement(select.options[select.selectedIndex].customSelectCstOption);\n }\n\n function moveFocuesedElement(direction) {\n // Get all the .custom-select-options\n // Get the index of the current focused one\n const currentFocusedIndex =\n [].indexOf.call(select.options, focusedElement.customSelectOriginalOption);\n // If the next or prev custom option exist\n // Sets it as the new focused one\n if (select.options[currentFocusedIndex + direction]) {\n setFocusedElement(select.options[currentFocusedIndex + direction].customSelectCstOption);\n }\n }\n\n // Open/Close function (toggle)\n function open(bool) {\n // Open\n if (bool || typeof bool === 'undefined') {\n // If present closes an opened instance of the plugin\n // Only one at time can be open\n const openedCustomSelect =\n document.querySelector(`.${containerClass}.${builderParams.isOpenClass}`);\n if (openedCustomSelect) {\n openedCustomSelect.customSelect.open = false;\n }\n\n // Opens only the clicked one\n container.classList.add(builderParams.isOpenClass);\n\n // aria-expanded update\n container.classList.add(builderParams.isOpenClass);\n opener.setAttribute('aria-expanded', 'true');\n\n // Updates the scrollTop position of the panel in relation with the focused option\n if (selectedElement) {\n panel.scrollTop = selectedElement.offsetTop;\n }\n\n // Dispatches the custom event open\n container.dispatchEvent(new CustomEvent('custom-select:open'));\n\n // Sets the global state\n isOpen = true;\n\n // Close\n } else {\n // Removes the css classes\n container.classList.remove(builderParams.isOpenClass);\n\n // aria-expanded update\n opener.setAttribute('aria-expanded', 'false');\n\n // Sets the global state\n isOpen = false;\n\n // When closing the panel the focused custom option must be the selected one\n setFocusedElement(selectedElement);\n\n // Dispatches the custom event close\n container.dispatchEvent(new CustomEvent('custom-select:close'));\n }\n return isOpen;\n }\n\n function clickEvent(e) {\n // Opener click\n if (e.target === opener || opener.contains(e.target)) {\n if (isOpen) {\n open(false);\n } else {\n open();\n }\n // Custom Option click\n } else if (\n e.target.classList\n && e.target.classList.contains(builderParams.optionClass)\n && panel.contains(e.target)) {\n setSelectedElement(e.target);\n // Sets the corrisponding select's option to selected updating the select's value too\n selectedElement.customSelectOriginalOption.selected = true;\n open(false);\n // Triggers the native change event of the select\n select.dispatchEvent(new CustomEvent('change'));\n // click on label or select (click on label corrispond to select click)\n } else if (e.target === select) {\n // if the original select is focusable (for any external reason) let the focus\n // else trigger the focus on opener\n if (opener !== document.activeElement && select !== document.activeElement) {\n opener.focus();\n }\n // Click outside the container closes the panel\n } else if (isOpen && !container.contains(e.target)) {\n open(false);\n }\n }\n\n function mouseoverEvent(e) {\n // On mouse move over and options it bacames the focused one\n if (e.target.classList && e.target.classList.contains(builderParams.optionClass)) {\n setFocusedElement(e.target);\n }\n }\n\n function keydownEvent(e) {\n if (!isOpen) {\n // On \"Arrow down\", \"Arrow up\" and \"Space\" keys opens the panel\n if (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 32) {\n open();\n }\n } else {\n switch (e.keyCode) {\n case 13:\n case 32:\n // On \"Enter\" or \"Space\" selects the focused element as the selected one\n setSelectedElement(focusedElement);\n // Sets the corrisponding select's option to selected updating the select's value too\n selectedElement.customSelectOriginalOption.selected = true;\n // Triggers the native change event of the select\n select.dispatchEvent(new CustomEvent('change'));\n open(false);\n break;\n case 27:\n // On \"Escape\" closes the panel\n open(false);\n break;\n\n case 38:\n // On \"Arrow up\" set focus to the prev option if present\n moveFocuesedElement(-1);\n break;\n case 40:\n // On \"Arrow down\" set focus to the next option if present\n moveFocuesedElement(+1);\n break;\n default:\n // search in panel (autocomplete)\n if (e.keyCode >= 48 && e.keyCode <= 90) {\n // clear existing reset timeout\n if (resetSearchTimeout) {\n clearTimeout(resetSearchTimeout);\n }\n\n // reset timeout for empty search key\n resetSearchTimeout = setTimeout(() => {\n searchKey = '';\n }, 1500);\n\n // update search keyword appending the current key\n searchKey += String.fromCharCode(e.keyCode);\n\n // search the element\n for (let i = 0, l = select.options.length; i < l; i++) {\n // removed cause not supported by IE:\n // if (options[i].text.startsWith(searchKey))\n if (select.options[i].text.toUpperCase().substr(0, searchKey.length) === searchKey) {\n setFocusedElement(select.options[i].customSelectCstOption);\n break;\n }\n }\n }\n break;\n }\n }\n }\n\n function changeEvent() {\n const index = select.selectedIndex;\n const element = index === -1 ? undefined : select.options[index].customSelectCstOption;\n\n setSelectedElement(element);\n }\n\n // When the option is outside the visible part of the opened panel, updates the scrollTop position\n // This is the default behaviour\n // To block it the plugin user must\n // add a \"custom-select:focus-outside-panel\" eventListener on the panel\n // with useCapture set to true\n // and stopPropagation\n function scrollToFocused(e) {\n const currPanel = e.currentTarget;\n const currOption = e.target;\n // Up\n if (currOption.offsetTop < currPanel.scrollTop) {\n currPanel.scrollTop = currOption.offsetTop;\n // Down\n } else {\n currPanel.scrollTop = (currOption.offsetTop + currOption.clientHeight)\n - currPanel.clientHeight;\n }\n }\n\n function addEvents() {\n document.addEventListener('click', clickEvent);\n panel.addEventListener('mouseover', mouseoverEvent);\n panel.addEventListener('custom-select:focus-outside-panel', scrollToFocused);\n select.addEventListener('change', changeEvent);\n container.addEventListener('keydown', keydownEvent);\n }\n\n function removeEvents() {\n document.removeEventListener('click', clickEvent);\n panel.removeEventListener('mouseover', mouseoverEvent);\n panel.removeEventListener('custom-select:focus-outside-panel', scrollToFocused);\n select.removeEventListener('change', changeEvent);\n container.removeEventListener('keydown', keydownEvent);\n }\n\n function disabled(bool) {\n if (bool && !select.disabled) {\n container.classList.add(builderParams.isDisabledClass);\n select.disabled = true;\n opener.removeAttribute('tabindex');\n container.dispatchEvent(new CustomEvent('custom-select:disabled'));\n removeEvents();\n } else if (!bool && select.disabled) {\n container.classList.remove(builderParams.isDisabledClass);\n select.disabled = false;\n opener.setAttribute('tabindex', '0');\n container.dispatchEvent(new CustomEvent('custom-select:enabled'));\n addEvents();\n }\n }\n\n // Form a given select children DOM tree (options and optgroup),\n // Creates the corresponding custom HTMLElements list (divs with different classes and attributes)\n function parseMarkup(children) {\n const nodeList = children;\n const cstList = [];\n\n if (typeof nodeList.length === 'undefined') {\n throw new TypeError('Invalid Argument');\n }\n\n for (let i = 0, li = nodeList.length; i < li; i++) {\n if (nodeList[i] instanceof HTMLElement && nodeList[i].tagName.toUpperCase() === 'OPTGROUP') {\n const cstOptgroup = document.createElement('div');\n cstOptgroup.classList.add(builderParams.optgroupClass);\n cstOptgroup.setAttribute('data-label', nodeList[i].label);\n\n // IMPORTANT: Stores in a property of the created custom option group\n // a hook to the the corrisponding select's option group\n cstOptgroup.customSelectOriginalOptgroup = nodeList[i];\n\n // IMPORTANT: Stores in a property of select's option group\n // a hook to the created custom option group\n nodeList[i].customSelectCstOptgroup = cstOptgroup;\n\n const subNodes = parseMarkup(nodeList[i].children);\n for (let j = 0, lj = subNodes.length; j < lj; j++) {\n cstOptgroup.appendChild(subNodes[j]);\n }\n\n cstList.push(cstOptgroup);\n } else if (nodeList[i] instanceof HTMLElement\n && nodeList[i].tagName.toUpperCase() === 'OPTION') {\n const cstOption = document.createElement('div');\n cstOption.classList.add(builderParams.optionClass);\n cstOption.textContent = nodeList[i].text;\n cstOption.setAttribute('data-value', nodeList[i].value);\n cstOption.setAttribute('role', 'option');\n\n // IMPORTANT: Stores in a property of the created custom option\n // a hook to the the corrisponding select's option\n cstOption.customSelectOriginalOption = nodeList[i];\n\n // IMPORTANT: Stores in a property of select's option\n // a hook to the created custom option\n nodeList[i].customSelectCstOption = cstOption;\n\n // If the select's option is selected\n if (nodeList[i].selected) {\n setSelectedElement(cstOption);\n }\n cstList.push(cstOption);\n } else {\n throw new TypeError('Invalid Argument');\n }\n }\n return cstList;\n }\n\n function append(nodePar, appendIntoOriginal, targetPar) {\n let target;\n if (typeof targetPar === 'undefined'\n || (targetPar === select)) {\n target = panel;\n } else if (targetPar instanceof HTMLElement\n && targetPar.tagName.toUpperCase() === 'OPTGROUP'\n && select.contains(targetPar)) {\n target = targetPar.customSelectCstOptgroup;\n } else {\n throw new TypeError('Invalid Argument');\n }\n\n // If the node provided is a single HTMLElement it is stored in an array\n const node = nodePar instanceof HTMLElement ? [nodePar] : nodePar;\n\n // Injects the options|optgroup in the select\n if (appendIntoOriginal) {\n for (let i = 0, l = node.length; i < l; i++) {\n if (target === panel) {\n select.appendChild(node[i]);\n } else {\n target.customSelectOriginalOptgroup.appendChild(node[i]);\n }\n }\n }\n\n // The custom markup to append\n const markupToInsert = parseMarkup(node);\n\n // Injects the created DOM content in the panel\n for (let i = 0, l = markupToInsert.length; i < l; i++) {\n target.appendChild(markupToInsert[i]);\n }\n\n return node;\n }\n\n function insertBefore(node, targetPar) {\n let target;\n if (targetPar instanceof HTMLElement\n && targetPar.tagName.toUpperCase() === 'OPTION'\n && select.contains(targetPar)) {\n target = targetPar.customSelectCstOption;\n } else if (targetPar instanceof HTMLElement\n && targetPar.tagName.toUpperCase() === 'OPTGROUP'\n && select.contains(targetPar)) {\n target = targetPar.customSelectCstOptgroup;\n } else {\n throw new TypeError('Invalid Argument');\n }\n\n // The custom markup to append\n const markupToInsert = parseMarkup(node.length ? node : [node]);\n\n target.parentNode.insertBefore(markupToInsert[0], target);\n\n // Injects the option or optgroup node in the original select and returns the injected node\n return targetPar.parentNode.insertBefore(node.length ? node[0] : node, targetPar);\n }\n\n function remove(node) {\n let cstNode;\n if (node instanceof HTMLElement\n && node.tagName.toUpperCase() === 'OPTION'\n && select.contains(node)) {\n cstNode = node.customSelectCstOption;\n } else if (node instanceof HTMLElement\n && node.tagName.toUpperCase() === 'OPTGROUP'\n && select.contains(node)) {\n cstNode = node.customSelectCstOptgroup;\n } else {\n throw new TypeError('Invalid Argument');\n }\n cstNode.parentNode.removeChild(cstNode);\n const removedNode = node.parentNode.removeChild(node);\n changeEvent();\n return removedNode;\n }\n\n function empty() {\n const removed = [];\n while (select.children.length) {\n panel.removeChild(panel.children[0]);\n removed.push(select.removeChild(select.children[0]));\n }\n setSelectedElement();\n return removed;\n }\n\n function destroy() {\n for (let i = 0, l = select.options.length; i < l; i++) {\n delete select.options[i].customSelectCstOption;\n }\n const optGroup = select.getElementsByTagName('optgroup');\n for (let i = 0, l = optGroup.length; i < l; i++) {\n delete optGroup.customSelectCstOptgroup;\n }\n\n removeEvents();\n\n return container.parentNode.replaceChild(select, container);\n }\n //\n // Custom Select DOM tree creation\n //\n\n // Creates the container/wrapper\n container = document.createElement('div');\n container.classList.add(builderParams.containerClass, containerClass);\n\n // Creates the opener\n opener = document.createElement('span');\n opener.className = builderParams.openerClass;\n opener.setAttribute('role', 'combobox');\n opener.setAttribute('aria-autocomplete', 'list');\n opener.setAttribute('aria-expanded', 'false');\n opener.innerHTML = `\n ${(select.selectedIndex !== -1 ? select.options[select.selectedIndex].text : '')}\n `;\n\n // Creates the panel\n // and injects the markup of the select inside\n // with some tag and attributes replacement\n panel = document.createElement('div');\n // Create random id\n const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (let i = 0; i < 5; i++) {\n uId += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n panel.id = `${containerClass}-${uId}-panel`;\n panel.className = builderParams.panelClass;\n panel.setAttribute('role', 'listbox');\n opener.setAttribute('aria-owns', panel.id);\n\n append(select.children, false);\n\n // Injects the container in the original DOM position of the select\n container.appendChild(opener);\n select.parentNode.replaceChild(container, select);\n container.appendChild(select);\n container.appendChild(panel);\n\n // ARIA labelledby - label\n if (document.querySelector(`label[for=\"${select.id}\"]`)) {\n currLabel = document.querySelector(`label[for=\"${select.id}\"]`);\n } else if (container.parentNode.tagName.toUpperCase() === 'LABEL') {\n currLabel = container.parentNode;\n }\n if (typeof currLabel !== 'undefined') {\n currLabel.setAttribute('id', `${containerClass}-${uId}-label`);\n opener.setAttribute('aria-labelledby', `${containerClass}-${uId}-label`);\n }\n\n // Event Init\n if (select.disabled) {\n container.classList.add(builderParams.isDisabledClass);\n } else {\n opener.setAttribute('tabindex', '0');\n select.setAttribute('tabindex', '-1');\n addEvents();\n }\n\n // Stores the plugin public exposed methods and properties, directly in the container HTMLElement\n container.customSelect = {\n get pluginOptions() { return builderParams; },\n get open() { return isOpen; },\n set open(bool) {\n open(bool);\n },\n get disabled() { return select.disabled; },\n set disabled(bool) {\n disabled(bool);\n },\n get value() { return select.value; },\n set value(val) {\n setValue(val);\n },\n append: (node, target) => append(node, true, target),\n insertBefore: (node, target) => insertBefore(node, target),\n remove,\n empty,\n destroy,\n opener,\n select,\n panel,\n container,\n };\n\n // Stores the plugin directly in the original select\n select.customSelect = container.customSelect;\n\n // Returns the plugin instance, with the public exposed methods and properties\n return container.customSelect;\n}\n\nexport default function customSelect(element, customParams) {\n // Overrides the default options with the ones provided by the user\n const nodeList = [];\n const selects = [];\n\n return (function init() {\n // The plugin is called on a single HTMLElement\n if (element && element instanceof HTMLElement && element.tagName.toUpperCase() === 'SELECT') {\n nodeList.push(element);\n // The plugin is called on a selector\n } else if (element && typeof element === 'string') {\n const elementsList = document.querySelectorAll(element);\n for (let i = 0, l = elementsList.length; i < l; ++i) {\n if (elementsList[i] instanceof HTMLElement\n && elementsList[i].tagName.toUpperCase() === 'SELECT') {\n nodeList.push(elementsList[i]);\n }\n }\n // The plugin is called on any HTMLElements list (NodeList, HTMLCollection, Array, etc.)\n } else if (element && element.length) {\n for (let i = 0, l = element.length; i < l; ++i) {\n if (element[i] instanceof HTMLElement\n && element[i].tagName.toUpperCase() === 'SELECT') {\n nodeList.push(element[i]);\n }\n }\n }\n\n // Launches the plugin over every HTMLElement\n // And stores every plugin instance\n for (let i = 0, l = nodeList.length; i < l; ++i) {\n selects.push(builder(nodeList[i], Object.assign({}, defaultParams, customParams)));\n }\n\n // Returns all plugin instances\n return selects;\n }());\n}\n","/**\n * SVGInject - Version 1.2.2\n * A tiny, intuitive, robust, caching solution for injecting SVG files inline into the DOM.\n *\n * https://github.com/iconfu/svg-inject\n *\n * Copyright (c) 2018 INCORS, the creators of iconfu.com\n * @license MIT License - https://github.com/iconfu/svg-inject/blob/master/LICENSE\n */\n\n(function(window, document) {\n // constants for better minification\n var _CREATE_ELEMENT_ = 'createElement';\n var _GET_ELEMENTS_BY_TAG_NAME_ = 'getElementsByTagName';\n var _LENGTH_ = 'length';\n var _STYLE_ = 'style';\n var _TITLE_ = 'title';\n var _UNDEFINED_ = 'undefined';\n var _SET_ATTRIBUTE_ = 'setAttribute';\n var _GET_ATTRIBUTE_ = 'getAttribute';\n\n var NULL = null;\n\n // constants\n var __SVGINJECT = '__svgInject';\n var ID_SUFFIX = '--inject-';\n var ID_SUFFIX_REGEX = new RegExp(ID_SUFFIX + '\\\\d+', \"g\");\n var LOAD_FAIL = 'LOAD_FAIL';\n var SVG_NOT_SUPPORTED = 'SVG_NOT_SUPPORTED';\n var SVG_INVALID = 'SVG_INVALID';\n var ATTRIBUTE_EXCLUSION_NAMES = ['src', 'alt', 'onload', 'onerror'];\n var A_ELEMENT = document[_CREATE_ELEMENT_]('a');\n var IS_SVG_SUPPORTED = typeof SVGRect != _UNDEFINED_;\n var DEFAULT_OPTIONS = {\n useCache: true,\n copyAttributes: true,\n makeIdsUnique: true\n };\n // Map of IRI referenceable tag names to properties that can reference them. This is defined in\n // https://www.w3.org/TR/SVG11/linking.html#processingIRI\n var IRI_TAG_PROPERTIES_MAP = {\n clipPath: ['clip-path'],\n 'color-profile': NULL,\n cursor: NULL,\n filter: NULL,\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-end', 'marker-mid', 'marker-start'],\n mask: NULL,\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke']\n };\n var INJECTED = 1;\n var FAIL = 2;\n\n var uniqueIdCounter = 1;\n var xmlSerializer;\n var domParser;\n\n\n // creates an SVG document from an SVG string\n function svgStringToSvgDoc(svgStr) {\n domParser = domParser || new DOMParser();\n return domParser.parseFromString(svgStr, 'text/xml');\n }\n\n\n // searializes an SVG element to an SVG string\n function svgElemToSvgString(svgElement) {\n xmlSerializer = xmlSerializer || new XMLSerializer();\n return xmlSerializer.serializeToString(svgElement);\n }\n\n\n // Returns the absolute url for the specified url\n function getAbsoluteUrl(url) {\n A_ELEMENT.href = url;\n return A_ELEMENT.href;\n }\n\n\n // Load svg with an XHR request\n function loadSvg(url, callback, errorCallback) {\n if (url) {\n var req = new XMLHttpRequest();\n req.onreadystatechange = function() {\n if (req.readyState == 4) {\n // readyState is DONE\n var status = req.status;\n if (status == 200) {\n // request status is OK\n callback(req.responseXML, req.responseText.trim());\n } else if (status >= 400) {\n // request status is error (4xx or 5xx)\n errorCallback();\n } else if (status == 0) {\n // request status 0 can indicate a failed cross-domain call\n errorCallback();\n }\n }\n };\n req.open('GET', url, true);\n req.send();\n }\n }\n\n\n // Copy attributes from img element to svg element\n function copyAttributes(imgElem, svgElem) {\n var attribute;\n var attributeName;\n var attributeValue;\n var attributes = imgElem.attributes;\n for (var i = 0; i < attributes[_LENGTH_]; i++) {\n attribute = attributes[i];\n attributeName = attribute.name;\n // Only copy attributes not explicitly excluded from copying\n if (ATTRIBUTE_EXCLUSION_NAMES.indexOf(attributeName) == -1) {\n attributeValue = attribute.value;\n // If img attribute is \"title\", insert a title element into SVG element\n if (attributeName == _TITLE_) {\n var titleElem;\n var firstElementChild = svgElem.firstElementChild;\n if (firstElementChild && firstElementChild.localName.toLowerCase() == _TITLE_) {\n // If the SVG element's first child is a title element, keep it as the title element\n titleElem = firstElementChild;\n } else {\n // If the SVG element's first child element is not a title element, create a new title\n // ele,emt and set it as the first child\n titleElem = document[_CREATE_ELEMENT_ + 'NS']('http://www.w3.org/2000/svg', _TITLE_);\n svgElem.insertBefore(titleElem, firstElementChild);\n }\n // Set new title content\n titleElem.textContent = attributeValue;\n } else {\n // Set img attribute to svg element\n svgElem[_SET_ATTRIBUTE_](attributeName, attributeValue);\n }\n }\n }\n }\n\n\n // This function appends a suffix to IDs of referenced elements in the in order to to avoid ID collision\n // between multiple injected SVGs. The suffix has the form \"--inject-X\", where X is a running number which is\n // incremented with each injection. References to the IDs are adjusted accordingly.\n // We assume tha all IDs within the injected SVG are unique, therefore the same suffix can be used for all IDs of one\n // injected SVG.\n function makeIdsUnique(svgElem) {\n var idSuffix = ID_SUFFIX + uniqueIdCounter++;\n // Get all elements with an ID. The SVG spec recommends to put referenced elements inside elements, but\n // this is a requirement, therefore we have to search for IDs in the whole SVG.\n var idElements = svgElem.querySelectorAll('[id]');\n var idElem;\n var tagName;\n var iriTagNames = {};\n var iriProperties = [];\n var changed = false;\n var i, j;\n\n for (i = 0; i < idElements[_LENGTH_]; i++) {\n idElem = idElements[i];\n tagName = idElem.localName; // Use non-namespaced tag name\n // Make ID unique if tag name is IRI referenceable\n if (tagName in IRI_TAG_PROPERTIES_MAP) {\n changed = true;\n iriTagNames[tagName] = 1;\n // Add suffix to element's ID\n idElem.id += idSuffix;\n // Replace ids in xlink:ref and href attributes\n ['xlink:href', 'href'].forEach(function(refAttrName) {\n var iri = idElem[_GET_ATTRIBUTE_](refAttrName);\n if (/^\\s*#/.test(iri)) { // Check if iri is non-null and has correct format\n idElem[_SET_ATTRIBUTE_](refAttrName, iri.trim() + idSuffix);\n }\n });\n }\n }\n\n // Get all properties that are mapped to the found tags\n for (tagName in iriTagNames) {\n (IRI_TAG_PROPERTIES_MAP[tagName] || [tagName]).forEach(function (mappedProperty) {\n // Add mapped properties to array of iri referencing properties.\n // Use linear search here because the number of possible entries is very small (maximum 11)\n if (iriProperties.indexOf(mappedProperty) < 0) {\n iriProperties.push(mappedProperty);\n }\n });\n }\n\n // Replace IDs with new IDs in all references\n if (iriProperties[_LENGTH_]) {\n // Add \"style\" to properties, because it may contain references in the form 'style=\"fill:url(#myFill)\"'\n iriProperties.push(_STYLE_);\n // Regular expression for functional notations of an IRI references. This will find occurences in the form\n // url(#anyId) or url(\"#anyId\") (for Internet Explorer)\n var funcIriRegex = /url\\(\"?#([a-zA-Z][\\w:.-]*)\"?\\)/g;\n // Run through all elements of the SVG and replace IDs in references. \n // To get all descending elements, getElementsByTagName('*') seems to perform faster than querySelectorAll('*'). \n // Since svgElem.getElementsByTagName('*') does not return the svg element itself, we have to handle it separately. \n var descElements = svgElem[_GET_ELEMENTS_BY_TAG_NAME_]('*');\n var element = svgElem;\n var propertyName;\n var value;\n var newValue;\n for (i = -1; element != null;) {\n if (element.localName == _STYLE_) {\n value = element.textContent;\n newValue = value && value.replace(funcIriRegex, 'url(#$1' + idSuffix + ')');\n if (newValue !== value) {\n element.textContent = newValue;\n }\n } else if (element.hasAttributes()) {\n // Run through all property names for which IDs were found\n for (j = 0; j < iriProperties[_LENGTH_]; j++) {\n propertyName = iriProperties[j];\n value = element[_GET_ATTRIBUTE_](propertyName);\n newValue = value && value.replace(funcIriRegex, 'url(#$1' + idSuffix + ')');\n if (newValue !== value) {\n element[_SET_ATTRIBUTE_](propertyName, newValue);\n }\n }\n }\n element = descElements[++i]; \n }\n }\n\n // return true if SVG element has changed\n return changed;\n }\n\n // For cached SVGs the IDs are made unique by simply replacing the already inserted unique IDs with a \n // higher ID counter. This is much more performant than a call to makeIdsUnique().\n function makeIdsUniqueCached(svgString) {\n return svgString.replace(ID_SUFFIX_REGEX, ID_SUFFIX + uniqueIdCounter++);\n }\n\n // Inject SVG by replacing the img element with the SVG element in the DOM\n function inject(imgElem, svgElem, absUrl, options) {\n if (svgElem) {\n svgElem[_SET_ATTRIBUTE_]('data-inject-url', absUrl);\n var parentNode = imgElem.parentNode;\n if (parentNode) {\n if (options.copyAttributes) {\n copyAttributes(imgElem, svgElem);\n }\n // Invoke beforeInject hook if set\n var beforeInject = options.beforeInject;\n var injectElem = (beforeInject && beforeInject(imgElem, svgElem)) || svgElem;\n // Replace img element with new element. This is the actual injection.\n parentNode.replaceChild(injectElem, imgElem);\n // Mark img element as injected\n imgElem[__SVGINJECT] = INJECTED;\n removeOnLoadAttribute(imgElem);\n // Invoke afterInject hook if set\n var afterInject = options.afterInject;\n if (afterInject) {\n afterInject(imgElem, injectElem);\n }\n }\n } else {\n svgInvalid(imgElem, options);\n }\n }\n\n\n // Merges any number of options objects into a new object\n function mergeOptions() {\n var mergedOptions = {};\n var args = arguments;\n // Iterate over all specified options objects and add all properties to the new options object\n for (var i = 0; i < args[_LENGTH_]; i++) {\n var argument = args[i];\n for (var key in argument) {\n if (argument.hasOwnProperty(key)) {\n mergedOptions[key] = argument[key];\n }\n }\n }\n return mergedOptions;\n }\n\n\n // Adds the specified CSS to the document's element\n function addStyleToHead(css) {\n var head = document[_GET_ELEMENTS_BY_TAG_NAME_]('head')[0];\n if (head) {\n var style = document[_CREATE_ELEMENT_](_STYLE_);\n style.type = 'text/css';\n style.appendChild(document.createTextNode(css));\n head.appendChild(style);\n }\n }\n\n\n // Builds an SVG element from the specified SVG string\n function buildSvgElement(svgStr, verify) {\n if (verify) {\n var svgDoc;\n try {\n // Parse the SVG string with DOMParser\n svgDoc = svgStringToSvgDoc(svgStr);\n } catch(e) {\n return NULL;\n }\n if (svgDoc[_GET_ELEMENTS_BY_TAG_NAME_]('parsererror')[_LENGTH_]) {\n // DOMParser does not throw an exception, but instead puts parsererror tags in the document\n return NULL;\n }\n return svgDoc.documentElement; \n } else {\n var div = document.createElement('div');\n div.innerHTML = svgStr;\n return div.firstElementChild;\n }\n }\n\n\n function removeOnLoadAttribute(imgElem) {\n // Remove the onload attribute. Should only be used to remove the unstyled image flash protection and\n // make the element visible, not for removing the event listener.\n imgElem.removeAttribute('onload');\n }\n\n function errorMessage(msg) {\n console.error('SVGInject: ' + msg);\n }\n\n\n function fail(imgElem, status, options) {\n imgElem[__SVGINJECT] = FAIL;\n if (options.onFail) {\n options.onFail(imgElem, status);\n } else {\n errorMessage(status);\n }\n }\n\n\n function svgInvalid(imgElem, options) {\n removeOnLoadAttribute(imgElem);\n fail(imgElem, SVG_INVALID, options);\n }\n\n\n function svgNotSupported(imgElem, options) {\n removeOnLoadAttribute(imgElem);\n fail(imgElem, SVG_NOT_SUPPORTED, options);\n }\n\n\n function loadFail(imgElem, options) {\n fail(imgElem, LOAD_FAIL, options);\n }\n\n\n function removeEventListeners(imgElem) {\n imgElem.onload = NULL;\n imgElem.onerror = NULL;\n }\n\n\n function imgNotSet(msg) {\n errorMessage('no img element');\n }\n\n\n function createSVGInject(globalName, options) {\n var defaultOptions = mergeOptions(DEFAULT_OPTIONS, options);\n var svgLoadCache = {};\n\n if (IS_SVG_SUPPORTED) {\n // If the browser supports SVG, add a small stylesheet that hides the elements until\n // injection is finished. This avoids showing the unstyled SVGs before style is applied.\n addStyleToHead('img[onload^=\"' + globalName + '(\"]{visibility:hidden;}');\n }\n\n\n /**\n * SVGInject\n *\n * Injects the SVG specified in the `src` attribute of the specified `img` element or array of `img`\n * elements. Returns a Promise object which resolves if all passed in `img` elements have either been\n * injected or failed to inject (Only if a global Promise object is available like in all modern browsers\n * or through a polyfill).\n *\n * Options:\n * useCache: If set to `true` the SVG will be cached using the absolute URL. Default value is `true`.\n * copyAttributes: If set to `true` the attributes will be copied from `img` to `svg`. Dfault value\n * is `true.\n * makeIdsUnique: If set to `true` the ID of elements in the `` element that can be references by\n * property values (for example 'clipPath') are made unique by appending \"--inject-X\", where X is a\n * running number which increases with each injection. This is done to avoid duplicate IDs in the DOM.\n * beforeLoad: Hook before SVG is loaded. The `img` element is passed as a parameter. If the hook returns\n * a string it is used as the URL instead of the `img` element's `src` attribute.\n * afterLoad: Hook after SVG is loaded. The loaded `svg` element and `svg` string are passed as a\n * parameters. If caching is active this hook will only get called once for injected SVGs with the\n * same absolute path. Changes to the `svg` element in this hook will be applied to all injected SVGs\n * with the same absolute path. It's also possible to return an `svg` string or `svg` element which\n * will then be used for the injection.\n * beforeInject: Hook before SVG is injected. The `img` and `svg` elements are passed as parameters. If\n * any html element is returned it gets injected instead of applying the default SVG injection.\n * afterInject: Hook after SVG is injected. The `img` and `svg` elements are passed as parameters.\n * onAllFinish: Hook after all `img` elements passed to an SVGInject() call have either been injected or\n * failed to inject.\n * onFail: Hook after injection fails. The `img` element and a `status` string are passed as an parameter.\n * The `status` can be either `'SVG_NOT_SUPPORTED'` (the browser does not support SVG),\n * `'SVG_INVALID'` (the SVG is not in a valid format) or `'LOAD_FAILED'` (loading of the SVG failed).\n *\n * @param {HTMLImageElement} img - an img element or an array of img elements\n * @param {Object} [options] - optional parameter with [options](#options) for this injection.\n */\n function SVGInject(img, options) {\n options = mergeOptions(defaultOptions, options);\n\n var run = function(resolve) {\n var allFinish = function() {\n var onAllFinish = options.onAllFinish;\n if (onAllFinish) {\n onAllFinish();\n } \n resolve && resolve();\n };\n\n if (img && typeof img[_LENGTH_] != _UNDEFINED_) {\n // an array like structure of img elements\n var injectIndex = 0;\n var injectCount = img[_LENGTH_];\n\n if (injectCount == 0) {\n allFinish();\n } else {\n var finish = function() {\n if (++injectIndex == injectCount) {\n allFinish();\n }\n };\n \n for (var i = 0; i < injectCount; i++) {\n SVGInjectElement(img[i], options, finish);\n }\n }\n } else {\n // only one img element\n SVGInjectElement(img, options, allFinish);\n }\n };\n\n // return a Promise object if globally available\n return typeof Promise == _UNDEFINED_ ? run() : new Promise(run);\n }\n\n\n // Injects a single svg element. Options must be already merged with the default options.\n function SVGInjectElement(imgElem, options, callback) {\n if (imgElem) {\n var svgInjectAttributeValue = imgElem[__SVGINJECT];\n if (!svgInjectAttributeValue) {\n removeEventListeners(imgElem);\n\n if (!IS_SVG_SUPPORTED) {\n svgNotSupported(imgElem, options);\n callback();\n return;\n }\n // Invoke beforeLoad hook if set. If the beforeLoad returns a value use it as the src for the load\n // URL path. Else use the imgElem's src attribute value.\n var beforeLoad = options.beforeLoad;\n var src = (beforeLoad && beforeLoad(imgElem)) || imgElem[_GET_ATTRIBUTE_]('src');\n\n if (!src) {\n // If no image src attribute is set do no injection. This can only be reached by using javascript\n // because if no src attribute is set the onload and onerror events do not get called\n if (src === '') {\n loadFail(imgElem, options);\n }\n callback();\n return;\n }\n\n // set array so later calls can register callbacks\n var onFinishCallbacks = [];\n imgElem[__SVGINJECT] = onFinishCallbacks;\n\n var onFinish = function() {\n callback();\n onFinishCallbacks.forEach(function(onFinishCallback) {\n onFinishCallback();\n });\n };\n\n var absUrl = getAbsoluteUrl(src);\n var useCacheOption = options.useCache;\n var makeIdsUniqueOption = options.makeIdsUnique;\n\n var setSvgLoadCacheValue = function(val) {\n if (useCacheOption) {\n svgLoadCache[absUrl].forEach(function(svgLoad) {\n svgLoad(val);\n });\n svgLoadCache[absUrl] = val;\n }\n };\n\n if (useCacheOption) {\n var svgLoad = svgLoadCache[absUrl];\n\n var handleLoadValue = function(loadValue) {\n if (loadValue === LOAD_FAIL) {\n loadFail(imgElem, options);\n } else if (loadValue === SVG_INVALID) {\n svgInvalid(imgElem, options);\n } else {\n var hasUniqueIds = loadValue[0];\n var svgString = loadValue[1];\n var uniqueIdsSvgString = loadValue[2];\n var svgElem;\n \n if (makeIdsUniqueOption) {\n if (hasUniqueIds === NULL) {\n // IDs for the SVG string have not been made unique before. This may happen if previous\n // injection of a cached SVG have been run with the option makedIdsUnique set to false\n svgElem = buildSvgElement(svgString, false);\n hasUniqueIds = makeIdsUnique(svgElem);\n\n loadValue[0] = hasUniqueIds;\n loadValue[2] = hasUniqueIds && svgElemToSvgString(svgElem);\n } else if (hasUniqueIds) {\n // Make IDs unique for already cached SVGs with better performance\n svgString = makeIdsUniqueCached(uniqueIdsSvgString);\n }\n }\n\n svgElem = svgElem || buildSvgElement(svgString, false);\n \n inject(imgElem, svgElem, absUrl, options);\n }\n onFinish();\n };\n\n if (typeof svgLoad != _UNDEFINED_) {\n // Value for url exists in cache\n if (svgLoad.isCallbackQueue) {\n // Same url has been cached, but value has not been loaded yet, so add to callbacks\n svgLoad.push(handleLoadValue);\n } else {\n handleLoadValue(svgLoad);\n }\n return;\n } else {\n var svgLoad = [];\n // set property isCallbackQueue to Array to differentiate from array with cached loaded values \n svgLoad.isCallbackQueue = true;\n svgLoadCache[absUrl] = svgLoad;\n }\n }\n\n // Load the SVG because it is not cached or caching is disabled\n loadSvg(absUrl, function(svgXml, svgString) {\n // Use the XML from the XHR request if it is an instance of Document. Otherwise\n // (for example of IE9), create the svg document from the svg string.\n var svgElem = svgXml instanceof Document ? svgXml.documentElement : buildSvgElement(svgString, true);\n\n var afterLoad = options.afterLoad;\n if (afterLoad) {\n // Invoke afterLoad hook which may modify the SVG element. After load may also return a new\n // svg element or svg string\n var svgElemOrSvgString = afterLoad(svgElem, svgString) || svgElem; \n if (svgElemOrSvgString) {\n // Update svgElem and svgString because of modifications to the SVG element or SVG string in\n // the afterLoad hook, so the modified SVG is also used for all later cached injections\n var isString = typeof svgElemOrSvgString == 'string';\n svgString = isString ? svgElemOrSvgString : svgElemToSvgString(svgElem);\n svgElem = isString ? buildSvgElement(svgElemOrSvgString, true) : svgElemOrSvgString;\n }\n }\n\n if (svgElem instanceof SVGElement) {\n var hasUniqueIds = NULL;\n if (makeIdsUniqueOption) {\n hasUniqueIds = makeIdsUnique(svgElem);\n }\n\n if (useCacheOption) {\n var uniqueIdsSvgString = hasUniqueIds && svgElemToSvgString(svgElem);\n // set an array with three entries to the load cache\n setSvgLoadCacheValue([hasUniqueIds, svgString, uniqueIdsSvgString]);\n }\n\n inject(imgElem, svgElem, absUrl, options);\n } else {\n svgInvalid(imgElem, options);\n setSvgLoadCacheValue(SVG_INVALID);\n }\n onFinish();\n }, function() {\n loadFail(imgElem, options);\n setSvgLoadCacheValue(LOAD_FAIL);\n onFinish();\n });\n } else {\n if (Array.isArray(svgInjectAttributeValue)) {\n // svgInjectAttributeValue is an array. Injection is not complete so register callback\n svgInjectAttributeValue.push(callback);\n } else {\n callback();\n }\n }\n } else {\n imgNotSet();\n }\n }\n\n\n /**\n * Sets the default [options](#options) for SVGInject.\n *\n * @param {Object} [options] - default [options](#options) for an injection.\n */\n SVGInject.setOptions = function(options) {\n defaultOptions = mergeOptions(defaultOptions, options);\n };\n\n\n // Create a new instance of SVGInject\n SVGInject.create = createSVGInject;\n\n\n /**\n * Used in onerror Event of an `` element to handle cases when the loading the original src fails\n * (for example if file is not found or if the browser does not support SVG). This triggers a call to the\n * options onFail hook if available. The optional second parameter will be set as the new src attribute\n * for the img element.\n *\n * @param {HTMLImageElement} img - an img element\n * @param {String} [fallbackSrc] - optional parameter fallback src\n */\n SVGInject.err = function(img, fallbackSrc) {\n if (img) {\n if (img[__SVGINJECT] != FAIL) {\n removeEventListeners(img);\n\n if (!IS_SVG_SUPPORTED) {\n svgNotSupported(img, defaultOptions);\n } else {\n removeOnLoadAttribute(img);\n loadFail(img, defaultOptions);\n }\n if (fallbackSrc) {\n removeOnLoadAttribute(img);\n img.src = fallbackSrc;\n }\n }\n } else {\n imgNotSet();\n }\n };\n\n window[globalName] = SVGInject;\n\n return SVGInject;\n }\n\n var SVGInjectInstance = createSVGInject('SVGInject');\n\n if (typeof module == 'object' && typeof module.exports == 'object') {\n module.exports = SVGInjectInstance;\n }\n})(window, document);\n","/*!\n * headroom.js v0.9.4 - Give your page some headroom. Hide your header until you need it\n * Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/headroom.js\n * License: MIT\n */\n\n(function(root, factory) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n }\n else if (typeof exports === 'object') {\n // COMMONJS\n module.exports = factory();\n }\n else {\n // BROWSER\n root.Headroom = factory();\n }\n}(this, function() {\n 'use strict';\n\n /* exported features */\n \n var features = {\n bind : !!(function(){}.bind),\n classList : 'classList' in document.documentElement,\n rAF : !!(window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame)\n };\n window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n \n /**\n * Handles debouncing of events via requestAnimationFrame\n * @see http://www.html5rocks.com/en/tutorials/speed/animations/\n * @param {Function} callback The callback to handle whichever event\n */\n function Debouncer (callback) {\n this.callback = callback;\n this.ticking = false;\n }\n Debouncer.prototype = {\n constructor : Debouncer,\n \n /**\n * dispatches the event to the supplied callback\n * @private\n */\n update : function() {\n this.callback && this.callback();\n this.ticking = false;\n },\n \n /**\n * ensures events don't get stacked\n * @private\n */\n requestTick : function() {\n if(!this.ticking) {\n requestAnimationFrame(this.rafCallback || (this.rafCallback = this.update.bind(this)));\n this.ticking = true;\n }\n },\n \n /**\n * Attach this as the event listeners\n */\n handleEvent : function() {\n this.requestTick();\n }\n };\n /**\n * Check if object is part of the DOM\n * @constructor\n * @param {Object} obj element to check\n */\n function isDOMElement(obj) {\n return obj && typeof window !== 'undefined' && (obj === window || obj.nodeType);\n }\n \n /**\n * Helper function for extending objects\n */\n function extend (object /*, objectN ... */) {\n if(arguments.length <= 0) {\n throw new Error('Missing arguments in extend function');\n }\n \n var result = object || {},\n key,\n i;\n \n for (i = 1; i < arguments.length; i++) {\n var replacement = arguments[i] || {};\n \n for (key in replacement) {\n // Recurse into object except if the object is a DOM element\n if(typeof result[key] === 'object' && ! isDOMElement(result[key])) {\n result[key] = extend(result[key], replacement[key]);\n }\n else {\n result[key] = result[key] || replacement[key];\n }\n }\n }\n \n return result;\n }\n \n /**\n * Helper function for normalizing tolerance option to object format\n */\n function normalizeTolerance (t) {\n return t === Object(t) ? t : { down : t, up : t };\n }\n \n /**\n * UI enhancement for fixed headers.\n * Hides header when scrolling down\n * Shows header when scrolling up\n * @constructor\n * @param {DOMElement} elem the header element\n * @param {Object} options options for the widget\n */\n function Headroom (elem, options) {\n options = extend(options, Headroom.options);\n \n this.lastKnownScrollY = 0;\n this.elem = elem;\n this.tolerance = normalizeTolerance(options.tolerance);\n this.classes = options.classes;\n this.offset = options.offset;\n this.scroller = options.scroller;\n this.initialised = false;\n this.onPin = options.onPin;\n this.onUnpin = options.onUnpin;\n this.onTop = options.onTop;\n this.onNotTop = options.onNotTop;\n this.onBottom = options.onBottom;\n this.onNotBottom = options.onNotBottom;\n }\n Headroom.prototype = {\n constructor : Headroom,\n \n /**\n * Initialises the widget\n */\n init : function() {\n if(!Headroom.cutsTheMustard) {\n return;\n }\n \n this.debouncer = new Debouncer(this.update.bind(this));\n this.elem.classList.add(this.classes.initial);\n \n // defer event registration to handle browser\n // potentially restoring previous scroll position\n setTimeout(this.attachEvent.bind(this), 100);\n \n return this;\n },\n \n /**\n * Unattaches events and removes any classes that were added\n */\n destroy : function() {\n var classes = this.classes;\n \n this.initialised = false;\n \n for (var key in classes) {\n if(classes.hasOwnProperty(key)) {\n this.elem.classList.remove(classes[key]);\n }\n }\n \n this.scroller.removeEventListener('scroll', this.debouncer, false);\n },\n \n /**\n * Attaches the scroll event\n * @private\n */\n attachEvent : function() {\n if(!this.initialised){\n this.lastKnownScrollY = this.getScrollY();\n this.initialised = true;\n this.scroller.addEventListener('scroll', this.debouncer, false);\n \n this.debouncer.handleEvent();\n }\n },\n \n /**\n * Unpins the header if it's currently pinned\n */\n unpin : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(classList.contains(classes.pinned) || !classList.contains(classes.unpinned)) {\n classList.add(classes.unpinned);\n classList.remove(classes.pinned);\n this.onUnpin && this.onUnpin.call(this);\n }\n },\n \n /**\n * Pins the header if it's currently unpinned\n */\n pin : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(classList.contains(classes.unpinned)) {\n classList.remove(classes.unpinned);\n classList.add(classes.pinned);\n this.onPin && this.onPin.call(this);\n }\n },\n \n /**\n * Handles the top states\n */\n top : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(!classList.contains(classes.top)) {\n classList.add(classes.top);\n classList.remove(classes.notTop);\n this.onTop && this.onTop.call(this);\n }\n },\n \n /**\n * Handles the not top state\n */\n notTop : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(!classList.contains(classes.notTop)) {\n classList.add(classes.notTop);\n classList.remove(classes.top);\n this.onNotTop && this.onNotTop.call(this);\n }\n },\n \n bottom : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(!classList.contains(classes.bottom)) {\n classList.add(classes.bottom);\n classList.remove(classes.notBottom);\n this.onBottom && this.onBottom.call(this);\n }\n },\n \n /**\n * Handles the not top state\n */\n notBottom : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(!classList.contains(classes.notBottom)) {\n classList.add(classes.notBottom);\n classList.remove(classes.bottom);\n this.onNotBottom && this.onNotBottom.call(this);\n }\n },\n \n /**\n * Gets the Y scroll position\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY\n * @return {Number} pixels the page has scrolled along the Y-axis\n */\n getScrollY : function() {\n return (this.scroller.pageYOffset !== undefined)\n ? this.scroller.pageYOffset\n : (this.scroller.scrollTop !== undefined)\n ? this.scroller.scrollTop\n : (document.documentElement || document.body.parentNode || document.body).scrollTop;\n },\n \n /**\n * Gets the height of the viewport\n * @see http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript\n * @return {int} the height of the viewport in pixels\n */\n getViewportHeight : function () {\n return window.innerHeight\n || document.documentElement.clientHeight\n || document.body.clientHeight;\n },\n \n /**\n * Gets the physical height of the DOM element\n * @param {Object} elm the element to calculate the physical height of which\n * @return {int} the physical height of the element in pixels\n */\n getElementPhysicalHeight : function (elm) {\n return Math.max(\n elm.offsetHeight,\n elm.clientHeight\n );\n },\n \n /**\n * Gets the physical height of the scroller element\n * @return {int} the physical height of the scroller element in pixels\n */\n getScrollerPhysicalHeight : function () {\n return (this.scroller === window || this.scroller === document.body)\n ? this.getViewportHeight()\n : this.getElementPhysicalHeight(this.scroller);\n },\n \n /**\n * Gets the height of the document\n * @see http://james.padolsey.com/javascript/get-document-height-cross-browser/\n * @return {int} the height of the document in pixels\n */\n getDocumentHeight : function () {\n var body = document.body,\n documentElement = document.documentElement;\n \n return Math.max(\n body.scrollHeight, documentElement.scrollHeight,\n body.offsetHeight, documentElement.offsetHeight,\n body.clientHeight, documentElement.clientHeight\n );\n },\n \n /**\n * Gets the height of the DOM element\n * @param {Object} elm the element to calculate the height of which\n * @return {int} the height of the element in pixels\n */\n getElementHeight : function (elm) {\n return Math.max(\n elm.scrollHeight,\n elm.offsetHeight,\n elm.clientHeight\n );\n },\n \n /**\n * Gets the height of the scroller element\n * @return {int} the height of the scroller element in pixels\n */\n getScrollerHeight : function () {\n return (this.scroller === window || this.scroller === document.body)\n ? this.getDocumentHeight()\n : this.getElementHeight(this.scroller);\n },\n \n /**\n * determines if the scroll position is outside of document boundaries\n * @param {int} currentScrollY the current y scroll position\n * @return {bool} true if out of bounds, false otherwise\n */\n isOutOfBounds : function (currentScrollY) {\n var pastTop = currentScrollY < 0,\n pastBottom = currentScrollY + this.getScrollerPhysicalHeight() > this.getScrollerHeight();\n \n return pastTop || pastBottom;\n },\n \n /**\n * determines if the tolerance has been exceeded\n * @param {int} currentScrollY the current scroll y position\n * @return {bool} true if tolerance exceeded, false otherwise\n */\n toleranceExceeded : function (currentScrollY, direction) {\n return Math.abs(currentScrollY-this.lastKnownScrollY) >= this.tolerance[direction];\n },\n \n /**\n * determine if it is appropriate to unpin\n * @param {int} currentScrollY the current y scroll position\n * @param {bool} toleranceExceeded has the tolerance been exceeded?\n * @return {bool} true if should unpin, false otherwise\n */\n shouldUnpin : function (currentScrollY, toleranceExceeded) {\n var scrollingDown = currentScrollY > this.lastKnownScrollY,\n pastOffset = currentScrollY >= this.offset;\n \n return scrollingDown && pastOffset && toleranceExceeded;\n },\n \n /**\n * determine if it is appropriate to pin\n * @param {int} currentScrollY the current y scroll position\n * @param {bool} toleranceExceeded has the tolerance been exceeded?\n * @return {bool} true if should pin, false otherwise\n */\n shouldPin : function (currentScrollY, toleranceExceeded) {\n var scrollingUp = currentScrollY < this.lastKnownScrollY,\n pastOffset = currentScrollY <= this.offset;\n \n return (scrollingUp && toleranceExceeded) || pastOffset;\n },\n \n /**\n * Handles updating the state of the widget\n */\n update : function() {\n var currentScrollY = this.getScrollY(),\n scrollDirection = currentScrollY > this.lastKnownScrollY ? 'down' : 'up',\n toleranceExceeded = this.toleranceExceeded(currentScrollY, scrollDirection);\n \n if(this.isOutOfBounds(currentScrollY)) { // Ignore bouncy scrolling in OSX\n return;\n }\n \n if (currentScrollY <= this.offset ) {\n this.top();\n } else {\n this.notTop();\n }\n \n if(currentScrollY + this.getViewportHeight() >= this.getScrollerHeight()) {\n this.bottom();\n }\n else {\n this.notBottom();\n }\n \n if(this.shouldUnpin(currentScrollY, toleranceExceeded)) {\n this.unpin();\n }\n else if(this.shouldPin(currentScrollY, toleranceExceeded)) {\n this.pin();\n }\n \n this.lastKnownScrollY = currentScrollY;\n }\n };\n /**\n * Default options\n * @type {Object}\n */\n Headroom.options = {\n tolerance : {\n up : 0,\n down : 0\n },\n offset : 0,\n scroller: window,\n classes : {\n pinned : 'headroom--pinned',\n unpinned : 'headroom--unpinned',\n top : 'headroom--top',\n notTop : 'headroom--not-top',\n bottom : 'headroom--bottom',\n notBottom : 'headroom--not-bottom',\n initial : 'headroom'\n }\n };\n Headroom.cutsTheMustard = typeof features !== 'undefined' && features.rAF && features.bind && features.classList;\n\n return Headroom;\n}));","// Unobtrusive Ajax support library for jQuery\n// Copyright (c) .NET Foundation. All rights reserved.\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\n// @version v3.2.6\n// \n// Microsoft grants you the right to use these script files for the sole\n// purpose of either: (i) interacting through your browser with the Microsoft\n// website or online service, subject to the applicable licensing or use\n// terms; or (ii) using the files as included with a Microsoft product subject\n// to that product's license terms. Microsoft reserves all other rights to the\n// files not expressly granted by Microsoft, whether by implication, estoppel\n// or otherwise. Insofar as a script file is dual licensed under GPL,\n// Microsoft neither took the code under GPL nor distributes it thereunder but\n// under the terms set out in this paragraph. All notices and licenses\n// below are for informational purposes only.\n\n/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */\n/*global window: false, jQuery: false */\n\n(function ($) {\n var data_click = \"unobtrusiveAjaxClick\",\n data_target = \"unobtrusiveAjaxClickTarget\",\n data_validation = \"unobtrusiveValidation\";\n\n function getFunction(code, argNames) {\n var fn = window, parts = (code || \"\").split(\".\");\n while (fn && parts.length) {\n fn = fn[parts.shift()];\n }\n if (typeof (fn) === \"function\") {\n return fn;\n }\n argNames.push(code);\n return Function.constructor.apply(null, argNames);\n }\n\n function isMethodProxySafe(method) {\n return method === \"GET\" || method === \"POST\";\n }\n\n function asyncOnBeforeSend(xhr, method) {\n if (!isMethodProxySafe(method)) {\n xhr.setRequestHeader(\"X-HTTP-Method-Override\", method);\n }\n }\n\n function asyncOnSuccess(element, data, contentType) {\n var mode;\n\n if (contentType.indexOf(\"application/x-javascript\") !== -1) { // jQuery already executes JavaScript for us\n return;\n }\n\n mode = (element.getAttribute(\"data-ajax-mode\") || \"\").toUpperCase();\n $(element.getAttribute(\"data-ajax-update\")).each(function (i, update) {\n var top;\n\n switch (mode) {\n case \"BEFORE\":\n $(update).prepend(data);\n break;\n case \"AFTER\":\n $(update).append(data);\n break;\n case \"REPLACE-WITH\":\n $(update).replaceWith(data);\n break;\n default:\n $(update).html(data);\n break;\n }\n });\n }\n\n function asyncRequest(element, options) {\n var confirm, loading, method, duration;\n\n confirm = element.getAttribute(\"data-ajax-confirm\");\n if (confirm && !window.confirm(confirm)) {\n return;\n }\n\n loading = $(element.getAttribute(\"data-ajax-loading\"));\n duration = parseInt(element.getAttribute(\"data-ajax-loading-duration\"), 10) || 0;\n\n $.extend(options, {\n type: element.getAttribute(\"data-ajax-method\") || undefined,\n url: element.getAttribute(\"data-ajax-url\") || undefined,\n cache: (element.getAttribute(\"data-ajax-cache\") || \"\").toLowerCase() === \"true\",\n beforeSend: function (xhr) {\n var result;\n asyncOnBeforeSend(xhr, method);\n result = getFunction(element.getAttribute(\"data-ajax-begin\"), [\"xhr\"]).apply(element, arguments);\n if (result !== false) {\n loading.show(duration);\n }\n return result;\n },\n complete: function () {\n loading.hide(duration);\n getFunction(element.getAttribute(\"data-ajax-complete\"), [\"xhr\", \"status\"]).apply(element, arguments);\n },\n success: function (data, status, xhr) {\n asyncOnSuccess(element, data, xhr.getResponseHeader(\"Content-Type\") || \"text/html\");\n getFunction(element.getAttribute(\"data-ajax-success\"), [\"data\", \"status\", \"xhr\"]).apply(element, arguments);\n },\n error: function () {\n getFunction(element.getAttribute(\"data-ajax-failure\"), [\"xhr\", \"status\", \"error\"]).apply(element, arguments);\n }\n });\n\n options.data.push({ name: \"X-Requested-With\", value: \"XMLHttpRequest\" });\n\n method = options.type.toUpperCase();\n if (!isMethodProxySafe(method)) {\n options.type = \"POST\";\n options.data.push({ name: \"X-HTTP-Method-Override\", value: method });\n }\n\n // change here:\n // Check for a Form POST with enctype=multipart/form-data\n // add the input file that were not previously included in the serializeArray()\n // set processData and contentType to false\n var $element = $(element);\n if ($element.is(\"form\") && $element.attr(\"enctype\") == \"multipart/form-data\") {\n var formdata = new FormData();\n $.each(options.data, function (i, v) {\n formdata.append(v.name, v.value);\n });\n $(\"input[type=file]\", $element).each(function () {\n var file = this;\n $.each(file.files, function (n, v) {\n formdata.append(file.name, v);\n });\n });\n $.extend(options, {\n processData: false,\n contentType: false,\n data: formdata\n });\n }\n // end change\n\n $.ajax(options);\n }\n\n function validate(form) {\n var validationInfo = $(form).data(data_validation);\n return !validationInfo || !validationInfo.validate || validationInfo.validate();\n }\n\n $(document).on(\"click\", \"a[data-ajax=true]\", function (evt) {\n evt.preventDefault();\n asyncRequest(this, {\n url: this.href,\n type: \"GET\",\n data: []\n });\n });\n\n $(document).on(\"click\", \"form[data-ajax=true] input[type=image]\", function (evt) {\n var name = evt.target.name,\n target = $(evt.target),\n form = $(target.parents(\"form\")[0]),\n offset = target.offset();\n\n form.data(data_click, [\n { name: name + \".x\", value: Math.round(evt.pageX - offset.left) },\n { name: name + \".y\", value: Math.round(evt.pageY - offset.top) }\n ]);\n\n setTimeout(function () {\n form.removeData(data_click);\n }, 0);\n });\n\n $(document).on(\"click\", \"form[data-ajax=true] :submit\", function (evt) {\n var name = evt.currentTarget.name,\n target = $(evt.target),\n form = $(target.parents(\"form\")[0]);\n\n form.data(data_click, name ? [{ name: name, value: evt.currentTarget.value }] : []);\n form.data(data_target, target);\n\n setTimeout(function () {\n form.removeData(data_click);\n form.removeData(data_target);\n }, 0);\n });\n\n $(document).on(\"submit\", \"form[data-ajax=true]\", function (evt) {\n var clickInfo = $(this).data(data_click) || [],\n clickTarget = $(this).data(data_target),\n isCancel = clickTarget && (clickTarget.hasClass(\"cancel\") || clickTarget.attr('formnovalidate') !== undefined);\n evt.preventDefault();\n if (!isCancel && !validate(this)) {\n return;\n }\n asyncRequest(this, {\n url: this.action,\n type: this.method || \"GET\",\n data: clickInfo.concat($(this).serializeArray())\n });\n });\n}(jQuery));\n","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\ntry {\n var ce = new window.CustomEvent('test');\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n} catch(e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n\n evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n origPrevent = evt.preventDefault;\n evt.preventDefault = function () {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n } catch(e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n}\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['./lg-utils'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(require('./lg-utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(global.lgUtils);\n global.lightgallery = mod.exports;\n }\n})(this, function (_lgUtils) {\n 'use strict';\n\n var _lgUtils2 = _interopRequireDefault(_lgUtils);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n /** Polyfill the CustomEvent() constructor functionality in Internet Explorer 9 and higher */\n (function () {\n\n if (typeof window.CustomEvent === 'function') {\n return false;\n }\n\n function CustomEvent(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n\n CustomEvent.prototype = window.Event.prototype;\n\n window.CustomEvent = CustomEvent;\n })();\n\n window.utils = _lgUtils2.default;\n window.lgData = {\n uid: 0\n };\n\n window.lgModules = {};\n var defaults = {\n\n mode: 'lg-slide',\n\n // Ex : 'ease'\n cssEasing: 'ease',\n\n //'for jquery animation'\n easing: 'linear',\n speed: 600,\n height: '100%',\n width: '100%',\n addClass: '',\n startClass: 'lg-start-zoom',\n backdropDuration: 150,\n hideBarsDelay: 6000,\n\n useLeft: false,\n\n closable: true,\n loop: true,\n escKey: true,\n keyPress: true,\n controls: true,\n slideEndAnimatoin: true,\n hideControlOnEnd: false,\n mousewheel: false,\n\n getCaptionFromTitleOrAlt: true,\n\n // .lg-item || '.lg-sub-html'\n appendSubHtmlTo: '.lg-sub-html',\n\n subHtmlSelectorRelative: false,\n\n /**\n * @desc number of preload slides\n * will exicute only after the current slide is fully loaded.\n *\n * @ex you clicked on 4th image and if preload = 1 then 3rd slide and 5th\n * slide will be loaded in the background after the 4th slide is fully loaded..\n * if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded.. ... ...\n *\n */\n preload: 1,\n showAfterLoad: true,\n selector: '',\n selectWithin: '',\n nextHtml: '',\n prevHtml: '',\n\n // 0, 1\n index: false,\n\n iframeMaxWidth: '100%',\n\n download: true,\n counter: true,\n appendCounterTo: '.lg-toolbar',\n\n swipeThreshold: 50,\n enableSwipe: true,\n enableDrag: true,\n\n dynamic: false,\n dynamicEl: [],\n galleryId: 1\n };\n\n function Plugin(element, options) {\n\n // Current lightGallery element\n this.el = element;\n\n // lightGallery settings\n this.s = _extends({}, defaults, options);\n\n // When using dynamic mode, ensure dynamicEl is an array\n if (this.s.dynamic && this.s.dynamicEl !== 'undefined' && this.s.dynamicEl.constructor === Array && !this.s.dynamicEl.length) {\n throw 'When using dynamic mode, you must also define dynamicEl as an Array.';\n }\n\n // lightGallery modules\n this.modules = {};\n\n // false when lightgallery complete first slide;\n this.lGalleryOn = false;\n\n this.lgBusy = false;\n\n // Timeout function for hiding controls;\n this.hideBartimeout = false;\n\n // To determine browser supports for touch events;\n this.isTouch = 'ontouchstart' in document.documentElement;\n\n // Disable hideControlOnEnd if sildeEndAnimation is true\n if (this.s.slideEndAnimatoin) {\n this.s.hideControlOnEnd = false;\n }\n\n this.items = [];\n\n // Gallery items\n if (this.s.dynamic) {\n this.items = this.s.dynamicEl;\n } else {\n if (this.s.selector === 'this') {\n this.items.push(this.el);\n } else if (this.s.selector !== '') {\n if (this.s.selectWithin) {\n this.items = document.querySelector(this.s.selectWithin).querySelectorAll(this.s.selector);\n } else {\n this.items = this.el.querySelectorAll(this.s.selector);\n }\n } else {\n this.items = this.el.children;\n }\n }\n\n // .lg-item\n\n this.___slide = '';\n\n // .lg-outer\n this.outer = '';\n\n this.init();\n\n return this;\n }\n\n Plugin.prototype.init = function () {\n\n var _this = this;\n\n // s.preload should not be more than $item.length\n if (_this.s.preload > _this.items.length) {\n _this.s.preload = _this.items.length;\n }\n\n // if dynamic option is enabled execute immediately\n var _hash = window.location.hash;\n if (_hash.indexOf('lg=' + this.s.galleryId) > 0) {\n\n _this.index = parseInt(_hash.split('&slide=')[1], 10);\n\n _lgUtils2.default.addClass(document.body, 'lg-from-hash');\n if (!_lgUtils2.default.hasClass(document.body, 'lg-on')) {\n _lgUtils2.default.addClass(document.body, 'lg-on');\n setTimeout(function () {\n _this.build(_this.index);\n });\n }\n }\n\n if (_this.s.dynamic) {\n\n _lgUtils2.default.trigger(this.el, 'onBeforeOpen');\n\n _this.index = _this.s.index || 0;\n\n // prevent accidental double execution\n if (!_lgUtils2.default.hasClass(document.body, 'lg-on')) {\n _lgUtils2.default.addClass(document.body, 'lg-on');\n setTimeout(function () {\n _this.build(_this.index);\n });\n }\n } else {\n\n for (var i = 0; i < _this.items.length; i++) {\n\n /*jshint loopfunc: true */\n (function (index) {\n\n // Using different namespace for click because click event should not unbind if selector is same object('this')\n _lgUtils2.default.on(_this.items[index], 'click.lgcustom', function (e) {\n\n e.preventDefault();\n\n _lgUtils2.default.trigger(_this.el, 'onBeforeOpen');\n\n _this.index = _this.s.index || index;\n\n if (!_lgUtils2.default.hasClass(document.body, 'lg-on')) {\n _this.build(_this.index);\n _lgUtils2.default.addClass(document.body, 'lg-on');\n }\n });\n })(i);\n }\n }\n };\n\n Plugin.prototype.build = function (index) {\n\n var _this = this;\n\n _this.structure();\n\n for (var key in window.lgModules) {\n _this.modules[key] = new window.lgModules[key](_this.el);\n }\n\n // initiate slide function\n _this.slide(index, false, false);\n\n if (_this.s.keyPress) {\n _this.keyPress();\n }\n\n if (_this.items.length > 1) {\n\n _this.arrow();\n\n setTimeout(function () {\n _this.enableDrag();\n _this.enableSwipe();\n }, 50);\n\n if (_this.s.mousewheel) {\n _this.mousewheel();\n }\n }\n\n _this.counter();\n\n _this.closeGallery();\n\n _lgUtils2.default.trigger(_this.el, 'onAfterOpen');\n\n // Hide controllers if mouse doesn't move for some period\n _lgUtils2.default.on(_this.outer, 'mousemove.lg click.lg touchstart.lg', function () {\n\n _lgUtils2.default.removeClass(_this.outer, 'lg-hide-items');\n\n clearTimeout(_this.hideBartimeout);\n\n // Timeout will be cleared on each slide movement also\n _this.hideBartimeout = setTimeout(function () {\n _lgUtils2.default.addClass(_this.outer, 'lg-hide-items');\n }, _this.s.hideBarsDelay);\n });\n };\n\n Plugin.prototype.structure = function () {\n var list = '';\n var controls = '';\n var i = 0;\n var subHtmlCont = '';\n var template;\n var _this = this;\n\n document.body.insertAdjacentHTML('beforeend', '
');\n _lgUtils2.default.setVendor(document.querySelector('.lg-backdrop'), 'TransitionDuration', this.s.backdropDuration + 'ms');\n\n // Create gallery items\n for (i = 0; i < this.items.length; i++) {\n list += '
';\n }\n\n // Create controlls\n if (this.s.controls && this.items.length > 1) {\n controls = '
' + '
' + this.s.prevHtml + '
' + '
' + this.s.nextHtml + '
' + '
';\n }\n\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n subHtmlCont = '
';\n }\n\n template = '
' + '
' + '
' + list + '
' + '
' + '' + '
' + controls + subHtmlCont + '
' + '
';\n\n document.body.insertAdjacentHTML('beforeend', template);\n this.outer = document.querySelector('.lg-outer');\n this.___slide = this.outer.querySelectorAll('.lg-item');\n\n if (this.s.useLeft) {\n _lgUtils2.default.addClass(this.outer, 'lg-use-left');\n\n // Set mode lg-slide if use left is true;\n this.s.mode = 'lg-slide';\n } else {\n _lgUtils2.default.addClass(this.outer, 'lg-use-css3');\n }\n\n // For fixed height gallery\n _this.setTop();\n _lgUtils2.default.on(window, 'resize.lg orientationchange.lg', function () {\n setTimeout(function () {\n _this.setTop();\n }, 100);\n });\n\n // add class lg-current to remove initial transition\n _lgUtils2.default.addClass(this.___slide[this.index], 'lg-current');\n\n // add Class for css support and transition mode\n if (this.doCss()) {\n _lgUtils2.default.addClass(this.outer, 'lg-css3');\n } else {\n _lgUtils2.default.addClass(this.outer, 'lg-css');\n\n // Set speed 0 because no animation will happen if browser doesn't support css3\n this.s.speed = 0;\n }\n\n _lgUtils2.default.addClass(this.outer, this.s.mode);\n\n if (this.s.enableDrag && this.items.length > 1) {\n _lgUtils2.default.addClass(this.outer, 'lg-grab');\n }\n\n if (this.s.showAfterLoad) {\n _lgUtils2.default.addClass(this.outer, 'lg-show-after-load');\n }\n\n if (this.doCss()) {\n var inner = this.outer.querySelector('.lg-inner');\n _lgUtils2.default.setVendor(inner, 'TransitionTimingFunction', this.s.cssEasing);\n _lgUtils2.default.setVendor(inner, 'TransitionDuration', this.s.speed + 'ms');\n }\n\n setTimeout(function () {\n _lgUtils2.default.addClass(document.querySelector('.lg-backdrop'), 'in');\n });\n\n setTimeout(function () {\n _lgUtils2.default.addClass(_this.outer, 'lg-visible');\n }, this.s.backdropDuration);\n\n if (this.s.download) {\n this.outer.querySelector('.lg-toolbar').insertAdjacentHTML('beforeend', '');\n }\n\n // Store the current scroll top value to scroll back after closing the gallery..\n this.prevScrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n };\n\n // For fixed height gallery\n Plugin.prototype.setTop = function () {\n if (this.s.height !== '100%') {\n var wH = window.innerHeight;\n var top = (wH - parseInt(this.s.height, 10)) / 2;\n var lGallery = this.outer.querySelector('.lg');\n if (wH >= parseInt(this.s.height, 10)) {\n lGallery.style.top = top + 'px';\n } else {\n lGallery.style.top = '0px';\n }\n }\n };\n\n // Find css3 support\n Plugin.prototype.doCss = function () {\n // check for css animation support\n var support = function support() {\n var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition'];\n var root = document.documentElement;\n var i = 0;\n for (i = 0; i < transition.length; i++) {\n if (transition[i] in root.style) {\n return true;\n }\n }\n };\n\n if (support()) {\n return true;\n }\n\n return false;\n };\n\n /**\n * @desc Check the given src is video\n * @param {String} src\n * @return {Object} video type\n * Ex:{ youtube : [\"//www.youtube.com/watch?v=c0asJgSyxcY\", \"c0asJgSyxcY\"] }\n */\n Plugin.prototype.isVideo = function (src, index) {\n\n var html;\n if (this.s.dynamic) {\n html = this.s.dynamicEl[index].html;\n } else {\n html = this.items[index].getAttribute('data-html');\n }\n\n if (!src && html) {\n return {\n html5: true\n };\n }\n\n var youtube = src.match(/\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com|be-nocookie\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-\\_\\%]+)/i);\n var vimeo = src.match(/\\/\\/(?:www\\.)?vimeo.com\\/([0-9a-z\\-_]+)/i);\n var dailymotion = src.match(/\\/\\/(?:www\\.)?dai.ly\\/([0-9a-z\\-_]+)/i);\n var vk = src.match(/\\/\\/(?:www\\.)?(?:vk\\.com|vkontakte\\.ru)\\/(?:video_ext\\.php\\?)(.*)/i);\n\n if (youtube) {\n return {\n youtube: youtube\n };\n } else if (vimeo) {\n return {\n vimeo: vimeo\n };\n } else if (dailymotion) {\n return {\n dailymotion: dailymotion\n };\n } else if (vk) {\n return {\n vk: vk\n };\n }\n };\n\n /**\n * @desc Create image counter\n * Ex: 1/10\n */\n Plugin.prototype.counter = function () {\n if (this.s.counter) {\n this.outer.querySelector(this.s.appendCounterTo).insertAdjacentHTML('beforeend', '
' + (parseInt(this.index, 10) + 1) + ' / ' + this.items.length + '
');\n }\n };\n\n /**\n * @desc add sub-html into the slide\n * @param {Number} index - index of the slide\n */\n Plugin.prototype.addHtml = function (index) {\n var subHtml = null;\n var currentEle;\n if (this.s.dynamic) {\n subHtml = this.s.dynamicEl[index].subHtml;\n } else {\n currentEle = this.items[index];\n subHtml = currentEle.getAttribute('data-sub-html');\n if (this.s.getCaptionFromTitleOrAlt && !subHtml) {\n subHtml = currentEle.getAttribute('title');\n if (subHtml && currentEle.querySelector('img')) {\n subHtml = currentEle.querySelector('img').getAttribute('alt');\n }\n }\n }\n\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\n\n // get first letter of subhtml\n // if first letter starts with . or # get the html form the jQuery object\n var fL = subHtml.substring(0, 1);\n if (fL === '.' || fL === '#') {\n if (this.s.subHtmlSelectorRelative && !this.s.dynamic) {\n subHtml = currentEle.querySelector(subHtml).innerHTML;\n } else {\n subHtml = document.querySelector(subHtml).innerHTML;\n }\n }\n } else {\n subHtml = '';\n }\n\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n this.outer.querySelector(this.s.appendSubHtmlTo).innerHTML = subHtml;\n } else {\n this.___slide[index].insertAdjacentHTML('beforeend', subHtml);\n }\n\n // Add lg-empty-html class if title doesn't exist\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\n if (subHtml === '') {\n _lgUtils2.default.addClass(this.outer.querySelector(this.s.appendSubHtmlTo), 'lg-empty-html');\n } else {\n _lgUtils2.default.removeClass(this.outer.querySelector(this.s.appendSubHtmlTo), 'lg-empty-html');\n }\n }\n\n _lgUtils2.default.trigger(this.el, 'onAfterAppendSubHtml', {\n index: index\n });\n };\n\n /**\n * @desc Preload slides\n * @param {Number} index - index of the slide\n */\n Plugin.prototype.preload = function (index) {\n var i = 1;\n var j = 1;\n for (i = 1; i <= this.s.preload; i++) {\n if (i >= this.items.length - index) {\n break;\n }\n\n this.loadContent(index + i, false, 0);\n }\n\n for (j = 1; j <= this.s.preload; j++) {\n if (index - j < 0) {\n break;\n }\n\n this.loadContent(index - j, false, 0);\n }\n };\n\n /**\n * @desc Load slide content into slide.\n * @param {Number} index - index of the slide.\n * @param {Boolean} rec - if true call loadcontent() function again.\n * @param {Boolean} delay - delay for adding complete class. it is 0 except first time.\n */\n Plugin.prototype.loadContent = function (index, rec, delay) {\n\n var _this = this;\n var _hasPoster = false;\n var _img;\n var _src;\n var _poster;\n var _srcset;\n var _sizes;\n var _html;\n var getResponsiveSrc = function getResponsiveSrc(srcItms) {\n var rsWidth = [];\n var rsSrc = [];\n for (var i = 0; i < srcItms.length; i++) {\n var __src = srcItms[i].split(' ');\n\n // Manage empty space\n if (__src[0] === '') {\n __src.splice(0, 1);\n }\n\n rsSrc.push(__src[0]);\n rsWidth.push(__src[1]);\n }\n\n var wWidth = window.innerWidth;\n for (var j = 0; j < rsWidth.length; j++) {\n if (parseInt(rsWidth[j], 10) > wWidth) {\n _src = rsSrc[j];\n break;\n }\n }\n };\n\n if (_this.s.dynamic) {\n\n if (_this.s.dynamicEl[index].poster) {\n _hasPoster = true;\n _poster = _this.s.dynamicEl[index].poster;\n }\n\n _html = _this.s.dynamicEl[index].html;\n _src = _this.s.dynamicEl[index].src;\n\n if (_this.s.dynamicEl[index].responsive) {\n var srcDyItms = _this.s.dynamicEl[index].responsive.split(',');\n getResponsiveSrc(srcDyItms);\n }\n\n _srcset = _this.s.dynamicEl[index].srcset;\n _sizes = _this.s.dynamicEl[index].sizes;\n } else {\n\n if (_this.items[index].getAttribute('data-poster')) {\n _hasPoster = true;\n _poster = _this.items[index].getAttribute('data-poster');\n }\n\n _html = _this.items[index].getAttribute('data-html');\n _src = _this.items[index].getAttribute('href') || _this.items[index].getAttribute('data-src');\n\n if (_this.items[index].getAttribute('data-responsive')) {\n var srcItms = _this.items[index].getAttribute('data-responsive').split(',');\n getResponsiveSrc(srcItms);\n }\n\n _srcset = _this.items[index].getAttribute('data-srcset');\n _sizes = _this.items[index].getAttribute('data-sizes');\n }\n\n //if (_src || _srcset || _sizes || _poster) {\n\n var iframe = false;\n if (_this.s.dynamic) {\n if (_this.s.dynamicEl[index].iframe) {\n iframe = true;\n }\n } else {\n if (_this.items[index].getAttribute('data-iframe') === 'true') {\n iframe = true;\n }\n }\n\n var _isVideo = _this.isVideo(_src, index);\n if (!_lgUtils2.default.hasClass(_this.___slide[index], 'lg-loaded')) {\n if (iframe) {\n _this.___slide[index].insertAdjacentHTML('afterbegin', '
');\n } else if (_hasPoster) {\n var videoClass = '';\n if (_isVideo && _isVideo.youtube) {\n videoClass = 'lg-has-youtube';\n } else if (_isVideo && _isVideo.vimeo) {\n videoClass = 'lg-has-vimeo';\n } else {\n videoClass = 'lg-has-html5';\n }\n\n _this.___slide[index].insertAdjacentHTML('beforeend', '
');\n } else if (_isVideo) {\n _this.___slide[index].insertAdjacentHTML('beforeend', '
');\n _lgUtils2.default.trigger(_this.el, 'hasVideo', {\n index: index,\n src: _src,\n html: _html\n });\n } else {\n _this.___slide[index].insertAdjacentHTML('beforeend', '
');\n }\n\n _lgUtils2.default.trigger(_this.el, 'onAferAppendSlide', {\n index: index\n });\n\n _img = _this.___slide[index].querySelector('.lg-object');\n if (_sizes) {\n _img.setAttribute('sizes', _sizes);\n }\n\n if (_srcset) {\n _img.setAttribute('srcset', _srcset);\n try {\n picturefill({\n elements: [_img[0]]\n });\n } catch (e) {\n console.error('Make sure you have included Picturefill version 2');\n }\n }\n\n if (this.s.appendSubHtmlTo !== '.lg-sub-html') {\n _this.addHtml(index);\n }\n\n _lgUtils2.default.addClass(_this.___slide[index], 'lg-loaded');\n }\n\n _lgUtils2.default.on(_this.___slide[index].querySelector('.lg-object'), 'load.lg error.lg', function () {\n\n // For first time add some delay for displaying the start animation.\n var _speed = 0;\n\n // Do not change the delay value because it is required for zoom plugin.\n // If gallery opened from direct url (hash) speed value should be 0\n if (delay && !_lgUtils2.default.hasClass(document.body, 'lg-from-hash')) {\n _speed = delay;\n }\n\n setTimeout(function () {\n _lgUtils2.default.addClass(_this.___slide[index], 'lg-complete');\n\n _lgUtils2.default.trigger(_this.el, 'onSlideItemLoad', {\n index: index,\n delay: delay || 0\n });\n }, _speed);\n });\n\n // @todo check load state for html5 videos\n if (_isVideo && _isVideo.html5 && !_hasPoster) {\n _lgUtils2.default.addClass(_this.___slide[index], 'lg-complete');\n }\n\n if (rec === true) {\n if (!_lgUtils2.default.hasClass(_this.___slide[index], 'lg-complete')) {\n _lgUtils2.default.on(_this.___slide[index].querySelector('.lg-object'), 'load.lg error.lg', function () {\n _this.preload(index);\n });\n } else {\n _this.preload(index);\n }\n }\n\n //}\n };\n\n /**\n * @desc slide function for lightgallery\n ** Slide() gets call on start\n ** ** Set lg.on true once slide() function gets called.\n ** Call loadContent() on slide() function inside setTimeout\n ** ** On first slide we do not want any animation like slide of fade\n ** ** So on first slide( if lg.on if false that is first slide) loadContent() should start loading immediately\n ** ** Else loadContent() should wait for the transition to complete.\n ** ** So set timeout s.speed + 50\n <=> ** loadContent() will load slide content in to the particular slide\n ** ** It has recursion (rec) parameter. if rec === true loadContent() will call preload() function.\n ** ** preload will execute only when the previous slide is fully loaded (images iframe)\n ** ** avoid simultaneous image load\n <=> ** Preload() will check for s.preload value and call loadContent() again accoring to preload value\n ** loadContent() <====> Preload();\n \n * @param {Number} index - index of the slide\n * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag\n * @param {Boolean} fromThumb - true if slide function called via thumbnail click\n */\n Plugin.prototype.slide = function (index, fromTouch, fromThumb) {\n\n var _prevIndex = 0;\n for (var i = 0; i < this.___slide.length; i++) {\n if (_lgUtils2.default.hasClass(this.___slide[i], 'lg-current')) {\n _prevIndex = i;\n break;\n }\n }\n\n var _this = this;\n\n // Prevent if multiple call\n // Required for hsh plugin\n if (_this.lGalleryOn && _prevIndex === index) {\n return;\n }\n\n var _length = this.___slide.length;\n var _time = _this.lGalleryOn ? this.s.speed : 0;\n var _next = false;\n var _prev = false;\n\n if (!_this.lgBusy) {\n\n if (this.s.download) {\n var _src;\n if (_this.s.dynamic) {\n _src = _this.s.dynamicEl[index].downloadUrl !== false && (_this.s.dynamicEl[index].downloadUrl || _this.s.dynamicEl[index].src);\n } else {\n _src = _this.items[index].getAttribute('data-download-url') !== 'false' && (_this.items[index].getAttribute('data-download-url') || _this.items[index].getAttribute('href') || _this.items[index].getAttribute('data-src'));\n }\n\n if (_src) {\n document.getElementById('lg-download').setAttribute('href', _src);\n _lgUtils2.default.removeClass(_this.outer, 'lg-hide-download');\n } else {\n _lgUtils2.default.addClass(_this.outer, 'lg-hide-download');\n }\n }\n\n _lgUtils2.default.trigger(_this.el, 'onBeforeSlide', {\n prevIndex: _prevIndex,\n index: index,\n fromTouch: fromTouch,\n fromThumb: fromThumb\n });\n\n _this.lgBusy = true;\n\n clearTimeout(_this.hideBartimeout);\n\n // Add title if this.s.appendSubHtmlTo === lg-sub-html\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n\n // wait for slide animation to complete\n setTimeout(function () {\n _this.addHtml(index);\n }, _time);\n }\n\n this.arrowDisable(index);\n\n if (!fromTouch) {\n\n // remove all transitions\n _lgUtils2.default.addClass(_this.outer, 'lg-no-trans');\n\n for (var j = 0; j < this.___slide.length; j++) {\n _lgUtils2.default.removeClass(this.___slide[j], 'lg-prev-slide');\n _lgUtils2.default.removeClass(this.___slide[j], 'lg-next-slide');\n }\n\n if (index < _prevIndex) {\n _prev = true;\n if (index === 0 && _prevIndex === _length - 1 && !fromThumb) {\n _prev = false;\n _next = true;\n }\n } else if (index > _prevIndex) {\n _next = true;\n if (index === _length - 1 && _prevIndex === 0 && !fromThumb) {\n _prev = true;\n _next = false;\n }\n }\n\n if (_prev) {\n\n //prevslide\n _lgUtils2.default.addClass(this.___slide[index], 'lg-prev-slide');\n _lgUtils2.default.addClass(this.___slide[_prevIndex], 'lg-next-slide');\n } else if (_next) {\n\n // next slide\n _lgUtils2.default.addClass(this.___slide[index], 'lg-next-slide');\n _lgUtils2.default.addClass(this.___slide[_prevIndex], 'lg-prev-slide');\n }\n\n // give 50 ms for browser to add/remove class\n setTimeout(function () {\n _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-current'), 'lg-current');\n\n //_this.$slide.eq(_prevIndex).removeClass('lg-current');\n _lgUtils2.default.addClass(_this.___slide[index], 'lg-current');\n\n // reset all transitions\n _lgUtils2.default.removeClass(_this.outer, 'lg-no-trans');\n }, 50);\n } else {\n\n var touchPrev = index - 1;\n var touchNext = index + 1;\n\n if (index === 0 && _prevIndex === _length - 1) {\n\n // next slide\n touchNext = 0;\n touchPrev = _length - 1;\n } else if (index === _length - 1 && _prevIndex === 0) {\n\n // prev slide\n touchNext = 0;\n touchPrev = _length - 1;\n }\n\n _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-prev-slide'), 'lg-prev-slide');\n _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-current'), 'lg-current');\n _lgUtils2.default.removeClass(_this.outer.querySelector('.lg-next-slide'), 'lg-next-slide');\n _lgUtils2.default.addClass(_this.___slide[touchPrev], 'lg-prev-slide');\n _lgUtils2.default.addClass(_this.___slide[touchNext], 'lg-next-slide');\n _lgUtils2.default.addClass(_this.___slide[index], 'lg-current');\n }\n\n if (_this.lGalleryOn) {\n setTimeout(function () {\n _this.loadContent(index, true, 0);\n }, this.s.speed + 50);\n\n setTimeout(function () {\n _this.lgBusy = false;\n _lgUtils2.default.trigger(_this.el, 'onAfterSlide', {\n prevIndex: _prevIndex,\n index: index,\n fromTouch: fromTouch,\n fromThumb: fromThumb\n });\n }, this.s.speed);\n } else {\n _this.loadContent(index, true, _this.s.backdropDuration);\n\n _this.lgBusy = false;\n _lgUtils2.default.trigger(_this.el, 'onAfterSlide', {\n prevIndex: _prevIndex,\n index: index,\n fromTouch: fromTouch,\n fromThumb: fromThumb\n });\n }\n\n _this.lGalleryOn = true;\n\n if (this.s.counter) {\n if (document.getElementById('lg-counter-current')) {\n document.getElementById('lg-counter-current').innerHTML = index + 1;\n }\n }\n }\n };\n\n /**\n * @desc Go to next slide\n * @param {Boolean} fromTouch - true if slide function called via touch event\n */\n Plugin.prototype.goToNextSlide = function (fromTouch) {\n var _this = this;\n if (!_this.lgBusy) {\n if (_this.index + 1 < _this.___slide.length) {\n _this.index++;\n _lgUtils2.default.trigger(_this.el, 'onBeforeNextSlide', {\n index: _this.index\n });\n _this.slide(_this.index, fromTouch, false);\n } else {\n if (_this.s.loop) {\n _this.index = 0;\n _lgUtils2.default.trigger(_this.el, 'onBeforeNextSlide', {\n index: _this.index\n });\n _this.slide(_this.index, fromTouch, false);\n } else if (_this.s.slideEndAnimatoin) {\n _lgUtils2.default.addClass(_this.outer, 'lg-right-end');\n setTimeout(function () {\n _lgUtils2.default.removeClass(_this.outer, 'lg-right-end');\n }, 400);\n }\n }\n }\n };\n\n /**\n * @desc Go to previous slide\n * @param {Boolean} fromTouch - true if slide function called via touch event\n */\n Plugin.prototype.goToPrevSlide = function (fromTouch) {\n var _this = this;\n if (!_this.lgBusy) {\n if (_this.index > 0) {\n _this.index--;\n _lgUtils2.default.trigger(_this.el, 'onBeforePrevSlide', {\n index: _this.index,\n fromTouch: fromTouch\n });\n _this.slide(_this.index, fromTouch, false);\n } else {\n if (_this.s.loop) {\n _this.index = _this.items.length - 1;\n _lgUtils2.default.trigger(_this.el, 'onBeforePrevSlide', {\n index: _this.index,\n fromTouch: fromTouch\n });\n _this.slide(_this.index, fromTouch, false);\n } else if (_this.s.slideEndAnimatoin) {\n _lgUtils2.default.addClass(_this.outer, 'lg-left-end');\n setTimeout(function () {\n _lgUtils2.default.removeClass(_this.outer, 'lg-left-end');\n }, 400);\n }\n }\n }\n };\n\n Plugin.prototype.keyPress = function () {\n var _this = this;\n if (this.items.length > 1) {\n _lgUtils2.default.on(window, 'keyup.lg', function (e) {\n if (_this.items.length > 1) {\n if (e.keyCode === 37) {\n e.preventDefault();\n _this.goToPrevSlide();\n }\n\n if (e.keyCode === 39) {\n e.preventDefault();\n _this.goToNextSlide();\n }\n }\n });\n }\n\n _lgUtils2.default.on(window, 'keydown.lg', function (e) {\n if (_this.s.escKey === true && e.keyCode === 27) {\n e.preventDefault();\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-thumb-open')) {\n _this.destroy();\n } else {\n _lgUtils2.default.removeClass(_this.outer, 'lg-thumb-open');\n }\n }\n });\n };\n\n Plugin.prototype.arrow = function () {\n var _this = this;\n _lgUtils2.default.on(this.outer.querySelector('.lg-prev'), 'click.lg', function () {\n _this.goToPrevSlide();\n });\n\n _lgUtils2.default.on(this.outer.querySelector('.lg-next'), 'click.lg', function () {\n _this.goToNextSlide();\n });\n };\n\n Plugin.prototype.arrowDisable = function (index) {\n\n // Disable arrows if s.hideControlOnEnd is true\n if (!this.s.loop && this.s.hideControlOnEnd) {\n var next = this.outer.querySelector('.lg-next');\n var prev = this.outer.querySelector('.lg-prev');\n if (index + 1 < this.___slide.length) {\n next.removeAttribute('disabled');\n _lgUtils2.default.removeClass(next, 'disabled');\n } else {\n next.setAttribute('disabled', 'disabled');\n _lgUtils2.default.addClass(next, 'disabled');\n }\n\n if (index > 0) {\n prev.removeAttribute('disabled');\n _lgUtils2.default.removeClass(prev, 'disabled');\n } else {\n prev.setAttribute('disabled', 'disabled');\n _lgUtils2.default.addClass(prev, 'disabled');\n }\n }\n };\n\n Plugin.prototype.setTranslate = function (el, xValue, yValue) {\n // jQuery supports Automatic CSS prefixing since jQuery 1.8.0\n if (this.s.useLeft) {\n el.style.left = xValue;\n } else {\n _lgUtils2.default.setVendor(el, 'Transform', 'translate3d(' + xValue + 'px, ' + yValue + 'px, 0px)');\n }\n };\n\n Plugin.prototype.touchMove = function (startCoords, endCoords) {\n\n var distance = endCoords - startCoords;\n\n if (Math.abs(distance) > 15) {\n // reset opacity and transition duration\n _lgUtils2.default.addClass(this.outer, 'lg-dragging');\n\n // move current slide\n this.setTranslate(this.___slide[this.index], distance, 0);\n\n // move next and prev slide with current slide\n this.setTranslate(document.querySelector('.lg-prev-slide'), -this.___slide[this.index].clientWidth + distance, 0);\n this.setTranslate(document.querySelector('.lg-next-slide'), this.___slide[this.index].clientWidth + distance, 0);\n }\n };\n\n Plugin.prototype.touchEnd = function (distance) {\n var _this = this;\n\n // keep slide animation for any mode while dragg/swipe\n if (_this.s.mode !== 'lg-slide') {\n _lgUtils2.default.addClass(_this.outer, 'lg-slide');\n }\n\n for (var i = 0; i < this.___slide.length; i++) {\n if (!_lgUtils2.default.hasClass(this.___slide[i], 'lg-current') && !_lgUtils2.default.hasClass(this.___slide[i], 'lg-prev-slide') && !_lgUtils2.default.hasClass(this.___slide[i], 'lg-next-slide')) {\n this.___slide[i].style.opacity = '0';\n }\n }\n\n // set transition duration\n setTimeout(function () {\n _lgUtils2.default.removeClass(_this.outer, 'lg-dragging');\n if (distance < 0 && Math.abs(distance) > _this.s.swipeThreshold) {\n _this.goToNextSlide(true);\n } else if (distance > 0 && Math.abs(distance) > _this.s.swipeThreshold) {\n _this.goToPrevSlide(true);\n } else if (Math.abs(distance) < 5) {\n\n // Trigger click if distance is less than 5 pix\n _lgUtils2.default.trigger(_this.el, 'onSlideClick');\n }\n\n for (var i = 0; i < _this.___slide.length; i++) {\n _this.___slide[i].removeAttribute('style');\n }\n });\n\n // remove slide class once drag/swipe is completed if mode is not slide\n setTimeout(function () {\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-dragging') && _this.s.mode !== 'lg-slide') {\n _lgUtils2.default.removeClass(_this.outer, 'lg-slide');\n }\n }, _this.s.speed + 100);\n };\n\n Plugin.prototype.enableSwipe = function () {\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isMoved = false;\n\n if (_this.s.enableSwipe && _this.isTouch && _this.doCss()) {\n\n for (var i = 0; i < _this.___slide.length; i++) {\n /*jshint loopfunc: true */\n _lgUtils2.default.on(_this.___slide[i], 'touchstart.lg', function (e) {\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed') && !_this.lgBusy) {\n e.preventDefault();\n _this.manageSwipeClass();\n startCoords = e.targetTouches[0].pageX;\n }\n });\n }\n\n for (var j = 0; j < _this.___slide.length; j++) {\n /*jshint loopfunc: true */\n _lgUtils2.default.on(_this.___slide[j], 'touchmove.lg', function (e) {\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed')) {\n e.preventDefault();\n endCoords = e.targetTouches[0].pageX;\n _this.touchMove(startCoords, endCoords);\n isMoved = true;\n }\n });\n }\n\n for (var k = 0; k < _this.___slide.length; k++) {\n /*jshint loopfunc: true */\n _lgUtils2.default.on(_this.___slide[k], 'touchend.lg', function () {\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed')) {\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords - startCoords);\n } else {\n _lgUtils2.default.trigger(_this.el, 'onSlideClick');\n }\n }\n });\n }\n }\n };\n\n Plugin.prototype.enableDrag = function () {\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isDraging = false;\n var isMoved = false;\n if (_this.s.enableDrag && !_this.isTouch && _this.doCss()) {\n for (var i = 0; i < _this.___slide.length; i++) {\n /*jshint loopfunc: true */\n _lgUtils2.default.on(_this.___slide[i], 'mousedown.lg', function (e) {\n // execute only on .lg-object\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-zoomed')) {\n if (_lgUtils2.default.hasClass(e.target, 'lg-object') || _lgUtils2.default.hasClass(e.target, 'lg-video-play')) {\n e.preventDefault();\n\n if (!_this.lgBusy) {\n _this.manageSwipeClass();\n startCoords = e.pageX;\n isDraging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.outer.scrollLeft += 1;\n _this.outer.scrollLeft -= 1;\n\n // *\n\n _lgUtils2.default.removeClass(_this.outer, 'lg-grab');\n _lgUtils2.default.addClass(_this.outer, 'lg-grabbing');\n\n _lgUtils2.default.trigger(_this.el, 'onDragstart');\n }\n }\n }\n });\n }\n\n _lgUtils2.default.on(window, 'mousemove.lg', function (e) {\n if (isDraging) {\n isMoved = true;\n endCoords = e.pageX;\n _this.touchMove(startCoords, endCoords);\n _lgUtils2.default.trigger(_this.el, 'onDragmove');\n }\n });\n\n _lgUtils2.default.on(window, 'mouseup.lg', function (e) {\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords - startCoords);\n _lgUtils2.default.trigger(_this.el, 'onDragend');\n } else if (_lgUtils2.default.hasClass(e.target, 'lg-object') || _lgUtils2.default.hasClass(e.target, 'lg-video-play')) {\n _lgUtils2.default.trigger(_this.el, 'onSlideClick');\n }\n\n // Prevent execution on click\n if (isDraging) {\n isDraging = false;\n _lgUtils2.default.removeClass(_this.outer, 'lg-grabbing');\n _lgUtils2.default.addClass(_this.outer, 'lg-grab');\n }\n });\n }\n };\n\n Plugin.prototype.manageSwipeClass = function () {\n var touchNext = this.index + 1;\n var touchPrev = this.index - 1;\n var length = this.___slide.length;\n if (this.s.loop) {\n if (this.index === 0) {\n touchPrev = length - 1;\n } else if (this.index === length - 1) {\n touchNext = 0;\n }\n }\n\n for (var i = 0; i < this.___slide.length; i++) {\n _lgUtils2.default.removeClass(this.___slide[i], 'lg-next-slide');\n _lgUtils2.default.removeClass(this.___slide[i], 'lg-prev-slide');\n }\n\n if (touchPrev > -1) {\n _lgUtils2.default.addClass(this.___slide[touchPrev], 'lg-prev-slide');\n }\n\n _lgUtils2.default.addClass(this.___slide[touchNext], 'lg-next-slide');\n };\n\n Plugin.prototype.mousewheel = function () {\n var _this = this;\n _lgUtils2.default.on(_this.outer, 'mousewheel.lg', function (e) {\n\n if (!e.deltaY) {\n return;\n }\n\n if (e.deltaY > 0) {\n _this.goToPrevSlide();\n } else {\n _this.goToNextSlide();\n }\n\n e.preventDefault();\n });\n };\n\n Plugin.prototype.closeGallery = function () {\n\n var _this = this;\n var mousedown = false;\n _lgUtils2.default.on(this.outer.querySelector('.lg-close'), 'click.lg', function () {\n _this.destroy();\n });\n\n if (_this.s.closable) {\n\n // If you drag the slide and release outside gallery gets close on chrome\n // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer\n _lgUtils2.default.on(_this.outer, 'mousedown.lg', function (e) {\n\n if (_lgUtils2.default.hasClass(e.target, 'lg-outer') || _lgUtils2.default.hasClass(e.target, 'lg-item') || _lgUtils2.default.hasClass(e.target, 'lg-img-wrap')) {\n mousedown = true;\n } else {\n mousedown = false;\n }\n });\n\n _lgUtils2.default.on(_this.outer, 'mouseup.lg', function (e) {\n\n if (_lgUtils2.default.hasClass(e.target, 'lg-outer') || _lgUtils2.default.hasClass(e.target, 'lg-item') || _lgUtils2.default.hasClass(e.target, 'lg-img-wrap') && mousedown) {\n if (!_lgUtils2.default.hasClass(_this.outer, 'lg-dragging')) {\n _this.destroy();\n }\n }\n });\n }\n };\n\n Plugin.prototype.destroy = function (d) {\n\n var _this = this;\n\n if (!d) {\n _lgUtils2.default.trigger(_this.el, 'onBeforeClose');\n }\n\n document.body.scrollTop = _this.prevScrollTop;\n document.documentElement.scrollTop = _this.prevScrollTop;\n\n /**\n * if d is false or undefined destroy will only close the gallery\n * plugins instance remains with the element\n *\n * if d is true destroy will completely remove the plugin\n */\n\n if (d) {\n if (!_this.s.dynamic) {\n // only when not using dynamic mode is $items a jquery collection\n\n for (var i = 0; i < this.items.length; i++) {\n _lgUtils2.default.off(this.items[i], '.lg');\n _lgUtils2.default.off(this.items[i], '.lgcustom');\n }\n }\n\n var lguid = _this.el.getAttribute('lg-uid');\n delete window.lgData[lguid];\n _this.el.removeAttribute('lg-uid');\n }\n\n // Unbind all events added by lightGallery\n _lgUtils2.default.off(this.el, '.lgtm');\n\n // Distroy all lightGallery modules\n for (var key in window.lgModules) {\n if (_this.modules[key]) {\n _this.modules[key].destroy(d);\n }\n }\n\n this.lGalleryOn = false;\n\n clearTimeout(_this.hideBartimeout);\n this.hideBartimeout = false;\n _lgUtils2.default.off(window, '.lg');\n _lgUtils2.default.removeClass(document.body, 'lg-on');\n _lgUtils2.default.removeClass(document.body, 'lg-from-hash');\n\n if (_this.outer) {\n _lgUtils2.default.removeClass(_this.outer, 'lg-visible');\n }\n\n _lgUtils2.default.removeClass(document.querySelector('.lg-backdrop'), 'in');\n setTimeout(function () {\n try {\n if (_this.outer) {\n _this.outer.parentNode.removeChild(_this.outer);\n }\n\n if (document.querySelector('.lg-backdrop')) {\n document.querySelector('.lg-backdrop').parentNode.removeChild(document.querySelector('.lg-backdrop'));\n }\n\n if (!d) {\n _lgUtils2.default.trigger(_this.el, 'onCloseAfter');\n }\n } catch (err) {}\n }, _this.s.backdropDuration + 50);\n };\n\n window.lightGallery = function (el, options) {\n if (!el) {\n return;\n }\n\n try {\n if (!el.getAttribute('lg-uid')) {\n var uid = 'lg' + window.lgData.uid++;\n window.lgData[uid] = new Plugin(el, options);\n el.setAttribute('lg-uid', uid);\n } else {\n try {\n window.lgData[el.getAttribute('lg-uid')].init();\n } catch (err) {\n console.error('lightGallery has not initiated properly');\n }\n }\n } catch (err) {\n console.error('lightGallery has not initiated properly');\n }\n };\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports);\n global.lgUtils = mod.exports;\n }\n})(this, function (exports) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var utils = {\n getAttribute: function getAttribute(el, label) {\n return el[label];\n },\n\n setAttribute: function setAttribute(el, label, value) {\n el[label] = value;\n },\n wrap: function wrap(el, className) {\n if (!el) {\n return;\n }\n\n var wrapper = document.createElement('div');\n wrapper.className = className;\n el.parentNode.insertBefore(wrapper, el);\n el.parentNode.removeChild(el);\n wrapper.appendChild(el);\n },\n\n addClass: function addClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n el.classList.add(className);\n } else {\n el.className += ' ' + className;\n }\n },\n\n removeClass: function removeClass(el, className) {\n if (!el) {\n return;\n }\n\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n },\n\n hasClass: function hasClass(el, className) {\n if (el.classList) {\n return el.classList.contains(className);\n } else {\n return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);\n }\n },\n\n // ex Transform\n // ex TransitionTimingFunction\n setVendor: function setVendor(el, property, value) {\n if (!el) {\n return;\n }\n\n el.style[property.charAt(0).toLowerCase() + property.slice(1)] = value;\n el.style['webkit' + property] = value;\n el.style['moz' + property] = value;\n el.style['ms' + property] = value;\n el.style['o' + property] = value;\n },\n\n trigger: function trigger(el, event) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!el) {\n return;\n }\n\n var customEvent = new CustomEvent(event, {\n detail: detail\n });\n el.dispatchEvent(customEvent);\n },\n\n Listener: {\n uid: 0\n },\n on: function on(el, events, fn) {\n var _this = this;\n\n if (!el) {\n return;\n }\n\n events.split(' ').forEach(function (event) {\n var _id = _this.getAttribute(el, 'lg-event-uid') || '';\n utils.Listener.uid++;\n _id += '&' + utils.Listener.uid;\n _this.setAttribute(el, 'lg-event-uid', _id);\n utils.Listener[event + utils.Listener.uid] = fn;\n el.addEventListener(event.split('.')[0], fn, false);\n });\n },\n\n off: function off(el, event) {\n if (!el) {\n return;\n }\n\n var _id = this.getAttribute(el, 'lg-event-uid');\n if (_id) {\n _id = _id.split('&');\n for (var i = 0; i < _id.length; i++) {\n if (_id[i]) {\n var _event = event + _id[i];\n if (_event.substring(0, 1) === '.') {\n for (var key in utils.Listener) {\n if (utils.Listener.hasOwnProperty(key)) {\n if (key.split('.').indexOf(_event.split('.')[1]) > -1) {\n el.removeEventListener(key.split('.')[0], utils.Listener[key]);\n this.setAttribute(el, 'lg-event-uid', this.getAttribute(el, 'lg-event-uid').replace('&' + _id[i], ''));\n delete utils.Listener[key];\n }\n }\n }\n } else {\n el.removeEventListener(_event.split('.')[0], utils.Listener[_event]);\n this.setAttribute(el, 'lg-event-uid', this.getAttribute(el, 'lg-event-uid').replace('&' + _id[i], ''));\n delete utils.Listener[_event];\n }\n }\n }\n }\n },\n\n param: function param(obj) {\n return Object.keys(obj).map(function (k) {\n return encodeURIComponent(k) + '=' + encodeURIComponent(obj[k]);\n }).join('&');\n }\n };\n\n exports.default = utils;\n});","/**!\n * lg-thumbnail.js | 1.0.0 | August 8th 2018\n * http://sachinchoolur.github.io/lg-thumbnail.js\n * Copyright (c) 2016 Sachin N; \n * @license GPLv3 \n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgThumbnail = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 1) {\n if (this.core.s.showThumbByDefault) {\n setTimeout(function () {\n utils.addClass(_this.core.outer, 'lg-thumb-open');\n }, 700);\n }\n\n if (this.core.s.pullCaptionUp) {\n utils.addClass(this.core.outer, 'lg-pull-caption-up');\n }\n\n this.build();\n if (this.core.s.animateThumb) {\n if (this.core.s.enableThumbDrag && !this.core.isTouch && this.core.doCss()) {\n this.enableThumbDrag();\n }\n\n if (this.core.s.enableThumbSwipe && this.core.isTouch && this.core.doCss()) {\n this.enableThumbSwipe();\n }\n\n this.thumbClickable = false;\n } else {\n this.thumbClickable = true;\n }\n\n this.toggle();\n this.thumbkeyPress();\n }\n };\n\n Thumbnail.prototype.build = function () {\n var _this = this;\n var thumbList = '';\n var vimeoErrorThumbSize = '';\n var $thumb;\n var html = '
' + '
' + '
' + '
';\n\n switch (this.core.s.vimeoThumbSize) {\n case 'thumbnail_large':\n vimeoErrorThumbSize = '640';\n break;\n case 'thumbnail_medium':\n vimeoErrorThumbSize = '200x150';\n break;\n case 'thumbnail_small':\n vimeoErrorThumbSize = '100x75';\n }\n\n utils.addClass(_this.core.outer, 'lg-has-thumb');\n\n _this.core.outer.querySelector('.lg').insertAdjacentHTML('beforeend', html);\n\n _this.thumbOuter = _this.core.outer.querySelector('.lg-thumb-outer');\n _this.thumbOuterWidth = _this.thumbOuter.offsetWidth;\n\n if (_this.core.s.animateThumb) {\n _this.core.outer.querySelector('.lg-thumb').style.width = _this.thumbTotalWidth + 'px';\n _this.core.outer.querySelector('.lg-thumb').style.position = 'relative';\n }\n\n if (this.core.s.animateThumb) {\n _this.thumbOuter.style.height = _this.core.s.thumbContHeight + 'px';\n }\n\n function getThumb(src, thumb, index) {\n var isVideo = _this.core.isVideo(src, index) || {};\n var thumbImg;\n var vimeoId = '';\n\n if (isVideo.youtube || isVideo.vimeo || isVideo.dailymotion) {\n if (isVideo.youtube) {\n if (_this.core.s.loadYoutubeThumbnail) {\n thumbImg = '//img.youtube.com/vi/' + isVideo.youtube[1] + '/' + _this.core.s.youtubeThumbSize + '.jpg';\n } else {\n thumbImg = thumb;\n }\n } else if (isVideo.vimeo) {\n if (_this.core.s.loadVimeoThumbnail) {\n thumbImg = '//i.vimeocdn.com/video/error_' + vimeoErrorThumbSize + '.jpg';\n vimeoId = isVideo.vimeo[1];\n } else {\n thumbImg = thumb;\n }\n } else if (isVideo.dailymotion) {\n if (_this.core.s.loadDailymotionThumbnail) {\n thumbImg = '//www.dailymotion.com/thumbnail/video/' + isVideo.dailymotion[1];\n } else {\n thumbImg = thumb;\n }\n }\n } else {\n thumbImg = thumb;\n }\n\n thumbList += '
';\n vimeoId = '';\n }\n\n if (_this.core.s.dynamic) {\n for (var j = 0; j < _this.core.s.dynamicEl.length; j++) {\n getThumb(_this.core.s.dynamicEl[j].src, _this.core.s.dynamicEl[j].thumb, j);\n }\n } else {\n for (var i = 0; i < _this.core.items.length; i++) {\n if (!_this.core.s.exThumbImage) {\n getThumb(_this.core.items[i].getAttribute('href') || _this.core.items[i].getAttribute('data-src'), _this.core.items[i].querySelector('img').getAttribute('src'), i);\n } else {\n getThumb(_this.core.items[i].getAttribute('href') || _this.core.items[i].getAttribute('data-src'), _this.core.items[i].getAttribute(_this.core.s.exThumbImage), i);\n }\n }\n }\n\n _this.core.outer.querySelector('.lg-thumb').innerHTML = thumbList;\n\n $thumb = _this.core.outer.querySelectorAll('.lg-thumb-item');\n\n for (var n = 0; n < $thumb.length; n++) {\n\n /*jshint loopfunc: true */\n (function (index) {\n var $this = $thumb[index];\n var vimeoVideoId = $this.getAttribute('data-vimeo-id');\n if (vimeoVideoId) {\n\n window['lgJsonP' + _this.el.getAttribute('lg-uid') + '' + n] = function (content) {\n $this.querySelector('img').setAttribute('src', content[0][_this.core.s.vimeoThumbSize]);\n };\n\n var script = document.createElement('script');\n script.className = 'lg-script';\n script.src = '//www.vimeo.com/api/v2/video/' + vimeoVideoId + '.json?callback=lgJsonP' + _this.el.getAttribute('lg-uid') + '' + n;\n document.body.appendChild(script);\n }\n })(n);\n }\n\n // manage active class for thumbnail\n utils.addClass($thumb[_this.core.index], 'active');\n utils.on(_this.core.el, 'onBeforeSlide.lgtm', function () {\n\n for (var j = 0; j < $thumb.length; j++) {\n utils.removeClass($thumb[j], 'active');\n }\n\n utils.addClass($thumb[_this.core.index], 'active');\n });\n\n for (var k = 0; k < $thumb.length; k++) {\n\n /*jshint loopfunc: true */\n (function (index) {\n\n utils.on($thumb[index], 'click.lg touchend.lg', function () {\n\n setTimeout(function () {\n\n // In IE9 and bellow touch does not support\n // Go to slide if browser does not support css transitions\n if (_this.thumbClickable && !_this.core.lgBusy || !_this.core.doCss()) {\n _this.core.index = index;\n _this.core.slide(_this.core.index, false, true);\n }\n }, 50);\n });\n })(k);\n }\n\n utils.on(_this.core.el, 'onBeforeSlide.lgtm', function () {\n _this.animateThumb(_this.core.index);\n });\n\n utils.on(window, 'resize.lgthumb orientationchange.lgthumb', function () {\n setTimeout(function () {\n _this.animateThumb(_this.core.index);\n _this.thumbOuterWidth = _this.thumbOuter.offsetWidth;\n }, 200);\n });\n };\n\n Thumbnail.prototype.setTranslate = function (value) {\n utils.setVendor(this.core.outer.querySelector('.lg-thumb'), 'Transform', 'translate3d(-' + value + 'px, 0px, 0px)');\n };\n\n Thumbnail.prototype.animateThumb = function (index) {\n var $thumb = this.core.outer.querySelector('.lg-thumb');\n if (this.core.s.animateThumb) {\n var position;\n switch (this.core.s.currentPagerPosition) {\n case 'left':\n position = 0;\n break;\n case 'middle':\n position = this.thumbOuterWidth / 2 - this.core.s.thumbWidth / 2;\n break;\n case 'right':\n position = this.thumbOuterWidth - this.core.s.thumbWidth;\n }\n this.left = (this.core.s.thumbWidth + this.core.s.thumbMargin) * index - 1 - position;\n if (this.left > this.thumbTotalWidth - this.thumbOuterWidth) {\n this.left = this.thumbTotalWidth - this.thumbOuterWidth;\n }\n\n if (this.left < 0) {\n this.left = 0;\n }\n\n if (this.core.lGalleryOn) {\n if (!utils.hasClass($thumb, 'on')) {\n utils.setVendor(this.core.outer.querySelector('.lg-thumb'), 'TransitionDuration', this.core.s.speed + 'ms');\n }\n\n if (!this.core.doCss()) {\n $thumb.style.left = -this.left + 'px';\n }\n } else {\n if (!this.core.doCss()) {\n $thumb.style.left = -this.left + 'px';\n }\n }\n\n this.setTranslate(this.left);\n }\n };\n\n // Enable thumbnail dragging and swiping\n Thumbnail.prototype.enableThumbDrag = function () {\n\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isDraging = false;\n var isMoved = false;\n var tempLeft = 0;\n\n utils.addClass(_this.thumbOuter, 'lg-grab');\n\n utils.on(_this.core.outer.querySelector('.lg-thumb'), 'mousedown.lgthumb', function (e) {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n // execute only on .lg-object\n e.preventDefault();\n startCoords = e.pageX;\n isDraging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.core.outer.scrollLeft += 1;\n _this.core.outer.scrollLeft -= 1;\n\n // *\n _this.thumbClickable = false;\n utils.removeClass(_this.thumbOuter, 'lg-grab');\n utils.addClass(_this.thumbOuter, 'lg-grabbing');\n }\n });\n\n utils.on(window, 'mousemove.lgthumb', function (e) {\n if (isDraging) {\n tempLeft = _this.left;\n isMoved = true;\n endCoords = e.pageX;\n\n utils.addClass(_this.thumbOuter, 'lg-dragging');\n\n tempLeft = tempLeft - (endCoords - startCoords);\n\n if (tempLeft > _this.thumbTotalWidth - _this.thumbOuterWidth) {\n tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth;\n }\n\n if (tempLeft < 0) {\n tempLeft = 0;\n }\n\n // move current slide\n _this.setTranslate(tempLeft);\n }\n });\n\n utils.on(window, 'mouseup.lgthumb', function () {\n if (isMoved) {\n isMoved = false;\n utils.removeClass(_this.thumbOuter, 'lg-dragging');\n\n _this.left = tempLeft;\n\n if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) {\n _this.thumbClickable = true;\n }\n } else {\n _this.thumbClickable = true;\n }\n\n if (isDraging) {\n isDraging = false;\n utils.removeClass(_this.thumbOuter, 'lg-grabbing');\n utils.addClass(_this.thumbOuter, 'lg-grab');\n }\n });\n };\n\n Thumbnail.prototype.enableThumbSwipe = function () {\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isMoved = false;\n var tempLeft = 0;\n\n utils.on(_this.core.outer.querySelector('.lg-thumb'), 'touchstart.lg', function (e) {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n e.preventDefault();\n startCoords = e.targetTouches[0].pageX;\n _this.thumbClickable = false;\n }\n });\n\n utils.on(_this.core.outer.querySelector('.lg-thumb'), 'touchmove.lg', function (e) {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n e.preventDefault();\n endCoords = e.targetTouches[0].pageX;\n isMoved = true;\n\n utils.addClass(_this.thumbOuter, 'lg-dragging');\n\n tempLeft = _this.left;\n\n tempLeft = tempLeft - (endCoords - startCoords);\n\n if (tempLeft > _this.thumbTotalWidth - _this.thumbOuterWidth) {\n tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth;\n }\n\n if (tempLeft < 0) {\n tempLeft = 0;\n }\n\n // move current slide\n _this.setTranslate(tempLeft);\n }\n });\n\n utils.on(_this.core.outer.querySelector('.lg-thumb'), 'touchend.lg', function () {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n\n if (isMoved) {\n isMoved = false;\n utils.removeClass(_this.thumbOuter, 'lg-dragging');\n if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) {\n _this.thumbClickable = true;\n }\n\n _this.left = tempLeft;\n } else {\n _this.thumbClickable = true;\n }\n } else {\n _this.thumbClickable = true;\n }\n });\n };\n\n Thumbnail.prototype.toggle = function () {\n var _this = this;\n if (_this.core.s.toggleThumb) {\n utils.addClass(_this.core.outer, 'lg-can-toggle');\n _this.thumbOuter.insertAdjacentHTML('beforeend', '');\n utils.on(_this.core.outer.querySelector('.lg-toggle-thumb'), 'click.lg', function () {\n if (utils.hasClass(_this.core.outer, 'lg-thumb-open')) {\n utils.removeClass(_this.core.outer, 'lg-thumb-open');\n } else {\n utils.addClass(_this.core.outer, 'lg-thumb-open');\n }\n });\n }\n };\n\n Thumbnail.prototype.thumbkeyPress = function () {\n var _this = this;\n utils.on(window, 'keydown.lgthumb', function (e) {\n if (e.keyCode === 38) {\n e.preventDefault();\n utils.addClass(_this.core.outer, 'lg-thumb-open');\n } else if (e.keyCode === 40) {\n e.preventDefault();\n utils.removeClass(_this.core.outer, 'lg-thumb-open');\n }\n });\n };\n\n Thumbnail.prototype.destroy = function (d) {\n if (this.core.s.thumbnail && this.core.items.length > 1) {\n utils.off(window, '.lgthumb');\n if (!d) {\n this.thumbOuter.parentNode.removeChild(this.thumbOuter);\n }\n utils.removeClass(this.core.outer, 'lg-has-thumb');\n\n var lgScript = document.getElementsByClassName('lg-script');\n while (lgScript[0]) {\n lgScript[0].parentNode.removeChild(lgScript[0]);\n }\n }\n };\n\n window.lgModules.thumbnail = Thumbnail;\n});\n\n},{}]},{},[1])(1)\n});\n","/**!\r\n * lg-autoplay.js | 1.0.0 | October 5th 2016\r\n * http://sachinchoolur.github.io/lg-autoplay.js\r\n * Copyright (c) 2016 Sachin N; \r\n * @license GPLv3 \r\n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgAutoplay = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o
');\n }\n\n // set progress\n _this.progress();\n\n // Start autoplay\n if (_this.core.s.autoplay) {\n _this.startlAuto();\n }\n\n // cancel interval on touchstart and dragstart\n utils.on(_this.el, 'onDragstart.lgtm touchstart.lgtm', function () {\n if (_this.interval) {\n _this.cancelAuto();\n _this.canceledOnTouch = true;\n }\n });\n\n // restore autoplay if autoplay canceled from touchstart / dragstart\n utils.on(_this.el, 'onDragend.lgtm touchend.lgtm onSlideClick.lgtm', function () {\n if (!_this.interval && _this.canceledOnTouch) {\n _this.startlAuto();\n _this.canceledOnTouch = false;\n }\n });\n };\n\n Autoplay.prototype.progress = function () {\n\n var _this = this;\n var _progressBar;\n var _progress;\n\n utils.on(_this.el, 'onBeforeSlide.lgtm', function () {\n\n // start progress bar animation\n if (_this.core.s.progressBar && _this.fromAuto) {\n _progressBar = _this.core.outer.querySelector('.lg-progress-bar');\n _progress = _this.core.outer.querySelector('.lg-progress');\n if (_this.interval) {\n _progress.removeAttribute('style');\n utils.removeClass(_progressBar, 'lg-start');\n setTimeout(function () {\n utils.setVendor(_progress, 'Transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');\n utils.addClass(_progressBar, 'lg-start');\n }, 20);\n }\n }\n\n // Remove setinterval if slide is triggered manually and fourceautoplay is false\n if (!_this.fromAuto && !_this.core.s.fourceAutoplay) {\n _this.cancelAuto();\n }\n\n _this.fromAuto = false;\n });\n };\n\n // Manage autoplay via play/stop buttons\n Autoplay.prototype.controls = function () {\n var _this = this;\n var _html = '';\n\n // Append autoplay controls\n _this.core.outer.querySelector(this.core.s.appendAutoplayControlsTo).insertAdjacentHTML('beforeend', _html);\n\n utils.on(_this.core.outer.querySelector('.lg-autoplay-button'), 'click.lg', function () {\n if (utils.hasClass(_this.core.outer, 'lg-show-autoplay')) {\n _this.cancelAuto();\n _this.core.s.fourceAutoplay = false;\n } else {\n if (!_this.interval) {\n _this.startlAuto();\n _this.core.s.fourceAutoplay = _this.fourceAutoplayTemp;\n }\n }\n });\n };\n\n // Autostart gallery\n Autoplay.prototype.startlAuto = function () {\n var _this = this;\n\n utils.setVendor(_this.core.outer.querySelector('.lg-progress'), 'Transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');\n utils.addClass(_this.core.outer, 'lg-show-autoplay');\n utils.addClass(_this.core.outer.querySelector('.lg-progress-bar'), 'lg-start');\n\n _this.interval = setInterval(function () {\n if (_this.core.index + 1 < _this.core.items.length) {\n _this.core.index++;\n } else {\n _this.core.index = 0;\n }\n\n _this.fromAuto = true;\n _this.core.slide(_this.core.index, false, false);\n }, _this.core.s.speed + _this.core.s.pause);\n };\n\n // cancel Autostart\n Autoplay.prototype.cancelAuto = function () {\n clearInterval(this.interval);\n this.interval = false;\n if (this.core.outer.querySelector('.lg-progress')) {\n this.core.outer.querySelector('.lg-progress').removeAttribute('style');\n }\n\n utils.removeClass(this.core.outer, 'lg-show-autoplay');\n utils.removeClass(this.core.outer.querySelector('.lg-progress-bar'), 'lg-start');\n };\n\n Autoplay.prototype.destroy = function () {\n\n this.cancelAuto();\n if (this.core.outer.querySelector('.lg-progress-bar')) {\n this.core.outer.querySelector('.lg-progress-bar').parentNode.removeChild(this.core.outer.querySelector('.lg-progress-bar'));\n }\n };\n\n window.lgModules.autoplay = Autoplay;\n});\n\n},{}]},{},[1])(1)\n});","/**!\r\n * lg-video.js | 1.0.0 | October 5th 2016\r\n * http://sachinchoolur.github.io/lg-video.js\r\n * Copyright (c) 2016 Sachin N; \r\n * @license GPLv3 \r\n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgVideo = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 1 && (_this.core.s.enableSwipe && _this.core.isTouch || _this.core.s.enableDrag && !_this.core.isTouch)) {\n utils.on(_this.core.el, 'onSlideClick.lgtm', function () {\n var $el = _this.core.___slide[_this.core.index];\n loadOnClick($el);\n });\n } else {\n\n // For IE 9 and bellow\n for (var i = 0; i < _this.core.___slide.length; i++) {\n\n /*jshint loopfunc: true */\n (function (index) {\n utils.on(_this.core.___slide[index], 'click.lg', function () {\n loadOnClick(_this.core.___slide[index]);\n });\n })(i);\n }\n }\n\n utils.on(_this.core.el, 'onBeforeSlide.lgtm', function (event) {\n\n var $videoSlide = _this.core.___slide[event.detail.prevIndex];\n var youtubePlayer = $videoSlide.querySelector('.lg-youtube');\n var vimeoPlayer = $videoSlide.querySelector('.lg-vimeo');\n var dailymotionPlayer = $videoSlide.querySelector('.lg-dailymotion');\n var vkPlayer = $videoSlide.querySelector('.lg-vk');\n var html5Player = $videoSlide.querySelector('.lg-html5');\n if (youtubePlayer) {\n youtubePlayer.contentWindow.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*');\n } else if (vimeoPlayer) {\n try {\n $f(vimeoPlayer).api('pause');\n } catch (e) {\n console.error('Make sure you have included froogaloop2 js');\n }\n } else if (dailymotionPlayer) {\n dailymotionPlayer.contentWindow.postMessage('pause', '*');\n } else if (html5Player) {\n if (_this.core.s.videojs) {\n try {\n videojs(html5Player).pause();\n } catch (e) {\n console.error('Make sure you have included videojs');\n }\n } else {\n html5Player.pause();\n }\n }if (vkPlayer) {\n\n vkPlayer.setAttribute('src', vkPlayer.getAttribute('src').replace('&autoplay', '&noplay'));\n }\n\n var _src;\n if (_this.core.s.dynamic) {\n _src = _this.core.s.dynamicEl[event.detail.index].src;\n } else {\n _src = _this.core.items[event.detail.index].getAttribute('href') || _this.core.items[event.detail.index].getAttribute('data-src');\n }\n\n var _isVideo = _this.core.isVideo(_src, event.detail.index) || {};\n if (_isVideo.youtube || _isVideo.vimeo || _isVideo.dailymotion || _isVideo.vk) {\n utils.addClass(_this.core.outer, 'lg-hide-download');\n }\n\n //$videoSlide.addClass('lg-complete');\n });\n\n utils.on(_this.core.el, 'onAfterSlide.lgtm', function (event) {\n utils.removeClass(_this.core.___slide[event.detail.prevIndex], 'lg-video-playing');\n });\n };\n\n Video.prototype.loadVideo = function (src, addClass, noposter, index, html) {\n var video = '';\n var autoplay = 1;\n var a = '';\n var isVideo = this.core.isVideo(src, index) || {};\n\n // Enable autoplay for first video if poster doesn't exist\n if (noposter) {\n if (this.videoLoaded) {\n autoplay = 0;\n } else {\n autoplay = 1;\n }\n }\n\n if (isVideo.youtube) {\n\n a = '?wmode=opaque&autoplay=' + autoplay + '&enablejsapi=1';\n if (this.core.s.youtubePlayerParams) {\n a = a + '&' + utils.param(this.core.s.youtubePlayerParams);\n }\n\n video = '';\n } else if (isVideo.vimeo) {\n\n a = '?autoplay=' + autoplay + '&api=1';\n if (this.core.s.vimeoPlayerParams) {\n a = a + '&' + utils.param(this.core.s.vimeoPlayerParams);\n }\n\n video = '';\n } else if (isVideo.dailymotion) {\n\n a = '?wmode=opaque&autoplay=' + autoplay + '&api=postMessage';\n if (this.core.s.dailymotionPlayerParams) {\n a = a + '&' + utils.param(this.core.s.dailymotionPlayerParams);\n }\n\n video = '';\n } else if (isVideo.html5) {\n var fL = html.substring(0, 1);\n if (fL === '.' || fL === '#') {\n html = document.querySelector(html).innerHTML;\n }\n\n video = html;\n } else if (isVideo.vk) {\n\n a = '&autoplay=' + autoplay;\n if (this.core.s.vkPlayerParams) {\n a = a + '&' + utils.param(this.core.s.vkPlayerParams);\n }\n\n video = '';\n }\n\n return video;\n };\n\n Video.prototype.destroy = function () {\n this.videoLoaded = false;\n };\n\n window.lgModules.video = Video;\n});\n\n},{}]},{},[1])(1)\n});","/**!\n * lg-fullscreen.js | 1.1.0 | February 23rd 2019\n * http://sachinchoolur.github.io/lg-fullscreen.js\n * Copyright (c) 2016 Sachin N; \n * @license GPLv3 \n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgFullscreen = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 1) {\n this.init();\n }\n\n return this;\n };\n\n Pager.prototype.init = function () {\n var _this = this;\n var pagerList = '';\n var $pagerCont;\n var $pagerOuter;\n var timeout;\n\n _this.core.outer.querySelector('.lg').insertAdjacentHTML('beforeend', '
');\n\n if (_this.core.s.dynamic) {\n for (var j = 0; j < _this.core.s.dynamicEl.length; j++) {\n pagerList += '
';\n }\n } else {\n for (var i = 0; i < _this.core.items.length; i++) {\n if (!_this.core.s.exThumbImage) {\n pagerList += '
';\n } else {\n pagerList += '
';\n }\n }\n }\n\n $pagerOuter = _this.core.outer.querySelector('.lg-pager-outer');\n\n $pagerOuter.innerHTML = pagerList;\n\n $pagerCont = _this.core.outer.querySelectorAll('.lg-pager-cont');\n for (var k = 0; k < $pagerCont.length; k++) {\n\n /*jshint loopfunc: true */\n (function (index) {\n utils.on($pagerCont[index], 'click.lg touchend.lg', function () {\n _this.core.index = index;\n _this.core.slide(_this.core.index, false, false);\n });\n })(k);\n }\n\n utils.on($pagerOuter, 'mouseover.lg', function () {\n clearTimeout(timeout);\n utils.addClass($pagerOuter, 'lg-pager-hover');\n });\n\n utils.on($pagerOuter, 'mouseout.lg', function () {\n timeout = setTimeout(function () {\n utils.removeClass($pagerOuter, 'lg-pager-hover');\n });\n });\n\n utils.on(_this.core.el, 'onBeforeSlide.lgtm', function (e) {\n for (var n = 0; n < $pagerCont.length; n++) {\n utils.removeClass($pagerCont[n], 'lg-pager-active');\n if (e.detail.index === n) {\n utils.addClass($pagerCont[n], 'lg-pager-active');\n }\n }\n });\n };\n\n Pager.prototype.destroy = function () {};\n\n window.lgModules.pager = Pager;\n});\n\n},{}]},{},[1])(1)\n});","/**!\r\n * lg-zoom.js | 1.0.1 | December 22nd 2016\r\n * http://sachinchoolur.github.io/lg-zoom.js\r\n * Copyright (c) 2016 Sachin N; \r\n * @license GPLv3 \r\n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgZoom = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 1) {\n utils.addClass(_this.core.outer, 'lg-zoomed');\n } else {\n _this.resetZoom();\n }\n\n if (scale < 1) {\n scale = 1;\n }\n\n zoom(scale);\n };\n\n var actualSize = function actualSize(event, image, index, fromIcon) {\n var w = image.clientWidth;\n var nw;\n if (_this.core.s.dynamic) {\n nw = _this.core.s.dynamicEl[index].width || image.naturalWidth || w;\n } else {\n nw = _this.core.items[index].getAttribute('data-width') || image.naturalWidth || w;\n }\n\n var _scale;\n\n if (utils.hasClass(_this.core.outer, 'lg-zoomed')) {\n scale = 1;\n } else {\n if (nw > w) {\n _scale = nw / w;\n scale = _scale || 2;\n }\n }\n\n if (fromIcon) {\n _this.pageX = window.innerWidth / 2;\n _this.pageY = window.innerHeight / 2 + (document.documentElement.scrollTop || document.body.scrollTop);\n } else {\n _this.pageX = event.pageX || event.targetTouches[0].pageX;\n _this.pageY = event.pageY || event.targetTouches[0].pageY;\n }\n\n callScale();\n setTimeout(function () {\n utils.removeClass(_this.core.outer, 'lg-grabbing');\n utils.addClass(_this.core.outer, 'lg-grab');\n }, 10);\n };\n\n var tapped = false;\n\n // event triggered after appending slide content\n utils.on(_this.core.el, 'onAferAppendSlide.lgtmzoom', function (event) {\n\n var index = event.detail.index;\n\n // Get the current element\n var image = _this.core.___slide[index].querySelector('.lg-image');\n\n if (!_this.core.isTouch) {\n utils.on(image, 'dblclick', function (event) {\n actualSize(event, image, index);\n });\n }\n\n if (_this.core.isTouch) {\n utils.on(image, 'touchstart', function (event) {\n if (!tapped) {\n tapped = setTimeout(function () {\n tapped = null;\n }, 300);\n } else {\n clearTimeout(tapped);\n tapped = null;\n actualSize(event, image, index);\n }\n\n event.preventDefault();\n });\n }\n });\n\n // Update zoom on resize and orientationchange\n utils.on(window, 'resize.lgzoom scroll.lgzoom orientationchange.lgzoom', function () {\n _this.pageX = window.innerWidth / 2;\n _this.pageY = window.innerHeight / 2 + (document.documentElement.scrollTop || document.body.scrollTop);\n zoom(scale);\n });\n\n utils.on(document.getElementById('lg-zoom-out'), 'click.lg', function () {\n if (_this.core.outer.querySelector('.lg-current .lg-image')) {\n scale -= _this.core.s.scale;\n callScale();\n }\n });\n\n utils.on(document.getElementById('lg-zoom-in'), 'click.lg', function () {\n if (_this.core.outer.querySelector('.lg-current .lg-image')) {\n scale += _this.core.s.scale;\n callScale();\n }\n });\n\n utils.on(document.getElementById('lg-actual-size'), 'click.lg', function (event) {\n actualSize(event, _this.core.___slide[_this.core.index].querySelector('.lg-image'), _this.core.index, true);\n });\n\n // Reset zoom on slide change\n utils.on(_this.core.el, 'onBeforeSlide.lgtm', function () {\n scale = 1;\n _this.resetZoom();\n });\n\n // Drag option after zoom\n if (!_this.core.isTouch) {\n _this.zoomDrag();\n }\n\n if (_this.core.isTouch) {\n _this.zoomSwipe();\n }\n };\n\n // Reset zoom effect\n Zoom.prototype.resetZoom = function () {\n utils.removeClass(this.core.outer, 'lg-zoomed');\n for (var i = 0; i < this.core.___slide.length; i++) {\n if (this.core.___slide[i].querySelector('.lg-img-wrap')) {\n this.core.___slide[i].querySelector('.lg-img-wrap').removeAttribute('style');\n this.core.___slide[i].querySelector('.lg-img-wrap').removeAttribute('data-x');\n this.core.___slide[i].querySelector('.lg-img-wrap').removeAttribute('data-y');\n }\n }\n\n for (var j = 0; j < this.core.___slide.length; j++) {\n if (this.core.___slide[j].querySelector('.lg-image')) {\n this.core.___slide[j].querySelector('.lg-image').removeAttribute('style');\n this.core.___slide[j].querySelector('.lg-image').removeAttribute('data-scale');\n }\n }\n\n // Reset pagx pagy values to center\n this.pageX = window.innerWidth / 2;\n this.pageY = window.innerHeight / 2 + (document.documentElement.scrollTop || document.body.scrollTop);\n };\n\n Zoom.prototype.zoomSwipe = function () {\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isMoved = false;\n\n // Allow x direction drag\n var allowX = false;\n\n // Allow Y direction drag\n var allowY = false;\n\n for (var i = 0; i < _this.core.___slide.length; i++) {\n\n /*jshint loopfunc: true */\n utils.on(_this.core.___slide[i], 'touchstart.lg', function (e) {\n\n if (utils.hasClass(_this.core.outer, 'lg-zoomed')) {\n var image = _this.core.___slide[_this.core.index].querySelector('.lg-object');\n\n allowY = image.offsetHeight * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientHeight;\n allowX = image.offsetWidth * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientWidth;\n if (allowX || allowY) {\n e.preventDefault();\n startCoords = {\n x: e.targetTouches[0].pageX,\n y: e.targetTouches[0].pageY\n };\n }\n }\n });\n }\n\n for (var j = 0; j < _this.core.___slide.length; j++) {\n\n /*jshint loopfunc: true */\n utils.on(_this.core.___slide[j], 'touchmove.lg', function (e) {\n\n if (utils.hasClass(_this.core.outer, 'lg-zoomed')) {\n\n var _el = _this.core.___slide[_this.core.index].querySelector('.lg-img-wrap');\n var distanceX;\n var distanceY;\n\n e.preventDefault();\n isMoved = true;\n\n endCoords = {\n x: e.targetTouches[0].pageX,\n y: e.targetTouches[0].pageY\n };\n\n // reset opacity and transition duration\n utils.addClass(_this.core.outer, 'lg-zoom-dragging');\n\n if (allowY) {\n distanceY = -Math.abs(_el.getAttribute('data-y')) + (endCoords.y - startCoords.y);\n } else {\n distanceY = -Math.abs(_el.getAttribute('data-y'));\n }\n\n if (allowX) {\n distanceX = -Math.abs(_el.getAttribute('data-x')) + (endCoords.x - startCoords.x);\n } else {\n distanceX = -Math.abs(_el.getAttribute('data-x'));\n }\n\n if (Math.abs(endCoords.x - startCoords.x) > 15 || Math.abs(endCoords.y - startCoords.y) > 15) {\n\n if (_this.core.s.useLeftForZoom) {\n _el.style.left = distanceX + 'px';\n _el.style.top = distanceY + 'px';\n } else {\n utils.setVendor(_el, 'Transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n }\n }\n });\n }\n\n for (var k = 0; k < _this.core.___slide.length; k++) {\n\n /*jshint loopfunc: true */\n utils.on(_this.core.___slide[k], 'touchend.lg', function () {\n if (utils.hasClass(_this.core.outer, 'lg-zoomed')) {\n if (isMoved) {\n isMoved = false;\n utils.removeClass(_this.core.outer, 'lg-zoom-dragging');\n _this.touchendZoom(startCoords, endCoords, allowX, allowY);\n }\n }\n });\n }\n };\n\n Zoom.prototype.zoomDrag = function () {\n\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isDraging = false;\n var isMoved = false;\n\n // Allow x direction drag\n var allowX = false;\n\n // Allow Y direction drag\n var allowY = false;\n\n for (var i = 0; i < _this.core.___slide.length; i++) {\n\n /*jshint loopfunc: true */\n utils.on(_this.core.___slide[i], 'mousedown.lgzoom', function (e) {\n\n // execute only on .lg-object\n var image = _this.core.___slide[_this.core.index].querySelector('.lg-object');\n\n allowY = image.offsetHeight * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientHeight;\n allowX = image.offsetWidth * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientWidth;\n\n if (utils.hasClass(_this.core.outer, 'lg-zoomed')) {\n if (utils.hasClass(e.target, 'lg-object') && (allowX || allowY)) {\n e.preventDefault();\n startCoords = {\n x: e.pageX,\n y: e.pageY\n };\n\n isDraging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.core.outer.scrollLeft += 1;\n _this.core.outer.scrollLeft -= 1;\n\n utils.removeClass(_this.core.outer, 'lg-grab');\n utils.addClass(_this.core.outer, 'lg-grabbing');\n }\n }\n });\n }\n\n utils.on(window, 'mousemove.lgzoom', function (e) {\n if (isDraging) {\n var _el = _this.core.___slide[_this.core.index].querySelector('.lg-img-wrap');\n var distanceX;\n var distanceY;\n\n isMoved = true;\n endCoords = {\n x: e.pageX,\n y: e.pageY\n };\n\n // reset opacity and transition duration\n utils.addClass(_this.core.outer, 'lg-zoom-dragging');\n\n if (allowY) {\n distanceY = -Math.abs(_el.getAttribute('data-y')) + (endCoords.y - startCoords.y);\n } else {\n distanceY = -Math.abs(_el.getAttribute('data-y'));\n }\n\n if (allowX) {\n distanceX = -Math.abs(_el.getAttribute('data-x')) + (endCoords.x - startCoords.x);\n } else {\n distanceX = -Math.abs(_el.getAttribute('data-x'));\n }\n\n if (_this.core.s.useLeftForZoom) {\n _el.style.left = distanceX + 'px';\n _el.style.top = distanceY + 'px';\n } else {\n utils.setVendor(_el, 'Transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n }\n });\n\n utils.on(window, 'mouseup.lgzoom', function (e) {\n\n if (isDraging) {\n isDraging = false;\n utils.removeClass(_this.core.outer, 'lg-zoom-dragging');\n\n // Fix for chrome mouse move on click\n if (isMoved && (startCoords.x !== endCoords.x || startCoords.y !== endCoords.y)) {\n endCoords = {\n x: e.pageX,\n y: e.pageY\n };\n _this.touchendZoom(startCoords, endCoords, allowX, allowY);\n }\n\n isMoved = false;\n }\n\n utils.removeClass(_this.core.outer, 'lg-grabbing');\n utils.addClass(_this.core.outer, 'lg-grab');\n });\n };\n\n Zoom.prototype.touchendZoom = function (startCoords, endCoords, allowX, allowY) {\n\n var _this = this;\n var _el = _this.core.___slide[_this.core.index].querySelector('.lg-img-wrap');\n var image = _this.core.___slide[_this.core.index].querySelector('.lg-object');\n var distanceX = -Math.abs(_el.getAttribute('data-x')) + (endCoords.x - startCoords.x);\n var distanceY = -Math.abs(_el.getAttribute('data-y')) + (endCoords.y - startCoords.y);\n var minY = (_this.core.outer.querySelector('.lg').clientHeight - image.offsetHeight) / 2;\n var maxY = Math.abs(image.offsetHeight * Math.abs(image.getAttribute('data-scale')) - _this.core.outer.querySelector('.lg').clientHeight + minY);\n var minX = (_this.core.outer.querySelector('.lg').clientWidth - image.offsetWidth) / 2;\n var maxX = Math.abs(image.offsetWidth * Math.abs(image.getAttribute('data-scale')) - _this.core.outer.querySelector('.lg').clientWidth + minX);\n\n if (Math.abs(endCoords.x - startCoords.x) > 15 || Math.abs(endCoords.y - startCoords.y) > 15) {\n if (allowY) {\n if (distanceY <= -maxY) {\n distanceY = -maxY;\n } else if (distanceY >= -minY) {\n distanceY = -minY;\n }\n }\n\n if (allowX) {\n if (distanceX <= -maxX) {\n distanceX = -maxX;\n } else if (distanceX >= -minX) {\n distanceX = -minX;\n }\n }\n\n if (allowY) {\n _el.setAttribute('data-y', Math.abs(distanceY));\n } else {\n distanceY = -Math.abs(_el.getAttribute('data-y'));\n }\n\n if (allowX) {\n _el.setAttribute('data-x', Math.abs(distanceX));\n } else {\n distanceX = -Math.abs(_el.getAttribute('data-x'));\n }\n\n if (_this.core.s.useLeftForZoom) {\n _el.style.left = distanceX + 'px';\n _el.style.top = distanceY + 'px';\n } else {\n utils.setVendor(_el, 'Transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n }\n };\n\n Zoom.prototype.destroy = function () {\n\n var _this = this;\n\n // Unbind all events added by lightGallery zoom plugin\n utils.off(_this.core.el, '.lgzoom');\n utils.off(window, '.lgzoom');\n for (var i = 0; i < _this.core.___slide.length; i++) {\n utils.off(_this.core.___slide[i], '.lgzoom');\n }\n\n utils.off(_this.core.el, '.lgtmzoom');\n _this.resetZoom();\n clearTimeout(_this.zoomabletimeout);\n _this.zoomabletimeout = false;\n };\n\n window.lgModules.zoom = Zoom;\n});\n\n},{}]},{},[1])(1)\n});","/**!\r\n * lg-hash.js | 1.0.0 | October 5th 2016\r\n * http://sachinchoolur.github.io/lg-hash.js\r\n * Copyright (c) 2016 Sachin N; \r\n * @license GPLv3 \r\n */(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.LgHash = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o';\n shareHtml += _this.core.s.facebook ? '
  • ' + this.core.s.facebookDropdownText + '
  • ' : '';\n shareHtml += _this.core.s.twitter ? '
  • ' + this.core.s.twitterDropdownText + '
  • ' : '';\n shareHtml += _this.core.s.googlePlus ? '
  • ' + this.core.s.googlePlusDropdownText + '
  • ' : '';\n shareHtml += _this.core.s.pinterest ? '
  • ' + this.core.s.pinterestDropdownText + '
  • ' : '';\n shareHtml += '';\n\n this.core.outer.querySelector('.lg-toolbar').insertAdjacentHTML('beforeend', shareHtml);\n this.core.outer.querySelector('.lg').insertAdjacentHTML('beforeend', '
    ');\n utils.on(document.getElementById('lg-share'), 'click.lg', function () {\n if (utils.hasClass(_this.core.outer, 'lg-dropdown-active')) {\n utils.removeClass(_this.core.outer, 'lg-dropdown-active');\n } else {\n utils.addClass(_this.core.outer, 'lg-dropdown-active');\n }\n });\n\n utils.on(document.getElementById('lg-dropdown-overlay'), 'click.lg', function () {\n utils.removeClass(_this.core.outer, 'lg-dropdown-active');\n });\n\n utils.on(_this.core.el, 'onAfterSlide.lgtm', function (event) {\n\n setTimeout(function () {\n if (_this.core.s.facebook) {\n document.getElementById('lg-share-facebook').setAttribute('href', 'https://www.facebook.com/sharer/sharer.php?u=' + _this.getSharePropsUrl(event.detail.index, 'data-facebook-share-url'));\n }\n if (_this.core.s.twitter) {\n document.getElementById('lg-share-twitter').setAttribute('href', 'https://twitter.com/intent/tweet?text=' + _this.getShareProps(event.detail.index, 'data-tweet-text') + '&url=' + _this.getSharePropsUrl(event.detail.index, 'data-twitter-share-url'));\n }\n if (_this.core.s.googlePlus) {\n document.getElementById('lg-share-googleplus').setAttribute('href', 'https://plus.google.com/share?url=' + _this.getSharePropsUrl(event.detail.index, 'data-googleplus-share-url'));\n }\n if (_this.core.s.pinterest) {\n document.getElementById('lg-share-pinterest').setAttribute('href', 'http://www.pinterest.com/pin/create/button/?url=' + _this.getSharePropsUrl(event.detail.index, 'data-pinterest-share-url') + '&media=' + encodeURIComponent(_this.getShareProps(event.detail.index, 'href') || _this.getShareProps(event.detail.index, 'data-src')) + '&description=' + _this.getShareProps(event.detail.index, 'data-pinterest-text'));\n }\n }, 100);\n });\n };\n\n Share.prototype.getSharePropsUrl = function (index, prop) {\n var shareProp = this.getShareProps(index, prop);\n if (!shareProp) {\n shareProp = window.location.href;\n }\n return encodeURIComponent(shareProp);\n };\n\n Share.prototype.getShareProps = function (index, prop) {\n var shareProp = '';\n if (this.core.s.dynamic) {\n shareProp = this.core.items[index][toCamelCase(prop.replace('data-', ''))];\n } else if (this.core.items[index].getAttribute(prop)) {\n shareProp = this.core.items[index].getAttribute(prop);\n }\n return shareProp;\n };\n\n Share.prototype.destroy = function () {};\n\n window.lgModules.share = Share;\n});\n\n},{}]},{},[1])(1)\n});","export const getNextDate = date => new Date(date.getTime() + 24 * 60 * 60 * 1000);\r\n\r\nexport default null;\r\n","import flatpickr from 'flatpickr';\r\nimport locales from 'flatpickr/dist/l10n';\r\nimport { getNextDate } from './utils';\r\n\r\nclass Bookingmask {\r\n constructor(options = {}) {\r\n this.config = {\r\n module: document.querySelectorAll('[data-module=\"Bookingmask\"]'),\r\n displayFormat: 'd/m/Y',\r\n dateFormat: 'd-m-Y',\r\n datepickerType: 'separate',\r\n disableMobile: false,\r\n locale: document.getElementsByTagName('html')[0].getAttribute('lang') || navigator.language,\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const {\r\n module,\r\n displayFormat,\r\n dateFormat,\r\n datepickerType,\r\n locale,\r\n disableMobile\r\n } = this.config;\r\n\r\n module.forEach(bookingmask => {\r\n const checkInDisplay = bookingmask.querySelector('[data-module=\"CheckInDisplay\"]');\r\n const checkInInput = bookingmask.querySelector('[data-module=\"CheckInInput\"]');\r\n const checkOutDisplay = bookingmask.querySelector('[data-module=\"CheckOutDisplay\"]');\r\n const checkOutInput = bookingmask.querySelector('[data-module=\"CheckOutInput\"]');\r\n const dateRangeTrigger = bookingmask.querySelector('[data-module=\"DateRangeTrigger\"]');\r\n const today = new Date();\r\n const tomorrow = getNextDate(today);\r\n\r\n const setCheckInDate = (date, instance) => {\r\n if (!date || !instance) {\r\n return;\r\n }\r\n checkInDisplay.value = instance.formatDate(date, displayFormat);\r\n checkInInput.value = instance.formatDate(date, dateFormat);\r\n };\r\n\r\n const setCheckOutRangeDate = (dates, instance) => {\r\n if (!dates || !instance) {\r\n return;\r\n }\r\n const newCheckOutDate = dates[1] || getNextDate(dates[0]);\r\n checkOutDisplay.value = instance.formatDate(newCheckOutDate, displayFormat);\r\n checkOutInput.value = instance.formatDate(newCheckOutDate, dateFormat);\r\n };\r\n\r\n const setCheckoutDateSeparate = (date, instance) => {\r\n if (!date || !instance) {\r\n return;\r\n }\r\n checkOutDisplay.value = instance.formatDate(date, displayFormat);\r\n checkOutInput.value = instance.formatDate(date, dateFormat);\r\n };\r\n\r\n const onRangeDateChange = (dates, dateStr, instance) => {\r\n setCheckInDate(dates[0], instance);\r\n setCheckOutRangeDate(dates, instance);\r\n };\r\n\r\n const flatPickrOpts = {\r\n dateFormat: displayFormat,\r\n minDate: Date.now(),\r\n disableMobile,\r\n locale: {\r\n ...locales[locale]\r\n },\r\n clickOpens: false\r\n };\r\n\r\n if (checkInDisplay && checkInInput) {\r\n if (checkOutDisplay && checkOutInput) {\r\n if (datepickerType === 'range') {\r\n /**\r\n * Range datepicker\r\n */\r\n flatpickr(checkInDisplay, {\r\n ...flatPickrOpts,\r\n defaultDate: [today, tomorrow],\r\n mode: 'range',\r\n onReady: (selectedDates, dateStr, instance) => {\r\n onRangeDateChange(selectedDates, dateStr, instance);\r\n\r\n if (dateRangeTrigger) {\r\n dateRangeTrigger.addEventListener('click', () => {\r\n instance.toggle();\r\n });\r\n }\r\n },\r\n onOpen: (selectedDates, dateStr, instance) => {\r\n if (!selectedDates.length) {\r\n const inputDates = [\r\n instance.parseDate(checkInInput.value, dateFormat),\r\n instance.parseDate(checkOutInput.value, dateFormat)\r\n ];\r\n instance.setDate(inputDates);\r\n onRangeDateChange(inputDates, dateStr, instance);\r\n }\r\n },\r\n onChange: onRangeDateChange,\r\n onValueUpdate: onRangeDateChange,\r\n onClose: (selectedDates, dateStr, instances) => {\r\n setTimeout(() => onRangeDateChange(selectedDates, dateStr, instances));\r\n }\r\n });\r\n } else {\r\n /**\r\n * Separate datepickers\r\n */\r\n flatpickr(checkInDisplay, {\r\n ...flatPickrOpts,\r\n defaultDate: today,\r\n onReady: (selectedDates, dateStr, instance) => {\r\n setCheckInDate(today, instance);\r\n\r\n checkInDisplay.addEventListener('click', () => {\r\n instance.toggle();\r\n });\r\n },\r\n onChange: (selectedDates, dateStr, instance) => {\r\n const checkInDate = selectedDates[0];\r\n // eslint-disable-next-line no-underscore-dangle\r\n const checkOutInstance = checkOutDisplay._flatpickr;\r\n const checkOutDate = checkOutInstance.selectedDates[0];\r\n const nextDate = getNextDate(checkInDate);\r\n\r\n setCheckInDate(checkInDate, instance);\r\n\r\n checkOutInstance.set('minDate', nextDate);\r\n\r\n if (checkInDate >= checkOutDate) {\r\n checkOutInstance.setDate(nextDate);\r\n setCheckoutDateSeparate(nextDate, checkOutInstance);\r\n }\r\n }\r\n });\r\n\r\n flatpickr(checkOutDisplay, {\r\n ...flatPickrOpts,\r\n defaultDate: tomorrow,\r\n onReady: (selectedDates, dateStr, instance) => {\r\n setCheckoutDateSeparate(selectedDates[0], instance);\r\n instance.set('minDate', selectedDates[0]);\r\n\r\n checkOutDisplay.addEventListener('click', () => {\r\n instance.toggle();\r\n });\r\n },\r\n onChange: (selectedDates, dateStr, instance) => {\r\n setCheckoutDateSeparate(selectedDates[0], instance);\r\n }\r\n });\r\n }\r\n } else {\r\n /**\r\n * Single datepicker\r\n */\r\n flatpickr(checkInDisplay, {\r\n ...flatPickrOpts,\r\n defaultDate: new Date(),\r\n onReady: (selectedDates, dateStr, instance) => {\r\n setCheckInDate(selectedDates[0], instance);\r\n checkInDisplay.addEventListener('click', () => {\r\n instance.toggle();\r\n });\r\n },\r\n onChange: (selectedDates, dateStr, instance) => {\r\n setCheckInDate(selectedDates[0], instance);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default Bookingmask;\r\n","import getScrollbarWidth from '../helpers/scrollbar-width';\r\n\r\nclass MenuToggle {\r\n constructor(options = {}) {\r\n this.config = {\r\n rootModule: document.querySelector('[data-module=\"Header\"]'),\r\n module: document.querySelector('[data-module=\"MenuToggle\"]'),\r\n menuModals: document.querySelectorAll('[data-module=\"MenuModal\"]'),\r\n modalTriggers: document.querySelectorAll('[href^=\"#menuModal=\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const { module, modalTriggers } = this.config;\r\n\r\n if (!module) {\r\n return;\r\n }\r\n\r\n module.addEventListener('click', this.toggleMenu.bind(this));\r\n window.addEventListener('resize', this.reset.bind(this));\r\n\r\n modalTriggers.forEach(trigger =>\r\n trigger.addEventListener('click', this.triggerModal.bind(this))\r\n );\r\n }\r\n\r\n destroy() {\r\n const { module, modalTriggers } = this.config;\r\n\r\n this.reset();\r\n module.removeEventListener('click', this.toggleMenu.bind(this));\r\n window.removeEventListener('resize', this.reset.bind(this));\r\n\r\n modalTriggers.forEach(trigger =>\r\n trigger.removeEventListener('click', this.triggerModal.bind(this))\r\n );\r\n }\r\n\r\n toggleAnimationState() {\r\n this.isAnimating = !this.isAnimating;\r\n }\r\n\r\n toggleMenu(e) {\r\n e.preventDefault();\r\n this.toggle('menu', e.currentTarget.classList.contains('is-open'));\r\n }\r\n\r\n triggerModal(e) {\r\n const modalId = e.currentTarget.getAttribute('href').split('#menuModal=')[1];\r\n e.preventDefault();\r\n this.toggle(modalId);\r\n }\r\n\r\n async toggle(modalId, forceClose) {\r\n const { menuModals } = this.config;\r\n const modalList = Array.from(menuModals);\r\n const menuModal = modalList.find(modal => modal.dataset.modalId === modalId);\r\n const openModal = modalList.find(modal => !!modal.classList.contains('is-open'));\r\n\r\n if (this.isAnimating || !menuModal) {\r\n return;\r\n }\r\n\r\n if (forceClose) {\r\n this.animateModal(openModal);\r\n } else if (openModal && openModal !== menuModal) {\r\n await this.animateModal(openModal);\r\n this.animateModal(menuModal);\r\n } else {\r\n this.animateModal(menuModal);\r\n }\r\n }\r\n\r\n animateModal(menuModal) {\r\n const { module } = this.config;\r\n\r\n return new Promise(resolve => {\r\n this.toggleAnimationState();\r\n menuModal.classList.toggle('is-open');\r\n\r\n if (module.classList.contains('is-open')) {\r\n module.classList.replace('is-open', 'is-half-open');\r\n setTimeout(() => {\r\n module.classList.remove('is-half-open');\r\n document.body.style.paddingRight = '';\r\n document.body.style.overflow = '';\r\n }, 250);\r\n } else {\r\n module.classList.add('is-half-open');\r\n setTimeout(() => {\r\n module.classList.replace('is-half-open', 'is-open');\r\n document.body.style.paddingRight = `${getScrollbarWidth()}px`;\r\n document.body.style.overflow = 'hidden';\r\n }, 250);\r\n }\r\n\r\n setTimeout(() => {\r\n this.toggleAnimationState();\r\n resolve();\r\n }, 500);\r\n });\r\n }\r\n\r\n reset() {\r\n const { module, menuModals } = this.config;\r\n\r\n [module, ...menuModals].forEach(el => el.classList.remove('is-open'));\r\n document.body.style.paddingRight = '';\r\n document.body.style.overflow = '';\r\n }\r\n}\r\n\r\nexport default MenuToggle;\r\n","export default () => window.innerWidth - document.documentElement.clientWidth;\r\n","import getSiblings from '../helpers/siblings';\r\n\r\nclass SubmenuToggle {\r\n constructor(options = {}) {\r\n this.config = {\r\n rootModule: document.querySelector('[data-module=\"Header\"]'),\r\n module: document.querySelectorAll('[data-module=\"SubmenuToggle\"]'),\r\n menus: document.querySelectorAll('[data-module=\"Menu\"]'),\r\n desktopMenuBreakpoint: 992,\r\n openUrlOnToggle: false,\r\n ...options\r\n };\r\n }\r\n\r\n get isDesktopMenu() {\r\n return window.innerWidth >= this.config.desktopMenuBreakpoint;\r\n }\r\n\r\n init() {\r\n const { module, menus } = this.config;\r\n\r\n if (!module.length || !menus.length) {\r\n return;\r\n }\r\n\r\n module.forEach(submenuToggle => {\r\n const parent = submenuToggle.parentNode;\r\n\r\n submenuToggle.addEventListener('touchend', this.toggle.bind(this));\r\n submenuToggle.addEventListener('click', this.toggle.bind(this));\r\n parent.addEventListener('mouseover', this.open.bind(this));\r\n parent.addEventListener('mouseout', this.close.bind(this));\r\n });\r\n\r\n window.addEventListener('resize', this.reset.bind(this));\r\n document.addEventListener('click', this.onDocumentClick.bind(this));\r\n }\r\n\r\n destroy() {\r\n const { module } = this.config;\r\n\r\n this.reset();\r\n\r\n module.forEach(submenuToggle => {\r\n const parent = submenuToggle.parentNode;\r\n\r\n submenuToggle.removeEventListener('touchend', this.toggle.bind(this));\r\n submenuToggle.removeEventListener('click', this.toggle.bind(this));\r\n parent.removeEventListener('mouseover', this.open.bind(this));\r\n parent.removeEventListener('mouseout', this.close.bind(this));\r\n });\r\n\r\n window.removeEventListener('resize', this.reset.bind(this));\r\n document.removeEventListener('click', this.onDocumentClick.bind(this));\r\n }\r\n\r\n getMenu(el) {\r\n if (el === this.config.rootModule) {\r\n return null;\r\n }\r\n\r\n if (el.dataset.module && el.dataset.module === 'Menu') {\r\n return el;\r\n }\r\n\r\n return this.getMenu(el.parentNode);\r\n }\r\n\r\n onDocumentClick(e) {\r\n const { module, menus } = this.config;\r\n\r\n let normalLinks = [];\r\n\r\n menus.forEach(menu => {\r\n normalLinks = [\r\n ...normalLinks,\r\n ...menu.querySelectorAll('a:not([data-module=\"SubmenuToggle\"])')\r\n ];\r\n });\r\n\r\n if (\r\n !Array.from(module).find(submenuToggle => submenuToggle === e.target) &&\r\n !Array.from(normalLinks).find(normalLink => normalLink === e.target)\r\n ) {\r\n module.forEach(submenuToggle => submenuToggle.parentNode.classList.remove('is-open'));\r\n }\r\n }\r\n\r\n reset() {\r\n const { module } = this.config;\r\n\r\n module.forEach(submenuToggle => submenuToggle.parentNode.classList.remove('is-open'));\r\n }\r\n\r\n toggle(e) {\r\n const { menus, openUrlOnToggle } = this.config;\r\n const parent = e.target.parentNode;\r\n\r\n e.preventDefault();\r\n\r\n if (e.target.dataset.hasNestedSubmenu) {\r\n e.stopPropagation();\r\n }\r\n\r\n if (\r\n parent.classList.contains('is-open') &&\r\n openUrlOnToggle &&\r\n e.target.dataset.disableUrl === undefined\r\n ) {\r\n window.open(e.target.getAttribute('href'), e.target.getAttribute('target') || '_self');\r\n }\r\n\r\n parent.classList.toggle('is-open');\r\n parent.querySelectorAll('.is-open').forEach(child => child.classList.remove('is-open'));\r\n\r\n getSiblings(parent).forEach(sibling => {\r\n sibling.classList.remove('is-open');\r\n sibling.querySelectorAll('.is-open').forEach(child => child.classList.remove('is-open'));\r\n });\r\n\r\n menus.forEach(menu => {\r\n if (menu !== this.getMenu(e.target)) {\r\n menu.querySelectorAll('.is-open').forEach(el => el.classList.remove('is-open'));\r\n }\r\n });\r\n }\r\n\r\n open(e) {\r\n if (this.isDesktopMenu) {\r\n e.preventDefault();\r\n e.currentTarget.classList.add('is-open');\r\n }\r\n }\r\n\r\n close(e) {\r\n if (this.isDesktopMenu) {\r\n e.preventDefault();\r\n e.currentTarget.classList.remove('is-open');\r\n }\r\n }\r\n}\r\n\r\nexport default SubmenuToggle;\r\n","export default el => {\r\n const siblings = [];\r\n let sibling = el.parentNode.firstChild;\r\n\r\n while (sibling) {\r\n if (sibling.nodeType === 1 && sibling !== el) {\r\n siblings.push(sibling);\r\n }\r\n\r\n sibling = sibling.nextSibling;\r\n }\r\n\r\n return siblings;\r\n};\r\n","import MenuToggle from './components/menu-toggle';\r\nimport SubmenuToggle from './components/submenu-toggle';\r\n\r\nclass Header {\r\n constructor(options = {}) {\r\n this.config = {\r\n module: document.querySelector('[data-module=\"Header\"]'),\r\n menuToggle: new MenuToggle(options),\r\n submenuToggle: new SubmenuToggle(options),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const { module, menuToggle, submenuToggle } = this.config;\r\n\r\n if (!module) {\r\n return;\r\n }\r\n\r\n menuToggle.init();\r\n submenuToggle.init();\r\n\r\n this.disableTransitions();\r\n\r\n window.addEventListener('resize', this.disableTransitions.bind(this));\r\n }\r\n\r\n destroy() {\r\n const { menuToggle, submenuToggle } = this.config;\r\n\r\n menuToggle.destroy();\r\n submenuToggle.destroy();\r\n\r\n this.disableTransitions();\r\n\r\n window.removeEventListener('resize', this.disableTransitions.bind(this));\r\n }\r\n\r\n disableTransitions() {\r\n const { module } = this.config;\r\n\r\n module.classList.add('no-transition');\r\n setTimeout(() => module.classList.remove('no-transition'));\r\n }\r\n}\r\n\r\nexport default Header;\r\n","import flatpickr from 'flatpickr';\r\nimport locales from 'flatpickr/dist/l10n';\r\n\r\nclass Iibe {\r\n constructor(options = {}) {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"Iibe\"]'),\r\n formModule: document.querySelector('#iibeFormModal'),\r\n today: new Date(),\r\n timeoutDelay: 500,\r\n ...options\r\n };\r\n\r\n this.timeout = null;\r\n }\r\n\r\n /**\r\n * When a book button is clicked\r\n * Get values from button data attributes And fill form with these values\r\n * Opening form modal is handled with Bootstrap\r\n * @param e\r\n */\r\n onButtonClick(e) {\r\n const { formModule } = this.config;\r\n\r\n e.preventDefault();\r\n\r\n if (!formModule) {\r\n return;\r\n }\r\n\r\n const btn = e.target;\r\n const roomIdField = formModule.querySelector('[name=\"roomId\"]');\r\n const dateField = formModule.querySelector('[name=\"date\"]');\r\n const nightsField = formModule.querySelector('[name=\"nights\"]');\r\n const roomField = formModule.querySelector('[name=\"room\"]');\r\n const priceField = formModule.querySelector('[name=\"price\"]');\r\n\r\n if (!roomIdField || !dateField || !nightsField || !roomField || !priceField) {\r\n return;\r\n }\r\n\r\n roomIdField.value = btn.dataset.iibeRoomId;\r\n dateField.value = btn.dataset.iibeDate;\r\n nightsField.value = btn.dataset.iibeNights;\r\n roomField.value = btn.dataset.iibeRoom;\r\n priceField.value = btn.dataset.iibePrice;\r\n }\r\n\r\n /**\r\n * When API call is successful\r\n * HTML is returned which contains book button\r\n * Always remove old event listeners and create new ones to trigger onButtonClick\r\n * @param module\r\n */\r\n createButtonListeners(module) {\r\n module.querySelectorAll('[data-module=\"IibeBookButton\"]').forEach(button => {\r\n button.removeEventListener('click', this.onButtonClick.bind(this));\r\n });\r\n\r\n setTimeout(() => {\r\n module.querySelectorAll('[data-module=\"IibeBookButton\"]').forEach(button => {\r\n button.addEventListener('click', this.onButtonClick.bind(this));\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Remove load state from module\r\n * Used when API call failed or was successful\r\n * @param module\r\n */\r\n removeLoader(module) {\r\n setTimeout(() => {\r\n module.classList.remove('is-loading');\r\n }, this.config.timeoutDelay);\r\n }\r\n\r\n /**\r\n * Check if given date equals today\r\n * @param date\r\n * @returns {boolean}\r\n */\r\n isToday(date) {\r\n if (!date) return false;\r\n const { today } = this.config;\r\n return date.getDate() === today.getDate();\r\n }\r\n\r\n /**\r\n * Get room options based on selected date and nights\r\n * Make API call and update DOM with new room options HTML\r\n * Called on first page load and when date/nights has been changed\r\n * @param module\r\n */\r\n getOptions(module) {\r\n const { roomId } = module.dataset;\r\n const dateValue = module.querySelector('[data-module=\"IibeDateValue\"]');\r\n const nightsValue = module.querySelector('[data-module=\"IibeNightsValue\"]');\r\n const resultsContainer = module.querySelector('[data-module=\"IibeResults\"]');\r\n\r\n if (!roomId || !dateValue || !nightsValue || !resultsContainer) return;\r\n\r\n const url = `/api/v1/hotel/day?room=${roomId}&days=${nightsValue.value}&date=${\r\n dateValue.value\r\n }`;\r\n\r\n module.classList.remove('is-error');\r\n module.classList.add('is-loading');\r\n\r\n fetch(url, { method: 'GET' })\r\n .then(response => {\r\n if (response.ok) {\r\n return response.text();\r\n }\r\n throw new Error(response.statusText);\r\n })\r\n .then(html => {\r\n resultsContainer.innerHTML = html;\r\n this.createButtonListeners(module);\r\n this.removeLoader(module);\r\n module.classList.add('is-success');\r\n })\r\n .catch(() => {\r\n resultsContainer.innerHTML = `\r\n

    \r\n ${module.dataset.apiErrorMessage || 'No rooms available.'}\r\n

    `;\r\n\r\n this.removeLoader(module);\r\n module.classList.remove('is-success');\r\n module.classList.add('is-error');\r\n });\r\n }\r\n\r\n /**\r\n * Triggers getOptions after a configured delay\r\n * This to prevent overloading the API with every date or nights change\r\n * For better performance and UX\r\n * @param module\r\n */\r\n onChangeDebounce(module) {\r\n const { timeoutDelay } = this.config;\r\n\r\n if (this.timeout) {\r\n clearTimeout(this.timeout);\r\n }\r\n\r\n this.timeout = setTimeout(() => {\r\n this.getOptions(module);\r\n }, timeoutDelay);\r\n }\r\n\r\n init() {\r\n const { moduleList, today } = this.config;\r\n const htmlLang = document.getElementsByTagName('html')[0].getAttribute('lang');\r\n const locale = htmlLang || navigator.language;\r\n const tomorrow = new Date(today);\r\n tomorrow.setDate(today.getDate() + 1);\r\n\r\n moduleList.forEach(module => {\r\n const dateIncrementer = module.querySelector('[data-module=\"IibeDateIncrementer\"]');\r\n const dateDecrementer = module.querySelector('[data-module=\"IibeDateDecrementer\"]');\r\n const dateValue = module.querySelector('[data-module=\"IibeDateValue\"]');\r\n const nightsIncrementer = module.querySelector('[data-module=\"IibeNightsIncrementer\"]');\r\n const nightsDecrementer = module.querySelector('[data-module=\"IibeNightsDecrementer\"]');\r\n const nightsValue = module.querySelector('[data-module=\"IibeNightsValue\"]');\r\n\r\n if (\r\n !dateIncrementer ||\r\n !dateDecrementer ||\r\n !dateValue ||\r\n !nightsIncrementer ||\r\n !nightsDecrementer ||\r\n !nightsValue\r\n ) {\r\n return;\r\n }\r\n\r\n flatpickr(dateValue, {\r\n altInput: true,\r\n altFormat: 'd M',\r\n altInputClass: '',\r\n dateFormat: 'Y-m-d',\r\n defaultDate: tomorrow,\r\n minDate: today,\r\n disableMobile: true,\r\n locale: {\r\n ...locales[locale]\r\n },\r\n onChange: () => this.getOptions(module),\r\n\r\n // Activate incrementers/decrementers only when flatpickr is fully initiated\r\n // To prevent bugs/crashes\r\n onReady: (selectedDates, dateStr, instance) => {\r\n // Increment date with a debounce (delay)\r\n // Remove disabled state when date is after today\r\n dateIncrementer.addEventListener('click', () => {\r\n const currentDate = instance.selectedDates[0];\r\n if (!currentDate) return;\r\n const nextDate = new Date(currentDate);\r\n nextDate.setDate(nextDate.getDate() + 1);\r\n instance.setDate(nextDate);\r\n\r\n if (nextDate.getDate() > today.getDate()) {\r\n dateDecrementer.removeAttribute('disabled');\r\n }\r\n\r\n this.onChangeDebounce(module);\r\n });\r\n\r\n // Decrement date with a debounce (delay)\r\n // Disable when date is today\r\n dateDecrementer.addEventListener('click', () => {\r\n const currentDate = instance.selectedDates[0];\r\n if (!currentDate || this.isToday(currentDate)) return;\r\n const prevDate = new Date(currentDate);\r\n prevDate.setDate(prevDate.getDate() - 1);\r\n instance.setDate(this.isToday(prevDate) ? today : prevDate);\r\n\r\n if (this.isToday(prevDate)) {\r\n dateDecrementer.setAttribute('disabled', 'true');\r\n }\r\n\r\n this.onChangeDebounce(module);\r\n });\r\n\r\n // Increment night with a debounce (delay)\r\n // Remove disabled state when nights is bigger than 1\r\n nightsIncrementer.addEventListener('click', () => {\r\n nightsValue.value = +nightsValue.value + 1;\r\n\r\n if (+nightsValue.value > 1) {\r\n nightsDecrementer.removeAttribute('disabled');\r\n }\r\n\r\n this.onChangeDebounce(module);\r\n });\r\n\r\n // Decrement night with a debounce (delay)\r\n // Disabled when nights is 1\r\n nightsDecrementer.addEventListener('click', () => {\r\n if (+nightsValue.value === 1) return;\r\n nightsValue.value = +nightsValue.value - 1;\r\n\r\n if (+nightsValue.value === 1) {\r\n nightsDecrementer.setAttribute('disabled', 'true');\r\n }\r\n\r\n this.onChangeDebounce(module);\r\n });\r\n\r\n // Get room options on first page load\r\n this.getOptions(module);\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default Iibe;\r\n","import customSelect from 'custom-select';\r\n\r\nclass SelectDropdown {\r\n constructor() {\r\n this.config = {\r\n module: document.querySelectorAll('[data-module=\"SelectDropdown\"]')\r\n };\r\n }\r\n\r\n init() {\r\n const { module } = this.config;\r\n\r\n if (\r\n !module.length ||\r\n !!(\r\n 'ontouchstart' in window ||\r\n (window.DocumentTouch && document instanceof window.DocumentTouch)\r\n )\r\n ) {\r\n return;\r\n }\r\n\r\n customSelect(module, {\r\n containerClass: 'c-select-dropdown',\r\n openerClass: 'c-select-dropdown__opener',\r\n panelClass: 'c-select-dropdown__panel',\r\n optionClass: 'c-select-dropdown__option',\r\n optgroupClass: 'c-select-dropdown__option-group'\r\n });\r\n }\r\n}\r\n\r\nexport default SelectDropdown;\r\n","import SVGInject from '@iconfu/svg-inject';\r\n\r\nclass SvgIcon {\r\n constructor(options = {}) {\r\n this.config = {\r\n module: document.querySelectorAll('[data-module=\"SvgIcon\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n SVGInject(this.config.module);\r\n }\r\n}\r\n\r\nexport default SvgIcon;\r\n","import Headroom from 'headroom.js';\r\n\r\nclass ScrollHeader {\r\n constructor(options = {}) {\r\n this.config = {\r\n module: document.querySelector('[data-module=\"Header\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n if (!this.config.module) {\r\n return;\r\n }\r\n\r\n const headroom = new Headroom(this.config.module, {\r\n offset: 100,\r\n tolerance: 5\r\n });\r\n\r\n headroom.init();\r\n }\r\n}\r\n\r\nexport default ScrollHeader;\r\n","import Cookies from 'js-cookie';\r\n\r\nclass ClearCache {\r\n constructor() {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"ClearCache\"]')\r\n };\r\n }\r\n\r\n init() {\r\n const { moduleList } = this.config;\r\n\r\n moduleList.forEach(module => {\r\n module.addEventListener('click', e => {\r\n e.preventDefault();\r\n\r\n const token = Cookies.get('token');\r\n\r\n if (!token) {\r\n return;\r\n }\r\n\r\n fetch('/api/v1/cache/clear', {\r\n method: 'POST',\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }).then(res => {\r\n if (res.status === 200) {\r\n document.location.reload();\r\n }\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default ClearCache;\r\n","import Cookies from 'js-cookie';\r\n\r\nclass CookieBar {\r\n constructor(options = {}) {\r\n this.config = {\r\n expireDays: 365,\r\n cookiePath: '/',\r\n module: document.querySelector('[data-module=\"CookieBar\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const { module, expireDays, cookiePath } = this.config;\r\n\r\n if (!this.config.module) {\r\n return;\r\n }\r\n\r\n const button = module.querySelector('[type=\"submit\"]');\r\n\r\n if (!button) {\r\n return;\r\n }\r\n\r\n button.addEventListener('click', e => {\r\n const approvedCookies = Array.from(\r\n module.querySelectorAll('input[type=\"checkbox\"]:checked')\r\n ).map(checkbox => checkbox.getAttribute('name'));\r\n\r\n e.preventDefault();\r\n\r\n Cookies.set('png_consentGiven', 'true', {\r\n expires: expireDays,\r\n path: cookiePath\r\n });\r\n\r\n if (approvedCookies.length) {\r\n Cookies.set('png_approvedCookies', approvedCookies.join(','), {\r\n expires: expireDays,\r\n path: cookiePath\r\n });\r\n }\r\n\r\n window.location.reload();\r\n });\r\n }\r\n}\r\n\r\nexport default CookieBar;\r\n","/* global lightGallery */\r\nimport 'lightgallery.js';\r\n\r\n// Light gallery submodules: remove one or more to disable\r\nimport 'lg-thumbnail.js';\r\nimport 'lg-autoplay.js';\r\nimport 'lg-video.js';\r\nimport 'lg-fullscreen.js';\r\nimport 'lg-pager.js';\r\nimport 'lg-zoom.js';\r\nimport 'lg-hash.js';\r\nimport 'lg-share.js';\r\n\r\nclass LightGallery {\r\n constructor(options = {}) {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"LightGallery\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const { moduleList } = this.config;\r\n\r\n moduleList.forEach(module => {\r\n lightGallery(module, {\r\n actualSize: false,\r\n autoplayControls: false,\r\n download: false,\r\n fullScreen: false,\r\n selector: '.js-lightgallery-item',\r\n share: false,\r\n showThumbByDefault: false\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default LightGallery;\r\n","class Sticky {\r\n constructor(options = {}) {\r\n this.config = {\r\n velocity: 0,\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n this.checkScrollPosition();\r\n window.addEventListener('scroll', this.checkScrollPosition.bind(this));\r\n }\r\n\r\n checkScrollPosition() {\r\n const { velocity } = this.config;\r\n\r\n if (window.pageYOffset >= velocity) {\r\n document.body.classList.add('is-sticky');\r\n } else {\r\n document.body.classList.remove('is-sticky');\r\n }\r\n }\r\n}\r\n\r\nexport default Sticky;\r\n","class Video {\r\n constructor(options = {}) {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"Video\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n static toggleSound(status, player) {\r\n player.setVolume(status ? 1 : 0);\r\n }\r\n\r\n static isVimeo(iframe) {\r\n return iframe.src.includes('vimeo.com');\r\n }\r\n\r\n init() {\r\n const { moduleList } = this.config;\r\n\r\n moduleList.forEach(module => {\r\n const iframe = module.querySelector('iframe');\r\n let player;\r\n\r\n if (!iframe.src.includes('autoplay=1') || iframe.src.includes('youtube.com')) {\r\n return;\r\n }\r\n\r\n if (Video.isVimeo(iframe)) {\r\n const vimeo = new Vimeo.Player(iframe); // eslint-disable-line no-undef\r\n\r\n player = {\r\n instance: vimeo,\r\n setVolume: amount => vimeo.setVolume(amount)\r\n };\r\n }\r\n\r\n // controls\r\n const controls = module.querySelector('[data-child-module=\"VideoControls\"]');\r\n const mute = controls.querySelector('.js-soundtoggle-mute');\r\n const unmute = controls.querySelector('.js-soundtoggle-unmute');\r\n\r\n // display sound toggle if video has autoplay\r\n unmute.classList.remove('hidden');\r\n\r\n mute.addEventListener('click', () => {\r\n mute.classList.add('hidden');\r\n unmute.classList.remove('hidden');\r\n Video.toggleSound(false, player);\r\n });\r\n\r\n unmute.addEventListener('click', () => {\r\n unmute.classList.add('hidden');\r\n mute.classList.remove('hidden');\r\n Video.toggleSound(true, player);\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default Video;\r\n","// Robert Penner's easeInOutQuad\n\n// find the rest of his easing functions here: http://robertpenner.com/easing/\n// find them exported for ES6 consumption here: https://github.com/jaxgeller/ez.js\n\nvar easeInOutQuad = function easeInOutQuad(t, b, c, d) {\n t /= d / 2;\n if (t < 1) return c / 2 * t * t + b;\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n};\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar jumper = function jumper() {\n // private variable cache\n // no variables are created during a jump, preventing memory leaks\n\n var element = void 0; // element to scroll to (node)\n\n var start = void 0; // where scroll starts (px)\n var stop = void 0; // where scroll stops (px)\n\n var offset = void 0; // adjustment from the stop position (px)\n var easing = void 0; // easing function (function)\n var a11y = void 0; // accessibility support flag (boolean)\n\n var distance = void 0; // distance of scroll (px)\n var duration = void 0; // scroll duration (ms)\n\n var timeStart = void 0; // time scroll started (ms)\n var timeElapsed = void 0; // time spent scrolling thus far (ms)\n\n var next = void 0; // next scroll position (px)\n\n var callback = void 0; // to call when done scrolling (function)\n\n // scroll position helper\n\n function location() {\n return window.scrollY || window.pageYOffset;\n }\n\n // element offset helper\n\n function top(element) {\n return element.getBoundingClientRect().top + start;\n }\n\n // rAF loop helper\n\n function loop(timeCurrent) {\n // store time scroll started, if not started already\n if (!timeStart) {\n timeStart = timeCurrent;\n }\n\n // determine time spent scrolling so far\n timeElapsed = timeCurrent - timeStart;\n\n // calculate next scroll position\n next = easing(timeElapsed, start, distance, duration);\n\n // scroll to it\n window.scrollTo(0, next);\n\n // check progress\n timeElapsed < duration ? window.requestAnimationFrame(loop) // continue scroll loop\n : done(); // scrolling is done\n }\n\n // scroll finished helper\n\n function done() {\n // account for rAF time rounding inaccuracies\n window.scrollTo(0, start + distance);\n\n // if scrolling to an element, and accessibility is enabled\n if (element && a11y) {\n // add tabindex indicating programmatic focus\n element.setAttribute('tabindex', '-1');\n\n // focus the element\n element.focus();\n }\n\n // if it exists, fire the callback\n if (typeof callback === 'function') {\n callback();\n }\n\n // reset time for next jump\n timeStart = false;\n }\n\n // API\n\n function jump(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // resolve options, or use defaults\n duration = options.duration || 1000;\n offset = options.offset || 0;\n callback = options.callback; // \"undefined\" is a suitable default, and won't be called\n easing = options.easing || easeInOutQuad;\n a11y = options.a11y || false;\n\n // cache starting position\n start = location();\n\n // resolve target\n switch (typeof target === 'undefined' ? 'undefined' : _typeof(target)) {\n // scroll from current position\n case 'number':\n element = undefined; // no element to scroll to\n a11y = false; // make sure accessibility is off\n stop = start + target;\n break;\n\n // scroll to element (node)\n // bounding rect is relative to the viewport\n case 'object':\n element = target;\n stop = top(element);\n break;\n\n // scroll to element (selector)\n // bounding rect is relative to the viewport\n case 'string':\n element = document.querySelector(target);\n stop = top(element);\n break;\n }\n\n // resolve scroll distance, accounting for offset\n distance = stop - start + offset;\n\n // resolve duration\n switch (_typeof(options.duration)) {\n // number in ms\n case 'number':\n duration = options.duration;\n break;\n\n // function passed the distance of the scroll\n case 'function':\n duration = options.duration(distance);\n break;\n }\n\n // start the loop\n window.requestAnimationFrame(loop);\n }\n\n // expose only the jump method\n return jump;\n};\n\n// export singleton\n\nvar singleton = jumper();\n\nexport default singleton;\n","import jump from 'jump.js';\r\n\r\nclass SmoothScroll {\r\n constructor(options = {}) {\r\n this.config = {\r\n moduleList: document.querySelectorAll('[data-module=\"SmoothScroll\"]'),\r\n header: document.querySelector('[data-module=\"Header\"]'),\r\n ...options\r\n };\r\n }\r\n\r\n init() {\r\n const { moduleList, header } = this.config;\r\n\r\n moduleList.forEach(module => {\r\n module.addEventListener('click', e => {\r\n e.preventDefault();\r\n\r\n const id = module.getAttribute('href');\r\n const target = document.querySelector(id);\r\n const headerOffset = header ? header.getBoundingClientRect().height : 0;\r\n\r\n if (!target) {\r\n return;\r\n }\r\n\r\n jump(target, {\r\n duration: 500,\r\n offset: -(headerOffset + 50)\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default SmoothScroll;\r\n","import 'jquery-ajax-unobtrusive';\r\nimport '../../../scss/sites/default/default-style.scss';\r\nimport Bookingmask from '@png/npm-bookingmask';\r\nimport Header from '@png/npm-header';\r\nimport Iibe from '@png/npm-iibe';\r\nimport SelectDropdown from '@png/npm-select-dropdown';\r\nimport SvgIcon from '@png/npm-svg-icon';\r\nimport ScrollHeader from '../../modules/scroll-header';\r\nimport ClearCache from '../../modules/clear-cache';\r\nimport CookieBar from '../../modules/cookie-bar';\r\nimport LightGallery from '../../modules/light-gallery';\r\nimport Sticky from '../../modules/sticky';\r\nimport Video from '../../modules/video';\r\nimport SmoothScroll from '../../modules/smooth-scroll';\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n const modules = [\r\n new Bookingmask({\r\n displayFormat: 'd/m/Y',\r\n dateFormat: 'Y-m-d',\r\n datepickerType: 'separate',\r\n disableMobile: false\r\n }),\r\n new Header({\r\n desktopMenuBreakpoint: 992,\r\n openUrlOnToggle: false\r\n }),\r\n new Iibe(),\r\n new SelectDropdown(),\r\n new SvgIcon(),\r\n new ScrollHeader(),\r\n new ClearCache(),\r\n new CookieBar(),\r\n new LightGallery(),\r\n new Sticky({\r\n velocity: 500\r\n }),\r\n new Video(),\r\n new SmoothScroll()\r\n ];\r\n\r\n modules.forEach(module => {\r\n if (module && module.init) {\r\n module.init();\r\n }\r\n });\r\n});\r\n","/*!\n * JavaScript Cookie v2.2.0\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader = false;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api (key, value, attributes) {\n\t\t\tvar result;\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Write\n\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tattributes = extend({\n\t\t\t\t\tpath: '/'\n\t\t\t\t}, api.defaults, attributes);\n\n\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\tvar expires = new Date();\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n\t\t\t\t\tattributes.expires = expires;\n\t\t\t\t}\n\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\t\ttry {\n\t\t\t\t\tresult = JSON.stringify(value);\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\n\t\t\t\tif (!converter.write) {\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\t\t\t} else {\n\t\t\t\t\tvalue = converter.write(value, key);\n\t\t\t\t}\n\n\t\t\t\tkey = encodeURIComponent(String(key));\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\n\n\t\t\t\tvar stringifiedAttributes = '';\n\n\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\n\t\t\t\t}\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t}\n\n\t\t\t// Read\n\n\t\t\tif (!key) {\n\t\t\t\tresult = {};\n\t\t\t}\n\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t\t// calling \"get()\"\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\n\t\t\t\t\tcookie = converter.read ?\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\n\n\t\t\t\t\tif (this.json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tresult = cookie;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!key) {\n\t\t\t\t\t\tresult[name] = cookie;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tapi.set = api;\n\t\tapi.get = function (key) {\n\t\t\treturn api.call(api, key);\n\t\t};\n\t\tapi.getJSON = function () {\n\t\t\treturn api.apply({\n\t\t\t\tjson: true\n\t\t\t}, [].slice.call(arguments));\n\t\t};\n\t\tapi.defaults = {};\n\n\t\tapi.remove = function (key, attributes) {\n\t\t\tapi(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","/* flatpickr v4.5.7, @license MIT */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.flatpickr = factory());\n}(this, function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n ];\n var defaults = {\n _disable: [],\n _enable: [],\n allowInput: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enable: [],\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n // Thursday in current week decides the year.\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n // January 4 is always in week 1.\n var week1 = new Date(date.getFullYear(), 0, 4);\n // Adjust to Thursday in week 1 and count number of weeks from date to week1.\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false\n };\n\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ]\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\"\n };\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 do_nothing = function () { return undefined; };\n var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\n var revFormat = {\n D: do_nothing,\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) {\n var weekNumber = parseInt(weekNum);\n return new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\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: do_nothing,\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: do_nothing,\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 date_orig = 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: \" + date_orig));\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({}, flatpickr.defaultConfig),\n l10n: english\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\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 min_hr = self.config.minDate.getHours();\n var min_minutes = self.config.minDate.getMinutes();\n hours = Math.max(hours, min_hr);\n if (hours === min_hr)\n minutes = Math.max(min_minutes, minutes);\n if (hours === min_hr && minutes === min_minutes)\n seconds = self.config.minDate.getSeconds();\n }\n if (self.config.maxDate !== undefined) {\n var max_hr = self.config.maxDate.getHours();\n var max_minutes = self.config.maxDate.getMinutes();\n hours = Math.min(hours, max_hr);\n if (hours === max_hr)\n minutes = Math.min(max_minutes, minutes);\n if (hours === max_hr && minutes === max_minutes)\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.static)\n bind(self._input, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"click\", 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 */\n function jumpToDate(jumpDate) {\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 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 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(\"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 buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement = createElement(\"span\", \"cur-month\");\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, \"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, \"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 self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\");\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 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, is_offset) {\n if (is_offset === void 0) { is_offset = true; }\n var delta = is_offset ? 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 }\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 \"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 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 }\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 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 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) {\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 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 (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 ].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 if (target !== undefined) {\n e.preventDefault();\n target.focus();\n }\n else if (e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n }\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 triggerEvent(\"onKeyDown\", e);\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"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()), lastDate = self.daysContainer.lastChild\n .lastChild.dateObj.getTime();\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < lastDate; 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 prevMonth = self.daysContainer.children[m - 1];\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 (month.contains(elem) ||\n !(m > 0 &&\n prevMonth &&\n prevMonth.lastChild.dateObj.getTime() >= timestamp)) {\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n }\n };\n 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(), false);\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 formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : flatpickr.defaultConfig.dateFormat +\n \" H:i\" +\n (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : flatpickr.defaultConfig.altFormat +\n (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\")\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\")\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i\");\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 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 - 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(\"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 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 };\n function set(option, value) {\n if (option !== null && typeof option === \"object\")\n Object.assign(self.config, option);\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 = self.selectedDates[0];\n self.redraw();\n jumpToDate();\n setHoursFromDate();\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.input.className + \" \" + 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 self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) +\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.selectedDates.length === 0)\n return self.clear(triggerChange);\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 e.preventDefault();\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 // 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 = defaults;\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\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n }\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","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n"],"sourceRoot":""}