{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack:///./node_modules/date-fns/esm/toDate/index.js","webpack:///./node_modules/@stimulus/core/dist/src/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/src/action.js","webpack:///./node_modules/@stimulus/core/dist/src/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/context.js","webpack:///./node_modules/@stimulus/core/dist/src/definition.js","webpack:///./node_modules/@stimulus/core/dist/src/module.js","webpack:///./node_modules/@stimulus/core/dist/src/data_map.js","webpack:///./node_modules/@stimulus/core/dist/src/selectors.js","webpack:///./node_modules/@stimulus/core/dist/src/target_set.js","webpack:///./node_modules/@stimulus/core/dist/src/scope.js","webpack:///./node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/router.js","webpack:///./node_modules/@stimulus/core/dist/src/schema.js","webpack:///./node_modules/@stimulus/core/dist/src/application.js","webpack:///./node_modules/@stimulus/core/dist/src/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/src/controller.js","webpack:///./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack:///./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/index.js","webpack:///./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack:///./app/javascript/packs/controllers/buttons_controller.js","webpack:///./app/javascript/packs/controllers/charts/canton_ch_comparison_controller.js","webpack:///./app/javascript/packs/controllers/charts/prices_cantons_comparison_controller.js","webpack:///./app/javascript/packs/controllers/load_buttons_controller.js","webpack:///./app/javascript/packs/controllers/load_similar_homes_controller.js","webpack:///./app/javascript/packs/controllers/polygon_map_controller.js","webpack:///./app/javascript/packs/controllers/price_comparison_controller.js","webpack:///./app/javascript/packs/controllers/small_view_controller.js","webpack:///./app/javascript/packs/controllers/user_login_controller.js","webpack:///./app/javascript/packs/controllers/vicinity_map_controller.js","webpack:///./node_modules/date-fns/esm/constants/index.js","webpack:///./node_modules/date-fns/esm/parseISO/index.js","webpack:///./node_modules/date-fns/esm/compareAsc/index.js","webpack:///./node_modules/date-fns/esm/isLastDayOfMonth/index.js","webpack:///./node_modules/date-fns/esm/endOfDay/index.js","webpack:///./node_modules/date-fns/esm/endOfMonth/index.js","webpack:///./node_modules/date-fns/esm/differenceInMonths/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack:///./node_modules/date-fns/esm/_lib/roundingMethods/index.js","webpack:///./node_modules/date-fns/esm/differenceInSeconds/index.js","webpack:///./node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/assign/index.js","webpack:///./node_modules/date-fns/esm/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/_lib/cloneObject/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/de/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/en-GB/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-GB/index.js","webpack:///./app/javascript/packs/controllers/date_from_controller.js","webpack:///./node_modules/date-fns/esm/formatDistanceToNow/index.js","webpack:///./node_modules/date-fns/esm/isDate/index.js","webpack:///./node_modules/date-fns/esm/isValid/index.js","webpack:///./node_modules/date-fns/esm/subMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/addMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack:///./node_modules/date-fns/esm/format/index.js","webpack:///./app/javascript/packs/controllers/charts/prices_m2_controller.js","webpack:///./node_modules/date-fns/esm/getQuarter/index.js","webpack:///./node_modules/date-fns/esm/getYear/index.js","webpack:///./app/javascript/packs/controllers sync \\.js$","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.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","requiredArgs","required","args","length","TypeError","_typeof","obj","iterator","constructor","toDate","argument","arguments","argStr","toString","Date","getTime","console","warn","Error","stack","NaN","EventListener","eventTarget","eventName","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","delete","handleEvent","event","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","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","createEventListener","set","descriptorPattern","parseEventTarget","eventTargetName","window","document","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","match","eventNameSuffix","e","getAttribute","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","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","setPrototypeOf","__proto__","b","__","_super","IndexedMultimap","keysByValue","keys","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","slice","tokenString","split","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","Context","controllerConstructor","bindingObserver","dispatcher","initialize","parentElement","blessControllerConstructor","extend","bless","extendWithReflect","Controller","_newTarget","Reflect","construct","a","apply","Module","definition","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","DataMap","getFormattedKey","setAttribute","removeAttribute","replace","char","attributeValueContainsToken","TargetSet","targetName","find","targetNames","getSelectorForTargetNames","findElement","findAll","findAllElements","getSelectorForTargetName","join","targetDescriptor","targetAttribute","Scope","targets","data","head","tail","filterElements","closest","controllerSelector","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","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","v","op","pop","push","Application","documentElement","router","readyState","register","load","rest","isArray","unload","getControllerForElementAndIdentifier","defineTargetProperties","ancestors","getPrototypeOf","getAncestorsForConstructor","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","properties","charAt","toUpperCase","capitalize","toInteger","dirtyNumber","number","Number","isNaN","ceil","floor","buildLocalizeFn","dirtyIndex","options","valuesArray","String","formattingValues","defaultWidth","defaultFormattingWidth","width","_defaultWidth","_width","argumentCallback","buildMatchFn","string","undefined","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","array","predicate","pattern","test","findKey","valueCallback","buildFormatLongFn","formats","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","querySelector","cspNonce","expando","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","csrfParam","csrfToken","meta","CSRFProtection","xhr","setRequestHeader","refreshCSRFTokens","param","input","CustomEvent","fire","preventDefault","params","evt","createEvent","initCustomEvent","bubbles","cancelable","Event","defaultPrevented","dispatchEvent","stopEverything","stopPropagation","eventType","handler","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","response","responseText","getResponseHeader","status","success","statusText","complete","beforeSend","XMLHttpRequest","OPENED","send","url","location","href","indexOf","dataType","accept","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","JSON","parse","createElement","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","disabled","option","selected","checked","encodeURIComponent","formElements","form","el","allowAction","handleConfirm","confirm","answer","callback","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","handleMethod","formContent","link","style","display","click","isRemote","handleRemote","button","enctype","FormData","append","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","setTimeout","defaultOptions","getDefaultOptions","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","count","tokenValue","addSuffix","comparison","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","_date","_baseDate","_options","localize","ordinalNumber","rem100","era","narrow","abbreviated","wide","quarter","month","day","short","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseInt","any","buildMatchPatternFn","getTimezoneOffsetInMilliseconds","date","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","full","long","medium","time","dateTime","code","formatDistance","formatLong","formatRelative","weekStartsOn","firstWeekContainsDate","_default","_Controller","_inherits","_createSuper","_classCallCheck","_len","_key","update_buttons","set_favorite_button","favorite","set_dislike_button","dislike","gon","current_user","locale","flag","isFavoriteTarget","classList","remove","isNotFavoriteTarget","isDislikeTarget","isNotDislikeTarget","bb","generate","bindto","height","labels","format","id","j","d3","x","columns","color","empty","legend","show","axis","tick","outer","tooltip","title","padding","bottom","position","culling","grid","utils","t2","ratio","contentTarget","thisElement","draw_map","baseLayer","L","tileLayer","wms","layers","detectRetina","polygonmap","scrollWheelZoom","zoomControl","dragging","touchZoom","doubleClickZoom","tap","crs","CRS","EPSG3857","worldCopyJump","tileSize","zoomOffset","control","scale","imperial","addTo","setView","polygon","polygonLayer","geoJson","weight","opacity","fillColor","fillOpacity","interactive","fitBounds","getBounds","draw_chart","price_comparison_data","select","datum","priceComparisonChart","margin","top","gap","hist_height","selection","each","parseFloat","svg","selectAll","enter","attr","mainGradient","formatPrice","formatLocale","thousands","grouping","currency","scaleLinear","domain","range","this_price","classed","tip","offset","x0","x1","hist_data","bins","median","on","hide","axisBottom","ticks","axisLeft","tickSizeOuter","area_s","set_favorite_icon","visited","mark_as_visited","favorited","cardTarget","full_active_objekt_id","Rollbar","configure","payload","person","user_menu_snippet","supermarkets","restaurants","transit_stops","basemaps","vicinity_map","center","lat","lng","zoom","minZoom","maxZoom","collapsed","metric","updateWhenIdle","maxWidth","marker","icon","iconUrl","asset_host","shadowUrl","iconSize","iconAnchor","shadowSize","circle","fill","dashArray","name_short","zIndexOffset","means_of_transportation","mot","pow","millisecondsInMinute","millisecondsInHour","parseISO","_options$additionalDi","additionalDigits","RangeError","dateStrings","dateString","timeString","patterns","dateTimeDelimiter","timeZoneDelimiter","substr","timezone","exec","splitDateString","parseYearResult","regex","RegExp","captures","year","restDateString","century","parseYear","dateRegex","isWeekDate","dayOfYear","parseDateUnit","week","dayOfWeek","_year","validateWeekDate","isoWeekYear","fourthOfJanuaryDay","getUTCDay","diff","setUTCDate","getUTCDate","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseDate","timestamp","timeRegex","hours","parseTimeUnit","minutes","seconds","validateTime","parseTime","dirtyDate","setFullYear","getUTCFullYear","getUTCMonth","setHours","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","timezoneString","timezoneRegex","sign","_hours","validateTimezone","parseTimezone","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","isLastDayOfMonth","endOfDay","endOfMonth","differenceInMonths","difference","abs","differenceInCalendarMonths","setDate","setMonth","isLastMonthNotFull","roundingMap","round","trunc","defaultRoundingMethod","differenceInSeconds","differenceInMilliseconds","roundingMethod","MINUTES_IN_DAY","MINUTES_IN_ALMOST_TWO_DAYS","MINUTES_IN_MONTH","MINUTES_IN_TWO_MONTHS","dirtyBaseDate","_ref","_options$locale","defaultLocale","localizeOptions","Boolean","months","offsetInSeconds","includeSeconds","days","nearestMonth","monthsSinceStartOfYear","years","standalone","withPreposition","monthValues","formattingMonthValues","distance_s","now","formatDistanceToNow","de","enGB","isValid","isDate","subMilliseconds","dirtyAmount","amount","addMilliseconds","MILLISECONDS_IN_DAY","startOfUTCISOWeek","setUTCHours","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","MILLISECONDS_IN_WEEK","getUTCISOWeek","fourthOfJanuary","startOfUTCISOWeekYear","startOfUTCWeek","_ref2","_ref3","_options$weekStartsOn","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","getUTCWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","getUTCWeek","firstWeek","startOfUTCWeekYear","addLeadingZeros","targetLength","output","signedYear","M","dayPeriodEnumValue","h","H","S","numberOfDigits","milliseconds","dayPeriodEnum","G","unit","lightFormatters","Y","signedWeekYear","weekYear","R","u","Q","q","w","I","isoWeek","D","setUTCMonth","getUTCDayOfYear","E","localDayOfWeek","isoDayOfWeek","B","K","k","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","O","formatTimezoneShort","z","originalDate","T","dirtyDelimiter","absOffset","delimiter","dateLongFormatter","timeLongFormatter","dateTimeFormat","datePattern","timePattern","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","formatterOptions","substring","firstCharacter","longFormatter","matched","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","draw","axis_y_min","axis_y_max","_this$padded_extend2","_slicedToArray","padded_extend","chart","names","onafterinit","getQuarter","getYear","min","background","background_missing_data","comp","mid","class","imgUrl","webpackContext","req","webpackContextResolve","require","logicalName","identifierForContextKey","default","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext"],"mappings":"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","file":"js/application-4c4e6ac3db7dbc3abdd0.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 = \"https://d2dk1dud64ubrg.cloudfront.net/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 31);\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","var EventListener = /** @class */function () {\n function EventListener(eventTarget, eventName) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.unorderedBindings = new Set();\n }\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, false);\n };\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, false);\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: true,\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: true,\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 return this.fetchEventListener(eventTarget, eventName);\n };\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var eventListener = eventListenerMap.get(eventName);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName);\n eventListenerMap.set(eventName, eventListener);\n }\n return eventListener;\n };\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName) {\n var eventListener = new EventListener(eventTarget, eventName);\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 return Dispatcher;\n}();\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 76\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#(.+))?$/;\nexport function parseDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\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}\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseDescriptorString, 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.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, parseDescriptorString(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: true,\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\" : \"change\";\n },\n \"select\": function (e) {\n return \"change\";\n },\n \"textarea\": function (e) {\n return \"change\";\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: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function () {\n return this.action.eventTarget;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: true,\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: true,\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: true,\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 true;\n }\n };\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function () {\n return this.action.methodName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: true,\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: true,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function () {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: true,\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: true,\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 };","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: true,\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: true,\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 = 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 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: true,\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: true,\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: true,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.attributeObserver.attributeName;\n },\n enumerable: true,\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: true,\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: true,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.tokenListObserver.attributeName;\n },\n enumerable: true,\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: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function () {\n return this.schema.actionAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function () {\n return this.context.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: true,\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 { BindingObserver } from \"./binding_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 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 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.bindingObserver.stop();\n };\n Object.defineProperty(Context.prototype, \"application\", {\n get: function () {\n return this.module.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function () {\n return this.module.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function () {\n return this.application.dispatcher;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function () {\n return this.element.parentElement;\n },\n enumerable: true,\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 };","var __extends = this && this.__extends || function () {\n var 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 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}();\n/** @hidden */\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: blessControllerConstructor(definition.controllerConstructor)\n };\n}\nfunction blessControllerConstructor(controllerConstructor) {\n var constructor = extend(controllerConstructor);\n constructor.bless();\n return constructor;\n}\nvar extend = function () {\n function extendWithReflect(constructor) {\n function Controller() {\n var _newTarget = this && this instanceof Controller ? this.constructor : void 0;\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n Controller.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: Controller\n }\n });\n Reflect.setPrototypeOf(Controller, constructor);\n return Controller;\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(Controller, _super);\n function Controller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return Controller;\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: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function () {\n return this.definition.controllerConstructor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function () {\n return Array.from(this.connectedContexts);\n },\n enumerable: true,\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 };","var 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: true,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n DataMap.prototype.get = function (key) {\n key = this.getFormattedKey(key);\n return this.element.getAttribute(key);\n };\n DataMap.prototype.set = function (key, value) {\n key = this.getFormattedKey(key);\n this.element.setAttribute(key, value);\n return this.get(key);\n };\n DataMap.prototype.has = function (key) {\n key = this.getFormattedKey(key);\n return this.element.hasAttribute(key);\n };\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n key = this.getFormattedKey(key);\n this.element.removeAttribute(key);\n return true;\n } else {\n return false;\n }\n };\n DataMap.prototype.getFormattedKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n return DataMap;\n}();\nexport { DataMap };\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","import { 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: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function () {\n return this.scope.schema;\n },\n enumerable: true,\n configurable: true\n });\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n TargetSet.prototype.find = function () {\n var targetNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findElement(selector);\n };\n TargetSet.prototype.findAll = function () {\n var targetNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findAllElements(selector);\n };\n TargetSet.prototype.getSelectorForTargetNames = function (targetNames) {\n var _this = this;\n return targetNames.map(function (targetName) {\n return _this.getSelectorForTargetName(targetName);\n }).join(\", \");\n };\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n return TargetSet;\n}();\nexport { TargetSet };","import { DataMap } from \"./data_map\";\nimport { TargetSet } from \"./target_set\";\nimport { attributeValueContainsToken } from \"./selectors\";\nvar Scope = /** @class */function () {\n function Scope(schema, identifier, element) {\n this.schema = schema;\n this.identifier = identifier;\n this.element = element;\n this.targets = new TargetSet(this);\n this.data = new DataMap(this);\n }\n Scope.prototype.findElement = function (selector) {\n return this.findAllElements(selector)[0];\n };\n Scope.prototype.findAllElements = function (selector) {\n var head = this.element.matches(selector) ? [this.element] : [];\n var tail = this.filterElements(Array.from(this.element.querySelectorAll(selector)));\n return head.concat(tail);\n };\n Scope.prototype.filterElements = function (elements) {\n var _this = this;\n return elements.filter(function (element) {\n return _this.containsElement(element);\n });\n };\n Scope.prototype.containsElement = function (element) {\n return element.closest(this.controllerSelector) === this.element;\n };\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function () {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: true,\n configurable: true\n });\n return Scope;\n}();\nexport { Scope };","import { Scope } from \"./scope\";\nimport { 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: true,\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 = new Scope(this.schema, identifier, element);\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 { 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: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function () {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: true,\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: true,\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.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 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) : new P(function (resolve) {\n resolve(result.value);\n }).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 = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, 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};\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.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.router.start();\n this.dispatcher.start();\n return [2 /*return*/];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.router.stop();\n this.dispatcher.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 : [head].concat(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 : [head].concat(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: true,\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 console.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}","/** @hidden */\nexport function defineTargetProperties(constructor) {\n var prototype = constructor.prototype;\n var targetNames = getTargetNamesForConstructor(constructor);\n targetNames.forEach(function (name) {\n var _a;\n return defineLinkedProperties(prototype, (_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 });\n}\nfunction getTargetNamesForConstructor(constructor) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (targetNames, constructor) {\n getOwnTargetNamesForConstructor(constructor).forEach(function (name) {\n return targetNames.add(name);\n });\n return targetNames;\n }, new Set()));\n}\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors;\n}\nfunction getOwnTargetNamesForConstructor(constructor) {\n var definition = constructor[\"targets\"];\n return Array.isArray(definition) ? definition : [];\n}\nfunction defineLinkedProperties(object, properties) {\n Object.keys(properties).forEach(function (name) {\n if (!(name in object)) {\n var descriptor = properties[name];\n Object.defineProperty(object, name, descriptor);\n }\n });\n}\nfunction capitalize(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}","import { defineTargetProperties } from \"./target_properties\";\nvar Controller = /** @class */function () {\n function Controller(context) {\n this.context = context;\n }\n Controller.bless = function () {\n defineTargetProperties(this);\n };\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function () {\n return this.context.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function () {\n return this.scope.targets;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: true,\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.targets = [];\n return Controller;\n}();\nexport { Controller };","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n expando = '_ujsData';\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n return result;\n };\n }\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n processResponse = function (response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n Rails.href = function (element) {\n return element.href;\n };\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n Rails.enableElement = function (e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n disableLinkElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n disableFormElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n isXhrRedirect = function (event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */,\n\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","/* global Logger, gon, gtag */\n\nimport { Controller } from \"stimulus\"\nimport Rails from \"@rails/ujs\"\n\nexport default class extends Controller {\n static targets = [ \"isFavorite\", \"isNotFavorite\", \"isDislike\", \"isNotDislike\" ]\n\n initialize() {\n this.update_buttons()\n let controller = this\n // utils.log.info('initialize')\n }\n\n disconnect() {\n // utils.log.info('disconnect')\n }\n\n update_buttons() {\n this.set_favorite_button(this.favorite)\n this.set_dislike_button(this.dislike)\n }\n\n toggle_favorite() {\n if (gon.current_user) {\n this.favorite = !this.favorite\n // console.log(this.favorite)\n // console.log(this.dislike)\n if (this.favorite && this.dislike) {\n this.dislike = false\n }\n this.update_buttons()\n Rails.ajax({\n url: this.data.get('patchUrl'),\n type: \"PATCH\", // POST\n data: `favorite=${this.favorite}&dislike=${this.dislike}`,\n success: function(data) {\n // nothing, fire and forget\n }\n })\n } else { // not logged in\n window.location = `/${gon.locale}/login`\n }\n }\n\n toggle_dislike() {\n if (gon.current_user) {\n this.dislike = !this.dislike\n if (this.dislike && this.favorite) {\n this.favorite = false\n }\n this.update_buttons()\n Rails.ajax({\n url: this.data.get('patchUrl'),\n type: \"PATCH\",\n data: `favorite=${this.favorite}&dislike=${this.dislike}`,\n success: function(data) {\n // nothing, fire and forget\n }\n })\n } else { // not logged in\n window.location = `/${gon.locale}/login`\n }\n }\n\n private\n\n set_favorite_button(flag) {\n if (flag) {\n // utils.log.info('set_favorite_button true')\n this.isFavoriteTarget.classList.remove(\"d-none\")\n this.isNotFavoriteTarget.classList.add(\"d-none\")\n } else {\n // utils.log.info('set_favorite_button false')\n this.isFavoriteTarget.classList.add(\"d-none\")\n this.isNotFavoriteTarget.classList.remove(\"d-none\")\n }\n }\n\n set_dislike_button(flag) {\n if (flag) {\n this.isDislikeTarget.classList.remove(\"d-none\")\n this.isNotDislikeTarget.classList.add(\"d-none\")\n } else {\n this.isDislikeTarget.classList.add(\"d-none\")\n this.isNotDislikeTarget.classList.remove(\"d-none\")\n }\n }\n\n get favorite() {\n return(this.data.get('favorite') === 'true')\n }\n set favorite(favorite) {\n this.data.set('favorite', favorite.toString())\n }\n get dislike() {\n return(this.data.get('dislike') === 'true')\n }\n set dislike(dislike) {\n this.data.set('dislike', dislike.toString())\n }\n\n}\n","/* global window, d3, bb */\n\nimport { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n\n connect() {\n\n let data = JSON.parse(this.data.get('data'));\n\n bb.generate({\n bindto: this.element,\n size: {height: 150},\n data: {\n type: 'bar',\n labels: {\n format: function (v, id, i, j) {\n return 'CHF ' + d3.format(\",.0f\")(v);\n },\n },\n x: 'x',\n columns: data,\n color: function (color, d) {\n var colors = [\"#1e77b4\", \"#999999\", \"#444444\"];\n return colors[d.index];\n },\n empty: {\n label: {\n text: \"No Data Available\"\n }\n },\n },\n legend: {\n show: false,\n },\n axis: {\n x: {\n type: 'category',\n // show: false,\n tick: {\n outer: false,\n count: 0,\n },\n },\n y: {\n show: false,\n },\n },\n tooltip: {\n show: false,\n },\n });\n }\n\n}\n","/* global window, d3, bb, utils */\n\nimport { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n\n connect() {\n let data = JSON.parse(this.data.get('data'));\n // console.log(data)\n\n var chart = bb.generate({\n bindto: this.element,\n // size: {height: 250},\n data: {\n json: data['json'],\n \t\t\tkeys: {\n \t\t\t\tx: \"abbr\",\n \t\t\t\tvalue: [\"value\"],\n \t\t\t},\n type: \"bar\",\n // labels: {\n // format: function (x) {\n // return 'CHF ' + d3.format(x > 100 ? \",.0f\" : \",.2f\")(x);\n // },\n // }\n },\n title: {\n text: data['title'],\n padding: {\n bottom: 10,\n },\n position: \"center\"\n },\n legend: {show: false},\n axis: {\n // rotated: true,\n x: {\n type: \"category\"\n },\n y: {\n tick: {\n format: function (x) {\n return d3.format(\",.0f\")(x);\n },\n culling: true\n }\n }\n },\n grid: {\n y: {\n show: true,\n }\n },\n tooltip: {\n show: true,\n format: {\n title: function (d) {\n return data['json'][d]['name'];\n // return 'Title ' + d;\n },\n name: function (d) {\n if (data['type'] == 'rent') {\n return utils.t2('Rent per m²', 'Miete pro m²');\n } else {\n return utils.t2('Price per m²', 'Preis pro m²');\n }\n },\n value: function (d, ratio, id, index) {\n // console.log('bla')\n // console.log(d)\n // console.log(ratio)\n // console.log(id)\n // console.log(index)\n return 'CHF ' + d3.format(d > 100 ? \",.0f\" : \",.2f\")(d);\n },\n }\n\n },\n });\n\n }\n}\n","/* global window, utils, gon */\n\nimport { Controller } from \"stimulus\"\nimport Rails from \"@rails/ujs\"\n\nexport default class extends Controller {\n \n static targets = [ \"content\" ]\n \n initialize() {\n let target = this.contentTarget\n let thisElement = this.element\n Rails.ajax({\n url: this.data.get('url'), \n type: \"get\",\n success: function(data) {\n if (data.length > 1) {\n target.innerHTML = data\n } else {\n thisElement.style.display='none'\n }\n },\n error: function(data) {\n // nothing, forgetaboutit\n }\n })\n }\n \n}\n","/* global window, utils, gon */\n\nimport { Controller } from \"stimulus\"\nimport Rails from \"@rails/ujs\"\n\nexport default class extends Controller {\n\n static targets = [ \"content\" ]\n\n initialize() {\n let target = this.contentTarget\n let thisElement = this.element\n Rails.ajax({\n url: this.data.get('url'),\n type: \"get\",\n success: function(data) {\n if (data.length > 1) {\n target.innerHTML = data\n } else {\n thisElement.style.display='none'\n }\n },\n error: function(data) {\n // nothing, forgetaboutit\n }\n })\n }\n\n}\n","/* global window, L, gon */\n\nimport { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n\n connect() {\n this.draw_map();\n }\n\n draw_map() {\n\n // var baseLayer = L.tileLayer(\n // gon.tiles_host + 'klokantech-basic/{z}/{x}/{y}.png', {\n // minZoom: 7, maxZoom: 16,\n // });\n var baseLayer = L.tileLayer.wms('https://wms.geo.admin.ch/?', {\n\t\t\tlayers: 'ch.swisstopo.pixelkarte-farbe',\n\t\t// \tlayers: 'ch.swisstopo.pixelkarte-grau',\n\t\t\tformat: 'image/jpeg',\n\t\t\tdetectRetina: true,\n\t })\n // var swissimagemap = L.tileLayer.wms('http://wms.geo.admin.ch/?', {\n\t\t// \tlayers: 'ch.swisstopo.swissimage',\n\t\t// \tformat: 'image/jpeg',\n\t\t// \tdetectRetina: true,\n\t // })\n\n var polygonmap = L.map(this.element, {\n scrollWheelZoom: false,\n zoomControl: false,\n dragging: false,\n touchZoom: false,\n doubleClickZoom: false,\n tap: false,\n crs: L.CRS.EPSG3857,\n worldCopyJump: false,\n tileSize: 512, zoomOffset: -1,\n layers: [baseLayer]\n }\n );\n L.control.scale({imperial: false}).addTo(polygonmap);\n\n polygonmap.setView([46.907, 8.585], 7); // show CH\n\n let polygon = JSON.parse(this.data.get('data'));\n var polygonLayer = L.geoJson(polygon, {\n style: {\n color: 'blue',\n weight: 3,\n opacity: 0.7,\n fillColor: '#000000',\n fillOpacity: 0.2,\n \"pointer-events\": 'none',\n interactive: false,\n },\n });\n polygonLayer.addTo(polygonmap);\n polygonmap.fitBounds(polygonLayer.getBounds());\n }\n\n}\n","/* global d3, gon, utils */\n\nimport { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n\n connect() {\n this.draw_chart();\n }\n\n draw_chart() {\n let price_comparison_data = JSON.parse(this.data.get('data'));\n var margin = {\n top: 40, right: 25, bottom: 70, left: 40,\n gap: 75 // gap between histograms\n };\n var hist_height = 70; // histogram height\n\n d3.select(this.element)\n .datum(price_comparison_data)\n .call(this.priceComparisonChart());\n }\n\n priceComparisonChart() {\n var margin = {\n top: 40, right: 25, bottom: 70, left: 40,\n gap: 75 // gap between histograms\n };\n var hist_height = 70; // histogram height\n\n function chart(selection) {\n selection.each(function(data) {\n\n var width = parseFloat(d3.select(this).style(\"width\"));\n var height = hist_height*data['histograms'].length\n + margin.gap*(data['histograms'].length-1)\n + margin.top + margin.bottom; // total svg height\n\n var svg = d3.select(this).selectAll(\"svg\").data([data]);\n svg = svg.enter().append(\"svg\");\n svg.enter().append(\"svg\");\n svg.attr(\"width\", width)\n .attr(\"height\", height)\n .style(\"background-color\", \"#fff\");\n var svgDefs = svg.append('defs');\n var mainGradient = svgDefs.append('linearGradient')\n .attr('id', 'mainGradient');\n mainGradient.append('stop')\n .attr('class', 'stop-left')\n .attr('offset', '0');\n mainGradient.append('stop')\n .attr('class', 'stop-right')\n .attr('offset', '1');\n\n width = width - margin.left - margin.right;\n height = height - margin.top - margin.bottom;\n\n var locale = d3.formatLocale({\n thousands: gon.locale=='en' ? \",\" : \"'\",\n grouping: [3], currency: [\"CHF \", \"\"]\n })\n var formatPrice = locale.format(\"$,.0f\");\n\n var x = d3.scaleLinear()\n .domain([0, data['histograms'][0]['histogram_max_price']])\n .range([0, width]);\n\n var this_price = data['this_price'];\n\n var g = svg.append(\"g\")\n .attr(\"transform\",\n \"translate(\" + margin.left + \",\" + margin.top + \")\");\n // ############### line1 ############################\n g.append(\"line\")\n .classed(\"guide-line\", true)\n .attr(\"x1\", x(this_price))\n .attr(\"y1\", -margin.top)\n .attr(\"x2\", x(this_price))\n .attr(\"y2\", height+margin.bottom-34)\n // ############### line2 ############################\n g.append(\"line\")\n .classed(\"guide-line\", true)\n .attr(\"x1\", x(this_price)-42)\n .attr(\"y1\", height+margin.bottom-34)\n .attr(\"x2\", x(this_price)+42)\n .attr(\"y2\", height+margin.bottom-34)\n // ############### price display ############################\n g.append(\"text\")\n .attr(\"class\", \"charttext\")\n .attr(\"text-anchor\", \"middle\")\n .attr(\"x\", x(this_price))\n .attr(\"y\", height+margin.bottom-10-4)\n .text(formatPrice(this_price));\n\n var tip = d3.tip()\n .attr('class', 'd3-tip')\n .offset([-10, 0])\n .html(function(d) {\n return d.n + utils.t2(' homes between',' Objekte zwischen') +\n '
' + formatPrice(d.x0) +\n utils.t2(' and ',' und ') + formatPrice(d.x1);\n });\n svg.call(tip);\n\n var i = 0;\n data['histograms'].forEach(function(hist_data) {\n var g = svg.append(\"g\")\n .attr(\"transform\",\n \"translate(\" + margin.left + \",\" + margin.top + \")\");\n var bins = hist_data['bins'];\n\n var y = d3.scaleLinear()\n .domain([0, d3.max(bins, function(d) { return d.n; })])\n .range([hist_height, 0]);\n\n g.selectAll(\".bar\")\n .data(bins)\n .enter().append(\"g\")\n .append(\"rect\")\n .attr(\"x\", function(d) { return x(d.x0) + 1})\n .attr(\"width\", function(d) { return x(d.x1) - x(d.x0) - 1 })\n .attr(\"y\", function(d) { return (y(d.n)+i*(hist_height+margin.gap))})\n .attr(\"height\", function(d) { return hist_height - y(d.n); })\n .attr('class', function(d) {\n if (d.x1 <= hist_data.median) {\n return 'bar bar-cheap';\n } else if (d.x0 < hist_data.median && hist_data.median < d.x1) {\n return 'bar bar-gradient';\n } else {\n return 'bar bar-expensive';\n }\n })\n .on('mouseover', tip.show)\n .on('mouseout', tip.hide);\n\n g.append(\"g\")\n .attr(\"class\", \"axis axis--x\")\n .attr(\"transform\", \"translate(0,\" + (hist_height+i*(hist_height+margin.gap)) + \")\")\n .call(d3.axisBottom(x).ticks(Math.max(width/50)));\n\n g.append(\"g\")\n .attr(\"class\", \"axis axis--y\")\n .attr(\"transform\", \"translate(0,\" + i*(hist_height+margin.gap) + \")\")\n .call(d3.axisLeft(y).ticks(3).tickSizeOuter(0));\n\n g.append(\"text\")\n .attr(\"class\", \"charttext\")\n .attr(\"text-anchor\", \"start\")\n .attr(\"x\", -15)\n .attr(\"y\", i*(hist_height+margin.gap)-20)\n .text(hist_data.area_s);\n\n i = i+1;\n }); // each\n\n });\n }\n return chart;\n }\n\n\n}\n","/* global Logger, gon, gtag */\n\nimport { Controller } from \"stimulus\"\nimport Rails from \"@rails/ujs\"\n\nexport default class extends Controller {\n static targets = [ \"isFavorite\", \"isNotFavorite\", \"card\" ]\n\n initialize() {\n this.set_favorite_icon(this.favorite)\n if (this.visited) {\n this.mark_as_visited()\n }\n let controller = this // so we can access it in different context\n }\n\n disconnect() {\n // this.channel.perform('unfollow')\n }\n\n toggle_favorite() {\n if (gon.current_user) {\n this.favorite = !this.favorite\n this.set_favorite_icon(this.favorite)\n Rails.ajax({\n url: this.data.get('patchUrl'),\n type: \"PATCH\",\n data: `favorite=${this.favorite}&dislike=false`,\n // dislike has to be false otherwise the small_view wouldn't be visible in the first place\n success: function(data) {\n // nothing, fire and forget\n }\n })\n } else { // not logged in\n window.location = `/${gon.locale}/login`\n }\n }\n\n private\n\n set_favorite_icon(favorited) {\n if (favorited) {\n this.isFavoriteTarget.classList.remove(\"d-none\")\n this.isNotFavoriteTarget.classList.add(\"d-none\")\n } else {\n this.isFavoriteTarget.classList.add(\"d-none\")\n this.isNotFavoriteTarget.classList.remove(\"d-none\")\n }\n }\n\n hide_small_view() {\n // set parent node of card to hide\n this.cardTarget.parentNode.classList.add(\"d-none\")\n }\n\n mark_as_visited() {\n this.cardTarget.classList.add(\"card-visited\")\n }\n\n get favorite() {\n return(this.data.get('favorite') === 'true')\n }\n set favorite(favorite) {\n this.data.set('favorite', favorite.toString())\n }\n get visited() {\n return(this.data.get('visited') === 'true')\n }\n\n}\n","/* global window, utils, gon, Rollbar */\n\nimport { Controller } from \"stimulus\"\nimport Rails from \"@rails/ujs\"\n\nexport default class extends Controller {\n\n static targets = [ \"content\" ]\n\n initialize() {\n let target = this.contentTarget\n // let thisElement = this.element\n Rails.ajax({\n url: this.data.get('url'),\n type: \"post\",\n data: gon.full_active_objekt_id ? `full_active_objekt_id=${gon.full_active_objekt_id}` : '',\n success: function(data) {\n if (data.current_user) {\n gon.current_user = data.current_user\n Rollbar.configure({\n payload: {\n person: {id: data.current_user.id}\n }\n })\n target.innerHTML = data.user_menu_snippet\n }\n },\n error: function(data) {\n // nothing, forgetaboutit\n }\n })\n }\n\n}\n","/* global window, L, gon */\n\nimport { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n\n connect() {\n this.draw_map();\n }\n\n draw_map() {\n let supermarkets = JSON.parse(this.data.get('supermarkets'));\n let restaurants = JSON.parse(this.data.get('restaurants'));\n let transit_stops = JSON.parse(this.data.get('transit_stops'));\n\n var basemaps = {\n 'Swissimage': L.tileLayer.wms('https://wms.geo.admin.ch/?', {\n layers: 'ch.swisstopo.swissimage',\n format: 'image/jpeg',\n detectRetina: true,\n }),\n [utils.t2('Swisstopo','Landeskarte')]: L.tileLayer.wms('https://wms.geo.admin.ch/?', {\n layers: 'ch.swisstopo.pixelkarte-farbe',\n format: 'image/jpeg',\n detectRetina: true,\n }),\n }\n var vicinity_map = L.map(this.element, {\n center: [gon.lat, gon.lng],\n zoom: 15, minZoom: 7, maxZoom: 18,\n scrollWheelZoom: false,\n layers: basemaps['Swissimage'],\n })\n L.control.layers(basemaps, null, {\n collapsed: false,\n }).addTo(vicinity_map);\n L.control.scale({\n metric: true, imperial: false,\n updateWhenIdle: true,\n maxWidth: 200,\n }).addTo(vicinity_map);\n L.marker([gon.lat, gon.lng], {\n icon: L.icon({\n iconUrl: gon.asset_host+\"/marker-icons/marker-icon-2x-\"+(gon.type=='rent' ? 'red' : 'blue')+\".png\",\n shadowUrl: gon.asset_host+'/marker-icons/marker-shadow.png',\n iconSize: [25, 41],\n iconAnchor: [12, 41],\n // popupAnchor: [1, -34],\n shadowSize: [41, 41]\n })\n }).addTo(vicinity_map);\n L.circle([gon.lat, gon.lng], 500, {\n fill: false,\n color: '#555',\n weight: 2,\n dashArray: \"4\",\n }).addTo(vicinity_map);\n\n // restaurant logos\n restaurants.forEach(function(element) {\n L.marker([element.lat, element.lng], {\n icon: L.icon({\n iconUrl: gon.asset_host+'/logos/logo_restaurant.png',\n iconAnchor: [12,12],\n }),\n title: element.name,\n }).addTo(vicinity_map);\n });\n\n // supermarket logos\n supermarkets.forEach(function(element) {\n L.marker([element.lat, element.lng], {\n icon: L.icon({\n iconUrl: gon.asset_host+'/logos/supermarkets/logo_'+element.name_short+'.png',\n // iconAnchor: missing since icons have different sizes\n }),\n title: element.name,\n zIndexOffset: 1000,\n }).addTo(vicinity_map);\n });\n\n // transit stop logos\n transit_stops.forEach(function(element) {\n if (element.means_of_transportation) {\n // not elegant, icons sit on top of each other\n element.means_of_transportation.split('_').forEach(function(mot, i) {\n L.marker([element.lat, element.lng], {\n icon: L.icon({\n iconUrl: gon.asset_host+'/logos/transit/'+mot.toLowerCase()+'.png',\n iconAnchor: [12,12],\n }),\n title: element.name,\n zIndexOffset: 2000,\n }).addTo(vicinity_map)\n })\n }\n });\n\n }\n}\n","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var daysInYear = 365.2425;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInDay = secondsInHour * 24;\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInWeek = secondsInDay * 7;\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInYear = secondsInDay * daysInYear;\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMonth = secondsInYear / 12;\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInQuarter = secondsInMonth * 3;","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function trunc(value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n};\n\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}","import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate, options) {\n var _ref, _options$locale;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n var localizeOptions = assign(cloneObject(options), {\n addSuffix: Boolean(options === null || options === void 0 ? void 0 : options.addSuffix),\n comparison: comparison\n });\n var dateLeft;\n var dateRight;\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options !== null && options !== void 0 && options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', 0, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","import assign from \"../assign/index.js\";\nexport default function cloneObject(object) {\n return assign({}, object);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n },\n withPreposition: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n }\n },\n xSeconds: {\n standalone: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n },\n withPreposition: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n }\n },\n halfAMinute: {\n standalone: 'halbe Minute',\n withPreposition: 'halben Minute'\n },\n lessThanXMinutes: {\n standalone: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n },\n withPreposition: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n }\n },\n xMinutes: {\n standalone: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n },\n withPreposition: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n }\n },\n aboutXHours: {\n standalone: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n },\n withPreposition: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n }\n },\n xHours: {\n standalone: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n },\n withPreposition: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n }\n },\n xDays: {\n standalone: {\n one: '1 Tag',\n other: '{{count}} Tage'\n },\n withPreposition: {\n one: '1 Tag',\n other: '{{count}} Tagen'\n }\n },\n aboutXWeeks: {\n standalone: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n },\n withPreposition: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n }\n },\n xWeeks: {\n standalone: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n },\n withPreposition: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n }\n },\n aboutXMonths: {\n standalone: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monate'\n },\n withPreposition: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monaten'\n }\n },\n xMonths: {\n standalone: {\n one: '1 Monat',\n other: '{{count}} Monate'\n },\n withPreposition: {\n one: '1 Monat',\n other: '{{count}} Monaten'\n }\n },\n aboutXYears: {\n standalone: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahre'\n },\n withPreposition: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahren'\n }\n },\n xYears: {\n standalone: {\n one: '1 Jahr',\n other: '{{count}} Jahre'\n },\n withPreposition: {\n one: '1 Jahr',\n other: '{{count}} Jahren'\n }\n },\n overXYears: {\n standalone: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahre'\n },\n withPreposition: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahren'\n }\n },\n almostXYears: {\n standalone: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahre'\n },\n withPreposition: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahren'\n }\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = options !== null && options !== void 0 && options.addSuffix ? formatDistanceLocale[token].withPreposition : formatDistanceLocale[token].standalone;\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', String(count));\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return 'vor ' + result;\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\n// DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n // Montag, 7. Januar 2018\n long: 'do MMMM y',\n // 7. Januar 2018\n medium: 'do MMM y',\n // 7. Jan. 2018\n short: 'dd.MM.y' // 07.01.2018\n};\n\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'um' {{time}}\",\n long: \"{{date}} 'um' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'letzten' eeee 'um' p\",\n yesterday: \"'gestern um' p\",\n today: \"'heute um' p\",\n tomorrow: \"'morgen um' p\",\n nextWeek: \"eeee 'um' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.Chr.', 'n.Chr.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['vor Christus', 'nach Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal']\n}; // Note: in German, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n wide: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']\n}; // https://st.unicode.org/cldr-apps/v#/de/Gregorian/\n\nvar formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: ['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],\n wide: monthValues.wide\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']\n}; // https://www.unicode.org/cldr/charts/32/summary/de.html#1881\n\nvar dayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachm.',\n evening: 'Abend',\n night: 'Nacht'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachm.',\n evening: 'abends',\n night: 'nachts'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n formattingValues: formattingMonthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu]{@link https://github.com/DeMuu}\n * @author Asia [@asia-t]{@link https://github.com/asia-t}\n * @author Van Vuong Ngo [@vanvuongngo]{@link https://github.com/vanvuongngo}\n * @author RomanErnst [@pex]{@link https://github.com/pex}\n * @author Philipp Keck [@Philipp91]{@link https://github.com/Philipp91}\n */\nvar locale = {\n code: 'de',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */,\n\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i\n};\nvar parseEraPatterns = {\n any: [/^v/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? Quartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\\.?/i,\n wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^j[aä]/i, /^f/i, /^mär/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smdmf]/i,\n short: /^(so|mo|di|mi|do|fr|sa)/i,\n abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i\n};\nvar parseDayPatterns = {\n any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n abbreviated: /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^v/i,\n pm: /^n/i,\n midnight: /^Mitte/i,\n noon: /^Mitta/i,\n morning: /morgens/i,\n afternoon: /nachmittags/i,\n // will never be matched. Afternoon is matched by `pm`\n evening: /abends/i,\n night: /nachts/i // will never be matched. Night is matched by `pm`\n }\n};\n\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import formatDistance from \"../en-US/_lib/formatDistance/index.js\";\nimport formatRelative from \"../en-US/_lib/formatRelative/index.js\";\nimport localize from \"../en-US/_lib/localize/index.js\";\nimport match from \"../en-US/_lib/match/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik]{@link https://github.com/glintik}\n */\n\nvar locale = {\n code: 'en-GB',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */,\n\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","/* global window, utils, gon */\n\nimport { formatDistanceToNow, parseISO } from 'date-fns'\nimport { de, enGB } from \"date-fns/locale\"\n\nimport { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n\n static targets = [ \"content\" ]\n\n connect() {\n let target = this.contentTarget\n let created_at = parseISO(target.innerHTML.trim())\n let distance_s = formatDistanceToNow(created_at, {locale: gon.locale == 'de' ? de : enGB, addSuffix: true})\n if (this.data.get('type') === 'short') {\n target.innerHTML = distance_s\n } else if (this.data.get('type') === 'medium') {\n target.innerHTML = utils.t2('Found ', 'Gefunden ') + distance_s\n } else { // long\n target.innerHTML = utils.t2('Found by ImmoMapper ', 'Von ImmoMapper gefunden ') + distance_s\n }\n }\n\n}\n","import distanceInWords from \"../formatDistance/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if now is earlier or later than the passed date\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * const result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * const result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * const result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * const eoLocale = require('date-fns/locale/eo')\n * const result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nexport default function formatDistanceToNow(dirtyDate, options) {\n requiredArgs(1, arguments);\n return distanceInWords(dirtyDate, Date.now(), options);\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","/* global window, d3, bb, gon */\n\nimport { getQuarter, getYear, format } from 'date-fns'\n\nimport { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n\n connect() {\n this.draw();\n if (this.data.get('hide-panel')) {\n this.element.parentElement.classList.remove('active','show')\n }\n }\n\n draw() {\n let data = JSON.parse(this.data.get('data'));\n\n let axis_y_min, axis_y_max\n [axis_y_min, axis_y_max] = this.padded_extend(data.json)\n\n this.chart = bb.generate({\n bindto: this.element,\n size: {height: 300},\n data: {\n type: 'line',\n // types: {\n // comp: \"area\",\n // },\n json: data['json'],\n keys: {\n\t\t\t \tx: \"t\",\n\t\t\t\t value: [\"this\", \"comp\"],\n\t\t\t },\n names: {\n 'this': data['name_this'],\n 'comp': data['name_comp'],\n },\n },\n title: {\n text: data['title'],\n padding: {\n bottom: 10,\n },\n position: \"center\"\n },\n legend: {position: 'bottom'}, // inset\n onafterinit: function() {\n // will remove 'mouseover & mouseout & click' event listeners for legend\n this.$.legend.selectAll(\"g\").on(\"mouseover mouseout click\", null);\n\t },\n axis: {\n x: {\n type: 'timeseries',\n tick: {\n format: function (x) {\n return (getQuarter(x) == 1 ? getYear(x) : undefined);\n },\n },\n },\n y: {\n min: axis_y_min,\n max: axis_y_max,\n tick: {\n format: function (x) {\n return 'CHF ' + d3.format(x > 100 ? \",.0f\" : \",.2f\")(x);\n },\n },\n },\n },\n grid: {\n y: {show: true},\n },\n tooltip: {\n format: {\n title: function(x) {\n return format(x, 'QQQ yyyy')\n },\n },\n },\n background: this.background_missing_data(data),\n\n });\n }\n\n // normally the extend of the y axis is determined automatically\n // but if the variations in the data are small they get exegerated\n // solution: the extent of the y axis should be at least 20% of the average data or so\n padded_extend(data) {\n let min = d3.min(data, d => d3.min([d.this,d.comp]))\n let max = d3.max(data, d => d3.max([d.this,d.comp]))\n let mid = (min+max)/2\n let extent = max-min\n\n let f = 0.30\n if (extent/mid < f) {\n return [mid * (1 - f/2), mid * (1 + f/2)]\n } else {\n return [undefined, undefined]\n }\n }\n\n // set background \"Data missing\" if there is not enough data to display\n background_missing_data(data) {\n // console.log(data)\n var this_length = data['json'].filter(function(e) { return e['this'] != null }).length;\n if ( this_length == 0) {\n return {\n class: \"insufficient-data\",\n imgUrl: `/svg/insufficient_data.${gon.locale}.svg`,\n }\n } else {\n return null;\n }\n }\n\n}\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\n\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getFullYear();\n}","var map = {\n\t\"./buttons_controller.js\": 17,\n\t\"./charts/canton_ch_comparison_controller.js\": 18,\n\t\"./charts/prices_cantons_comparison_controller.js\": 19,\n\t\"./charts/prices_m2_controller.js\": 28,\n\t\"./date_from_controller.js\": 27,\n\t\"./load_buttons_controller.js\": 20,\n\t\"./load_similar_homes_controller.js\": 21,\n\t\"./polygon_map_controller.js\": 22,\n\t\"./price_comparison_controller.js\": 23,\n\t\"./small_view_controller.js\": 24,\n\t\"./user_login_controller.js\": 25,\n\t\"./vicinity_map_controller.js\": 26\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 30;","/* eslint no-console:0 */\n/* global gon, Logger */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\n// console.log('Hello World from Webpacker')\n\n// this is needed for ajax post/patch requests with CSRF-token\nconst Rails = require('@rails/ujs')\nRails.start()\n\nimport { Application } from \"stimulus\"\nimport { definitionsFromContext } from \"stimulus/webpack-helpers\"\n\nconst application = Application.start()\nconst context = require.context(\"./controllers\", true, /\\.js$/)\napplication.load(definitionsFromContext(context))\n\n// import 'lazysizes' // https://github.com/aFarkas/lazysizes\n\n// $ yarn add readmore-js@next\n// require('readmore-js');\n// import Readmore from 'readmore-js';\n\n\n// // const introJs = require('intro.js/introjs.css')\n// const introJs = require('intro.js')\n// introJs().start()\n\n\n// Logger.useDefaults();\n\n// // use https://codesandbox.io/s/date-fns-playground-2pmum?file=/src/index.js to play with date-fns\n// // yarn add date-fns\n// import { formatDistanceToNow, parseISO } from 'date-fns'\n// if (typeof gon !== 'undefined') {\n// utils.log_always.info(\n// \"Page rendered \" +\n// formatDistanceToNow(parseISO(gon.rendered_at), {includeSeconds: true, addSuffix: true})\n// );\n// }\n\n// Logger.setLevel(gon.development ? Logger.DEBUG : Logger.ERROR);\n\n\n// bootstrap in webpacker, a big fucking not understood mess\n// see e.g. https://stackoverflow.com/questions/64113404/bootstrap-5-referenceerror-bootstrap-is-not-defined\n// https://gist.github.com/yalab/cad361056bae02a5f45d1ace7f1d86ef\n\n// import 'bootstrap/dist/js/bootstrap';\n// import '../stylesheets/application'\n// // import \"bootstrap/dist/css/bootstrap\";\n// window.bootstrap = require('bootstrap/dist/js/bootstrap');\n// // window.bootstrap = require('bootstrap/dist/js/bootstrap.bundle.js');\n\n// window.bootstrap = require('bootstrap/dist/js/bootstrap.bundle.js');\n// import \"bootstrap/dist/css/bootstrap\";\n\n// import * as bootstrap from 'bootstrap/dist/js/bootstrap.bundle.js';\n// import \"bootstrap/dist/css/bootstrap\";\n\n// note: if this doesn't work with webpacker use asset pipeline\n// * bootstrap 5 already in /vendor installed\n// * uncomment in application.js, pages.js etc\n// * uncomment in application.scss\n","export function definitionsFromContext(context) {\n return context.keys().map(function (key) {\n return definitionForModuleWithContextAndKey(context, key);\n }).filter(function (value) {\n return value;\n });\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n var identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n var controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return {\n identifier: identifier,\n controllerConstructor: controllerConstructor\n };\n }\n}\nexport function identifierForContextKey(key) {\n var logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}"],"sourceRoot":""}