{"version":3,"file":"scripts/initCarbonFootprintSimulatorForm.js","mappings":"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","sources":["webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/utils/closestPolyfill.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/utils/mathTruncPolyfill.js","webpack://moniwan/./node_modules/flatpickr/dist/esm/types/options.js","webpack://moniwan/./node_modules/flatpickr/dist/esm/l10n/default.js","webpack://moniwan/./node_modules/flatpickr/dist/esm/utils/index.js","webpack://moniwan/./node_modules/flatpickr/dist/esm/utils/dom.js","webpack://moniwan/./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack://moniwan/./node_modules/flatpickr/dist/esm/utils/dates.js","webpack://moniwan/./node_modules/flatpickr/dist/esm/index.js","webpack://moniwan/./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack://moniwan/./node_modules/flatpickr/dist/l10n/fr.js","webpack://moniwan/./node_modules/geolib/es/computeDestinationPoint.js","webpack://moniwan/./node_modules/geolib/es/constants.js","webpack://moniwan/./node_modules/geolib/es/convertArea.js","webpack://moniwan/./node_modules/geolib/es/convertDistance.js","webpack://moniwan/./node_modules/geolib/es/convertSpeed.js","webpack://moniwan/./node_modules/geolib/es/decimalToSexagesimal.js","webpack://moniwan/./node_modules/geolib/es/findNearest.js","webpack://moniwan/./node_modules/geolib/es/getAreaOfPolygon.js","webpack://moniwan/./node_modules/geolib/es/getBounds.js","webpack://moniwan/./node_modules/geolib/es/getBoundsOfDistance.js","webpack://moniwan/./node_modules/geolib/es/getCenter.js","webpack://moniwan/./node_modules/geolib/es/getCenterOfBounds.js","webpack://moniwan/./node_modules/geolib/es/getCompassDirection.js","webpack://moniwan/./node_modules/geolib/es/getCoordinateKey.js","webpack://moniwan/./node_modules/geolib/es/getCoordinateKeys.js","webpack://moniwan/./node_modules/geolib/es/getDistance.js","webpack://moniwan/./node_modules/geolib/es/getDistanceFromLine.js","webpack://moniwan/./node_modules/geolib/es/getGreatCircleBearing.js","webpack://moniwan/./node_modules/geolib/es/getLatitude.js","webpack://moniwan/./node_modules/geolib/es/getLongitude.js","webpack://moniwan/./node_modules/geolib/es/getPathLength.js","webpack://moniwan/./node_modules/geolib/es/getPreciseDistance.js","webpack://moniwan/./node_modules/geolib/es/getRhumbLineBearing.js","webpack://moniwan/./node_modules/geolib/es/getRoughCompassDirection.js","webpack://moniwan/./node_modules/geolib/es/getSpeed.js","webpack://moniwan/./node_modules/geolib/es/index.js","webpack://moniwan/./node_modules/geolib/es/isDecimal.js","webpack://moniwan/./node_modules/geolib/es/isPointInLine.js","webpack://moniwan/./node_modules/geolib/es/isPointInPolygon.js","webpack://moniwan/./node_modules/geolib/es/isPointNearLine.js","webpack://moniwan/./node_modules/geolib/es/isPointWithinRadius.js","webpack://moniwan/./node_modules/geolib/es/isSexagesimal.js","webpack://moniwan/./node_modules/geolib/es/isValidCoordinate.js","webpack://moniwan/./node_modules/geolib/es/isValidLatitude.js","webpack://moniwan/./node_modules/geolib/es/isValidLongitude.js","webpack://moniwan/./node_modules/geolib/es/orderByDistance.js","webpack://moniwan/./node_modules/geolib/es/robustAcos.js","webpack://moniwan/./node_modules/geolib/es/sexagesimalToDecimal.js","webpack://moniwan/./node_modules/geolib/es/toDecimal.js","webpack://moniwan/./node_modules/geolib/es/toDeg.js","webpack://moniwan/./node_modules/geolib/es/toRad.js","webpack://moniwan/./node_modules/geolib/es/wktToPolygon.js","webpack://moniwan/./node_modules/moment/locale/fr.js","webpack://moniwan/./node_modules/moment/locale/ sync [/\\\\](fr(\\.js)","webpack://moniwan/./node_modules/moment/moment.js","webpack://moniwan/./node_modules/core-js/internals/a-callable.js","webpack://moniwan/./node_modules/core-js/internals/an-object.js","webpack://moniwan/./node_modules/core-js/internals/array-includes.js","webpack://moniwan/./node_modules/core-js/internals/array-iteration.js","webpack://moniwan/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://moniwan/./node_modules/core-js/internals/array-set-length.js","webpack://moniwan/./node_modules/core-js/internals/array-species-constructor.js","webpack://moniwan/./node_modules/core-js/internals/array-species-create.js","webpack://moniwan/./node_modules/core-js/internals/classof-raw.js","webpack://moniwan/./node_modules/core-js/internals/classof.js","webpack://moniwan/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://moniwan/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://moniwan/./node_modules/core-js/internals/create-property-descriptor.js","webpack://moniwan/./node_modules/core-js/internals/create-property.js","webpack://moniwan/./node_modules/core-js/internals/define-built-in.js","webpack://moniwan/./node_modules/core-js/internals/define-global-property.js","webpack://moniwan/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://moniwan/./node_modules/core-js/internals/descriptors.js","webpack://moniwan/./node_modules/core-js/internals/document-create-element.js","webpack://moniwan/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://moniwan/./node_modules/core-js/internals/enum-bug-keys.js","webpack://moniwan/./node_modules/core-js/internals/environment-user-agent.js","webpack://moniwan/./node_modules/core-js/internals/environment-v8-version.js","webpack://moniwan/./node_modules/core-js/internals/export.js","webpack://moniwan/./node_modules/core-js/internals/fails.js","webpack://moniwan/./node_modules/core-js/internals/function-bind-context.js","webpack://moniwan/./node_modules/core-js/internals/function-bind-native.js","webpack://moniwan/./node_modules/core-js/internals/function-call.js","webpack://moniwan/./node_modules/core-js/internals/function-name.js","webpack://moniwan/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://moniwan/./node_modules/core-js/internals/function-uncurry-this.js","webpack://moniwan/./node_modules/core-js/internals/get-built-in.js","webpack://moniwan/./node_modules/core-js/internals/get-method.js","webpack://moniwan/./node_modules/core-js/internals/global-this.js","webpack://moniwan/./node_modules/core-js/internals/has-own-property.js","webpack://moniwan/./node_modules/core-js/internals/hidden-keys.js","webpack://moniwan/./node_modules/core-js/internals/ie8-dom-define.js","webpack://moniwan/./node_modules/core-js/internals/indexed-object.js","webpack://moniwan/./node_modules/core-js/internals/inspect-source.js","webpack://moniwan/./node_modules/core-js/internals/internal-state.js","webpack://moniwan/./node_modules/core-js/internals/is-array.js","webpack://moniwan/./node_modules/core-js/internals/is-callable.js","webpack://moniwan/./node_modules/core-js/internals/is-constructor.js","webpack://moniwan/./node_modules/core-js/internals/is-forced.js","webpack://moniwan/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://moniwan/./node_modules/core-js/internals/is-object.js","webpack://moniwan/./node_modules/core-js/internals/is-pure.js","webpack://moniwan/./node_modules/core-js/internals/is-symbol.js","webpack://moniwan/./node_modules/core-js/internals/length-of-array-like.js","webpack://moniwan/./node_modules/core-js/internals/make-built-in.js","webpack://moniwan/./node_modules/core-js/internals/math-trunc.js","webpack://moniwan/./node_modules/core-js/internals/object-define-property.js","webpack://moniwan/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://moniwan/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://moniwan/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://moniwan/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://moniwan/./node_modules/core-js/internals/object-keys-internal.js","webpack://moniwan/./node_modules/core-js/internals/object-keys.js","webpack://moniwan/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://moniwan/./node_modules/core-js/internals/object-to-string.js","webpack://moniwan/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://moniwan/./node_modules/core-js/internals/own-keys.js","webpack://moniwan/./node_modules/core-js/internals/require-object-coercible.js","webpack://moniwan/./node_modules/core-js/internals/shared-key.js","webpack://moniwan/./node_modules/core-js/internals/shared-store.js","webpack://moniwan/./node_modules/core-js/internals/shared.js","webpack://moniwan/./node_modules/core-js/internals/string-repeat.js","webpack://moniwan/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://moniwan/./node_modules/core-js/internals/this-number-value.js","webpack://moniwan/./node_modules/core-js/internals/to-absolute-index.js","webpack://moniwan/./node_modules/core-js/internals/to-indexed-object.js","webpack://moniwan/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://moniwan/./node_modules/core-js/internals/to-length.js","webpack://moniwan/./node_modules/core-js/internals/to-object.js","webpack://moniwan/./node_modules/core-js/internals/to-primitive.js","webpack://moniwan/./node_modules/core-js/internals/to-property-key.js","webpack://moniwan/./node_modules/core-js/internals/to-string-tag-support.js","webpack://moniwan/./node_modules/core-js/internals/to-string.js","webpack://moniwan/./node_modules/core-js/internals/try-to-string.js","webpack://moniwan/./node_modules/core-js/internals/uid.js","webpack://moniwan/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://moniwan/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://moniwan/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://moniwan/./node_modules/core-js/internals/well-known-symbol.js","webpack://moniwan/./node_modules/core-js/modules/es.array.filter.js","webpack://moniwan/./node_modules/core-js/modules/es.array.splice.js","webpack://moniwan/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://moniwan/./node_modules/core-js/modules/es.object.keys.js","webpack://moniwan/./node_modules/core-js/modules/es.object.to-string.js","webpack://moniwan/webpack/bootstrap","webpack://moniwan/webpack/runtime/define property getters","webpack://moniwan/webpack/runtime/global","webpack://moniwan/webpack/runtime/hasOwnProperty shorthand","webpack://moniwan/webpack/runtime/node module decorator","webpack://moniwan/./node_modules/@babel/runtime/helpers/esm/newArrowCheck.js","webpack://moniwan/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/objects/conditionallyDisplayedElement.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/utils/id.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/objects/dropdown.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/utils/isAdultPerson.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/objects/form.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/utils/executeRecaptcha.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/api/searchAddresses.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/utils/translateOSMKey.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/objects/selectSearchResultInput.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/objects/distanceInputs.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/objects/repeatableFieldset.js","webpack://moniwan/./Assets/scripts/special/forms/initCarbonFootprintSimulatorForm.js"],"sourcesContent":["\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\nif (!Element.prototype.closest) {\r\n Element.prototype.closest = function (s) {\r\n let el = this;\r\n\r\n do {\r\n if (el.matches(s)) return el;\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n}\r\n","Math.trunc = Math.trunc || function (x) {\r\n if (isNaN(x)) {\r\n return NaN;\r\n }\r\n if (x > 0) {\r\n return Math.floor(x);\r\n }\r\n return Math.ceil(x);\r\n};\r\n","export var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport var defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport var formats = {\n Z: function (date) { return date.toISOString(); },\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: function (date) { return pad(date.getHours()); },\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n }\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n var maxHr = config.maxDate.getHours();\n var maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours: hours, minutes: minutes, seconds: seconds };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n .activeElement || document.activeElement);\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof Date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, _dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n i % 7 === 6) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n \\n \" + weekdays.join(\"\") + \"\\n \\n \";\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1)\n self.clear(false);\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n var isInput = e.target === self._input;\n var valueChanged = self._input.value.trimEnd() !== getDateStr();\n if (isInput &&\n valueChanged &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n });\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date &&\n compareDates(selectedDate, date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(specificFormat) {\n var format = specificFormat ||\n (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.fr = {}));\n}(this, (function (exports) { 'use strict';\n\n var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var French = {\n firstDayOfWeek: 1,\n weekdays: {\n shorthand: [\"dim\", \"lun\", \"mar\", \"mer\", \"jeu\", \"ven\", \"sam\"],\n longhand: [\n \"dimanche\",\n \"lundi\",\n \"mardi\",\n \"mercredi\",\n \"jeudi\",\n \"vendredi\",\n \"samedi\",\n ],\n },\n months: {\n shorthand: [\n \"janv\",\n \"févr\",\n \"mars\",\n \"avr\",\n \"mai\",\n \"juin\",\n \"juil\",\n \"août\",\n \"sept\",\n \"oct\",\n \"nov\",\n \"déc\",\n ],\n longhand: [\n \"janvier\",\n \"février\",\n \"mars\",\n \"avril\",\n \"mai\",\n \"juin\",\n \"juillet\",\n \"août\",\n \"septembre\",\n \"octobre\",\n \"novembre\",\n \"décembre\",\n ],\n },\n ordinal: function (nth) {\n if (nth > 1)\n return \"\";\n return \"er\";\n },\n rangeSeparator: \" au \",\n weekAbbreviation: \"Sem\",\n scrollTitle: \"Défiler pour augmenter la valeur\",\n toggleTitle: \"Cliquer pour basculer\",\n time_24hr: true,\n };\n fp.l10ns.fr = French;\n var fr = fp.l10ns;\n\n exports.French = French;\n exports.default = fr;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _toDeg=_interopRequireDefault(require(\"./toDeg\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var computeDestinationPoint=function computeDestinationPoint(start,distance,bearing){var radius=arguments.length>3&&arguments[3]!==undefined?arguments[3]:6371000;var lat=(0,_getLatitude.default)(start);var lng=(0,_getLongitude.default)(start);var delta=distance/radius;var theta=(0,_toRad.default)(bearing);var phi1=(0,_toRad.default)(lat);var lambda1=(0,_toRad.default)(lng);var phi2=Math.asin(Math.sin(phi1)*Math.cos(delta)+Math.cos(phi1)*Math.sin(delta)*Math.cos(theta));var lambda2=lambda1+Math.atan2(Math.sin(theta)*Math.sin(delta)*Math.cos(phi1),Math.cos(delta)-Math.sin(phi1)*Math.sin(phi2));var longitude=(0,_toDeg.default)(lambda2);if(longitude<_constants.MINLON||longitude>_constants.MAXLON){lambda2=(lambda2+3*Math.PI)%(2*Math.PI)-Math.PI;longitude=(0,_toDeg.default)(lambda2)}return{latitude:(0,_toDeg.default)(phi2),longitude:longitude}};var _default=computeDestinationPoint;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.areaConversion=exports.timeConversion=exports.distanceConversion=exports.altitudeKeys=exports.latitudeKeys=exports.longitudeKeys=exports.MAXLON=exports.MINLON=exports.MAXLAT=exports.MINLAT=exports.earthRadius=exports.sexagesimalPattern=void 0;var sexagesimalPattern=/^([0-9]{1,3})°\\s*([0-9]{1,3}(?:\\.(?:[0-9]{1,}))?)['′]\\s*(([0-9]{1,3}(\\.([0-9]{1,}))?)[\"″]\\s*)?([NEOSW]?)$/;exports.sexagesimalPattern=sexagesimalPattern;var earthRadius=6378137;exports.earthRadius=earthRadius;var MINLAT=-90;exports.MINLAT=MINLAT;var MAXLAT=90;exports.MAXLAT=MAXLAT;var MINLON=-180;exports.MINLON=MINLON;var MAXLON=180;exports.MAXLON=MAXLON;var longitudeKeys=[\"lng\",\"lon\",\"longitude\",0];exports.longitudeKeys=longitudeKeys;var latitudeKeys=[\"lat\",\"latitude\",1];exports.latitudeKeys=latitudeKeys;var altitudeKeys=[\"alt\",\"altitude\",\"elevation\",\"elev\",2];exports.altitudeKeys=altitudeKeys;var distanceConversion={m:1,km:0.001,cm:100,mm:1000,mi:1/1609.344,sm:1/1852.216,ft:100/30.48,in:100/2.54,yd:1/0.9144};exports.distanceConversion=distanceConversion;var timeConversion={m:60,h:3600,d:86400};exports.timeConversion=timeConversion;var areaConversion={m2:1,km2:0.000001,ha:0.0001,a:0.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};exports.areaConversion=areaConversion;areaConversion.sqm=areaConversion.m2;areaConversion.sqkm=areaConversion.km2;areaConversion.sqft=areaConversion.ft2;areaConversion.sqyd=areaConversion.yd2;areaConversion.sqin=areaConversion.in2;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var convertArea=function convertArea(squareMeters){var targetUnit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"m\";var factor=_constants.areaConversion[targetUnit];if(factor){return squareMeters*factor}throw new Error(\"Invalid unit used for area conversion.\")};var _default=convertArea;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var convertDistance=function convertDistance(meters){var targetUnit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"m\";var factor=_constants.distanceConversion[targetUnit];if(factor){return meters*factor}throw new Error(\"Invalid unit used for distance conversion.\")};var _default=convertDistance;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var convertSpeed=function convertSpeed(metersPerSecond){var targetUnit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"kmh\";switch(targetUnit){case\"kmh\":return metersPerSecond*_constants.timeConversion.h*_constants.distanceConversion.km;case\"mph\":return metersPerSecond*_constants.timeConversion.h*_constants.distanceConversion.mi;default:return metersPerSecond;}};var _default=convertSpeed;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o===\"string\")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n===\"Object\"&&o.constructor)n=o.constructor.name;if(n===\"Map\"||n===\"Set\")return Array.from(o);if(n===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i1&&arguments[1]!==undefined?arguments[1]:4;var factor=Math.pow(10,decimals);return Math.round(number*factor)/factor};var decimal2sexagesimalNext=function decimal2sexagesimalNext(decimal){var _decimal$toString$spl=decimal.toString().split(\".\"),_decimal$toString$spl2=_slicedToArray(_decimal$toString$spl,2),pre=_decimal$toString$spl2[0],post=_decimal$toString$spl2[1];var deg=Math.abs(Number(pre));var min0=Number(\"0.\"+(post||0))*60;var sec0=min0.toString().split(\".\");var min=Math.floor(min0);var sec=imprecise(Number(\"0.\"+(sec0[1]||0))*60).toString();var _sec$split=sec.split(\".\"),_sec$split2=_slicedToArray(_sec$split,2),secPreDec=_sec$split2[0],_sec$split2$=_sec$split2[1],secDec=_sec$split2$===void 0?\"0\":_sec$split2$;return deg+\"\\xB0 \"+min.toString().padStart(2,\"0\")+\"' \"+secPreDec.padStart(2,\"0\")+\".\"+secDec.padEnd(1,\"0\")+\"\\\"\"};var _default=decimal2sexagesimalNext;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _orderByDistance=_interopRequireDefault(require(\"./orderByDistance\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var findNearest=function findNearest(point,coords){return(0,_orderByDistance.default)(point,coords)[0]};var _default=findNearest;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _toRad=_interopRequireDefault(require(\"./toRad\"));var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getAreaOfPolygon=function getAreaOfPolygon(points){var area=0;if(points.length>2){var lowerIndex;var middleIndex;var upperIndex;for(var i=0;iMIN_LAT_RAD&&maxLatMAX_LON_RAD){maxLon-=Math.PI*2}}else{minLat=Math.max(minLat,MIN_LAT_RAD);maxLat=Math.min(maxLat,MAX_LAT_RAD);minLon=MIN_LON_RAD;maxLon=MAX_LON_RAD}return[{latitude:(0,_toDeg.default)(minLat),longitude:(0,_toDeg.default)(minLon)},{latitude:(0,_toDeg.default)(maxLat),longitude:(0,_toDeg.default)(maxLon)}]};var _default=getBoundsOfDistance;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _toDeg=_interopRequireDefault(require(\"./toDeg\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getCenter=function getCenter(points){if(Array.isArray(points)===false||points.length===0){return false}var numberOfPoints=points.length;var sum=points.reduce(function(acc,point){var pointLat=(0,_toRad.default)((0,_getLatitude.default)(point));var pointLon=(0,_toRad.default)((0,_getLongitude.default)(point));return{X:acc.X+Math.cos(pointLat)*Math.cos(pointLon),Y:acc.Y+Math.cos(pointLat)*Math.sin(pointLon),Z:acc.Z+Math.sin(pointLat)}},{X:0,Y:0,Z:0});var X=sum.X/numberOfPoints;var Y=sum.Y/numberOfPoints;var Z=sum.Z/numberOfPoints;return{longitude:(0,_toDeg.default)(Math.atan2(Y,X)),latitude:(0,_toDeg.default)(Math.atan2(Z,Math.sqrt(X*X+Y*Y)))}};var _default=getCenter;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getBounds=_interopRequireDefault(require(\"./getBounds\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getCenterOfBounds=function getCenterOfBounds(coords){var bounds=(0,_getBounds.default)(coords);var latitude=bounds.minLat+(bounds.maxLat-bounds.minLat)/2;var longitude=bounds.minLng+(bounds.maxLng-bounds.minLng)/2;return{latitude:parseFloat(latitude.toFixed(6)),longitude:parseFloat(longitude.toFixed(6))}};var _default=getCenterOfBounds;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getRhumbLineBearing=_interopRequireDefault(require(\"./getRhumbLineBearing\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getCompassDirection=function getCompassDirection(origin,dest){var bearingFn=arguments.length>2&&arguments[2]!==undefined?arguments[2]:_getRhumbLineBearing.default;var bearing=typeof bearingFn===\"function\"?bearingFn(origin,dest):(0,_getRhumbLineBearing.default)(origin,dest);if(isNaN(bearing)){throw new Error(\"Could not calculate bearing for given points. Check your bearing function\")}switch(Math.round(bearing/22.5)){case 1:return\"NNE\";case 2:return\"NE\";case 3:return\"ENE\";case 4:return\"E\";case 5:return\"ESE\";case 6:return\"SE\";case 7:return\"SSE\";case 8:return\"S\";case 9:return\"SSW\";case 10:return\"SW\";case 11:return\"WSW\";case 12:return\"W\";case 13:return\"WNW\";case 14:return\"NW\";case 15:return\"NNW\";default:return\"N\";}};var _default=getCompassDirection;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var getCoordinateKey=function getCoordinateKey(point,keysToLookup){return keysToLookup.reduce(function(foundKey,key){if(typeof point===\"undefined\"||point===null){throw new Error(\"'\".concat(point,\"' is no valid coordinate.\"))}if(Object.prototype.hasOwnProperty.call(point,key)&&typeof key!==\"undefined\"&&typeof foundKey===\"undefined\"){foundKey=key;return key}return foundKey},undefined)};var _default=getCoordinateKey;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var _getCoordinateKey=_interopRequireDefault(require(\"./getCoordinateKey\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable});keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i1&&arguments[1]!==undefined?arguments[1]:{longitude:_constants.longitudeKeys,latitude:_constants.latitudeKeys,altitude:_constants.altitudeKeys};var longitude=(0,_getCoordinateKey.default)(point,keysToLookup.longitude);var latitude=(0,_getCoordinateKey.default)(point,keysToLookup.latitude);var altitude=(0,_getCoordinateKey.default)(point,keysToLookup.altitude);return _objectSpread({latitude:latitude,longitude:longitude},altitude?{altitude:altitude}:{})};var _default=getCoordinateKeys;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _robustAcos=_interopRequireDefault(require(\"./robustAcos\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getDistance=function getDistance(from,to){var accuracy=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1;accuracy=typeof accuracy!==\"undefined\"&&!isNaN(accuracy)?accuracy:1;var fromLat=(0,_getLatitude.default)(from);var fromLon=(0,_getLongitude.default)(from);var toLat=(0,_getLatitude.default)(to);var toLon=(0,_getLongitude.default)(to);var distance=Math.acos((0,_robustAcos.default)(Math.sin((0,_toRad.default)(toLat))*Math.sin((0,_toRad.default)(fromLat))+Math.cos((0,_toRad.default)(toLat))*Math.cos((0,_toRad.default)(fromLat))*Math.cos((0,_toRad.default)(fromLon)-(0,_toRad.default)(toLon))))*_constants.earthRadius;return Math.round(distance/accuracy)*accuracy};var _default=getDistance;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getDistance=_interopRequireDefault(require(\"./getDistance\"));var _robustAcos=_interopRequireDefault(require(\"./robustAcos\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getDistanceFromLine=function getDistanceFromLine(point,lineStart,lineEnd){var accuracy=arguments.length>3&&arguments[3]!==undefined?arguments[3]:1;var d1=(0,_getDistance.default)(lineStart,point,accuracy);var d2=(0,_getDistance.default)(point,lineEnd,accuracy);var d3=(0,_getDistance.default)(lineStart,lineEnd,accuracy);var alpha=Math.acos((0,_robustAcos.default)((d1*d1+d3*d3-d2*d2)/(2*d1*d3)));var beta=Math.acos((0,_robustAcos.default)((d2*d2+d3*d3-d1*d1)/(2*d2*d3)));if(alpha>Math.PI/2){return d1}if(beta>Math.PI/2){return d2}return Math.sin(alpha)*d1};var _default=getDistanceFromLine;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _toDeg=_interopRequireDefault(require(\"./toDeg\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getGreatCircleBearing=function getGreatCircleBearing(origin,dest){var destLat=(0,_getLatitude.default)(dest);var detLon=(0,_getLongitude.default)(dest);var originLat=(0,_getLatitude.default)(origin);var originLon=(0,_getLongitude.default)(origin);var bearing=((0,_toDeg.default)(Math.atan2(Math.sin((0,_toRad.default)(detLon)-(0,_toRad.default)(originLon))*Math.cos((0,_toRad.default)(destLat)),Math.cos((0,_toRad.default)(originLat))*Math.sin((0,_toRad.default)(destLat))-Math.sin((0,_toRad.default)(originLat))*Math.cos((0,_toRad.default)(destLat))*Math.cos((0,_toRad.default)(detLon)-(0,_toRad.default)(originLon))))+360)%360;return bearing};var _default=getGreatCircleBearing;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var _getCoordinateKey=_interopRequireDefault(require(\"./getCoordinateKey\"));var _toDecimal=_interopRequireDefault(require(\"./toDecimal\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getLatitude=function getLatitude(point,raw){var latKey=(0,_getCoordinateKey.default)(point,_constants.latitudeKeys);if(typeof latKey===\"undefined\"||latKey===null){return}var value=point[latKey];return raw===true?value:(0,_toDecimal.default)(value)};var _default=getLatitude;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var _getCoordinateKey=_interopRequireDefault(require(\"./getCoordinateKey\"));var _toDecimal=_interopRequireDefault(require(\"./toDecimal\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getLongitude=function getLongitude(point,raw){var latKey=(0,_getCoordinateKey.default)(point,_constants.longitudeKeys);if(typeof latKey===\"undefined\"||latKey===null){return}var value=point[latKey];return raw===true?value:(0,_toDecimal.default)(value)};var _default=getLongitude;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getDistance=_interopRequireDefault(require(\"./getDistance\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _typeof(obj){\"@babel/helpers - typeof\";if(typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj}}return _typeof(obj)}var getPathLength=function getPathLength(points){var distanceFn=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_getDistance.default;return points.reduce(function(acc,point){if(_typeof(acc)===\"object\"&&acc.last!==null){acc.distance+=distanceFn(point,acc.last)}acc.last=point;return acc},{last:null,distance:0}).distance};var _default=getPathLength;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getDistance=function getDistance(start,end){var accuracy=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1;accuracy=typeof accuracy!==\"undefined\"&&!isNaN(accuracy)?accuracy:1;var startLat=(0,_getLatitude.default)(start);var startLon=(0,_getLongitude.default)(start);var endLat=(0,_getLatitude.default)(end);var endLon=(0,_getLongitude.default)(end);var b=6356752.314245;var ellipsoidParams=1/298.257223563;var L=(0,_toRad.default)(endLon-startLon);var cosSigma;var sigma;var sinAlpha;var cosSqAlpha;var cos2SigmaM;var sinSigma;var U1=Math.atan((1-ellipsoidParams)*Math.tan((0,_toRad.default)(parseFloat(startLat))));var U2=Math.atan((1-ellipsoidParams)*Math.tan((0,_toRad.default)(parseFloat(endLat))));var sinU1=Math.sin(U1);var cosU1=Math.cos(U1);var sinU2=Math.sin(U2);var cosU2=Math.cos(U2);var lambda=L;var lambdaP;var iterLimit=100;do{var sinLambda=Math.sin(lambda);var cosLambda=Math.cos(lambda);sinSigma=Math.sqrt(cosU2*sinLambda*(cosU2*sinLambda)+(cosU1*sinU2-sinU1*cosU2*cosLambda)*(cosU1*sinU2-sinU1*cosU2*cosLambda));if(sinSigma===0){return 0}cosSigma=sinU1*sinU2+cosU1*cosU2*cosLambda;sigma=Math.atan2(sinSigma,cosSigma);sinAlpha=cosU1*cosU2*sinLambda/sinSigma;cosSqAlpha=1-sinAlpha*sinAlpha;cos2SigmaM=cosSigma-2*sinU1*sinU2/cosSqAlpha;if(isNaN(cos2SigmaM)){cos2SigmaM=0}var C=ellipsoidParams/16*cosSqAlpha*(4+ellipsoidParams*(4-3*cosSqAlpha));lambdaP=lambda;lambda=L+(1-C)*ellipsoidParams*sinAlpha*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)))}while(Math.abs(lambda-lambdaP)>1e-12&&--iterLimit>0);if(iterLimit===0){return NaN}var uSq=cosSqAlpha*(_constants.earthRadius*_constants.earthRadius-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)-B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));var distance=b*A*(sigma-deltaSigma);return Math.round(distance/accuracy)*accuracy};var _default=getDistance;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _toDeg=_interopRequireDefault(require(\"./toDeg\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getRhumbLineBearing=function getRhumbLineBearing(origin,dest){var diffLon=(0,_toRad.default)((0,_getLongitude.default)(dest))-(0,_toRad.default)((0,_getLongitude.default)(origin));var diffPhi=Math.log(Math.tan((0,_toRad.default)((0,_getLatitude.default)(dest))/2+Math.PI/4)/Math.tan((0,_toRad.default)((0,_getLatitude.default)(origin))/2+Math.PI/4));if(Math.abs(diffLon)>Math.PI){if(diffLon>0){diffLon=(Math.PI*2-diffLon)*-1}else{diffLon=Math.PI*2+diffLon}}return((0,_toDeg.default)(Math.atan2(diffLon,diffPhi))+360)%360};var _default=getRhumbLineBearing;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var getRoughCompassDirection=function getRoughCompassDirection(exact){if(/^(NNE|NE|NNW|N)$/.test(exact)){return\"N\"}if(/^(ENE|E|ESE|SE)$/.test(exact)){return\"E\"}if(/^(SSE|S|SSW|SW)$/.test(exact)){return\"S\"}if(/^(WSW|W|WNW|NW)$/.test(exact)){return\"W\"}};var _default=getRoughCompassDirection;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getDistance=_interopRequireDefault(require(\"./getDistance\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getSpeed=function getSpeed(start,end){var distanceFn=arguments.length>2&&arguments[2]!==undefined?arguments[2]:_getDistance.default;var distance=distanceFn(start,end);var time=Number(end.time)-Number(start.time);var metersPerSecond=distance/time*1000;return metersPerSecond};var _default=getSpeed;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var _exportNames={computeDestinationPoint:true,convertArea:true,convertDistance:true,convertSpeed:true,decimalToSexagesimal:true,findNearest:true,getAreaOfPolygon:true,getBounds:true,getBoundsOfDistance:true,getCenter:true,getCenterOfBounds:true,getCompassDirection:true,getCoordinateKey:true,getCoordinateKeys:true,getDistance:true,getDistanceFromLine:true,getGreatCircleBearing:true,getLatitude:true,getLongitude:true,getPathLength:true,getPreciseDistance:true,getRhumbLineBearing:true,getRoughCompassDirection:true,getSpeed:true,isDecimal:true,isPointInLine:true,isPointInPolygon:true,isPointNearLine:true,isPointWithinRadius:true,isSexagesimal:true,isValidCoordinate:true,isValidLatitude:true,isValidLongitude:true,orderByDistance:true,sexagesimalToDecimal:true,toDecimal:true,toRad:true,toDeg:true,wktToPolygon:true};Object.defineProperty(exports,\"computeDestinationPoint\",{enumerable:true,get:function get(){return _computeDestinationPoint.default}});Object.defineProperty(exports,\"convertArea\",{enumerable:true,get:function get(){return _convertArea.default}});Object.defineProperty(exports,\"convertDistance\",{enumerable:true,get:function get(){return _convertDistance.default}});Object.defineProperty(exports,\"convertSpeed\",{enumerable:true,get:function get(){return _convertSpeed.default}});Object.defineProperty(exports,\"decimalToSexagesimal\",{enumerable:true,get:function get(){return _decimalToSexagesimal.default}});Object.defineProperty(exports,\"findNearest\",{enumerable:true,get:function get(){return _findNearest.default}});Object.defineProperty(exports,\"getAreaOfPolygon\",{enumerable:true,get:function get(){return _getAreaOfPolygon.default}});Object.defineProperty(exports,\"getBounds\",{enumerable:true,get:function get(){return _getBounds.default}});Object.defineProperty(exports,\"getBoundsOfDistance\",{enumerable:true,get:function get(){return _getBoundsOfDistance.default}});Object.defineProperty(exports,\"getCenter\",{enumerable:true,get:function get(){return _getCenter.default}});Object.defineProperty(exports,\"getCenterOfBounds\",{enumerable:true,get:function get(){return _getCenterOfBounds.default}});Object.defineProperty(exports,\"getCompassDirection\",{enumerable:true,get:function get(){return _getCompassDirection.default}});Object.defineProperty(exports,\"getCoordinateKey\",{enumerable:true,get:function get(){return _getCoordinateKey.default}});Object.defineProperty(exports,\"getCoordinateKeys\",{enumerable:true,get:function get(){return _getCoordinateKeys.default}});Object.defineProperty(exports,\"getDistance\",{enumerable:true,get:function get(){return _getDistance.default}});Object.defineProperty(exports,\"getDistanceFromLine\",{enumerable:true,get:function get(){return _getDistanceFromLine.default}});Object.defineProperty(exports,\"getGreatCircleBearing\",{enumerable:true,get:function get(){return _getGreatCircleBearing.default}});Object.defineProperty(exports,\"getLatitude\",{enumerable:true,get:function get(){return _getLatitude.default}});Object.defineProperty(exports,\"getLongitude\",{enumerable:true,get:function get(){return _getLongitude.default}});Object.defineProperty(exports,\"getPathLength\",{enumerable:true,get:function get(){return _getPathLength.default}});Object.defineProperty(exports,\"getPreciseDistance\",{enumerable:true,get:function get(){return _getPreciseDistance.default}});Object.defineProperty(exports,\"getRhumbLineBearing\",{enumerable:true,get:function get(){return _getRhumbLineBearing.default}});Object.defineProperty(exports,\"getRoughCompassDirection\",{enumerable:true,get:function get(){return _getRoughCompassDirection.default}});Object.defineProperty(exports,\"getSpeed\",{enumerable:true,get:function get(){return _getSpeed.default}});Object.defineProperty(exports,\"isDecimal\",{enumerable:true,get:function get(){return _isDecimal.default}});Object.defineProperty(exports,\"isPointInLine\",{enumerable:true,get:function get(){return _isPointInLine.default}});Object.defineProperty(exports,\"isPointInPolygon\",{enumerable:true,get:function get(){return _isPointInPolygon.default}});Object.defineProperty(exports,\"isPointNearLine\",{enumerable:true,get:function get(){return _isPointNearLine.default}});Object.defineProperty(exports,\"isPointWithinRadius\",{enumerable:true,get:function get(){return _isPointWithinRadius.default}});Object.defineProperty(exports,\"isSexagesimal\",{enumerable:true,get:function get(){return _isSexagesimal.default}});Object.defineProperty(exports,\"isValidCoordinate\",{enumerable:true,get:function get(){return _isValidCoordinate.default}});Object.defineProperty(exports,\"isValidLatitude\",{enumerable:true,get:function get(){return _isValidLatitude.default}});Object.defineProperty(exports,\"isValidLongitude\",{enumerable:true,get:function get(){return _isValidLongitude.default}});Object.defineProperty(exports,\"orderByDistance\",{enumerable:true,get:function get(){return _orderByDistance.default}});Object.defineProperty(exports,\"sexagesimalToDecimal\",{enumerable:true,get:function get(){return _sexagesimalToDecimal.default}});Object.defineProperty(exports,\"toDecimal\",{enumerable:true,get:function get(){return _toDecimal.default}});Object.defineProperty(exports,\"toRad\",{enumerable:true,get:function get(){return _toRad.default}});Object.defineProperty(exports,\"toDeg\",{enumerable:true,get:function get(){return _toDeg.default}});Object.defineProperty(exports,\"wktToPolygon\",{enumerable:true,get:function get(){return _wktToPolygon.default}});var _computeDestinationPoint=_interopRequireDefault(require(\"./computeDestinationPoint\"));var _convertArea=_interopRequireDefault(require(\"./convertArea\"));var _convertDistance=_interopRequireDefault(require(\"./convertDistance\"));var _convertSpeed=_interopRequireDefault(require(\"./convertSpeed\"));var _decimalToSexagesimal=_interopRequireDefault(require(\"./decimalToSexagesimal\"));var _findNearest=_interopRequireDefault(require(\"./findNearest\"));var _getAreaOfPolygon=_interopRequireDefault(require(\"./getAreaOfPolygon\"));var _getBounds=_interopRequireDefault(require(\"./getBounds\"));var _getBoundsOfDistance=_interopRequireDefault(require(\"./getBoundsOfDistance\"));var _getCenter=_interopRequireDefault(require(\"./getCenter\"));var _getCenterOfBounds=_interopRequireDefault(require(\"./getCenterOfBounds\"));var _getCompassDirection=_interopRequireDefault(require(\"./getCompassDirection\"));var _getCoordinateKey=_interopRequireDefault(require(\"./getCoordinateKey\"));var _getCoordinateKeys=_interopRequireDefault(require(\"./getCoordinateKeys\"));var _getDistance=_interopRequireDefault(require(\"./getDistance\"));var _getDistanceFromLine=_interopRequireDefault(require(\"./getDistanceFromLine\"));var _getGreatCircleBearing=_interopRequireDefault(require(\"./getGreatCircleBearing\"));var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _getPathLength=_interopRequireDefault(require(\"./getPathLength\"));var _getPreciseDistance=_interopRequireDefault(require(\"./getPreciseDistance\"));var _getRhumbLineBearing=_interopRequireDefault(require(\"./getRhumbLineBearing\"));var _getRoughCompassDirection=_interopRequireDefault(require(\"./getRoughCompassDirection\"));var _getSpeed=_interopRequireDefault(require(\"./getSpeed\"));var _isDecimal=_interopRequireDefault(require(\"./isDecimal\"));var _isPointInLine=_interopRequireDefault(require(\"./isPointInLine\"));var _isPointInPolygon=_interopRequireDefault(require(\"./isPointInPolygon\"));var _isPointNearLine=_interopRequireDefault(require(\"./isPointNearLine\"));var _isPointWithinRadius=_interopRequireDefault(require(\"./isPointWithinRadius\"));var _isSexagesimal=_interopRequireDefault(require(\"./isSexagesimal\"));var _isValidCoordinate=_interopRequireDefault(require(\"./isValidCoordinate\"));var _isValidLatitude=_interopRequireDefault(require(\"./isValidLatitude\"));var _isValidLongitude=_interopRequireDefault(require(\"./isValidLongitude\"));var _orderByDistance=_interopRequireDefault(require(\"./orderByDistance\"));var _sexagesimalToDecimal=_interopRequireDefault(require(\"./sexagesimalToDecimal\"));var _toDecimal=_interopRequireDefault(require(\"./toDecimal\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _toDeg=_interopRequireDefault(require(\"./toDeg\"));var _wktToPolygon=_interopRequireDefault(require(\"./wktToPolygon\"));var _constants=require(\"./constants\");Object.keys(_constants).forEach(function(key){if(key===\"default\"||key===\"__esModule\")return;if(Object.prototype.hasOwnProperty.call(_exportNames,key))return;Object.defineProperty(exports,key,{enumerable:true,get:function get(){return _constants[key]}})});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var isDecimal=function isDecimal(value){var checkedValue=value.toString().trim();if(isNaN(parseFloat(checkedValue))){return false}return parseFloat(checkedValue)===Number(checkedValue)};var _default=isDecimal;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getDistance=_interopRequireDefault(require(\"./getDistance\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var isPointInLine=function isPointInLine(point,lineStart,lineEnd){return(0,_getDistance.default)(lineStart,point)+(0,_getDistance.default)(point,lineEnd)===(0,_getDistance.default)(lineStart,lineEnd)};var _default=isPointInLine;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var isPointInPolygon=function isPointInPolygon(point,polygon){var isInside=false;var totalPolys=polygon.length;for(var i=-1,j=totalPolys-1;++i=2){return(0,_isValidLongitude.default)(point[0])&&(0,_isValidLatitude.default)(point[1])}if(typeof latitude===\"undefined\"||typeof longitude===\"undefined\"){return false}var lon=point[longitude];var lat=point[latitude];if(typeof lat===\"undefined\"||typeof lon===\"undefined\"){return false}if((0,_isValidLatitude.default)(lat)===false||(0,_isValidLongitude.default)(lon)===false){return false}return true};var _default=isValidCoordinate;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _isDecimal=_interopRequireDefault(require(\"./isDecimal\"));var _isSexagesimal=_interopRequireDefault(require(\"./isSexagesimal\"));var _sexagesimalToDecimal=_interopRequireDefault(require(\"./sexagesimalToDecimal\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var isValidLatitude=function isValidLatitude(value){if((0,_isDecimal.default)(value)){if(parseFloat(value)>_constants.MAXLAT||value<_constants.MINLAT){return false}return true}if((0,_isSexagesimal.default)(value)){return isValidLatitude((0,_sexagesimalToDecimal.default)(value))}return false};var _default=isValidLatitude;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _isDecimal=_interopRequireDefault(require(\"./isDecimal\"));var _isSexagesimal=_interopRequireDefault(require(\"./isSexagesimal\"));var _sexagesimalToDecimal=_interopRequireDefault(require(\"./sexagesimalToDecimal\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var isValidLongitude=function isValidLongitude(value){if((0,_isDecimal.default)(value)){if(parseFloat(value)>_constants.MAXLON||value<_constants.MINLON){return false}return true}if((0,_isSexagesimal.default)(value)){return isValidLongitude((0,_sexagesimalToDecimal.default)(value))}return false};var _default=isValidLongitude;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getDistance=_interopRequireDefault(require(\"./getDistance\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var orderByDistance=function orderByDistance(point,coords){var distanceFn=arguments.length>2&&arguments[2]!==undefined?arguments[2]:_getDistance.default;distanceFn=typeof distanceFn===\"function\"?distanceFn:_getDistance.default;return coords.slice().sort(function(a,b){return distanceFn(point,a)-distanceFn(point,b)})};var _default=orderByDistance;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var robustAcos=function robustAcos(value){if(value>1){return 1}if(value<-1){return-1}return value};var _default=robustAcos;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var sexagesimalToDecimal=function sexagesimalToDecimal(sexagesimal){var data=new RegExp(_constants.sexagesimalPattern).exec(sexagesimal.toString().trim());if(typeof data===\"undefined\"||data===null){throw new Error(\"Given value is not in sexagesimal format\")}var min=Number(data[2])/60||0;var sec=Number(data[4])/3600||0;var decimal=parseFloat(data[1])+min+sec;return[\"S\",\"W\"].includes(data[7])?-decimal:decimal};var _default=sexagesimalToDecimal;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _isDecimal=_interopRequireDefault(require(\"./isDecimal\"));var _isSexagesimal=_interopRequireDefault(require(\"./isSexagesimal\"));var _sexagesimalToDecimal=_interopRequireDefault(require(\"./sexagesimalToDecimal\"));var _isValidCoordinate=_interopRequireDefault(require(\"./isValidCoordinate\"));var _getCoordinateKeys=_interopRequireDefault(require(\"./getCoordinateKeys\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable});keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;iarr.length)len=arr.length;for(var i=0,arr2=new Array(len);i 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","var map = {\n\t\"./fr\": 5498,\n\t\"./fr.js\": 5498\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 = 5076;","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.39.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.39.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar nativeToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = $String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return nativeToFixed(0.00008, 3) !== '0.000' ||\n nativeToFixed(0.9, 0) !== '1' ||\n nativeToFixed(1.255, 2) !== '1.25' ||\n nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number !== number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return $String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","function _newArrowCheck(n, r) {\n if (n !== r) throw new TypeError(\"Cannot instantiate an arrow function\");\n}\nexport { _newArrowCheck as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","'use strict';\r\n\r\nexport function ConditionallyDisplayedElement(element) {\r\n const dataset = element.dataset;\r\n const condition = dataset ? dataset.displayIf : null;\r\n\r\n if (condition) {\r\n const triggerSupportAttributeName = 'data-' + condition.replace(/([a-zA-Z])(?=[A-Z])/g, '$1-').toLowerCase();\r\n const triggerSupportElement = document.querySelector('[' + triggerSupportAttributeName + ']');\r\n\r\n if (triggerSupportElement) {\r\n element.style.display = triggerSupportElement.dataset[condition] === 'false' ? 'none' : '';\r\n\r\n const observer = new MutationObserver(function (mutations) {\r\n for (let i = 0; i < mutations.length; i++) {\r\n if (mutations[i].attributeName === triggerSupportAttributeName) {\r\n element.style.display = triggerSupportElement.dataset[condition] === 'false' ? 'none' : '';\r\n }\r\n }\r\n });\r\n\r\n const observerConfig = {\r\n attributes: true,\r\n childList: false,\r\n characterData: false\r\n };\r\n\r\n observer.observe(triggerSupportElement, observerConfig);\r\n }\r\n }\r\n\r\n return element;\r\n}\r\n","'use strict';\r\n\r\nexport const id = function () {\r\n return Math.random().toString(36).substr(2,16);\r\n};","\r\n'use strict';\r\n\r\nimport { id } from '../utils/id';\r\n\r\nconst KEYCODE = {\r\n\tUP: 38,\r\n\tDOWN: 40,\r\n\tRETURN: 13,\r\n\tESC: 27\r\n};\r\n\r\nexport function Dropdown(params) {\r\n\t/* TODO: adapt with input text instead of cta */\r\n\tlet dropdownElement = null;\r\n\tlet ctaElement = null;\r\n\tlet listboxElement = null;\r\n\tlet inputElement = null;\r\n\r\n\tlet dropdownId = '';\r\n\r\n\tlet selectOptions = new Array();\r\n\tlet selectedOptionId = null;\r\n\r\n\tlet ctaPlaceholderLabel = '';\r\n\r\n\tconst dropdownInvalidModifier = 'dropdown--invalid';\r\n\tconst hiddenListboxModifier = 'dropdown__options-list--hidden';\r\n\tconst focusedListItemModifier = 'dropdown__option--focused';\r\n\tconst activeCtaModifier = 'dropdown__cta--active';\r\n\tconst withSpinnerCtaModifier = 'dropdown__cta--with-spinner';\r\n\tconst emptyOptionsListCtaModifier = 'dropdown__cta--with-empty-options-list';\r\n\r\n\tlet isDropdownActive = false;\r\n\r\n\tif (params.selectElement) {\r\n\t\tconst selectElement = params.selectElement.cloneNode(true);\r\n\t\tdropdownId = selectElement.id || id();\r\n\r\n\t\tdropdownElement = function () {\r\n\t\t\tconst element = document.createElement('div');\r\n\t\t\telement.setAttribute('id', dropdownId);\r\n\r\n\t\t\tif (selectElement.dataset.dropdownClass) {\r\n\t\t\t\telement.setAttribute('class', selectElement.dataset.dropdownClass);\r\n\t\t\t}\r\n\r\n\t\t\telement.classList.add('dropdown');\r\n\r\n\t\t\treturn element;\r\n\t\t}();\r\n\r\n\t\tctaElement = function () {\r\n\t\t\tconst element = document.createElement('span');\r\n\t\t\telement.setAttribute('id', dropdownId + '__cta');\r\n\t\t\telement.setAttribute('role', 'button');\r\n\t\t\telement.setAttribute('tabindex', '0');\r\n\t\t\telement.setAttribute('aria-haspopup', 'listbox');\r\n\t\t\telement.classList.add('dropdown__cta');\r\n\t\t\tif(params.labelId) element.setAttribute('aria-labelledby', params.labelId);\r\n\r\n\t\t\tconst selectedOptionElement = selectElement.querySelector('option[selected]');\r\n\t\t\tif (selectedOptionElement && selectedOptionElement.innerText !== '') {\r\n\t\t\t\telement.innerText = selectedOptionElement.innerText;\r\n\t\t\t}\r\n\r\n\t\t\tconst selectPlaceholderOptionElement = selectElement.querySelector('option[disabled]:first-child');\r\n\t\t\tif (selectPlaceholderOptionElement && selectPlaceholderOptionElement.innerText !== '') {\r\n\t\t\t\tctaPlaceholderLabel = selectPlaceholderOptionElement.innerText;\r\n\r\n\t\t\t\tif (!element.innerText.length) {\r\n\t\t\t\t\telement.innerText = ctaPlaceholderLabel;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn element;\r\n\t\t}();\r\n\r\n\t\tlistboxElement = function () {\r\n\t\t\tconst element = document.createElement('ul');\r\n\t\t\telement.setAttribute('id', dropdownId + '__options');\r\n\t\t\telement.setAttribute('role', 'listbox');\r\n\t\t\telement.setAttribute('tabindex', '-1');\r\n\t\t\telement.classList.add('dropdown__options-list');\r\n\t\t\telement.classList.add(hiddenListboxModifier);\r\n\t\t\telement.setAttribute('aria-labelledby', dropdownId + '__cta' + (params.labelId ? ' ' + params.labelId : ''));\r\n\r\n\t\t\tconst selectOptionElements = selectElement.querySelectorAll('option');\r\n\r\n\t\t\tfor (let i = 0; i < selectOptionElements.length; i++) {\r\n\t\t\t\tconst selectOptionElement = selectOptionElements[i];\r\n\t\t\t\tif (selectOptionElement.value) {\r\n\t\t\t\t\tconst itemElement = document.createElement('li');\r\n\t\t\t\t\titemElement.setAttribute('id', dropdownId + '__option-' + i);\r\n\t\t\t\t\titemElement.setAttribute('role', 'option');\r\n\t\t\t\t\titemElement.classList.add('dropdown__option');\r\n\t\t\t\t\titemElement.innerText = selectOptionElement.innerText;\r\n\r\n\t\t\t\t\tselectOptions[dropdownId + '__option-' + i] = selectOptionElement.value;\r\n\r\n\t\t\t\t\tif (selectOptionElement.selected) {\r\n\t\t\t\t\t\tselectedOptionId = dropdownId + '__option-' + i;\r\n\t\t\t\t\t\titemElement.classList.add(focusedListItemModifier);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\telement.append(itemElement);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn element;\r\n\t\t}();\r\n\r\n\t\tinputElement = function () {\r\n\t\t\tif (selectElement.hasAttribute('name')) {\r\n\t\t\t\tconst element = document.createElement('input');\r\n\t\t\t\telement.setAttribute('name', selectElement.getAttribute('name'));\r\n\t\t\t\telement.setAttribute('type', 'text');\r\n\t\t\t\telement.setAttribute('style', 'display:none');\r\n\t\t\t\tif (selectElement.required) element.setAttribute('required', true);\r\n\r\n\t\t\t\tif (selectElement.value) {\r\n\t\t\t\t\telement.setAttribute('value', selectElement.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!element.validity.valid) {\r\n\t\t\t\t\tdropdownElement.classList.add(dropdownInvalidModifier);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn element;\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}();\r\n\r\n\t\tparams.selectElement.parentNode.insertBefore(dropdownElement, params.selectElement.nextElementSibling);\r\n\t\tparams.selectElement.parentNode.removeChild(params.selectElement);\r\n\t\tdropdownElement.append(ctaElement);\r\n\t\tdropdownElement.append(listboxElement);\r\n\t\tif (inputElement) dropdownElement.append(inputElement);\r\n\r\n\t\tif (!Object.keys(selectOptions).length) {\r\n\t\t\tctaElement.classList.add(emptyOptionsListCtaModifier);\r\n\t\t}\r\n\r\n\t} else if (params.dropdownElement) {\r\n\t\tdropdownElement = params.dropdownElement;\r\n\t\tdropdownId = dropdownElement.id;\r\n\t\tctaElement = dropdownElement.querySelector('.dropdown__cta');\r\n\t\tlistboxElement = dropdownElement.querySelector('.dropdown__options-list');\r\n\t\tinputElement = dropdownElement.querySelector('input');\r\n\t\tselectOptions = dropdownElement.dataset && dropdownElement.dataset.values ? JSON.parse(dropdownElement.dataset.values) : {};\r\n\t\tctaPlaceholderLabel = !!ctaElement ? ctaElement.innerHTML || '' : '';\r\n\t}\r\n\r\n\tfunction resetSelection() {\r\n\t\tselectedOptionId = null;\r\n\r\n\t\tif (inputElement) {\r\n\t\t\tinputElement.value = '';\r\n\r\n\t\t\tif (!inputElement.validity.valid && !dropdownElement.classList.contains(dropdownInvalidModifier)) {\r\n\t\t\t\tdropdownElement.classList.add(dropdownInvalidModifier);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlistboxElement.removeAttribute('aria-activedescendant');\r\n\r\n\t\tctaElement.innerHTML = ctaPlaceholderLabel;\r\n\t}\r\n\r\n\tfunction showListbox() {\r\n\t\tctaElement.setAttribute('aria-expanded', 'true');\r\n\r\n\t\tif (!ctaElement.classList.contains(activeCtaModifier)) {\r\n\t\t\tctaElement.classList.add(activeCtaModifier);\r\n\t\t}\r\n\r\n\t\tif (listboxElement.classList.contains(hiddenListboxModifier)) {\r\n\t\t\tlistboxElement.classList.remove(hiddenListboxModifier);\r\n\t\t}\r\n\r\n\t\tlistboxElement.focus();\r\n\r\n\t\tisDropdownActive = true;\r\n\t}\r\n\r\n\tfunction hideListbox() {\r\n\t\tctaElement.removeAttribute('aria-expanded');\r\n\r\n\t\tif (ctaElement.classList.contains(activeCtaModifier)) {\r\n\t\t\tctaElement.classList.remove(activeCtaModifier);\r\n\t\t}\r\n\r\n\t\tif (!listboxElement.classList.contains(hiddenListboxModifier)) {\r\n\t\t\tlistboxElement.classList.add(hiddenListboxModifier);\r\n\t\t}\r\n\r\n\t\tctaElement.focus();\r\n\r\n\t\tisDropdownActive = false;\r\n\t}\r\n\r\n\tfunction unSelectOption(element) {\r\n\t\tif (element && element.classList.contains(focusedListItemModifier)) {\r\n\t\t\telement.classList.remove(focusedListItemModifier);\r\n\t\t\tif (element.hasAttribute('aria-selected')) {\r\n\t\t\t\telement.setAttribute('aria-selected', 'true');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tresetSelection();\r\n\t}\r\n\r\n\tfunction selectOption(element) {\r\n\t\tif (element) {\r\n\t\t\tif (!element.classList.contains(focusedListItemModifier)) {\r\n\t\t\t\telement.classList.add(focusedListItemModifier);\r\n\t\t\t}\r\n\r\n\t\t\tif (element.id !== selectedOptionId) {\r\n\t\t\t\tif(selectedOptionId) {\r\n\t\t\t\t\tunSelectOption(document.getElementById(selectedOptionId));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tselectedOptionId = element.id;\r\n\t\t\t\telement.setAttribute('aria-selected', 'true');\r\n\t\t\t\tlistboxElement.setAttribute('aria-activedescendant', selectedOptionId);\r\n\r\n\t\t\t\tif (inputElement) {\r\n\t\t\t\t\tinputElement.value = selectOptions[selectedOptionId];\r\n\r\n\t\t\t\t\tif (!inputElement.validity.valid && !dropdownElement.classList.contains(dropdownInvalidModifier)) {\r\n\t\t\t\t\t\tdropdownElement.classList.add(dropdownInvalidModifier);\r\n\t\t\t\t\t} else if (inputElement.validity.valid && dropdownElement.classList.contains(dropdownInvalidModifier)) {\r\n\t\t\t\t\t\tdropdownElement.classList.remove(dropdownInvalidModifier);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tctaElement.innerText = element.innerText;\r\n\t\t\t}\r\n\r\n\t\t\tif (listboxElement.scrollHeight > listboxElement.clientHeight) {\r\n\t\t\t\tconst listboxScrollBottom = listboxElement.clientHeight + listboxElement.scrollTop;\r\n\t\t\t\tconst elementBottom = element.offsetTop + element.offsetHeight;\r\n\t\t\t\tif (elementBottom > listboxScrollBottom) {\r\n\t\t\t\t\tlistboxElement.scrollTop = elementBottom - listboxElement.clientHeight;\r\n\t\t\t\t} else if (element.offsetTop < listboxElement.scrollTop) {\r\n\t\t\t\t\tlistboxElement.scrollTop = element.offsetTop;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (params.onChange && typeof params.onChange === 'function') {\r\n\t\t\t\tparams.onChange(selectOptions[element.id]);\r\n\t\t\t}\r\n\t\t} else if(selectedOptionId) {\r\n\t\t\tunSelectOption(document.getElementById(selectedOptionId));\r\n\t\t}\r\n\t}\r\n\r\n\tfunction selectPreviousOption() {\r\n\t\tconst selectedOptionElement = selectedOptionId !== null ? document.getElementById(selectedOptionId) : null;\r\n\t\tconst previousOptionElement = selectedOptionElement ? selectedOptionElement.previousElementSibling : null;\r\n\r\n\t\tif (previousOptionElement && previousOptionElement.getAttribute('role') === 'option') {\r\n\t\t\tselectOption(previousOptionElement);\r\n\t\t} else {\r\n\t\t\tselectOption(listboxElement.querySelector('[role=option]'));\r\n\t\t}\r\n\t}\r\n\r\n\tfunction selectNextOption() {\r\n\t\tconst selectedOptionElement = selectedOptionId !== null ? document.getElementById(selectedOptionId) : null;\r\n\r\n\t\tif (!selectedOptionElement) {\r\n\t\t\tselectOption(listboxElement.querySelector('[role=option]'));\r\n\t\t} else {\r\n\t\t\tconst nextOptionElement = selectedOptionElement.nextElementSibling;\r\n\t\t\tif (nextOptionElement && nextOptionElement.getAttribute('role') === 'option') {\r\n\t\t\t\tselectOption(nextOptionElement);\r\n\t\t\t} else {\r\n\t\t\t\tselectOption(listboxElement.querySelector('[role=option]:last-child'));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction keyDownInteractions(event) {\r\n\t\tconst key = event.which || event.keyCode;\r\n\r\n\t\tif (key) {\r\n\t\t\tswitch (key) {\r\n\t\t\t\tcase KEYCODE.UP:\r\n\t\t\t\tcase KEYCODE.DOWN:\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tshowListbox();\r\n\t\t\t\t\tif (key === KEYCODE.UP) selectPreviousOption();\r\n\t\t\t\t\tif (key === KEYCODE.DOWN) selectNextOption();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase KEYCODE.RETURN:\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tif (isDropdownActive) {\r\n\t\t\t\t\t\thideListbox();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif (params.onEnter && typeof params.onEnter === 'function') {\r\n\t\t\t\t\t\t\tparams.onEnter(selectOptions[selectedOptionId]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tshowListbox();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase KEYCODE.ESC:\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\thideListbox();\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tctaElement.addEventListener('click', function (event) {\r\n\t\tevent.preventDefault();\r\n\t\tif (isDropdownActive) {\r\n\t\t\thideListbox();\t\t\t\r\n\t\t} else {\r\n\t\t\tshowListbox();\r\n\t\t}\r\n\t});\r\n\r\n\tlistboxElement.addEventListener('blur', function (event) {\r\n\t\tevent.preventDefault();\r\n\t\tif (event.relatedTarget === ctaElement) return;\r\n\t\thideListbox();\r\n\t});\r\n\r\n\tlistboxElement.addEventListener('click', function (event) {\r\n\t\tevent.preventDefault();\r\n\t\tif (event.target.getAttribute('role') === 'option') {\r\n\t\t\tselectOption(event.target);\r\n\t\t}\r\n\r\n\t\tif (isDropdownActive) {\r\n\t\t\thideListbox();\r\n\t\t}\r\n\r\n\t\tif (params.onEnter && typeof params.onEnter === 'function') {\r\n\t\t\tparams.onEnter(selectOptions[selectedOptionId]);\r\n\t\t}\r\n\t});\r\n\r\n\tctaElement.addEventListener('keydown', keyDownInteractions);\r\n\tlistboxElement.addEventListener('keydown', keyDownInteractions);\r\n\r\n\tfunction updateOptions(options) {\r\n\t\tif (!options.length) {\r\n\t\t\tif (!ctaElement.classList.contains(emptyOptionsListCtaModifier)) {\r\n\t\t\t\tctaElement.classList.add(emptyOptionsListCtaModifier);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (ctaElement.classList.contains(emptyOptionsListCtaModifier)) {\r\n\t\t\t\tctaElement.classList.remove(emptyOptionsListCtaModifier);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tresetSelection();\r\n\r\n\t\tif (listboxElement.hasChildNodes()) {\r\n\t\t\twhile (listboxElement.firstChild) {\r\n\t\t\t\tlistboxElement.removeChild(listboxElement.firstChild);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tselectOptions = [];\r\n\r\n\t\tfor (let i = 0; i < options.length; i++) {\r\n\t\t\tconst itemElement = document.createElement('li');\r\n\t\t\titemElement.setAttribute('id', dropdownId + '__option-' + i);\r\n\t\t\titemElement.setAttribute('role', 'option');\r\n\t\t\titemElement.classList.add('dropdown__option');\r\n\t\t\titemElement.innerText = options[i].label;\r\n\r\n\t\t\tselectOptions[dropdownId + '__option-' + i] = options[i].value;\r\n\r\n\t\t\tif (options[i].selected) {\r\n\t\t\t\tselectOption(itemElement);\r\n\t\t\t}\r\n\r\n\t\t\tlistboxElement.append(itemElement);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction showSpinner() {\r\n\t\tif (!ctaElement.classList.contains(withSpinnerCtaModifier)) {\r\n\t\t\tctaElement.classList.add(withSpinnerCtaModifier);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction hideSpinner() {\r\n\t\tif (ctaElement.classList.contains(withSpinnerCtaModifier)) {\r\n\t\t\tctaElement.classList.remove(withSpinnerCtaModifier);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getSelectedOptionValue() {\r\n\t\treturn selectOptions[selectedOptionId];\r\n\t}\r\n\r\n\treturn {\r\n\t\tid: dropdownId,\r\n\t\tupdateOptions: updateOptions,\r\n\t\tselectOption: selectOption,\r\n\t\tshowSpinner: showSpinner,\r\n\t\thideSpinner: hideSpinner,\r\n\t\tgetSelectedOptionValue: getSelectedOptionValue\r\n\t}\r\n}","'use strict';\r\n\r\nconst Moment = require('moment');\r\n\r\nexport const isAdultPerson = function (dateOfBirthStr) {\r\n const moment = Moment(dateOfBirthStr);\r\n\r\n if (moment.isValid()) {\r\n const today = new Date();\r\n const dateOfBirth = moment.toDate();\r\n let age = today.getFullYear() - dateOfBirth.getFullYear();\r\n const additionalMonths = today.getMonth() - dateOfBirth.getMonth();\r\n\r\n if (additionalMonths < 0 || (additionalMonths === 0 && today.getDate() < dateOfBirth.getDate())) {\r\n age--;\r\n }\r\n\r\n return age >= 18;\r\n } else return false;\r\n}\r\n","'use strict';\r\n\r\nrequire('../utils/mathTruncPolyfill');\r\n\r\nconst Moment = require('moment');\r\n\r\nconst flatpickr = require('flatpickr').default;\r\nimport { French } from 'flatpickr/dist/l10n/fr';\r\n\r\nimport { ConditionallyDisplayedElement } from './conditionallyDisplayedElement';\r\nimport { Dropdown } from './dropdown';\r\n\r\nimport { executeRecaptcha } from '../utils/executeRecaptcha';\r\nimport { isAdultPerson } from '../utils/isAdultPerson';\r\n\r\nexport function Form(params) {\r\n const formElement = params.element;\r\n const useDefaultSubmit = params.useDefaultSubmit;\r\n const submitCTAElements = formElement.querySelectorAll('[type=submit]');\r\n const loadingCtaModifier = 'cta--loading';\r\n\r\n let dropdowns = [];\r\n\r\n\r\n function initDateInputs() {\r\n const inputElements = formElement.querySelectorAll('[type=date]:not([noinit])');\r\n const today = new Date();\r\n const todayFullYear = today.getFullYear();\r\n today.setFullYear(todayFullYear);\r\n const defaultMaxDate = new Date(today);\r\n\r\n for (let i = 0; i < inputElements.length; i++) {\r\n inputElements[i].setAttribute('type', 'text');\r\n\r\n const options = {\r\n disableMobile: true,\r\n locale: French,\r\n dateFormat: 'd/m/Y',\r\n allowInput: true\r\n };\r\n\r\n const moment = Moment(inputElements[i].value);\r\n if (moment.isValid()) {\r\n if (inputElements[i].name.indexOf('Birthdate') > -1) {\r\n if (!isAdultPerson(inputElements[i].value)) {\r\n options['defaultDate'] = defaultMaxDate;\r\n } else {\r\n options['defaultDate'] = moment.toDate();\r\n }\r\n } else {\r\n options['defaultDate'] = moment.toDate();\r\n }\r\n }\r\n\r\n const picker = flatpickr(inputElements[i], options);\r\n }\r\n }\r\n\r\n function ConstrainedNumberInputs(input) {\r\n const value = parseFloat(input.value);\r\n const min = !!input.min ? parseFloat(input.min) : null;\r\n const max = !!input.max ? parseFloat(input.max) : null;\r\n const step = !!input.step ? parseFloat(input.step) : null;\r\n\r\n if (typeof min === 'number' && value < min) {\r\n input.value = min;\r\n } else if (typeof max === 'number' && value > max) {\r\n input.value = max;\r\n } else if (value % step > 0) {\r\n input.value = Math.round(Math.trunc((value + value % step) / step) * step * 100) / 100;\r\n }\r\n }\r\n\r\n function initConstrainedNumberInputs() {\r\n const inputElements = formElement.querySelectorAll('[type=number][min]:not([noinit]), [type=number][max]:not([noinit]), [type=number][step]:not([noinit])');\r\n\r\n for (let i = 0; i < inputElements.length; i++) {\r\n inputElements[i].addEventListener('change', function () {\r\n ConstrainedNumberInputs(this);\r\n });\r\n }\r\n }\r\n\r\n function initFilesInputs() {\r\n const inputElements = formElement.querySelectorAll('[type=file]');\r\n\r\n for (let i = 0; i < inputElements.length; i++) {\r\n let nextFilesListElement = formElement.querySelector('[data-files-list-for=' + inputElements[i].id + ']');\r\n\r\n if (!nextFilesListElement) {\r\n let nextElement = inputElements[i].nextElementSibling;\r\n\r\n while (nextElement) {\r\n if (nextElement.nodeName === 'UL' && nextElement.hasAttribute('data-files-list')) {\r\n nextFilesListElement = nextElement;\r\n break;\r\n }\r\n nextElement = nextElement.nextElementSibling;\r\n }\r\n }\r\n\r\n if (nextFilesListElement) {\r\n inputElements[i].addEventListener('change', function (event) {\r\n\r\n while (nextFilesListElement.firstChild) {\r\n nextFilesListElement.removeChild(nextFilesListElement.firstChild);\r\n }\r\n\r\n for (let i = 0; i < this.files.length; i++) {\r\n const item = document.createElement('li');\r\n\r\n if (this.dataset.fileSizeLimit && this.files[i].size > parseFloat(this.dataset.fileSizeLimit) * 1048576) {\r\n item.classList.add('error-alert');\r\n item.innerHTML = '' + this.files[i].name + ' est trop volumineux (> aux ' + this.dataset.fileSizeLimit + ' Mo permis)';\r\n event.preventDefault();\r\n } else {\r\n item.innerHTML = '' + this.files[i].name + '';\r\n }\r\n\r\n nextFilesListElement.append(item);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n function initDropdowns() {\r\n const dropdownElements = formElement.querySelectorAll('[data-dropdown]');\r\n\r\n for (let i = 0; i < dropdownElements.length; i++) {\r\n dropdowns.push(\r\n Dropdown(\r\n {\r\n selectElement: dropdownElements[i],\r\n labelId: dropdownElements[i].dataset.labelId || null\r\n }\r\n )\r\n );\r\n }\r\n }\r\n\r\n function initConditionalElements() {\r\n const conditionallyDisplayedElements = document.querySelectorAll('[data-display-if]');\r\n for (let i = 0; i < conditionallyDisplayedElements.length; i++) {\r\n ConditionallyDisplayedElement(conditionallyDisplayedElements[i]);\r\n }\r\n }\r\n\r\n function updateDropdownOptions(id, options) {\r\n const dropdown = dropdowns.filter(function(element) { return element.id == id; })[0];\r\n\r\n if (!!dropdown) {\r\n dropdown.updateOptions(options);\r\n }\r\n }\r\n\r\n function showDropdownSpinner(id) {\r\n const dropdown = dropdowns.filter(function(element) { return element.id == id; })[0];\r\n\r\n if (!!dropdown) {\r\n dropdown.showSpinner();\r\n }\r\n }\r\n\r\n function hideDropdownSpinner(id) {\r\n const dropdown = dropdowns.filter(function(element) { return element.id == id; })[0];\r\n\r\n if (!!dropdown) {\r\n dropdown.hideSpinner();\r\n }\r\n }\r\n\r\n initDateInputs();\r\n initConstrainedNumberInputs();\r\n initFilesInputs();\r\n initDropdowns();\r\n\r\n\r\n if (useDefaultSubmit == undefined || useDefaultSubmit === false) {\r\n const reCaptchaKeyInput = formElement.querySelector('[name=\"ReCaptchaKey\"]');\r\n let reCaptchaTokenInputElement = null;\r\n\r\n if (reCaptchaKeyInput) {\r\n reCaptchaTokenInputElement = document.createElement('input');\r\n reCaptchaTokenInputElement.setAttribute('type', 'hidden');\r\n reCaptchaTokenInputElement.setAttribute('name', 'ReCaptchaToken');\r\n formElement.insertBefore(reCaptchaTokenInputElement, submitCTAElements[0]);\r\n }\r\n\r\n formElement.addEventListener('submit', function (event) {\r\n event.preventDefault();\r\n\r\n if (formElement.classList.contains('form')) {\r\n formElement.classList.toggle('form--already-submitted');\r\n }\r\n\r\n if (reCaptchaKeyInput) {\r\n executeRecaptcha(\r\n reCaptchaKeyInput.value,\r\n function (token) {\r\n if (token.length) {\r\n reCaptchaTokenInputElement.setAttribute('value', token);\r\n if (params.submit) {\r\n params.submit(event);\r\n } else {\r\n showSubmitCTASpinner();\r\n formElement.submit();\r\n }\r\n }\r\n },\r\n function (message) {\r\n const errorAlertElement = document.createElement('p');\r\n errorAlertElement.classList.add('error-alert');\r\n errorAlertElement.innerHTML = message;\r\n formElement.insertBefore(errorAlertElement, submitCTAElements[0]);\r\n });\r\n } else if (params.submit) {\r\n params.submit(event);\r\n } else {\r\n showSubmitCTASpinner();\r\n formElement.submit();\r\n }\r\n });\r\n }\r\n\r\n function showSubmitCTASpinner() {\r\n for (let i = 0; i < submitCTAElements.length; i++) {\r\n const submitCTAElement = submitCTAElements[i];\r\n\r\n if (submitCTAElement.classList.contains('cta') && !submitCTAElement.classList.contains(loadingCtaModifier)) {\r\n submitCTAElement.classList.add(loadingCtaModifier);\r\n submitCTAElement.setAttribute('disabled', 'disabled');\r\n const loaderElement = document.createElement('span');\r\n loaderElement.classList.add('loader');\r\n submitCTAElement.append(loaderElement);\r\n }\r\n }\r\n }\r\n\r\n function hideSubmitCTASpinner() {\r\n for (let i = 0; i < submitCTAElements.length; i++) {\r\n const submitCTAElement = submitCTAElements[i];\r\n\r\n if (submitCTAElement.classList.contains('cta') && submitCTAElement.classList.contains(loadingCtaModifier)) {\r\n submitCTAElement.classList.remove(loadingCtaModifier);\r\n submitCTAElement.removeAttribute('disabled');\r\n const loaderElement = submitCTAElement.querySelector('.loader');\r\n submitCTAElement.removeChild(loaderElement);\r\n }\r\n }\r\n }\r\n\r\n return {\r\n initConditionalElements: initConditionalElements,\r\n updateDropdownOptions: updateDropdownOptions,\r\n showDropdownSpinner: showDropdownSpinner,\r\n hideDropdownSpinner: hideDropdownSpinner,\r\n showSubmitCTASpinner: showSubmitCTASpinner,\r\n hideSubmitCTASpinner: hideSubmitCTASpinner\r\n }\r\n}\r\n","'use strict';\r\n\r\nexport function executeRecaptcha(reCaptchaKey, onSuccess, onFailed) {\r\n if (typeof grecaptcha === 'object' && reCaptchaKey !== '') {\r\n grecaptcha.ready(function () {\r\n grecaptcha.execute(reCaptchaKey, {\r\n action: 'form'\r\n }).then(function (token) {\r\n onSuccess(token);\r\n }).catch(error => onFailed(error.message));\r\n });\r\n }\r\n else\r\n {\r\n onFailed('Le script reCAPTCHA n’a pas pu être chargé.');\r\n }\r\n}\r\n","'use strict';\r\n\r\nexport function searchAddresses(expression, country, onSuccess, onFailed) {\r\n let route = '';\r\n\r\n if (typeof country === \"undefined\") {\r\n route = 'https://photon.komoot.io/api/?q=' + expression + '&limit=7&lang=fr';\r\n } else if (country.toUpperCase() === 'FRANCE') {\r\n route = 'https://api-adresse.data.gouv.fr/search?q=' + expression + '&limit=7';\r\n } else {\r\n route = 'https://photon.komoot.io/api/?q=' + expression + ' ' + country + '&limit=7&lang=fr';\r\n }\r\n \r\n const xmlhttp = new XMLHttpRequest();\r\n\r\n xmlhttp.onreadystatechange = function () {\r\n if (this.readyState !== 4) return;\r\n\r\n if (this.status === 200) {\r\n const response = JSON.parse(this.responseText);\r\n onSuccess(response);\r\n } else {\r\n onFailed();\r\n }\r\n };\r\n\r\n xmlhttp.open('GET', route, true);\r\n xmlhttp.setRequestHeader('Content-Type', 'application/json');\r\n xmlhttp.send();\r\n}\r\n","'use strict';\r\n\r\nconst translations = {\r\n \"cable_car\": \"Téléphérique\",\r\n \"chair_lift\": \"Télésiège\",\r\n \"drag_lift\": \"Téléski\",\r\n \"gondola\": \"Télécabine\",\r\n \"platter\": \"Monte-plat\",\r\n \"pylon\": \"Pylône\",\r\n \"station\": \"Gare de télécabine\",\r\n \"t-bar\": \"Monte-barre en T\",\r\n \"aerodrome\": \"Aérodrome\",\r\n \"airstrip\": \"Piste d’atterrissage\",\r\n \"apron\": \"Aire de stationnement\",\r\n \"gate\": \"Porte\",\r\n \"hangar\": \"Hangar aéronautique\",\r\n \"helipad\": \"Héliport\",\r\n \"holding_position\": \"Position d’attente\",\r\n \"parking_position\": \"Place de parking\",\r\n \"runway\": \"Piste\",\r\n \"taxiway\": \"Piste de circulation d’un aéroport\",\r\n \"terminal\": \"Terminal\",\r\n \"animal_shelter\": \"Refuge pour animaux\",\r\n \"arts_centre\": \"Centre artistique\",\r\n \"atm\": \"Distributeur automatique de billets\",\r\n \"bank\": \"Banque\",\r\n \"bar\": \"Bar\",\r\n \"bbq\": \"Barbecue\",\r\n \"bench\": \"Banc\",\r\n \"bicycle_parking\": \"Parking à vélos\",\r\n \"bicycle_rental\": \"Location de vélos\",\r\n \"biergarten\": \"Brasserie en plein air\",\r\n \"boat_rental\": \"Location de bateaux\",\r\n \"brothel\": \"Bordel\",\r\n \"bureau_de_change\": \"Bureau de change\",\r\n \"bus_station\": \"Arrêt de bus\",\r\n \"cafe\": \"Café\",\r\n \"car_rental\": \"Location de voiture\",\r\n \"car_sharing\": \"Covoiturage\",\r\n \"car_wash\": \"Lavage de voiture\",\r\n \"casino\": \"Casino\",\r\n \"charging_station\": \"Station de recharge\",\r\n \"childcare\": \"Garde d’enfants\",\r\n \"cinema\": \"Cinéma\",\r\n \"clinic\": \"Clinique\",\r\n \"clock\": \"Horloge\",\r\n \"college\": \"Établissement d’enseignement supérieur\",\r\n \"community_centre\": \"Salle polyvalente\",\r\n \"courthouse\": \"Palais de justice\",\r\n \"crematorium\": \"Crématorium\",\r\n \"dentist\": \"Dentiste\",\r\n \"doctors\": \"Cabinet médical\",\r\n \"drinking_water\": \"Eau potable\",\r\n \"driving_school\": \"École de conduite\",\r\n \"embassy\": \"Ambassade\",\r\n \"fast_food\": \"Restauration rapide\",\r\n \"ferry_terminal\": \"Terminal de ferry\",\r\n \"fire_station\": \"Caserne des pompiers\",\r\n \"food_court\": \"Aire de restauration\",\r\n \"fountain\": \"Fontaine\",\r\n \"fuel\": \"Carburant\",\r\n \"gambling\": \"Jeu d’argent\",\r\n \"grave_yard\": \"Cimetière\",\r\n \"grit_bin\": \"Bac à sel\",\r\n \"hospital\": \"Hôpital\",\r\n \"hunting_stand\": \"Stand de tir\",\r\n \"ice_cream\": \"Glacier\",\r\n \"kindergarten\": \"Jardin d’enfant\",\r\n \"library\": \"Bibliothèque\",\r\n \"marketplace\": \"Marché\",\r\n \"monastery\": \"Monastère\",\r\n \"motorcycle_parking\": \"Parking à motos\",\r\n \"nightclub\": \"Boîte de nuit\",\r\n \"nursing_home\": \"Maison de retraite médicalisée\",\r\n \"office\": \"Bureau\",\r\n \"parking\": \"Parking\",\r\n \"parking_entrance\": \"Entrée d’un parking\",\r\n \"parking_space\": \"Place de parking\",\r\n \"pharmacy\": \"Pharmacie\",\r\n \"place_of_worship\": \"Lieu de culte\",\r\n \"police\": \"Police\",\r\n \"post_box\": \"Boîte aux lettres\",\r\n \"post_office\": \"Bureau de poste\",\r\n \"preschool\": \"Préscolaire\",\r\n \"prison\": \"Prison\",\r\n \"pub\": \"Pub\",\r\n \"public_building\": \"Bâtiment public\",\r\n \"recycling\": \"Point de recyclage\",\r\n \"restaurant\": \"Restaurant\",\r\n \"retirement_home\": \"Maison de retraite\",\r\n \"sauna\": \"Sauna\",\r\n \"school\": \"École\",\r\n \"shelter\": \"Abri\",\r\n \"shop\": \"Boutique\",\r\n \"shower\": \"Douche\",\r\n \"social_centre\": \"Centre social\",\r\n \"social_club\": \"Club social\",\r\n \"social_facility\": \"Service social\",\r\n \"studio\": \"Studio\",\r\n \"swimming_pool\": \"Piscine\",\r\n \"taxi\": \"Taxi\",\r\n \"telephone\": \"Téléphone public\",\r\n \"theatre\": \"Théâtre\",\r\n \"toilets\": \"Toilettes\",\r\n \"townhall\": \"Hôtel de ville / mairie\",\r\n \"university\": \"Université\",\r\n \"vending_machine\": \"Distributeur automatique\",\r\n \"veterinary\": \"Clinique vétérinaire\",\r\n \"village_hall\": \"Salle municipale\",\r\n \"waste_basket\": \"Poubelle\",\r\n \"waste_disposal\": \"Élimination des déchets\",\r\n \"water_point\": \"Point d’eau\",\r\n \"youth_centre\": \"Centre pour la jeunesse\",\r\n \"administrative\": \"Limite administrative\",\r\n \"census\": \"Frontière statistique\",\r\n \"national_park\": \"Parc national\",\r\n \"protected_area\": \"Zone protégée\",\r\n \"bridge\": \"Pont\",\r\n \"aqueduct\": \"Aqueduc\",\r\n \"boardwalk\": \"Promenade\",\r\n \"suspension\": \"Pont suspendu\",\r\n \"swing\": \"Pont tournant\",\r\n \"viaduct\": \"Viaduc\",\r\n \"building\": \"Bâtiment\",\r\n \"craft\": \"Boutique d’artisanat\",\r\n \"brewery\": \"Brasserie\",\r\n \"carpenter\": \"Charpentier\",\r\n \"electrician\": \"Électricien\",\r\n \"gardener\": \"Jardinier\",\r\n \"painter\": \"Peintre\",\r\n \"photographer\": \"Photographe\",\r\n \"plumber\": \"Plombier\",\r\n \"shoemaker\": \"Cordonnier\",\r\n \"tailor\": \"Tailleur\",\r\n \"emergency\": \"Urgence\",\r\n \"ambulance_station\": \"Dépôt d’ambulances\",\r\n \"assembly_point\": \"Point de rassemblement\",\r\n \"defibrillator\": \"Défibrillateur\",\r\n \"landing_site\": \"Terrain d’atterrissage d’urgence\",\r\n \"phone\": \"Borne d’appel d’urgence\",\r\n \"water_tank\": \"Citerne d’eau d’urgence\",\r\n \"highway\": \"Route\",\r\n \"abandoned\": \"Autoroute abandonnée\",\r\n \"bridleway\": \"Chemin pour cavaliers\",\r\n \"bus_guideway\": \"Voie de bus guidé / trolley\",\r\n \"bus_stop\": \"Arrêt de bus\",\r\n \"construction\": \"Route en construction\",\r\n \"corridor\": \"Couloir\",\r\n \"cycleway\": \"Piste cyclable\",\r\n \"elevator\": \"Ascenseur\",\r\n \"emergency_access_point\": \"Point d’accès d’urgence\",\r\n \"footway\": \"Chemin piéton\",\r\n \"ford\": \"Gué\",\r\n \"give_way\": \"Panneau « Cédez le passage »\",\r\n \"living_street\": \"Rue en zone de rencontre\",\r\n \"milestone\": \"Borne kilométrique\",\r\n \"motorway\": \"Autoroute\",\r\n \"motorway_junction\": \"Sortie / Échangeur\",\r\n \"motorway_link\": \"Bretelle d’autoroute\",\r\n \"passing_place\": \"Endroit de passage\",\r\n \"path\": \"Chemin\",\r\n \"pedestrian\": \"Rue piétonne\",\r\n \"platform\": \"Plateforme\",\r\n \"primary\": \"Route principale\",\r\n \"primary_link\": \"Route principale\",\r\n \"proposed\": \"Projet de route\",\r\n \"raceway\": \"Circuit\",\r\n \"residential\": \"Rue résidentielle\",\r\n \"rest_area\": \"Aire de repos\",\r\n \"road\": \"Route\",\r\n \"secondary\": \"Route secondaire\",\r\n \"secondary_link\": \"Route secondaire\",\r\n \"service\": \"Voie de service\",\r\n \"services\": \"Services autoroutiers\",\r\n \"speed_camera\": \"Radar de vitesse\",\r\n \"steps\": \"Escalier\",\r\n \"stop\": \"Panneau « Stop / Arrêt »\",\r\n \"street_lamp\": \"Lampadaire\",\r\n \"tertiary\": \"Route tertiaire\",\r\n \"tertiary_link\": \"Route tertiaire\",\r\n \"track\": \"Chemin\",\r\n \"traffic_signals\": \"Feux de circulation\",\r\n \"trail\": \"Sentier\",\r\n \"trunk\": \"Voie express\",\r\n \"trunk_link\": \"Voie express\",\r\n \"turning_loop\": \"Virage en boucle\",\r\n \"unclassified\": \"Route mineure\",\r\n \"historic\": \"Site / objet historique\",\r\n \"archaeological_site\": \"Site archéologique\",\r\n \"battlefield\": \"Champ de bataille\",\r\n \"boundary_stone\": \"Borne frontière\",\r\n \"building\": \"Bâtiment historique\",\r\n \"bunker\": \"Bunker\",\r\n \"castle\": \"Château\",\r\n \"church\": \"Église\",\r\n \"city_gate\": \"Porte de ville / porte fortifiée\",\r\n \"citywalls\": \"Remparts / murailles\",\r\n \"fort\": \"Fort\",\r\n \"heritage\": \"Site / objet du patrimoine\",\r\n \"house\": \"Maison historique\",\r\n \"icon\": \"Icône\",\r\n \"manor\": \"Manoir\",\r\n \"memorial\": \"Mémorial\",\r\n \"mine\": \"Mine\",\r\n \"mine_shaft\": \"Puits de mine\",\r\n \"monument\": \"Grand monument commémoratif\",\r\n \"roman_road\": \"Voie romaine\",\r\n \"ruins\": \"Ruines\",\r\n \"stone\": \"Pierre\",\r\n \"tomb\": \"Tombeau\",\r\n \"tower\": \"Tour\",\r\n \"wayside_cross\": \"Calvaire\",\r\n \"wayside_shrine\": \"Oratoire\",\r\n \"wreck\": \"Épave\",\r\n \"junction\": \"Intersection / carrefour\",\r\n \"landuse\": \"Utilisation des terres\",\r\n \"allotments\": \"Jardins familiaux\",\r\n \"basin\": \"Bassin\",\r\n \"brownfield\": \"Friche industrielle\",\r\n \"cemetery\": \"Cimetière\",\r\n \"commercial\": \"Zone tertiaire / Zone d’activités\",\r\n \"conservation\": \"Zone préservée\",\r\n \"construction\": \"Zone en construction\",\r\n \"farm\": \"Ferme\",\r\n \"farmland\": \"Terres agricoles\",\r\n \"farmyard\": \"Cour et corps de ferme\",\r\n \"forest\": \"Forêt\",\r\n \"garages\": \"Garages\",\r\n \"grass\": \"Pelouse\",\r\n \"greenfield\": \"Terrain vierge\",\r\n \"industrial\": \"Zone industrielle\",\r\n \"landfill\": \"Décharge\",\r\n \"meadow\": \"Prairie\",\r\n \"military\": \"Zone militaire\",\r\n \"mine\": \"Mine\",\r\n \"orchard\": \"Verger\",\r\n \"quarry\": \"Carrière\",\r\n \"railway\": \"Voie ferrée\",\r\n \"recreation_ground\": \"Aire de jeux\",\r\n \"reservoir\": \"Réservoir\",\r\n \"reservoir_watershed\": \"Bassin versant de réservoir\",\r\n \"residential\": \"Zone résidentielle\",\r\n \"retail\": \"Zone commerciale\",\r\n \"road\": \"Zone routière\",\r\n \"village_green\": \"Pré communal\",\r\n \"vineyard\": \"Vignoble\",\r\n \"leisure\": \"Loisirs\",\r\n \"beach_resort\": \"Station balnéaire\",\r\n \"bird_hide\": \"Observatoire ornithologique\",\r\n \"common\": \"Terrains communaux\",\r\n \"dog_park\": \"Parc à chiens\",\r\n \"firepit\": \"Foyer\",\r\n \"fishing\": \"Zone de pêche\",\r\n \"fitness_centre\": \"Centre de fitness\",\r\n \"fitness_station\": \"Atelier de parcours de santé\",\r\n \"garden\": \"Jardin\",\r\n \"golf_course\": \"Terrain de golf\",\r\n \"horse_riding\": \"Équitation\",\r\n \"ice_rink\": \"Patinoire\",\r\n \"marina\": \"Port de plaisance\",\r\n \"miniature_golf\": \"Mini golf\",\r\n \"nature_reserve\": \"Réserve naturelle\",\r\n \"park\": \"Parc\",\r\n \"pitch\": \"Terrain de sport\",\r\n \"playground\": \"Aire de jeux\",\r\n \"recreation_ground\": \"Terrain de jeux\",\r\n \"resort\": \"Villégiature\",\r\n \"sauna\": \"Sauna\",\r\n \"slipway\": \"Cale de lancement\",\r\n \"sports_centre\": \"Centre sportif\",\r\n \"stadium\": \"Stade\",\r\n \"swimming_pool\": \"Piscine\",\r\n \"track\": \"Piste de course\",\r\n \"water_park\": \"Parc aquatique\",\r\n \"man_made\": \"Créé par l’homme\",\r\n \"adit\": \"Galerie d’accès de mine\",\r\n \"beacon\": \"Balise\",\r\n \"beehive\": \"Ruche\",\r\n \"breakwater\": \"Brise-lames\",\r\n \"bridge\": \"Pont\",\r\n \"bunker_silo\": \"Bunker\",\r\n \"chimney\": \"Cheminée\",\r\n \"crane\": \"Grue\",\r\n \"dolphin\": \"Poste d’amarrage\",\r\n \"dyke\": \"Digue\",\r\n \"embankment\": \"Talus\",\r\n \"flagpole\": \"Mât de drapeau\",\r\n \"gasometer\": \"Gazomètre\",\r\n \"groyne\": \"Épi\",\r\n \"kiln\": \"Four\",\r\n \"lighthouse\": \"Phare\",\r\n \"mast\": \"Mât / pylône\",\r\n \"mine\": \"Mine\",\r\n \"mineshaft\": \"Puits de mine\",\r\n \"monitoring_station\": \"Station de surveillance\",\r\n \"petroleum_well\": \"Puits de pétrole\",\r\n \"pier\": \"Jetée\",\r\n \"pipeline\": \"Pipeline\",\r\n \"silo\": \"Silo\",\r\n \"storage_tank\": \"Citerne de stockage\",\r\n \"surveillance\": \"Dispositif / caméra de surveillance\",\r\n \"tower\": \"Tour\",\r\n \"wastewater_plant\": \"Station de traitement des eaux usées\",\r\n \"watermill\": \"Moulin à eau\",\r\n \"water_tower\": \"Château d’eau\",\r\n \"water_well\": \"Puits\",\r\n \"water_works\": \"Système hydraulique\",\r\n \"windmill\": \"Moulin à vent\",\r\n \"works\": \"Usine\",\r\n \"military\": \"Militaire\",\r\n \"airfield\": \"Terrain d’aviation militaire\",\r\n \"barracks\": \"Caserne\",\r\n \"bunker\": \"Bunker\",\r\n \"mountain_pass\": \"Col de montagne\",\r\n \"bay\": \"Baie\",\r\n \"beach\": \"Plage\",\r\n \"cape\": \"Cap\",\r\n \"cave_entrance\": \"Entrée de grotte\",\r\n \"cliff\": \"Falaise\",\r\n \"crater\": \"Cratère\",\r\n \"dune\": \"Dune\",\r\n \"fell\": \"Lande\",\r\n \"fjord\": \"Fjord\",\r\n \"forest\": \"Forêt\",\r\n \"geyser\": \"Geyser\",\r\n \"glacier\": \"Glacier\",\r\n \"grassland\": \"Herbage\",\r\n \"heath\": \"Bruyère\",\r\n \"hill\": \"Colline\",\r\n \"island\": \"ÃŽle\",\r\n \"land\": \"Terre\",\r\n \"marsh\": \"Marécage\",\r\n \"moor\": \"Brande\",\r\n \"mud\": \"Boue\",\r\n \"peak\": \"Pic\",\r\n \"point\": \"Pointe\",\r\n \"reef\": \"Récif\",\r\n \"ridge\": \"Crête\",\r\n \"rock\": \"Rocher\",\r\n \"saddle\": \"Selle\",\r\n \"sand\": \"Sable\",\r\n \"scree\": \"Éboulis\",\r\n \"scrub\": \"Broussailles\",\r\n \"spring\": \"Source\",\r\n \"stone\": \"Pierre\",\r\n \"strait\": \"Détroit\",\r\n \"tree\": \"Arbre\",\r\n \"valley\": \"Vallée\",\r\n \"volcano\": \"Volcan\",\r\n \"water\": \"Eau\",\r\n \"wetland\": \"Zone humide\",\r\n \"wood\": \"Forêt\",\r\n \"office\": \"Bureau\",\r\n \"accountant\": \"Comptable\",\r\n \"administrative\": \"Administration\",\r\n \"architect\": \"Architecte\",\r\n \"association\": \"Association\",\r\n \"company\": \"Entreprise\",\r\n \"educational_institution\": \"Institution éducative\",\r\n \"employment_agency\": \"Agence pour l’emploi\",\r\n \"estate_agent\": \"Agent immobilier\",\r\n \"government\": \"Administration publique\",\r\n \"insurance\": \"Agence d’assurance\",\r\n \"it\": \"Bureau informatique\",\r\n \"lawyer\": \"Avocat\",\r\n \"ngo\": \"Agence d’une ONG\",\r\n \"telecommunication\": \"Agence de télécommunication\",\r\n \"travel_agent\": \"Agence de voyage\",\r\n \"place\": \"Lieu\",\r\n \"allotments\": \"Jardins familiaux\",\r\n \"city\": \"Ville\",\r\n \"city_block\": \"Bloc urbain\",\r\n \"country\": \"Pays\",\r\n \"county\": \"Comté\",\r\n \"farm\": \"Ferme\",\r\n \"hamlet\": \"Hameau habité\",\r\n \"house\": \"Maison\",\r\n \"houses\": \"Maisons\",\r\n \"island\": \"ÃŽle\",\r\n \"islet\": \"ÃŽlot\",\r\n \"isolated_dwelling\": \"Lieu-dit habité isolé\",\r\n \"locality\": \"Lieu-dit inhabité\",\r\n \"municipality\": \"Municipalité\",\r\n \"neighbourhood\": \"Quartier\",\r\n \"postcode\": \"Code postal\",\r\n \"quarter\": \"Quartier\",\r\n \"region\": \"Région\",\r\n \"sea\": \"Mer\",\r\n \"square\": \"Place\",\r\n \"state\": \"État / province\",\r\n \"subdivision\": \"Subdivision\",\r\n \"suburb\": \"Quartier\",\r\n \"town\": \"Ville\",\r\n \"unincorporated_area\": \"Territoire non organisé\",\r\n \"village\": \"Village\",\r\n \"abandoned\": \"Voie ferrée abandonnée\",\r\n \"construction\": \"Voie ferrée en construction\",\r\n \"disused\": \"Voie ferrée désaffectée\",\r\n \"funicular\": \"Funiculaire\",\r\n \"halt\": \"Arrêt de train\",\r\n \"junction\": \"Jonction ferroviaire\",\r\n \"level_crossing\": \"Passage à niveau\",\r\n \"light_rail\": \"Voie ferrée légère\",\r\n \"miniature\": \"Voie ferrée miniature\",\r\n \"monorail\": \"Monorail\",\r\n \"narrow_gauge\": \"Voie ferrée étroite\",\r\n \"platform\": \"Plateforme ferroviaire\",\r\n \"preserved\": \"Voie ferrée conservée\",\r\n \"proposed\": \"Voie ferrée en projet\",\r\n \"spur\": \"Embranchement ferroviaire\",\r\n \"station\": \"Gare ferroviaire\",\r\n \"stop\": \"Arrêt de chemin de fer\",\r\n \"subway\": \"Station de métro\",\r\n \"subway_entrance\": \"Bouche de métro\",\r\n \"switch\": \"Aiguillage\",\r\n \"tram\": \"Tramway\",\r\n \"tram_stop\": \"Arrêt de tram\",\r\n \"shop\": \"Boutique\",\r\n \"alcohol\": \"Vendeur d’alcool à emporter / caviste\",\r\n \"antiques\": \"Antiquaire\",\r\n \"art\": \"Boutique d’art\",\r\n \"bakery\": \"Boulangerie\",\r\n \"beauty\": \"Magasin de produits de beauté\",\r\n \"beverages\": \"Magasin de boissons\",\r\n \"bicycle\": \"Magasin de vélos\",\r\n \"bookmaker\": \"Bureau de paris\",\r\n \"books\": \"Librairie\",\r\n \"boutique\": \"Boutique de mode\",\r\n \"butcher\": \"Boucherie\",\r\n \"car\": \"Concession automobile\",\r\n \"car_parts\": \"Pièces d’automobile\",\r\n \"car_repair\": \"Garage de réparation automobile\",\r\n \"carpet\": \"Magasin de tapis\",\r\n \"charity\": \"Boutique humanitaire\",\r\n \"chemist\": \"Droguerie\",\r\n \"clothes\": \"Boutique de vêtements\",\r\n \"computer\": \"Boutique informatique\",\r\n \"confectionery\": \"Confiserie\",\r\n \"convenience\": \"Épicerie\",\r\n \"copyshop\": \"Boutique de photocopies\",\r\n \"cosmetics\": \"Boutique de cosmétiques\",\r\n \"deli\": \"Traiteur\",\r\n \"department_store\": \"Grand magasin\",\r\n \"discount\": \"Magasin discount\",\r\n \"doityourself\": \"Magasin de bricolage\",\r\n \"dry_cleaning\": \"Pressing de nettoyage à sec\",\r\n \"electronics\": \"Boutique de produits électroniques\",\r\n \"estate_agent\": \"Agent immobilier\",\r\n \"farm\": \"Magasin de produits agricoles\",\r\n \"fashion\": \"Boutique de mode\",\r\n \"fish\": \"Poissonnerie\",\r\n \"florist\": \"Fleuriste\",\r\n \"food\": \"Magasin d’alimentation\",\r\n \"funeral_directors\": \"Pompes funèbres\",\r\n \"furniture\": \"Magasin de meubles\",\r\n \"gallery\": \"Galerie\",\r\n \"garden_centre\": \"Jardinerie\",\r\n \"general\": \"Magasin généraliste\",\r\n \"gift\": \"Boutique de cadeaux\",\r\n \"greengrocer\": \"Marchand de fruits et légumes\",\r\n \"grocery\": \"Épicerie\",\r\n \"hairdresser\": \"Coiffeur\",\r\n \"hardware\": \"Quincaillerie\",\r\n \"hifi\": \"Magasin Hi-Fi\",\r\n \"houseware\": \"Magasin d’articles ménagers\",\r\n \"interior_decoration\": \"Décoration intérieure\",\r\n \"jewelry\": \"Bijouterie\",\r\n \"kiosk\": \"Kiosque\",\r\n \"kitchen\": \"Magasin de cuisine\",\r\n \"laundry\": \"Blanchisserie\",\r\n \"lottery\": \"Loterie\",\r\n \"mall\": \"Centre commercial\",\r\n \"market\": \"Marché\",\r\n \"massage\": \"Massage\",\r\n \"mobile_phone\": \"Boutique de téléphones mobiles\",\r\n \"motorcycle\": \"Magasin de motos\",\r\n \"music\": \"Boutique de musique / disquaire\",\r\n \"newsagent\": \"Marchand de journaux\",\r\n \"optician\": \"Opticien\",\r\n \"organic\": \"Magasin d’alimentation bio\",\r\n \"outdoor\": \"Magasin d’articles pour activité en plein air\",\r\n \"paint\": \"Galerie de peinture\",\r\n \"pawnbroker\": \"Prêteur sur gages\",\r\n \"pet\": \"Animalerie\",\r\n \"pharmacy\": \"Pharmacie\",\r\n \"photo\": \"Boutique de photographie\",\r\n \"seafood\": \"Fruits de mer\",\r\n \"second_hand\": \"Boutique de produits d’occasion\",\r\n \"shoes\": \"Magasin de chaussures\",\r\n \"sports\": \"Magasin de d’articles de sport\",\r\n \"stationery\": \"Papeterie\",\r\n \"supermarket\": \"Supermarché\",\r\n \"tailor\": \"Tailleur\",\r\n \"ticket\": \"Billetterie\",\r\n \"tobacco\": \"Bureau de tabac\",\r\n \"toys\": \"Magasin de jouets\",\r\n \"travel_agency\": \"Agence de voyage\",\r\n \"tyres\": \"Magasin de pneus\",\r\n \"vacant\": \"Commerce vacant\",\r\n \"variety_store\": \"Magasin à prix unique ou réduit\",\r\n \"video\": \"Magasin de vidéos\",\r\n \"wine\": \"Caviste\",\r\n \"alpine_hut\": \"Refuge\",\r\n \"apartment\": \"Appartement de vacances\",\r\n \"artwork\": \"Å’uvre d’art\",\r\n \"attraction\": \"Attraction\",\r\n \"bed_and_breakfast\": \"Gîte\",\r\n \"cabin\": \"Hutte\",\r\n \"camp_site\": \"Camping\",\r\n \"caravan_site\": \"Site pour caravanes\",\r\n \"chalet\": \"Chalet\",\r\n \"gallery\": \"Galerie\",\r\n \"guest_house\": \"Maison d’hôte\",\r\n \"hostel\": \"Auberge\",\r\n \"hotel\": \"Hôtel\",\r\n \"information\": \"Informations\",\r\n \"motel\": \"Motel\",\r\n \"museum\": \"Musée\",\r\n \"picnic_site\": \"Aire de pique-nique\",\r\n \"theme_park\": \"Parc à thème\",\r\n \"viewpoint\": \"Point de vue\",\r\n \"zoo\": \"Zoo\",\r\n \"tunnel\": \"Tunnel\",\r\n \"building_passage\": \"Passage de bâtiment\",\r\n \"culvert\": \"Buse\",\r\n \"waterway\": \"Cours d’eau\",\r\n \"artificial\": \"Cours d’eau artificiel\",\r\n \"boatyard\": \"Chantier naval\",\r\n \"canal\": \"Canal\",\r\n \"dam\": \"Barrage\",\r\n \"derelict_canal\": \"Canal d’évacuation\",\r\n \"ditch\": \"Fossé\",\r\n \"dock\": \"Dock\",\r\n \"drain\": \"Drain\",\r\n \"lock\": \"Écluse\",\r\n \"lock_gate\": \"Porte d’écluse\",\r\n \"mooring\": \"Mouillage\",\r\n \"rapids\": \"Rapides\",\r\n \"river\": \"Rivière\",\r\n \"stream\": \"Ruisseau\",\r\n \"wadi\": \"Oued\",\r\n \"waterfall\": \"Chute d’eau\",\r\n \"weir\": \"Barrage\",\r\n};\r\n\r\nexport function translateOSMKey(key, language = 'fr') {\r\n return translations[key] || null;\r\n}\r\n","'use strict';\r\n\r\nimport { Dropdown } from './dropdown';\r\n\r\nrequire('../utils/closestPolyfill');\r\n\r\nconst KEYCODE = {\r\n DOWN: 40,\r\n RETURN: 13\r\n};\r\n\r\nexport function SelectSearchResultInput(params) {\r\n const element = params.element;\r\n const searchInput = params.searchInput || null;\r\n const getOptions = (params.getOptions && typeof params.getOptions === 'function') ? params.getOptions : null;\r\n const onChange = (params.onChange && typeof params.onChange === 'function') ? params.onChange : null;\r\n const onInput = (params.onInput && typeof params.onInput === 'function') ? params.onInput : null;\r\n\r\n if (element && getOptions) {\r\n let typingTimeout = null;\r\n let search = null;\r\n\r\n const parentElement = element.parentElement;\r\n let spinnerParentElement = typeof parentElement.dataset.spinnerParent === 'string' ? parentElement : parentElement.closest('[data-spinner-parent]');\r\n\r\n if (!spinnerParentElement) {\r\n spinnerParentElement = parentElement;\r\n }\r\n\r\n const spinnerElement = document.createElement('span');\r\n spinnerElement.innerHTML = '⌛';\r\n\r\n if (element.nodeName === 'INPUT') {\r\n search = element.value;\r\n\r\n let dropdown = null;\r\n let dropdownElement = null;\r\n let dropdownCTAElement = null;\r\n let dropdownListBoxElement = null;\r\n\r\n function removeSuggestions() {\r\n const dropdownElement = parentElement.querySelector('.dropdown');\r\n\r\n if (dropdownElement) {\r\n parentElement.removeChild(dropdownElement);\r\n }\r\n\r\n dropdown = null;\r\n dropdownListBoxElement = null;\r\n }\r\n\r\n element.addEventListener('keydown', function (event) {\r\n const key = event.which || event.keyCode;\r\n\r\n if (key) {\r\n switch (key) {\r\n case KEYCODE.RETURN:\r\n event.preventDefault();\r\n if (onChange) onChange(dropdown.getSelectedOptionValue());\r\n removeSuggestions();\r\n break;\r\n case KEYCODE.DOWN:\r\n event.preventDefault();\r\n dropdownCTAElement.click();\r\n break;\r\n }\r\n }\r\n });\r\n\r\n element.addEventListener('input', function () {\r\n if (this.value !== search) {\r\n if (onInput) onInput(this.value);\r\n\r\n clearTimeout(typingTimeout);\r\n\r\n search = this.value || '';\r\n\r\n if (search.length >= 2) {\r\n spinnerParentElement.append(spinnerElement);\r\n\r\n typingTimeout = setTimeout(function () {\r\n getOptions(\r\n search,\r\n function (options) {\r\n if (options && options.length) {\r\n\r\n if (!dropdown) {\r\n dropdownElement = document.createElement('div');\r\n dropdownElement.classList.add('dropdown');\r\n\r\n dropdownCTAElement = document.createElement('div');\r\n dropdownCTAElement.classList.add('dropdown__cta');\r\n dropdownCTAElement.setAttribute('aria-haspopup', 'listbox');\r\n dropdownCTAElement.style.display = 'none';\r\n\r\n dropdownListBoxElement = document.createElement('ul');\r\n dropdownListBoxElement.setAttribute('role', 'listbox');\r\n dropdownListBoxElement.setAttribute('tabindex', '-1');\r\n dropdownListBoxElement.classList.add('dropdown__options-list', 'dropdown__options-list--hidden');\r\n\r\n dropdownElement.append(dropdownCTAElement);\r\n dropdownElement.append(dropdownListBoxElement);\r\n parentElement.append(dropdownElement);\r\n\r\n dropdown = Dropdown(\r\n {\r\n dropdownElement: dropdownElement,\r\n onEnter: function (value) {\r\n if (onChange) onChange(value);\r\n removeSuggestions();\r\n }\r\n }\r\n );\r\n } else {\r\n dropdown.updateOptions([]);\r\n }\r\n\r\n dropdown.updateOptions(options);\r\n dropdown.selectOption(dropdownListBoxElement.firstChild);\r\n dropdownListBoxElement.classList.remove('dropdown__options-list--hidden');\r\n\r\n if (spinnerParentElement.contains(spinnerElement)) spinnerParentElement.removeChild(spinnerElement);\r\n } else {\r\n removeSuggestions();\r\n if (spinnerParentElement.contains(spinnerElement)) spinnerParentElement.removeChild(spinnerElement);\r\n }\r\n },\r\n function () {\r\n removeSuggestions();\r\n if (spinnerParentElement.contains(spinnerElement)) spinnerParentElement.removeChild(spinnerElement);\r\n }\r\n );\r\n }, 500);\r\n } else {\r\n removeSuggestions();\r\n }\r\n }\r\n });\r\n \r\n element.addEventListener('blur', function (event) {\r\n event.preventDefault();\r\n if (event.relatedTarget !== null) return;\r\n removeSuggestions();\r\n });\r\n }\r\n\r\n if (element.nodeName === 'SELECT' && searchInput) {\r\n search = searchInput.value;\r\n\r\n function removeOptionElements() {\r\n let placeholderOption = null;\r\n\r\n while (element.firstChild) {\r\n const firstOption = element.firstChild;\r\n if (firstOption.nodeName === 'OPTION' && firstOption.hasAttribute('hidden')) {\r\n placeholderOption = firstOption;\r\n }\r\n element.removeChild(firstOption);\r\n }\r\n\r\n if (placeholderOption) element.append(placeholderOption);\r\n }\r\n\r\n searchInput.addEventListener('input', function () {\r\n if (this.value !== search) {\r\n if (onInput) onInput(this.value);\r\n\r\n clearTimeout(typingTimeout);\r\n\r\n search = this.value || '';\r\n\r\n if (search.length >= 2) {\r\n spinnerParentElement.append(spinnerElement);\r\n\r\n typingTimeout = setTimeout(function () {\r\n getOptions(\r\n search,\r\n function (options) {\r\n if (options && options.length) {\r\n removeOptionElements();\r\n\r\n for (let i = 0; i < options.length; i++) {\r\n const optionElement = document.createElement('option');\r\n optionElement.setAttribute('value', options[i].value);\r\n optionElement.innerHTML = options[i].label;\r\n element.append(optionElement);\r\n }\r\n\r\n spinnerParentElement.removeChild(spinnerElement);\r\n } else {\r\n removeOptionElements();\r\n spinnerParentElement.removeChild(spinnerElement);\r\n }\r\n },\r\n function () {\r\n removeOptionElements();\r\n spinnerParentElement.removeChild(spinnerElement);\r\n }\r\n );\r\n }, 500);\r\n } else {\r\n removeOptionElements();\r\n }\r\n }\r\n });\r\n\r\n /* TODO: get selected option */\r\n element.addEventListener('change', function () {\r\n if (onChange) onChange(this.value);\r\n });\r\n }\r\n }\r\n}\r\n","'use strict';\r\n\r\nimport { getDistance } from 'geolib';\r\n\r\nimport { searchAddresses } from '../api/searchAddresses';\r\n\r\nimport { translateOSMKey } from '../utils/translateOSMKey';\r\n\r\nimport { SelectSearchResultInput } from '../objects/selectSearchResultInput';\r\n\r\nexport function DistanceInputs(params) {\r\n const context = params.context;\r\n const tripDepartureStationInputElement = params.tripDepartureStationInputElement;\r\n const tripArrivalStationInputElement = params.tripArrivalStationInputElement;\r\n const onChange = (!!params && params.onChange && typeof params.onChange === 'function') ? params.onChange : null;\r\n\r\n let tripDepartureStations = [];\r\n let tripDepartureStationCoordinates = null;\r\n let tripArrivalStations = [];\r\n let tripArrivalStationCoordinates = null;\r\n\r\n function formatStationOptionLabel(properties) {\r\n let label = '';\r\n\r\n if (properties.street) {\r\n label += properties.street\r\n }\r\n\r\n if (properties.city) {\r\n if (label.length > 0) label += ', '\r\n label += properties.city\r\n }\r\n\r\n if (properties.country) {\r\n if (label.length > 0) label += ', '\r\n label += properties.country\r\n }\r\n\r\n const osmKey = translateOSMKey(properties.osm_key, 'fr');\r\n\r\n if (osmKey) label += ' (' + osmKey + ')';\r\n\r\n return label;\r\n }\r\n\r\n function calculateDistance(departureCoordinates, arrivalCoordinates) {\r\n if (departureCoordinates && arrivalCoordinates) {\r\n let distance = getDistance(\r\n {\r\n latitude: departureCoordinates[0],\r\n longitude: departureCoordinates[1]\r\n },\r\n {\r\n latitude: arrivalCoordinates[0],\r\n longitude: arrivalCoordinates[1]\r\n }\r\n );\r\n\r\n return distance / 1000;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n const tripDepartureStationInput = new SelectSearchResultInput({\r\n element: tripDepartureStationInputElement,\r\n getOptions: function (search, callback, errorCallback) {\r\n searchAddresses(\r\n search,\r\n context,\r\n function (response) {\r\n tripDepartureStations = response.features;\r\n\r\n const options = tripDepartureStations.map(object => {\r\n const option = {\r\n value: object.properties.id,\r\n label: object.properties.name + ', ' + formatStationOptionLabel(object.properties)\r\n };\r\n return option;\r\n });\r\n\r\n callback(options);\r\n },\r\n function () {\r\n errorCallback();\r\n }\r\n );\r\n },\r\n onInput: function (value) {\r\n const filteredStations = (tripDepartureStations.length) ? tripDepartureStations.filter(object => { return object.properties.id === value }) : [];\r\n tripDepartureStationCoordinates = filteredStations.length ? filteredStations[0].geometry.coordinates : null;\r\n\r\n const distance = calculateDistance(tripDepartureStationCoordinates, tripArrivalStationCoordinates);\r\n if (onChange) onChange(distance);\r\n },\r\n onChange: function (value) {\r\n const filteredStations = tripDepartureStations.filter(object => { return object.properties.id === value });\r\n \r\n if (filteredStations.length) {\r\n tripDepartureStationInputElement.value = filteredStations[0].properties.name;\r\n tripDepartureStationCoordinates = filteredStations[0].geometry.coordinates;\r\n const distance = calculateDistance(tripDepartureStationCoordinates, tripArrivalStationCoordinates);\r\n if (onChange) onChange(distance);\r\n }\r\n }\r\n });\r\n\r\n const tripArrivalStationInput = new SelectSearchResultInput({\r\n element: tripArrivalStationInputElement,\r\n getOptions: function (search, callback, errorCallback) {\r\n searchAddresses(\r\n search,\r\n context,\r\n function (response) {\r\n tripArrivalStations = response.features;\r\n\r\n const options = tripArrivalStations.map(object => {\r\n const option = {\r\n value: object.properties.id,\r\n label: object.properties.name + ', ' + formatStationOptionLabel(object.properties)\r\n };\r\n return option;\r\n });\r\n\r\n callback(options);\r\n },\r\n function () {\r\n errorCallback();\r\n }\r\n );\r\n },\r\n onInput: function (value) {\r\n const filteredStations = tripArrivalStations.length ? tripArrivalStations.filter(object => { return object.properties.id === value }) : [];\r\n tripArrivalStationCoordinates = filteredStations.length ? filteredStations[0].geometry.coordinates : null;\r\n\r\n const distance = calculateDistance(tripDepartureStationCoordinates, tripArrivalStationCoordinates);\r\n if (onChange) onChange(distance);\r\n },\r\n onChange: function (value) {\r\n const filteredStations = tripArrivalStations.filter(object => { return object.properties.id === value });\r\n\r\n if (filteredStations.length) {\r\n tripArrivalStationInputElement.value = filteredStations[0].properties.name;\r\n tripArrivalStationCoordinates = filteredStations[0].geometry.coordinates;\r\n const distance = calculateDistance(tripDepartureStationCoordinates, tripArrivalStationCoordinates);\r\n if (onChange) onChange(distance);\r\n }\r\n }\r\n });\r\n}\r\n","'use strict';\r\n\r\nimport { id } from '../utils/id';\r\n\r\nexport function RepeatableFieldset(params) {\r\n\r\n let repeatedFieldsetElements = new Array();\r\n const fieldsetElement = params.fieldsetElement;\r\n const ctaElement = params.ctaElement;\r\n const deleteFieldsetCtaSelector = params.deleteFieldsetCtaSelector;\r\n const deleteFieldsetCtaElement = fieldsetElement.querySelector(deleteFieldsetCtaSelector);\r\n\r\n const onRepeatCallback = (params.onRepeatCallback && typeof params.onRepeatCallback === 'function') ? params.onRepeatCallback : null;\r\n const onDeleteCallback = (params.onDeleteCallback && typeof params.onDeleteCallback === 'function') ? params.onDeleteCallback : null;\r\n\r\n if (!fieldsetElement.hasAttribute('data-repeatable-fieldset')) {\r\n fieldsetElement.setAttribute('data-repeatable-fieldset', '');\r\n }\r\n\r\n if(deleteFieldsetCtaElement) {\r\n deleteFieldsetCtaElement.addEventListener('click', function (event) {\r\n event.preventDefault();\r\n fieldsetElement.style.display = 'none';\r\n fieldsetElement.setAttribute('disabled', true);\r\n\r\n const elements = fieldsetElement.querySelectorAll('input, select, textarea');\r\n\r\n for (let i = 0; i < elements.length; ++i) {\r\n if (typeof elements[i].value !== 'undefined' && elements[i].type !== 'radio' && elements[i].type !== 'checkbox') {\r\n elements[i].value = null;\r\n }\r\n }\r\n\r\n if (onDeleteCallback) {\r\n onDeleteCallback(fieldsetElement);\r\n }\r\n });\r\n }\r\n\r\n function newRepeatedFieldsetElement(fieldsetElement, index, deleteElement) {\r\n const clonedFieldsetElement = fieldsetElement.cloneNode(true);\r\n\r\n if (clonedFieldsetElement.hasAttribute('id')) {\r\n clonedFieldsetElement.removeAttribute('id');\r\n }\r\n\r\n if (clonedFieldsetElement.hasAttribute('data-repeatable-fieldset')) {\r\n clonedFieldsetElement.removeAttribute('data-repeatable-fieldset');\r\n }\r\n\r\n if (clonedFieldsetElement.style.getPropertyValue('display') === 'none') {\r\n clonedFieldsetElement.style.removeProperty('display');\r\n }\r\n\r\n if (clonedFieldsetElement.hasAttribute('disabled')) {\r\n clonedFieldsetElement.removeAttribute('disabled');\r\n }\r\n\r\n const elements = clonedFieldsetElement.querySelectorAll('label, input, select, textarea');\r\n\r\n /* DANGER */\r\n\t\tfunction isInsideRepeaterFieldset(node) {\r\n\t\t\tif (!node.parentNode || node.parentNode == fieldsetElement) return false;\r\n\r\n\t\t\tif (node.parentNode.dataset && (node.parentNode.dataset.repeatableFieldset !== undefined || node.parentNode.dataset.repeatedFieldset !== undefined)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\treturn isInsideRepeaterFieldset(node.parentNode);\r\n\t\t};\r\n\r\n for (let i = 0; i < elements.length; ++i) {\r\n\r\n if(!isInsideRepeaterFieldset(elements[i])) {\r\n if (elements[i].hasAttribute('id')) {\r\n elements[i].id = elements[i].id + '-' + index;\r\n }\r\n\r\n if (elements[i].hasAttribute('for')) {\r\n elements[i].setAttribute('for', elements[i].getAttribute('for') + '-' + index);\r\n }\r\n\r\n if (elements[i].hasAttribute('name')) {\r\n elements[i].setAttribute('name', elements[i].getAttribute('name') + '-' + index);\r\n }\r\n\r\n if (typeof elements[i].value !== 'undefined' && elements[i].type !== 'radio' && elements[i].type !== 'checkbox') {\r\n elements[i].value = null;\r\n }\r\n \r\n if (elements[i].checked) {\r\n elements[i].checked = false;\r\n }\r\n }\r\n }\r\n\r\n clonedFieldsetElement.setAttribute('data-repeated-fieldset', index);\r\n\r\n const deleteClonedFieldsetCtaElement = clonedFieldsetElement.querySelector(deleteFieldsetCtaSelector);\r\n\r\n if(deleteClonedFieldsetCtaElement) {\r\n if(deleteClonedFieldsetCtaElement.style.display == 'none') deleteClonedFieldsetCtaElement.style.display = '';\r\n\r\n deleteClonedFieldsetCtaElement.addEventListener('click', function (event) {\r\n event.preventDefault();\r\n deleteElement(index);\r\n });\r\n }\r\n\r\n const elementsToRemove = clonedFieldsetElement.querySelectorAll('[data-remove-from-repeated-fieldset], .form__error-alert');\r\n \r\n for (let i = 0; i < elementsToRemove.length; ++i) {\r\n elementsToRemove[i].parentNode.removeChild(elementsToRemove[i]);\r\n }\r\n\r\n const elementsWithErrorClassToRemove = clonedFieldsetElement.querySelectorAll('[class*=\"--invalid\"');\r\n for (let i = 0; i < elementsWithErrorClassToRemove.length; ++i) {\r\n const classes = elementsWithErrorClassToRemove[i].className.split(' ');\r\n\r\n for (let j = 0; j < classes.length; ++j) {\r\n if(classes[j].endsWith('--invalid')) {\r\n elementsWithErrorClassToRemove[i].classList.remove(classes[j]);\r\n }\r\n }\r\n }\r\n\r\n return clonedFieldsetElement;\r\n }\r\n\r\n function addRepeatedFieldsetElements(addedFieldsetElements) {\r\n for (let i = 0; i < addedFieldsetElements.length; ++i) {\r\n const addedFieldsetElement = addedFieldsetElements[i];\r\n repeatedFieldsetElements.push(addedFieldsetElement);\r\n\r\n const deleteAddedFieldsetCtaElement = addedFieldsetElement.querySelector(deleteFieldsetCtaSelector);\r\n\r\n if(deleteAddedFieldsetCtaElement) {\r\n deleteAddedFieldsetCtaElement.addEventListener('click', function (event) {\r\n event.preventDefault();\r\n\r\n repeatedFieldsetElements = repeatedFieldsetElements.filter(function (element) {\r\n if (element.dataset.repeatedFieldset == addedFieldsetElement.dataset.repeatedFieldset) {\r\n element.parentNode.removeChild(element);\r\n\r\n if (onDeleteCallback) {\r\n onDeleteCallback(element);\r\n }\r\n } else {\r\n return element;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (ctaElement) {\r\n ctaElement.addEventListener('click', function (event) {\r\n event.preventDefault();\r\n\r\n if (repeatedFieldsetElements.length === 0 && fieldsetElement.style.display === 'none') {\r\n fieldsetElement.style.display = '';\r\n fieldsetElement.removeAttribute('disabled');\r\n\r\n if (onRepeatCallback) {\r\n onRepeatCallback(fieldsetElement);\r\n }\r\n } else {\r\n const repeatedFieldsetElement = newRepeatedFieldsetElement(\r\n fieldsetElement,\r\n id(),\r\n function (index) {\r\n repeatedFieldsetElements = repeatedFieldsetElements.filter(function (element) {\r\n if (element.dataset.repeatedFieldset == index) {\r\n fieldsetElement.parentNode.removeChild(element);\r\n\r\n if (onDeleteCallback) {\r\n onDeleteCallback(element);\r\n }\r\n } else {\r\n return element;\r\n }\r\n });\r\n });\r\n\r\n fieldsetElement.parentNode.insertBefore(repeatedFieldsetElement, repeatedFieldsetElements.length ? repeatedFieldsetElements[repeatedFieldsetElements.length - 1].nextSibling : fieldsetElement.nextSibling);\r\n repeatedFieldsetElements[repeatedFieldsetElements.length] = repeatedFieldsetElement;\r\n\r\n if (onRepeatCallback) {\r\n onRepeatCallback(repeatedFieldsetElement);\r\n }\r\n }\r\n })\r\n }\r\n\r\n return {\r\n addRepeatedFieldsetElements: addRepeatedFieldsetElements\r\n }\r\n}","'use strict';\r\n\r\nimport { Form } from '@lf/mwuikit/src/scripts/objects/form';\r\nimport { DistanceInputs } from '@lf/mwuikit/src/scripts/objects/distanceInputs';\r\nimport { RepeatableFieldset } from '@lf/mwuikit/src/scripts/objects/repeatableFieldset';\r\n\r\n(function () {\r\n const formElement = document.getElementById('carbon-footprint-simulator-form');\r\n\r\n if (formElement) {\r\n const form = Form({ element: formElement });\r\n\r\n const totalFootprintBinding = formElement.querySelector('[data-binding=\"total-footprint\"]');\r\n const totalTreesBinding = formElement.querySelector('[data-binding=\"total-trees\"]');\r\n const transportTotalFootprintBinding = formElement.querySelector('[data-binding=\"transport-footprint\"]');\r\n const habitationTotalFootprintBinding = formElement.querySelector('[data-binding=\"habitation-footprint\"]');\r\n const consumptionTotalFootprintBinding = formElement.querySelector('[data-binding=\"consumption-footprint\"]');\r\n\r\n const carKMSInputElements = formElement.querySelectorAll('input[name^=\"CarKMS\"]');\r\n let carFootprints = [];\r\n let carTotalFootprint = 0;\r\n\r\n let metroTripsFieldsets = new Array();\r\n let metroTripsFootprints = [];\r\n let metroTripsTotalFootprint = 0;\r\n\r\n let busTripsFieldsets = new Array();\r\n let busTripsFootprints = [];\r\n let busTripsTotalFootprint = 0;\r\n\r\n let trainTripsFieldsets = new Array();\r\n let trainTripsFootprints = [];\r\n let trainTripsTotalFootprint = 0;\r\n\r\n let flightTripsFieldsets = new Array();\r\n let flightTripsFootprints = [];\r\n let flightTripsTotalFootprint = 0;\r\n\r\n let transportTotalFootprint = 0;\r\n\r\n const habitationAreaInputElement = formElement.querySelector('input[name=HabitationArea]');\r\n const habitationTotalOfPersonsInputElement = formElement.querySelector('input[name=HabitationTotalOfPersons]');\r\n const habitationEnergyCarbonFactorInputElements = formElement.querySelectorAll('input[type=radio][name=HabitationEnergyCarbonFactor]');\r\n let habitationEnergyCarbonFactor = formElement.querySelectorAll('input[type=radio][name=HabitationEnergyCarbonFactor]:checked')[0].value;\r\n let habitationTotalFootprint = 0;\r\n\r\n const iTHardwareExpenditureInputElement = formElement.querySelector('input[name=ITHardwareExpenditure]');\r\n const furnitureExpenditureInputElement = formElement.querySelector('input[name=FurnitureExpenditure]');\r\n const dietCarbonFootprintSelectElement = formElement.querySelector('select[name=DietCarbonFootprint]');\r\n let iTHardwareExpenditureFootprint = 0;\r\n let furnitureExpenditureFootprint = 0;\r\n let consumptionTotalFootprint = 0;\r\n\r\n const inputEvents = ['change', 'input'];\r\n\r\n function TripFieldset(params) {\r\n const context = params.context;\r\n const fieldsetElement = params.fieldsetElement;\r\n const tripFrequencyInputSelector = params.tripFrequencyInputSelector;\r\n const tripDepartureStationInputSelector = params.tripDepartureStationInputSelector;\r\n const tripArrivalStationInputSelector = params.tripArrivalStationInputSelector;\r\n let carbonFactor = params.carbonFactor;\r\n const carbonFactors = params.carbonFactors;\r\n const onChangeCallback = params.onChangeCallback;\r\n\r\n let tripFrequency = 0;\r\n let roundTripFootprint = 0;\r\n\r\n fieldsetElement.querySelector(tripFrequencyInputSelector).addEventListener('input', function () {\r\n tripFrequency = this.value;\r\n onChangeCallback(roundTripFootprint * tripFrequency);\r\n });\r\n\r\n const distanceInputs = new DistanceInputs({\r\n context: context,\r\n tripDepartureStationInputElement: fieldsetElement.querySelector(tripDepartureStationInputSelector),\r\n tripArrivalStationInputElement: fieldsetElement.querySelector(tripArrivalStationInputSelector),\r\n onChange: function (distance) {\r\n if (typeof carbonFactors === 'object') {\r\n for (const threshold in carbonFactors) {\r\n carbonFactor = parseFloat(carbonFactors[threshold]);\r\n if (distance < parseInt(threshold)) break;\r\n }\r\n }\r\n roundTripFootprint = parseFloat((distance * 2 * parseFloat(carbonFactor)).toFixed(3));\r\n onChangeCallback(roundTripFootprint * tripFrequency);\r\n }\r\n });\r\n\r\n return {\r\n element: fieldsetElement\r\n }\r\n }\r\n\r\n function updateTransportTotalFootprint() {\r\n transportTotalFootprint = carTotalFootprint + metroTripsTotalFootprint + busTripsTotalFootprint + trainTripsTotalFootprint + flightTripsTotalFootprint;\r\n transportTotalFootprintBinding.innerHTML = transportTotalFootprint.toLocaleString('fr-FR');\r\n }\r\n\r\n function updateHabitationTotalFootprint(area, totalOfPersons, energyCarbonFactor) {\r\n habitationTotalFootprint = (area && totalOfPersons && energyCarbonFactor) ? (area * energyCarbonFactor * 204) / totalOfPersons : 0;\r\n habitationTotalFootprintBinding.innerHTML = habitationTotalFootprint.toLocaleString('fr-FR');\r\n }\r\n\r\n function updateConsumptionTotalFootprint(iTHardwareExpenditureFootprint, furnitureExpenditureFootprint, dietFootprint) {\r\n consumptionTotalFootprint = iTHardwareExpenditureFootprint + furnitureExpenditureFootprint + dietFootprint;\r\n consumptionTotalFootprintBinding.innerHTML = consumptionTotalFootprint.toLocaleString('fr-FR');\r\n }\r\n\r\n function updateTotalFootprint() {\r\n const total = transportTotalFootprint + habitationTotalFootprint + consumptionTotalFootprint;\r\n totalFootprintBinding.innerHTML = total.toLocaleString('fr-FR');\r\n if (total > 0) {\r\n const trees = Math.ceil(total / 150);\r\n totalTreesBinding.innerHTML = (trees || 1).toLocaleString('fr-FR');\r\n } else {\r\n totalTreesBinding.innerHTML = 0;\r\n }\r\n }\r\n\r\n for (let i = 0; i < carKMSInputElements.length; i++) {\r\n carFootprints[i] = 0;\r\n\r\n carKMSInputElements[i].addEventListener('input', function () {\r\n if (this.dataset.carbonFactor) {\r\n carFootprints[i] = this.dataset.carbonFactor * this.value;\r\n carTotalFootprint = carFootprints.reduce((a, b) => a + b);\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n });\r\n }\r\n\r\n const metroTripFieldsetElement = document.getElementById('metro-trip-fieldset');\r\n const metroCarbonFactor = metroTripFieldsetElement.dataset.carbonFactor;\r\n const metroTripsRepeatableFieldset = new TripFieldset({\r\n context: 'FRANCE',\r\n fieldsetElement: metroTripFieldsetElement,\r\n tripFrequencyInputSelector: 'input[name^=\"MetroTripFrequency\"]',\r\n tripDepartureStationInputSelector: 'input[name^=\"MetroTripDepartureStation\"]',\r\n tripArrivalStationInputSelector: 'input[name^=\"MetroTripArrivalStation\"]',\r\n carbonFactor: metroCarbonFactor,\r\n onChangeCallback: function (footprint) {\r\n metroTripsFootprints[0] = footprint;\r\n metroTripsTotalFootprint = metroTripsFootprints.reduce((a, b) => a + b);\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n });\r\n\r\n metroTripsFootprints[0] = 0;\r\n metroTripsFieldsets[0] = metroTripsRepeatableFieldset;\r\n\r\n const metroTripRepeatableFieldSet = new RepeatableFieldset({\r\n fieldsetElement: metroTripFieldsetElement,\r\n deleteFieldsetCtaSelector: '.delete-cta',\r\n ctaElement: document.getElementById('repeat-metro-trip-cta'),\r\n onRepeatCallback: function (element) {\r\n const index = metroTripsFieldsets.length;\r\n metroTripsFootprints[index] = 0;\r\n\r\n if (typeof element.dataset.repeatableFieldset !== 'undefined') {\r\n metroTripsFieldsets.push(metroTripsRepeatableFieldset);\r\n } else {\r\n metroTripsFieldsets.push(new TripFieldset({\r\n context: 'FRANCE',\r\n fieldsetElement: element,\r\n tripFrequencyInputSelector: 'input[name^=\"MetroTripFrequency\"]',\r\n tripDepartureStationInputSelector: 'input[name^=\"MetroTripDepartureStation\"]',\r\n tripArrivalStationInputSelector: 'input[name^=\"MetroTripArrivalStation\"]',\r\n carbonFactor: metroCarbonFactor,\r\n onChangeCallback: function (footprint) {\r\n metroTripsFootprints[index] = footprint;\r\n metroTripsTotalFootprint = metroTripsFootprints.reduce((a, b) => a + b);\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n }));\r\n }\r\n },\r\n onDeleteCallback: function (element) {\r\n metroTripsFieldsets = metroTripsFieldsets.filter(function (fieldset, index) {\r\n if (element !== fieldset.element) {\r\n return fieldset;\r\n } else {\r\n metroTripsFootprints.splice(index, 1);\r\n metroTripsTotalFootprint = metroTripsFootprints.length ? metroTripsFootprints.reduce((a, b) => a + b) : 0;\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n })\r\n }\r\n });\r\n\r\n const busTripFieldsetElement = document.getElementById('bus-trip-fieldset');\r\n const busCarbonFactor = busTripFieldsetElement.dataset.carbonFactor;\r\n const busTripsRepeatableFieldset = new TripFieldset({\r\n fieldsetElement: busTripFieldsetElement,\r\n tripFrequencyInputSelector: 'input[name^=\"BusTripFrequency\"]',\r\n tripDepartureStationInputSelector: 'input[name^=\"BusTripDepartureStation\"]',\r\n tripArrivalStationInputSelector: 'input[name^=\"BusTripArrivalStation\"]',\r\n carbonFactor: busCarbonFactor,\r\n onChangeCallback: function (footprint) {\r\n busTripsFootprints[0] = footprint;\r\n busTripsTotalFootprint = busTripsFootprints.reduce((a, b) => a + b);\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n });\r\n\r\n busTripsFootprints[0] = 0;\r\n busTripsFieldsets[0] = busTripsRepeatableFieldset;\r\n\r\n const busTripRepeatableFieldSet = new RepeatableFieldset({\r\n fieldsetElement: busTripFieldsetElement,\r\n deleteFieldsetCtaSelector: '.delete-cta',\r\n ctaElement: document.getElementById('repeat-bus-trip-cta'),\r\n onRepeatCallback: function (element) {\r\n const index = busTripsFieldsets.length;\r\n busTripsFootprints[index] = 0;\r\n\r\n if (typeof element.dataset.repeatableFieldset !== 'undefined') {\r\n busTripsFieldsets.push(busTripsRepeatableFieldset);\r\n } else {\r\n busTripsFieldsets.push(new TripFieldset({\r\n fieldsetElement: element,\r\n tripFrequencyInputSelector: 'input[name^=\"BusTripFrequency\"]',\r\n tripDepartureStationInputSelector: 'input[name^=\"BusTripDepartureStation\"]',\r\n tripArrivalStationInputSelector: 'input[name^=\"BusTripArrivalStation\"]',\r\n carbonFactor: busCarbonFactor,\r\n onChangeCallback: function (footprint) {\r\n busTripsFootprints[index] = footprint;\r\n busTripsTotalFootprint = busTripsFootprints.reduce((a, b) => a + b);\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n }));\r\n }\r\n },\r\n onDeleteCallback: function (element) {\r\n busTripsFieldsets = busTripsFieldsets.filter(function (fieldset, index) {\r\n if (element !== fieldset.element) {\r\n return fieldset;\r\n } else {\r\n busTripsFootprints.splice(index, 1);\r\n busTripsTotalFootprint = busTripsFootprints.length ? busTripsFootprints.reduce((a, b) => a + b) : 0;\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n })\r\n }\r\n });\r\n\r\n const trainTripFieldsetElement = document.getElementById('train-trip-fieldset');\r\n const trainCarbonFactor = trainTripFieldsetElement.dataset.carbonFactor;\r\n const trainTripsRepeatableFieldset = new TripFieldset({\r\n fieldsetElement: trainTripFieldsetElement,\r\n tripFrequencyInputSelector: 'input[name^=\"TrainTripFrequency\"]',\r\n tripDepartureStationInputSelector: 'input[name^=\"TrainTripDepartureStation\"]',\r\n tripArrivalStationInputSelector: 'input[name^=\"TrainTripArrivalStation\"]',\r\n carbonFactor: trainCarbonFactor,\r\n onChangeCallback: function (footprint) {\r\n trainTripsFootprints[0] = footprint;\r\n trainTripsTotalFootprint = trainTripsFootprints.reduce((a, b) => a + b);\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n });\r\n\r\n trainTripsFootprints[0] = 0;\r\n trainTripsFieldsets[0] = trainTripsRepeatableFieldset;\r\n\r\n const trainTripRepeatableFieldSet = new RepeatableFieldset({\r\n fieldsetElement: trainTripFieldsetElement,\r\n deleteFieldsetCtaSelector: '.delete-cta',\r\n ctaElement: document.getElementById('repeat-train-trip-cta'),\r\n onRepeatCallback: function (element) {\r\n const index = trainTripsFieldsets.length;\r\n trainTripsFootprints[index] = 0;\r\n\r\n if (typeof element.dataset.repeatableFieldset !== 'undefined') {\r\n trainTripsFieldsets.push(trainTripsRepeatableFieldset);\r\n } else {\r\n trainTripsFieldsets.push(new TripFieldset({\r\n fieldsetElement: element,\r\n tripFrequencyInputSelector: 'input[name^=\"TrainTripFrequency\"]',\r\n tripDepartureStationInputSelector: 'input[name^=\"TrainTripDepartureStation\"]',\r\n tripArrivalStationInputSelector: 'input[name^=\"TrainTripArrivalStation\"]',\r\n carbonFactor: trainCarbonFactor,\r\n onChangeCallback: function (footprint) {\r\n trainTripsFootprints[index] = footprint;\r\n trainTripsTotalFootprint = trainTripsFootprints.reduce((a, b) => a + b);\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n }));\r\n }\r\n },\r\n onDeleteCallback: function (element) {\r\n trainTripsFieldsets = trainTripsFieldsets.filter(function (fieldset, index) {\r\n if (element !== fieldset.element) {\r\n return fieldset;\r\n } else {\r\n trainTripsFootprints.splice(index, 1);\r\n trainTripsTotalFootprint = trainTripsFootprints.length ? trainTripsFootprints.reduce((a, b) => a + b) : 0;\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n })\r\n }\r\n });\r\n\r\n const flightTripFieldsetElement = document.getElementById('flight-trip-fieldset');\r\n const flightCarbonFactors = JSON.parse(flightTripFieldsetElement.dataset.carbonFactor);\r\n const flightTripsRepeatableFieldset = new TripFieldset({\r\n fieldsetElement: flightTripFieldsetElement,\r\n tripFrequencyInputSelector: 'input[name^=\"FlightTripFrequency\"]',\r\n tripDepartureStationInputSelector: 'input[name^=\"FlightTripDepartureStation\"]',\r\n tripArrivalStationInputSelector: 'input[name^=\"FlightTripArrivalStation\"]',\r\n carbonFactors: flightCarbonFactors,\r\n onChangeCallback: function (footprint) {\r\n flightTripsFootprints[0] = footprint;\r\n flightTripsTotalFootprint = flightTripsFootprints.reduce((a, b) => a + b);\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n });\r\n\r\n flightTripsFootprints[0] = 0;\r\n flightTripsFieldsets[0] = flightTripsRepeatableFieldset;\r\n\r\n const flightTripRepeatableFieldSet = new RepeatableFieldset({\r\n fieldsetElement: flightTripFieldsetElement,\r\n deleteFieldsetCtaSelector: '.delete-cta',\r\n ctaElement: document.getElementById('repeat-flight-trip-cta'),\r\n onRepeatCallback: function (element) {\r\n const index = flightTripsFieldsets.length;\r\n flightTripsFootprints[index] = 0;\r\n\r\n if (typeof element.dataset.repeatableFieldset !== 'undefined') {\r\n flightTripsFieldsets.push(flightTripsRepeatableFieldset);\r\n } else {\r\n flightTripsFieldsets.push(new TripFieldset({\r\n fieldsetElement: element,\r\n tripFrequencyInputSelector: 'input[name^=\"FlightTripFrequency\"]',\r\n tripDepartureStationInputSelector: 'input[name^=\"FlightTripDepartureStation\"]',\r\n tripArrivalStationInputSelector: 'input[name^=\"FlightTripArrivalStation\"]',\r\n carbonFactors: flightCarbonFactors,\r\n onChangeCallback: function (footprint) {\r\n flightTripsFootprints[index] = footprint;\r\n flightTripsTotalFootprint = flightTripsFootprints.reduce((a, b) => a + b);\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n }));\r\n }\r\n },\r\n onDeleteCallback: function (element) {\r\n flightTripsFieldsets = flightTripsFieldsets.filter(function (fieldset, index) {\r\n if (element !== fieldset.element) {\r\n return fieldset;\r\n } else {\r\n flightTripsFootprints.splice(index, 1);\r\n flightTripsTotalFootprint = flightTripsFootprints.length ? flightTripsFootprints.reduce((a, b) => a + b) : 0;\r\n updateTransportTotalFootprint();\r\n updateTotalFootprint();\r\n }\r\n })\r\n }\r\n });\r\n\r\n for (let i = 0; i < habitationEnergyCarbonFactorInputElements.length; i++) {\r\n habitationEnergyCarbonFactorInputElements[i].addEventListener('change', function () {\r\n if (this.checked) {\r\n habitationEnergyCarbonFactor = parseFloat(this.value);\r\n updateHabitationTotalFootprint(habitationAreaInputElement.value, habitationTotalOfPersonsInputElement.value, habitationEnergyCarbonFactor);\r\n updateTotalFootprint();\r\n }\r\n });\r\n }\r\n\r\n for (let i = 0; i < inputEvents.length; i++) {\r\n habitationAreaInputElement.addEventListener(inputEvents[i], function () {\r\n if (this.value < 0) this.value = 0;\r\n updateHabitationTotalFootprint(this.value, habitationTotalOfPersonsInputElement.value, habitationEnergyCarbonFactor);\r\n updateTotalFootprint();\r\n });\r\n }\r\n\r\n for (let i = 0; i < inputEvents.length; i++) {\r\n habitationTotalOfPersonsInputElement.addEventListener(inputEvents[i], function () {\r\n if (this.value < 0) this.value = 0;\r\n updateHabitationTotalFootprint(habitationAreaInputElement.value, this.value, habitationEnergyCarbonFactor);\r\n updateTotalFootprint();\r\n });\r\n }\r\n\r\n dietCarbonFootprintSelectElement.addEventListener('change', function () {\r\n updateConsumptionTotalFootprint(iTHardwareExpenditureFootprint, furnitureExpenditureFootprint, parseFloat(this.value))\r\n updateTotalFootprint();\r\n });\r\n\r\n for (let i = 0; i < inputEvents.length; i++) {\r\n iTHardwareExpenditureInputElement.addEventListener(inputEvents[i], function () {\r\n if (this.dataset.carbonFactor) {\r\n iTHardwareExpenditureFootprint = this.dataset.carbonFactor * this.value;\r\n }\r\n updateConsumptionTotalFootprint(iTHardwareExpenditureFootprint, furnitureExpenditureFootprint, parseFloat(dietCarbonFootprintSelectElement.value));\r\n updateTotalFootprint();\r\n });\r\n }\r\n\r\n for (let i = 0; i < inputEvents.length; i++) {\r\n furnitureExpenditureInputElement.addEventListener(inputEvents[i], function () {\r\n if (this.dataset.carbonFactor) {\r\n furnitureExpenditureFootprint = this.dataset.carbonFactor * this.value;\r\n }\r\n updateConsumptionTotalFootprint(iTHardwareExpenditureFootprint, furnitureExpenditureFootprint, parseFloat(dietCarbonFootprintSelectElement.value));\r\n updateTotalFootprint();\r\n });\r\n }\r\n }\r\n}());\r\n"],"names":["Element","prototype","matches","msMatchesSelector","webkitMatchesSelector","closest","s","el","this","parentElement","parentNode","nodeType","Math","trunc","x","isNaN","NaN","floor","ceil","HOOKS","defaults","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","indexOf","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","warn","getWeek","givenDate","date","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","round","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","undefined","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","length","slice","bool","debounce","fn","wait","t","_this","args","arguments","clearTimeout","setTimeout","apply","arrayify","obj","Array","toggleClass","elem","className","classList","add","remove","createElement","tag","content","e","document","textContent","clearNode","node","firstChild","removeChild","findParent","condition","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","type","pattern","key","setAttribute","appendChild","getEventTarget","event","composedPath","target","error","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","getHours","parseFloat","H","J","day","K","RegExp","test","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","d","h","i","minutes","setMinutes","j","l","m","month","n","u","unixMillSeconds","w","y","tokenRegex","formats","toISOString","options","getMonth","getSeconds","getMinutes","String","substring","createDateFormatter","_a","_b","config","_c","l10n","_d","isMobile","frmt","overrideLocale","formatDate","split","map","c","arr","join","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","trim","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","val","forEach","Error","compareDates","date1","date2","calculateSecondsSinceMidnight","hours","duration","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","min","__assign","Object","assign","p","hasOwnProperty","call","__spreadArrays","il","r","k","a","jl","FlatpickrInstance","element","instanceConfig","self","flatpickr","defaultConfig","getClosestActiveElement","calendarContainer","getRootNode","activeElement","bindToInstance","bind","setCalendarWidth","requestAnimationFrame","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","selectedDates","defaultDate","getMilliseconds","latestSelectedDateObj","preventDefault","isKeyDown","eventTarget","input","getAttribute","max","step","curValue","value","delta","which","newValue","isHourElem","hourElement","isMinuteElem","minuteElement","incrementNumInput","abs","timeWrapper","prevValue","_input","setHoursFromInputs","updateValue","_debouncedChange","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","minBound","maxBound","currentTime","result","secondsSinceMidnight","parseSeconds","setHoursFromDate","onYearInput","toString","changeYear","handler","ev","addEventListener","_handlers","push","removeEventListener","triggerChange","triggerEvent","jumpToDate","jumpDate","jumpTo","oldYear","currentYear","oldMonth","currentMonth","message","buildMonthSwitch","redraw","timeIncrement","contains","inputElem","createEvent","dispatchEvent","createDay","_dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","tabIndex","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","onMouseOver","getFirstAvailableDay","startMonth","endMonth","children","startIndex","endIndex","focusOnDay","current","offset","dayFocused","isInView","body","startElem","givenMonth","loopDelta","numMonthDays","changeMonth","getNextAvailableDay","buildMonthDays","firstOfMonth","prevMonthDays","utils","getDaysInMonth","createDocumentFragment","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","buildDays","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","monthElement","container","monthNavFragment","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","documentClick","isOpen","eventTarget_1","isCalendarElement","lostFocus","path","relatedTarget","isIgnored","some","timeContainer","close","clear","newYear","newYearNum","isNewYear","dateToCheck","enable","array","parsed","from","to","onBlur","isInput","valueChanged","trimEnd","getDateStr","allowKeydown","allowInlineKeydown","keyCode","blur","open","isTimeObj","focusAndClose","selectDate","delta_1","ctrlKey","stopPropagation","currentYearElement","elems","concat","pluginElements","filter","shiftKey","charAt","toLowerCase","cellClass","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","rContainer","querySelectorAll","dayElem","ts","ts1","ts2","timestamp","outOfRange","onResize","positionCalendar","minMaxDateSetter","inverseDateObj","removeAttribute","getInputElem","querySelector","setupLocale","l10ns","default","JSON","parse","stringify","dataset","customPositionElement","_positionElement","calendarHeight","reduce","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","bottom","showOnTop","top","pageYOffset","left","pageXOffset","isCenter","isRight","right","rightMost","centerMost","doc","editableSheet","styleSheets","sheet","cssRules","head","getDocumentStyleSheet","bodyWidth","centerLeft","centerIndex","centerStyle","insertRule","centerBefore","msMaxTouchPoints","selectedDate","shouldChangeMonth","selectedIndex","sort","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_createElement","destroy","lastChild","insertBefore","_type","click","wasOpen","select","set","option","CALLBACKS","setSelectedDate","toggle","updatePositionElement","inputDate","dates","parseDateRules","rule","data","hooks","name","initEvent","specificFormat","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","boolOpts","userConfig","defineProperty","get","_enable","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","parseConfig","nodeName","placeholder","required","nextSibling","setupInputs","preloadedDate","setupDates","yr","fragment","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","buildWeeks","separator","hourInput","minuteInput","military2ampm","secondInput","title","buildTime","customAppend","appendTo","build","evt","inputType","defaultValue","setupMobile","debouncedResize","ontouchstart","capture","selText","bindEvents","isSafari","init","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","_i","TypeError","_loop_1","source","keys","args_1","exports","fp","French","fr","factory","_getLatitude","_interopRequireDefault","_getLongitude","_toRad","_toDeg","_constants","__esModule","_default","start","distance","bearing","radius","lat","lng","theta","phi1","lambda1","phi2","asin","sin","cos","lambda2","atan2","longitude","MINLON","MAXLON","PI","latitude","areaConversion","timeConversion","distanceConversion","altitudeKeys","latitudeKeys","longitudeKeys","MAXLAT","MINLAT","earthRadius","sexagesimalPattern","km","cm","mm","mi","sm","ft","in","yd","m2","km2","ha","ft2","yd2","in2","sqm","sqkm","sqft","sqyd","sqin","squareMeters","targetUnit","factor","meters","metersPerSecond","_slicedToArray","isArray","_arrayWithHoles","Symbol","iterator","_arr","_n","_e","_s","next","done","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","constructor","_unsupportedIterableToArray","_nonIterableRest","len","arr2","decimal","_decimal$toString$spl2","pre","post","deg","Number","min0","sec0","sec","decimals","pow","imprecise","_sec$split2","secPreDec","_sec$split2$","secDec","padStart","padEnd","_orderByDistance","point","coords","points","area","lowerIndex","middleIndex","upperIndex","p1lon","p2lat","p3lon","stats","maxLat","minLat","maxLng","minLng","Infinity","minLon","maxLon","radLat","radLon","radDist","MAX_LAT_RAD","MIN_LAT_RAD","MAX_LON_RAD","MIN_LON_RAD","deltaLon","numberOfPoints","sum","pointLat","pointLon","X","sqrt","_getBounds","bounds","_getRhumbLineBearing","origin","dest","bearingFn","keysToLookup","foundKey","_getCoordinateKey","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_defineProperty","configurable","writable","altitude","getOwnPropertyDescriptors","defineProperties","_objectSpread","_robustAcos","accuracy","fromLat","fromLon","toLat","toLon","acos","_getDistance","lineStart","lineEnd","d1","d2","d3","alpha","beta","destLat","detLon","originLat","originLon","_toDecimal","raw","latKey","_typeof","distanceFn","last","end","cosSigma","sigma","sinAlpha","cosSqAlpha","cos2SigmaM","sinSigma","lambdaP","startLat","startLon","endLat","endLon","ellipsoidParams","L","U1","atan","tan","U2","sinU1","cosU1","sinU2","cosU2","lambda","iterLimit","sinLambda","cosLambda","C","uSq","B","diffLon","diffPhi","log","exact","time","_exportNames","computeDestinationPoint","convertArea","convertDistance","convertSpeed","decimalToSexagesimal","findNearest","getAreaOfPolygon","getBounds","getBoundsOfDistance","getCenter","getCenterOfBounds","getCompassDirection","getCoordinateKey","getCoordinateKeys","getDistance","getDistanceFromLine","getGreatCircleBearing","getLatitude","getLongitude","getPathLength","getPreciseDistance","getRhumbLineBearing","getRoughCompassDirection","getSpeed","isDecimal","isPointInLine","isPointInPolygon","isPointNearLine","isPointWithinRadius","isSexagesimal","isValidCoordinate","isValidLatitude","isValidLongitude","orderByDistance","sexagesimalToDecimal","toDecimal","toRad","toDeg","wktToPolygon","_computeDestinationPoint","_convertArea","_convertDistance","_convertSpeed","_decimalToSexagesimal","_findNearest","_getAreaOfPolygon","_getBoundsOfDistance","_getCenter","_getCenterOfBounds","_getCompassDirection","_getCoordinateKeys","_getDistanceFromLine","_getGreatCircleBearing","_getPathLength","_getPreciseDistance","_getRoughCompassDirection","_getSpeed","_isDecimal","_isPointInLine","_isPointInPolygon","_isPointNearLine","_isPointWithinRadius","_isSexagesimal","_isValidCoordinate","_isValidLatitude","_isValidLongitude","_sexagesimalToDecimal","_wktToPolygon","checkedValue","polygon","isInside","totalPolys","center","_getCoordinateKeys2","lon","sexagesimal","includes","v","index","wkt","startsWith","coordText","_coordText$split2","moment","monthsStrictRegex","monthsShortStrictRegex","monthsRegex","monthsParse","defineLocale","monthsShort","monthsShortRegex","longMonthsParse","shortMonthsParse","weekdaysShort","weekdaysMin","weekdaysParseExact","longDateFormat","LT","LTS","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","ss","hh","dd","ww","MM","yy","dayOfMonthOrdinalParse","period","week","dow","doy","webpackContext","req","id","webpackContextResolve","__webpack_require__","code","resolve","module","hookCallback","setHookCallback","callback","isObject","hasOwnProp","isObjectEmpty","getOwnPropertyNames","isUndefined","isNumber","isDate","res","arrLen","extend","valueOf","createUTC","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","flags","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","_isValid","createInvalid","fun","momentProperties","updateInProgress","copyConfig","prop","momentPropertiesLen","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","argLen","stack","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","mom","output","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","func","localeData","removeFormattingTokens","replace","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","lastIndex","defaultLongDateFormat","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","weekday","E","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","ms","milliseconds","millisecond","minute","Q","quarters","quarter","second","gg","weekyears","weekyear","GG","isoweekyears","isoweekyear","weeks","isoweeks","isoweek","years","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","isoWeekday","dayOfYear","weekYear","isoWeekYear","isoWeek","getPrioritizedUnits","unitsObj","unit","priority","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","isLeapYear","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","parseTwoDigitYear","getSetYear","makeGetSet","getIsLeapYear","keepTime","set$1","isUTC","getUTCMilliseconds","getUTCSeconds","getUTCMinutes","getUTCHours","getUTCDate","getUTCDay","getUTCMonth","getUTCFullYear","setUTCMilliseconds","setMilliseconds","setUTCSeconds","setUTCMinutes","setUTCHours","setUTCDate","setUTCFullYear","stringGet","stringSet","prioritized","prioritizedLen","mod","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setUTCMonth","getSetMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","createDate","createUTCDate","UTC","firstWeekOffset","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","meridiemParse","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","names","loadLocale","isLocaleNameSane","oldLocale","_abbr","getSetGlobalLocale","values","getLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","temp","weekdayOverflow","curWeek","createLocal","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","createFromConfig","prepareConfig","preparse","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","_milliseconds","_days","_data","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","tmp","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","property","objectTest","propertyTest","properties","propertyLen","arrayTest","dataTypeTest","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","keepOffset","toDate","inspect","prefix","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","isCallable","tryToString","$TypeError","argument","$String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","fromIndex","O","uncurryThis","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","create","every","find","findIndex","filterReject","fails","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","foo","Boolean","DESCRIPTORS","SILENT_ON_NON_WRITABLE_LENGTH_SET","isConstructor","$Array","originalArray","arraySpeciesConstructor","stringSlice","it","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tryGet","callee","hasOwn","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","f","createPropertyDescriptor","bitmap","makeBuiltIn","defineGlobalProperty","simple","global","unsafe","nonConfigurable","nonWritable","globalThis","P","EXISTS","process","Deno","versions","v8","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","aCallable","NATIVE_BIND","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","namespace","method","isNullOrUndefined","V","check","g","classof","propertyIsEnumerable","store","functionToString","inspectSource","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","metadata","facade","STATE","enforce","getterFor","documentAll","all","getBuiltIn","noop","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","replacement","feature","detection","normalize","POLYFILL","NATIVE","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","arity","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","propertyIsEnumerableModule","internalObjectKeys","enumBugKeys","$propertyIsEnumerable","NASHORN_BUG","pref","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","uid","IS_PURE","SHARED","copyright","license","toIntegerOrInfinity","requireObjectCoercible","$RangeError","RangeError","count","str","symbol","integer","isSymbol","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$","$filter","arrayMethodHasSpeciesSupport","setArrayLength","doesNotExceedSafeInteger","createProperty","deletePropertyOrThrow","HAS_SPECIES_SUPPORT","deleteCount","insertCount","actualDeleteCount","A","actualStart","argumentsLength","thisNumberValue","$repeat","repeat","nativeToFixed","multiply","c2","divide","dataToString","fractionDigits","z","fractDigits","x2","nativeKeys","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","definition","nmd","paths","_newArrowCheck","ConditionallyDisplayedElement","displayIf","triggerSupportAttributeName","triggerSupportElement","observerConfig","attributes","childList","characterData","MutationObserver","mutations","attributeName","observe","KEYCODE","Dropdown","params","dropdownElement","ctaElement","listboxElement","inputElement","dropdownId","selectOptions","selectedOptionId","ctaPlaceholderLabel","dropdownInvalidModifier","hiddenListboxModifier","focusedListItemModifier","activeCtaModifier","withSpinnerCtaModifier","emptyOptionsListCtaModifier","isDropdownActive","selectElement","cloneNode","dropdownClass","labelId","selectedOptionElement","innerText","selectPlaceholderOptionElement","selectOptionElements","selectOptionElement","itemElement","append","hasAttribute","validity","valid","nextElementSibling","resetSelection","showListbox","hideListbox","unSelectOption","selectOption","getElementById","scrollHeight","clientHeight","listboxScrollBottom","scrollTop","elementBottom","offsetTop","keyDownInteractions","previousOptionElement","previousElementSibling","selectPreviousOption","nextOptionElement","selectNextOption","onEnter","updateOptions","hasChildNodes","label","showSpinner","hideSpinner","getSelectedOptionValue","isAdultPerson","dateOfBirthStr","today","dateOfBirth","age","additionalMonths","Form","formElement","useDefaultSubmit","submitCTAElements","loadingCtaModifier","dropdowns","ConstrainedNumberInputs","inputElements","todayFullYear","defaultMaxDate","initDateInputs","initConstrainedNumberInputs","nextFilesListElement","nextElement","files","fileSizeLimit","size","initFilesInputs","dropdownElements","initDropdowns","reCaptchaKeyInput","reCaptchaTokenInputElement","reCaptchaKey","onSuccess","onFailed","submit","showSubmitCTASpinner","errorAlertElement","grecaptcha","ready","execute","action","then","catch","submitCTAElement","loaderElement","initConditionalElements","conditionallyDisplayedElements","updateDropdownOptions","dropdown","showDropdownSpinner","hideDropdownSpinner","hideSubmitCTASpinner","searchAddresses","expression","country","route","xmlhttp","XMLHttpRequest","onreadystatechange","readyState","status","response","responseText","setRequestHeader","send","translations","SelectSearchResultInput","searchInput","getOptions","onInput","typingTimeout","search","spinnerParentElement","spinnerParent","spinnerElement","dropdownCTAElement","dropdownListBoxElement","removeSuggestions","removeOptionElements","placeholderOption","firstOption","optionElement","DistanceInputs","context","tripDepartureStationInputElement","tripArrivalStationInputElement","tripDepartureStations","tripDepartureStationCoordinates","tripArrivalStations","tripArrivalStationCoordinates","formatStationOptionLabel","street","city","osmKey","osm_key","calculateDistance","departureCoordinates","arrivalCoordinates","errorCallback","features","filteredStations","geometry","coordinates","RepeatableFieldset","repeatedFieldsetElements","fieldsetElement","deleteFieldsetCtaSelector","deleteFieldsetCtaElement","onRepeatCallback","onDeleteCallback","elements","repeatedFieldsetElement","deleteElement","clonedFieldsetElement","getPropertyValue","isInsideRepeaterFieldset","repeatableFieldset","repeatedFieldset","checked","deleteClonedFieldsetCtaElement","elementsToRemove","elementsWithErrorClassToRemove","classes","endsWith","newRepeatedFieldsetElement","addRepeatedFieldsetElements","addedFieldsetElements","addedFieldsetElement","deleteAddedFieldsetCtaElement","TripFieldset","tripFrequencyInputSelector","tripDepartureStationInputSelector","tripArrivalStationInputSelector","carbonFactor","carbonFactors","onChangeCallback","tripFrequency","roundTripFootprint","updateTransportTotalFootprint","transportTotalFootprint","carTotalFootprint","metroTripsTotalFootprint","busTripsTotalFootprint","trainTripsTotalFootprint","flightTripsTotalFootprint","transportTotalFootprintBinding","toLocaleString","updateHabitationTotalFootprint","totalOfPersons","energyCarbonFactor","habitationTotalFootprint","habitationTotalFootprintBinding","updateConsumptionTotalFootprint","iTHardwareExpenditureFootprint","furnitureExpenditureFootprint","dietFootprint","consumptionTotalFootprint","consumptionTotalFootprintBinding","updateTotalFootprint","totalFootprintBinding","trees","totalTreesBinding","carKMSInputElements","carFootprints","metroTripsFieldsets","metroTripsFootprints","busTripsFieldsets","busTripsFootprints","trainTripsFieldsets","trainTripsFootprints","flightTripsFieldsets","flightTripsFootprints","habitationAreaInputElement","habitationTotalOfPersonsInputElement","habitationEnergyCarbonFactorInputElements","habitationEnergyCarbonFactor","iTHardwareExpenditureInputElement","furnitureExpenditureInputElement","dietCarbonFootprintSelectElement","inputEvents","_loop","_this13","metroTripFieldsetElement","metroCarbonFactor","metroTripsRepeatableFieldset","footprint","_this2","fieldset","_this3","busTripFieldsetElement","busCarbonFactor","busTripsRepeatableFieldset","_this4","_this5","_this6","trainTripFieldsetElement","trainCarbonFactor","trainTripsRepeatableFieldset","_this7","_this8","_this9","flightTripFieldsetElement","flightCarbonFactors","flightTripsRepeatableFieldset","_this10","_this11","_this12"],"sourceRoot":""}