{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@stimulus/core/dist/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/action.js","webpack:///./node_modules/@stimulus/core/dist/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/attribute_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/string_map_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/value_observer.js","webpack:///./node_modules/@stimulus/core/dist/context.js","webpack:///./node_modules/@stimulus/core/dist/inheritable_statics.js","webpack:///./node_modules/@stimulus/core/dist/blessing.js","webpack:///./node_modules/@stimulus/core/dist/module.js","webpack:///./node_modules/@stimulus/core/dist/definition.js","webpack:///./node_modules/@stimulus/core/dist/class_map.js","webpack:///./node_modules/@stimulus/core/dist/string_helpers.js","webpack:///./node_modules/@stimulus/core/dist/data_map.js","webpack:///./node_modules/@stimulus/core/dist/guide.js","webpack:///./node_modules/@stimulus/core/dist/selectors.js","webpack:///./node_modules/@stimulus/core/dist/target_set.js","webpack:///./node_modules/@stimulus/core/dist/scope.js","webpack:///./node_modules/@stimulus/core/dist/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/router.js","webpack:///./node_modules/@stimulus/core/dist/schema.js","webpack:///./node_modules/@stimulus/core/dist/application.js","webpack:///./node_modules/@stimulus/core/dist/class_properties.js","webpack:///./node_modules/@stimulus/core/dist/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/value_properties.js","webpack:///./node_modules/@stimulus/core/dist/controller.js","webpack:///./node_modules/flatpickr/dist/esm/types/options.js","webpack:///./node_modules/flatpickr/dist/esm/l10n/default.js","webpack:///./node_modules/flatpickr/dist/esm/utils/index.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dom.js","webpack:///./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dates.js","webpack:///./node_modules/flatpickr/dist/esm/index.js","webpack:///./node_modules/flatpickr/dist/l10n/de.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/flatpickr/dist/plugins/monthSelect/index.js","webpack:///./node_modules/@vimeo/player/dist/player.es.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/auto_save_controller.js","webpack:///./app/javascript/controllers/datepicker_controller.js","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack:///./app/javascript/controllers/expand_controller.js","webpack:///./app/javascript/controllers/location_timeline_controller.js","webpack:///./node_modules/hammerjs/hammer.js","webpack:///./app/javascript/controllers/monthpicker_controller.js","webpack:///./app/javascript/controllers/update_partial_controller.js","webpack:///./app/javascript/controllers/vacation_requests_controller.js","webpack:///./app/javascript/controllers/vimeo_controller.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./app/javascript/controllers/visit_report_controller.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/shared/dom.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/images/index.js","webpack:///./node_modules/swiper/core/images/loadImage.js","webpack:///./node_modules/swiper/core/images/preloadImages.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./node_modules/swiper/modules/keyboard/keyboard.js","webpack:///./node_modules/swiper/modules/mousewheel/mousewheel.js","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.js","webpack:///./node_modules/swiper/modules/navigation/navigation.js","webpack:///./app/javascript/controllers/slider_controller.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./node_modules/stimulus-flatpickr/dist/index.m.js","webpack:///./app/javascript/controllers/flatpickr_controller.js","webpack:///./app/javascript/packs/application.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","EventListener","eventTarget","eventName","eventOptions","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","delete","handleEvent","event","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","length","Array","from","sort","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","forEach","eventListener","stop","values","reduce","listeners","map","concat","fetchEventListenerForBinding","handleError","error","message","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","set","parts","keys","push","join","descriptorPattern","parseEventTarget","eventTargetName","window","document","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","match","split","options","replace","test","toString","eventNameSuffix","e","getAttribute","Error","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","target","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","has","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","type","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","stringMap","knownAttributeNames","refreshAttribute","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","b","setPrototypeOf","__proto__","__","constructor","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","slice","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","attributeValue","invokeChangedCallbackForValue","valueDescriptors","name_1","undefined","defaultValue","data","Context","controllerConstructor","bindingObserver","dispatcher","valueObserver","initialize","parentElement","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","isArray","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","apply","getOwnStaticObjectPairs","getPrototypeOf","reverse","__spreadArrays","il","arguments","k","a","j","jl","bless","properties","shadowConstructor","extend","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","_newTarget","Reflect","construct","Module","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","ClassMap","getDataKey","getAttributeName","getAttributeNameForKey","camelize","char","toUpperCase","capitalize","charAt","dasherize","DataMap","setAttribute","removeAttribute","Guide","logger","warnedKeysByObject","warn","warnedKeys","attributeValueContainsToken","TargetSet","targetName","find","targetNames","findTarget","findLegacyTarget","findAll","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","guide","Scope","classes","closest","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","Application","documentElement","console","router","readyState","register","load","head","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","ClassPropertiesBlessing","classDefinition","TargetPropertiesBlessing","targetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","read","readers","write","writers","default","propertiesForValueDefinitionPair","defaultValuesByType","valueDescriptorForTokenAndType","typeConstant","Boolean","Number","String","parseValueTypeConstant","boolean","number","string","array","JSON","parse","parseFloat","writeJSON","stringify","Controller","blessings","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","navigator","userAgent","indexOf","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","getWeek","givenDate","date","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","round","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","monthSelectorType","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","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","bool","debounce","fn","wait","clearTimeout","setTimeout","arrayify","obj","toggleClass","elem","className","classList","remove","createElement","tag","textContent","clearNode","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","appendChild","getEventTarget","composedPath","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","H","J","day","K","getHours","RegExp","M","shortMonth","S","seconds","setSeconds","U","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","h","minutes","setMinutes","month","u","unixMillSeconds","w","tokenRegex","toISOString","getMonth","getSeconds","getMinutes","substring","createDateFormatter","_ref","_ref$config","config","_ref$l10n","l10n","_ref$isMobile","isMobile","frmt","overrideLocale","formatDate","arr","createDateParser","_ref2","_ref2$config","_ref2$l10n","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","parseDate","matched","matchIndex","regexStr","isBackSlash","escaped","exec","val","_ref3","isNaN","compareDates","date1","date2","duration","getDefaultHours","hours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","min","FlatpickrInstance","instanceConfig","self","flatpickr","defaultConfig","bindToInstance","setCalendarWidth","requestAnimationFrame","calendarContainer","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","selectedDates","defaultDate","defaults","getMilliseconds","latestSelectedDateObj","preventDefault","isKeyDown","input","curValue","delta","which","newValue","isHourElem","hourElement","isMinuteElem","minuteElement","incrementNumInput","abs","timeWrapper","prevValue","_input","setHoursFromInputs","updateValue","_debouncedChange","secondElement","limitMinHours","minTime","minDateHasTime","maxTime","maxDateHasTime","setHoursFromDate","onYearInput","changeYear","handler","ev","el","_handlers","triggerChange","triggerEvent","jumpToDate","jumpDate","jumpTo","oldYear","currentYear","oldMonth","currentMonth","buildMonthSwitch","redraw","timeIncrement","inputElem","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","startElem","givenMonth","loopDelta","numMonthDays","changeMonth","getNextAvailableDay","buildMonthDays","firstOfMonth","prevMonthDays","utils","getDaysInMonth","createDocumentFragment","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","buildDays","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","container","monthNavFragment","monthElement","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","appendTo","documentClick","isOpen","isCalendarElement","isInput","path","lostFocus","relatedTarget","isIgnored","timeContainer","close","newYear","newYearNum","isNewYear","dateToCheck","enable","parsed","to","onBlur","allowKeydown","allowInlineKeydown","keyCode","blur","open","isTimeObj","focusAndClose","selectDate","ctrlKey","stopPropagation","currentYearElement","elems","pluginElements","x","shiftKey","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","ts1","ts2","ts","onResize","positionCalendar","minMaxDateSetter","inverseDateObj","getInputElem","querySelector","setupLocale","l10ns","dataset","customPositionElement","_positionElement","calendarHeight","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","bottom","showOnTop","top","pageYOffset","pageXOffset","isCenter","isRight","rightMost","centerMost","doc","editableSheet","styleSheets","sheet","cssRules","createStyleSheet","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","centerStyle","insertRule","msMaxTouchPoints","selectedDate","shouldChangeMonth","selectedIndex","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_getDefaultHours","_createElement","destroy","lastChild","insertBefore","_type","click","wasOpen","select","option","CALLBACKS","setSelectedDate","toggle","inputDate","dates","parseDateRules","rule","hooks","initEvent","getDateStr","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","boolOpts","userConfig","formats","_enable","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","parseConfig","nodeName","placeholder","required","nextSibling","setupInputs","preloadedDate","setupDates","yr","fragment","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","_buildWeeks","buildWeeks","rContainer","separator","hourInput","minuteInput","military2ampm","secondInput","title","buildTime","customAppend","build","evt","inputType","setupMobile","debouncedResize","ontouchstart","capture","selText","bindEvents","isSafari","init","_flatpickr","nodeList","HTMLElement","instances","HTMLCollection","NodeList","en","localize","setDefaults","jQuery","fp_incr","fp","German","de","factory","Function","__assign","theme","monthSelectPlugin","pluginConfig","monthsContainer","clearUnnecessaryDOMElements","addListeners","selectYear","addMonths","selectMonth","setCurrentlySelected","currentlySelected","targetMonth","shifts","37","39","40","38","___","shouldMove","destroyPluginInstance","ownKeys","enumerableOnly","symbols","sym","_objectSpread2","source","_defineProperty","getOwnPropertyDescriptors","_regeneratorRuntime","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","writable","innerFn","outerFn","tryLocsList","protoGenerator","Generator","makeInvokeMethod","tryCatch","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","doneResult","delegateResult","maybeInvokeDelegate","_sent","dispatchException","abrupt","return","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","skipTempReset","prev","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","_classCallCheck","instance","Constructor","_defineProperties","props","_toPropertyKey","_createClass","protoProps","staticProps","_getPrototypeOf","_setPrototypeOf","_isNativeReflectConstruct","sham","Proxy","valueOf","_construct","Parent","Class","_wrapNativeSuper","_cache","Wrapper","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","hint","prim","toPrimitive","res","_toPrimitive","isNode","global","getMethodName","prop","substr","isDomElement","ownerDocument","defaultView","isInteger","isFinite","floor","isVimeoUrl","url","isVimeoEmbed","getOembedDomain","domain","endsWith","getVimeoUrl","oEmbedParameters","id","idOrUrl","subscribe","callback","onName","offName","eventNames","evName","cancel","arrayIndexOfSupport","postMessageSupport","postMessage","commonjsGlobal","globalThis","hasDefine","genId","checkInstance","isObject","prefix","rand","random","_id","npo_src","createCommonjsModule","builtInProp","cycle","scheduling_queue","ToString","timer","setImmediate","schedule","drain","isThenable","_then","o_type","notify","chain","notifyIsolated","success","failure","cb","ret","msg","promise","triggered","def","def_wrapper","MakeDefWrapper","iteratePromises","resolver","rejecter","idx","MakeDef","executor","__NPO__","first","last","item","Item","PromisePrototype","len","msgs","count","callbackMap","storeCallback","player","playerCallbacks","getCallbacks","removeCallback","swapCallbacks","oldElement","newElement","parseMessageData","params","contentWindow","ieVersion","origin","processData","param","callbacks","shift","shiftCallbacks","getOEmbedParameters","createEmbed","html","div","getOEmbedData","videoUrl","encodeURIComponent","xhr","XDomainRequest","XMLHttpRequest","onload","status","json","responseText","domain_status_code","onerror","send","defaultOptions","role","autoPlayMuted","allowedDrift","maxAllowedDrift","minCheckInterval","maxRateAdjustment","maxTimeToCatchUp","TimingSrcConnector","_EventTarget","subClass","superClass","_inherits","Derived","hasNativeReflectConstruct","_updatePlayer","_updateTimingObject","_init","Super","NewTarget","_player","timingObject","_callee","newAdjustment","newPlaybackRate","_context","speedAdjustment","getPlaybackRate","t0","t1","t2","t3","log","setPlaybackRate","_x","_x2","Event","_callee2","playerUpdater","positionSync","timingObjectUpdater","_this2","_context2","waitForTOReadyState","updatePlayer","maintainPlaybackPosition","updateTimingObject","_x3","_x4","_x5","_callee3","_context3","getCurrentTime","getPaused","t4","velocity","update","_x6","_x7","_callee5","_timingObject$query","_context5","query","setCurrentTime","pause","play","_callee4","_context4","setMuted","err2","_x11","_x8","_x9","_x10","_this3","syncInterval","check","_callee6","diff","diffAbs","adjustment","_context6","adjustSpeed","sign","interval","setInterval","clearInterval","_this$logger","once","EventTarget","playerMap","readyMap","screenfull","Player","getElementById","iframe","_window","readyPromise","_onMessage","isReadyEvent","isPingResponse","_originalElement","exitFullscreen","exit","fullscreenchangeHandler","isFullscreen","ready","on","_setTimingSrc","_this4","callMethod","time","language","kind","request","_this5","off","autopause","camera","all","color","colors","nullPromise","colorPromises","currentTime","loop","muted","playbackRate","quality","volume","connector","_this6","fnMap","eventNameMap","fullscreenchange","fullscreenerror","onFullScreenEntered","returnPromise","requestFullscreen","onFullScreenExit","fullscreenElement","fullscreenEnabled","initializeScreenfull","parent","initializeEmbeds","VimeoPlayerResizeEmbeds_","onMessage","iframes","paddingBottom","resizeEmbeds","VimeoSeoMetadataAppended","isValidMessageSource","src","location","href","initAppendVideoMetadata","VimeoCheckedUrlTimeParam","_loop","getVideoId","videoId","sec","decodeURI","checkUrlTimeParam","webpackContext","req","webpackContextResolve","code","localStorageKey","idValue","setFormData","$","finished","Turbolinks","visit","scrollTo","replaceWith","localStorage","getItem","removeItem","clearLocalStorage","form","formTarget","attr","that","ajax","dataType","serialize","FormData","entries","pair","fromEntries","getFormData","setItem","radios","getElementsByName","checked","german","require","datepicker","fireChangeEvent","dateStr","CustomEvent","bubbles","_len","_key","expandableTarget","buttonTarget","Hammer","hammer","contentTarget","sendSwipeEvent","dateString","transition","URL","urlValue","searchParams","locations","updateContent","collapsedValue","collapse","getController","currentDateValue","updateTimeline","htmlString","swipeEvent","direction","DIRECTION_RIGHT","DIRECTION_LEFT","collapsed","exportName","VENDOR_PREFIXES","TEST_ELEMENT","setTimeoutContext","timeout","bindFn","invokeArrayArg","each","deprecationMessage","stack","output","nextKey","dest","merge","inherit","base","childP","baseP","boolOrFn","ifUndefined","val1","val2","addEventListeners","types","splitStr","removeEventListeners","hasParent","inStr","str","inArray","findByKey","toArray","uniqueArray","results","prefixed","camelProp","_uniqueId","getWindowForElement","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","INPUT_TYPE_TOUCH","INPUT_TYPE_MOUSE","DIRECTION_VERTICAL","DIRECTION_UP","PROPS_XY","PROPS_CLIENT_XY","Input","manager","inputTarget","domHandler","inputHandler","eventType","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","angle","getAngle","distance","getDistance","offsetDelta","prevDelta","prevInput","deltaX","deltaY","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","scale","end","rotation","getRotation","maxPointers","velocityX","velocityY","lastInterval","computeIntervalInputData","srcEvent","computeInputData","emit","recognize","clientX","clientY","p1","p2","sqrt","atan2","PI","evEl","evTarget","evWin","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","MouseInput","pressed","button","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","store","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","normalizeSingleTouches","touches","changed","changedTouches","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","TouchInput","targetIds","getTouches","allTouches","targetTouches","changedTargetTouches","touch","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","TouchAction","compute","actions","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_FAILED","Recognizer","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","process","attrTest","optionPointers","isRecognized","isValid","threshold","DIRECTION_HORIZONTAL","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","inputClass","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","handlers","oldCssProps","toggleCssProps","force","stopped","curRecognizer","existing","events","gestureEvent","gesture","triggerDomEvent","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","DIRECTION_NONE","DIRECTION_DOWN","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press","hasCurrentDateValue","_format_date_YYYY_MM_DD","padStart","currentDate","onError","requestsTarget","hasRequestsTarget","updateRequestsAndTimelines","requestId","targetElement","highlightAndScrollTo","vacationRequest","requestDate","locationTimeline","getLocationTimelineController","locationId","updateTimelines","scrollOffset","preventScroll","scrollBy","behavior","nextDateValue","prevDateValue","locationTimelineTargets","ctrl","append","current_date","next_date","prev_date","requestListHtml","nextDate","prevDate","playerTarget","Timeout","clearFn","_clearFn","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","script","onreadystatechange","attachEvent","task","run","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","noop","browser","env","argv","version","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","dir","umask","updatePoints","negative_score","score","voted_count","itemsTargets","hasPointsTarget","pointsTarget","pointDeductionsTargets","pointsTargets","hasVotedCountTarget","votedCountTarget","ssrDocument","childNodes","createElementNS","importNode","hash","host","hostname","pathname","protocol","search","getDocument","ssrWindow","history","getComputedStyle","getPropertyValue","screen","matchMedia","getWindow","win","Dom7","items","super","proto","makeReactive","arrayFlat","arrayFilter","toCreate","tempParent","qsa","arrayUnique","noTrigger","shortcut","_len14","_key14","trigger","Methods","addClass","classNames","removeClass","_len2","_key2","hasClass","_len4","_key4","_len3","_key3","attrs","attrName","removeAttr","transform","transitionDuration","_len5","_key5","targetSelector","listener","handleLiveEvent","dom7EventData","unshift","is","parents","dom7LiveListeners","proxyListener","dom7Listeners","_len6","_key6","dom7proxy","_len9","_key9","cancelable","dataIndex","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","outerHeight","box","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","css","text","compareWith","webkitMatchesSelector","msMatchesSelector","previousSibling","eq","returnIndex","newChild","tempDiv","prepend","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","foundElements","found","delay","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","noExtend","nextSource","keysArray","nextIndex","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","startTime","speed","wrapperEl","scrollSnapType","cancelAnimationFrame","cssModeFrameID","isOutOfBound","progress","easeProgress","cos","currentPosition","overflow","deviceCached","getSupport","smoothScroll","DocumentTouch","passiveListener","supportsPassive","gestures","calcSupport","calcDevice","support","platform","ua","device","ios","android","screenWidth","screenHeight","height","ipad","ipod","iphone","windows","macos","iPadScreens","os","getBrowser","isWebView","calcBrowser","transitionEmit","runCallbacks","activeIndex","previousIndex","touchEventsData","enabled","animating","preventInteractionOnTransition","cssMode","loopFix","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchStart","rtl","rtlTranslate","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","maxTranslate","minTranslate","diffX","diffY","touchAngle","isHorizontal","touchMoveStopPropagation","nested","startTranslate","setTransition","$wrapperEl","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","watchSlidesProgress","updateActiveIndex","updateSlidesClasses","onTouchMove","updateProgress","setTranslate","slidesGrid","touchEndTime","timeDiff","pathTree","updateClickedSlide","lastClickTime","destroyed","currentPos","onTouchEnd","stopIndex","groupSize","slidesSizesGrid","slidesPerGroupSkip","slidesPerGroup","increment","rewindFirstIndex","rewindLastIndex","rewind","isBeginning","virtual","slides","isEnd","ratio","longSwipesMs","longSwipes","slideTo","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","breakpoints","setBreakpoint","snapGrid","updateSlides","slidesPerView","centeredSlides","autoplay","running","paused","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","onScroll","newProgress","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","passive","move","onClick","updateOnWindowResize","isGridEnabled","grid","rows","initialSlide","resizeObserver","createElements","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopedSlidesLimit","loopFillGroupWithBlank","loopPreventsSlide","maxBackfaceHiddenSlides","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","priority","eventsListeners","onceHandler","__emitterProxy","eventsAnyListeners","eventHandler","$el","clientWidth","clientHeight","getDirectionLabel","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","gridEnabled","slideSize","initSlides","shouldResetSlideSize","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","visibleSlides","ceil","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","wasBeginning","wasEnd","realIndex","activeSlide","nextSlide","prevSlide","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","skip","initialized","slideFound","clickedSlide","clickedIndex","byController","translateTo","translateBounds","internal","newTranslate","isH","onTranslateToWrapperTransitionEnd","transitionStart","initial","indexAsNumber","normalizedTranslate","normalizedGrid","normalizedGridNext","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerViewDynamic","_clientLeft","slidePrev","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","currentSnap","slideToIndex","loopCreate","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","attachEvents","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","changeDirection","containerEl","currentHeight","points","point","minRatio","_points$i","wasLocked","lastSlideIndex","lastSlideRightEdge","addClasses","suffixes","resultClasses","prepareClasses","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","Image","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","swipers","newParams","overrides","getDevice","__modules__","mod","extendParams","swiperParams","passedParams","onAny","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","cls","slideEl","updates","getSlideClasses","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","getWrapper","mount","deleteInstance","cleanStyles","deleteProps","newDefaults","installModule","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","unobserve","observers","attach","ObserverFunc","WebkitMutationObserver","observerUpdate","characterData","observeParents","observeSlideChildren","containerParents","Keyboard","kc","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","altKey","metaKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Mousewheel","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","lastEventBeforeSnap","lastScrollTime","recentWheelEvents","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","raw","rtlFactor","sX","sY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaMode","spinX","spinY","pixelX","pixelY","positions","ignoreWheelEvents","sticky","prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","releaseScroll","createElementIfNotDefined","checkProps","Navigation","getEl","toggleEl","disabledClass","lockClass","_swiper$navigation","$nextEl","$prevEl","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","navigationDisabledClass","_swiper$navigation3","_s","_swiper$navigation4","targetEl","pagination","clickable","isHidden","getActiveSlideIndex","sliderContainer","hasContainerTarget","containerTarget","Swiper","nextTarget","prevTarget","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","dateFormats","arrayOrString","mapping","strftimeRegex","_Controller","StimulusFlatpickr","_initializeEvents","_initializeOptions","_initializeDateFormats","flatpickrElement","_initializeElements","optionType","optionKebab","_handleDaysOfWeek","disableDaysOfWeek","_validateDaysOfWeek","enableDaysOfWeek","includes","hasInstanceTarget","instanceTarget","Flatpickr"],"mappings":"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","file":"js/application-f3a029b8b225d69f31c9.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 = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 26);\n","var EventListener = /** @class */function () {\n function EventListener(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n };\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n };\n // Binding observer delegate\n /** @hidden */\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings.delete(binding);\n };\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: false,\n configurable: true\n });\n return EventListener;\n}();\nexport { EventListener };\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function () {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\nvar Dispatcher = /** @class */function () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function () {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n // Binding observer delegate\n /** @hidden */\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n };\n // Error handling\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n this.application.handleError(error, \"Error \" + message, detail);\n };\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n };\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n };\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n };\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n };\n Dispatcher.prototype.cacheKey = function (eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\" + (eventOptions[key] ? \"\" : \"!\") + key);\n });\n return parts.join(\":\");\n };\n return Dispatcher;\n}();\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 768 9 98\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nexport function parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n var _a;\n return Object.assign(options, (_a = {}, _a[token.replace(/^!/, \"\")] = !/^!/.test(token), _a));\n }, {});\n}\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseActionDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\nvar Action = /** @class */function () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n };\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function () {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: false,\n configurable: true\n });\n return Action;\n}();\nexport { Action };\nvar defaultEventNames = {\n \"a\": function (e) {\n return \"click\";\n },\n \"button\": function (e) {\n return \"click\";\n },\n \"form\": function (e) {\n return \"submit\";\n },\n \"input\": function (e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function (e) {\n return \"change\";\n },\n \"textarea\": function (e) {\n return \"input\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}","var Binding = /** @class */function () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function () {\n return this.action.index;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function () {\n return this.action.eventTarget;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventOptions\", {\n get: function () {\n return this.action.eventOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function () {\n return this.action.eventName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function () {\n var method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: false,\n configurable: true\n });\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n };\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function () {\n return this.action.methodName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n return Binding;\n}();\nexport { Binding };","var ElementObserver = /** @class */function () {\n function ElementObserver(element, delegate) {\n var _this = this;\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n };\n // Mutation record processing\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n };\n // Element matching\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n return this.delegate.matchElementsInTree(tree);\n };\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n };\n // Element tracking\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n return ElementObserver;\n}();\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\nvar AttributeObserver = /** @class */function () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function () {\n return this.elementObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function () {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: false,\n configurable: true\n });\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function () {\n return this.elementObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n // Element observer delegate\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n return AttributeObserver;\n}();\nexport { AttributeObserver };","var StringMapObserver = /** @class */function () {\n function StringMapObserver(element, delegate) {\n var _this = this;\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n StringMapObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true\n });\n this.refresh();\n }\n };\n StringMapObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n StringMapObserver.prototype.refresh = function () {\n if (this.started) {\n for (var _i = 0, _a = this.knownAttributeNames; _i < _a.length; _i++) {\n var attributeName = _a[_i];\n this.refreshAttribute(attributeName);\n }\n }\n };\n // Mutation record processing\n StringMapObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n StringMapObserver.prototype.processMutation = function (mutation) {\n var attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName);\n }\n };\n // State tracking\n StringMapObserver.prototype.refreshAttribute = function (attributeName) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n var value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key);\n }\n if (value == null) {\n this.stringMap.delete(attributeName);\n this.stringMapKeyRemoved(key, attributeName);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n };\n StringMapObserver.prototype.stringMapKeyAdded = function (key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n };\n StringMapObserver.prototype.stringMapValueChanged = function (value, key) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key);\n }\n };\n StringMapObserver.prototype.stringMapKeyRemoved = function (key, attributeName) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName);\n }\n };\n Object.defineProperty(StringMapObserver.prototype, \"knownAttributeNames\", {\n get: function () {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"currentAttributeNames\", {\n get: function () {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StringMapObserver.prototype, \"recordedAttributeNames\", {\n get: function () {\n return Array.from(this.stringMap.keys());\n },\n enumerable: false,\n configurable: true\n });\n return StringMapObserver;\n}();\nexport { StringMapObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}","import { add, del } from \"./set_operations\";\nvar Multimap = /** @class */function () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: false,\n configurable: true\n });\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n Multimap.prototype.delete = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n return Multimap;\n}();\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\nvar IndexedMultimap = /** @class */function (_super) {\n __extends(IndexedMultimap, _super);\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n _this.keysByValue = new Map();\n return _this;\n }\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function () {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: false,\n configurable: true\n });\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n add(this.keysByValue, value, key);\n };\n IndexedMultimap.prototype.delete = function (key, value) {\n _super.prototype.delete.call(this, key, value);\n del(this.keysByValue, value, key);\n };\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n return IndexedMultimap;\n}(Multimap);\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\nvar TokenListObserver = /** @class */function () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function () {\n return this.attributeObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function () {\n return this.attributeObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.attributeObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n // Attribute observer delegate\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n };\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n return TokenListObserver;\n}();\nexport { TokenListObserver };\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\nvar ValueListObserver = /** @class */function () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function () {\n return this.tokenListObserver.started;\n },\n enumerable: false,\n configurable: true\n });\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function () {\n return this.tokenListObserver.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.tokenListObserver.attributeName;\n },\n enumerable: false,\n configurable: true\n });\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n };\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n };\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n return ValueListObserver;\n}();\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\nvar BindingObserver = /** @class */function () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function () {\n return this.schema.actionAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function () {\n return this.context.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: false,\n configurable: true\n });\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n };\n // Value observer delegate\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n return BindingObserver;\n}();\nexport { BindingObserver };","import { StringMapObserver } from \"@stimulus/mutation-observers\";\nvar ValueObserver = /** @class */function () {\n function ValueObserver(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n ValueObserver.prototype.start = function () {\n this.stringMapObserver.start();\n };\n ValueObserver.prototype.stop = function () {\n this.stringMapObserver.stop();\n };\n Object.defineProperty(ValueObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ValueObserver.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: false,\n configurable: true\n });\n // String map observer delegate\n ValueObserver.prototype.getStringMapKeyForAttribute = function (attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n };\n ValueObserver.prototype.stringMapValueChanged = function (attributeValue, name) {\n this.invokeChangedCallbackForValue(name);\n };\n ValueObserver.prototype.invokeChangedCallbacksForDefaultValues = function () {\n for (var _i = 0, _a = this.valueDescriptors; _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b.key,\n name_1 = _b.name,\n defaultValue = _b.defaultValue;\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallbackForValue(name_1);\n }\n }\n };\n ValueObserver.prototype.invokeChangedCallbackForValue = function (name) {\n var methodName = name + \"Changed\";\n var method = this.receiver[methodName];\n if (typeof method == \"function\") {\n var value = this.receiver[name];\n method.call(this.receiver, value);\n }\n };\n Object.defineProperty(ValueObserver.prototype, \"valueDescriptors\", {\n get: function () {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n },\n enumerable: false,\n configurable: true\n });\n return ValueObserver;\n}();\nexport { ValueObserver };","import { BindingObserver } from \"./binding_observer\";\nimport { ValueObserver } from \"./value_observer\";\nvar Context = /** @class */function () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n this.valueObserver.start();\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.valueObserver.stop();\n this.bindingObserver.stop();\n };\n Object.defineProperty(Context.prototype, \"application\", {\n get: function () {\n return this.module.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function () {\n return this.module.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function () {\n return this.application.dispatcher;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function () {\n return this.element.parentElement;\n },\n enumerable: false,\n configurable: true\n });\n // Error handling\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n return Context;\n}();\nexport { Context };","export function readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\nexport function readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}","var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { readInheritableStaticArrayValues } from \"./inheritable_statics\";\n/** @hidden */\nexport function bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var _a;\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, (_a = {}, _a[key] = descriptor, _a));\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return __spreadArrays(Object.getOwnPropertyNames(object), Object.getOwnPropertySymbols(object));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n var _newTarget = this && this instanceof extended ? this.constructor : void 0;\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n function testReflectExtension() {\n var a = function () {\n this.a.call(this);\n };\n var b = extendWithReflect(a);\n b.prototype.a = function () {};\n return new b();\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (/** @class */function (_super) {\n __extends(extended, _super);\n function extended() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return extended;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\nvar Module = /** @class */function () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function () {\n return this.definition.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function () {\n return this.definition.controllerConstructor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function () {\n return Array.from(this.connectedContexts);\n },\n enumerable: false,\n configurable: true\n });\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n };\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n };\n return Module;\n}();\nexport { Module };","import { bless } from \"./blessing\";\n/** @hidden */\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}","var ClassMap = /** @class */function () {\n function ClassMap(scope) {\n this.scope = scope;\n }\n ClassMap.prototype.has = function (name) {\n return this.data.has(this.getDataKey(name));\n };\n ClassMap.prototype.get = function (name) {\n return this.data.get(this.getDataKey(name));\n };\n ClassMap.prototype.getAttributeName = function (name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n };\n ClassMap.prototype.getDataKey = function (name) {\n return name + \"-class\";\n };\n Object.defineProperty(ClassMap.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n return ClassMap;\n}();\nexport { ClassMap };","export function camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) {\n return char.toUpperCase();\n });\n}\nexport function capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nexport function dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","import { dasherize } from \"./string_helpers\";\nvar DataMap = /** @class */function () {\n function DataMap(scope) {\n this.scope = scope;\n }\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n DataMap.prototype.get = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n };\n DataMap.prototype.set = function (key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n };\n DataMap.prototype.has = function (key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n };\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n var name_1 = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name_1);\n return true;\n } else {\n return false;\n }\n };\n DataMap.prototype.getAttributeNameForKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n return DataMap;\n}();\nexport { DataMap };","var Guide = /** @class */function () {\n function Guide(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n Guide.prototype.warn = function (object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n };\n return Guide;\n}();\nexport { Guide };","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { attributeValueContainsToken } from \"./selectors\";\nvar TargetSet = /** @class */function () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function () {\n return this.scope.schema;\n },\n enumerable: false,\n configurable: true\n });\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n TargetSet.prototype.find = function () {\n var _this = this;\n var targetNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n return targetNames.reduce(function (target, targetName) {\n return target || _this.findTarget(targetName) || _this.findLegacyTarget(targetName);\n }, undefined);\n };\n TargetSet.prototype.findAll = function () {\n var _this = this;\n var targetNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n return targetNames.reduce(function (targets, targetName) {\n return __spreadArrays(targets, _this.findAllTargets(targetName), _this.findAllLegacyTargets(targetName));\n }, []);\n };\n TargetSet.prototype.findTarget = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n };\n TargetSet.prototype.findAllTargets = function (targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n };\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var attributeName = \"data-\" + this.identifier + \"-target\";\n return attributeValueContainsToken(attributeName, targetName);\n };\n TargetSet.prototype.findLegacyTarget = function (targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n };\n TargetSet.prototype.findAllLegacyTargets = function (targetName) {\n var _this = this;\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this.deprecate(element, targetName);\n });\n };\n TargetSet.prototype.getLegacySelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n TargetSet.prototype.deprecate = function (element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n this.guide.warn(element, \"target:\" + targetName, \"Please replace \" + attributeName + \"=\\\"\" + identifier + \".\" + targetName + \"\\\" with data-\" + identifier + \"-target=\\\"\" + targetName + \"\\\". \" + (\"The \" + attributeName + \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n return element;\n };\n Object.defineProperty(TargetSet.prototype, \"guide\", {\n get: function () {\n return this.scope.guide;\n },\n enumerable: false,\n configurable: true\n });\n return TargetSet;\n}();\nexport { TargetSet };","var __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { ClassMap } from \"./class_map\";\nimport { DataMap } from \"./data_map\";\nimport { Guide } from \"./guide\";\nimport { attributeValueContainsToken } from \"./selectors\";\nimport { TargetSet } from \"./target_set\";\nvar Scope = /** @class */function () {\n function Scope(schema, element, identifier, logger) {\n var _this = this;\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = function (element) {\n return element.closest(_this.controllerSelector) === _this.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n Scope.prototype.findElement = function (selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n };\n Scope.prototype.findAllElements = function (selector) {\n return __spreadArrays(this.element.matches(selector) ? [this.element] : [], this.queryElements(selector).filter(this.containsElement));\n };\n Scope.prototype.queryElements = function (selector) {\n return Array.from(this.element.querySelectorAll(selector));\n };\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function () {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: false,\n configurable: true\n });\n return Scope;\n}();\nexport { Scope };","import { ValueListObserver } from \"@stimulus/mutation-observers\";\nvar ScopeObserver = /** @class */function () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n // Value observer delegate\n /** @hidden */\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n };\n /** @hidden */\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n };\n return ScopeObserver;\n}();\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { Scope } from \"./scope\";\nimport { ScopeObserver } from \"./scope_observer\";\nvar Router = /** @class */function () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n Object.defineProperty(Router.prototype, \"element\", {\n get: function () {\n return this.application.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"logger\", {\n get: function () {\n return this.application.logger;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function () {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function () {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n };\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n };\n // Error handler delegate\n /** @hidden */\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n };\n // Scope observer delegate\n /** @hidden */\n Router.prototype.createScopeForElementAndIdentifier = function (element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n };\n /** @hidden */\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n };\n // Modules\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n return Router;\n}();\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\nvar Application = /** @class */function () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n if (schema === void 0) {\n schema = defaultSchema;\n }\n this.logger = console;\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, domReady()];\n case 1:\n _a.sent();\n this.dispatcher.start();\n this.router.start();\n return [2 /*return*/];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.dispatcher.stop();\n this.router.stop();\n };\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n Application.prototype.load = function (head) {\n var _this = this;\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var definitions = Array.isArray(head) ? head : __spreadArrays([head], rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n Application.prototype.unload = function (head) {\n var _this = this;\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var identifiers = Array.isArray(head) ? head : __spreadArrays([head], rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function () {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: false,\n configurable: true\n });\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n };\n // Error handling\n Application.prototype.handleError = function (error, message, detail) {\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n return Application;\n}();\nexport { Application };\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\nexport function ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n var _a;\n var name = key + \"Class\";\n return _a = {}, _a[name] = {\n get: function () {\n var classes = this.classes;\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\" + attribute + \"\\\"\");\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function () {\n return this.classes.has(key);\n }\n }, _a;\n}","import { readInheritableStaticArrayValues } from \"./inheritable_statics\";\nimport { capitalize } from \"./string_helpers\";\n/** @hidden */\nexport function TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n var _a;\n return _a = {}, _a[name + \"Target\"] = {\n get: function () {\n var target = this.targets.find(name);\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function () {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function () {\n return this.targets.has(name);\n }\n }, _a;\n}","import { readInheritableStaticObjectPairs } from \"./inheritable_statics\";\nimport { camelize, capitalize, dasherize } from \"./string_helpers\";\n/** @hidden */\nexport function ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function () {\n var _this = this;\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var _a;\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n var attributeName = _this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, (_a = {}, _a[attributeName] = valueDescriptor, _a));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n/** @hidden */\nexport function propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _a;\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var type = definition.type,\n key = definition.key,\n name = definition.name;\n var read = readers[type],\n write = writers[type] || writers.default;\n return _a = {}, _a[name] = {\n get: function () {\n var value = this.data.get(key);\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function (value) {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }, _a[\"has\" + capitalize(name)] = {\n get: function () {\n return this.data.has(key);\n }\n }, _a;\n}\nfunction parseValueDefinitionPair(_a) {\n var token = _a[0],\n typeConstant = _a[1];\n var type = parseValueTypeConstant(typeConstant);\n return valueDescriptorForTokenAndType(token, type);\n}\nfunction parseValueTypeConstant(typeConstant) {\n switch (typeConstant) {\n case Array:\n return \"array\";\n case Boolean:\n return \"boolean\";\n case Number:\n return \"number\";\n case Object:\n return \"object\";\n case String:\n return \"string\";\n }\n throw new Error(\"Unknown value type constant \\\"\" + typeConstant + \"\\\"\");\n}\nfunction valueDescriptorForTokenAndType(token, type) {\n var key = dasherize(token) + \"-value\";\n return {\n type: type,\n key: key,\n name: camelize(key),\n get defaultValue() {\n return defaultValuesByType[type];\n }\n };\n}\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n boolean: false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\"\n};\nvar readers = {\n array: function (value) {\n var array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n return array;\n },\n boolean: function (value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function (value) {\n return parseFloat(value);\n },\n object: function (value) {\n var object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n return object;\n },\n string: function (value) {\n return value;\n }\n};\nvar writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return \"\" + value;\n}","import { ClassPropertiesBlessing } from \"./class_properties\";\nimport { TargetPropertiesBlessing } from \"./target_properties\";\nimport { ValuePropertiesBlessing } from \"./value_properties\";\nvar Controller = /** @class */function () {\n function Controller(context) {\n this.context = context;\n }\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function () {\n return this.context.application;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function () {\n return this.scope.targets;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"classes\", {\n get: function () {\n return this.scope.classes;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: false,\n configurable: true\n });\n Controller.prototype.initialize = function () {\n // Override in your subclass to set up initial controller state\n };\n Controller.prototype.connect = function () {\n // Override in your subclass to respond when the controller is connected to the DOM\n };\n Controller.prototype.disconnect = function () {\n // Override in your subclass to respond when the controller is disconnected from the DOM\n };\n Controller.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\n Controller.targets = [];\n Controller.values = {};\n return Controller;\n}();\nexport { Controller };","export const HOOKS = [\"onChange\", \"onClose\", \"onDayCreate\", \"onDestroy\", \"onKeyDown\", \"onMonthChange\", \"onOpen\", \"onParseConfig\", \"onReady\", \"onValueUpdate\", \"onYearChange\", \"onPreCalendarPosition\"];\nexport const defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" && window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: err => typeof console !== \"undefined\" && console.warn(err),\n getWeek: givenDate => {\n const date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);\n var week1 = new Date(date.getFullYear(), 0, 4);\n return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false\n};","export const english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\n },\n months: {\n shorthand: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n longhand: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: nth => {\n const s = nth % 100;\n if (s > 3 && s < 21) return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false\n};\nexport default english;","export const pad = function (number) {\n let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n return `000${number}`.slice(length * -1);\n};\nexport const int = bool => bool === true ? 1 : 0;\nexport function debounce(fn, wait) {\n let t;\n return function () {\n clearTimeout(t);\n t = setTimeout(() => fn.apply(this, arguments), wait);\n };\n}\nexport const arrayify = obj => obj instanceof Array ? obj : [obj];","export function toggleClass(elem, className, bool) {\n if (bool === true) return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n const e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined) e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild) node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node)) return node;else if (node.parentNode) return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n const wrapper = createElement(\"div\", \"numInputWrapper\"),\n numInput = createElement(\"input\", \"numInput \" + inputClassName),\n arrowUp = createElement(\"span\", \"arrowUp\"),\n arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n } else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined) for (const key in opts) numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n const path = event.composedPath();\n return path[0];\n }\n return event.target;\n } catch (error) {\n return event.target;\n }\n}","import { int, pad } from \"../utils\";\nconst doNothing = () => undefined;\nexport const monthToStr = (monthNumber, shorthand, locale) => locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\nexport const revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n H: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n J: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n K: (dateObj, amPM, locale) => {\n dateObj.setHours(dateObj.getHours() % 12 + 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: (_, unixSeconds) => new Date(parseFloat(unixSeconds) * 1000),\n W: function (dateObj, weekNum, locale) {\n const weekNumber = parseInt(weekNum);\n const date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: (dateObj, year) => {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: (_, ISODate) => new Date(ISODate),\n d: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n h: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n i: (dateObj, minutes) => {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: (_, unixMillSeconds) => new Date(parseFloat(unixMillSeconds)),\n w: doNothing,\n y: (dateObj, year) => {\n dateObj.setFullYear(2000 + parseFloat(year));\n }\n};\nexport const tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\"\n};\nexport const formats = {\n Z: date => date.toISOString(),\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: date => pad(date.getHours()),\n J: function (date, locale) {\n return locale.ordinal !== undefined ? date.getDate() + locale.ordinal(date.getDate()) : date.getDate();\n },\n K: (date, locale) => locale.amPM[int(date.getHours() > 11)],\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: date => pad(date.getSeconds()),\n U: date => date.getTime() / 1000,\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: date => pad(date.getFullYear(), 4),\n d: date => pad(date.getDate()),\n h: date => date.getHours() % 12 ? date.getHours() % 12 : 12,\n i: date => pad(date.getMinutes()),\n j: date => date.getDate(),\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: date => pad(date.getMonth() + 1),\n n: date => date.getMonth() + 1,\n s: date => date.getSeconds(),\n u: date => date.getTime(),\n w: date => date.getDay(),\n y: date => String(date.getFullYear()).substring(2)\n};","import { tokenRegex, revFormat, formats } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport const createDateFormatter = _ref => {\n let _ref$config = _ref.config,\n config = _ref$config === void 0 ? defaults : _ref$config,\n _ref$l10n = _ref.l10n,\n l10n = _ref$l10n === void 0 ? english : _ref$l10n,\n _ref$isMobile = _ref.isMobile,\n isMobile = _ref$isMobile === void 0 ? false : _ref$isMobile;\n return (dateObj, frmt, overrideLocale) => {\n const locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt.split(\"\").map((c, i, arr) => formats[c] && arr[i - 1] !== \"\\\\\" ? formats[c](dateObj, locale, config) : c !== \"\\\\\" ? c : \"\").join(\"\");\n };\n};\nexport const createDateParser = _ref2 => {\n let _ref2$config = _ref2.config,\n config = _ref2$config === void 0 ? defaults : _ref2$config,\n _ref2$l10n = _ref2.l10n,\n l10n = _ref2$l10n === void 0 ? english : _ref2$l10n;\n return (date, givenFormat, timeless, customLocale) => {\n if (date !== 0 && !date) return undefined;\n const locale = customLocale || l10n;\n let parsedDate;\n const dateOrig = date;\n if (date instanceof Date) parsedDate = new Date(date.getTime());else if (typeof date !== \"string\" && date.toFixed !== undefined) parsedDate = new Date(date);else if (typeof date === \"string\") {\n const format = givenFormat || (config || defaults).dateFormat;\n const datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n } else if (/Z$/.test(datestr) || /GMT$/.test(datestr)) parsedDate = new Date(date);else if (config && config.parseDate) parsedDate = config.parseDate(date, format);else {\n parsedDate = !config || !config.noCalendar ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0) : new Date(new Date().setHours(0, 0, 0, 0));\n let matched,\n ops = [];\n for (let i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n const token = format[i];\n const isBackSlash = token === \"\\\\\";\n const escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n const match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex]\n });\n }\n } else if (!isBackSlash) regexStr += \".\";\n ops.forEach(_ref3 => {\n let fn = _ref3.fn,\n val = _ref3.val;\n return parsedDate = fn(parsedDate, val, locale) || parsedDate;\n });\n }\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(`Invalid date provided: ${dateOrig}`));\n return undefined;\n }\n if (timeless === true) parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n};\nexport function compareDates(date1, date2) {\n let timeless = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (timeless !== false) {\n return new Date(date1.getTime()).setHours(0, 0, 0, 0) - new Date(date2.getTime()).setHours(0, 0, 0, 0);\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return 3600 * (date1.getHours() - date2.getHours()) + 60 * (date1.getMinutes() - date2.getMinutes()) + date1.getSeconds() - date2.getSeconds();\n}\nexport const isBetween = (ts, ts1, ts2) => {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport const duration = {\n DAY: 86400000\n};\nexport function getDefaultHours(config) {\n let hours = config.defaultHour;\n let minutes = config.defaultMinute;\n let seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n const minHour = config.minDate.getHours();\n const minMinutes = config.minDate.getMinutes();\n const minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds) seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n const maxHr = config.maxDate.getHours();\n const maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr) minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes) seconds = config.maxDate.getSeconds();\n }\n return {\n hours,\n minutes,\n seconds\n };\n}","import { defaults as defaultOptions, HOOKS } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nconst DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n const self = {\n config: Object.assign(Object.assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English\n };\n self.parseDate = createDateParser({\n config: self.config,\n l10n: self.l10n\n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth() {\n let month = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : self.currentMonth;\n let yr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : self.currentYear;\n if (month === 1 && (yr % 4 === 0 && yr % 100 !== 0 || yr % 400 === 0)) 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) build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n const config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n } else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n const daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width = daysWidth + (self.weekWrapper !== undefined ? self.weekWrapper.offsetWidth : 0) + \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n const defaultDate = self.config.minDate === undefined || compareDates(new Date(), self.config.minDate) >= 0 ? new Date() : new Date(self.config.minDate.getTime());\n const defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n const prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return hour % 12 + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined) return;\n let hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24,\n minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60,\n seconds = self.secondElement !== undefined ? (parseInt(self.secondElement.value, 10) || 0) % 60 : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n const limitMinHours = self.config.minTime !== undefined || self.config.minDate && self.minDateHasTime && self.latestSelectedDateObj && compareDates(self.latestSelectedDateObj, self.config.minDate, true) === 0;\n const limitMaxHours = self.config.maxTime !== undefined || self.config.maxDate && self.maxDateHasTime && self.latestSelectedDateObj && compareDates(self.latestSelectedDateObj, self.config.maxDate, true) === 0;\n if (limitMaxHours) {\n const maxTime = self.config.maxTime !== undefined ? self.config.maxTime : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours()) minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes()) seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n const minTime = self.config.minTime !== undefined ? self.config.minTime : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes()) minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes()) seconds = Math.max(seconds, minTime.getSeconds());\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n const date = dateObj || self.latestSelectedDateObj;\n if (date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile) return;\n self.hourElement.value = pad(!self.config.time_24hr ? (12 + hours) % 12 + 12 * int(hours % 12 === 0) : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined) self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined) self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n const eventTarget = getEventTarget(event);\n const year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 || event.key === \"Enter\" && !/[^\\d]/.test(year.toString())) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array) return event.forEach(ev => bind(element, ev, handler, options));\n if (element instanceof Array) return element.forEach(el => bind(el, event, handler, options));\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: () => element.removeEventListener(event, handler)\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(evt => {\n Array.prototype.forEach.call(self.element.querySelectorAll(`[data-${evt}]`), el => bind(el, \"click\", self[evt]));\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n const debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent)) bind(self.daysContainer, \"mouseover\", e => {\n if (self.config.mode === \"range\") onMouseOver(getEventTarget(e));\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static) bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined) bind(window.document, \"touchstart\", documentClick);else bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, {\n capture: true\n });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined && self.minuteElement !== undefined && self.hourElement !== undefined) {\n const selText = e => getEventTarget(e).select();\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, {\n capture: true\n });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined) bind(self.secondElement, \"focus\", () => self.secondElement && self.secondElement.select());\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", e => {\n updateTime(e);\n triggerChange();\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n const jumpTo = jumpDate !== undefined ? self.parseDate(jumpDate) : self.latestSelectedDateObj || (self.config.minDate && self.config.minDate > self.now ? self.config.minDate : self.config.maxDate && self.config.maxDate < self.now ? self.config.maxDate : self.now);\n const oldYear = self.currentYear;\n const oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n } catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange && (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n const eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\")) incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n const target = e && getEventTarget(e);\n const input = inputElem || target && target.parentNode && target.parentNode.firstChild;\n const event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n const fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n const _buildWeeks = buildWeeks(),\n weekWrapper = _buildWeeks.weekWrapper,\n weekNumbers = _buildWeeks.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 const customAppend = self.config.appendTo !== undefined && 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) self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);else if (self.config.appendTo !== undefined) self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n const wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode) self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput) wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline) (self.config.appendTo !== undefined ? self.config.appendTo : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, dayNumber, i) {\n const dateIsEnabled = isEnabled(date, true),\n 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 && 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] && compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] && compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\") dayElement.classList.add(\"inRange\");\n }\n }\n } else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date)) dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers && self.config.showMonths === 1 && className !== \"prevMonthDay\" && 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\") onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n const startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n for (let m = startMonth; m != endMonth; m += delta) {\n const month = self.daysContainer.children[m];\n const startIndex = delta > 0 ? 0 : month.children.length - 1;\n const endIndex = delta > 0 ? month.children.length : -1;\n for (let i = startIndex; i != endIndex; i += delta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj)) return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n const givenMonth = current.className.indexOf(\"Month\") === -1 ? current.dateObj.getMonth() : self.currentMonth;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n const loopDelta = delta > 0 ? 1 : -1;\n for (let m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n const month = self.daysContainer.children[m];\n const startIndex = givenMonth - self.currentMonth === m ? current.$i + delta : delta < 0 ? month.children.length - 1 : 0;\n const numMonthDays = month.children.length;\n for (let i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj) && Math.abs(current.$i - i) >= Math.abs(delta)) return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n const dayFocused = isInView(document.activeElement || document.body);\n const startElem = current !== undefined ? current : dayFocused ? document.activeElement : self.selectedDateElem !== undefined && isInView(self.selectedDateElem) ? self.selectedDateElem : self.todayDateElem !== undefined && isInView(self.todayDateElem) ? self.todayDateElem : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n } else if (!dayFocused) {\n focusOnDayElem(startElem);\n } else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n const firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n const prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n const daysInMonth = self.utils.getDaysInMonth(month, year),\n days = window.document.createDocumentFragment(),\n isMultiMonth = self.config.showMonths > 1,\n prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\",\n nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n let dayNumber = prevMonthDays + 1 - firstOfMonth,\n dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (let dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth && (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n const dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers) clearNode(self.weekNumbers);\n const frag = document.createDocumentFragment();\n for (let i = 0; i < self.config.showMonths; i++) {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 || self.config.monthSelectorType !== \"dropdown\") return;\n const shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined && self.currentYear === self.config.minDate.getFullYear() && month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined && self.currentYear === self.config.maxDate.getFullYear() && month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (let i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i)) continue;\n const month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n const container = createElement(\"div\", \"flatpickr-month\");\n const monthNavFragment = window.document.createDocumentFragment();\n let monthElement;\n if (self.config.showMonths > 1 || self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n } else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", e => {\n const target = getEventTarget(e);\n const selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n const yearInput = createNumberInput(\"cur-year\", {\n tabindex: \"-1\"\n });\n const yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled = !!self.config.minDate && self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n const currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container,\n yearElement,\n monthElement\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (let m = self.config.showMonths; m--;) {\n const month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: () => self.__hidePrevMonthArrow,\n set(bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n }\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: () => self.__hideNextMonthArrow,\n set(bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n }\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar) self.calendarContainer.classList.add(\"noCalendar\");\n const defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n const separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n const hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n const minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getHours() : self.config.time_24hr ? defaults.hours : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getMinutes() : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr) self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n const secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getSeconds() : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj ? self.hourElement.value : 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) self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");else clearNode(self.weekdayContainer);\n for (let i = self.config.showMonths; i--;) {\n const container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n const firstDayOfWeek = self.l10n.firstDayOfWeek;\n let weekdays = [...self.l10n.weekdays.shorthand];\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = [...weekdays.splice(firstDayOfWeek, weekdays.length), ...weekdays.splice(0, firstDayOfWeek)];\n }\n for (let i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = `\n \n ${weekdays.join(\"\")}\n \n `;\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n const weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n const weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper,\n weekNumbers\n };\n }\n function changeMonth(value) {\n let isOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const delta = isOffset ? value : value - self.currentMonth;\n if (delta < 0 && self._hidePrevMonthArrow === true || delta > 0 && self._hideNextMonthArrow === true) return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear() {\n let triggerChangeEvent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n let toInitial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n self.input.value = \"\";\n if (self.altInput !== undefined) self.altInput.value = \"\";\n if (self.mobileInput !== undefined) self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n const _getDefaultHours = getDefaultHours(self.config),\n hours = _getDefaultHours.hours,\n minutes = _getDefaultHours.minutes,\n seconds = _getDefaultHours.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent) 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) triggerEvent(\"onDestroy\");\n for (let i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode) self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n } else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n const wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild) wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n } else self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode) self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\"_showTimeInput\", \"latestSelectedDateObj\", \"_hideNextMonthArrow\", \"_hidePrevMonthArrow\", \"__hideNextMonthArrow\", \"__hidePrevMonthArrow\", \"isMobile\", \"isOpen\", \"selectedDateElem\", \"minDateHasTime\", \"maxDateHasTime\", \"days\", \"daysContainer\", \"_input\", \"_positionElement\", \"innerContainer\", \"rContainer\", \"monthNav\", \"todayDateElem\", \"calendarContainer\", \"weekdayContainer\", \"prevMonthNav\", \"nextMonthNav\", \"monthsDropdownContainer\", \"currentMonthElement\", \"currentYearElement\", \"navigationCurrentMonth\", \"selectedDateElem\", \"config\"].forEach(k => {\n try {\n delete self[k];\n } catch (_) {}\n });\n }\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem)) return true;\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n const eventTarget = getEventTarget(e);\n const isCalendarElement = isCalendarElem(eventTarget);\n const isInput = eventTarget === self.input || eventTarget === self.altInput || self.element.contains(eventTarget) || e.path && e.path.indexOf && (~e.path.indexOf(self.input) || ~e.path.indexOf(self.altInput));\n const lostFocus = e.type === \"blur\" ? isInput && e.relatedTarget && !isCalendarElem(e.relatedTarget) : !isInput && !isCalendarElement && !isCalendarElem(e.relatedTarget);\n const isIgnored = !self.config.ignoredFocusElements.some(elem => elem.contains(eventTarget));\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined && self.minuteElement !== undefined && self.hourElement !== undefined && self.input.value !== \"\" && self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config && 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 || self.config.minDate && newYear < self.config.minDate.getFullYear() || self.config.maxDate && newYear > self.config.maxDate.getFullYear()) return;\n const newYearNum = newYear,\n isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate && self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n } else if (self.config.minDate && self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date) {\n let timeless = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var _a;\n const dateToCheck = self.parseDate(date, undefined, timeless);\n if (self.config.minDate && dateToCheck && compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0 || self.config.maxDate && dateToCheck && compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0) return false;\n if (!self.config.enable && self.config.disable.length === 0) return true;\n if (dateToCheck === undefined) return false;\n const bool = !!self.config.enable,\n array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (let i = 0, d; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" && d(dateToCheck)) return bool;else if (d instanceof Date && dateToCheck !== undefined && d.getTime() === dateToCheck.getTime()) return bool;else if (typeof d === \"string\") {\n const parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime() ? bool : !bool;\n } else if (typeof d === \"object\" && dateToCheck !== undefined && d.from && d.to && dateToCheck.getTime() >= d.from.getTime() && dateToCheck.getTime() <= d.to.getTime()) return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined) return elem.className.indexOf(\"hidden\") === -1 && elem.className.indexOf(\"flatpickr-disabled\") === -1 && self.daysContainer.contains(elem);\n return false;\n }\n function onBlur(e) {\n const isInput = e.target === self._input;\n if (isInput && (self.selectedDates.length > 0 || self._input.value.length > 0) && !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput ? self.config.altFormat : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n const eventTarget = getEventTarget(e);\n const isInput = self.config.wrap ? element.contains(eventTarget) : eventTarget === self._input;\n const allowInput = self.config.allowInput;\n const allowKeydown = self.isOpen && (!allowInput || !isInput);\n const allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput ? self.config.altFormat : self.config.dateFormat);\n return eventTarget.blur();\n } else {\n self.open();\n }\n } else if (isCalendarElem(eventTarget) || allowKeydown || allowInlineKeydown) {\n const isTimeObj = !!self.timeContainer && self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n } else selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n if (self.daysContainer !== undefined && (allowInput === false || document.activeElement && isInView(document.activeElement))) {\n const delta = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey) focusOnDay(undefined, delta);else {\n e.stopPropagation();\n changeMonth(delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n } else if (self.hourElement) self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n const delta = e.keyCode === 40 ? 1 : -1;\n if (self.daysContainer && eventTarget.$i !== undefined || eventTarget === self.input || eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n } else if (!isTimeObj) focusOnDay(undefined, delta * 7);\n } else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n } else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement) self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n const elems = [self.hourElement, self.minuteElement, self.secondElement, self.amPM].concat(self.pluginElements).filter(x => x);\n const i = elems.indexOf(eventTarget);\n if (i !== -1) {\n const target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n } else if (!self.config.noCalendar && self.daysContainer && self.daysContainer.contains(eventTarget) && e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 || elem && (!elem.classList.contains(\"flatpickr-day\") || elem.classList.contains(\"flatpickr-disabled\"))) return;\n const hoverDate = elem ? elem.dateObj.getTime() : self.days.firstElementChild.dateObj.getTime(),\n initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(),\n rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()),\n rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n let containsDisabled = false;\n let minRange = 0,\n maxRange = 0;\n for (let t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled = containsDisabled || t > rangeStartDate && t < rangeEndDate;\n if (t < initialDate && (!minRange || t > minRange)) minRange = t;else if (t > initialDate && (!maxRange || t < maxRange)) maxRange = t;\n }\n }\n for (let m = 0; m < self.config.showMonths; m++) {\n const month = self.daysContainer.children[m];\n for (let i = 0, l = month.children.length; i < l; i++) {\n const dayElem = month.children[i],\n date = dayElem.dateObj;\n const timestamp = date.getTime();\n const outOfRange = minRange > 0 && timestamp < minRange || maxRange > 0 && timestamp > maxRange;\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(c => {\n dayElem.classList.remove(c);\n });\n continue;\n } else if (containsDisabled && !outOfRange) continue;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(c => {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime() ? \"startRange\" : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate) dayElem.classList.add(\"startRange\");else if (initialDate > hoverDate && timestamp === initialDate) dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange && (maxRange === 0 || timestamp <= maxRange) && isBetween(timestamp, initialDate, hoverDate)) dayElem.classList.add(\"inRange\");\n }\n }\n }\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline) positionCalendar();\n }\n function open(e) {\n let positionElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : self._positionElement;\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n const eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n } else if (self._input.disabled || self.config.inline) {\n return;\n }\n const wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false && (e === undefined || !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(() => self.hourElement.select(), 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return date => {\n const dateObj = self.config[`_${type}Date`] = self.parseDate(date, self.config.dateFormat);\n const inverseDateObj = self.config[`_${type === \"min\" ? \"max\" : \"min\"}Date`];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] = dateObj.getHours() > 0 || dateObj.getMinutes() > 0 || dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(d => isEnabled(d));\n if (!self.selectedDates.length && type === \"min\") setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined) self.currentYearElement[type] = dateObj.getFullYear().toString();else self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled = !!inverseDateObj && dateObj !== undefined && inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n const boolOpts = [\"wrap\", \"weekNumbers\", \"allowInput\", \"allowInvalidPreload\", \"clickOpens\", \"time_24hr\", \"enableTime\", \"noCalendar\", \"altInput\", \"shorthandCurrentMonth\", \"inline\", \"static\", \"enableSeconds\", \"disableMobile\"];\n const userConfig = Object.assign(Object.assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n const formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: () => self.config._enable,\n set: dates => {\n self.config._enable = parseDateRules(dates);\n }\n });\n Object.defineProperty(self.config, \"disable\", {\n get: () => self.config._disable,\n set: dates => {\n self.config._disable = parseDateRules(dates);\n }\n });\n const timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n const defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat = userConfig.noCalendar || timeMode ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\") : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput && (userConfig.enableTime || timeMode) && !userConfig.altFormat) {\n const defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat = userConfig.noCalendar || timeMode ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\") : defaultAltFormat + ` h:i${userConfig.enableSeconds ? \":S\" : \"\"} K`;\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: () => self.config._minDate,\n set: minMaxDateSetter(\"min\")\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: () => self.config._maxDate,\n set: minMaxDateSetter(\"max\")\n });\n const minMaxTimeSetter = type => val => {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n };\n Object.defineProperty(self.config, \"minTime\", {\n get: () => self.config._minTime,\n set: minMaxTimeSetter(\"min\")\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: () => self.config._maxTime,\n set: minMaxTimeSetter(\"max\")\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (let i = 0; i < boolOpts.length; i++) self.config[boolOpts[i]] = self.config[boolOpts[i]] === true || self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(hook => self.config[hook] !== undefined).forEach(hook => {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile = !self.config.disableMobile && !self.config.inline && self.config.mode === \"single\" && !self.config.disable.length && !self.config.enable && !self.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (let i = 0; i < self.config.plugins.length; i++) {\n const pluginConf = self.config.plugins[i](self) || {};\n for (const key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key]).map(bindToInstance).concat(self.config[key]);\n } else if (typeof userConfig[key] === \"undefined\") self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass = getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap ? element.querySelector(\"[data-input]\") : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" && typeof flatpickr.l10ns[self.config.locale] === \"undefined\") self.config.errorHandler(new Error(`flatpickr: invalid locale ${self.config.locale}`));\n self.l10n = Object.assign(Object.assign({}, flatpickr.l10ns.default), typeof self.config.locale === \"object\" ? self.config.locale : self.config.locale !== \"default\" ? flatpickr.l10ns[self.config.locale] : undefined);\n tokenRegex.K = `(${self.l10n.amPM[0]}|${self.l10n.amPM[1]}|${self.l10n.amPM[0].toLowerCase()}|${self.l10n.amPM[1].toLowerCase()})`;\n const userConfig = Object.assign(Object.assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined && flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({\n config: self.config,\n l10n: self.l10n\n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined) return;\n triggerEvent(\"onPreCalendarPosition\");\n const positionElement = customPositionElement || self._positionElement;\n const calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (acc, child) => acc + child.offsetHeight, 0),\n calendarWidth = self.calendarContainer.offsetWidth,\n configPos = self.config.position.split(\" \"),\n configPosVertical = configPos[0],\n configPosHorizontal = configPos.length > 1 ? configPos[1] : null,\n inputBounds = positionElement.getBoundingClientRect(),\n distanceFromBottom = window.innerHeight - inputBounds.bottom,\n showOnTop = configPosVertical === \"above\" || configPosVertical !== \"below\" && distanceFromBottom < calendarHeight && inputBounds.top > calendarHeight;\n const top = window.pageYOffset + inputBounds.top + (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline) return;\n let left = window.pageXOffset + inputBounds.left;\n let isCenter = false;\n let isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n } else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n const right = window.document.body.offsetWidth - (window.pageXOffset + inputBounds.right);\n const rightMost = left + calendarWidth > window.document.body.offsetWidth;\n const centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static) 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 } else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = `${right}px`;\n } else {\n const doc = getDocumentStyleSheet();\n if (doc === undefined) return;\n const bodyWidth = window.document.body.offsetWidth;\n const centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n const centerBefore = \".flatpickr-calendar.centerMost:before\";\n const centerAfter = \".flatpickr-calendar.centerMost:after\";\n const centerIndex = doc.cssRules.length;\n const centerStyle = `{left:${inputBounds.left}px;right:auto;}`;\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(`${centerBefore},${centerAfter}${centerStyle}`, centerIndex);\n self.calendarContainer.style.left = `${centerLeft}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n let editableSheet = null;\n for (let i = 0; i < document.styleSheets.length; i++) {\n const sheet = document.styleSheets[i];\n try {\n sheet.cssRules;\n } catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile) return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 || navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n } else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n const isSelectable = day => day.classList && day.classList.contains(\"flatpickr-day\") && !day.classList.contains(\"flatpickr-disabled\") && !day.classList.contains(\"notAllowed\");\n const t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined) return;\n const target = t;\n const selectedDate = self.latestSelectedDateObj = new Date(target.dateObj.getTime());\n const shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth || selectedDate.getMonth() > self.currentMonth + self.config.showMonths - 1) && self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\") self.selectedDates = [selectedDate];else if (self.config.mode === \"multiple\") {\n const selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex) self.selectedDates.splice(parseInt(selectedIndex), 1);else self.selectedDates.push(selectedDate);\n } else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0) self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n const isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth && self.config.mode !== \"range\" && self.config.showMonths === 1) focusOnDayElem(target);else if (self.selectedDateElem !== undefined && self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined) self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n const single = self.config.mode === \"single\" && !self.config.enableTime;\n const range = self.config.mode === \"range\" && self.selectedDates.length === 2 && !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n const CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n clickOpens: [() => {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n } else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n }]\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (const key in option) {\n if (CALLBACKS[key] !== undefined) CALLBACKS[key].forEach(x => x());\n }\n } else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined) CALLBACKS[option].forEach(x => x());else if (HOOKS.indexOf(option) > -1) self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n let dates = [];\n if (inputDate instanceof Array) dates = inputDate.map(d => self.parseDate(d, format));else if (inputDate instanceof Date || typeof inputDate === \"number\") dates = [self.parseDate(inputDate, format)];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.split(self.config.conjunction).map(date => self.parseDate(date, format));\n break;\n case \"range\":\n dates = inputDate.split(self.l10n.rangeSeparator).map(date => self.parseDate(date, format));\n break;\n default:\n break;\n }\n } else self.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(inputDate)}`));\n self.selectedDates = self.config.allowInvalidPreload ? dates : dates.filter(d => d instanceof Date && isEnabled(d, false));\n if (self.config.mode === \"range\") self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n function setDate(date) {\n let triggerChange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : self.config.dateFormat;\n if (date !== 0 && !date || date instanceof Array && date.length === 0) return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj = self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange) triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr.slice().map(rule => {\n if (typeof rule === \"string\" || typeof rule === \"number\" || rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n } else if (rule && typeof rule === \"object\" && rule.from && rule.to) return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined)\n };\n return rule;\n }).filter(x => x);\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n const preloadedDate = self.config.defaultDate || ((self.input.nodeName === \"INPUT\" || self.input.nodeName === \"TEXTAREA\") && self.input.placeholder && self.input.value === self.input.placeholder ? null : self.input.value);\n if (preloadedDate) setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate = self.selectedDates.length > 0 ? self.selectedDates[0] : self.config.minDate && self.config.minDate.getTime() > self.now.getTime() ? self.config.minDate : self.config.maxDate && self.config.maxDate.getTime() < self.now.getTime() ? self.config.maxDate : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0) self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined) self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined) self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime = !!self.config.minDate && (self.config.minDate.getHours() > 0 || self.config.minDate.getMinutes() > 0 || self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime = !!self.config.maxDate && (self.config.maxDate.getHours() > 0 || self.config.maxDate.getMinutes() > 0 || self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode) self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput) self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n const inputType = self.config.enableTime ? self.config.noCalendar ? \"time\" : \"datetime-local\" : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr = inputType === \"datetime-local\" ? \"Y-m-d\\\\TH:i:S\" : inputType === \"date\" ? \"Y-m-d\" : \"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) self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate) self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\")) self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined) self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode) self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n } catch (_a) {}\n bind(self.mobileInput, \"change\", e => {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true) return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined) return;\n const hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (let i = 0; hooks[i] && i < hooks.length; i++) hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n const e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (let i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0) return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2) return false;\n return compareDates(date, self.selectedDates[0]) >= 0 && compareDates(date, self.selectedDates[1]) <= 0;\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav) return;\n self.yearElements.forEach((yearElement, i) => {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 || self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent = monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n } else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow = self.config.minDate !== undefined && (self.currentYear === self.config.minDate.getFullYear() ? self.currentMonth <= self.config.minDate.getMonth() : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow = self.config.maxDate !== undefined && (self.currentYear === self.config.maxDate.getFullYear() ? self.currentMonth + 1 > self.config.maxDate.getMonth() : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(format) {\n return self.selectedDates.map(dObj => self.formatDate(dObj, format)).filter((d, i, arr) => self.config.mode !== \"range\" || self.config.enableTime || arr.indexOf(d) === i).join(self.config.mode !== \"range\" ? self.config.conjunction : self.l10n.rangeSeparator);\n }\n function updateValue() {\n let triggerChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value = self.latestSelectedDateObj !== undefined ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr) : \"\";\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) triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n const eventTarget = getEventTarget(e);\n const isPrevMonth = self.prevMonthNav.contains(eventTarget);\n const isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n } else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n } else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n } else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n const isKeyDown = e.type === \"keydown\",\n eventTarget = getEventTarget(e),\n input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent = self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n const min = parseFloat(input.getAttribute(\"min\")),\n max = parseFloat(input.getAttribute(\"max\")),\n step = parseFloat(input.getAttribute(\"step\")),\n curValue = parseInt(input.value, 10),\n delta = e.delta || (isKeyDown ? e.which === 38 ? 1 : -1 : 0);\n let newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n const isHourElem = input === self.hourElement,\n isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue = max + newValue + int(!isHourElem) + (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem) incrementNumInput(undefined, -1, self.hourElement);\n } else if (newValue > max) {\n newValue = input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem) incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM && isHourElem && (step === 1 ? newValue + curValue === 23 : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent = self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n const nodes = Array.prototype.slice.call(nodeList).filter(x => x instanceof HTMLElement);\n const instances = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null) 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 } catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" && typeof HTMLCollection !== \"undefined\" && typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n } else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n } else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: Object.assign({}, English),\n default: Object.assign({}, English)\n};\nflatpickr.localize = l10n => {\n flatpickr.l10ns.default = Object.assign(Object.assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = config => {\n flatpickr.defaultConfig = Object.assign(Object.assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.de = {}));\n})(this, function (exports) {\n 'use strict';\n\n var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined ? window.flatpickr : {\n l10ns: {}\n };\n var German = {\n weekdays: {\n shorthand: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n longhand: [\"Sonntag\", \"Montag\", \"Dienstag\", \"Mittwoch\", \"Donnerstag\", \"Freitag\", \"Samstag\"]\n },\n months: {\n shorthand: [\"Jan\", \"Feb\", \"Mär\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dez\"],\n longhand: [\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"]\n },\n firstDayOfWeek: 1,\n weekAbbreviation: \"KW\",\n rangeSeparator: \" bis \",\n scrollTitle: \"Zum Ändern scrollen\",\n toggleTitle: \"Zum Umschalten klicken\",\n time_24hr: true\n };\n fp.l10ns.de = German;\n var de = fp.l10ns;\n exports.German = German;\n exports.default = de;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","var g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.monthSelectPlugin = factory());\n})(this, function () {\n 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n var monthToStr = function (monthNumber, shorthand, locale) {\n return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\n };\n function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n } catch (error) {\n return event.target;\n }\n }\n var defaultConfig = {\n shorthand: false,\n dateFormat: \"F Y\",\n altFormat: \"F Y\",\n theme: \"light\"\n };\n function monthSelectPlugin(pluginConfig) {\n var config = __assign(__assign({}, defaultConfig), pluginConfig);\n return function (fp) {\n fp.config.dateFormat = config.dateFormat;\n fp.config.altFormat = config.altFormat;\n var self = {\n monthsContainer: null\n };\n function clearUnnecessaryDOMElements() {\n if (!fp.rContainer || !fp.daysContainer || !fp.weekdayContainer) return;\n fp.rContainer.removeChild(fp.daysContainer);\n fp.rContainer.removeChild(fp.weekdayContainer);\n for (var index = 0; index < fp.monthElements.length; index++) {\n var element = fp.monthElements[index];\n if (!element.parentNode) continue;\n element.parentNode.removeChild(element);\n }\n }\n function addListeners() {\n fp._bind(fp.prevMonthNav, \"click\", function (e) {\n e.preventDefault();\n e.stopPropagation();\n fp.changeYear(fp.currentYear - 1);\n selectYear();\n });\n fp._bind(fp.nextMonthNav, \"click\", function (e) {\n e.preventDefault();\n e.stopPropagation();\n fp.changeYear(fp.currentYear + 1);\n selectYear();\n });\n }\n function addMonths() {\n if (!fp.rContainer) return;\n self.monthsContainer = fp._createElement(\"div\", \"flatpickr-monthSelect-months\");\n self.monthsContainer.tabIndex = -1;\n fp.calendarContainer.classList.add(\"flatpickr-monthSelect-theme-\" + config.theme);\n for (var i = 0; i < 12; i++) {\n var month = fp._createElement(\"span\", \"flatpickr-monthSelect-month\");\n month.dateObj = new Date(fp.currentYear, i);\n month.$i = i;\n month.textContent = monthToStr(i, config.shorthand, fp.l10n);\n month.tabIndex = -1;\n month.addEventListener(\"click\", selectMonth);\n self.monthsContainer.appendChild(month);\n if (fp.config.minDate && month.dateObj < fp.config.minDate || fp.config.maxDate && month.dateObj > fp.config.maxDate) {\n month.classList.add(\"disabled\");\n }\n }\n fp.rContainer.appendChild(self.monthsContainer);\n }\n function setCurrentlySelected() {\n if (!fp.rContainer) return;\n var currentlySelected = fp.rContainer.querySelectorAll(\".flatpickr-monthSelect-month.selected\");\n for (var index = 0; index < currentlySelected.length; index++) {\n currentlySelected[index].classList.remove(\"selected\");\n }\n var targetMonth = (fp.selectedDates[0] || new Date()).getMonth();\n var month = fp.rContainer.querySelector(\".flatpickr-monthSelect-month:nth-child(\" + (targetMonth + 1) + \")\");\n if (month) {\n month.classList.add(\"selected\");\n }\n }\n function selectYear() {\n var selectedDate = fp.selectedDates[0];\n if (selectedDate) {\n selectedDate = new Date(selectedDate);\n selectedDate.setFullYear(fp.currentYear);\n if (fp.config.minDate && selectedDate < fp.config.minDate) {\n selectedDate = fp.config.minDate;\n }\n if (fp.config.maxDate && selectedDate > fp.config.maxDate) {\n selectedDate = fp.config.maxDate;\n }\n fp.currentYear = selectedDate.getFullYear();\n }\n fp.currentYearElement.value = String(fp.currentYear);\n if (fp.rContainer) {\n var months = fp.rContainer.querySelectorAll(\".flatpickr-monthSelect-month\");\n months.forEach(function (month) {\n month.dateObj.setFullYear(fp.currentYear);\n if (fp.config.minDate && month.dateObj < fp.config.minDate || fp.config.maxDate && month.dateObj > fp.config.maxDate) {\n month.classList.add(\"disabled\");\n } else {\n month.classList.remove(\"disabled\");\n }\n });\n }\n setCurrentlySelected();\n }\n function selectMonth(e) {\n e.preventDefault();\n e.stopPropagation();\n var eventTarget = getEventTarget(e);\n if (eventTarget instanceof Element && !eventTarget.classList.contains(\"disabled\")) {\n setMonth(eventTarget.dateObj);\n fp.close();\n }\n }\n function setMonth(date) {\n var selectedDate = new Date(date);\n selectedDate.setFullYear(fp.currentYear);\n fp.setDate(selectedDate, true);\n setCurrentlySelected();\n }\n var shifts = {\n 37: -1,\n 39: 1,\n 40: 3,\n 38: -3\n };\n function onKeyDown(_, __, ___, e) {\n var shouldMove = shifts[e.keyCode] !== undefined;\n if (!shouldMove && e.keyCode !== 13) {\n return;\n }\n if (!fp.rContainer || !self.monthsContainer) return;\n var currentlySelected = fp.rContainer.querySelector(\".flatpickr-monthSelect-month.selected\");\n var index = Array.prototype.indexOf.call(self.monthsContainer.children, document.activeElement);\n if (index === -1) {\n var target = currentlySelected || self.monthsContainer.firstElementChild;\n target.focus();\n index = target.$i;\n }\n if (shouldMove) {\n self.monthsContainer.children[(12 + index + shifts[e.keyCode]) % 12].focus();\n } else if (e.keyCode === 13 && self.monthsContainer.contains(document.activeElement)) {\n setMonth(document.activeElement.dateObj);\n }\n }\n function destroyPluginInstance() {\n if (self.monthsContainer !== null) {\n var months = self.monthsContainer.querySelectorAll(\".flatpickr-monthSelect-month\");\n for (var index = 0; index < months.length; index++) {\n months[index].removeEventListener(\"click\", selectMonth);\n }\n }\n }\n return {\n onParseConfig: function () {\n fp.config.mode = \"single\";\n fp.config.enableTime = false;\n },\n onValueUpdate: setCurrentlySelected,\n onKeyDown: onKeyDown,\n onReady: [function () {\n fp.currentMonth = 0;\n }, clearUnnecessaryDOMElements, addListeners, addMonths, setCurrentlySelected, function () {\n fp.loadedPlugins.push(\"monthSelect\");\n }],\n onDestroy: destroyPluginInstance\n };\n };\n }\n return monthSelectPlugin;\n});","/*! @vimeo/player v2.23.0 | (c) 2024 Vimeo | MIT License | https://github.com/vimeo/player.js */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _regeneratorRuntime() {\n _regeneratorRuntime = function () {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function (obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == typeof value && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator.return && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function (skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function () {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function (exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function (type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function (record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function (finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n catch: function (tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function (iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\n/**\n * @module lib/functions\n */\n\n/**\n * Check to see this is a node environment.\n * @type {Boolean}\n */\n/* global global */\nvar isNode = typeof global !== 'undefined' && {}.toString.call(global) === '[object global]';\n\n/**\n * Get the name of the method for a given getter or setter.\n *\n * @param {string} prop The name of the property.\n * @param {string} type Either “get” or “set”.\n * @return {string}\n */\nfunction getMethodName(prop, type) {\n if (prop.indexOf(type.toLowerCase()) === 0) {\n return prop;\n }\n return \"\".concat(type.toLowerCase()).concat(prop.substr(0, 1).toUpperCase()).concat(prop.substr(1));\n}\n\n/**\n * Check to see if the object is a DOM Element.\n *\n * @param {*} element The object to check.\n * @return {boolean}\n */\nfunction isDomElement(element) {\n return Boolean(element && element.nodeType === 1 && 'nodeName' in element && element.ownerDocument && element.ownerDocument.defaultView);\n}\n\n/**\n * Check to see whether the value is a number.\n *\n * @see http://dl.dropboxusercontent.com/u/35146/js/tests/isNumber.html\n * @param {*} value The value to check.\n * @param {boolean} integer Check if the value is an integer.\n * @return {boolean}\n */\nfunction isInteger(value) {\n // eslint-disable-next-line eqeqeq\n return !isNaN(parseFloat(value)) && isFinite(value) && Math.floor(value) == value;\n}\n\n/**\n * Check to see if the URL is a Vimeo url.\n *\n * @param {string} url The url string.\n * @return {boolean}\n */\nfunction isVimeoUrl(url) {\n return /^(https?:)?\\/\\/((((player|www)\\.)?vimeo\\.com)|((player\\.)?[a-zA-Z0-9-]+\\.videoji\\.hk))(?=$|\\/)/.test(url);\n}\n\n/**\n * Check to see if the URL is for a Vimeo embed.\n *\n * @param {string} url The url string.\n * @return {boolean}\n */\nfunction isVimeoEmbed(url) {\n var expr = /^https:\\/\\/player\\.((vimeo\\.com)|([a-zA-Z0-9-]+\\.videoji\\.hk))\\/video\\/\\d+/;\n return expr.test(url);\n}\nfunction getOembedDomain(url) {\n var match = (url || '').match(/^(?:https?:)?(?:\\/\\/)?([^/?]+)/);\n var domain = (match && match[1] || '').replace('player.', '');\n if (domain.endsWith('.videoji.hk')) {\n return domain;\n }\n return 'vimeo.com';\n}\n\n/**\n * Get the Vimeo URL from an element.\n * The element must have either a data-vimeo-id or data-vimeo-url attribute.\n *\n * @param {object} oEmbedParameters The oEmbed parameters.\n * @return {string}\n */\nfunction getVimeoUrl() {\n var oEmbedParameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var id = oEmbedParameters.id;\n var url = oEmbedParameters.url;\n var idOrUrl = id || url;\n if (!idOrUrl) {\n throw new Error('An id or url must be passed, either in an options object or as a data-vimeo-id or data-vimeo-url attribute.');\n }\n if (isInteger(idOrUrl)) {\n return \"https://vimeo.com/\".concat(idOrUrl);\n }\n if (isVimeoUrl(idOrUrl)) {\n return idOrUrl.replace('http:', 'https:');\n }\n if (id) {\n throw new TypeError(\"\\u201C\".concat(id, \"\\u201D is not a valid video id.\"));\n }\n throw new TypeError(\"\\u201C\".concat(idOrUrl, \"\\u201D is not a vimeo.com url.\"));\n}\n\n/* eslint-disable max-params */\n/**\n * A utility method for attaching and detaching event handlers\n *\n * @param {EventTarget} target\n * @param {string | string[]} eventName\n * @param {function} callback\n * @param {'addEventListener' | 'on'} onName\n * @param {'removeEventListener' | 'off'} offName\n * @return {{cancel: (function(): void)}}\n */\nvar subscribe = function subscribe(target, eventName, callback) {\n var onName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'addEventListener';\n var offName = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'removeEventListener';\n var eventNames = typeof eventName === 'string' ? [eventName] : eventName;\n eventNames.forEach(function (evName) {\n target[onName](evName, callback);\n });\n return {\n cancel: function cancel() {\n return eventNames.forEach(function (evName) {\n return target[offName](evName, callback);\n });\n }\n };\n};\nvar arrayIndexOfSupport = typeof Array.prototype.indexOf !== 'undefined';\nvar postMessageSupport = typeof window !== 'undefined' && typeof window.postMessage !== 'undefined';\nif (!isNode && (!arrayIndexOfSupport || !postMessageSupport)) {\n throw new Error('Sorry, the Vimeo Player API is not available in this browser.');\n}\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nfunction createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n}\n\n/*!\n * weakmap-polyfill v2.0.4 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2021 polygonplanet \n * @license MIT\n */\n\n(function (self) {\n if (self.WeakMap) {\n return;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasDefine = Object.defineProperty && function () {\n try {\n // Avoid IE8's broken Object.defineProperty\n return Object.defineProperty({}, 'x', {\n value: 1\n }).x === 1;\n } catch (e) {}\n }();\n var defineProperty = function (object, name, value) {\n if (hasDefine) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n self.WeakMap = function () {\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n defineProperty(this, '_id', genId('_WeakMap'));\n\n // ECMA-262 23.3.1.1 WeakMap([iterable])\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n }\n\n // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n defineProperty(WeakMap.prototype, 'delete', function (key) {\n checkInstance(this, 'delete');\n if (!isObject(key)) {\n return false;\n }\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n return false;\n });\n\n // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n defineProperty(WeakMap.prototype, 'get', function (key) {\n checkInstance(this, 'get');\n if (!isObject(key)) {\n return void 0;\n }\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return entry[1];\n }\n return void 0;\n });\n\n // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n defineProperty(WeakMap.prototype, 'has', function (key) {\n checkInstance(this, 'has');\n if (!isObject(key)) {\n return false;\n }\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return true;\n }\n return false;\n });\n\n // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n defineProperty(WeakMap.prototype, 'set', function (key, value) {\n checkInstance(this, 'set');\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(methodName + ' method called on incompatible receiver ' + typeof x);\n }\n }\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n function rand() {\n return Math.random().toString().substring(2);\n }\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n }();\n function isObject(x) {\n return Object(x) === x;\n }\n})(typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : commonjsGlobal);\nvar npo_src = createCommonjsModule(function (module) {\n /*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n */\n\n (function UMD(name, context, definition) {\n // special form of UMD for polyfilling across evironments\n context[name] = context[name] || definition();\n if (module.exports) {\n module.exports = context[name];\n }\n })(\"Promise\", typeof commonjsGlobal != \"undefined\" ? commonjsGlobal : commonjsGlobal, function DEF() {\n var builtInProp,\n cycle,\n scheduling_queue,\n ToString = Object.prototype.toString,\n timer = typeof setImmediate != \"undefined\" ? function timer(fn) {\n return setImmediate(fn);\n } : setTimeout;\n\n // dammit, IE8.\n try {\n Object.defineProperty({}, \"x\", {});\n builtInProp = function builtInProp(obj, name, val, config) {\n return Object.defineProperty(obj, name, {\n value: val,\n writable: true,\n configurable: config !== false\n });\n };\n } catch (err) {\n builtInProp = function builtInProp(obj, name, val) {\n obj[name] = val;\n return obj;\n };\n }\n\n // Note: using a queue instead of array for efficiency\n scheduling_queue = function Queue() {\n var first, last, item;\n function Item(fn, self) {\n this.fn = fn;\n this.self = self;\n this.next = void 0;\n }\n return {\n add: function add(fn, self) {\n item = new Item(fn, self);\n if (last) {\n last.next = item;\n } else {\n first = item;\n }\n last = item;\n item = void 0;\n },\n drain: function drain() {\n var f = first;\n first = last = cycle = void 0;\n while (f) {\n f.fn.call(f.self);\n f = f.next;\n }\n }\n };\n }();\n function schedule(fn, self) {\n scheduling_queue.add(fn, self);\n if (!cycle) {\n cycle = timer(scheduling_queue.drain);\n }\n }\n\n // promise duck typing\n function isThenable(o) {\n var _then,\n o_type = typeof o;\n if (o != null && (o_type == \"object\" || o_type == \"function\")) {\n _then = o.then;\n }\n return typeof _then == \"function\" ? _then : false;\n }\n function notify() {\n for (var i = 0; i < this.chain.length; i++) {\n notifyIsolated(this, this.state === 1 ? this.chain[i].success : this.chain[i].failure, this.chain[i]);\n }\n this.chain.length = 0;\n }\n\n // NOTE: This is a separate function to isolate\n // the `try..catch` so that other code can be\n // optimized better\n function notifyIsolated(self, cb, chain) {\n var ret, _then;\n try {\n if (cb === false) {\n chain.reject(self.msg);\n } else {\n if (cb === true) {\n ret = self.msg;\n } else {\n ret = cb.call(void 0, self.msg);\n }\n if (ret === chain.promise) {\n chain.reject(TypeError(\"Promise-chain cycle\"));\n } else if (_then = isThenable(ret)) {\n _then.call(ret, chain.resolve, chain.reject);\n } else {\n chain.resolve(ret);\n }\n }\n } catch (err) {\n chain.reject(err);\n }\n }\n function resolve(msg) {\n var _then,\n self = this;\n\n // already triggered?\n if (self.triggered) {\n return;\n }\n self.triggered = true;\n\n // unwrap\n if (self.def) {\n self = self.def;\n }\n try {\n if (_then = isThenable(msg)) {\n schedule(function () {\n var def_wrapper = new MakeDefWrapper(self);\n try {\n _then.call(msg, function $resolve$() {\n resolve.apply(def_wrapper, arguments);\n }, function $reject$() {\n reject.apply(def_wrapper, arguments);\n });\n } catch (err) {\n reject.call(def_wrapper, err);\n }\n });\n } else {\n self.msg = msg;\n self.state = 1;\n if (self.chain.length > 0) {\n schedule(notify, self);\n }\n }\n } catch (err) {\n reject.call(new MakeDefWrapper(self), err);\n }\n }\n function reject(msg) {\n var self = this;\n\n // already triggered?\n if (self.triggered) {\n return;\n }\n self.triggered = true;\n\n // unwrap\n if (self.def) {\n self = self.def;\n }\n self.msg = msg;\n self.state = 2;\n if (self.chain.length > 0) {\n schedule(notify, self);\n }\n }\n function iteratePromises(Constructor, arr, resolver, rejecter) {\n for (var idx = 0; idx < arr.length; idx++) {\n (function IIFE(idx) {\n Constructor.resolve(arr[idx]).then(function $resolver$(msg) {\n resolver(idx, msg);\n }, rejecter);\n })(idx);\n }\n }\n function MakeDefWrapper(self) {\n this.def = self;\n this.triggered = false;\n }\n function MakeDef(self) {\n this.promise = self;\n this.state = 0;\n this.triggered = false;\n this.chain = [];\n this.msg = void 0;\n }\n function Promise(executor) {\n if (typeof executor != \"function\") {\n throw TypeError(\"Not a function\");\n }\n if (this.__NPO__ !== 0) {\n throw TypeError(\"Not a promise\");\n }\n\n // instance shadowing the inherited \"brand\"\n // to signal an already \"initialized\" promise\n this.__NPO__ = 1;\n var def = new MakeDef(this);\n this[\"then\"] = function then(success, failure) {\n var o = {\n success: typeof success == \"function\" ? success : true,\n failure: typeof failure == \"function\" ? failure : false\n };\n // Note: `then(..)` itself can be borrowed to be used against\n // a different promise constructor for making the chained promise,\n // by substituting a different `this` binding.\n o.promise = new this.constructor(function extractChain(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n o.resolve = resolve;\n o.reject = reject;\n });\n def.chain.push(o);\n if (def.state !== 0) {\n schedule(notify, def);\n }\n return o.promise;\n };\n this[\"catch\"] = function $catch$(failure) {\n return this.then(void 0, failure);\n };\n try {\n executor.call(void 0, function publicResolve(msg) {\n resolve.call(def, msg);\n }, function publicReject(msg) {\n reject.call(def, msg);\n });\n } catch (err) {\n reject.call(def, err);\n }\n }\n var PromisePrototype = builtInProp({}, \"constructor\", Promise, /*configurable=*/false);\n\n // Note: Android 4 cannot use `Object.defineProperty(..)` here\n Promise.prototype = PromisePrototype;\n\n // built-in \"brand\" to signal an \"uninitialized\" promise\n builtInProp(PromisePrototype, \"__NPO__\", 0, /*configurable=*/false);\n builtInProp(Promise, \"resolve\", function Promise$resolve(msg) {\n var Constructor = this;\n\n // spec mandated checks\n // note: best \"isPromise\" check that's practical for now\n if (msg && typeof msg == \"object\" && msg.__NPO__ === 1) {\n return msg;\n }\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n resolve(msg);\n });\n });\n builtInProp(Promise, \"reject\", function Promise$reject(msg) {\n return new this(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n reject(msg);\n });\n });\n builtInProp(Promise, \"all\", function Promise$all(arr) {\n var Constructor = this;\n\n // spec mandated checks\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n if (arr.length === 0) {\n return Constructor.resolve([]);\n }\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n var len = arr.length,\n msgs = Array(len),\n count = 0;\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n msgs[idx] = msg;\n if (++count === len) {\n resolve(msgs);\n }\n }, reject);\n });\n });\n builtInProp(Promise, \"race\", function Promise$race(arr) {\n var Constructor = this;\n\n // spec mandated checks\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n resolve(msg);\n }, reject);\n });\n });\n return Promise;\n });\n});\n\n/**\n * @module lib/callbacks\n */\n\nvar callbackMap = new WeakMap();\n\n/**\n * Store a callback for a method or event for a player.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name.\n * @param {(function(this:Player, *): void|{resolve: function, reject: function})} callback\n * The callback to call or an object with resolve and reject functions for a promise.\n * @return {void}\n */\nfunction storeCallback(player, name, callback) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n if (!(name in playerCallbacks)) {\n playerCallbacks[name] = [];\n }\n playerCallbacks[name].push(callback);\n callbackMap.set(player.element, playerCallbacks);\n}\n\n/**\n * Get the callbacks for a player and event or method.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name\n * @return {function[]}\n */\nfunction getCallbacks(player, name) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n return playerCallbacks[name] || [];\n}\n\n/**\n * Remove a stored callback for a method or event for a player.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name\n * @param {function} [callback] The specific callback to remove.\n * @return {boolean} Was this the last callback?\n */\nfunction removeCallback(player, name, callback) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n if (!playerCallbacks[name]) {\n return true;\n }\n\n // If no callback is passed, remove all callbacks for the event\n if (!callback) {\n playerCallbacks[name] = [];\n callbackMap.set(player.element, playerCallbacks);\n return true;\n }\n var index = playerCallbacks[name].indexOf(callback);\n if (index !== -1) {\n playerCallbacks[name].splice(index, 1);\n }\n callbackMap.set(player.element, playerCallbacks);\n return playerCallbacks[name] && playerCallbacks[name].length === 0;\n}\n\n/**\n * Return the first stored callback for a player and event or method.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name.\n * @return {function} The callback, or false if there were none\n */\nfunction shiftCallbacks(player, name) {\n var playerCallbacks = getCallbacks(player, name);\n if (playerCallbacks.length < 1) {\n return false;\n }\n var callback = playerCallbacks.shift();\n removeCallback(player, name, callback);\n return callback;\n}\n\n/**\n * Move callbacks associated with an element to another element.\n *\n * @param {HTMLElement} oldElement The old element.\n * @param {HTMLElement} newElement The new element.\n * @return {void}\n */\nfunction swapCallbacks(oldElement, newElement) {\n var playerCallbacks = callbackMap.get(oldElement);\n callbackMap.set(newElement, playerCallbacks);\n callbackMap.delete(oldElement);\n}\n\n/**\n * @module lib/postmessage\n */\n\n/**\n * Parse a message received from postMessage.\n *\n * @param {*} data The data received from postMessage.\n * @return {object}\n */\nfunction parseMessageData(data) {\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (error) {\n // If the message cannot be parsed, throw the error as a warning\n console.warn(error);\n return {};\n }\n }\n return data;\n}\n\n/**\n * Post a message to the specified target.\n *\n * @param {Player} player The player object to use.\n * @param {string} method The API method to call.\n * @param {object} params The parameters to send to the player.\n * @return {void}\n */\nfunction postMessage(player, method, params) {\n if (!player.element.contentWindow || !player.element.contentWindow.postMessage) {\n return;\n }\n var message = {\n method: method\n };\n if (params !== undefined) {\n message.value = params;\n }\n\n // IE 8 and 9 do not support passing messages, so stringify them\n var ieVersion = parseFloat(navigator.userAgent.toLowerCase().replace(/^.*msie (\\d+).*$/, '$1'));\n if (ieVersion >= 8 && ieVersion < 10) {\n message = JSON.stringify(message);\n }\n player.element.contentWindow.postMessage(message, player.origin);\n}\n\n/**\n * Parse the data received from a message event.\n *\n * @param {Player} player The player that received the message.\n * @param {(Object|string)} data The message data. Strings will be parsed into JSON.\n * @return {void}\n */\nfunction processData(player, data) {\n data = parseMessageData(data);\n var callbacks = [];\n var param;\n if (data.event) {\n if (data.event === 'error') {\n var promises = getCallbacks(player, data.data.method);\n promises.forEach(function (promise) {\n var error = new Error(data.data.message);\n error.name = data.data.name;\n promise.reject(error);\n removeCallback(player, data.data.method, promise);\n });\n }\n callbacks = getCallbacks(player, \"event:\".concat(data.event));\n param = data.data;\n } else if (data.method) {\n var callback = shiftCallbacks(player, data.method);\n if (callback) {\n callbacks.push(callback);\n param = data.value;\n }\n }\n callbacks.forEach(function (callback) {\n try {\n if (typeof callback === 'function') {\n callback.call(player, param);\n return;\n }\n callback.resolve(param);\n } catch (e) {\n // empty\n }\n });\n}\n\n/**\n * @module lib/embed\n */\nvar oEmbedParameters = ['airplay', 'audio_tracks', 'autopause', 'autoplay', 'background', 'byline', 'cc', 'chapter_id', 'chapters', 'chromecast', 'color', 'colors', 'controls', 'dnt', 'end_time', 'fullscreen', 'height', 'id', 'interactive_params', 'keyboard', 'loop', 'maxheight', 'maxwidth', 'muted', 'play_button_position', 'playsinline', 'portrait', 'progress_bar', 'quality_selector', 'responsive', 'speed', 'start_time', 'texttrack', 'title', 'transcript', 'transparent', 'url', 'vimeo_logo', 'volume', 'watch_full_video', 'width'];\n\n/**\n * Get the 'data-vimeo'-prefixed attributes from an element as an object.\n *\n * @param {HTMLElement} element The element.\n * @param {Object} [defaults={}] The default values to use.\n * @return {Object}\n */\nfunction getOEmbedParameters(element) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return oEmbedParameters.reduce(function (params, param) {\n var value = element.getAttribute(\"data-vimeo-\".concat(param));\n if (value || value === '') {\n params[param] = value === '' ? 1 : value;\n }\n return params;\n }, defaults);\n}\n\n/**\n * Create an embed from oEmbed data inside an element.\n *\n * @param {object} data The oEmbed data.\n * @param {HTMLElement} element The element to put the iframe in.\n * @return {HTMLIFrameElement} The iframe embed.\n */\nfunction createEmbed(_ref, element) {\n var html = _ref.html;\n if (!element) {\n throw new TypeError('An element must be provided');\n }\n if (element.getAttribute('data-vimeo-initialized') !== null) {\n return element.querySelector('iframe');\n }\n var div = document.createElement('div');\n div.innerHTML = html;\n element.appendChild(div.firstChild);\n element.setAttribute('data-vimeo-initialized', 'true');\n return element.querySelector('iframe');\n}\n\n/**\n * Make an oEmbed call for the specified URL.\n *\n * @param {string} videoUrl The vimeo.com url for the video.\n * @param {Object} [params] Parameters to pass to oEmbed.\n * @param {HTMLElement} element The element.\n * @return {Promise}\n */\nfunction getOEmbedData(videoUrl) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var element = arguments.length > 2 ? arguments[2] : undefined;\n return new Promise(function (resolve, reject) {\n if (!isVimeoUrl(videoUrl)) {\n throw new TypeError(\"\\u201C\".concat(videoUrl, \"\\u201D is not a vimeo.com url.\"));\n }\n var domain = getOembedDomain(videoUrl);\n var url = \"https://\".concat(domain, \"/api/oembed.json?url=\").concat(encodeURIComponent(videoUrl));\n for (var param in params) {\n if (params.hasOwnProperty(param)) {\n url += \"&\".concat(param, \"=\").concat(encodeURIComponent(params[param]));\n }\n }\n var xhr = 'XDomainRequest' in window ? new XDomainRequest() : new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onload = function () {\n if (xhr.status === 404) {\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D was not found.\")));\n return;\n }\n if (xhr.status === 403) {\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D is not embeddable.\")));\n return;\n }\n try {\n var json = JSON.parse(xhr.responseText);\n // Check api response for 403 on oembed\n if (json.domain_status_code === 403) {\n // We still want to create the embed to give users visual feedback\n createEmbed(json, element);\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D is not embeddable.\")));\n return;\n }\n resolve(json);\n } catch (error) {\n reject(error);\n }\n };\n xhr.onerror = function () {\n var status = xhr.status ? \" (\".concat(xhr.status, \")\") : '';\n reject(new Error(\"There was an error fetching the embed code from Vimeo\".concat(status, \".\")));\n };\n xhr.send();\n });\n}\n\n/**\n * Initialize all embeds within a specific element\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\nfunction initializeEmbeds() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var elements = [].slice.call(parent.querySelectorAll('[data-vimeo-id], [data-vimeo-url]'));\n var handleError = function handleError(error) {\n if ('console' in window && console.error) {\n console.error(\"There was an error creating an embed: \".concat(error));\n }\n };\n elements.forEach(function (element) {\n try {\n // Skip any that have data-vimeo-defer\n if (element.getAttribute('data-vimeo-defer') !== null) {\n return;\n }\n var params = getOEmbedParameters(element);\n var url = getVimeoUrl(params);\n getOEmbedData(url, params, element).then(function (data) {\n return createEmbed(data, element);\n }).catch(handleError);\n } catch (error) {\n handleError(error);\n }\n });\n}\n\n/**\n * Resize embeds when messaged by the player.\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\nfunction resizeEmbeds() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n // Prevent execution if users include the player.js script multiple times.\n if (window.VimeoPlayerResizeEmbeds_) {\n return;\n }\n window.VimeoPlayerResizeEmbeds_ = true;\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin)) {\n return;\n }\n\n // 'spacechange' is fired only on embeds with cards\n if (!event.data || event.data.event !== 'spacechange') {\n return;\n }\n var iframes = parent.querySelectorAll('iframe');\n for (var i = 0; i < iframes.length; i++) {\n if (iframes[i].contentWindow !== event.source) {\n continue;\n }\n\n // Change padding-bottom of the enclosing div to accommodate\n // card carousel without distorting aspect ratio\n var space = iframes[i].parentElement;\n space.style.paddingBottom = \"\".concat(event.data.data[0].bottom, \"px\");\n break;\n }\n };\n window.addEventListener('message', onMessage);\n}\n\n/**\n * Add chapters to existing metadata for Google SEO\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\nfunction initAppendVideoMetadata() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n // Prevent execution if users include the player.js script multiple times.\n if (window.VimeoSeoMetadataAppended) {\n return;\n }\n window.VimeoSeoMetadataAppended = true;\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin)) {\n return;\n }\n var data = parseMessageData(event.data);\n if (!data || data.event !== 'ready') {\n return;\n }\n var iframes = parent.querySelectorAll('iframe');\n for (var i = 0; i < iframes.length; i++) {\n var iframe = iframes[i];\n\n // Initiate appendVideoMetadata if iframe is a Vimeo embed\n var isValidMessageSource = iframe.contentWindow === event.source;\n if (isVimeoEmbed(iframe.src) && isValidMessageSource) {\n var player = new Player(iframe);\n player.callMethod('appendVideoMetadata', window.location.href);\n }\n }\n };\n window.addEventListener('message', onMessage);\n}\n\n/**\n * Seek to time indicated by vimeo_t query parameter if present in URL\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\nfunction checkUrlTimeParam() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n // Prevent execution if users include the player.js script multiple times.\n if (window.VimeoCheckedUrlTimeParam) {\n return;\n }\n window.VimeoCheckedUrlTimeParam = true;\n var handleError = function handleError(error) {\n if ('console' in window && console.error) {\n console.error(\"There was an error getting video Id: \".concat(error));\n }\n };\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin)) {\n return;\n }\n var data = parseMessageData(event.data);\n if (!data || data.event !== 'ready') {\n return;\n }\n var iframes = parent.querySelectorAll('iframe');\n var _loop = function _loop() {\n var iframe = iframes[i];\n var isValidMessageSource = iframe.contentWindow === event.source;\n if (isVimeoEmbed(iframe.src) && isValidMessageSource) {\n var player = new Player(iframe);\n player.getVideoId().then(function (videoId) {\n var matches = new RegExp(\"[?&]vimeo_t_\".concat(videoId, \"=([^]*)\")).exec(window.location.href);\n if (matches && matches[1]) {\n var sec = decodeURI(matches[1]);\n player.setCurrentTime(sec);\n }\n return;\n }).catch(handleError);\n }\n };\n for (var i = 0; i < iframes.length; i++) {\n _loop();\n }\n };\n window.addEventListener('message', onMessage);\n}\n\n/* MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nTerms */\n\nfunction initializeScreenfull() {\n var fn = function () {\n var val;\n var fnMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'],\n // New WebKit\n ['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror'],\n // Old WebKit\n ['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror'], ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'], ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']];\n var i = 0;\n var l = fnMap.length;\n var ret = {};\n for (; i < l; i++) {\n val = fnMap[i];\n if (val && val[1] in document) {\n for (i = 0; i < val.length; i++) {\n ret[fnMap[0][i]] = val[i];\n }\n return ret;\n }\n }\n return false;\n }();\n var eventNameMap = {\n fullscreenchange: fn.fullscreenchange,\n fullscreenerror: fn.fullscreenerror\n };\n var screenfull = {\n request: function request(element) {\n return new Promise(function (resolve, reject) {\n var onFullScreenEntered = function onFullScreenEntered() {\n screenfull.off('fullscreenchange', onFullScreenEntered);\n resolve();\n };\n screenfull.on('fullscreenchange', onFullScreenEntered);\n element = element || document.documentElement;\n var returnPromise = element[fn.requestFullscreen]();\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject);\n }\n });\n },\n exit: function exit() {\n return new Promise(function (resolve, reject) {\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n var onFullScreenExit = function onFullScreenExit() {\n screenfull.off('fullscreenchange', onFullScreenExit);\n resolve();\n };\n screenfull.on('fullscreenchange', onFullScreenExit);\n var returnPromise = document[fn.exitFullscreen]();\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject);\n }\n });\n },\n on: function on(event, callback) {\n var eventName = eventNameMap[event];\n if (eventName) {\n document.addEventListener(eventName, callback);\n }\n },\n off: function off(event, callback) {\n var eventName = eventNameMap[event];\n if (eventName) {\n document.removeEventListener(eventName, callback);\n }\n }\n };\n Object.defineProperties(screenfull, {\n isFullscreen: {\n get: function get() {\n return Boolean(document[fn.fullscreenElement]);\n }\n },\n element: {\n enumerable: true,\n get: function get() {\n return document[fn.fullscreenElement];\n }\n },\n isEnabled: {\n enumerable: true,\n get: function get() {\n // Coerce to boolean in case of old WebKit\n return Boolean(document[fn.fullscreenEnabled]);\n }\n }\n });\n return screenfull;\n}\n\n/** @typedef {import('./timing-src-connector.types').PlayerControls} PlayerControls */\n/** @typedef {import('./timing-object.types').TimingObject} TimingObject */\n/** @typedef {import('./timing-src-connector.types').TimingSrcConnectorOptions} TimingSrcConnectorOptions */\n/** @typedef {(msg: string) => any} Logger */\n/** @typedef {import('timing-object.types').TConnectionState} TConnectionState */\n\n/**\n * @type {TimingSrcConnectorOptions}\n *\n * For details on these properties and their effects, see the typescript definition referenced above.\n */\nvar defaultOptions = {\n role: 'viewer',\n autoPlayMuted: true,\n allowedDrift: 0.3,\n maxAllowedDrift: 1,\n minCheckInterval: 0.1,\n maxRateAdjustment: 0.2,\n maxTimeToCatchUp: 1\n};\n\n/**\n * There's a proposed W3C spec for the Timing Object which would introduce a new set of APIs that would simplify time-synchronization tasks for browser applications.\n *\n * Proposed spec: https://webtiming.github.io/timingobject/\n * V3 Spec: https://timingsrc.readthedocs.io/en/latest/\n * Demuxed talk: https://www.youtube.com/watch?v=cZSjDaGDmX8\n *\n * This class makes it easy to connect Vimeo.Player to a provided TimingObject via Vimeo.Player.setTimingSrc(myTimingObject, options) and the synchronization will be handled automatically.\n *\n * There are 5 general responsibilities in TimingSrcConnector:\n *\n * 1. `updatePlayer()` which sets the player's currentTime, playbackRate and pause/play state based on current state of the TimingObject.\n * 2. `updateTimingObject()` which sets the TimingObject's position and velocity from the player's state.\n * 3. `playerUpdater` which listens for change events on the TimingObject and will respond by calling updatePlayer.\n * 4. `timingObjectUpdater` which listens to the player events of seeked, play and pause and will respond by calling `updateTimingObject()`.\n * 5. `maintainPlaybackPosition` this is code that constantly monitors the player to make sure it's always in sync with the TimingObject. This is needed because videos will generally not play with precise time accuracy and there will be some drift which becomes more noticeable over longer periods (as noted in the timing-object spec). More details on this method below.\n */\nvar TimingSrcConnector = /*#__PURE__*/function (_EventTarget) {\n _inherits(TimingSrcConnector, _EventTarget);\n var _super = _createSuper(TimingSrcConnector);\n /**\n * @param {PlayerControls} player\n * @param {TimingObject} timingObject\n * @param {TimingSrcConnectorOptions} options\n * @param {Logger} logger\n */\n function TimingSrcConnector(_player, timingObject) {\n var _this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var logger = arguments.length > 3 ? arguments[3] : undefined;\n _classCallCheck(this, TimingSrcConnector);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"logger\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"speedAdjustment\", 0);\n /**\n * @param {PlayerControls} player\n * @param {number} newAdjustment\n * @return {Promise}\n */\n _defineProperty(_assertThisInitialized(_this), \"adjustSpeed\", /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(player, newAdjustment) {\n var newPlaybackRate;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(_this.speedAdjustment === newAdjustment)) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\");\n case 2:\n _context.next = 4;\n return player.getPlaybackRate();\n case 4:\n _context.t0 = _context.sent;\n _context.t1 = _this.speedAdjustment;\n _context.t2 = _context.t0 - _context.t1;\n _context.t3 = newAdjustment;\n newPlaybackRate = _context.t2 + _context.t3;\n _this.log(\"New playbackRate: \".concat(newPlaybackRate));\n _context.next = 12;\n return player.setPlaybackRate(newPlaybackRate);\n case 12:\n _this.speedAdjustment = newAdjustment;\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }());\n _this.logger = logger;\n _this.init(timingObject, _player, _objectSpread2(_objectSpread2({}, defaultOptions), options));\n return _this;\n }\n _createClass(TimingSrcConnector, [{\n key: \"disconnect\",\n value: function disconnect() {\n this.dispatchEvent(new Event('disconnect'));\n }\n\n /**\n * @param {TimingObject} timingObject\n * @param {PlayerControls} player\n * @param {TimingSrcConnectorOptions} options\n * @return {Promise}\n */\n }, {\n key: \"init\",\n value: function () {\n var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(timingObject, player, options) {\n var _this2 = this;\n var playerUpdater, positionSync, timingObjectUpdater;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.waitForTOReadyState(timingObject, 'open');\n case 2:\n if (!(options.role === 'viewer')) {\n _context2.next = 10;\n break;\n }\n _context2.next = 5;\n return this.updatePlayer(timingObject, player, options);\n case 5:\n playerUpdater = subscribe(timingObject, 'change', function () {\n return _this2.updatePlayer(timingObject, player, options);\n });\n positionSync = this.maintainPlaybackPosition(timingObject, player, options);\n this.addEventListener('disconnect', function () {\n positionSync.cancel();\n playerUpdater.cancel();\n });\n _context2.next = 14;\n break;\n case 10:\n _context2.next = 12;\n return this.updateTimingObject(timingObject, player);\n case 12:\n timingObjectUpdater = subscribe(player, ['seeked', 'play', 'pause', 'ratechange'], function () {\n return _this2.updateTimingObject(timingObject, player);\n }, 'on', 'off');\n this.addEventListener('disconnect', function () {\n return timingObjectUpdater.cancel();\n });\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function init(_x3, _x4, _x5) {\n return _init.apply(this, arguments);\n }\n return init;\n }()\n /**\n * Sets the TimingObject's state to reflect that of the player\n *\n * @param {TimingObject} timingObject\n * @param {PlayerControls} player\n * @return {Promise}\n */\n }, {\n key: \"updateTimingObject\",\n value: function () {\n var _updateTimingObject = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(timingObject, player) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.t0 = timingObject;\n _context3.next = 3;\n return player.getCurrentTime();\n case 3:\n _context3.t1 = _context3.sent;\n _context3.next = 6;\n return player.getPaused();\n case 6:\n if (!_context3.sent) {\n _context3.next = 10;\n break;\n }\n _context3.t2 = 0;\n _context3.next = 13;\n break;\n case 10:\n _context3.next = 12;\n return player.getPlaybackRate();\n case 12:\n _context3.t2 = _context3.sent;\n case 13:\n _context3.t3 = _context3.t2;\n _context3.t4 = {\n position: _context3.t1,\n velocity: _context3.t3\n };\n _context3.t0.update.call(_context3.t0, _context3.t4);\n case 16:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function updateTimingObject(_x6, _x7) {\n return _updateTimingObject.apply(this, arguments);\n }\n return updateTimingObject;\n }()\n /**\n * Sets the player's timing state to reflect that of the TimingObject\n *\n * @param {TimingObject} timingObject\n * @param {PlayerControls} player\n * @param {TimingSrcConnectorOptions} options\n * @return {Promise}\n */\n }, {\n key: \"updatePlayer\",\n value: function () {\n var _updatePlayer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(timingObject, player, options) {\n var _timingObject$query, position, velocity;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _timingObject$query = timingObject.query(), position = _timingObject$query.position, velocity = _timingObject$query.velocity;\n if (typeof position === 'number') {\n player.setCurrentTime(position);\n }\n if (!(typeof velocity === 'number')) {\n _context5.next = 25;\n break;\n }\n if (!(velocity === 0)) {\n _context5.next = 11;\n break;\n }\n _context5.next = 6;\n return player.getPaused();\n case 6:\n _context5.t0 = _context5.sent;\n if (!(_context5.t0 === false)) {\n _context5.next = 9;\n break;\n }\n player.pause();\n case 9:\n _context5.next = 25;\n break;\n case 11:\n if (!(velocity > 0)) {\n _context5.next = 25;\n break;\n }\n _context5.next = 14;\n return player.getPaused();\n case 14:\n _context5.t1 = _context5.sent;\n if (!(_context5.t1 === true)) {\n _context5.next = 19;\n break;\n }\n _context5.next = 18;\n return player.play().catch( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(err) {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n if (!(err.name === 'NotAllowedError' && options.autoPlayMuted)) {\n _context4.next = 5;\n break;\n }\n _context4.next = 3;\n return player.setMuted(true);\n case 3:\n _context4.next = 5;\n return player.play().catch(function (err2) {\n return console.error('Couldn\\'t play the video from TimingSrcConnector. Error:', err2);\n });\n case 5:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function (_x11) {\n return _ref2.apply(this, arguments);\n };\n }());\n case 18:\n this.updatePlayer(timingObject, player, options);\n case 19:\n _context5.next = 21;\n return player.getPlaybackRate();\n case 21:\n _context5.t2 = _context5.sent;\n _context5.t3 = velocity;\n if (!(_context5.t2 !== _context5.t3)) {\n _context5.next = 25;\n break;\n }\n player.setPlaybackRate(velocity);\n case 25:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, this);\n }));\n function updatePlayer(_x8, _x9, _x10) {\n return _updatePlayer.apply(this, arguments);\n }\n return updatePlayer;\n }()\n /**\n * Since video players do not play with 100% time precision, we need to closely monitor\n * our player to be sure it remains in sync with the TimingObject.\n *\n * If out of sync, we use the current conditions and the options provided to determine\n * whether to re-sync via setting currentTime or adjusting the playbackRate\n *\n * @param {TimingObject} timingObject\n * @param {PlayerControls} player\n * @param {TimingSrcConnectorOptions} options\n * @return {{cancel: (function(): void)}}\n */\n }, {\n key: \"maintainPlaybackPosition\",\n value: function maintainPlaybackPosition(timingObject, player, options) {\n var _this3 = this;\n var allowedDrift = options.allowedDrift,\n maxAllowedDrift = options.maxAllowedDrift,\n minCheckInterval = options.minCheckInterval,\n maxRateAdjustment = options.maxRateAdjustment,\n maxTimeToCatchUp = options.maxTimeToCatchUp;\n var syncInterval = Math.min(maxTimeToCatchUp, Math.max(minCheckInterval, maxAllowedDrift)) * 1000;\n var check = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var diff, diffAbs, min, max, adjustment;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.t0 = timingObject.query().velocity === 0;\n if (_context6.t0) {\n _context6.next = 6;\n break;\n }\n _context6.next = 4;\n return player.getPaused();\n case 4:\n _context6.t1 = _context6.sent;\n _context6.t0 = _context6.t1 === true;\n case 6:\n if (!_context6.t0) {\n _context6.next = 8;\n break;\n }\n return _context6.abrupt(\"return\");\n case 8:\n _context6.t2 = timingObject.query().position;\n _context6.next = 11;\n return player.getCurrentTime();\n case 11:\n _context6.t3 = _context6.sent;\n diff = _context6.t2 - _context6.t3;\n diffAbs = Math.abs(diff);\n _this3.log(\"Drift: \".concat(diff));\n if (!(diffAbs > maxAllowedDrift)) {\n _context6.next = 22;\n break;\n }\n _context6.next = 18;\n return _this3.adjustSpeed(player, 0);\n case 18:\n player.setCurrentTime(timingObject.query().position);\n _this3.log('Resync by currentTime');\n _context6.next = 29;\n break;\n case 22:\n if (!(diffAbs > allowedDrift)) {\n _context6.next = 29;\n break;\n }\n min = diffAbs / maxTimeToCatchUp;\n max = maxRateAdjustment;\n adjustment = min < max ? (max - min) / 2 : max;\n _context6.next = 28;\n return _this3.adjustSpeed(player, adjustment * Math.sign(diff));\n case 28:\n _this3.log('Resync by playbackRate');\n case 29:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n return function check() {\n return _ref3.apply(this, arguments);\n };\n }();\n var interval = setInterval(function () {\n return check();\n }, syncInterval);\n return {\n cancel: function cancel() {\n return clearInterval(interval);\n }\n };\n }\n\n /**\n * @param {string} msg\n */\n }, {\n key: \"log\",\n value: function log(msg) {\n var _this$logger;\n (_this$logger = this.logger) === null || _this$logger === void 0 ? void 0 : _this$logger.call(this, \"TimingSrcConnector: \".concat(msg));\n }\n }, {\n key: \"waitForTOReadyState\",\n value:\n /**\n * @param {TimingObject} timingObject\n * @param {TConnectionState} state\n * @return {Promise}\n */\n function waitForTOReadyState(timingObject, state) {\n return new Promise(function (resolve) {\n var check = function check() {\n if (timingObject.readyState === state) {\n resolve();\n } else {\n timingObject.addEventListener('readystatechange', check, {\n once: true\n });\n }\n };\n check();\n });\n }\n }]);\n return TimingSrcConnector;\n}( /*#__PURE__*/_wrapNativeSuper(EventTarget));\nvar playerMap = new WeakMap();\nvar readyMap = new WeakMap();\nvar screenfull = {};\nvar Player = /*#__PURE__*/function () {\n /**\n * Create a Player.\n *\n * @param {(HTMLIFrameElement|HTMLElement|string|jQuery)} element A reference to the Vimeo\n * player iframe, and id, or a jQuery object.\n * @param {object} [options] oEmbed parameters to use when creating an embed in the element.\n * @return {Player}\n */\n function Player(element) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Player);\n /* global jQuery */\n if (window.jQuery && element instanceof jQuery) {\n if (element.length > 1 && window.console && console.warn) {\n console.warn('A jQuery object with multiple elements was passed, using the first element.');\n }\n element = element[0];\n }\n\n // Find an element by ID\n if (typeof document !== 'undefined' && typeof element === 'string') {\n element = document.getElementById(element);\n }\n\n // Not an element!\n if (!isDomElement(element)) {\n throw new TypeError('You must pass either a valid element or a valid id.');\n }\n\n // Already initialized an embed in this div, so grab the iframe\n if (element.nodeName !== 'IFRAME') {\n var iframe = element.querySelector('iframe');\n if (iframe) {\n element = iframe;\n }\n }\n\n // iframe url is not a Vimeo url\n if (element.nodeName === 'IFRAME' && !isVimeoUrl(element.getAttribute('src') || '')) {\n throw new Error('The player element passed isn’t a Vimeo embed.');\n }\n\n // If there is already a player object in the map, return that\n if (playerMap.has(element)) {\n return playerMap.get(element);\n }\n this._window = element.ownerDocument.defaultView;\n this.element = element;\n this.origin = '*';\n var readyPromise = new npo_src(function (resolve, reject) {\n _this._onMessage = function (event) {\n if (!isVimeoUrl(event.origin) || _this.element.contentWindow !== event.source) {\n return;\n }\n if (_this.origin === '*') {\n _this.origin = event.origin;\n }\n var data = parseMessageData(event.data);\n var isError = data && data.event === 'error';\n var isReadyError = isError && data.data && data.data.method === 'ready';\n if (isReadyError) {\n var error = new Error(data.data.message);\n error.name = data.data.name;\n reject(error);\n return;\n }\n var isReadyEvent = data && data.event === 'ready';\n var isPingResponse = data && data.method === 'ping';\n if (isReadyEvent || isPingResponse) {\n _this.element.setAttribute('data-ready', 'true');\n resolve();\n return;\n }\n processData(_this, data);\n };\n _this._window.addEventListener('message', _this._onMessage);\n if (_this.element.nodeName !== 'IFRAME') {\n var params = getOEmbedParameters(element, options);\n var url = getVimeoUrl(params);\n getOEmbedData(url, params, element).then(function (data) {\n var iframe = createEmbed(data, element);\n // Overwrite element with the new iframe,\n // but store reference to the original element\n _this.element = iframe;\n _this._originalElement = element;\n swapCallbacks(element, iframe);\n playerMap.set(_this.element, _this);\n return data;\n }).catch(reject);\n }\n });\n\n // Store a copy of this Player in the map\n readyMap.set(this, readyPromise);\n playerMap.set(this.element, this);\n\n // Send a ping to the iframe so the ready promise will be resolved if\n // the player is already ready.\n if (this.element.nodeName === 'IFRAME') {\n postMessage(this, 'ping');\n }\n if (screenfull.isEnabled) {\n var exitFullscreen = function exitFullscreen() {\n return screenfull.exit();\n };\n this.fullscreenchangeHandler = function () {\n if (screenfull.isFullscreen) {\n storeCallback(_this, 'event:exitFullscreen', exitFullscreen);\n } else {\n removeCallback(_this, 'event:exitFullscreen', exitFullscreen);\n }\n // eslint-disable-next-line\n _this.ready().then(function () {\n postMessage(_this, 'fullscreenchange', screenfull.isFullscreen);\n });\n };\n screenfull.on('fullscreenchange', this.fullscreenchangeHandler);\n }\n return this;\n }\n\n /**\n * Get a promise for a method.\n *\n * @param {string} name The API method to call.\n * @param {Object} [args={}] Arguments to send via postMessage.\n * @return {Promise}\n */\n _createClass(Player, [{\n key: \"callMethod\",\n value: function callMethod(name) {\n var _this2 = this;\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new npo_src(function (resolve, reject) {\n // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n return _this2.ready().then(function () {\n storeCallback(_this2, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this2, name, args);\n }).catch(reject);\n });\n }\n\n /**\n * Get a promise for the value of a player property.\n *\n * @param {string} name The property name\n * @return {Promise}\n */\n }, {\n key: \"get\",\n value: function get(name) {\n var _this3 = this;\n return new npo_src(function (resolve, reject) {\n name = getMethodName(name, 'get');\n\n // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n return _this3.ready().then(function () {\n storeCallback(_this3, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this3, name);\n }).catch(reject);\n });\n }\n\n /**\n * Get a promise for setting the value of a player property.\n *\n * @param {string} name The API method to call.\n * @param {mixed} value The value to set.\n * @return {Promise}\n */\n }, {\n key: \"set\",\n value: function set(name, value) {\n var _this4 = this;\n return new npo_src(function (resolve, reject) {\n name = getMethodName(name, 'set');\n if (value === undefined || value === null) {\n throw new TypeError('There must be a value to set.');\n }\n\n // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n return _this4.ready().then(function () {\n storeCallback(_this4, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this4, name, value);\n }).catch(reject);\n });\n }\n\n /**\n * Add an event listener for the specified event. Will call the\n * callback with a single parameter, `data`, that contains the data for\n * that event.\n *\n * @param {string} eventName The name of the event.\n * @param {function(*)} callback The function to call when the event fires.\n * @return {void}\n */\n }, {\n key: \"on\",\n value: function on(eventName, callback) {\n if (!eventName) {\n throw new TypeError('You must pass an event name.');\n }\n if (!callback) {\n throw new TypeError('You must pass a callback function.');\n }\n if (typeof callback !== 'function') {\n throw new TypeError('The callback must be a function.');\n }\n var callbacks = getCallbacks(this, \"event:\".concat(eventName));\n if (callbacks.length === 0) {\n this.callMethod('addEventListener', eventName).catch(function () {\n // Ignore the error. There will be an error event fired that\n // will trigger the error callback if they are listening.\n });\n }\n storeCallback(this, \"event:\".concat(eventName), callback);\n }\n\n /**\n * Remove an event listener for the specified event. Will remove all\n * listeners for that event if a `callback` isn’t passed, or only that\n * specific callback if it is passed.\n *\n * @param {string} eventName The name of the event.\n * @param {function} [callback] The specific callback to remove.\n * @return {void}\n */\n }, {\n key: \"off\",\n value: function off(eventName, callback) {\n if (!eventName) {\n throw new TypeError('You must pass an event name.');\n }\n if (callback && typeof callback !== 'function') {\n throw new TypeError('The callback must be a function.');\n }\n var lastCallback = removeCallback(this, \"event:\".concat(eventName), callback);\n\n // If there are no callbacks left, remove the listener\n if (lastCallback) {\n this.callMethod('removeEventListener', eventName).catch(function (e) {\n // Ignore the error. There will be an error event fired that\n // will trigger the error callback if they are listening.\n });\n }\n }\n\n /**\n * A promise to load a new video.\n *\n * @promise LoadVideoPromise\n * @fulfill {number} The video with this id or url successfully loaded.\n * @reject {TypeError} The id was not a number.\n */\n /**\n * Load a new video into this embed. The promise will be resolved if\n * the video is successfully loaded, or it will be rejected if it could\n * not be loaded.\n *\n * @param {number|string|object} options The id of the video, the url of the video, or an object with embed options.\n * @return {LoadVideoPromise}\n */\n }, {\n key: \"loadVideo\",\n value: function loadVideo(options) {\n return this.callMethod('loadVideo', options);\n }\n\n /**\n * A promise to perform an action when the Player is ready.\n *\n * @todo document errors\n * @promise LoadVideoPromise\n * @fulfill {void}\n */\n /**\n * Trigger a function when the player iframe has initialized. You do not\n * need to wait for `ready` to trigger to begin adding event listeners\n * or calling other methods.\n *\n * @return {ReadyPromise}\n */\n }, {\n key: \"ready\",\n value: function ready() {\n var readyPromise = readyMap.get(this) || new npo_src(function (resolve, reject) {\n reject(new Error('Unknown player. Probably unloaded.'));\n });\n return npo_src.resolve(readyPromise);\n }\n\n /**\n * A promise to add a cue point to the player.\n *\n * @promise AddCuePointPromise\n * @fulfill {string} The id of the cue point to use for removeCuePoint.\n * @reject {RangeError} the time was less than 0 or greater than the\n * video’s duration.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n /**\n * Add a cue point to the player.\n *\n * @param {number} time The time for the cue point.\n * @param {object} [data] Arbitrary data to be returned with the cue point.\n * @return {AddCuePointPromise}\n */\n }, {\n key: \"addCuePoint\",\n value: function addCuePoint(time) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.callMethod('addCuePoint', {\n time: time,\n data: data\n });\n }\n\n /**\n * A promise to remove a cue point from the player.\n *\n * @promise AddCuePointPromise\n * @fulfill {string} The id of the cue point that was removed.\n * @reject {InvalidCuePoint} The cue point with the specified id was not\n * found.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n /**\n * Remove a cue point from the video.\n *\n * @param {string} id The id of the cue point to remove.\n * @return {RemoveCuePointPromise}\n */\n }, {\n key: \"removeCuePoint\",\n value: function removeCuePoint(id) {\n return this.callMethod('removeCuePoint', id);\n }\n\n /**\n * A representation of a text track on a video.\n *\n * @typedef {Object} VimeoTextTrack\n * @property {string} language The ISO language code.\n * @property {string} kind The kind of track it is (captions or subtitles).\n * @property {string} label The human‐readable label for the track.\n */\n /**\n * A promise to enable a text track.\n *\n * @promise EnableTextTrackPromise\n * @fulfill {VimeoTextTrack} The text track that was enabled.\n * @reject {InvalidTrackLanguageError} No track was available with the\n * specified language.\n * @reject {InvalidTrackError} No track was available with the specified\n * language and kind.\n */\n /**\n * Enable the text track with the specified language, and optionally the\n * specified kind (captions or subtitles).\n *\n * When set via the API, the track language will not change the viewer’s\n * stored preference.\n *\n * @param {string} language The two‐letter language code.\n * @param {string} [kind] The kind of track to enable (captions or subtitles).\n * @return {EnableTextTrackPromise}\n */\n }, {\n key: \"enableTextTrack\",\n value: function enableTextTrack(language, kind) {\n if (!language) {\n throw new TypeError('You must pass a language.');\n }\n return this.callMethod('enableTextTrack', {\n language: language,\n kind: kind\n });\n }\n\n /**\n * A promise to disable the active text track.\n *\n * @promise DisableTextTrackPromise\n * @fulfill {void} The track was disabled.\n */\n /**\n * Disable the currently-active text track.\n *\n * @return {DisableTextTrackPromise}\n */\n }, {\n key: \"disableTextTrack\",\n value: function disableTextTrack() {\n return this.callMethod('disableTextTrack');\n }\n\n /**\n * A promise to pause the video.\n *\n * @promise PausePromise\n * @fulfill {void} The video was paused.\n */\n /**\n * Pause the video if it’s playing.\n *\n * @return {PausePromise}\n */\n }, {\n key: \"pause\",\n value: function pause() {\n return this.callMethod('pause');\n }\n\n /**\n * A promise to play the video.\n *\n * @promise PlayPromise\n * @fulfill {void} The video was played.\n */\n /**\n * Play the video if it’s paused. **Note:** on iOS and some other\n * mobile devices, you cannot programmatically trigger play. Once the\n * viewer has tapped on the play button in the player, however, you\n * will be able to use this function.\n *\n * @return {PlayPromise}\n */\n }, {\n key: \"play\",\n value: function play() {\n return this.callMethod('play');\n }\n\n /**\n * Request that the player enters fullscreen.\n * @return {Promise}\n */\n }, {\n key: \"requestFullscreen\",\n value: function requestFullscreen() {\n if (screenfull.isEnabled) {\n return screenfull.request(this.element);\n }\n return this.callMethod('requestFullscreen');\n }\n\n /**\n * Request that the player exits fullscreen.\n * @return {Promise}\n */\n }, {\n key: \"exitFullscreen\",\n value: function exitFullscreen() {\n if (screenfull.isEnabled) {\n return screenfull.exit();\n }\n return this.callMethod('exitFullscreen');\n }\n\n /**\n * Returns true if the player is currently fullscreen.\n * @return {Promise}\n */\n }, {\n key: \"getFullscreen\",\n value: function getFullscreen() {\n if (screenfull.isEnabled) {\n return npo_src.resolve(screenfull.isFullscreen);\n }\n return this.get('fullscreen');\n }\n\n /**\n * Request that the player enters picture-in-picture.\n * @return {Promise}\n */\n }, {\n key: \"requestPictureInPicture\",\n value: function requestPictureInPicture() {\n return this.callMethod('requestPictureInPicture');\n }\n\n /**\n * Request that the player exits picture-in-picture.\n * @return {Promise}\n */\n }, {\n key: \"exitPictureInPicture\",\n value: function exitPictureInPicture() {\n return this.callMethod('exitPictureInPicture');\n }\n\n /**\n * Returns true if the player is currently picture-in-picture.\n * @return {Promise}\n */\n }, {\n key: \"getPictureInPicture\",\n value: function getPictureInPicture() {\n return this.get('pictureInPicture');\n }\n\n /**\n * A promise to prompt the viewer to initiate remote playback.\n *\n * @promise RemotePlaybackPromptPromise\n * @fulfill {void}\n * @reject {NotFoundError} No remote playback device is available.\n */\n /**\n * Request to prompt the user to initiate remote playback.\n *\n * @return {RemotePlaybackPromptPromise}\n */\n }, {\n key: \"remotePlaybackPrompt\",\n value: function remotePlaybackPrompt() {\n return this.callMethod('remotePlaybackPrompt');\n }\n\n /**\n * A promise to unload the video.\n *\n * @promise UnloadPromise\n * @fulfill {void} The video was unloaded.\n */\n /**\n * Return the player to its initial state.\n *\n * @return {UnloadPromise}\n */\n }, {\n key: \"unload\",\n value: function unload() {\n return this.callMethod('unload');\n }\n\n /**\n * Cleanup the player and remove it from the DOM\n *\n * It won't be usable and a new one should be constructed\n * in order to do any operations.\n *\n * @return {Promise}\n */\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this5 = this;\n return new npo_src(function (resolve) {\n readyMap.delete(_this5);\n playerMap.delete(_this5.element);\n if (_this5._originalElement) {\n playerMap.delete(_this5._originalElement);\n _this5._originalElement.removeAttribute('data-vimeo-initialized');\n }\n if (_this5.element && _this5.element.nodeName === 'IFRAME' && _this5.element.parentNode) {\n // If we've added an additional wrapper div, remove that from the DOM.\n // If not, just remove the iframe element.\n if (_this5.element.parentNode.parentNode && _this5._originalElement && _this5._originalElement !== _this5.element.parentNode) {\n _this5.element.parentNode.parentNode.removeChild(_this5.element.parentNode);\n } else {\n _this5.element.parentNode.removeChild(_this5.element);\n }\n }\n\n // If the clip is private there is a case where the element stays the\n // div element. Destroy should reset the div and remove the iframe child.\n if (_this5.element && _this5.element.nodeName === 'DIV' && _this5.element.parentNode) {\n _this5.element.removeAttribute('data-vimeo-initialized');\n var iframe = _this5.element.querySelector('iframe');\n if (iframe && iframe.parentNode) {\n // If we've added an additional wrapper div, remove that from the DOM.\n // If not, just remove the iframe element.\n if (iframe.parentNode.parentNode && _this5._originalElement && _this5._originalElement !== iframe.parentNode) {\n iframe.parentNode.parentNode.removeChild(iframe.parentNode);\n } else {\n iframe.parentNode.removeChild(iframe);\n }\n }\n }\n _this5._window.removeEventListener('message', _this5._onMessage);\n if (screenfull.isEnabled) {\n screenfull.off('fullscreenchange', _this5.fullscreenchangeHandler);\n }\n resolve();\n });\n }\n\n /**\n * A promise to get the autopause behavior of the video.\n *\n * @promise GetAutopausePromise\n * @fulfill {boolean} Whether autopause is turned on or off.\n * @reject {UnsupportedError} Autopause is not supported with the current\n * player or browser.\n */\n /**\n * Get the autopause behavior for this player.\n *\n * @return {GetAutopausePromise}\n */\n }, {\n key: \"getAutopause\",\n value: function getAutopause() {\n return this.get('autopause');\n }\n\n /**\n * A promise to set the autopause behavior of the video.\n *\n * @promise SetAutopausePromise\n * @fulfill {boolean} Whether autopause is turned on or off.\n * @reject {UnsupportedError} Autopause is not supported with the current\n * player or browser.\n */\n /**\n * Enable or disable the autopause behavior of this player.\n *\n * By default, when another video is played in the same browser, this\n * player will automatically pause. Unless you have a specific reason\n * for doing so, we recommend that you leave autopause set to the\n * default (`true`).\n *\n * @param {boolean} autopause\n * @return {SetAutopausePromise}\n */\n }, {\n key: \"setAutopause\",\n value: function setAutopause(autopause) {\n return this.set('autopause', autopause);\n }\n\n /**\n * A promise to get the buffered property of the video.\n *\n * @promise GetBufferedPromise\n * @fulfill {Array} Buffered Timeranges converted to an Array.\n */\n /**\n * Get the buffered property of the video.\n *\n * @return {GetBufferedPromise}\n */\n }, {\n key: \"getBuffered\",\n value: function getBuffered() {\n return this.get('buffered');\n }\n\n /**\n * @typedef {Object} CameraProperties\n * @prop {number} props.yaw - Number between 0 and 360.\n * @prop {number} props.pitch - Number between -90 and 90.\n * @prop {number} props.roll - Number between -180 and 180.\n * @prop {number} props.fov - The field of view in degrees.\n */\n /**\n * A promise to get the camera properties of the player.\n *\n * @promise GetCameraPromise\n * @fulfill {CameraProperties} The camera properties.\n */\n /**\n * For 360° videos get the camera properties for this player.\n *\n * @return {GetCameraPromise}\n */\n }, {\n key: \"getCameraProps\",\n value: function getCameraProps() {\n return this.get('cameraProps');\n }\n\n /**\n * A promise to set the camera properties of the player.\n *\n * @promise SetCameraPromise\n * @fulfill {Object} The camera was successfully set.\n * @reject {RangeError} The range was out of bounds.\n */\n /**\n * For 360° videos set the camera properties for this player.\n *\n * @param {CameraProperties} camera The camera properties\n * @return {SetCameraPromise}\n */\n }, {\n key: \"setCameraProps\",\n value: function setCameraProps(camera) {\n return this.set('cameraProps', camera);\n }\n\n /**\n * A representation of a chapter.\n *\n * @typedef {Object} VimeoChapter\n * @property {number} startTime The start time of the chapter.\n * @property {object} title The title of the chapter.\n * @property {number} index The place in the order of Chapters. Starts at 1.\n */\n /**\n * A promise to get chapters for the video.\n *\n * @promise GetChaptersPromise\n * @fulfill {VimeoChapter[]} The chapters for the video.\n */\n /**\n * Get an array of all the chapters for the video.\n *\n * @return {GetChaptersPromise}\n */\n }, {\n key: \"getChapters\",\n value: function getChapters() {\n return this.get('chapters');\n }\n\n /**\n * A promise to get the currently active chapter.\n *\n * @promise GetCurrentChaptersPromise\n * @fulfill {VimeoChapter|undefined} The current chapter for the video.\n */\n /**\n * Get the currently active chapter for the video.\n *\n * @return {GetCurrentChaptersPromise}\n */\n }, {\n key: \"getCurrentChapter\",\n value: function getCurrentChapter() {\n return this.get('currentChapter');\n }\n\n /**\n * A promise to get the accent color of the player.\n *\n * @promise GetColorPromise\n * @fulfill {string} The hex color of the player.\n */\n /**\n * Get the accent color for this player. Note this is deprecated in place of `getColorTwo`.\n *\n * @return {GetColorPromise}\n */\n }, {\n key: \"getColor\",\n value: function getColor() {\n return this.get('color');\n }\n\n /**\n * A promise to get all colors for the player in an array.\n *\n * @promise GetColorsPromise\n * @fulfill {string[]} The hex colors of the player.\n */\n /**\n * Get all the colors for this player in an array: [colorOne, colorTwo, colorThree, colorFour]\n *\n * @return {GetColorPromise}\n */\n }, {\n key: \"getColors\",\n value: function getColors() {\n return npo_src.all([this.get('colorOne'), this.get('colorTwo'), this.get('colorThree'), this.get('colorFour')]);\n }\n\n /**\n * A promise to set the accent color of the player.\n *\n * @promise SetColorPromise\n * @fulfill {string} The color was successfully set.\n * @reject {TypeError} The string was not a valid hex or rgb color.\n * @reject {ContrastError} The color was set, but the contrast is\n * outside of the acceptable range.\n * @reject {EmbedSettingsError} The owner of the player has chosen to\n * use a specific color.\n */\n /**\n * Set the accent color of this player to a hex or rgb string. Setting the\n * color may fail if the owner of the video has set their embed\n * preferences to force a specific color.\n * Note this is deprecated in place of `setColorTwo`.\n *\n * @param {string} color The hex or rgb color string to set.\n * @return {SetColorPromise}\n */\n }, {\n key: \"setColor\",\n value: function setColor(color) {\n return this.set('color', color);\n }\n\n /**\n * A promise to set all colors for the player.\n *\n * @promise SetColorsPromise\n * @fulfill {string[]} The colors were successfully set.\n * @reject {TypeError} The string was not a valid hex or rgb color.\n * @reject {ContrastError} The color was set, but the contrast is\n * outside of the acceptable range.\n * @reject {EmbedSettingsError} The owner of the player has chosen to\n * use a specific color.\n */\n /**\n * Set the colors of this player to a hex or rgb string. Setting the\n * color may fail if the owner of the video has set their embed\n * preferences to force a specific color.\n * The colors should be passed in as an array: [colorOne, colorTwo, colorThree, colorFour].\n * If a color should not be set, the index in the array can be left as null.\n *\n * @param {string[]} colors Array of the hex or rgb color strings to set.\n * @return {SetColorsPromise}\n */\n }, {\n key: \"setColors\",\n value: function setColors(colors) {\n if (!Array.isArray(colors)) {\n return new npo_src(function (resolve, reject) {\n return reject(new TypeError('Argument must be an array.'));\n });\n }\n var nullPromise = new npo_src(function (resolve) {\n return resolve(null);\n });\n var colorPromises = [colors[0] ? this.set('colorOne', colors[0]) : nullPromise, colors[1] ? this.set('colorTwo', colors[1]) : nullPromise, colors[2] ? this.set('colorThree', colors[2]) : nullPromise, colors[3] ? this.set('colorFour', colors[3]) : nullPromise];\n return npo_src.all(colorPromises);\n }\n\n /**\n * A representation of a cue point.\n *\n * @typedef {Object} VimeoCuePoint\n * @property {number} time The time of the cue point.\n * @property {object} data The data passed when adding the cue point.\n * @property {string} id The unique id for use with removeCuePoint.\n */\n /**\n * A promise to get the cue points of a video.\n *\n * @promise GetCuePointsPromise\n * @fulfill {VimeoCuePoint[]} The cue points added to the video.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n /**\n * Get an array of the cue points added to the video.\n *\n * @return {GetCuePointsPromise}\n */\n }, {\n key: \"getCuePoints\",\n value: function getCuePoints() {\n return this.get('cuePoints');\n }\n\n /**\n * A promise to get the current time of the video.\n *\n * @promise GetCurrentTimePromise\n * @fulfill {number} The current time in seconds.\n */\n /**\n * Get the current playback position in seconds.\n *\n * @return {GetCurrentTimePromise}\n */\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.get('currentTime');\n }\n\n /**\n * A promise to set the current time of the video.\n *\n * @promise SetCurrentTimePromise\n * @fulfill {number} The actual current time that was set.\n * @reject {RangeError} the time was less than 0 or greater than the\n * video’s duration.\n */\n /**\n * Set the current playback position in seconds. If the player was\n * paused, it will remain paused. Likewise, if the player was playing,\n * it will resume playing once the video has buffered.\n *\n * You can provide an accurate time and the player will attempt to seek\n * to as close to that time as possible. The exact time will be the\n * fulfilled value of the promise.\n *\n * @param {number} currentTime\n * @return {SetCurrentTimePromise}\n */\n }, {\n key: \"setCurrentTime\",\n value: function setCurrentTime(currentTime) {\n return this.set('currentTime', currentTime);\n }\n\n /**\n * A promise to get the duration of the video.\n *\n * @promise GetDurationPromise\n * @fulfill {number} The duration in seconds.\n */\n /**\n * Get the duration of the video in seconds. It will be rounded to the\n * nearest second before playback begins, and to the nearest thousandth\n * of a second after playback begins.\n *\n * @return {GetDurationPromise}\n */\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.get('duration');\n }\n\n /**\n * A promise to get the ended state of the video.\n *\n * @promise GetEndedPromise\n * @fulfill {boolean} Whether or not the video has ended.\n */\n /**\n * Get the ended state of the video. The video has ended if\n * `currentTime === duration`.\n *\n * @return {GetEndedPromise}\n */\n }, {\n key: \"getEnded\",\n value: function getEnded() {\n return this.get('ended');\n }\n\n /**\n * A promise to get the loop state of the player.\n *\n * @promise GetLoopPromise\n * @fulfill {boolean} Whether or not the player is set to loop.\n */\n /**\n * Get the loop state of the player.\n *\n * @return {GetLoopPromise}\n */\n }, {\n key: \"getLoop\",\n value: function getLoop() {\n return this.get('loop');\n }\n\n /**\n * A promise to set the loop state of the player.\n *\n * @promise SetLoopPromise\n * @fulfill {boolean} The loop state that was set.\n */\n /**\n * Set the loop state of the player. When set to `true`, the player\n * will start over immediately once playback ends.\n *\n * @param {boolean} loop\n * @return {SetLoopPromise}\n */\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n return this.set('loop', loop);\n }\n\n /**\n * A promise to set the muted state of the player.\n *\n * @promise SetMutedPromise\n * @fulfill {boolean} The muted state that was set.\n */\n /**\n * Set the muted state of the player. When set to `true`, the player\n * volume will be muted.\n *\n * @param {boolean} muted\n * @return {SetMutedPromise}\n */\n }, {\n key: \"setMuted\",\n value: function setMuted(muted) {\n return this.set('muted', muted);\n }\n\n /**\n * A promise to get the muted state of the player.\n *\n * @promise GetMutedPromise\n * @fulfill {boolean} Whether or not the player is muted.\n */\n /**\n * Get the muted state of the player.\n *\n * @return {GetMutedPromise}\n */\n }, {\n key: \"getMuted\",\n value: function getMuted() {\n return this.get('muted');\n }\n\n /**\n * A promise to get the paused state of the player.\n *\n * @promise GetLoopPromise\n * @fulfill {boolean} Whether or not the video is paused.\n */\n /**\n * Get the paused state of the player.\n *\n * @return {GetLoopPromise}\n */\n }, {\n key: \"getPaused\",\n value: function getPaused() {\n return this.get('paused');\n }\n\n /**\n * A promise to get the playback rate of the player.\n *\n * @promise GetPlaybackRatePromise\n * @fulfill {number} The playback rate of the player on a scale from 0 to 2.\n */\n /**\n * Get the playback rate of the player on a scale from `0` to `2`.\n *\n * @return {GetPlaybackRatePromise}\n */\n }, {\n key: \"getPlaybackRate\",\n value: function getPlaybackRate() {\n return this.get('playbackRate');\n }\n\n /**\n * A promise to set the playbackrate of the player.\n *\n * @promise SetPlaybackRatePromise\n * @fulfill {number} The playback rate was set.\n * @reject {RangeError} The playback rate was less than 0 or greater than 2.\n */\n /**\n * Set the playback rate of the player on a scale from `0` to `2`. When set\n * via the API, the playback rate will not be synchronized to other\n * players or stored as the viewer's preference.\n *\n * @param {number} playbackRate\n * @return {SetPlaybackRatePromise}\n */\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(playbackRate) {\n return this.set('playbackRate', playbackRate);\n }\n\n /**\n * A promise to get the played property of the video.\n *\n * @promise GetPlayedPromise\n * @fulfill {Array} Played Timeranges converted to an Array.\n */\n /**\n * Get the played property of the video.\n *\n * @return {GetPlayedPromise}\n */\n }, {\n key: \"getPlayed\",\n value: function getPlayed() {\n return this.get('played');\n }\n\n /**\n * A promise to get the qualities available of the current video.\n *\n * @promise GetQualitiesPromise\n * @fulfill {Array} The qualities of the video.\n */\n /**\n * Get the qualities of the current video.\n *\n * @return {GetQualitiesPromise}\n */\n }, {\n key: \"getQualities\",\n value: function getQualities() {\n return this.get('qualities');\n }\n\n /**\n * A promise to get the current set quality of the video.\n *\n * @promise GetQualityPromise\n * @fulfill {string} The current set quality.\n */\n /**\n * Get the current set quality of the video.\n *\n * @return {GetQualityPromise}\n */\n }, {\n key: \"getQuality\",\n value: function getQuality() {\n return this.get('quality');\n }\n\n /**\n * A promise to set the video quality.\n *\n * @promise SetQualityPromise\n * @fulfill {number} The quality was set.\n * @reject {RangeError} The quality is not available.\n */\n /**\n * Set a video quality.\n *\n * @param {string} quality\n * @return {SetQualityPromise}\n */\n }, {\n key: \"setQuality\",\n value: function setQuality(quality) {\n return this.set('quality', quality);\n }\n\n /**\n * A promise to get the remote playback availability.\n *\n * @promise RemotePlaybackAvailabilityPromise\n * @fulfill {boolean} Whether remote playback is available.\n */\n /**\n * Get the availability of remote playback.\n *\n * @return {RemotePlaybackAvailabilityPromise}\n */\n }, {\n key: \"getRemotePlaybackAvailability\",\n value: function getRemotePlaybackAvailability() {\n return this.get('remotePlaybackAvailability');\n }\n\n /**\n * A promise to get the current remote playback state.\n *\n * @promise RemotePlaybackStatePromise\n * @fulfill {string} The state of the remote playback: connecting, connected, or disconnected.\n */\n /**\n * Get the current remote playback state.\n *\n * @return {RemotePlaybackStatePromise}\n */\n }, {\n key: \"getRemotePlaybackState\",\n value: function getRemotePlaybackState() {\n return this.get('remotePlaybackState');\n }\n\n /**\n * A promise to get the seekable property of the video.\n *\n * @promise GetSeekablePromise\n * @fulfill {Array} Seekable Timeranges converted to an Array.\n */\n /**\n * Get the seekable property of the video.\n *\n * @return {GetSeekablePromise}\n */\n }, {\n key: \"getSeekable\",\n value: function getSeekable() {\n return this.get('seekable');\n }\n\n /**\n * A promise to get the seeking property of the player.\n *\n * @promise GetSeekingPromise\n * @fulfill {boolean} Whether or not the player is currently seeking.\n */\n /**\n * Get if the player is currently seeking.\n *\n * @return {GetSeekingPromise}\n */\n }, {\n key: \"getSeeking\",\n value: function getSeeking() {\n return this.get('seeking');\n }\n\n /**\n * A promise to get the text tracks of a video.\n *\n * @promise GetTextTracksPromise\n * @fulfill {VimeoTextTrack[]} The text tracks associated with the video.\n */\n /**\n * Get an array of the text tracks that exist for the video.\n *\n * @return {GetTextTracksPromise}\n */\n }, {\n key: \"getTextTracks\",\n value: function getTextTracks() {\n return this.get('textTracks');\n }\n\n /**\n * A promise to get the embed code for the video.\n *\n * @promise GetVideoEmbedCodePromise\n * @fulfill {string} The `