{"version":3,"file":"scripts/initSCPISimulatorForm.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/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/a-possible-prototype.js","webpack://moniwan/./node_modules/core-js/internals/add-to-unscopables.js","webpack://moniwan/./node_modules/core-js/internals/an-object.js","webpack://moniwan/./node_modules/core-js/internals/array-from.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-method-is-strict.js","webpack://moniwan/./node_modules/core-js/internals/array-slice.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/call-with-safe-iteration-closing.js","webpack://moniwan/./node_modules/core-js/internals/check-correctness-of-iteration.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/correct-prototype-getter.js","webpack://moniwan/./node_modules/core-js/internals/create-iter-result-object.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-accessor.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/descriptors.js","webpack://moniwan/./node_modules/core-js/internals/document-create-element.js","webpack://moniwan/./node_modules/core-js/internals/dom-iterables.js","webpack://moniwan/./node_modules/core-js/internals/dom-token-list-prototype.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-apply.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-accessor.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-iterator-method.js","webpack://moniwan/./node_modules/core-js/internals/get-iterator.js","webpack://moniwan/./node_modules/core-js/internals/get-json-replacer-function.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/html.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-iterator-method.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-possible-prototype.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/iterator-close.js","webpack://moniwan/./node_modules/core-js/internals/iterator-create-constructor.js","webpack://moniwan/./node_modules/core-js/internals/iterator-define.js","webpack://moniwan/./node_modules/core-js/internals/iterators-core.js","webpack://moniwan/./node_modules/core-js/internals/iterators.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-create.js","webpack://moniwan/./node_modules/core-js/internals/object-define-properties.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-external.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-get-prototype-of.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-set-prototype-of.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/path.js","webpack://moniwan/./node_modules/core-js/internals/regexp-exec.js","webpack://moniwan/./node_modules/core-js/internals/regexp-flags.js","webpack://moniwan/./node_modules/core-js/internals/regexp-get-flags.js","webpack://moniwan/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://moniwan/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://moniwan/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://moniwan/./node_modules/core-js/internals/require-object-coercible.js","webpack://moniwan/./node_modules/core-js/internals/set-to-string-tag.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-multibyte.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/symbol-define-to-primitive.js","webpack://moniwan/./node_modules/core-js/internals/symbol-registry-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-define.js","webpack://moniwan/./node_modules/core-js/internals/well-known-symbol-wrapped.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.from.js","webpack://moniwan/./node_modules/core-js/modules/es.array.index-of.js","webpack://moniwan/./node_modules/core-js/modules/es.array.iterator.js","webpack://moniwan/./node_modules/core-js/modules/es.array.join.js","webpack://moniwan/./node_modules/core-js/modules/es.array.map.js","webpack://moniwan/./node_modules/core-js/modules/es.array.slice.js","webpack://moniwan/./node_modules/core-js/modules/es.function.name.js","webpack://moniwan/./node_modules/core-js/modules/es.json.stringify.js","webpack://moniwan/./node_modules/core-js/modules/es.math.trunc.js","webpack://moniwan/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://moniwan/./node_modules/core-js/modules/es.object.get-own-property-symbols.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/./node_modules/core-js/modules/es.regexp.exec.js","webpack://moniwan/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://moniwan/./node_modules/core-js/modules/es.string.iterator.js","webpack://moniwan/./node_modules/core-js/modules/es.symbol.constructor.js","webpack://moniwan/./node_modules/core-js/modules/es.symbol.description.js","webpack://moniwan/./node_modules/core-js/modules/es.symbol.for.js","webpack://moniwan/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://moniwan/./node_modules/core-js/modules/es.symbol.js","webpack://moniwan/./node_modules/core-js/modules/es.symbol.key-for.js","webpack://moniwan/./node_modules/core-js/modules/web.dom-collections.iterator.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/typeof.js","webpack://moniwan/./node_modules/@babel/runtime/helpers/esm/newArrowCheck.js","webpack://moniwan/./Assets/scripts/api/getMonabanqRates.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/objects/modal.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/utils/offset.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/objects/tooltip.js","webpack://moniwan/./node_modules/@lf/mwuikit/src/scripts/utils/cookie.js","webpack://moniwan/./Assets/scripts/utils/scpiSimulatorCalculations.js","webpack://moniwan/./Assets/scripts/objects/tagCommander.js","webpack://moniwan/./Assets/scripts/special/forms/initSCPISimulatorForm.js","webpack://moniwan/./Assets/scripts/utils/convertedFormValuesToJSON.js","webpack://moniwan/./Assets/scripts/api/simulateSCPIInvestmentResults.js","webpack://moniwan/./Assets/scripts/api/getScpiSubscriptionAlert.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","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 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 isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\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 bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n result = IS_CONSTRUCTOR ? new this() : [];\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\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 fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\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 anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\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 fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\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 makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\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 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';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\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 NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\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 uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\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 classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\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 getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\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 wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\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';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\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 call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\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';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\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';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\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 hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\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';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\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 globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis;\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\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 defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\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 uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\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 call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\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 path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\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 from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject !== Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar trunc = require('../internals/math-trunc');\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: trunc\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 NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\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","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = globalThis.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = globalThis.RangeError;\nvar TypeError = globalThis.TypeError;\nvar QObject = globalThis.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null)));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n var $this = this === undefined ? globalThis : this;\n if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor($this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty($this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = globalThis.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n // eslint-disable-next-line sonarjs/inconsistent-function-call -- ok\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\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 _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 };","function _newArrowCheck(n, r) {\n if (n !== r) throw new TypeError(\"Cannot instantiate an arrow function\");\n}\nexport { _newArrowCheck as default };","'use strict';\r\n\r\nexport function getMonabanqRates(loanAmount, onSuccess, onFailed) {\r\n const route = API_ENDPOINT + 'monabanqrate';\r\n const params = '?amount=' + loanAmount;\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 + params, true);\r\n xmlhttp.setRequestHeader('Content-Type', 'application/json');\r\n xmlhttp.send(null);\r\n}\r\n","'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 Modal(params) {\r\n\r\n const element = (function () {\r\n let element = null;\r\n\r\n if (document.getElementsByClassName('modal').length > 0) {\r\n element = document.getElementsByClassName('modal')[0];\r\n const wrapper = element.getElementsByClassName('modal__wrapper')[0];\r\n\r\n if (!!wrapper) {\r\n if (!!params && params.isLarger && !wrapper.classList.contains('modal__wrapper--larger')) {\r\n wrapper.classList.add('modal__wrapper--larger');\r\n } else if (wrapper.classList.contains('modal__wrapper--larger')) {\r\n wrapper.classList.remove('modal__wrapper--larger');\r\n }\r\n\r\n if (!!params && params.isAlignCenter && !element.classList.contains('modal--vertically-centered')) {\r\n element.classList.add('modal--vertically-centered');\r\n } else if (element.classList.contains('modal--vertically-centered')) {\r\n element.classList.remove('modal--vertically-centered');\r\n }\r\n }\r\n } else {\r\n element = document.createElement('div');\r\n element.classList.add('modal');\r\n\r\n if (!!params && params.isAlignCenter) element.classList.add('modal--vertically-centered');\r\n const wrapperModifier = !!params && params.isLarger ? ' modal__wrapper--larger' : '';\r\n const closeSymbol = typeof CLOSEMODALSYMBOL !== 'undefined' ? CLOSEMODALSYMBOL : '✖';\r\n\r\n element.innerHTML = '
\\\r\n \\\r\n
\\\r\n
';\r\n }\r\n\r\n return element;\r\n })();\r\n\r\n function updateStyles(params) {\r\n const wrapper = element.getElementsByClassName('modal__wrapper')[0];\r\n\r\n if (!!params && params.isLarger && !wrapper.classList.contains('modal__wrapper--larger')) {\r\n wrapper.classList.add('modal__wrapper--larger');\r\n } else if ((!params || !params.isLarger) && wrapper.classList.contains('modal__wrapper--larger')) {\r\n wrapper.classList.remove('modal__wrapper--larger');\r\n }\r\n\r\n if (!!params && params.isAlignCenter && !element.classList.contains('modal--vertically-centered')) {\r\n element.classList.add('modal--vertically-centered');\r\n } else if ((!params || !params.isAlignCenter) && element.classList.contains('modal--vertically-centered')) {\r\n element.classList.remove('modal--vertically-centered');\r\n }\r\n }\r\n\r\n function init() {\r\n const _this = this;\r\n document.body.appendChild(_this.element);\r\n _this.element.style.display = 'none';\r\n\r\n const modalCloseCTAElements = _this.element.querySelectorAll('.modal__close-cta');\r\n for (let i = 0; i < modalCloseCTAElements.length; ++i) {\r\n modalCloseCTAElements[i].addEventListener('click', function (event) {\r\n event.preventDefault();\r\n _this.hide();\r\n });\r\n }\r\n\r\n element.addEventListener('click', function (event) {\r\n if (event.target === _this.element) {\r\n _this.hide();\r\n }\r\n });\r\n }\r\n\r\n function clearContent(wrapperElement) {\r\n if (wrapperElement.hasChildNodes()) {\r\n while (wrapperElement.firstChild) {\r\n wrapperElement.removeChild(wrapperElement.firstChild);\r\n }\r\n }\r\n }\r\n\r\n function show(content, callback) {\r\n const _this = this;\r\n\r\n const modalContentWrapperElement = _this.element.querySelector('.modal__content');\r\n clearContent(modalContentWrapperElement); // TODO: avoid clearContent here\r\n\r\n const contentWrapperElement = document.createElement('div');\r\n contentWrapperElement.classList.add('post');\r\n contentWrapperElement.innerHTML = content;\r\n modalContentWrapperElement.appendChild(contentWrapperElement);\r\n\r\n if (callback && typeof callback === 'function') callback();\r\n\r\n const modalCloseCTAElements = _this.element.querySelectorAll('.modal__close-cta');\r\n for (let i = 0; i < modalCloseCTAElements.length; ++i) {\r\n modalCloseCTAElements[i].setAttribute('tabindex', '1');\r\n }\r\n\r\n _this.element.removeAttribute('style');\r\n _this.element.classList.add('modal--visible');\r\n\r\n window.setTimeout(function () {\r\n document.body.style.overflow = 'hidden';\r\n }, 500);\r\n }\r\n\r\n function hide() {\r\n const _this = this;\r\n\r\n _this.element.classList.remove('modal--visible');\r\n\r\n window.setTimeout(function () {\r\n _this.element.style.display = 'none';\r\n document.body.style.removeProperty('overflow');\r\n\r\n const modalCloseCTAElements = _this.element.querySelectorAll('.modal__close-cta');\r\n for (let i = 0; i < modalCloseCTAElements.length; ++i) {\r\n modalCloseCTAElements[i].setAttribute('tabindex', '0');\r\n }\r\n\r\n clearContent(_this.element.querySelector('.modal__content'));\r\n }, 500);\r\n }\r\n\r\n /* TODO: don't expose element and init */\r\n return {\r\n element: element,\r\n init: init,\r\n show: show,\r\n hide: hide,\r\n updateStyles: updateStyles\r\n }\r\n}\r\n","'use strict';\r\n\r\nexport function offset(el) {\r\n const rect = el.getBoundingClientRect(),\r\n scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\r\n scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft }\r\n}\r\n","'use strict';\r\n\r\nimport { offset } from '../utils/offset';\r\nimport { id } from '../utils/id';\r\n\r\nexport function Tooltip(params) {\r\n const tooltipId = id();\r\n\r\n const element = (function () {\r\n const element = document.createElement('div');\r\n element.setAttribute('role', 'tooltip');\r\n element.setAttribute('id', tooltipId);\r\n element.classList.add('tooltip', 'post');\r\n element.style.display = 'none';\r\n if (!!params && params.zIndex) {\r\n element.style.zIndex = params.zIndex;\r\n }\r\n return element;\r\n })();\r\n\r\n function show() {\r\n updatePosition(this);\r\n this.element.style.display = 'block';\r\n this.ctaElement.classList.add('active');\r\n this.element.classList.add('tooltip--shown');\r\n\r\n const _this = this;\r\n setTimeout(function () {\r\n _this.isShown = true;\r\n }, 500);\r\n }\r\n\r\n function hide() {\r\n this.element.style.display = 'none';\r\n this.ctaElement.classList.remove('active');\r\n this.element.classList.remove('tooltip--shown');\r\n this.isShown = false;\r\n }\r\n\r\n function init(ctaElement) {\r\n this.ctaElement = ctaElement;\r\n this.ctaElement.setAttribute('data-tooltip-id', tooltipId);\r\n this.element.innerHTML = this.ctaElement.dataset.tooltipContent;\r\n updatePosition(this);\r\n document.body.append(this.element);\r\n\r\n const _this = this;\r\n _this.ctaElement.addEventListener('click', function (event) {\r\n event.stopPropagation();\r\n _this.show();\r\n });\r\n\r\n _this.ctaElement.addEventListener('focus', function (event) {\r\n event.stopPropagation();\r\n _this.show();\r\n });\r\n\r\n _this.ctaElement.addEventListener('touchstart', function (event) {\r\n event.stopPropagation();\r\n _this.show();\r\n });\r\n\r\n _this.ctaElement.addEventListener('focusout', function (event) {\r\n event.stopPropagation();\r\n _this.hide();\r\n });\r\n\r\n setTimeout(function () {\r\n updatePosition(_this);\r\n }, 1000);\r\n\r\n window.addEventListener('resize', function (event) {\r\n updatePosition(_this);\r\n });\r\n\r\n if (!!params && params.modal) {\r\n params.modal.addEventListener('scroll', function (event) {\r\n updatePosition(_this);\r\n });\r\n }\r\n }\r\n\r\n function updatePosition(_this) {\r\n if(typeof _this === 'undefined') {\r\n _this = this;\r\n }\r\n \r\n const leftPosition = (offset(_this.ctaElement).left + _this.ctaElement.clientWidth);\r\n _this.element.style.left = (leftPosition + 320 < window.innerWidth) ? leftPosition + 'px' : 'initial';\r\n _this.element.style.right = (leftPosition + 320 > window.innerWidth) ? '0px' : 'initial';\r\n _this.element.style.top = (offset(_this.ctaElement).top + _this.ctaElement.clientHeight) + 'px';\r\n }\r\n\r\n return {\r\n element: element,\r\n isShown: false,\r\n ctaElement: null,\r\n init: init,\r\n show: show,\r\n hide: hide,\r\n updatePosition: updatePosition\r\n }\r\n}\r\n","'use strict';\r\n\r\nfunction write(key, value, days) {\r\n const date = new Date();\r\n days = days || 365;\r\n date.setTime(+ date + (days * 86400000));\r\n window.document.cookie = key + \"=\" + value + \"; expires=\" + date.toGMTString() + \"; path=/\";\r\n}\r\n\r\nfunction getValue(key) {\r\n const match = document.cookie.match(new RegExp('(^| )' + key + '=([^;]+)'));\r\n if (match) return match[2];\r\n}\r\n\r\nexport const cookie = {\r\n write: write,\r\n getValue: getValue\r\n}\r\n","'use strict';\r\n\r\nconst moment = require('moment');\r\nrequire('@lf/mwuikit/src/scripts/utils/mathTruncPolyfill');\r\n\r\n\r\nfunction distribution(investment, productPricesArray) {\r\n const totalOfProducts = Object.keys(productPricesArray).length;\r\n let distributionArray = new Array();\r\n\r\n if (totalOfProducts > 0) {\r\n let remainingInvestment = investment;\r\n let cheaperProductPrice = null;\r\n let cheaperProductKey = '';\r\n\r\n /* Increment total of parts for each scpi to approch an equilibrated distribution */\r\n for (const key in productPricesArray) {\r\n const productPrice = productPricesArray[key];\r\n const remainingInvestmentForProduct = investment / totalOfProducts;\r\n\r\n distributionArray[key] = Math.floor(remainingInvestmentForProduct / productPrice);\r\n\r\n remainingInvestment -= distributionArray[key] * productPrice;\r\n\r\n if (cheaperProductPrice == null || cheaperProductPrice > productPrice) {\r\n cheaperProductPrice = productPrice;\r\n cheaperProductKey = key;\r\n }\r\n }\r\n\r\n /*Distribute the remaining value*/\r\n while (remainingInvestment - cheaperProductPrice > 0) {\r\n for (const key in productPricesArray) {\r\n const productPrice = productPricesArray[key];\r\n\r\n if (remainingInvestment - productPrice > 0) {\r\n distributionArray[key]++;\r\n remainingInvestment -= productPrice;\r\n }\r\n }\r\n }\r\n\r\n /*Add a cheaper product's item to display investment that barely exceeds the value of investment input*/\r\n if (remainingInvestment > 0) {\r\n distributionArray[cheaperProductKey]++;\r\n }\r\n }\r\n\r\n return distributionArray;\r\n}\r\n\r\nfunction totalCarbonFootprint(distributionArray, productCarbonFootprintsArray) {\r\n let total = 0;\r\n for (const key in distributionArray) {\r\n if (distributionArray[key] > 0) {\r\n total += distributionArray[key] * productCarbonFootprintsArray[key];\r\n }\r\n }\r\n return total;\r\n}\r\n\r\nfunction totalInvestment(distributionArray, productPricesArray) {\r\n let total = 0;\r\n for (const key in distributionArray) {\r\n if (distributionArray[key] > 0) {\r\n total += distributionArray[key] * productPricesArray[key];\r\n }\r\n }\r\n return total;\r\n}\r\n\r\nfunction loanPersonalContribution(investment, loanAmount) {\r\n const maxLoanAmount = monabanqLoanMaxAmount(investment);\r\n\r\n if (loanAmount > maxLoanAmount) {\r\n loanAmount = maxLoanAmount;\r\n }\r\n\r\n const delta = investment - loanAmount;\r\n return delta > 0 ? delta : 0;\r\n}\r\n\r\nfunction monabanqLoanMaxAmount(investment) {\r\n return Math.trunc((investment * .9) / 1000) * 1000;\r\n}\r\n\r\nfunction taeg(rate) {\r\n //TODO: understand and refacto TAEG conversion formula\r\n return Math.floor(((Math.pow((1 + (rate * 0.01) / 12), 12) - 1) / 0.01) * 100) / 100;\r\n}\r\n\r\nfunction monthly(rate, loanAmount, loanDuration) {\r\n //TODO: understand and refacto formula\r\n const i = rate / 1200;\r\n return loanAmount * (i / (1 - Math.pow(1 + i, -loanDuration)));\r\n}\r\n\r\nfunction getMonthly(rate, term, duration, leanAmount) {\r\n const n = term * duration;\r\n const i = rate / (term * 100);\r\n return leanAmount * (i / (1 - Math.pow(1 + i, -n)));\r\n}\r\n\r\nconst XIRR = function (values, dates, guess) {\r\n // Credits: algorithm inspired by Apache OpenOffice\r\n /* Based on\r\n * - EGM Mathematical Finance class by Enrique Garcia M. \r\n * - A Guide to the PMT, FV, IPMT and PPMT Functions by Kevin (aka MWVisa1)\r\n */\r\n // Calculates the resulting amount\r\n const irrResult = function (values, dates, rate) {\r\n const r = rate + 1;\r\n let result = values[0];\r\n for (let i = 1; i < values.length; i++) {\r\n result += values[i] /\r\n Math.pow(\r\n r,\r\n moment(dates[i]).diff(moment(dates[0]), \"days\") / 365\r\n );\r\n }\r\n return result;\r\n };\r\n\r\n // Calculates the first derivation\r\n const irrResultDeriv = function (values, dates, rate) {\r\n const r = rate + 1;\r\n let result = 0;\r\n for (let i = 1; i < values.length; i++) {\r\n const frac = moment(dates[i]).diff(moment(dates[0]), \"days\") / 365;\r\n result -= (frac * values[i]) / Math.pow(r, frac + 1);\r\n }\r\n return result;\r\n };\r\n\r\n // Check that values contains at least one positive value and one negative value\r\n let positive = false;\r\n let negative = false;\r\n for (let i = 0; i < values.length; i++) {\r\n if (values[i] > 0) positive = true;\r\n if (values[i] < 0) negative = true;\r\n }\r\n\r\n // Return error if values does not contain at least one positive value and one negative value\r\n if (!positive || !negative) return \"#NUM!\";\r\n\r\n // Initialize guess and resultRate\r\n guess = typeof guess === \"undefined\" ? 0.1 : guess;\r\n let resultRate = guess;\r\n\r\n // Set maximum epsilon for end of iteration\r\n const epsMax = 1e-10;\r\n\r\n // Set maximum number of iterations\r\n const iterMax = 50;\r\n\r\n // Implement Newton's method\r\n let newRate, epsRate, resultValue;\r\n let iteration = 0;\r\n let contLoop = true;\r\n do {\r\n resultValue = irrResult(values, dates, resultRate);\r\n newRate = resultRate -\r\n resultValue / irrResultDeriv(values, dates, resultRate);\r\n epsRate = Math.abs(newRate - resultRate);\r\n resultRate = newRate;\r\n contLoop = epsRate > epsMax && Math.abs(resultValue) > epsMax;\r\n } while (contLoop && ++iteration < iterMax);\r\n\r\n if (contLoop) return \"#NUM!\";\r\n\r\n // Return internal rate of return\r\n return resultRate;\r\n};\r\n\r\nfunction calcTaegMonabanq(monthly, amount, duration, fees, rate) {\r\n const arrayDate = [];\r\n const arrayMonthly = [];\r\n const arrayDateMonthly = [];\r\n const fraisMoinsEmprunt = -amount + fees;\r\n arrayMonthly.push(fraisMoinsEmprunt);\r\n let dateTemp = moment().date(1);\r\n let tempDate = dateTemp.toDate();\r\n arrayDate.push(tempDate);\r\n arrayDateMonthly.push({ Date: tempDate, Flow: fraisMoinsEmprunt });\r\n for (let index = 0; index < duration; index++) {\r\n dateTemp = dateTemp.add(1, \"M\");\r\n tempDate = dateTemp.toDate();\r\n arrayDate.push(tempDate);\r\n arrayMonthly.push(monthly);\r\n arrayDateMonthly.push({ Date: tempDate, Flow: monthly });\r\n }\r\n const xirr = XIRR(arrayMonthly, arrayDate, rate / 100);\r\n return Math.round(xirr * 10000) / 100;\r\n}\r\n\r\nexport const scpiSimulatorCalculations = {\r\n distribution: distribution,\r\n totalCarbonFootprint: totalCarbonFootprint,\r\n totalInvestment: totalInvestment,\r\n loanPersonalContribution: loanPersonalContribution,\r\n monabanqLoanMaxAmount: monabanqLoanMaxAmount,\r\n taeg: taeg,\r\n calcTaegMonabanq: calcTaegMonabanq,\r\n monthly: monthly,\r\n getMonthly: getMonthly\r\n}","'use strict';\r\n\r\n\r\nexport function initTagCoElement(tc_vars) {\r\n function serializeForm(form) {\r\n const obj = {};\r\n const formData = new FormData(form);\r\n for (let key of formData.keys()) {\r\n if (key != \"ReCaptchaKey\" && key != \"__RequestVerificationToken\") {\r\n obj[key] = formData.get(key);\r\n }\r\n }\r\n return obj;\r\n };\r\n\r\n\r\n let tags = document.getElementsByClassName('tagCoElement');\r\n if (tags) {\r\n for (let i = 0; i < tags.length; i++) {\r\n tags[i].addEventListener(\"click\", function () {\r\n try {\r\n const dataToSend = JSON.parse(event.target.dataset.tagInfo);\r\n dataToSend.page_name = tc_vars.page_name;\r\n if (('tagForm' in event.target.dataset) && ('tagDest' in event.target.dataset)) {\r\n const form = document.getElementById(event.target.dataset.tagForm);\r\n if (form) {\r\n dataToSend[event.target.dataset.tagDest] = JSON.stringify(serializeForm(form));\r\n }\r\n }\r\n console.log(dataToSend);\r\n tC.event.click(this, { dataToSend });\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n });\r\n }\r\n }\r\n}","'use strict';\r\n\r\nrequire('@lf/mwuikit/src/scripts/utils/closestPolyfill');\r\n\r\nimport { getMonabanqRates } from '../../api/getMonabanqRates';\r\nimport { simulateSCPIInvestmentResults } from '../../api/simulateSCPIInvestmentResults';\r\nimport { Form } from '@lf/mwuikit/src/scripts/objects/form';\r\nimport { Modal } from '@lf/mwuikit/src/scripts/objects/modal';\r\nimport { Tooltip } from '@lf/mwuikit/src/scripts/objects/tooltip';\r\nimport { convertedFormValuesToJSON } from '../../utils/convertedFormValuesToJSON';\r\nimport { cookie } from '@lf/mwuikit/src/scripts/utils/cookie';\r\nimport { scpiSimulatorCalculations } from '../../utils/scpiSimulatorCalculations';\r\nimport { initTagCoElement } from \"../../objects/tagCommander\";\r\nimport { getScpiSubscriptionAlert } from \"../../api/getScpiSubscriptionAlert\";\r\n\r\n\r\n(function () {\r\n const formElement = document.getElementById('scpi-simulator-form');\r\n let ctasExpandingAccordions = document.querySelectorAll('[data-cta-expanding-accordion]');\r\n\r\n if (formElement) {\r\n const form = Form({ element: formElement, submit: submit });\r\n form.initConditionalElements();\r\n\r\n const confirmAlertReadingInputElement = formElement.querySelector('input[name=ConfirmAlertReading]');\r\n const investmentInputElement = document.getElementById('investment');\r\n const productItemElements = formElement.querySelectorAll('[data-scpi]');\r\n const distributionCheckboxElements = formElement.querySelectorAll('input[data-enabled-SCPI]');\r\n const distributionInputElements = formElement.querySelectorAll('input[name^=\"Distribution\"]');\r\n let keysOfDisabledDistributionInputsArray = getKeysOfDisabledDistributionInputs();\r\n let isAutomaticDistributionDisabled = false;\r\n\r\n const monabanqLoanAmountInputElement = formElement.querySelector('input[name=MonabanqLoanAmount]');\r\n const monabanqLoanDurationSelectElement = formElement.querySelector('select[name=MonabanqLoanDuration]');\r\n const monabanqLoanPersonalContributionInputElement = document.getElementById('monabanq-loan-personal-contribution');\r\n const monabanqLoanTAEGInputElement = formElement.querySelector('input[name=MonabanqLoanTAEG]');\r\n const monabanqLoanRateInputElement = formElement.querySelector('input[name=MonabanqLoanRate]');\r\n const monabanqLoanBookingFeesInputElement = formElement.querySelector('input[name=MonabanqLoanBookingFees]');\r\n const monabanqLoanWarrantyFeesInputElement = formElement.querySelector('input[name=MonabanqLoanWarrantyFees]');\r\n const monabanqLoanMonthlyInputElement = formElement.querySelector('input[name=MonabanqLoanMonthly]');\r\n const creditInstitutionLoanDurationInputElement = formElement.querySelector('input[name=CreditInstitutionLoanAmount]');\r\n const setMaxValueToMonabanqLoanAmountCTAElement = document.getElementById('set-max-value-to-monabanq-loan-amount-cta');\r\n const setMaxValueToCreditInstitutionLoanAmountCTAElement = document.getElementById('set-max-value-to-credit-institution-loan-amount-cta');\r\n\r\n const totalOfProducts = productItemElements.length;\r\n let productPricesArray = new Array(totalOfProducts);\r\n let productCarbonFootprintsArray = new Array(totalOfProducts);\r\n let productsDataArray = new Array(totalOfProducts);\r\n let distributionArray = [];\r\n let selectionLength = 0;\r\n const selectionLimit = formElement.dataset.selectionLimit;\r\n\r\n let investment = 0;\r\n let totalInvestment = 0.00; // for calculated amount\r\n let totalCarbonFootprint = 0.00;\r\n\r\n let monabanqLoanAmount = 0;\r\n let monabanqLoanDuration = 0;\r\n let monabanqLoanRate = null;\r\n let monabanqLoanRatesObjectsForAmount = [];\r\n let monabanqLoanBookingFees = 500;\r\n let monabanqLoanWarrantyFeesArray = [500, 800, 1000];\r\n let monabanqLoanWarrantyFees = 0;\r\n let monabanqLoanMinAmount = 25000;\r\n\r\n window.monabanqLoanAccordion = null;\r\n window.creditInstitutionAccordion = null;\r\n const modal = Modal({ isLarger: true });\r\n\r\n function initCtasExpandingAccordions() {\r\n for (let i = 0; i < ctasExpandingAccordions.length; i++) {\r\n const ctaExpandingAccordion = ctasExpandingAccordions[i];\r\n ctaExpandingAccordion.addEventListener('click', function (event) {\r\n event.preventDefault();\r\n\r\n modal.hide();\r\n\r\n document.dispatchEvent(new CustomEvent('openAccordion', {\r\n detail: {\r\n ctaElement: document.getElementById(ctaExpandingAccordion.dataset.ctaExpandingAccordion)\r\n }\r\n }));\r\n });\r\n }\r\n }\r\n\r\n function updateBindingsInRows(distributionArray, productPricesArray, productCarbonFootprintsArray, totalInvestment) {\r\n if (productItemElements.length) {\r\n let productItemElementsCopy = Array.from(productItemElements);\r\n\r\n for (const key in distributionArray) {\r\n const distributionInputElement = formElement.querySelector('input[name=\"Distribution[\\'' + key + '\\']\"]');\r\n\r\n if (distributionInputElement) {\r\n distributionInputElement.value = distributionArray[key] > 0 && investment > 0 ? distributionArray[key] : 0;\r\n\r\n for (let i = 0; i < productItemElementsCopy.length; i++) {\r\n\r\n if (productItemElementsCopy[i].contains(distributionInputElement)) {\r\n const priceBinding = productItemElementsCopy[i].querySelector('[data-binding=\"price\"]');\r\n const price = (distributionArray[key] * productPricesArray[key]);\r\n if (priceBinding) {\r\n priceBinding.innerHTML = (distributionArray[key] * productPricesArray[key]).toLocaleString('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 2, minimumFractionDigits: 0 });\r\n }\r\n\r\n const percentageBinding = productItemElementsCopy[i].querySelector('[data-binding=\"distribution-percentage\"]');\r\n if (percentageBinding) {\r\n const percentage = totalInvestment > 0 ? price * 100 / totalInvestment : 100 / totalOfProducts;\r\n percentageBinding.innerHTML = percentage.toLocaleString('fr-FR', { maximumFractionDigits: 2, minimumFractionDigits: 0 }) + ' %';\r\n }\r\n\r\n const carbonFootprintBinding = productItemElementsCopy[i].querySelector('[data-binding=\"carbon-footprint\"]');\r\n if (carbonFootprintBinding) {\r\n const carbonFootprint = distributionArray[key] * productCarbonFootprintsArray[key];\r\n carbonFootprintBinding.innerHTML = carbonFootprint.toLocaleString('fr-FR', { maximumFractionDigits: 2, minimumFractionDigits: 2 }) + ' kg';\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function updateTotalsBindings(totalInvestment, totalCarbonFootprint) {\r\n const totalInvestmentBinding = formElement.querySelector('[data-binding=\"total-investment\"]');\r\n if (totalInvestmentBinding) {\r\n totalInvestmentBinding.innerHTML = totalInvestment.toLocaleString('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 2, minimumFractionDigits: 0 });\r\n }\r\n\r\n const totalCarbonFootprintBinding = formElement.querySelector('[data-binding=\"total-carbon-footprint\"]');\r\n if (totalCarbonFootprintBinding) {\r\n totalCarbonFootprintBinding.innerHTML = totalCarbonFootprint.toLocaleString('fr-FR', { maximumFractionDigits: 2, minimumFractionDigits: 2 }) + ' kg';\r\n }\r\n }\r\n\r\n function fillMonabanqTAEGAndMonthlyInputs(rate, monabanqLoanAmount, monabanqLoanDuration) {\r\n if (monabanqLoanWarrantyFeesInputElement) {\r\n monabanqLoanWarrantyFees = monabanqLoanWarrantyFeesArray[Math.min(selectionLength - 1, 2)];\r\n monabanqLoanWarrantyFeesInputElement.value = monabanqLoanWarrantyFees;\r\n }\r\n\r\n if ((monabanqLoanTAEGInputElement || monabanqLoanMonthlyInputElement) && rate && monabanqLoanAmount && monabanqLoanDuration) {\r\n const monthly = scpiSimulatorCalculations.monthly(rate, monabanqLoanAmount, monabanqLoanDuration);\r\n const taeg = scpiSimulatorCalculations.calcTaegMonabanq(monthly, monabanqLoanAmount, monabanqLoanDuration, monabanqLoanWarrantyFees + monabanqLoanBookingFees, rate);\r\n\r\n if (monabanqLoanRateInputElement) {\r\n monabanqLoanRateInputElement.value = rate.toFixed(2);\r\n }\r\n\r\n if (monabanqLoanTAEGInputElement) {\r\n monabanqLoanTAEGInputElement.value = taeg.toFixed(2);\r\n }\r\n\r\n if (monabanqLoanMonthlyInputElement) {\r\n monabanqLoanMonthlyInputElement.value = monthly.toFixed(2);\r\n }\r\n } else {\r\n if (monabanqLoanTAEGInputElement) {\r\n monabanqLoanTAEGInputElement.value = '';\r\n }\r\n\r\n if (monabanqLoanMonthlyInputElement) {\r\n monabanqLoanMonthlyInputElement.value = '';\r\n }\r\n }\r\n }\r\n\r\n function toggleCheckboxesState(checkboxElements) {\r\n const notCheckedCheckboxElements = new Array();\r\n const disabledCheckboxElements = new Array();\r\n\r\n const checkedCheckboxElements = Array.from(checkboxElements).filter(function (element) {\r\n if (element.checked) {\r\n const parentProductItemElement = element.closest('[data-scpi]');\r\n if (parentProductItemElement && parentProductItemElement.classList.contains('disabled')) {\r\n parentProductItemElement.classList.remove('disabled');\r\n }\r\n return true;\r\n } else {\r\n notCheckedCheckboxElements.push(element);\r\n if (element.disabled) disabledCheckboxElements.push(element);\r\n return false;\r\n }\r\n });\r\n\r\n selectionLength = checkedCheckboxElements.length;\r\n\r\n if (selectionLength >= selectionLimit) {\r\n for (let i = 0; i < notCheckedCheckboxElements.length; i++) {\r\n notCheckedCheckboxElements[i].disabled = true;\r\n const parentProductItemElement = notCheckedCheckboxElements[i].closest('[data-scpi]');\r\n if (parentProductItemElement && !parentProductItemElement.classList.contains('disabled')) {\r\n parentProductItemElement.classList.add('disabled');\r\n }\r\n }\r\n } else if (disabledCheckboxElements.length > 0) {\r\n for (let i = 0; i < disabledCheckboxElements.length; i++) {\r\n disabledCheckboxElements[i].disabled = false;\r\n const parentProductItemElement = disabledCheckboxElements[i].closest('[data-scpi]');\r\n if (parentProductItemElement && parentProductItemElement.classList.contains('disabled')) {\r\n parentProductItemElement.classList.remove('disabled');\r\n }\r\n }\r\n }\r\n }\r\n\r\n function getKeysOfDisabledDistributionInputs() {\r\n const disabledDistributionInputElements = formElement.querySelectorAll('input[name^=\"Distribution\"]:disabled');\r\n return Array.prototype.map.call(disabledDistributionInputElements, function (item) { return item.id });\r\n }\r\n\r\n function getSelectedProductsPricesArray(productPricesArray, keysOfDisabledDistributionInputsArray) {\r\n const selectedProductsPricesArray = new Array();\r\n for (const key in productPricesArray) {\r\n if (keysOfDisabledDistributionInputsArray.indexOf(key) < 0) {\r\n selectedProductsPricesArray[key] = productPricesArray[key];\r\n }\r\n }\r\n\r\n return selectedProductsPricesArray;\r\n }\r\n\r\n function updateLoanInputs(totalInvestment, monabanqLoanAmount) {\r\n if (monabanqLoanWarrantyFeesInputElement) {\r\n monabanqLoanWarrantyFees = monabanqLoanWarrantyFeesArray[Math.min(selectionLength - 1, 2)];\r\n monabanqLoanWarrantyFeesInputElement.value = monabanqLoanWarrantyFees;\r\n }\r\n\r\n if (monabanqLoanAmountInputElement) {\r\n const monabanqLoanMaxAmount = scpiSimulatorCalculations.monabanqLoanMaxAmount(totalInvestment);\r\n\r\n if (monabanqLoanMaxAmount > monabanqLoanMinAmount) {\r\n if (monabanqLoanAmountInputElement.disabled) {\r\n monabanqLoanAmountInputElement.disabled = false;\r\n\r\n if (setMaxValueToMonabanqLoanAmountCTAElement) {\r\n setMaxValueToMonabanqLoanAmountCTAElement.removeAttribute('disabled');\r\n setMaxValueToMonabanqLoanAmountCTAElement.setAttribute('tabindex', '0');\r\n }\r\n }\r\n\r\n if (monabanqLoanDurationSelectElement && monabanqLoanDurationSelectElement.disabled) {\r\n monabanqLoanDurationSelectElement.disabled = false;\r\n }\r\n\r\n monabanqLoanAmountInputElement.max = monabanqLoanMaxAmount;\r\n } else {\r\n monabanqLoanAmountInputElement.value = '';\r\n monabanqLoanAmount = 0;\r\n\r\n if (!monabanqLoanAmountInputElement.disabled) {\r\n monabanqLoanAmountInputElement.disabled = true;\r\n\r\n if (setMaxValueToMonabanqLoanAmountCTAElement) {\r\n setMaxValueToMonabanqLoanAmountCTAElement.setAttribute('disabled', 'true');\r\n setMaxValueToMonabanqLoanAmountCTAElement.setAttribute('tabindex', '-1');\r\n }\r\n }\r\n\r\n if (monabanqLoanDurationSelectElement) {\r\n monabanqLoanDurationSelectElement.value = '';\r\n\r\n if (!monabanqLoanDurationSelectElement.disabled) {\r\n monabanqLoanDurationSelectElement.disabled = true;\r\n }\r\n }\r\n\r\n fillMonabanqTAEGAndMonthlyInputs(null, null, null);\r\n }\r\n }\r\n\r\n if (creditInstitutionLoanDurationInputElement) {\r\n creditInstitutionLoanDurationInputElement.max = totalInvestment;\r\n }\r\n\r\n if (monabanqLoanPersonalContributionInputElement) {\r\n monabanqLoanPersonalContributionInputElement.value = scpiSimulatorCalculations.loanPersonalContribution(totalInvestment, monabanqLoanAmount);\r\n }\r\n }\r\n\r\n for (let i = 0; i < totalOfProducts; i++) {\r\n const data = JSON.parse(productItemElements[i].dataset.scpi);\r\n productsDataArray[i] = data;\r\n productPricesArray[data.slug] = data.sharePrice;\r\n productCarbonFootprintsArray[data.slug] = data.carbonFootprint;\r\n if (productItemElements[i].querySelector(\"[data-enabled-scpi]:checked\"))\r\n selectionLength++;\r\n }\r\n\r\n if (monabanqLoanDurationSelectElement) {\r\n monabanqLoanDuration = monabanqLoanDurationSelectElement.value;\r\n monabanqLoanBookingFeesInputElement.value = monabanqLoanBookingFees;\r\n monabanqLoanWarrantyFees = monabanqLoanWarrantyFeesArray[Math.min(selectionLength - 1, 2)];\r\n monabanqLoanWarrantyFeesInputElement.value = monabanqLoanWarrantyFees;\r\n\r\n monabanqLoanDurationSelectElement.addEventListener('change', function () {\r\n monabanqLoanDuration = this.value;\r\n\r\n if (monabanqLoanRatesObjectsForAmount.length) {\r\n const filteredRatesObjects = monabanqLoanRatesObjectsForAmount.filter(element => element.duration == monabanqLoanDuration);\r\n monabanqLoanRate = filteredRatesObjects.length ? filteredRatesObjects[0].rate : null;\r\n fillMonabanqTAEGAndMonthlyInputs(monabanqLoanRate, monabanqLoanAmount, monabanqLoanDuration);\r\n }\r\n });\r\n }\r\n\r\n if (monabanqLoanAmountInputElement) {\r\n monabanqLoanAmount = monabanqLoanAmountInputElement.value;\r\n let typingTimeout = null;\r\n\r\n function updateLoanInfo(timeout) {\r\n clearTimeout(typingTimeout);\r\n typingTimeout = setTimeout(function () {\r\n\r\n const value = parseFloat(monabanqLoanAmountInputElement.value);\r\n const min = !!monabanqLoanAmountInputElement.min ? parseFloat(monabanqLoanAmountInputElement.min) : null;\r\n const max = !!monabanqLoanAmountInputElement.max ? parseFloat(monabanqLoanAmountInputElement.max) : null;\r\n const step = !!monabanqLoanAmountInputElement.step ? parseFloat(monabanqLoanAmountInputElement.step) : null;\r\n\r\n if (typeof min === 'number' && value < min) {\r\n monabanqLoanAmountInputElement.value = min;\r\n } else if (typeof max === 'number' && value > max) {\r\n monabanqLoanAmountInputElement.value = max;\r\n } else if (value % step > 0) {\r\n monabanqLoanAmountInputElement.value = Math.round(Math.trunc((value + value % step) / step) * step * 100) / 100;\r\n }\r\n monabanqLoanAmount = monabanqLoanAmountInputElement.value;\r\n\r\n fillMonabanqTAEGAndMonthlyInputs(monabanqLoanRate, monabanqLoanAmount, monabanqLoanDuration);\r\n\r\n if (monabanqLoanDurationSelectElement) {\r\n\r\n getMonabanqRates(\r\n monabanqLoanAmount,\r\n function (ratesObjects) {\r\n monabanqLoanRatesObjectsForAmount = ratesObjects;\r\n\r\n let lastOptionElement;\r\n while (lastOptionElement = monabanqLoanDurationSelectElement.lastChild) {\r\n monabanqLoanDurationSelectElement.removeChild(lastOptionElement);\r\n }\r\n\r\n for (let i = 0; i < ratesObjects.length; i++) {\r\n const optionElement = document.createElement('option');\r\n optionElement.value = ratesObjects[i].duration;\r\n optionElement.innerHTML = (ratesObjects[i].duration / 12) + ' ans';\r\n monabanqLoanDurationSelectElement.append(optionElement);\r\n }\r\n\r\n const filteredRatesObjects = ratesObjects.filter(element => element.duration == monabanqLoanDuration);\r\n monabanqLoanRate = filteredRatesObjects.length ? filteredRatesObjects[0].rate : null;\r\n fillMonabanqTAEGAndMonthlyInputs(monabanqLoanRate, monabanqLoanAmount, monabanqLoanDuration);\r\n },\r\n function (response) {\r\n console.log('error');\r\n }\r\n );\r\n }\r\n\r\n if (monabanqLoanPersonalContributionInputElement) {\r\n monabanqLoanPersonalContributionInputElement.value = scpiSimulatorCalculations.loanPersonalContribution(totalInvestment, monabanqLoanAmount);\r\n }\r\n }, timeout);\r\n }\r\n\r\n monabanqLoanAmountInputElement.addEventListener('keyup', function () {\r\n updateLoanInfo(500);\r\n });\r\n\r\n monabanqLoanAmountInputElement.addEventListener('change', function () {\r\n updateLoanInfo(0);\r\n });\r\n\r\n if (setMaxValueToMonabanqLoanAmountCTAElement) {\r\n setMaxValueToMonabanqLoanAmountCTAElement.addEventListener('click', function () {\r\n if (!monabanqLoanAmountInputElement.disabled) {\r\n monabanqLoanAmountInputElement.value = monabanqLoanAmountInputElement.max;\r\n\r\n monabanqLoanAmount = monabanqLoanAmountInputElement.value;\r\n getMonabanqRates(\r\n monabanqLoanAmount,\r\n function (ratesObjects) {\r\n monabanqLoanRatesObjectsForAmount = ratesObjects;\r\n\r\n let lastOptionElement;\r\n while (lastOptionElement = monabanqLoanDurationSelectElement.lastChild) {\r\n monabanqLoanDurationSelectElement.removeChild(lastOptionElement);\r\n }\r\n\r\n for (let i = 0; i < ratesObjects.length; i++) {\r\n const optionElement = document.createElement('option');\r\n optionElement.value = ratesObjects[i].duration;\r\n optionElement.innerHTML = (ratesObjects[i].duration / 12) + ' ans';\r\n monabanqLoanDurationSelectElement.append(optionElement);\r\n }\r\n\r\n const filteredRatesObjects = ratesObjects.filter(element => element.duration == monabanqLoanDuration);\r\n monabanqLoanRate = filteredRatesObjects.length ? filteredRatesObjects[0].rate : null;\r\n fillMonabanqTAEGAndMonthlyInputs(monabanqLoanRate, monabanqLoanAmount, monabanqLoanDuration);\r\n if (monabanqLoanPersonalContributionInputElement) {\r\n monabanqLoanPersonalContributionInputElement.value = scpiSimulatorCalculations.loanPersonalContribution(totalInvestment, monabanqLoanAmount);\r\n }\r\n },\r\n function (response) {\r\n console.log('error');\r\n }\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (creditInstitutionLoanDurationInputElement && setMaxValueToCreditInstitutionLoanAmountCTAElement) {\r\n setMaxValueToCreditInstitutionLoanAmountCTAElement.addEventListener('click', function () {\r\n creditInstitutionLoanDurationInputElement.value = creditInstitutionLoanDurationInputElement.max;\r\n });\r\n }\r\n\r\n if (investmentInputElement) {\r\n investment = investmentInputElement.value;\r\n\r\n const selectedProductsPricesArray = getSelectedProductsPricesArray(productPricesArray, keysOfDisabledDistributionInputsArray);\r\n distributionArray = scpiSimulatorCalculations.distribution(investment, selectedProductsPricesArray);\r\n totalInvestment = scpiSimulatorCalculations.totalInvestment(distributionArray, productPricesArray);\r\n\r\n investmentInputElement.addEventListener('input', function () {\r\n investment = this.value;\r\n totalCarbonFootprint = 0;\r\n\r\n const selectedProductsPricesArray = getSelectedProductsPricesArray(productPricesArray, keysOfDisabledDistributionInputsArray);\r\n distributionArray = scpiSimulatorCalculations.distribution(investment, selectedProductsPricesArray);\r\n\r\n totalCarbonFootprint = scpiSimulatorCalculations.totalCarbonFootprint(distributionArray, productCarbonFootprintsArray);\r\n totalInvestment = scpiSimulatorCalculations.totalInvestment(distributionArray, productPricesArray);\r\n\r\n updateBindingsInRows(distributionArray, productPricesArray, productCarbonFootprintsArray, totalInvestment);\r\n updateTotalsBindings(totalInvestment, totalCarbonFootprint);\r\n updateLoanInputs(totalInvestment, monabanqLoanAmount);\r\n\r\n isAutomaticDistributionDisabled = false;\r\n });\r\n }\r\n\r\n for (let i = 0; i < distributionInputElements.length; i++) {\r\n distributionInputElements[i].addEventListener('input', function () {\r\n const currentInputKey = this.id;\r\n const currentProductDistribution = parseInt(this.value > 0 ? this.value : 0);\r\n\r\n distributionArray[currentInputKey] = currentProductDistribution;\r\n\r\n totalCarbonFootprint = scpiSimulatorCalculations.totalCarbonFootprint(distributionArray, productCarbonFootprintsArray);\r\n totalInvestment = scpiSimulatorCalculations.totalInvestment(distributionArray, productPricesArray);\r\n\r\n updateBindingsInRows(distributionArray, productPricesArray, productCarbonFootprintsArray, totalInvestment);\r\n updateTotalsBindings(totalInvestment, totalCarbonFootprint);\r\n updateLoanInputs(totalInvestment, monabanqLoanAmount);\r\n\r\n isAutomaticDistributionDisabled = true;\r\n });\r\n }\r\n\r\n for (let i = 0; i < distributionCheckboxElements.length; i++) {\r\n distributionCheckboxElements[i].addEventListener('change', function () {\r\n const currentInputParentProductItemElement = this.closest('[data-scpi]');\r\n const currentDistributionInputElement = currentInputParentProductItemElement.querySelector('input[name^=\"Distribution\"]');\r\n\r\n currentDistributionInputElement.disabled = !this.checked;\r\n\r\n keysOfDisabledDistributionInputsArray = getKeysOfDisabledDistributionInputs();\r\n\r\n if (!isAutomaticDistributionDisabled) {\r\n const selectedProductsPricesArray = getSelectedProductsPricesArray(productPricesArray, keysOfDisabledDistributionInputsArray);\r\n distributionArray = scpiSimulatorCalculations.distribution(investment, selectedProductsPricesArray);\r\n }\r\n\r\n for (let i = 0; i < keysOfDisabledDistributionInputsArray.length; i++) {\r\n distributionArray[keysOfDisabledDistributionInputsArray[i]] = 0;\r\n }\r\n\r\n totalCarbonFootprint = scpiSimulatorCalculations.totalCarbonFootprint(distributionArray, productCarbonFootprintsArray);\r\n totalInvestment = scpiSimulatorCalculations.totalInvestment(distributionArray, productPricesArray);\r\n\r\n toggleCheckboxesState(distributionCheckboxElements);\r\n updateBindingsInRows(distributionArray, productPricesArray, productCarbonFootprintsArray, totalInvestment);\r\n updateTotalsBindings(totalInvestment, totalCarbonFootprint);\r\n updateLoanInputs(totalInvestment, monabanqLoanAmount);\r\n });\r\n }\r\n\r\n function openAccordion() {\r\n document.dispatchEvent(new CustomEvent('openAccordion', {\r\n detail: {\r\n ctaElement: document.getElementById('alert-accordion-cta')\r\n }\r\n }));\r\n }\r\n\r\n if (confirmAlertReadingInputElement) {\r\n confirmAlertReadingInputElement.addEventListener('change', function () {\r\n if (this.checked && cookie.getValue('isSCPISimulatorAlertRead') !== 'true') {\r\n openAccordion();\r\n }\r\n });\r\n }\r\n\r\n modal.init();\r\n\r\n initCtasExpandingAccordions();\r\n\r\n function submit(submitEvent) {\r\n const formData = convertedFormValuesToJSON(submitEvent.srcElement);\r\n\r\n form.showSubmitCTASpinner();\r\n\r\n for (let i = 0; i < distributionInputElements.length; i++) {\r\n distributionArray[distributionInputElements[i].id] = distributionInputElements[i].value;\r\n }\r\n\r\n const data = {\r\n Distribution: Object.keys(distributionArray).map(function (key) { if (distributionArray[key] > 0) return { Slug: key, Value: distributionArray[key] } }),\r\n Duration: formData.Duration,\r\n NetSalary1: formData.NetSalary1,\r\n NetSalary2: formData.NetSalary2,\r\n PropertyIncome: formData.PropertyIncome,\r\n OtherIncome: formData.OtherIncome,\r\n TotalOfFamilyIncomeSplits: formData.TotalOfFamilyIncomeSplits,\r\n IsSingleParentFamily: formData.IsSingleParentFamily,\r\n Hypothesis: formData.Hypothesis\r\n };\r\n\r\n if (typeof window.monabanqLoanAccordion !== undefined || typeof window.creditInstitutionAccordion !== undefined) {\r\n if (window.monabanqLoanAccordion === true) {\r\n data['WithMonabanqLoan'] = true;\r\n data['MonabanqLoanAmount'] = formData.MonabanqLoanAmount;\r\n data['MonabanqLoanDuration'] = formData.MonabanqLoanDuration;\r\n data['MonabanqLoanRate'] = formData.MonabanqLoanRate;\r\n data['MonabanqLoanCharges'] = formData.MonabanqLoanBookingFees;\r\n data['MonabanqLoanGuarantee'] = formData.MonabanqLoanWarrantyFees;\r\n } else if (window.creditInstitutionAccordion === true) {\r\n data['WithCreditInstitutionLoan'] = true;\r\n data['CreditInstitutionLoanAmount'] = formData.CreditInstitutionLoanAmount;\r\n data['CreditInstitutionInterestRate'] = formData.CreditInstitutionInterestRate;\r\n data['CreditInstitutionLoanDuration'] = formData.CreditInstitutionLoanDuration;\r\n data['CreditInstitutionLoanType'] = formData.CreditInstitutionLoanType;\r\n }\r\n }\r\n\r\n simulateSCPIInvestmentResults(\r\n data,\r\n function (response) {\r\n modal.updateStyles({ isLarger: true, isAlignCenter: false });\r\n\r\n modal.show(\r\n response + `\r\n
\r\n

Savez-vous qu’il est aussi possible d’acheter des parts de SCPI à crédit ?
Simuler votre projet à crédit avec notre partenaire Monabanq

\r\n

Vous pouvez aussi mesurer l’impact de votre souscription sur votre fiscalité :
Simuler l’impact fiscal de mon projet

\r\n
\r\n `,\r\n function () {\r\n ctasExpandingAccordions = document.querySelectorAll('[data-cta-expanding-accordion]');\r\n initCtasExpandingAccordions();\r\n\r\n const tooltipCTAElements = modal.element.querySelectorAll('[data-tooltip-content]');\r\n let tooltips = [];\r\n\r\n if (tooltipCTAElements.length > 0) {\r\n for (let i = 0; i < tooltipCTAElements.length; i++) {\r\n const tooltip = Tooltip({\r\n modal: modal.element,\r\n zIndex: 1006\r\n });\r\n tooltip.init(tooltipCTAElements[i]);\r\n tooltips.push(tooltip);\r\n }\r\n\r\n modal.element.addEventListener('click', function (event) {\r\n event.stopPropagation();\r\n for (let i = 0; i < tooltips.length; i++) {\r\n const tooltip = tooltips[i];\r\n if (tooltip.isShown) {\r\n if (tooltip.ctaElement != event.target && tooltip.element != event.target && !tooltip.element.contains(event.target)) {\r\n tooltip.hide();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n );\r\n\r\n form.hideSubmitCTASpinner();\r\n if (typeof (tc_vars) !== 'undefined') {\r\n initTagCoElement(tc_vars);\r\n }\r\n\r\n try {\r\n tC.event.simulationScpi(this, { \"simulation_value\": totalInvestment });\r\n } catch(exception) {\r\n console.log(exception);\r\n }\r\n \r\n let matomoData = document.querySelector('div[data-name=\"matomo-push\"]');\r\n if (matomoData) {\r\n let pushData = matomoData.dataset.push;\r\n\r\n window._mtm = window._mtm || [];\r\n window._mtm.push(JSON.parse(pushData));\r\n matomoData.outerHTML = \"\";\r\n }\r\n\r\n function displaySubscriptionAlertModal(e) {\r\n let modal = Modal({ isAlignCenter: true });\r\n modal.init();\r\n modal.show(`

Souhaitez-vous confirmer le lancement d'une nouvelle souscription ?

\r\n \t

Vous avez déjà une souscription en cours, sachez que le démarrage d'une nouvelle opération annulera la précédente.

\r\n \t \r\n
\r\n \r\n \t \r\n
`, () => {\r\n\r\n const confirmElement = document.getElementById(\"confirm\");\r\n const closeButton = document.getElementById(\"close\");\r\n\r\n confirmElement.addEventListener('click', function () {\r\n window.location = e.target.href;\r\n });\r\n\r\n closeButton.addEventListener('click', function (event) {\r\n event.preventDefault();\r\n modal.hide();\r\n });\r\n });\r\n }\r\n\r\n let subscribe = document.getElementById('subscribe');\r\n subscribe.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n\r\n getScpiSubscriptionAlert(\r\n function (response) {\r\n if (response) {\r\n displaySubscriptionAlertModal(e);\r\n } else {\r\n window.location = e.target.href;\r\n }\r\n },\r\n function () {\r\n\r\n }\r\n );\r\n });\r\n },\r\n function (messages) {\r\n modal.updateStyles({ isLarger: false, isAlignCenter: true });\r\n\r\n if (messages.length) {\r\n modal.show('

' + messages.join('

') + '

');\r\n } else {\r\n modal.show(`

Une erreur s’est produite.

`);\r\n }\r\n\r\n form.hideSubmitCTASpinner();\r\n }\r\n );\r\n }\r\n }\r\n\r\n if (!window.setAlertAccordionExpansion) {\r\n window.setAlertAccordionExpansion = function () {\r\n if (cookie.getValue('isSCPISimulatorAlertRead') !== 'true') {\r\n cookie.write('isSCPISimulatorAlertRead', 'true', 24);\r\n }\r\n }\r\n }\r\n\r\n if (!window.setMonabanqLoanAccordionCollapse) {\r\n window.setMonabanqLoanAccordionCollapse = function () {\r\n const conditionAttributeName = 'data-monabanq-loan-accordion-is-expanded';\r\n document.querySelector('[' + conditionAttributeName + ']').setAttribute(conditionAttributeName, 'false');\r\n window.monabanqLoanAccordion = false;\r\n }\r\n }\r\n\r\n if (!window.setCreditInstitutionLoanAccordionCollapse) {\r\n window.setCreditInstitutionLoanAccordionCollapse = function () {\r\n const conditionAttributeName = 'data-credit-institution-loan-accordion-is-expanded';\r\n document.querySelector('[' + conditionAttributeName + ']').setAttribute(conditionAttributeName, 'false');\r\n window.creditInstitutionAccordion = false;\r\n }\r\n }\r\n\r\n if (!window.setMonabanqLoanAccordionExpansion) {\r\n window.setMonabanqLoanAccordionExpansion = function () {\r\n const conditionAttributeName = 'data-monabanq-loan-accordion-is-expanded';\r\n document.querySelector('[' + conditionAttributeName + ']').setAttribute(conditionAttributeName, 'true');\r\n window.monabanqLoanAccordion = true;\r\n }\r\n }\r\n\r\n if (!window.setCreditInstitutionLoanAccordionExpansion) {\r\n window.setCreditInstitutionLoanAccordionExpansion = function () {\r\n const conditionAttributeName = 'data-credit-institution-loan-accordion-is-expanded';\r\n document.querySelector('[' + conditionAttributeName + ']').setAttribute(conditionAttributeName, 'true');\r\n window.creditInstitutionAccordion = true;\r\n }\r\n }\r\n\r\n if (!window.setFiscalImpactAccordionExpansion) {\r\n window.setFiscalImpactAccordionExpansion = function () {\r\n const conditionAttributeName = 'data-fiscal-impact-accordion-is-expanded';\r\n document.querySelector('[' + conditionAttributeName + ']').setAttribute(conditionAttributeName, 'true');\r\n }\r\n }\r\n\r\n if (!window.setFiscalImpactAccordionCollapse) {\r\n window.setFiscalImpactAccordionCollapse = function () {\r\n const conditionAttributeName = 'data-fiscal-impact-accordion-is-expanded';\r\n document.querySelector('[' + conditionAttributeName + ']').setAttribute(conditionAttributeName, 'false');\r\n }\r\n }\r\n\r\n const hypothesisRadioInputElements = formElement.querySelectorAll('[name=\"Hypothesis\"]');\r\n const negativeHypothesisIsSelectedSupportElement = formElement.querySelector('[data-negative-hypothesis-is-selected]');\r\n const neutralHypothesisIsSelectedSupportElement = formElement.querySelector('[data-neutral-hypothesis-is-selected]');\r\n const positiveHypothesisIsSelectedSupportElement = formElement.querySelector('[data-positive-hypothesis-is-selected]');\r\n\r\n if (negativeHypothesisIsSelectedSupportElement && neutralHypothesisIsSelectedSupportElement && positiveHypothesisIsSelectedSupportElement) {\r\n for (let i = 0; i < hypothesisRadioInputElements.length; i++) {\r\n hypothesisRadioInputElements[i].addEventListener('change', function (event) {\r\n negativeHypothesisIsSelectedSupportElement.dataset.negativeHypothesisIsSelected = this.value < 0;\r\n neutralHypothesisIsSelectedSupportElement.dataset.neutralHypothesisIsSelected = this.value == 0;\r\n positiveHypothesisIsSelectedSupportElement.dataset.positiveHypothesisIsSelected = this.value == 1;\r\n });\r\n }\r\n }\r\n}());\r\n","'use strict';\r\n\r\nexport const convertedFormValuesToJSON = function (form) {\r\n\r\n function convertInputValues(elements) {\r\n if (elements.length <= 0)\r\n return;\r\n\r\n for (let i = 0; i < elements.length; ++i) {\r\n const element = elements[i];\r\n const name = element.name;\r\n const value = element.value;\r\n\r\n if (name && value) {\r\n if (element.type === 'radio' && !element.checked) continue;\r\n if (element.type === 'checkbox') {\r\n obj[name] = element.checked;\r\n } else {\r\n obj[name] = value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n let obj = {};\r\n const inputs = form.getElementsByTagName('input');\r\n const selects = form.getElementsByTagName('select');\r\n const textAreas = form.getElementsByTagName('textarea');\r\n\r\n convertInputValues(inputs);\r\n convertInputValues(selects);\r\n convertInputValues(textAreas);\r\n\r\n return obj;\r\n};\r\n","'use strict';\r\n\r\nexport function simulateSCPIInvestmentResults(data, onSuccess, onFailed) {\r\n const route = API_ENDPOINT + 'simulateur-scpi/results';\r\n\r\n const body = JSON.stringify(data);\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\r\n if (response.value.success === true) {\r\n onSuccess(response.value.body.result);\r\n } else {\r\n onFailed(response.value.messages);\r\n }\r\n\r\n } else {\r\n onFailed();\r\n }\r\n };\r\n\r\n xmlhttp.open('POST', route, true);\r\n xmlhttp.setRequestHeader('Content-Type', 'application/json');\r\n xmlhttp.send(body);\r\n}\r\n","'use strict';\r\n\r\nexport function getScpiSubscriptionAlert(onSuccess, onFailed) {\r\n const route = API_ENDPOINT + 'afficher-alerte-scpi';\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('POST', route, true);\r\n xmlhttp.setRequestHeader('Content-Type', 'application/json');\r\n xmlhttp.send(null);\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","moment","monthsStrictRegex","monthsShortStrictRegex","monthsRegex","monthsParse","defineLocale","monthsShort","monthsShortRegex","longMonthsParse","shortMonthsParse","weekdaysShort","weekdaysMin","weekdaysParseExact","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","ss","mm","hh","dd","ww","MM","yy","dayOfMonthOrdinalParse","period","week","dow","doy","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","code","resolve","module","hookCallback","setHookCallback","callback","isArray","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","len","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","pow","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","arr2","minl","normalizeLocale","chooseLocale","names","next","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","time","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","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","get$1","index","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","isPossiblePrototype","$String","wellKnownSymbol","create","UNSCOPABLES","ArrayPrototype","configurable","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","O","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iterator","iteratorMethod","done","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","includes","uncurryThis","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","every","find","findIndex","filterReject","fails","V8_VERSION","SPECIES","METHOD_NAME","constructor","foo","Boolean","method","originalArray","C","arraySpeciesConstructor","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","object","stringSlice","it","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","f","getOwnPropertyDescriptor","getPrototypeOf","DESCRIPTORS","createPropertyDescriptor","bitmap","enumerable","writable","makeBuiltIn","descriptor","defineGlobalProperty","simple","global","unsafe","nonConfigurable","nonWritable","globalThis","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentCreateElement","DOMTokenListPrototype","process","Deno","versions","v8","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","NATIVE_BIND","FunctionPrototype","Reflect","aCallable","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","namespace","classof","getMethod","isNullOrUndefined","Iterators","usingIterator","replacer","rawLength","keysLength","root","V","P","check","g","getBuiltIn","propertyIsEnumerable","store","functionToString","inspectSource","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","metadata","facade","STATE","enforce","getterFor","documentAll","all","noop","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","replacement","feature","detection","normalize","POLYFILL","NATIVE","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","kind","innerResult","innerError","IteratorPrototype","setToStringTag","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","$","IS_PURE","FunctionName","createIteratorConstructor","setPrototypeOf","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","arity","activeXDocument","definePropertiesModule","enumBugKeys","html","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","src","contentWindow","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","props","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","propertyIsEnumerableModule","$getOwnPropertyNames","arraySlice","windowNames","getWindowNames","internalObjectKeys","getOwnPropertySymbols","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","$propertyIsEnumerable","NASHORN_BUG","uncurryThisAccessor","requireObjectCoercible","aPossiblePrototype","CORRECT_SETTER","__proto__","pref","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","re","str","raw","groups","sticky","charsAdded","strCopy","multiline","hasIndices","ignoreCase","dotAll","unicode","unicodeSets","regExpFlags","RegExpPrototype","R","$RegExp","MISSED_STICKY","TAG","uid","SHARED","copyright","license","toIntegerOrInfinity","charCodeAt","CONVERT_TO_STRING","first","size","codeAt","$RangeError","RangeError","count","Infinity","symbol","SymbolPrototype","TO_PRIMITIVE","hint","NATIVE_SYMBOL","keyFor","integer","isSymbol","ordinaryToPrimitive","exoticToPrim","toPrimitive","postfix","random","wrappedWellKnownSymbolModule","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$filter","arrayMethodHasSpeciesSupport","checkCorrectnessOfIteration","iterable","$indexOf","arrayMethodIsStrict","nativeIndexOf","NEGATIVE_ZERO","searchElement","addToUnscopables","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","iterated","Arguments","nativeJoin","$map","nativeSlice","HAS_SPECIES_SUPPORT","start","end","Constructor","fin","FUNCTION_NAME_EXISTS","defineBuiltInAccessor","nameRE","regExpExec","getReplacerFunction","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","prev","space","thisNumberValue","$repeat","repeat","nativeToFixed","multiply","c2","divide","dataToString","fractionDigits","z","fractDigits","x2","log","$getOwnPropertySymbols","nativeKeys","$toString","getRegExpFlags","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","STRING_ITERATOR","point","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","defineSymbolToPrimitive","$forEach","HIDDEN","SYMBOL","QObject","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","fallbackDefineProperty","ObjectPrototypeDescriptor","setSymbolDescriptor","description","$defineProperties","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","thisSymbolValue","symbolDescriptiveString","regexp","desc","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","sym","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","definition","nmd","paths","_typeof","_newArrowCheck","getMonabanqRates","loanAmount","onSuccess","onFailed","params","xmlhttp","XMLHttpRequest","onreadystatechange","readyState","status","response","responseText","API_ENDPOINT","setRequestHeader","send","ConditionallyDisplayedElement","displayIf","triggerSupportAttributeName","triggerSupportElement","observerConfig","attributes","childList","characterData","MutationObserver","mutations","attributeName","observe","KEYCODE","Dropdown","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","initFilesInputs","dropdownElements","initDropdowns","reCaptchaKeyInput","reCaptchaTokenInputElement","reCaptchaKey","submit","showSubmitCTASpinner","errorAlertElement","grecaptcha","ready","execute","action","then","catch","submitCTAElement","loaderElement","initConditionalElements","conditionallyDisplayedElements","updateDropdownOptions","dropdown","showDropdownSpinner","hideDropdownSpinner","hideSubmitCTASpinner","Modal","getElementsByClassName","isLarger","isAlignCenter","wrapperModifier","closeSymbol","CLOSEMODALSYMBOL","clearContent","wrapperElement","modalCloseCTAElements","hide","show","modalContentWrapperElement","contentWrapperElement","updateStyles","rect","scrollLeft","documentElement","Tooltip","tooltipId","updatePosition","leftPosition","clientWidth","innerWidth","zIndex","isShown","tooltipContent","modal","cookie","toGMTString","getValue","require","monabanqLoanMaxAmount","investment","scpiSimulatorCalculations","distribution","productPricesArray","totalOfProducts","distributionArray","remainingInvestment","cheaperProductPrice","cheaperProductKey","productPrice","remainingInvestmentForProduct","totalCarbonFootprint","productCarbonFootprintsArray","totalInvestment","loanPersonalContribution","maxLoanAmount","taeg","rate","calcTaegMonabanq","monthly","amount","fees","arrayDate","arrayMonthly","arrayDateMonthly","fraisMoinsEmprunt","dateTemp","tempDate","Flow","xirr","guess","irrResult","irrResultDeriv","frac","positive","negative","newRate","epsRate","resultValue","resultRate","iteration","contLoop","XIRR","loanDuration","getMonthly","term","leanAmount","_createForOfIteratorHelper","_arrayLikeToArray","_unsupportedIterableToArray","_n","return","ctasExpandingAccordions","initCtasExpandingAccordions","_loop","ctaExpandingAccordion","CustomEvent","detail","updateBindingsInRows","productItemElements","productItemElementsCopy","distributionInputElement","priceBinding","price","toLocaleString","currency","maximumFractionDigits","minimumFractionDigits","percentageBinding","percentage","carbonFootprintBinding","carbonFootprint","updateTotalsBindings","totalInvestmentBinding","totalCarbonFootprintBinding","fillMonabanqTAEGAndMonthlyInputs","monabanqLoanAmount","monabanqLoanDuration","monabanqLoanWarrantyFeesInputElement","monabanqLoanWarrantyFees","monabanqLoanWarrantyFeesArray","selectionLength","monabanqLoanTAEGInputElement","monabanqLoanMonthlyInputElement","monabanqLoanBookingFees","monabanqLoanRateInputElement","toggleCheckboxesState","checkboxElements","notCheckedCheckboxElements","disabledCheckboxElements","checkedCheckboxElements","checked","parentProductItemElement","selectionLimit","getKeysOfDisabledDistributionInputs","disabledDistributionInputElements","getSelectedProductsPricesArray","keysOfDisabledDistributionInputsArray","selectedProductsPricesArray","updateLoanInputs","monabanqLoanAmountInputElement","monabanqLoanMinAmount","setMaxValueToMonabanqLoanAmountCTAElement","monabanqLoanDurationSelectElement","creditInstitutionLoanDurationInputElement","monabanqLoanPersonalContributionInputElement","form","submitEvent","formData","convertInputValues","elements","inputs","selects","textAreas","convertedFormValuesToJSON","srcElement","distributionInputElements","Distribution","Slug","Value","NetSalary1","NetSalary2","PropertyIncome","OtherIncome","TotalOfFamilyIncomeSplits","IsSingleParentFamily","Hypothesis","monabanqLoanAccordion","creditInstitutionAccordion","MonabanqLoanAmount","MonabanqLoanDuration","MonabanqLoanRate","MonabanqLoanBookingFees","MonabanqLoanWarrantyFees","CreditInstitutionLoanAmount","CreditInstitutionInterestRate","CreditInstitutionLoanDuration","CreditInstitutionLoanType","success","messages","simulateSCPIInvestmentResults","_this5","tooltipCTAElements","tooltips","tooltip","tc_vars","serializeForm","_step","FormData","_iterator","tags","dataToSend","tagInfo","page_name","tagForm","tagDest","tC","initTagCoElement","simulationScpi","exception","matomoData","pushData","_mtm","outerHTML","_this4","confirmElement","closeButton","location","href","displaySubscriptionAlertModal","confirmAlertReadingInputElement","investmentInputElement","distributionCheckboxElements","isAutomaticDistributionDisabled","monabanqLoanBookingFeesInputElement","setMaxValueToCreditInstitutionLoanAmountCTAElement","productsDataArray","monabanqLoanRate","monabanqLoanRatesObjectsForAmount","scpi","slug","sharePrice","filteredRatesObjects","updateLoanInfo","timeout","typingTimeout","ratesObjects","lastOptionElement","_this2","optionElement","_this3","currentInputKey","currentProductDistribution","setAlertAccordionExpansion","setMonabanqLoanAccordionCollapse","conditionAttributeName","setCreditInstitutionLoanAccordionCollapse","setMonabanqLoanAccordionExpansion","setCreditInstitutionLoanAccordionExpansion","setFiscalImpactAccordionExpansion","setFiscalImpactAccordionCollapse","hypothesisRadioInputElements","negativeHypothesisIsSelectedSupportElement","neutralHypothesisIsSelectedSupportElement","positiveHypothesisIsSelectedSupportElement","negativeHypothesisIsSelected","neutralHypothesisIsSelected","positiveHypothesisIsSelected"],"sourceRoot":""}