{"version":3,"file":"js/order_newsletter.e488b74f.js","mappings":"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","sources":["webpack://vero/./src/shared/js/components/OrderNewsletter.vue?b3a8","webpack://vero/./node_modules/vee-validate/dist/vee-validate.esm.js","webpack://vero/src/shared/js/components/OrderNewsletter.vue","webpack://vero/./src/shared/js/components/OrderNewsletter.vue?5c59","webpack://vero/./src/shared/js/components/OrderNewsletter.vue","webpack://vero/./node_modules/call-bind/callBound.js","webpack://vero/./node_modules/call-bind/index.js","webpack://vero/./node_modules/function-bind/implementation.js","webpack://vero/./node_modules/function-bind/index.js","webpack://vero/./node_modules/get-intrinsic/index.js","webpack://vero/./node_modules/has-symbols/index.js","webpack://vero/./node_modules/has-symbols/shams.js","webpack://vero/./node_modules/has/src/index.js","webpack://vero/./node_modules/object-inspect/index.js","webpack://vero/./node_modules/qs/lib/formats.js","webpack://vero/./node_modules/qs/lib/index.js","webpack://vero/./node_modules/qs/lib/parse.js","webpack://vero/./node_modules/qs/lib/stringify.js","webpack://vero/./node_modules/qs/lib/utils.js","webpack://vero/./node_modules/side-channel/index.js","webpack://vero/./node_modules/vee-validate/dist/locale/fi.js","webpack://vero/./node_modules/vee-validate/dist/locale/sv.js"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.isIE9)?_c('div',[_c('form',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.orderSuccess),expression:\"!orderSuccess\"}],on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('label',{attrs:{\"for\":\"email\"}},[_vm._v(_vm._s(_vm.$trans('/common/email'))+\":\")]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('email'),expression:\"'email'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.email),expression:\"email\"}],class:{ input: true, 'is-danger': _vm.vErrors.has('email') },attrs:{\"data-vv-validate-on\":\"none\",\"id\":\"email\",\"name\":\"email\",\"type\":\"text\",\"autocomplete\":\"on\",\"placeholder\":_vm.$trans('/common/email'),\"aria-describedby\":\"email_error\"},domProps:{\"value\":(_vm.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.email=$event.target.value}}}),_c('button',{staticClass:\"btn\",attrs:{\"type\":\"submit\",\"disabled\":!_vm.email}},[_vm._v(\" \"+_vm._s(_vm.$trans('/common/subscribe'))+\" \")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLoading),expression:\"isLoading\"}],staticClass:\"subsite-order-newsletter-block__loader\"},[_c('div',{staticClass:\"loader\"})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.vErrors.has('email')),expression:\"vErrors.has('email')\"}],staticClass:\"subsite-order-newsletter-block__validate\",attrs:{\"id\":\"email_error\",\"role\":\"alert\"}},[_vm._v(\" \"+_vm._s(_vm.vErrors.first('email'))+\" \")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.orderSuccess),expression:\"orderSuccess\"}]},[_c('h3',[_vm._v(_vm._s(_vm.$trans('/common/SubscribeSuccess')))])])]):_c('div',[_c('a',{staticClass:\"btn\",attrs:{\"href\":this.url,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$trans('/common/subscribe')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * vee-validate v2.2.13\n * (c) 2019 Abdelrahman Awad\n * @license MIT\n */\n// \n\nvar isTextInput = function (el) {\n return includes(['text', 'password', 'search', 'email', 'tel', 'url', 'textarea', 'number'], el.type);\n};\n\nvar isCheckboxOrRadioInput = function (el) {\n return includes(['radio', 'checkbox'], el.type);\n};\n\nvar isDateInput = function (el) {\n return includes(['date', 'week', 'month', 'datetime-local', 'time'], el.type);\n};\n\n/**\n * Gets the data attribute. the name must be kebab-case.\n */\nvar getDataAttribute = function (el, name) { return el.getAttribute((\"data-vv-\" + name)); };\n\nvar isNaN$1 = function (value) {\n if ('isNaN' in Number) {\n return Number.isNaN(value);\n }\n\n // eslint-disable-next-line\n return typeof(value) === 'number' && value !== value;\n};\n\n/**\n * Checks if the values are either null or undefined.\n */\nvar isNullOrUndefined = function () {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n return values.every(function (value) {\n return value === null || value === undefined;\n });\n};\n\n/**\n * Creates the default flags object.\n */\nvar createFlags = function () { return ({\n untouched: true,\n touched: false,\n dirty: false,\n pristine: true,\n valid: null,\n invalid: null,\n validated: false,\n pending: false,\n required: false,\n changed: false\n}); };\n\n/**\n * Shallow object comparison.\n */\nvar isEqual = function (lhs, rhs) {\n if (lhs instanceof RegExp && rhs instanceof RegExp) {\n return isEqual(lhs.source, rhs.source) && isEqual(lhs.flags, rhs.flags);\n }\n\n if (Array.isArray(lhs) && Array.isArray(rhs)) {\n if (lhs.length !== rhs.length) { return false; }\n\n for (var i = 0; i < lhs.length; i++) {\n if (!isEqual(lhs[i], rhs[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n // if both are objects, compare each key recursively.\n if (isObject(lhs) && isObject(rhs)) {\n return Object.keys(lhs).every(function (key) {\n return isEqual(lhs[key], rhs[key]);\n }) && Object.keys(rhs).every(function (key) {\n return isEqual(lhs[key], rhs[key]);\n });\n }\n\n if (isNaN$1(lhs) && isNaN$1(rhs)) {\n return true;\n }\n\n return lhs === rhs;\n};\n\n/**\n * Determines the input field scope.\n */\nvar getScope = function (el) {\n var scope = getDataAttribute(el, 'scope');\n if (isNullOrUndefined(scope)) {\n var form = getForm(el);\n\n if (form) {\n scope = getDataAttribute(form, 'scope');\n }\n }\n\n return !isNullOrUndefined(scope) ? scope : null;\n};\n\n/**\n * Get the closest form element.\n */\nvar getForm = function (el) {\n if (isNullOrUndefined(el)) { return null; }\n\n if (el.tagName === 'FORM') { return el; }\n\n if (!isNullOrUndefined(el.form)) { return el.form; }\n\n return !isNullOrUndefined(el.parentNode) ? getForm(el.parentNode) : null;\n};\n\n/**\n * Gets the value in an object safely.\n */\nvar getPath = function (path, target, def) {\n if ( def === void 0 ) def = undefined;\n\n if (!path || !target) { return def; }\n\n var value = target;\n path.split('.').every(function (prop) {\n if (prop in value) {\n value = value[prop];\n\n return true;\n }\n\n value = def;\n\n return false;\n });\n\n return value;\n};\n\n/**\n * Checks if path exists within an object.\n */\nvar hasPath = function (path, target) {\n var obj = target;\n var previousPath = null;\n var isNullOrNonObject = false;\n var isValidPath = path.split('.').reduce(function (reducer, prop) {\n if (obj == null || typeof obj !== 'object') {\n isNullOrNonObject = true;\n return reducer && false;\n }\n\n if (prop in obj) {\n obj = obj[prop];\n previousPath = previousPath === null ? prop : previousPath + '.' + prop;\n\n return reducer && true;\n }\n\n return reducer && false;\n }, true);\n\n if (process.env.NODE_ENV !== 'production') {\n if (isNullOrNonObject) {\n throw new Error(previousPath + ' is not an object');\n }\n }\n\n return isValidPath;\n};\n\n/**\n * Parses a rule string expression.\n */\nvar parseRule = function (rule) {\n var params = [];\n var name = rule.split(':')[0];\n\n if (includes(rule, ':')) {\n params = rule.split(':').slice(1).join(':').split(',');\n }\n\n return { name: name, params: params };\n};\n\n/**\n * Debounces a function.\n */\nvar debounce = function (fn, wait, token) {\n if ( wait === void 0 ) wait = 0;\n if ( token === void 0 ) token = { cancelled: false };\n\n if (wait === 0) {\n return fn;\n }\n\n var timeout;\n\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var later = function () {\n timeout = null;\n\n // check if the fn call was cancelled.\n if (!token.cancelled) { fn.apply(void 0, args); }\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (!timeout) { fn.apply(void 0, args); }\n };\n};\n\n/**\n * Appends a rule definition to a list of rules.\n */\nvar appendRule = function (rule, rules) {\n if (!rules) {\n return normalizeRules(rule);\n }\n\n if (!rule) {\n return normalizeRules(rules);\n }\n\n if (typeof rules === 'string') {\n rules = normalizeRules(rules);\n }\n\n return assign({}, rules, normalizeRules(rule));\n};\n\n/**\n * Normalizes the given rules expression.\n */\nvar normalizeRules = function (rules) {\n // if falsy value return an empty object.\n if (!rules) {\n return {};\n }\n\n if (isObject(rules)) {\n // $FlowFixMe\n return Object.keys(rules).reduce(function (prev, curr) {\n var params = [];\n // $FlowFixMe\n if (rules[curr] === true) {\n params = [];\n } else if (Array.isArray(rules[curr])) {\n params = rules[curr];\n } else if (isObject(rules[curr])) {\n params = rules[curr];\n } else {\n params = [rules[curr]];\n }\n\n // $FlowFixMe\n if (rules[curr] !== false) {\n prev[curr] = params;\n }\n\n return prev;\n }, {});\n }\n\n if (typeof rules !== 'string') {\n warn('rules must be either a string or an object.');\n return {};\n }\n\n return rules.split('|').reduce(function (prev, rule) {\n var parsedRule = parseRule(rule);\n if (!parsedRule.name) {\n return prev;\n }\n\n prev[parsedRule.name] = parsedRule.params;\n return prev;\n }, {});\n};\n\n/**\n * Emits a warning to the console.\n */\nvar warn = function (message) {\n console.warn((\"[vee-validate] \" + message)); // eslint-disable-line\n};\n\n/**\n * Creates a branded error object.\n */\nvar createError = function (message) { return new Error((\"[vee-validate] \" + message)); };\n\n/**\n * Checks if the value is an object.\n */\nvar isObject = function (obj) { return obj !== null && obj && typeof obj === 'object' && ! Array.isArray(obj); };\n\n/**\n * Checks if a function is callable.\n */\nvar isCallable = function (func) { return typeof func === 'function'; };\n\n/**\n * Check if element has the css class on it.\n */\nvar hasClass = function (el, className) {\n if (el.classList) {\n return el.classList.contains(className);\n }\n\n return !!el.className.match(new RegExp((\"(\\\\s|^)\" + className + \"(\\\\s|$)\")));\n};\n\n/**\n * Adds the provided css className to the element.\n */\nvar addClass = function (el, className) {\n if (el.classList) {\n el.classList.add(className);\n return;\n }\n\n if (!hasClass(el, className)) {\n el.className += \" \" + className;\n }\n};\n\n/**\n * Remove the provided css className from the element.\n */\nvar removeClass = function (el, className) {\n if (el.classList) {\n el.classList.remove(className);\n return;\n }\n\n if (hasClass(el, className)) {\n var reg = new RegExp((\"(\\\\s|^)\" + className + \"(\\\\s|$)\"));\n el.className = el.className.replace(reg, ' ');\n }\n};\n\n/**\n * Adds or removes a class name on the input depending on the status flag.\n */\nvar toggleClass = function (el, className, status) {\n if (!el || !className) { return; }\n\n if (Array.isArray(className)) {\n className.forEach(function (item) { return toggleClass(el, item, status); });\n return;\n }\n\n if (status) {\n return addClass(el, className);\n }\n\n removeClass(el, className);\n};\n\n/**\n * Converts an array-like object to array, provides a simple polyfill for Array.from\n */\nvar toArray = function (arrayLike) {\n if (isCallable(Array.from)) {\n return Array.from(arrayLike);\n }\n\n var array = [];\n var length = arrayLike.length;\n /* istanbul ignore next */\n for (var i = 0; i < length; i++) {\n array.push(arrayLike[i]);\n }\n\n /* istanbul ignore next */\n return array;\n};\n\n/**\n * Converts an array-like object to array and place other elements in an array\n */\nvar ensureArray = function (arrayLike) {\n if (Array.isArray(arrayLike)) {\n return [].concat( arrayLike );\n }\n var array = toArray(arrayLike);\n return isEmptyArray(array) ? [arrayLike] : array;\n};\n\n/**\n * Assign polyfill from the mdn.\n */\nvar assign = function (target) {\n var others = [], len = arguments.length - 1;\n while ( len-- > 0 ) others[ len ] = arguments[ len + 1 ];\n\n /* istanbul ignore else */\n if (isCallable(Object.assign)) {\n return Object.assign.apply(Object, [ target ].concat( others ));\n }\n\n /* istanbul ignore next */\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n /* istanbul ignore next */\n var to = Object(target);\n /* istanbul ignore next */\n others.forEach(function (arg) {\n // Skip over if undefined or null\n if (arg != null) {\n Object.keys(arg).forEach(function (key) {\n to[key] = arg[key];\n });\n }\n });\n /* istanbul ignore next */\n return to;\n};\n\nvar id = 0;\nvar idTemplate = '{id}';\n\n/**\n * Generates a unique id.\n */\nvar uniqId = function () {\n // handle too many uses of uniqId, although unlikely.\n if (id >= 9999) {\n id = 0;\n // shift the template.\n idTemplate = idTemplate.replace('{id}', '_{id}');\n }\n\n id++;\n var newId = idTemplate.replace('{id}', String(id));\n\n return newId;\n};\n\nvar findIndex = function (arrayLike, predicate) {\n var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\n for (var i = 0; i < array.length; i++) {\n if (predicate(array[i])) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * finds the first element that satisfies the predicate callback, polyfills array.find\n */\nvar find = function (arrayLike, predicate) {\n var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\n var idx = findIndex(array, predicate);\n\n return idx === -1 ? undefined : array[idx];\n};\n\nvar isBuiltInComponent = function (vnode) {\n if (!vnode) {\n return false;\n }\n\n var tag = vnode.componentOptions.tag;\n\n return /^(keep-alive|transition|transition-group)$/.test(tag);\n};\n\nvar makeDelayObject = function (events, delay, delayConfig) {\n if (typeof delay === 'number') {\n return events.reduce(function (prev, e) {\n prev[e] = delay;\n return prev;\n }, {});\n }\n\n return events.reduce(function (prev, e) {\n if (typeof delay === 'object' && e in delay) {\n prev[e] = delay[e];\n return prev;\n }\n\n if (typeof delayConfig === 'number') {\n prev[e] = delayConfig;\n return prev;\n }\n\n prev[e] = (delayConfig && delayConfig[e]) || 0;\n\n return prev;\n }, {});\n};\n\nvar deepParseInt = function (input) {\n if (typeof input === 'number') { return input; }\n\n if (typeof input === 'string') { return parseInt(input); }\n\n var map = {};\n for (var element in input) {\n map[element] = parseInt(input[element]);\n }\n\n return map;\n};\n\nvar merge = function (target, source) {\n if (! (isObject(target) && isObject(source))) {\n return target;\n }\n\n Object.keys(source).forEach(function (key) {\n var obj, obj$1;\n\n if (isObject(source[key])) {\n if (! target[key]) {\n assign(target, ( obj = {}, obj[key] = {}, obj ));\n }\n\n merge(target[key], source[key]);\n return;\n }\n\n assign(target, ( obj$1 = {}, obj$1[key] = source[key], obj$1 ));\n });\n\n return target;\n};\n\nvar fillRulesFromElement = function (el, rules) {\n if (el.required) {\n rules = appendRule('required', rules);\n }\n\n if (isTextInput(el)) {\n if (el.type === 'email') {\n rules = appendRule((\"email\" + (el.multiple ? ':multiple' : '')), rules);\n }\n\n if (el.pattern) {\n rules = appendRule({ regex: el.pattern }, rules);\n }\n\n // 524288 is the max on some browsers and test environments.\n if (el.maxLength >= 0 && el.maxLength < 524288) {\n rules = appendRule((\"max:\" + (el.maxLength)), rules);\n }\n\n if (el.minLength > 0) {\n rules = appendRule((\"min:\" + (el.minLength)), rules);\n }\n\n if (el.type === 'number') {\n rules = appendRule('decimal', rules);\n if (el.min !== '') {\n rules = appendRule((\"min_value:\" + (el.min)), rules);\n }\n\n if (el.max !== '') {\n rules = appendRule((\"max_value:\" + (el.max)), rules);\n }\n }\n\n return rules;\n }\n\n if (isDateInput(el)) {\n var timeFormat = el.step && Number(el.step) < 60 ? 'HH:mm:ss' : 'HH:mm';\n\n if (el.type === 'date') {\n return appendRule('date_format:yyyy-MM-dd', rules);\n }\n\n if (el.type === 'datetime-local') {\n return appendRule((\"date_format:yyyy-MM-ddT\" + timeFormat), rules);\n }\n\n if (el.type === 'month') {\n return appendRule('date_format:yyyy-MM', rules);\n }\n\n if (el.type === 'week') {\n return appendRule('date_format:yyyy-[W]WW', rules);\n }\n\n if (el.type === 'time') {\n return appendRule((\"date_format:\" + timeFormat), rules);\n }\n }\n\n return rules;\n};\n\nvar values = function (obj) {\n if (isCallable(Object.values)) {\n return Object.values(obj);\n }\n\n // fallback to keys()\n /* istanbul ignore next */\n return Object.keys(obj).map(function (k) { return obj[k]; });\n};\n\nvar parseSelector = function (selector) {\n var rule = null;\n if (includes(selector, ':')) {\n rule = selector.split(':').pop();\n selector = selector.replace((\":\" + rule), '');\n }\n\n if (selector[0] === '#') {\n return {\n id: selector.slice(1),\n rule: rule,\n name: null,\n scope: null\n };\n }\n\n var scope = null;\n var name = selector;\n if (includes(selector, '.')) {\n var parts = selector.split('.');\n scope = parts[0];\n name = parts.slice(1).join('.');\n }\n\n return {\n id: null,\n scope: scope,\n name: name,\n rule: rule\n };\n};\n\nvar includes = function (collection, item) {\n return collection.indexOf(item) !== -1;\n};\n\nvar isEmptyArray = function (arr) {\n return Array.isArray(arr) && arr.length === 0;\n};\n\nvar defineNonReactive = function (obj, prop, value) {\n Object.defineProperty(obj, prop, {\n configurable: false,\n writable: true,\n value: value\n });\n};\n\n// \n\nvar LOCALE = 'en';\n\nvar Dictionary = function Dictionary (dictionary) {\n if ( dictionary === void 0 ) dictionary = {};\n\n this.container = {};\n this.merge(dictionary);\n};\n\nvar prototypeAccessors = { locale: { configurable: true } };\n\nprototypeAccessors.locale.get = function () {\n return LOCALE;\n};\n\nprototypeAccessors.locale.set = function (value) {\n LOCALE = value || 'en';\n};\n\nDictionary.prototype.hasLocale = function hasLocale (locale) {\n return !!this.container[locale];\n};\n\nDictionary.prototype.setDateFormat = function setDateFormat (locale, format) {\n if (!this.container[locale]) {\n this.container[locale] = {};\n }\n\n this.container[locale].dateFormat = format;\n};\n\nDictionary.prototype.getDateFormat = function getDateFormat (locale) {\n if (!this.container[locale] || !this.container[locale].dateFormat) {\n return null;\n }\n\n return this.container[locale].dateFormat;\n};\n\nDictionary.prototype.getMessage = function getMessage (locale, key, data) {\n var message = null;\n if (!this.hasMessage(locale, key)) {\n message = this._getDefaultMessage(locale);\n } else {\n message = this.container[locale].messages[key];\n }\n\n return isCallable(message) ? message.apply(void 0, data) : message;\n};\n\n/**\n * Gets a specific message for field. falls back to the rule message.\n */\nDictionary.prototype.getFieldMessage = function getFieldMessage (locale, field, key, data) {\n if (!this.hasLocale(locale)) {\n return this.getMessage(locale, key, data);\n }\n\n var dict = this.container[locale].custom && this.container[locale].custom[field];\n if (!dict || !dict[key]) {\n return this.getMessage(locale, key, data);\n }\n\n var message = dict[key];\n return isCallable(message) ? message.apply(void 0, data) : message;\n};\n\nDictionary.prototype._getDefaultMessage = function _getDefaultMessage (locale) {\n if (this.hasMessage(locale, '_default')) {\n return this.container[locale].messages._default;\n }\n\n return this.container.en.messages._default;\n};\n\nDictionary.prototype.getAttribute = function getAttribute (locale, key, fallback) {\n if ( fallback === void 0 ) fallback = '';\n\n if (!this.hasAttribute(locale, key)) {\n return fallback;\n }\n\n return this.container[locale].attributes[key];\n};\n\nDictionary.prototype.hasMessage = function hasMessage (locale, key) {\n return !! (\n this.hasLocale(locale) &&\n this.container[locale].messages &&\n this.container[locale].messages[key]\n );\n};\n\nDictionary.prototype.hasAttribute = function hasAttribute (locale, key) {\n return !! (\n this.hasLocale(locale) &&\n this.container[locale].attributes &&\n this.container[locale].attributes[key]\n );\n};\n\nDictionary.prototype.merge = function merge$1 (dictionary) {\n merge(this.container, dictionary);\n};\n\nDictionary.prototype.setMessage = function setMessage (locale, key, message) {\n if (! this.hasLocale(locale)) {\n this.container[locale] = {\n messages: {},\n attributes: {}\n };\n }\n \n if (!this.container[locale].messages) {\n this.container[locale].messages = {};\n }\n\n this.container[locale].messages[key] = message;\n};\n\nDictionary.prototype.setAttribute = function setAttribute (locale, key, attribute) {\n if (! this.hasLocale(locale)) {\n this.container[locale] = {\n messages: {},\n attributes: {}\n };\n }\n\n this.container[locale].attributes[key] = attribute;\n};\n\nObject.defineProperties( Dictionary.prototype, prototypeAccessors );\n\nvar drivers = {\n default: new Dictionary({\n en: {\n messages: {},\n attributes: {},\n custom: {}\n }\n })\n};\n\nvar currentDriver = 'default';\n\nvar DictionaryResolver = function DictionaryResolver () {};\n\nDictionaryResolver._checkDriverName = function _checkDriverName (driver) {\n if (!driver) {\n throw createError('you must provide a name to the dictionary driver');\n }\n};\n\nDictionaryResolver.setDriver = function setDriver (driver, implementation) {\n if ( implementation === void 0 ) implementation = null;\n\n this._checkDriverName(driver);\n if (implementation) {\n drivers[driver] = implementation;\n }\n\n currentDriver = driver;\n};\n\nDictionaryResolver.getDriver = function getDriver () {\n return drivers[currentDriver];\n};\n\n// \n\nvar ErrorBag = function ErrorBag (errorBag, id) {\n if ( errorBag === void 0 ) errorBag = null;\n if ( id === void 0 ) id = null;\n\n this.vmId = id || null;\n // make this bag a mirror of the provided one, sharing the same items reference.\n if (errorBag && errorBag instanceof ErrorBag) {\n this.items = errorBag.items;\n } else {\n this.items = [];\n }\n};\n\nErrorBag.prototype[typeof Symbol === 'function' ? Symbol.iterator : '@@iterator'] = function () {\n var this$1 = this;\n\n var index = 0;\n return {\n next: function () {\n return { value: this$1.items[index++], done: index > this$1.items.length };\n }\n };\n};\n\n/**\n * Adds an error to the internal array.\n */\nErrorBag.prototype.add = function add (error) {\n var ref;\n\n (ref = this.items).push.apply(\n ref, this._normalizeError(error)\n );\n};\n\n/**\n * Normalizes passed errors to an error array.\n */\nErrorBag.prototype._normalizeError = function _normalizeError (error) {\n var this$1 = this;\n\n if (Array.isArray(error)) {\n return error.map(function (e) {\n e.scope = !isNullOrUndefined(e.scope) ? e.scope : null;\n e.vmId = !isNullOrUndefined(e.vmId) ? e.vmId : (this$1.vmId || null);\n\n return e;\n });\n }\n\n error.scope = !isNullOrUndefined(error.scope) ? error.scope : null;\n error.vmId = !isNullOrUndefined(error.vmId) ? error.vmId : (this.vmId || null);\n\n return [error];\n};\n\n/**\n * Regenrates error messages if they have a generator function.\n */\nErrorBag.prototype.regenerate = function regenerate () {\n this.items.forEach(function (i) {\n i.msg = isCallable(i.regenerate) ? i.regenerate() : i.msg;\n });\n};\n\n/**\n * Updates a field error with the new field scope.\n */\nErrorBag.prototype.update = function update (id, error) {\n var item = find(this.items, function (i) { return i.id === id; });\n if (!item) {\n return;\n }\n\n var idx = this.items.indexOf(item);\n this.items.splice(idx, 1);\n item.scope = error.scope;\n this.items.push(item);\n};\n\n/**\n * Gets all error messages from the internal array.\n */\nErrorBag.prototype.all = function all (scope) {\n var this$1 = this;\n\n var filterFn = function (item) {\n var matchesScope = true;\n var matchesVM = true;\n if (!isNullOrUndefined(scope)) {\n matchesScope = item.scope === scope;\n }\n\n if (!isNullOrUndefined(this$1.vmId)) {\n matchesVM = item.vmId === this$1.vmId;\n }\n\n return matchesVM && matchesScope;\n };\n\n return this.items.filter(filterFn).map(function (e) { return e.msg; });\n};\n\n/**\n * Checks if there are any errors in the internal array.\n */\nErrorBag.prototype.any = function any (scope) {\n var this$1 = this;\n\n var filterFn = function (item) {\n var matchesScope = true;\n var matchesVM = true;\n if (!isNullOrUndefined(scope)) {\n matchesScope = item.scope === scope;\n }\n\n if (!isNullOrUndefined(this$1.vmId)) {\n matchesVM = item.vmId === this$1.vmId;\n }\n\n return matchesVM && matchesScope;\n };\n\n return !!this.items.filter(filterFn).length;\n};\n\n/**\n * Removes all items from the internal array.\n */\nErrorBag.prototype.clear = function clear (scope) {\n var this$1 = this;\n\n var matchesVM = isNullOrUndefined(this.vmId) ? function () { return true; } : function (i) { return i.vmId === this$1.vmId; };\n var matchesScope = function (i) { return i.scope === scope; };\n if (arguments.length === 0) {\n matchesScope = function () { return true; };\n } else if (isNullOrUndefined(scope)) {\n scope = null;\n }\n\n for (var i = 0; i < this.items.length; ++i) {\n if (matchesVM(this.items[i]) && matchesScope(this.items[i])) {\n this.items.splice(i, 1);\n --i;\n }\n }\n};\n\n/**\n * Collects errors into groups or for a specific field.\n */\nErrorBag.prototype.collect = function collect (field, scope, map) {\n var this$1 = this;\n if ( map === void 0 ) map = true;\n\n var isSingleField = !isNullOrUndefined(field) && !field.includes('*');\n var groupErrors = function (items) {\n var errors = items.reduce(function (collection, error) {\n if (!isNullOrUndefined(this$1.vmId) && error.vmId !== this$1.vmId) {\n return collection;\n }\n\n if (!collection[error.field]) {\n collection[error.field] = [];\n }\n\n collection[error.field].push(map ? error.msg : error);\n\n return collection;\n }, {});\n\n // reduce the collection to be a single array.\n if (isSingleField) {\n return values(errors)[0] || [];\n }\n\n return errors;\n };\n\n if (isNullOrUndefined(field)) {\n return groupErrors(this.items);\n }\n\n var selector = isNullOrUndefined(scope) ? String(field) : (scope + \".\" + field);\n var ref = this._makeCandidateFilters(selector);\n var isPrimary = ref.isPrimary;\n var isAlt = ref.isAlt;\n\n var collected = this.items.reduce(function (prev, curr) {\n if (isPrimary(curr)) {\n prev.primary.push(curr);\n }\n\n if (isAlt(curr)) {\n prev.alt.push(curr);\n }\n\n return prev;\n }, { primary: [], alt: [] });\n\n collected = collected.primary.length ? collected.primary : collected.alt;\n\n return groupErrors(collected);\n};\n\n/**\n * Gets the internal array length.\n */\nErrorBag.prototype.count = function count () {\n var this$1 = this;\n\n if (this.vmId) {\n return this.items.filter(function (e) { return e.vmId === this$1.vmId; }).length;\n }\n\n return this.items.length;\n};\n\n/**\n * Finds and fetches the first error message for the specified field id.\n */\nErrorBag.prototype.firstById = function firstById (id) {\n var error = find(this.items, function (i) { return i.id === id; });\n\n return error ? error.msg : undefined;\n};\n\n/**\n * Gets the first error message for a specific field.\n */\nErrorBag.prototype.first = function first (field, scope) {\n if ( scope === void 0 ) scope = null;\n\n var selector = isNullOrUndefined(scope) ? field : (scope + \".\" + field);\n var match = this._match(selector);\n\n return match && match.msg;\n};\n\n/**\n * Returns the first error rule for the specified field\n */\nErrorBag.prototype.firstRule = function firstRule (field, scope) {\n var errors = this.collect(field, scope, false);\n\n return (errors.length && errors[0].rule) || undefined;\n};\n\n/**\n * Checks if the internal array has at least one error for the specified field.\n */\nErrorBag.prototype.has = function has (field, scope) {\n if ( scope === void 0 ) scope = null;\n\n return !!this.first(field, scope);\n};\n\n/**\n * Gets the first error message for a specific field and a rule.\n */\nErrorBag.prototype.firstByRule = function firstByRule (name, rule, scope) {\n if ( scope === void 0 ) scope = null;\n\n var error = this.collect(name, scope, false).filter(function (e) { return e.rule === rule; })[0];\n\n return (error && error.msg) || undefined;\n};\n\n/**\n * Gets the first error message for a specific field that not match the rule.\n */\nErrorBag.prototype.firstNot = function firstNot (name, rule, scope) {\n if ( rule === void 0 ) rule = 'required';\n if ( scope === void 0 ) scope = null;\n\n var error = this.collect(name, scope, false).filter(function (e) { return e.rule !== rule; })[0];\n\n return (error && error.msg) || undefined;\n};\n\n/**\n * Removes errors by matching against the id or ids.\n */\nErrorBag.prototype.removeById = function removeById (id) {\n var condition = function (item) { return item.id === id; };\n if (Array.isArray(id)) {\n condition = function (item) { return id.indexOf(item.id) !== -1; };\n }\n\n for (var i = 0; i < this.items.length; ++i) {\n if (condition(this.items[i])) {\n this.items.splice(i, 1);\n --i;\n }\n }\n};\n\n/**\n * Removes all error messages associated with a specific field.\n */\nErrorBag.prototype.remove = function remove (field, scope, vmId) {\n if (isNullOrUndefined(field)) {\n return;\n }\n\n var selector = isNullOrUndefined(scope) ? String(field) : (scope + \".\" + field);\n var ref = this._makeCandidateFilters(selector);\n var isPrimary = ref.isPrimary;\n var isAlt = ref.isAlt;\n var matches = function (item) { return isPrimary(item) || isAlt(item); };\n var shouldRemove = function (item) {\n if (isNullOrUndefined(vmId)) { return matches(item); }\n\n return matches(item) && item.vmId === vmId;\n };\n\n for (var i = 0; i < this.items.length; ++i) {\n if (shouldRemove(this.items[i])) {\n this.items.splice(i, 1);\n --i;\n }\n }\n};\n\nErrorBag.prototype._makeCandidateFilters = function _makeCandidateFilters (selector) {\n var this$1 = this;\n\n var matchesRule = function () { return true; };\n var matchesScope = function () { return true; };\n var matchesName = function () { return true; };\n var matchesVM = function () { return true; };\n\n var ref = parseSelector(selector);\n var id = ref.id;\n var rule = ref.rule;\n var scope = ref.scope;\n var name = ref.name;\n\n if (rule) {\n matchesRule = function (item) { return item.rule === rule; };\n }\n\n // match by id, can be combined with rule selection.\n if (id) {\n return {\n isPrimary: function (item) { return matchesRule(item) && (function (item) { return id === item.id; }); },\n isAlt: function () { return false; }\n };\n }\n\n if (isNullOrUndefined(scope)) {\n // if no scope specified, make sure the found error has no scope.\n matchesScope = function (item) { return isNullOrUndefined(item.scope); };\n } else {\n matchesScope = function (item) { return item.scope === scope; };\n }\n\n if (!isNullOrUndefined(name) && name !== '*') {\n matchesName = function (item) { return item.field === name; };\n }\n\n if (!isNullOrUndefined(this.vmId)) {\n matchesVM = function (item) { return item.vmId === this$1.vmId; };\n }\n\n // matches the first candidate.\n var isPrimary = function (item) {\n return matchesVM(item) && matchesName(item) && matchesRule(item) && matchesScope(item);\n };\n\n // matches a second candidate, which is a field with a name containing the '.' character.\n var isAlt = function (item) {\n return matchesVM(item) && matchesRule(item) && item.field === (scope + \".\" + name);\n };\n\n return {\n isPrimary: isPrimary,\n isAlt: isAlt\n };\n};\n\nErrorBag.prototype._match = function _match (selector) {\n if (isNullOrUndefined(selector)) {\n return undefined;\n }\n\n var ref = this._makeCandidateFilters(selector);\n var isPrimary = ref.isPrimary;\n var isAlt = ref.isAlt;\n\n return this.items.reduce(function (prev, item, idx, arr) {\n var isLast = idx === arr.length - 1;\n if (prev.primary) {\n return isLast ? prev.primary : prev;\n }\n\n if (isPrimary(item)) {\n prev.primary = item;\n }\n\n if (isAlt(item)) {\n prev.alt = item;\n }\n\n // keep going.\n if (!isLast) {\n return prev;\n }\n\n return prev.primary || prev.alt;\n }, {});\n};\n\nvar DEFAULT_CONFIG = {\n locale: 'en',\n delay: 0,\n errorBagName: 'errors',\n dictionary: null,\n fieldsBagName: 'fields',\n classes: false,\n classNames: null,\n events: 'input',\n inject: true,\n fastExit: true,\n aria: true,\n validity: false,\n mode: 'aggressive',\n useConstraintAttrs: true,\n i18n: null,\n i18nRootKey: 'validation'\n};\n\nvar currentConfig = assign({}, DEFAULT_CONFIG);\n\nvar resolveConfig = function (ctx) {\n var selfConfig = getPath('$options.$_veeValidate', ctx, {});\n\n return assign({}, currentConfig, selfConfig);\n};\n\nvar getConfig = function () { return currentConfig; };\n\nvar setConfig = function (newConf) {\n currentConfig = assign({}, currentConfig, newConf);\n};\n\n// VNode Utils\n\n// Gets the model object on the vnode.\nfunction findModel (vnode) {\n if (!vnode.data) {\n return null;\n }\n\n // Component Model\n if (vnode.data.model) {\n return vnode.data.model;\n }\n\n return !!(vnode.data.directives) && find(vnode.data.directives, function (d) { return d.name === 'model'; });\n}\n\nfunction extractChildren (vnode) {\n if (Array.isArray(vnode)) {\n return vnode;\n }\n\n if (Array.isArray(vnode.children)) {\n return vnode.children;\n }\n\n if (vnode.componentOptions && Array.isArray(vnode.componentOptions.children)) {\n return vnode.componentOptions.children;\n }\n\n return [];\n}\n\nfunction extractVNodes (vnode) {\n if (findModel(vnode)) {\n return [vnode];\n }\n\n var children = extractChildren(vnode);\n\n return children.reduce(function (nodes, node) {\n var candidates = extractVNodes(node);\n if (candidates.length) {\n nodes.push.apply(nodes, candidates);\n }\n\n return nodes;\n }, []);\n}\n\n// Resolves v-model config if exists.\nfunction findModelConfig (vnode) {\n if (!vnode.componentOptions) { return null; }\n\n return vnode.componentOptions.Ctor.options.model;\n}\n// Adds a listener to vnode listener object.\nfunction mergeVNodeListeners (obj, eventName, handler) {\n // Has a single listener.\n if (isCallable(obj[eventName])) {\n var prevHandler = obj[eventName];\n obj[eventName] = [prevHandler];\n }\n\n // has other listeners.\n if (Array.isArray(obj[eventName])) {\n obj[eventName].push(handler);\n return;\n }\n\n // no listener at all.\n if (isNullOrUndefined(obj[eventName])) {\n obj[eventName] = [handler];\n }\n}\n\n// Adds a listener to a native HTML vnode.\nfunction addNativeNodeListener (node, eventName, handler) {\n if (isNullOrUndefined(node.data.on)) {\n node.data.on = {};\n }\n\n mergeVNodeListeners(node.data.on, eventName, handler);\n}\n\n// Adds a listener to a Vue component vnode.\nfunction addComponentNodeListener (node, eventName, handler) {\n /* istanbul ignore next */\n if (!node.componentOptions.listeners) {\n node.componentOptions.listeners = {};\n }\n\n mergeVNodeListeners(node.componentOptions.listeners, eventName, handler);\n}\nfunction addVNodeListener (vnode, eventName, handler) {\n if (vnode.componentOptions) {\n addComponentNodeListener(vnode, eventName, handler);\n return;\n }\n\n addNativeNodeListener(vnode, eventName, handler);\n}\n// Determines if `change` should be used over `input` for listeners.\nfunction getInputEventName (vnode, model) {\n // Is a component.\n if (vnode.componentOptions) {\n var ref = findModelConfig(vnode) || { event: 'input' };\n var event = ref.event;\n\n return event;\n }\n\n // Lazy Models and select tag typically use change event\n if ((model && model.modifiers && model.modifiers.lazy) || vnode.tag === 'select') {\n return 'change';\n }\n\n // is a textual-type input.\n if (vnode.data.attrs && isTextInput({ type: vnode.data.attrs.type || 'text' })) {\n return 'input';\n }\n\n return 'change';\n}\n\nfunction normalizeSlots (slots, ctx) {\n return Object.keys(slots).reduce(function (arr, key) {\n slots[key].forEach(function (vnode) {\n if (!vnode.context) {\n slots[key].context = ctx;\n if (!vnode.data) {\n vnode.data = {};\n }\n vnode.data.slot = key;\n }\n });\n\n return arr.concat(slots[key]);\n }, []);\n}\nfunction createRenderless (h, children) {\n // Only render the first item of the node.\n if (Array.isArray(children) && children[0]) {\n return children[0];\n }\n\n // a single node.\n if (children) {\n return children;\n }\n\n // No slots, render nothing.\n return h();\n}\n\n/**\n * Generates the options required to construct a field.\n */\nvar Resolver = function Resolver () {};\n\nResolver.generate = function generate (el, binding, vnode) {\n var model = Resolver.resolveModel(binding, vnode);\n var options = resolveConfig(vnode.context);\n\n return {\n name: Resolver.resolveName(el, vnode),\n el: el,\n listen: !binding.modifiers.disable,\n bails: binding.modifiers.bails ? true : (binding.modifiers.continues === true ? false : undefined),\n scope: Resolver.resolveScope(el, binding, vnode),\n vm: vnode.context,\n expression: binding.value,\n component: vnode.componentInstance,\n classes: options.classes,\n classNames: options.classNames,\n getter: Resolver.resolveGetter(el, vnode, model),\n events: Resolver.resolveEvents(el, vnode) || options.events,\n model: model,\n delay: Resolver.resolveDelay(el, vnode, options),\n rules: Resolver.resolveRules(el, binding, vnode),\n immediate: !!binding.modifiers.initial || !!binding.modifiers.immediate,\n persist: !!binding.modifiers.persist,\n validity: options.validity && !vnode.componentInstance,\n aria: options.aria && !vnode.componentInstance,\n initialValue: Resolver.resolveInitialValue(vnode)\n };\n};\n\nResolver.getCtorConfig = function getCtorConfig (vnode) {\n if (!vnode.componentInstance) { return null; }\n\n var config = getPath('componentInstance.$options.$_veeValidate', vnode);\n\n return config;\n};\n\n/**\n * Resolves the rules defined on an element.\n */\nResolver.resolveRules = function resolveRules (el, binding, vnode) {\n var rules = '';\n if (!binding.value && (!binding || !binding.expression)) {\n rules = getDataAttribute(el, 'rules');\n }\n\n if (binding.value && includes(['string', 'object'], typeof binding.value.rules)) {\n rules = binding.value.rules;\n } else if (binding.value) {\n rules = binding.value;\n }\n\n if (vnode.componentInstance) {\n return rules;\n }\n\n // If validity is disabled, ignore field rules.\n var normalized = normalizeRules(rules);\n if (!getConfig().useConstraintAttrs) {\n return normalized;\n }\n\n return assign({}, fillRulesFromElement(el, {}), normalized);\n};\n\n/**\n * @param {*} vnode\n */\nResolver.resolveInitialValue = function resolveInitialValue (vnode) {\n var model = vnode.data.model || find(vnode.data.directives, function (d) { return d.name === 'model'; });\n\n return model && model.value;\n};\n\n/**\n * Resolves the delay value.\n * @param {*} el\n * @param {*} vnode\n * @param {Object} options\n */\nResolver.resolveDelay = function resolveDelay (el, vnode, options) {\n var delay = getDataAttribute(el, 'delay');\n var globalDelay = (options && 'delay' in options) ? options.delay : 0;\n\n if (!delay && vnode.componentInstance && vnode.componentInstance.$attrs) {\n delay = vnode.componentInstance.$attrs['data-vv-delay'];\n }\n\n if (!isObject(globalDelay)) {\n return deepParseInt(delay || globalDelay);\n }\n\n if (!isNullOrUndefined(delay)) {\n globalDelay.input = delay;\n }\n\n return deepParseInt(globalDelay);\n};\n\n/**\n * Resolves the events to validate in response to.\n * @param {*} el\n * @param {*} vnode\n */\nResolver.resolveEvents = function resolveEvents (el, vnode) {\n // resolve it from the root element.\n var events = getDataAttribute(el, 'validate-on');\n\n // resolve from data-vv-validate-on if its a vue component.\n if (!events && vnode.componentInstance && vnode.componentInstance.$attrs) {\n events = vnode.componentInstance.$attrs['data-vv-validate-on'];\n }\n\n // resolve it from $_veeValidate options.\n if (!events && vnode.componentInstance) {\n var config = Resolver.getCtorConfig(vnode);\n events = config && config.events;\n }\n\n if (!events && getConfig().events) {\n events = getConfig().events;\n }\n\n // resolve the model event if its configured for custom components.\n if (events && vnode.componentInstance && includes(events, 'input')) {\n var ref = vnode.componentInstance.$options.model || { event: 'input' };\n var event = ref.event;\n // if the prop was configured but not the model.\n if (!event) {\n return events;\n }\n\n events = events.replace('input', event);\n }\n\n return events;\n};\n\n/**\n * Resolves the scope for the field.\n * @param {*} el\n * @param {*} binding\n */\nResolver.resolveScope = function resolveScope (el, binding, vnode) {\n if ( vnode === void 0 ) vnode = {};\n\n var scope = null;\n if (vnode.componentInstance && isNullOrUndefined(scope)) {\n scope = vnode.componentInstance.$attrs && vnode.componentInstance.$attrs['data-vv-scope'];\n }\n\n return !isNullOrUndefined(scope) ? scope : getScope(el);\n};\n\n/**\n * Checks if the node directives contains a v-model or a specified arg.\n * Args take priority over models.\n *\n * @return {Object}\n */\nResolver.resolveModel = function resolveModel (binding, vnode) {\n if (binding.arg) {\n return { expression: binding.arg };\n }\n\n var model = findModel(vnode);\n if (!model) {\n return null;\n }\n\n // https://github.com/vuejs/vue/blob/dev/src/core/util/lang.js#L26\n var watchable = !/[^\\w.$]/.test(model.expression) && hasPath(model.expression, vnode.context);\n var lazy = !!(model.modifiers && model.modifiers.lazy);\n\n if (!watchable) {\n return { expression: null, lazy: lazy };\n }\n\n return { expression: model.expression, lazy: lazy };\n};\n\n/**\n * Resolves the field name to trigger validations.\n * @return {String} The field name.\n */\nResolver.resolveName = function resolveName (el, vnode) {\n var name = getDataAttribute(el, 'name');\n\n if (!name && !vnode.componentInstance) {\n return el.name;\n }\n\n if (!name && vnode.componentInstance && vnode.componentInstance.$attrs) {\n name = vnode.componentInstance.$attrs['data-vv-name'] || vnode.componentInstance.$attrs['name'];\n }\n\n if (!name && vnode.componentInstance) {\n var config = Resolver.getCtorConfig(vnode);\n if (config && isCallable(config.name)) {\n var boundGetter = config.name.bind(vnode.componentInstance);\n\n return boundGetter();\n }\n\n return vnode.componentInstance.name;\n }\n\n return name;\n};\n\n/**\n * Returns a value getter input type.\n */\nResolver.resolveGetter = function resolveGetter (el, vnode, model) {\n if (model && model.expression) {\n return function () {\n return getPath(model.expression, vnode.context);\n };\n }\n\n if (vnode.componentInstance) {\n var path = getDataAttribute(el, 'value-path') || (vnode.componentInstance.$attrs && vnode.componentInstance.$attrs['data-vv-value-path']);\n if (path) {\n return function () {\n return getPath(path, vnode.componentInstance);\n };\n }\n\n var config = Resolver.getCtorConfig(vnode);\n if (config && isCallable(config.value)) {\n var boundGetter = config.value.bind(vnode.componentInstance);\n\n return function () {\n return boundGetter();\n };\n }\n\n var ref = vnode.componentInstance.$options.model || { prop: 'value' };\n var prop = ref.prop;\n\n return function () {\n return vnode.componentInstance[prop];\n };\n }\n\n switch (el.type) {\n case 'checkbox': return function () {\n var els = document.querySelectorAll((\"input[name=\\\"\" + (el.name) + \"\\\"]\"));\n\n els = toArray(els).filter(function (el) { return el.checked; });\n if (!els.length) { return undefined; }\n\n return els.map(function (checkbox) { return checkbox.value; });\n };\n case 'radio': return function () {\n var els = document.querySelectorAll((\"input[name=\\\"\" + (el.name) + \"\\\"]\"));\n var elm = find(els, function (el) { return el.checked; });\n\n return elm && elm.value;\n };\n case 'file': return function (context) {\n return toArray(el.files);\n };\n case 'select-multiple': return function () {\n return toArray(el.options).filter(function (opt) { return opt.selected; }).map(function (opt) { return opt.value; });\n };\n default: return function () {\n return el && el.value;\n };\n }\n};\n\nvar RULES = {};\n\nvar RuleContainer = function RuleContainer () {};\n\nvar staticAccessors = { rules: { configurable: true } };\n\nRuleContainer.add = function add (name, ref) {\n var validate = ref.validate;\n var options = ref.options;\n var paramNames = ref.paramNames;\n\n RULES[name] = {\n validate: validate,\n options: options,\n paramNames: paramNames\n };\n};\n\nstaticAccessors.rules.get = function () {\n return RULES;\n};\n\nRuleContainer.has = function has (name) {\n return !!RULES[name];\n};\n\nRuleContainer.isImmediate = function isImmediate (name) {\n return !!(RULES[name] && RULES[name].options.immediate);\n};\n\nRuleContainer.isRequireRule = function isRequireRule (name) {\n return !!(RULES[name] && RULES[name].options.computesRequired);\n};\n\nRuleContainer.isTargetRule = function isTargetRule (name) {\n return !!(RULES[name] && RULES[name].options.hasTarget);\n};\n\nRuleContainer.remove = function remove (ruleName) {\n delete RULES[ruleName];\n};\n\nRuleContainer.getParamNames = function getParamNames (ruleName) {\n return RULES[ruleName] && RULES[ruleName].paramNames;\n};\n\nRuleContainer.getOptions = function getOptions (ruleName) {\n return RULES[ruleName] && RULES[ruleName].options;\n};\n\nRuleContainer.getValidatorMethod = function getValidatorMethod (ruleName) {\n return RULES[ruleName] ? RULES[ruleName].validate : null;\n};\n\nObject.defineProperties( RuleContainer, staticAccessors );\n\n// \n\nvar isEvent = function (evt) {\n return (typeof Event !== 'undefined' && isCallable(Event) && evt instanceof Event) || (evt && evt.srcElement);\n};\n\nvar normalizeEvents = function (evts) {\n if (!evts) { return []; }\n\n return (typeof evts === 'string' ? evts.split('|') : evts);\n};\n\nvar supportsPassive = true;\n\nvar detectPassiveSupport = function () {\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get () {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassive', null, opts);\n window.removeEventListener('testPassive', null, opts);\n } catch (e) {\n supportsPassive = false;\n }\n return supportsPassive;\n};\n\nvar addEventListener = function (el, eventName, cb) {\n el.addEventListener(eventName, cb, supportsPassive ? { passive: true } : false);\n};\n\n// \n\nvar DEFAULT_OPTIONS = {\n targetOf: null,\n immediate: false,\n persist: false,\n scope: null,\n listen: true,\n name: null,\n rules: {},\n vm: null,\n classes: false,\n validity: true,\n aria: true,\n events: 'input|blur',\n delay: 0,\n classNames: {\n touched: 'touched', // the control has been blurred\n untouched: 'untouched', // the control hasn't been blurred\n valid: 'valid', // model is valid\n invalid: 'invalid', // model is invalid\n pristine: 'pristine', // control has not been interacted with\n dirty: 'dirty' // control has been interacted with\n }\n};\n\nvar Field = function Field (options) {\n if ( options === void 0 ) options = {};\n\n this.id = uniqId();\n this.el = options.el;\n this.updated = false;\n this.vmId = options.vmId;\n defineNonReactive(this, 'dependencies', []);\n defineNonReactive(this, 'watchers', []);\n defineNonReactive(this, 'events', []);\n this.delay = 0;\n this.rules = {};\n this.forceRequired = false;\n this._cacheId(options);\n this.classNames = assign({}, DEFAULT_OPTIONS.classNames);\n options = assign({}, DEFAULT_OPTIONS, options);\n this._delay = !isNullOrUndefined(options.delay) ? options.delay : 0; // cache initial delay\n this.validity = options.validity;\n this.aria = options.aria;\n this.flags = options.flags || createFlags();\n defineNonReactive(this, 'vm', options.vm);\n defineNonReactive(this, 'componentInstance', options.component);\n this.ctorConfig = this.componentInstance ? getPath('$options.$_veeValidate', this.componentInstance) : undefined;\n this.update(options);\n // set initial value.\n this.initialValue = this.value;\n this.updated = false;\n};\n\nvar prototypeAccessors$1 = { validator: { configurable: true },isRequired: { configurable: true },isDisabled: { configurable: true },alias: { configurable: true },value: { configurable: true },bails: { configurable: true },rejectsFalse: { configurable: true } };\n\nprototypeAccessors$1.validator.get = function () {\n if (!this.vm || !this.vm.$validator) {\n return { validate: function () { return Promise.resolve(true); } };\n }\n\n return this.vm.$validator;\n};\n\nprototypeAccessors$1.isRequired.get = function () {\n return !!this.rules.required || this.forceRequired;\n};\n\nprototypeAccessors$1.isDisabled.get = function () {\n return !!(this.el && this.el.disabled);\n};\n\n/**\n * Gets the display name (user-friendly name).\n */\nprototypeAccessors$1.alias.get = function () {\n if (this._alias) {\n return this._alias;\n }\n\n var alias = null;\n if (this.ctorConfig && this.ctorConfig.alias) {\n alias = isCallable(this.ctorConfig.alias) ? this.ctorConfig.alias.call(this.componentInstance) : this.ctorConfig.alias;\n }\n\n if (!alias && this.el) {\n alias = getDataAttribute(this.el, 'as');\n }\n\n if (!alias && this.componentInstance) {\n return this.componentInstance.$attrs && this.componentInstance.$attrs['data-vv-as'];\n }\n\n return alias;\n};\n\n/**\n * Gets the input value.\n */\n\nprototypeAccessors$1.value.get = function () {\n if (!isCallable(this.getter)) {\n return undefined;\n }\n\n return this.getter();\n};\n\nprototypeAccessors$1.bails.get = function () {\n return this._bails;\n};\n\n/**\n * If the field rejects false as a valid value for the required rule.\n */\n\nprototypeAccessors$1.rejectsFalse.get = function () {\n if (this.componentInstance && this.ctorConfig) {\n return !!this.ctorConfig.rejectsFalse;\n }\n\n if (!this.el) {\n return false;\n }\n\n return this.el.type === 'checkbox';\n};\n\n/**\n * Determines if the instance matches the options provided.\n */\nField.prototype.matches = function matches (options) {\n var this$1 = this;\n\n if (!options) {\n return true;\n }\n\n if (options.id) {\n return this.id === options.id;\n }\n\n var matchesComponentId = isNullOrUndefined(options.vmId) ? function () { return true; } : function (id) { return id === this$1.vmId; };\n if (!matchesComponentId(options.vmId)) {\n return false;\n }\n\n if (options.name === undefined && options.scope === undefined) {\n return true;\n }\n\n if (options.scope === undefined) {\n return this.name === options.name;\n }\n\n if (options.name === undefined) {\n return this.scope === options.scope;\n }\n\n return options.name === this.name && options.scope === this.scope;\n};\n\n/**\n * Caches the field id.\n */\nField.prototype._cacheId = function _cacheId (options) {\n if (this.el && !options.targetOf) {\n this.el._veeValidateId = this.id;\n }\n};\n\n/**\n * Keeps a reference of the most current validation run.\n */\nField.prototype.waitFor = function waitFor (pendingPromise) {\n this._waitingFor = pendingPromise;\n};\n\nField.prototype.isWaitingFor = function isWaitingFor (promise) {\n return this._waitingFor === promise;\n};\n\n/**\n * Updates the field with changed data.\n */\nField.prototype.update = function update (options) {\n var this$1 = this;\n\n this.targetOf = options.targetOf || null;\n this.immediate = options.immediate || this.immediate || false;\n this.persist = options.persist || this.persist || false;\n\n // update errors scope if the field scope was changed.\n if (!isNullOrUndefined(options.scope) && options.scope !== this.scope && isCallable(this.validator.update)) {\n this.validator.update(this.id, { scope: options.scope });\n }\n this.scope = !isNullOrUndefined(options.scope) ? options.scope\n : !isNullOrUndefined(this.scope) ? this.scope : null;\n this.name = (!isNullOrUndefined(options.name) ? String(options.name) : options.name) || this.name || null;\n this.rules = options.rules !== undefined ? normalizeRules(options.rules) : this.rules;\n this._bails = options.bails !== undefined ? options.bails : this._bails;\n this.model = options.model || this.model;\n this.listen = options.listen !== undefined ? options.listen : this.listen;\n this.classes = (options.classes || this.classes || false) && !this.componentInstance;\n this.classNames = isObject(options.classNames) ? merge(this.classNames, options.classNames) : this.classNames;\n this.getter = isCallable(options.getter) ? options.getter : this.getter;\n this._alias = options.alias || this._alias;\n this.events = (options.events) ? normalizeEvents(options.events) : this.events;\n this.delay = makeDelayObject(this.events, options.delay || this.delay, this._delay);\n this.updateDependencies();\n this.addActionListeners();\n\n if (process.env.NODE_ENV !== 'production' && !this.name && !this.targetOf) {\n warn('A field is missing a \"name\" or \"data-vv-name\" attribute');\n }\n\n // update required flag flags\n if (options.rules !== undefined) {\n this.flags.required = this.isRequired;\n }\n\n if (Object.keys(options.rules || {}).length === 0 && this.updated) {\n var resetFlag = this.flags.validated;\n this.validator.validate((\"#\" + (this.id))).then(function () {\n this$1.flags.validated = resetFlag;\n });\n }\n\n // validate if it was validated before and field was updated and there was a rules mutation.\n if (this.flags.validated && options.rules !== undefined && this.updated) {\n this.validator.validate((\"#\" + (this.id)));\n }\n\n this.updated = true;\n this.addValueListeners();\n\n // no need to continue.\n if (!this.el) {\n return;\n }\n this.updateClasses();\n this.updateAriaAttrs();\n};\n\n/**\n * Resets field flags and errors.\n */\nField.prototype.reset = function reset () {\n var this$1 = this;\n\n if (this._cancellationToken) {\n this._cancellationToken.cancelled = true;\n delete this._cancellationToken;\n }\n\n var defaults = createFlags();\n Object.keys(this.flags).filter(function (flag) { return flag !== 'required'; }).forEach(function (flag) {\n this$1.flags[flag] = defaults[flag];\n });\n\n // update initial value\n this.initialValue = this.value;\n this.flags.changed = false;\n\n this.addValueListeners();\n this.addActionListeners();\n this.updateClasses(true);\n this.updateAriaAttrs();\n this.updateCustomValidity();\n};\n\n/**\n * Sets the flags and their negated counterparts, and updates the classes and re-adds action listeners.\n */\nField.prototype.setFlags = function setFlags (flags) {\n var this$1 = this;\n\n var negated = {\n pristine: 'dirty',\n dirty: 'pristine',\n valid: 'invalid',\n invalid: 'valid',\n touched: 'untouched',\n untouched: 'touched'\n };\n\n Object.keys(flags).forEach(function (flag) {\n this$1.flags[flag] = flags[flag];\n // if it has a negation and was not specified, set it as well.\n if (negated[flag] && flags[negated[flag]] === undefined) {\n this$1.flags[negated[flag]] = !flags[flag];\n }\n });\n\n if (\n flags.untouched !== undefined ||\n flags.touched !== undefined ||\n flags.dirty !== undefined ||\n flags.pristine !== undefined\n ) {\n this.addActionListeners();\n }\n this.updateClasses();\n this.updateAriaAttrs();\n this.updateCustomValidity();\n};\n\n/**\n * Determines if the field requires references to target fields.\n*/\nField.prototype.updateDependencies = function updateDependencies () {\n var this$1 = this;\n\n // reset dependencies.\n this.dependencies.forEach(function (d) { return d.field.destroy(); });\n this.dependencies = [];\n\n // we get the selectors for each field.\n var fields = Object.keys(this.rules).reduce(function (prev, r) {\n if (RuleContainer.isTargetRule(r)) {\n prev.push({ selector: this$1.rules[r][0], name: r });\n }\n\n return prev;\n }, []);\n\n if (!fields.length || !this.vm || !this.vm.$el) { return; }\n\n // must be contained within the same component, so we use the vm root element constrain our dom search.\n fields.forEach(function (ref$1) {\n var selector = ref$1.selector;\n var name = ref$1.name;\n\n var ref = this$1.vm.$refs[selector];\n var el = Array.isArray(ref) ? ref[0] : ref;\n if (!el) {\n return;\n }\n\n var options = {\n vm: this$1.vm,\n classes: this$1.classes,\n classNames: this$1.classNames,\n delay: this$1.delay,\n scope: this$1.scope,\n events: this$1.events.join('|'),\n immediate: this$1.immediate,\n targetOf: this$1.id\n };\n\n // probably a component.\n if (isCallable(el.$watch)) {\n options.component = el;\n options.el = el.$el;\n options.getter = Resolver.resolveGetter(el.$el, el.$vnode);\n } else {\n options.el = el;\n options.getter = Resolver.resolveGetter(el, {});\n }\n\n this$1.dependencies.push({ name: name, field: new Field(options) });\n });\n};\n\n/**\n * Removes listeners.\n */\nField.prototype.unwatch = function unwatch (tag) {\n if ( tag === void 0 ) tag = null;\n\n if (!tag) {\n this.watchers.forEach(function (w) { return w.unwatch(); });\n this.watchers = [];\n return;\n }\n\n this.watchers.filter(function (w) { return tag.test(w.tag); }).forEach(function (w) { return w.unwatch(); });\n this.watchers = this.watchers.filter(function (w) { return !tag.test(w.tag); });\n};\n\n/**\n * Updates the element classes depending on each field flag status.\n */\nField.prototype.updateClasses = function updateClasses (isReset) {\n var this$1 = this;\n if ( isReset === void 0 ) isReset = false;\n\n if (!this.classes || this.isDisabled) { return; }\n var applyClasses = function (el) {\n toggleClass(el, this$1.classNames.dirty, this$1.flags.dirty);\n toggleClass(el, this$1.classNames.pristine, this$1.flags.pristine);\n toggleClass(el, this$1.classNames.touched, this$1.flags.touched);\n toggleClass(el, this$1.classNames.untouched, this$1.flags.untouched);\n\n // remove valid/invalid classes on reset.\n if (isReset) {\n toggleClass(el, this$1.classNames.valid, false);\n toggleClass(el, this$1.classNames.invalid, false);\n }\n\n // make sure we don't set any classes if the state is undetermined.\n if (!isNullOrUndefined(this$1.flags.valid) && this$1.flags.validated) {\n toggleClass(el, this$1.classNames.valid, this$1.flags.valid);\n }\n\n if (!isNullOrUndefined(this$1.flags.invalid) && this$1.flags.validated) {\n toggleClass(el, this$1.classNames.invalid, this$1.flags.invalid);\n }\n };\n\n if (!isCheckboxOrRadioInput(this.el)) {\n applyClasses(this.el);\n return;\n }\n\n var els = document.querySelectorAll((\"input[name=\\\"\" + (this.el.name) + \"\\\"]\"));\n toArray(els).forEach(applyClasses);\n};\n\n/**\n * Adds the listeners required for automatic classes and some flags.\n */\nField.prototype.addActionListeners = function addActionListeners () {\n var this$1 = this;\n\n // remove previous listeners.\n this.unwatch(/class/);\n\n if (!this.el) { return; }\n\n var onBlur = function () {\n this$1.flags.touched = true;\n this$1.flags.untouched = false;\n if (this$1.classes) {\n toggleClass(this$1.el, this$1.classNames.touched, true);\n toggleClass(this$1.el, this$1.classNames.untouched, false);\n }\n\n // only needed once.\n this$1.unwatch(/^class_blur$/);\n };\n\n var inputEvent = isTextInput(this.el) ? 'input' : 'change';\n var onInput = function () {\n this$1.flags.dirty = true;\n this$1.flags.pristine = false;\n if (this$1.classes) {\n toggleClass(this$1.el, this$1.classNames.pristine, false);\n toggleClass(this$1.el, this$1.classNames.dirty, true);\n }\n\n // only needed once.\n this$1.unwatch(/^class_input$/);\n };\n\n if (this.componentInstance && isCallable(this.componentInstance.$once)) {\n this.componentInstance.$once('input', onInput);\n this.componentInstance.$once('blur', onBlur);\n this.watchers.push({\n tag: 'class_input',\n unwatch: function () {\n this$1.componentInstance.$off('input', onInput);\n }\n });\n this.watchers.push({\n tag: 'class_blur',\n unwatch: function () {\n this$1.componentInstance.$off('blur', onBlur);\n }\n });\n return;\n }\n\n if (!this.el) { return; }\n\n addEventListener(this.el, inputEvent, onInput);\n // Checkboxes and radio buttons on Mac don't emit blur naturally, so we listen on click instead.\n var blurEvent = isCheckboxOrRadioInput(this.el) ? 'change' : 'blur';\n addEventListener(this.el, blurEvent, onBlur);\n this.watchers.push({\n tag: 'class_input',\n unwatch: function () {\n this$1.el.removeEventListener(inputEvent, onInput);\n }\n });\n\n this.watchers.push({\n tag: 'class_blur',\n unwatch: function () {\n this$1.el.removeEventListener(blurEvent, onBlur);\n }\n });\n};\n\nField.prototype.checkValueChanged = function checkValueChanged () {\n // handle some people initialize the value to null, since text inputs have empty string value.\n if (this.initialValue === null && this.value === '' && isTextInput(this.el)) {\n return false;\n }\n\n return this.value !== this.initialValue;\n};\n\n/**\n * Determines the suitable primary event to listen for.\n */\nField.prototype._determineInputEvent = function _determineInputEvent () {\n // if its a custom component, use the customized model event or the input event.\n if (this.componentInstance) {\n return (this.componentInstance.$options.model && this.componentInstance.$options.model.event) || 'input';\n }\n\n if (this.model && this.model.lazy) {\n return 'change';\n }\n\n if (isTextInput(this.el)) {\n return 'input';\n }\n\n return 'change';\n};\n\n/**\n * Determines the list of events to listen to.\n */\nField.prototype._determineEventList = function _determineEventList (defaultInputEvent) {\n var this$1 = this;\n\n // if no event is configured, or it is a component or a text input then respect the user choice.\n if (!this.events.length || this.componentInstance || isTextInput(this.el)) {\n return [].concat( this.events ).map(function (evt) {\n if (evt === 'input' && this$1.model && this$1.model.lazy) {\n return 'change';\n }\n\n return evt;\n });\n }\n\n // force suitable event for non-text type fields.\n return this.events.map(function (e) {\n if (e === 'input') {\n return defaultInputEvent;\n }\n\n return e;\n });\n};\n\n/**\n * Adds the listeners required for validation.\n */\nField.prototype.addValueListeners = function addValueListeners () {\n var this$1 = this;\n\n this.unwatch(/^input_.+/);\n if (!this.listen || !this.el) { return; }\n\n var token = { cancelled: false };\n var fn = this.targetOf ? function () {\n var target = this$1.validator._resolveField((\"#\" + (this$1.targetOf)));\n if (target && target.flags.validated) {\n this$1.validator.validate((\"#\" + (this$1.targetOf)));\n }\n } : function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // if its a DOM event, resolve the value, otherwise use the first parameter as the value.\n if (args.length === 0 || isEvent(args[0])) {\n args[0] = this$1.value;\n }\n\n this$1.flags.pending = true;\n this$1._cancellationToken = token;\n this$1.validator.validate((\"#\" + (this$1.id)), args[0]);\n };\n\n var inputEvent = this._determineInputEvent();\n var events = this._determineEventList(inputEvent);\n\n // if on input validation is requested.\n if (includes(events, inputEvent)) {\n var ctx = null;\n var expression = null;\n var watchCtxVm = false;\n // if its watchable from the context vm.\n if (this.model && this.model.expression) {\n ctx = this.vm;\n expression = this.model.expression;\n watchCtxVm = true;\n }\n\n // watch it from the custom component vm instead.\n if (!expression && this.componentInstance && this.componentInstance.$options.model) {\n ctx = this.componentInstance;\n expression = this.componentInstance.$options.model.prop || 'value';\n }\n\n if (ctx && expression) {\n var debouncedFn = debounce(fn, this.delay[inputEvent], token);\n var unwatch = ctx.$watch(expression, debouncedFn);\n this.watchers.push({\n tag: 'input_model',\n unwatch: function () {\n this$1.vm.$nextTick(function () {\n unwatch();\n });\n }\n });\n\n // filter out input event when we are watching from the context vm.\n if (watchCtxVm) {\n events = events.filter(function (e) { return e !== inputEvent; });\n }\n }\n }\n\n // Add events.\n events.forEach(function (e) {\n var debouncedFn = debounce(fn, this$1.delay[e], token);\n\n this$1._addComponentEventListener(e, debouncedFn);\n this$1._addHTMLEventListener(e, debouncedFn);\n });\n};\n\nField.prototype._addComponentEventListener = function _addComponentEventListener (evt, validate) {\n var this$1 = this;\n\n if (!this.componentInstance) { return; }\n\n this.componentInstance.$on(evt, validate);\n this.watchers.push({\n tag: 'input_vue',\n unwatch: function () {\n this$1.componentInstance.$off(evt, validate);\n }\n });\n};\n\nField.prototype._addHTMLEventListener = function _addHTMLEventListener (evt, validate) {\n var this$1 = this;\n\n if (!this.el || this.componentInstance) { return; }\n\n // listen for the current element.\n var addListener = function (el) {\n addEventListener(el, evt, validate);\n this$1.watchers.push({\n tag: 'input_native',\n unwatch: function () {\n el.removeEventListener(evt, validate);\n }\n });\n };\n\n addListener(this.el);\n if (!isCheckboxOrRadioInput(this.el)) {\n return;\n }\n\n var els = document.querySelectorAll((\"input[name=\\\"\" + (this.el.name) + \"\\\"]\"));\n toArray(els).forEach(function (el) {\n // skip if it is added by v-validate and is not the current element.\n if (el._veeValidateId && el !== this$1.el) {\n return;\n }\n\n addListener(el);\n });\n};\n\n/**\n * Updates aria attributes on the element.\n */\nField.prototype.updateAriaAttrs = function updateAriaAttrs () {\n var this$1 = this;\n\n if (!this.aria || !this.el || !isCallable(this.el.setAttribute)) { return; }\n\n var applyAriaAttrs = function (el) {\n el.setAttribute('aria-required', this$1.isRequired ? 'true' : 'false');\n el.setAttribute('aria-invalid', this$1.flags.invalid ? 'true' : 'false');\n };\n\n if (!isCheckboxOrRadioInput(this.el)) {\n applyAriaAttrs(this.el);\n return;\n }\n\n var els = document.querySelectorAll((\"input[name=\\\"\" + (this.el.name) + \"\\\"]\"));\n toArray(els).forEach(applyAriaAttrs);\n};\n\n/**\n * Updates the custom validity for the field.\n */\nField.prototype.updateCustomValidity = function updateCustomValidity () {\n if (!this.validity || !this.el || !isCallable(this.el.setCustomValidity) || !this.validator.errors) { return; }\n\n this.el.setCustomValidity(this.flags.valid ? '' : (this.validator.errors.firstById(this.id) || ''));\n};\n\n/**\n * Removes all listeners.\n */\nField.prototype.destroy = function destroy () {\n // ignore the result of any ongoing validation.\n if (this._cancellationToken) {\n this._cancellationToken.cancelled = true;\n }\n\n this.unwatch();\n this.dependencies.forEach(function (d) { return d.field.destroy(); });\n this.dependencies = [];\n};\n\nObject.defineProperties( Field.prototype, prototypeAccessors$1 );\n\n// \n\nvar FieldBag = function FieldBag (items) {\n if ( items === void 0 ) items = [];\n\n this.items = items || [];\n this.itemsById = this.items.reduce(function (itemsById, item) {\n itemsById[item.id] = item;\n return itemsById;\n }, {});\n};\n\nvar prototypeAccessors$2 = { length: { configurable: true } };\n\nFieldBag.prototype[typeof Symbol === 'function' ? Symbol.iterator : '@@iterator'] = function () {\n var this$1 = this;\n\n var index = 0;\n return {\n next: function () {\n return { value: this$1.items[index++], done: index > this$1.items.length };\n }\n };\n};\n\n/**\n * Gets the current items length.\n */\n\nprototypeAccessors$2.length.get = function () {\n return this.items.length;\n};\n\n/**\n * Finds the first field that matches the provided matcher object.\n */\nFieldBag.prototype.find = function find$1 (matcher) {\n return find(this.items, function (item) { return item.matches(matcher); });\n};\n\n/**\n * Finds the field with the given id, using a plain object as a map to link\n * ids to items faster than by looping over the array and matching.\n */\nFieldBag.prototype.findById = function findById (id) {\n return this.itemsById[id] || null;\n};\n\n/**\n * Filters the items down to the matched fields.\n */\nFieldBag.prototype.filter = function filter (matcher) {\n // multiple matchers to be tried.\n if (Array.isArray(matcher)) {\n return this.items.filter(function (item) { return matcher.some(function (m) { return item.matches(m); }); });\n }\n\n return this.items.filter(function (item) { return item.matches(matcher); });\n};\n\n/**\n * Maps the field items using the mapping function.\n */\nFieldBag.prototype.map = function map (mapper) {\n return this.items.map(mapper);\n};\n\n/**\n * Finds and removes the first field that matches the provided matcher object, returns the removed item.\n */\nFieldBag.prototype.remove = function remove (matcher) {\n var item = null;\n if (matcher instanceof Field) {\n item = matcher;\n } else {\n item = this.find(matcher);\n }\n\n if (!item) { return null; }\n\n var index = this.items.indexOf(item);\n this.items.splice(index, 1);\n delete this.itemsById[item.id];\n\n return item;\n};\n\n/**\n * Adds a field item to the list.\n */\nFieldBag.prototype.push = function push (item) {\n if (! (item instanceof Field)) {\n throw createError('FieldBag only accepts instances of Field that has an id defined.');\n }\n\n if (!item.id) {\n throw createError('Field id must be defined.');\n }\n\n if (this.findById(item.id)) {\n throw createError((\"Field with id \" + (item.id) + \" is already added.\"));\n }\n\n this.items.push(item);\n this.itemsById[item.id] = item;\n};\n\nObject.defineProperties( FieldBag.prototype, prototypeAccessors$2 );\n\nvar ScopedValidator = function ScopedValidator (base, vm) {\n this.id = vm._uid;\n this._base = base;\n this._paused = false;\n\n // create a mirror bag with limited component scope.\n this.errors = new ErrorBag(base.errors, this.id);\n};\n\nvar prototypeAccessors$3 = { flags: { configurable: true },rules: { configurable: true },fields: { configurable: true },dictionary: { configurable: true },locale: { configurable: true } };\n\nprototypeAccessors$3.flags.get = function () {\n var this$1 = this;\n\n return this._base.fields.items.filter(function (f) { return f.vmId === this$1.id; }).reduce(function (acc, field) {\n if (field.scope) {\n if (!acc[(\"$\" + (field.scope))]) {\n acc[(\"$\" + (field.scope))] = {};\n }\n\n acc[(\"$\" + (field.scope))][field.name] = field.flags;\n }\n\n acc[field.name] = field.flags;\n\n return acc;\n }, {});\n};\n\nprototypeAccessors$3.rules.get = function () {\n return this._base.rules;\n};\n\nprototypeAccessors$3.fields.get = function () {\n return new FieldBag(this._base.fields.filter({ vmId: this.id }));\n};\n\nprototypeAccessors$3.dictionary.get = function () {\n return this._base.dictionary;\n};\n\nprototypeAccessors$3.locale.get = function () {\n return this._base.locale;\n};\n\nprototypeAccessors$3.locale.set = function (val) {\n this._base.locale = val;\n};\n\nScopedValidator.prototype.localize = function localize () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base).localize.apply(ref, args);\n};\n\nScopedValidator.prototype.update = function update () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base).update.apply(ref, args);\n};\n\nScopedValidator.prototype.attach = function attach (opts) {\n var attachOpts = assign({}, opts, { vmId: this.id });\n\n return this._base.attach(attachOpts);\n};\n\nScopedValidator.prototype.pause = function pause () {\n this._paused = true;\n};\n\nScopedValidator.prototype.resume = function resume () {\n this._paused = false;\n};\n\nScopedValidator.prototype.remove = function remove (ruleName) {\n return this._base.remove(ruleName);\n};\n\nScopedValidator.prototype.detach = function detach (name, scope) {\n return this._base.detach(name, scope, this.id);\n};\n\nScopedValidator.prototype.extend = function extend () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base).extend.apply(ref, args);\n};\n\nScopedValidator.prototype.validate = function validate (descriptor, value, opts) {\n if ( opts === void 0 ) opts = {};\n\n if (this._paused) { return Promise.resolve(true); }\n\n return this._base.validate(descriptor, value, assign({}, { vmId: this.id }, opts || {}));\n};\n\nScopedValidator.prototype.verify = function verify () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base).verify.apply(ref, args);\n};\n\nScopedValidator.prototype.validateAll = function validateAll (values, opts) {\n if ( opts === void 0 ) opts = {};\n\n if (this._paused) { return Promise.resolve(true); }\n\n return this._base.validateAll(values, assign({}, { vmId: this.id }, opts || {}));\n};\n\nScopedValidator.prototype.validateScopes = function validateScopes (opts) {\n if ( opts === void 0 ) opts = {};\n\n if (this._paused) { return Promise.resolve(true); }\n\n return this._base.validateScopes(assign({}, { vmId: this.id }, opts || {}));\n};\n\nScopedValidator.prototype.destroy = function destroy () {\n delete this.id;\n delete this._base;\n};\n\nScopedValidator.prototype.reset = function reset (matcher) {\n return this._base.reset(Object.assign({}, matcher || {}, { vmId: this.id }));\n};\n\nScopedValidator.prototype.flag = function flag () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base).flag.apply(ref, args.concat( [this.id] ));\n};\n\nScopedValidator.prototype._resolveField = function _resolveField () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base)._resolveField.apply(ref, args);\n};\n\nObject.defineProperties( ScopedValidator.prototype, prototypeAccessors$3 );\n\nvar VALIDATOR = null;\n\nvar getValidator = function () {\n return VALIDATOR;\n};\n\nvar setValidator = function (value) {\n VALIDATOR = value;\n\n return value;\n};\n\n// \n\n/**\n * Checks if a parent validator instance was requested.\n */\nvar requestsValidator = function (injections) {\n if (isObject(injections) && injections.$validator) {\n return true;\n }\n\n return false;\n};\n\nvar mixin = {\n provide: function provide () {\n if (this.$validator && !isBuiltInComponent(this.$vnode)) {\n return {\n $validator: this.$validator\n };\n }\n\n return {};\n },\n beforeCreate: function beforeCreate () {\n // if built in do nothing.\n if (isBuiltInComponent(this.$vnode) || this.$options.$__veeInject === false) {\n return;\n }\n\n // if its a root instance set the config if it exists.\n if (!this.$parent) {\n setConfig(this.$options.$_veeValidate || {});\n }\n\n var options = resolveConfig(this);\n\n // if its a root instance, inject anyways, or if it requested a new instance.\n if (!this.$parent || (this.$options.$_veeValidate && /new/.test(this.$options.$_veeValidate.validator))) {\n this.$validator = new ScopedValidator(getValidator(), this);\n }\n\n var requested = requestsValidator(this.$options.inject);\n\n // if automatic injection is enabled and no instance was requested.\n if (! this.$validator && options.inject && !requested) {\n this.$validator = new ScopedValidator(getValidator(), this);\n }\n\n // don't inject errors or fieldBag as no validator was resolved.\n if (!requested && !this.$validator) {\n return;\n }\n\n // There is a validator but it isn't injected, mark as reactive.\n if (!requested && this.$validator) {\n var Vue = this.$options._base; // the vue constructor.\n Vue.util.defineReactive(this.$validator, 'errors', this.$validator.errors);\n }\n\n if (!this.$options.computed) {\n this.$options.computed = {};\n }\n\n this.$options.computed[options.errorBagName || 'errors'] = function errorBagGetter () {\n return this.$validator.errors;\n };\n this.$options.computed[options.fieldsBagName || 'fields'] = function fieldBagGetter () {\n return this.$validator.fields.items.reduce(function (acc, field) {\n if (field.scope) {\n if (!acc[(\"$\" + (field.scope))]) {\n acc[(\"$\" + (field.scope))] = {};\n }\n\n acc[(\"$\" + (field.scope))][field.name] = field.flags;\n\n return acc;\n }\n\n acc[field.name] = field.flags;\n\n return acc;\n }, {});\n };\n },\n beforeDestroy: function beforeDestroy () {\n if (this.$validator && this._uid === this.$validator.id) {\n this.$validator.errors.clear(); // remove errors generated by this component.\n }\n }\n};\n\n// \n\n/**\n * Finds the requested field by id from the context object.\n */\nfunction findField (el, context) {\n if (!context || !context.$validator) {\n return null;\n }\n\n return context.$validator.fields.findById(el._veeValidateId);\n}\nvar directive = {\n bind: function bind (el, binding, vnode) {\n var validator = vnode.context.$validator;\n if (!validator) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"No validator instance is present on vm, did you forget to inject '$validator'?\");\n }\n\n return;\n }\n\n var fieldOptions = Resolver.generate(el, binding, vnode);\n validator.attach(fieldOptions);\n },\n inserted: function inserted (el, binding, vnode) {\n var field = findField(el, vnode.context);\n var scope = Resolver.resolveScope(el, binding, vnode);\n\n // skip if scope hasn't changed.\n if (!field || scope === field.scope) { return; }\n\n // only update scope.\n field.update({ scope: scope });\n\n // allows the field to re-evaluated once more in the update hook.\n field.updated = false;\n },\n update: function update (el, binding, vnode) {\n var field = findField(el, vnode.context);\n\n // make sure we don't do unneccasary work if no important change was done.\n if (!field || (field.updated && isEqual(binding.value, binding.oldValue))) { return; }\n var scope = Resolver.resolveScope(el, binding, vnode);\n var rules = Resolver.resolveRules(el, binding, vnode);\n\n field.update({\n scope: scope,\n rules: rules\n });\n },\n unbind: function unbind (el, binding, ref) {\n var context = ref.context;\n\n var field = findField(el, context);\n if (!field) { return; }\n\n context.$validator.detach(field);\n }\n};\n\n// \n\nvar Validator = function Validator (validations, options, pluginContainer) {\n if ( options === void 0 ) options = { fastExit: true };\n if ( pluginContainer === void 0 ) pluginContainer = null;\n\n this.errors = new ErrorBag();\n this.fields = new FieldBag();\n this._createFields(validations);\n this.paused = false;\n this.fastExit = !isNullOrUndefined(options && options.fastExit) ? options.fastExit : true;\n this.$vee = pluginContainer || {\n _vm: {\n $nextTick: function (cb) { return isCallable(cb) ? cb() : Promise.resolve(); },\n $emit: function () {},\n $off: function () {}\n }\n };\n};\n\nvar prototypeAccessors$4 = { rules: { configurable: true },dictionary: { configurable: true },flags: { configurable: true },locale: { configurable: true } };\nvar staticAccessors$1 = { rules: { configurable: true },dictionary: { configurable: true },locale: { configurable: true } };\n\n/**\n * @deprecated\n */\nstaticAccessors$1.rules.get = function () {\n if (process.env.NODE_ENV !== 'production') {\n warn('this accessor will be deprecated, use `import { rules } from \"vee-validate\"` instead.');\n }\n\n return RuleContainer.rules;\n};\n\n/**\n * @deprecated\n */\nprototypeAccessors$4.rules.get = function () {\n if (process.env.NODE_ENV !== 'production') {\n warn('this accessor will be deprecated, use `import { rules } from \"vee-validate\"` instead.');\n }\n\n return RuleContainer.rules;\n};\n\nprototypeAccessors$4.dictionary.get = function () {\n return DictionaryResolver.getDriver();\n};\n\nstaticAccessors$1.dictionary.get = function () {\n return DictionaryResolver.getDriver();\n};\n\nprototypeAccessors$4.flags.get = function () {\n return this.fields.items.reduce(function (acc, field) {\n var obj;\n\n if (field.scope) {\n acc[(\"$\" + (field.scope))] = ( obj = {}, obj[field.name] = field.flags, obj );\n\n return acc;\n }\n\n acc[field.name] = field.flags;\n\n return acc;\n }, {});\n};\n\n/**\n * Getter for the current locale.\n */\nprototypeAccessors$4.locale.get = function () {\n return Validator.locale;\n};\n\n/**\n * Setter for the validator locale.\n */\nprototypeAccessors$4.locale.set = function (value) {\n Validator.locale = value;\n};\n\nstaticAccessors$1.locale.get = function () {\n return DictionaryResolver.getDriver().locale;\n};\n\n/**\n * Setter for the validator locale.\n */\nstaticAccessors$1.locale.set = function (value) {\n var hasChanged = value !== DictionaryResolver.getDriver().locale;\n DictionaryResolver.getDriver().locale = value;\n if (hasChanged && Validator.$vee && Validator.$vee._vm) {\n Validator.$vee._vm.$emit('localeChanged');\n }\n};\n\n/**\n * Static constructor.\n * @deprecated\n */\nValidator.create = function create (validations, options) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Please use `new` to create new validator instances.');\n }\n\n return new Validator(validations, options);\n};\n\n/**\n * Adds a custom validator to the list of validation rules.\n */\nValidator.extend = function extend (name, validator, options) {\n if ( options === void 0 ) options = {};\n\n Validator._guardExtend(name, validator);\n // rules imported from the minimal bundle\n // will have the options embedded in them\n var mergedOpts = validator.options || {};\n Validator._merge(name, {\n validator: validator,\n paramNames: (options && options.paramNames) || validator.paramNames,\n options: assign({ hasTarget: false, immediate: true }, mergedOpts, options || {})\n });\n};\n\n/**\n * Removes a rule from the list of validators.\n * @deprecated\n */\nValidator.remove = function remove (name) {\n if (process.env.NODE_ENV !== 'production') {\n warn('this method will be deprecated, you can still override your rules with `extend`');\n }\n\n RuleContainer.remove(name);\n};\n\n/**\n * Adds and sets the current locale for the validator.\n*/\nValidator.prototype.localize = function localize (lang, dictionary) {\n Validator.localize(lang, dictionary);\n};\n\n/**\n * Adds and sets the current locale for the validator.\n */\nValidator.localize = function localize (lang, dictionary) {\n var obj;\n\n if (isObject(lang)) {\n DictionaryResolver.getDriver().merge(lang);\n return;\n }\n\n // merge the dictionary.\n if (dictionary) {\n var locale = lang || dictionary.name;\n dictionary = assign({}, dictionary);\n DictionaryResolver.getDriver().merge(( obj = {}, obj[locale] = dictionary, obj ));\n }\n\n if (lang) {\n // set the locale.\n Validator.locale = lang;\n }\n};\n\n/**\n * Registers a field to be validated.\n */\nValidator.prototype.attach = function attach (fieldOpts) {\n var this$1 = this;\n\n // We search for a field with the same name & scope, having persist enabled\n var oldFieldMatcher = { name: fieldOpts.name, scope: fieldOpts.scope, persist: true };\n var oldField = fieldOpts.persist ? this.fields.find(oldFieldMatcher) : null;\n\n if (oldField) {\n // We keep the flags of the old field, then we remove its instance\n fieldOpts.flags = oldField.flags;\n oldField.destroy();\n this.fields.remove(oldField);\n }\n\n // fixes initial value detection with v-model and select elements.\n var value = fieldOpts.initialValue;\n var field = new Field(fieldOpts);\n this.fields.push(field);\n\n // validate the field initially\n if (field.immediate) {\n this.$vee._vm.$nextTick(function () { return this$1.validate((\"#\" + (field.id)), value || field.value, { vmId: fieldOpts.vmId }); });\n } else {\n this._validate(field, value || field.value, { initial: true }).then(function (result) {\n field.flags.valid = result.valid;\n field.flags.invalid = !result.valid;\n });\n }\n\n return field;\n};\n\n/**\n * Sets the flags on a field.\n */\nValidator.prototype.flag = function flag (name, flags, uid) {\n if ( uid === void 0 ) uid = null;\n\n var field = this._resolveField(name, undefined, uid);\n if (!field || !flags) {\n return;\n }\n\n field.setFlags(flags);\n};\n\n/**\n * Removes a field from the validator.\n */\nValidator.prototype.detach = function detach (name, scope, uid) {\n var field = isCallable(name.destroy) ? name : this._resolveField(name, scope, uid);\n if (!field) { return; }\n\n // We destroy/remove the field & error instances if it's not a `persist` one\n if (!field.persist) {\n field.destroy();\n this.errors.remove(field.name, field.scope, field.vmId);\n this.fields.remove(field);\n }\n};\n\n/**\n * Adds a custom validator to the list of validation rules.\n */\nValidator.prototype.extend = function extend (name, validator, options) {\n if ( options === void 0 ) options = {};\n\n Validator.extend(name, validator, options);\n};\n\nValidator.prototype.reset = function reset (matcher) {\n var this$1 = this;\n\n // two ticks\n return this.$vee._vm.$nextTick().then(function () {\n return this$1.$vee._vm.$nextTick();\n }).then(function () {\n this$1.fields.filter(matcher).forEach(function (field) {\n field.waitFor(null);\n field.reset(); // reset field flags.\n this$1.errors.remove(field.name, field.scope, matcher && matcher.vmId);\n });\n });\n};\n\n/**\n * Updates a field, updating both errors and flags.\n */\nValidator.prototype.update = function update (id, ref) {\n var scope = ref.scope;\n\n var field = this._resolveField((\"#\" + id));\n if (!field) { return; }\n\n // remove old scope.\n this.errors.update(id, { scope: scope });\n};\n\n/**\n * Removes a rule from the list of validators.\n * @deprecated\n */\nValidator.prototype.remove = function remove (name) {\n Validator.remove(name);\n};\n\n/**\n * Validates a value against a registered field validations.\n */\nValidator.prototype.validate = function validate (fieldDescriptor, value, ref) {\n var this$1 = this;\n if ( ref === void 0 ) ref = {};\n var silent = ref.silent;\n var vmId = ref.vmId;\n\n if (this.paused) { return Promise.resolve(true); }\n\n // overload to validate all.\n if (isNullOrUndefined(fieldDescriptor)) {\n return this.validateScopes({ silent: silent, vmId: vmId });\n }\n\n // overload to validate scope-less fields.\n if (fieldDescriptor === '*') {\n return this.validateAll(undefined, { silent: silent, vmId: vmId });\n }\n\n // if scope validation was requested.\n if (/^(.+)\\.\\*$/.test(fieldDescriptor)) {\n var matched = fieldDescriptor.match(/^(.+)\\.\\*$/)[1];\n return this.validateAll(matched);\n }\n\n var field = this._resolveField(fieldDescriptor);\n if (!field) {\n return this._handleFieldNotFound(fieldDescriptor);\n }\n\n if (!silent) { field.flags.pending = true; }\n if (value === undefined) {\n value = field.value;\n }\n\n var validationPromise = this._validate(field, value);\n field.waitFor(validationPromise);\n\n return validationPromise.then(function (result) {\n if (!silent && field.isWaitingFor(validationPromise)) {\n // allow next validation to mutate the state.\n field.waitFor(null);\n this$1._handleValidationResults([result], vmId);\n }\n\n return result.valid;\n });\n};\n\n/**\n * Pauses the validator.\n */\nValidator.prototype.pause = function pause () {\n this.paused = true;\n\n return this;\n};\n\n/**\n * Resumes the validator.\n */\nValidator.prototype.resume = function resume () {\n this.paused = false;\n\n return this;\n};\n\n/**\n * Validates each value against the corresponding field validations.\n */\nValidator.prototype.validateAll = function validateAll (values, ref) {\n var this$1 = this;\n if ( ref === void 0 ) ref = {};\n var silent = ref.silent;\n var vmId = ref.vmId;\n\n if (this.paused) { return Promise.resolve(true); }\n\n var matcher = null;\n var providedValues = false;\n\n if (typeof values === 'string') {\n matcher = { scope: values, vmId: vmId };\n } else if (isObject(values)) {\n matcher = Object.keys(values).map(function (key) {\n return { name: key, vmId: vmId, scope: null };\n });\n providedValues = true;\n } else if (Array.isArray(values)) {\n matcher = values.map(function (key) {\n return typeof key === 'object' ? Object.assign({ vmId: vmId }, key) : { name: key, vmId: vmId };\n });\n } else {\n matcher = { scope: null, vmId: vmId };\n }\n\n return Promise.all(\n this.fields.filter(matcher).map(function (field) { return this$1._validate(field, providedValues ? values[field.name] : field.value); })\n ).then(function (results) {\n if (!silent) {\n this$1._handleValidationResults(results, vmId);\n }\n\n return results.every(function (t) { return t.valid; });\n });\n};\n\n/**\n * Validates all scopes.\n */\nValidator.prototype.validateScopes = function validateScopes (ref) {\n var this$1 = this;\n if ( ref === void 0 ) ref = {};\n var silent = ref.silent;\n var vmId = ref.vmId;\n\n if (this.paused) { return Promise.resolve(true); }\n\n return Promise.all(\n this.fields.filter({ vmId: vmId }).map(function (field) { return this$1._validate(field, field.value); })\n ).then(function (results) {\n if (!silent) {\n this$1._handleValidationResults(results, vmId);\n }\n\n return results.every(function (t) { return t.valid; });\n });\n};\n\n/**\n * Validates a value against the rules.\n */\nValidator.prototype.verify = function verify (value, rules, options) {\n if ( options === void 0 ) options = {};\n\n var field = {\n name: (options && options.name) || '{field}',\n rules: normalizeRules(rules),\n bails: getPath('bails', options, true),\n forceRequired: false,\n get isRequired () {\n return !!this.rules.required || this.forceRequired;\n }\n };\n\n var targetRules = Object.keys(field.rules).filter(RuleContainer.isTargetRule);\n if (targetRules.length && options && isObject(options.values)) {\n field.dependencies = targetRules.map(function (rule) {\n var ref = field.rules[rule];\n var targetKey = ref[0];\n\n return {\n name: rule,\n field: { value: options.values[targetKey] }\n };\n });\n }\n\n return this._validate(field, value).then(function (result) {\n var errors = [];\n var ruleMap = {};\n result.errors.forEach(function (e) {\n errors.push(e.msg);\n ruleMap[e.rule] = e.msg;\n });\n\n return {\n valid: result.valid,\n errors: errors,\n failedRules: ruleMap\n };\n });\n};\n\n/**\n * Perform cleanup.\n */\nValidator.prototype.destroy = function destroy () {\n this.$vee._vm.$off('localeChanged');\n};\n\n/**\n * Creates the fields to be validated.\n */\nValidator.prototype._createFields = function _createFields (validations) {\n var this$1 = this;\n\n if (!validations) { return; }\n\n Object.keys(validations).forEach(function (field) {\n var options = assign({}, { name: field, rules: validations[field] });\n this$1.attach(options);\n });\n};\n\n/**\n * Date rules need the existence of a format, so date_format must be supplied.\n */\nValidator.prototype._getDateFormat = function _getDateFormat (validations) {\n var format = null;\n if (validations.date_format && Array.isArray(validations.date_format)) {\n format = validations.date_format[0];\n }\n\n return format || DictionaryResolver.getDriver().getDateFormat(this.locale);\n};\n\n/**\n * Formats an error message for field and a rule.\n */\nValidator.prototype._formatErrorMessage = function _formatErrorMessage (field, rule, data, targetName) {\n if ( data === void 0 ) data = {};\n if ( targetName === void 0 ) targetName = null;\n\n var name = this._getFieldDisplayName(field);\n var params = this._getLocalizedParams(rule, targetName);\n\n return DictionaryResolver.getDriver().getFieldMessage(this.locale, field.name, rule.name, [name, params, data]);\n};\n\n/**\n * We need to convert any object param to an array format since the locales do not handle params as objects yet.\n */\nValidator.prototype._convertParamObjectToArray = function _convertParamObjectToArray (obj, ruleName) {\n if (Array.isArray(obj)) {\n return obj;\n }\n\n var paramNames = RuleContainer.getParamNames(ruleName);\n if (!paramNames || !isObject(obj)) {\n return obj;\n }\n\n return paramNames.reduce(function (prev, paramName) {\n if (paramName in obj) {\n prev.push(obj[paramName]);\n }\n\n return prev;\n }, []);\n};\n\n/**\n * Translates the parameters passed to the rule (mainly for target fields).\n */\nValidator.prototype._getLocalizedParams = function _getLocalizedParams (rule, targetName) {\n if ( targetName === void 0 ) targetName = null;\n\n var params = this._convertParamObjectToArray(rule.params, rule.name);\n if (rule.options.hasTarget && params && params[0]) {\n var localizedName = targetName || DictionaryResolver.getDriver().getAttribute(this.locale, params[0], params[0]);\n return [localizedName].concat(params.slice(1));\n }\n\n return params;\n};\n\n/**\n * Resolves an appropriate display name, first checking 'data-as' or the registered 'prettyName'\n */\nValidator.prototype._getFieldDisplayName = function _getFieldDisplayName (field) {\n return field.alias || DictionaryResolver.getDriver().getAttribute(this.locale, field.name, field.name);\n};\n\n/**\n * Converts an array of params to an object with named properties.\n * Only works if the rule is configured with a paramNames array.\n * Returns the same params if it cannot convert it.\n */\nValidator.prototype._convertParamArrayToObj = function _convertParamArrayToObj (params, ruleName) {\n var paramNames = RuleContainer.getParamNames(ruleName);\n if (!paramNames) {\n return params;\n }\n\n if (isObject(params)) {\n // check if the object is either a config object or a single parameter that is an object.\n var hasKeys = paramNames.some(function (name) { return Object.keys(params).indexOf(name) !== -1; });\n // if it has some of the keys, return it as is.\n if (hasKeys) {\n return params;\n }\n // otherwise wrap the object in an array.\n params = [params];\n }\n\n // Reduce the paramsNames to a param object.\n return params.reduce(function (prev, value, idx) {\n prev[paramNames[idx]] = value;\n\n return prev;\n }, {});\n};\n\n/**\n * Tests a single input value against a rule.\n */\nValidator.prototype._test = function _test (field, value, rule) {\n var this$1 = this;\n\n var validator = RuleContainer.getValidatorMethod(rule.name);\n var params = Array.isArray(rule.params) ? toArray(rule.params) : rule.params;\n if (!params) {\n params = [];\n }\n\n var targetName = null;\n if (!validator || typeof validator !== 'function') {\n return Promise.reject(createError((\"No such validator '\" + (rule.name) + \"' exists.\")));\n }\n\n // has field dependencies.\n if (rule.options.hasTarget && field.dependencies) {\n var target = find(field.dependencies, function (d) { return d.name === rule.name; });\n if (target) {\n targetName = target.field.alias;\n params = [target.field.value].concat(params.slice(1));\n }\n } else if (rule.name === 'required' && field.rejectsFalse) {\n // invalidate false if no args were specified and the field rejects false by default.\n params = params.length ? params : [true];\n }\n\n if (rule.options.isDate) {\n var dateFormat = this._getDateFormat(field.rules);\n if (rule.name !== 'date_format') {\n params.push(dateFormat);\n }\n }\n\n var result = validator(value, this._convertParamArrayToObj(params, rule.name));\n\n // If it is a promise.\n if (isCallable(result.then)) {\n return result.then(function (values) {\n var allValid = true;\n var data = {};\n if (Array.isArray(values)) {\n allValid = values.every(function (t) { return (isObject(t) ? t.valid : t); });\n } else { // Is a single object/boolean.\n allValid = isObject(values) ? values.valid : values;\n data = values.data;\n }\n\n return {\n valid: allValid,\n data: result.data,\n errors: allValid ? [] : [this$1._createFieldError(field, rule, data, targetName)]\n };\n });\n }\n\n if (!isObject(result)) {\n result = { valid: result, data: {} };\n }\n\n return {\n valid: result.valid,\n data: result.data,\n errors: result.valid ? [] : [this._createFieldError(field, rule, result.data, targetName)]\n };\n};\n\n/**\n * Merges a validator object into the RULES and Messages.\n */\nValidator._merge = function _merge (name, ref) {\n var validator = ref.validator;\n var options = ref.options;\n var paramNames = ref.paramNames;\n\n var validate = isCallable(validator) ? validator : validator.validate;\n if (validator.getMessage) {\n DictionaryResolver.getDriver().setMessage(Validator.locale, name, validator.getMessage);\n }\n\n RuleContainer.add(name, {\n validate: validate,\n options: options,\n paramNames: paramNames\n });\n};\n\n/**\n * Guards from extension violations.\n */\nValidator._guardExtend = function _guardExtend (name, validator) {\n if (isCallable(validator)) {\n return;\n }\n\n if (!isCallable(validator.validate)) {\n throw createError(\n (\"Extension Error: The validator '\" + name + \"' must be a function or have a 'validate' method.\")\n );\n }\n};\n\n/**\n * Creates a Field Error Object.\n */\nValidator.prototype._createFieldError = function _createFieldError (field, rule, data, targetName) {\n var this$1 = this;\n\n return {\n id: field.id,\n vmId: field.vmId,\n field: field.name,\n msg: this._formatErrorMessage(field, rule, data, targetName),\n rule: rule.name,\n scope: field.scope,\n regenerate: function () {\n return this$1._formatErrorMessage(field, rule, data, targetName);\n }\n };\n};\n\n/**\n * Tries different strategies to find a field.\n */\nValidator.prototype._resolveField = function _resolveField (name, scope, uid) {\n if (name[0] === '#') {\n return this.fields.findById(name.slice(1));\n }\n\n if (!isNullOrUndefined(scope)) {\n return this.fields.find({ name: name, scope: scope, vmId: uid });\n }\n\n if (includes(name, '.')) {\n var ref = name.split('.');\n var fieldScope = ref[0];\n var fieldName = ref.slice(1);\n var field = this.fields.find({ name: fieldName.join('.'), scope: fieldScope, vmId: uid });\n if (field) {\n return field;\n }\n }\n\n return this.fields.find({ name: name, scope: null, vmId: uid });\n};\n\n/**\n * Handles when a field is not found.\n */\nValidator.prototype._handleFieldNotFound = function _handleFieldNotFound (name, scope) {\n var fullName = isNullOrUndefined(scope) ? name : (\"\" + (!isNullOrUndefined(scope) ? scope + '.' : '') + name);\n\n return Promise.reject(createError(\n (\"Validating a non-existent field: \\\"\" + fullName + \"\\\". Use \\\"attach()\\\" first.\")\n ));\n};\n\n/**\n * Handles validation results.\n */\nValidator.prototype._handleValidationResults = function _handleValidationResults (results, vmId) {\n var this$1 = this;\n\n var matchers = results.map(function (result) { return ({ id: result.id }); });\n this.errors.removeById(matchers.map(function (m) { return m.id; }));\n // remove by name and scope to remove any custom errors added.\n results.forEach(function (result) {\n this$1.errors.remove(result.field, result.scope, vmId);\n });\n var allErrors = results.reduce(function (prev, curr) {\n prev.push.apply(prev, curr.errors);\n\n return prev;\n }, []);\n\n this.errors.add(allErrors);\n\n // handle flags.\n this.fields.filter(matchers).forEach(function (field) {\n var result = find(results, function (r) { return r.id === field.id; });\n field.setFlags({\n pending: false,\n valid: result.valid,\n validated: true\n });\n });\n};\n\nValidator.prototype._shouldSkip = function _shouldSkip (field, value) {\n // field is configured to run through the pipeline regardless\n if (field.bails === false) {\n return false;\n }\n\n // disabled fields are skipped if useConstraintAttrs is enabled in config\n if (field.isDisabled && getConfig().useConstraintAttrs) {\n return true;\n }\n\n // skip if the field is not required and has an empty value.\n return !field.isRequired && (isNullOrUndefined(value) || value === '' || isEmptyArray(value));\n};\n\nValidator.prototype._shouldBail = function _shouldBail (field) {\n // if the field was configured explicitly.\n if (field.bails !== undefined) {\n return field.bails;\n }\n\n return this.fastExit;\n};\n\n/**\n * Starts the validation process.\n */\nValidator.prototype._validate = function _validate (field, value, ref) {\n var this$1 = this;\n if ( ref === void 0 ) ref = {};\n var initial = ref.initial;\n\n var requireRules = Object.keys(field.rules).filter(RuleContainer.isRequireRule);\n\n field.forceRequired = false;\n requireRules.forEach(function (rule) {\n var ruleOptions = RuleContainer.getOptions(rule);\n var result = this$1._test(field, value, { name: rule, params: field.rules[rule], options: ruleOptions });\n\n if (isCallable(result.then)) { throw createError('Require rules cannot be async'); }\n if (!isObject(result)) { throw createError('Require rules has to return an object (see docs)'); }\n\n if (result.data.required === true) {\n field.forceRequired = true;\n }\n });\n\n if (this._shouldSkip(field, value)) {\n return Promise.resolve({ valid: true, id: field.id, field: field.name, scope: field.scope, errors: [] });\n }\n\n var promises = [];\n var errors = [];\n var isExitEarly = false;\n if (isCallable(field.checkValueChanged)) {\n field.flags.changed = field.checkValueChanged();\n }\n\n // use of '.some()' is to break iteration in middle by returning true\n Object.keys(field.rules).filter(function (rule) {\n if (!initial || !RuleContainer.has(rule)) { return true; }\n\n return RuleContainer.isImmediate(rule);\n }).some(function (rule) {\n var ruleOptions = RuleContainer.getOptions(rule);\n var result = this$1._test(field, value, { name: rule, params: field.rules[rule], options: ruleOptions });\n if (isCallable(result.then)) {\n promises.push(result);\n } else if (!result.valid && this$1._shouldBail(field)) {\n errors.push.apply(errors, result.errors);\n isExitEarly = true;\n } else {\n // promisify the result.\n promises.push(new Promise(function (resolve) { return resolve(result); }));\n }\n\n return isExitEarly;\n });\n\n if (isExitEarly) {\n return Promise.resolve({ valid: false, errors: errors, id: field.id, field: field.name, scope: field.scope });\n }\n\n return Promise.all(promises).then(function (results) {\n return results.reduce(function (prev, v) {\n var ref;\n\n if (!v.valid) {\n (ref = prev.errors).push.apply(ref, v.errors);\n }\n\n prev.valid = prev.valid && v.valid;\n\n return prev;\n }, { valid: true, errors: errors, id: field.id, field: field.name, scope: field.scope });\n });\n};\n\nObject.defineProperties( Validator.prototype, prototypeAccessors$4 );\nObject.defineProperties( Validator, staticAccessors$1 );\n\n// \n\nvar normalizeValue = function (value) {\n if (isObject(value)) {\n return Object.keys(value).reduce(function (prev, key) {\n prev[key] = normalizeValue(value[key]);\n\n return prev;\n }, {});\n }\n\n if (isCallable(value)) {\n return value('{0}', ['{1}', '{2}', '{3}']);\n }\n\n return value;\n};\n\nvar normalizeFormat = function (locale) {\n // normalize messages\n var dictionary = {};\n if (locale.messages) {\n dictionary.messages = normalizeValue(locale.messages);\n }\n\n if (locale.custom) {\n dictionary.custom = normalizeValue(locale.custom);\n }\n\n if (locale.attributes) {\n dictionary.attributes = locale.attributes;\n }\n\n if (!isNullOrUndefined(locale.dateFormat)) {\n dictionary.dateFormat = locale.dateFormat;\n }\n\n return dictionary;\n};\n\nvar I18nDictionary = function I18nDictionary (i18n, rootKey) {\n this.i18n = i18n;\n this.rootKey = rootKey;\n};\n\nvar prototypeAccessors$5 = { locale: { configurable: true } };\n\nprototypeAccessors$5.locale.get = function () {\n return this.i18n.locale;\n};\n\nprototypeAccessors$5.locale.set = function (value) {\n warn('Cannot set locale from the validator when using vue-i18n, use i18n.locale setter instead');\n};\n\nI18nDictionary.prototype.getDateFormat = function getDateFormat (locale) {\n return this.i18n.getDateTimeFormat(locale || this.locale);\n};\n\nI18nDictionary.prototype.setDateFormat = function setDateFormat (locale, value) {\n this.i18n.setDateTimeFormat(locale || this.locale, value);\n};\n\nI18nDictionary.prototype.getMessage = function getMessage (_, key, data) {\n var path = (this.rootKey) + \".messages.\" + key;\n var dataOptions = data;\n\n if (Array.isArray(data)) {\n dataOptions = [].concat.apply([], data);\n }\n\n if (this.i18n.te(path)) {\n return this.i18n.t(path, dataOptions);\n }\n\n // fallback to the fallback message\n if (this.i18n.te(path, this.i18n.fallbackLocale)) {\n return this.i18n.t(path, this.i18n.fallbackLocale, dataOptions);\n }\n\n // fallback to the root message\n return this.i18n.t(((this.rootKey) + \".messages._default\"), dataOptions);\n};\n\nI18nDictionary.prototype.getAttribute = function getAttribute (_, key, fallback) {\n if ( fallback === void 0 ) fallback = '';\n\n var path = (this.rootKey) + \".attributes.\" + key;\n if (this.i18n.te(path)) {\n return this.i18n.t(path);\n }\n\n return fallback;\n};\n\nI18nDictionary.prototype.getFieldMessage = function getFieldMessage (_, field, key, data) {\n var path = (this.rootKey) + \".custom.\" + field + \".\" + key;\n if (this.i18n.te(path)) {\n return this.i18n.t(path, data);\n }\n\n return this.getMessage(_, key, data);\n};\n\nI18nDictionary.prototype.merge = function merge$1 (dictionary) {\n var this$1 = this;\n\n Object.keys(dictionary).forEach(function (localeKey) {\n var obj;\n\n // i18n doesn't deep merge\n // first clone the existing locale (avoid mutations to locale)\n var clone = merge({}, getPath((localeKey + \".\" + (this$1.rootKey)), this$1.i18n.messages, {}));\n // Merge cloned locale with new one\n var locale = merge(clone, normalizeFormat(dictionary[localeKey]));\n this$1.i18n.mergeLocaleMessage(localeKey, ( obj = {}, obj[this$1.rootKey] = locale, obj ));\n if (locale.dateFormat) {\n this$1.i18n.setDateTimeFormat(localeKey, locale.dateFormat);\n }\n });\n};\n\nI18nDictionary.prototype.setMessage = function setMessage (locale, key, value) {\n var obj, obj$1;\n\n this.merge(( obj$1 = {}, obj$1[locale] = {\n messages: ( obj = {}, obj[key] = value, obj )\n }, obj$1 ));\n};\n\nI18nDictionary.prototype.setAttribute = function setAttribute (locale, key, value) {\n var obj, obj$1;\n\n this.merge(( obj$1 = {}, obj$1[locale] = {\n attributes: ( obj = {}, obj[key] = value, obj )\n }, obj$1 ));\n};\n\nObject.defineProperties( I18nDictionary.prototype, prototypeAccessors$5 );\n\nvar aggressive = function () { return ({\n on: ['input']\n}); };\n\nvar lazy = function () { return ({\n on: ['change']\n}); };\n\nvar eager = function (ref) {\n var errors = ref.errors;\n\n if (errors.length) {\n return {\n on: ['input']\n };\n }\n\n return {\n on: ['change', 'blur']\n };\n};\n\nvar passive = function () { return ({\n on: []\n}); };\n\nvar modes = {\n aggressive: aggressive,\n eager: eager,\n passive: passive,\n lazy: lazy\n};\n\n// \n\nvar Vue;\nvar pendingPlugins;\nvar pluginInstance;\n\nvar VeeValidate$1 = function VeeValidate (config, _Vue) {\n this.configure(config);\n pluginInstance = this;\n if (_Vue) {\n Vue = _Vue;\n }\n this._validator = setValidator(\n new Validator(null, { fastExit: config && config.fastExit }, this)\n );\n this._initVM(this.config);\n this._initI18n(this.config);\n};\n\nvar prototypeAccessors$6 = { i18nDriver: { configurable: true },config: { configurable: true } };\nvar staticAccessors$2 = { i18nDriver: { configurable: true },config: { configurable: true } };\n\nVeeValidate$1.setI18nDriver = function setI18nDriver (driver, instance) {\n DictionaryResolver.setDriver(driver, instance);\n};\n\nVeeValidate$1.configure = function configure (cfg) {\n setConfig(cfg);\n};\n\nVeeValidate$1.setMode = function setMode (mode, implementation) {\n setConfig({ mode: mode });\n if (!implementation) {\n return;\n }\n\n if (!isCallable(implementation)) {\n throw new Error('A mode implementation must be a function');\n }\n\n modes[mode] = implementation;\n};\n\nVeeValidate$1.use = function use (plugin, options) {\n if ( options === void 0 ) options = {};\n\n if (!isCallable(plugin)) {\n return warn('The plugin must be a callable function');\n }\n\n // Don't install plugins until vee-validate is installed.\n if (!pluginInstance) {\n if (!pendingPlugins) {\n pendingPlugins = [];\n }\n pendingPlugins.push({ plugin: plugin, options: options });\n return;\n }\n\n plugin({ Validator: Validator, ErrorBag: ErrorBag, Rules: Validator.rules }, options);\n};\nVeeValidate$1.install = function install (_Vue, opts) {\n if (Vue && _Vue === Vue) {\n if (process.env.NODE_ENV !== 'production') {\n warn('already installed, Vue.use(VeeValidate) should only be called once.');\n }\n return;\n }\n\n Vue = _Vue;\n pluginInstance = new VeeValidate$1(opts);\n // inject the plugin container statically into the validator class\n Validator.$vee = pluginInstance;\n\n detectPassiveSupport();\n\n Vue.mixin(mixin);\n Vue.directive('validate', directive);\n if (pendingPlugins) {\n pendingPlugins.forEach(function (ref) {\n var plugin = ref.plugin;\n var options = ref.options;\n\n VeeValidate$1.use(plugin, options);\n });\n pendingPlugins = null;\n }\n};\n\nprototypeAccessors$6.i18nDriver.get = function () {\n return DictionaryResolver.getDriver();\n};\n\nstaticAccessors$2.i18nDriver.get = function () {\n return DictionaryResolver.getDriver();\n};\n\nprototypeAccessors$6.config.get = function () {\n return getConfig();\n};\n\nstaticAccessors$2.config.get = function () {\n return getConfig();\n};\n\nVeeValidate$1.prototype._initVM = function _initVM (config) {\n var this$1 = this;\n\n this._vm = new Vue({\n data: function () { return ({\n errors: this$1._validator.errors,\n fields: this$1._validator.fields\n }); }\n });\n};\n\nVeeValidate$1.prototype._initI18n = function _initI18n (config) {\n var this$1 = this;\n\n var dictionary = config.dictionary;\n var i18n = config.i18n;\n var i18nRootKey = config.i18nRootKey;\n var locale = config.locale;\n var onLocaleChanged = function () {\n if (dictionary) {\n this$1.i18nDriver.merge(dictionary);\n }\n\n this$1._validator.errors.regenerate();\n };\n\n // i18 is being used for localization.\n if (i18n) {\n VeeValidate$1.setI18nDriver('i18n', new I18nDictionary(i18n, i18nRootKey));\n i18n._vm.$watch('locale', onLocaleChanged);\n } else if (typeof window !== 'undefined') {\n this._vm.$on('localeChanged', onLocaleChanged);\n }\n\n if (dictionary) {\n this.i18nDriver.merge(dictionary);\n }\n\n if (locale && !i18n) {\n this._validator.localize(locale);\n }\n};\n\nVeeValidate$1.prototype.configure = function configure (cfg) {\n setConfig(cfg);\n};\n\nObject.defineProperties( VeeValidate$1.prototype, prototypeAccessors$6 );\nObject.defineProperties( VeeValidate$1, staticAccessors$2 );\n\nVeeValidate$1.mixin = mixin;\nVeeValidate$1.directive = directive;\nVeeValidate$1.Validator = Validator;\nVeeValidate$1.ErrorBag = ErrorBag;\n\n/**\n * Formates file size.\n *\n * @param {Number|String} size\n */\nvar formatFileSize = function (size) {\n var units = ['Byte', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n var threshold = 1024;\n size = Number(size) * threshold;\n var i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(threshold));\n return (((size / Math.pow(threshold, i)).toFixed(2) * 1) + \" \" + (units[i]));\n};\n\n/**\n * Checks if vee-validate is defined globally.\n */\nvar isDefinedGlobally = function () {\n return typeof VeeValidate !== 'undefined';\n};\n\nvar obj;\n\nvar messages = {\n _default: function (field) { return (\"The \" + field + \" value is not valid.\"); },\n after: function (field, ref) {\n var target = ref[0];\n var inclusion = ref[1];\n\n return (\"The \" + field + \" must be after \" + (inclusion ? 'or equal to ' : '') + target + \".\");\n},\n alpha: function (field) { return (\"The \" + field + \" field may only contain alphabetic characters.\"); },\n alpha_dash: function (field) { return (\"The \" + field + \" field may contain alpha-numeric characters as well as dashes and underscores.\"); },\n alpha_num: function (field) { return (\"The \" + field + \" field may only contain alpha-numeric characters.\"); },\n alpha_spaces: function (field) { return (\"The \" + field + \" field may only contain alphabetic characters as well as spaces.\"); },\n before: function (field, ref) {\n var target = ref[0];\n var inclusion = ref[1];\n\n return (\"The \" + field + \" must be before \" + (inclusion ? 'or equal to ' : '') + target + \".\");\n},\n between: function (field, ref) {\n var min = ref[0];\n var max = ref[1];\n\n return (\"The \" + field + \" field must be between \" + min + \" and \" + max + \".\");\n},\n confirmed: function (field) { return (\"The \" + field + \" confirmation does not match.\"); },\n credit_card: function (field) { return (\"The \" + field + \" field is invalid.\"); },\n date_between: function (field, ref) {\n var min = ref[0];\n var max = ref[1];\n\n return (\"The \" + field + \" must be between \" + min + \" and \" + max + \".\");\n},\n date_format: function (field, ref) {\n var format = ref[0];\n\n return (\"The \" + field + \" must be in the format \" + format + \".\");\n},\n decimal: function (field, ref) {\n if ( ref === void 0 ) ref = [];\n var decimals = ref[0]; if ( decimals === void 0 ) decimals = '*';\n\n return (\"The \" + field + \" field must be numeric and may contain\" + (!decimals || decimals === '*' ? '' : ' ' + decimals) + \" decimal points.\");\n},\n digits: function (field, ref) {\n var length = ref[0];\n\n return (\"The \" + field + \" field must be numeric and contains exactly \" + length + \" digits.\");\n},\n dimensions: function (field, ref) {\n var width = ref[0];\n var height = ref[1];\n\n return (\"The \" + field + \" field must be \" + width + \" pixels by \" + height + \" pixels.\");\n},\n email: function (field) { return (\"The \" + field + \" field must be a valid email.\"); },\n excluded: function (field) { return (\"The \" + field + \" field must be a valid value.\"); },\n ext: function (field) { return (\"The \" + field + \" field must be a valid file.\"); },\n image: function (field) { return (\"The \" + field + \" field must be an image.\"); },\n included: function (field) { return (\"The \" + field + \" field must be a valid value.\"); },\n integer: function (field) { return (\"The \" + field + \" field must be an integer.\"); },\n ip: function (field) { return (\"The \" + field + \" field must be a valid ip address.\"); },\n ip_or_fqdn: function (field) { return (\"The \" + field + \" field must be a valid ip address or FQDN.\"); },\n length: function (field, ref) {\n var length = ref[0];\n var max = ref[1];\n\n if (max) {\n return (\"The \" + field + \" length must be between \" + length + \" and \" + max + \".\");\n }\n\n return (\"The \" + field + \" length must be \" + length + \".\");\n },\n max: function (field, ref) {\n var length = ref[0];\n\n return (\"The \" + field + \" field may not be greater than \" + length + \" characters.\");\n},\n max_value: function (field, ref) {\n var max = ref[0];\n\n return (\"The \" + field + \" field must be \" + max + \" or less.\");\n},\n mimes: function (field) { return (\"The \" + field + \" field must have a valid file type.\"); },\n min: function (field, ref) {\n var length = ref[0];\n\n return (\"The \" + field + \" field must be at least \" + length + \" characters.\");\n},\n min_value: function (field, ref) {\n var min = ref[0];\n\n return (\"The \" + field + \" field must be \" + min + \" or more.\");\n},\n numeric: function (field) { return (\"The \" + field + \" field may only contain numeric characters.\"); },\n regex: function (field) { return (\"The \" + field + \" field format is invalid.\"); },\n required: function (field) { return (\"The \" + field + \" field is required.\"); },\n required_if: function (field, ref) {\n var target = ref[0];\n\n return (\"The \" + field + \" field is required when the \" + target + \" field has this value.\");\n},\n size: function (field, ref) {\n var size = ref[0];\n\n return (\"The \" + field + \" size must be less than \" + (formatFileSize(size)) + \".\");\n},\n url: function (field) { return (\"The \" + field + \" field is not a valid URL.\"); }\n};\n\nvar locale = {\n name: 'en',\n messages: messages,\n attributes: {}\n};\n\nif (isDefinedGlobally()) {\n // eslint-disable-next-line\n VeeValidate.Validator.localize(( obj = {}, obj[locale.name] = locale, obj ));\n}\n\nfunction toInteger (dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number)\n}\n\nvar MILLISECONDS_IN_MINUTE = 60000;\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nfunction getTimezoneOffsetInMilliseconds (dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = date.getTimezoneOffset();\n date.setSeconds(0, 0);\n var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE;\n\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset\n}\n\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE$1 = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\n\nvar patterns = {\n dateTimeDelimeter: /[T ]/,\n plainTime: /:/,\n timeZoneDelimeter: /[Z ]/i,\n\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/ // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/ // 2 additional digits\n ],\n\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n\n // timezone tokens\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-])(\\d{2})$/,\n timezoneHHMM: /^([+-])(\\d{2}):?(\\d{2})$/\n};\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n * If the function cannot parse the string or the values are invalid, it returns Invalid Date.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = toDate('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = toDate('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction toDate (argument, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n if (argument === null) {\n return new Date(NaN)\n }\n\n var options = dirtyOptions || {};\n\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2')\n }\n\n // Clone the date\n if (argument instanceof Date ||\n (typeof argument === 'object' && Object.prototype.toString.call(argument) === '[object Date]')\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime())\n } else if (typeof argument === 'number' || Object.prototype.toString.call(argument) === '[object Number]') {\n return new Date(argument)\n } else if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN)\n }\n\n var dateStrings = splitDateString(argument);\n\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n var year = parseYearResult.year;\n var restDateString = parseYearResult.restDateString;\n\n var date = parseDate(restDateString, year);\n\n if (isNaN(date)) {\n return new Date(NaN)\n }\n\n if (date) {\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN)\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN)\n }\n } else {\n // get offset accurate to hour in timezones that change offset\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time));\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time + offset));\n }\n\n return new Date(timestamp + time + offset)\n } else {\n return new Date(NaN)\n }\n}\n\nfunction splitDateString (dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimeter);\n var timeString;\n\n if (patterns.plainTime.test(array[0])) {\n dateStrings.date = null;\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimeter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimeter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings\n}\n\nfunction parseYear (dateString, additionalDigits) {\n var patternYYY = patterns.YYY[additionalDigits];\n var patternYYYYY = patterns.YYYYY[additionalDigits];\n\n var token;\n\n // YYYY or ±YYYYY\n token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);\n if (token) {\n var yearString = token[1];\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n }\n }\n\n // YY or ±YYY\n token = patterns.YY.exec(dateString) || patternYYY.exec(dateString);\n if (token) {\n var centuryString = token[1];\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n }\n }\n\n // Invalid ISO-formatted year\n return {\n year: null\n }\n}\n\nfunction parseDate (dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null\n }\n\n var token;\n var date;\n var month;\n var week;\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0);\n date.setUTCFullYear(year);\n return date\n }\n\n // YYYY-MM\n token = patterns.MM.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n\n if (!validateDate(year, month)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month);\n return date\n }\n\n // YYYY-DDD or YYYYDDD\n token = patterns.DDD.exec(dateString);\n if (token) {\n date = new Date(0);\n var dayOfYear = parseInt(token[1], 10);\n\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, 0, dayOfYear);\n return date\n }\n\n // YYYY-MM-DD or YYYYMMDD\n token = patterns.MMDD.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n var day = parseInt(token[2], 10);\n\n if (!validateDate(year, month, day)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month, day);\n return date\n }\n\n // YYYY-Www or YYYYWww\n token = patterns.Www.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n\n if (!validateWeekDate(year, week)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week)\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = patterns.WwwD.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n var dayOfWeek = parseInt(token[2], 10) - 1;\n\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek)\n }\n\n // Invalid ISO-formatted date\n return null\n}\n\nfunction parseTime (timeString) {\n var token;\n var hours;\n var minutes;\n\n // hh\n token = patterns.HH.exec(timeString);\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'));\n\n if (!validateTime(hours)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR\n }\n\n // hh:mm or hhmm\n token = patterns.HHMM.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseFloat(token[2].replace(',', '.'));\n\n if (!validateTime(hours, minutes)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE$1\n }\n\n // hh:mm:ss or hhmmss\n token = patterns.HHMMSS.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseInt(token[2], 10);\n var seconds = parseFloat(token[3].replace(',', '.'));\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE$1 +\n seconds * 1000\n }\n\n // Invalid ISO-formatted time\n return null\n}\n\nfunction parseTimezone (timezoneString) {\n var token;\n var absoluteOffset;\n\n // Z\n token = patterns.timezoneZ.exec(timezoneString);\n if (token) {\n return 0\n }\n\n var hours;\n\n // ±hh\n token = patterns.timezoneHH.exec(timezoneString);\n if (token) {\n hours = parseInt(token[2], 10);\n\n if (!validateTimezone()) {\n return NaN\n }\n\n absoluteOffset = hours * MILLISECONDS_IN_HOUR;\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n // ±hh:mm or ±hhmm\n token = patterns.timezoneHHMM.exec(timezoneString);\n if (token) {\n hours = parseInt(token[2], 10);\n var minutes = parseInt(token[3], 10);\n\n if (!validateTimezone(hours, minutes)) {\n return NaN\n }\n\n absoluteOffset = hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE$1;\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n return 0\n}\n\nfunction dayOfISOWeekYear (isoWeekYear, week, day) {\n week = week || 0;\n day = day || 0;\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date\n}\n\n// Validation functions\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex (year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0)\n}\n\nfunction validateDate (year, month, date) {\n if (month < 0 || month > 11) {\n return false\n }\n\n if (date != null) {\n if (date < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false\n }\n }\n\n return true\n}\n\nfunction validateDayOfYearDate (year, dayOfYear) {\n if (dayOfYear < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && dayOfYear > 366) {\n return false\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false\n }\n\n return true\n}\n\nfunction validateWeekDate (year, week, day) {\n if (week < 0 || week > 52) {\n return false\n }\n\n if (day != null && (day < 0 || day > 6)) {\n return false\n }\n\n return true\n}\n\nfunction validateTime (hours, minutes, seconds) {\n if (hours != null && (hours < 0 || hours >= 25)) {\n return false\n }\n\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false\n }\n\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false\n }\n\n return true\n}\n\nfunction validateTimezone (hours, minutes) {\n if (minutes != null && (minutes < 0 || minutes > 59)) {\n return false\n }\n\n return true\n}\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nfunction addMilliseconds (dirtyDate, dirtyAmount, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var timestamp = toDate(dirtyDate, dirtyOptions).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount)\n}\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid('2014-02-31')\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n return !isNaN(date)\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n\n halfAMinute: 'half a minute',\n\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nfunction formatDistance (token, count, options) {\n options = options || {};\n\n var result;\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result\n } else {\n return result + ' ago'\n }\n }\n\n return result\n}\n\nfunction buildFormatLongFn (args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format\n }\n}\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\n\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\n\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\n\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\n\nvar formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nfunction formatRelative (token, date, baseDate, options) {\n return formatRelativeLocale[token]\n}\n\nfunction buildLocalizeFn (args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var context = options.context ? String(options.context) : 'standalone';\n\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n valuesArray = args.formattingValues[width] || args.formattingValues[args.defaultFormattingWidth];\n } else {\n valuesArray = args.values[width] || args.values[args.defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index]\n }\n}\n\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\n\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\n\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\n\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber (dirtyNumber, dirtyOptions) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st'\n case 2:\n return number + 'nd'\n case 3:\n return number + 'rd'\n }\n }\n return number + 'th'\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1\n }\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaulFormattingWidth: 'wide'\n })\n};\n\nfunction buildMatchPatternFn (args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) {\n return null\n }\n var matchedString = matchResult[0];\n\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) {\n return null\n }\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n return {\n value: value,\n rest: string.slice(matchedString.length)\n }\n }\n}\n\nfunction buildMatchFn (args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n\n var matchPattern = (width && args.matchPatterns[width]) || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null\n }\n var matchedString = matchResult[0];\n\n var parsePatterns = (width && args.parsePatterns[width]) || args.parsePatterns[args.defaultParseWidth];\n\n var value;\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = parsePatterns.findIndex(function (pattern) {\n return pattern.test(string)\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(string)\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n return {\n value: value,\n rest: string.slice(matchedString.length)\n }\n }\n}\n\nfunction findKey (object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key\n }\n }\n}\n\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\n\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\n\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\n\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\n\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\n\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\n\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10)\n }\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1\n }\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale$1 = {\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\n\nvar MILLISECONDS_IN_DAY = 86400000;\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCDayOfYear (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCISOWeek (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var weekStartsOn = 1;\n\n var date = toDate(dirtyDate, dirtyOptions);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCISOWeekYear (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear, dirtyOptions);\n\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year\n } else {\n return year - 1\n }\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCISOWeekYear (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var year = getUTCISOWeekYear(dirtyDate, dirtyOptions);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary, dirtyOptions);\n return date\n}\n\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCISOWeek (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var diff = startOfUTCISOWeek(date, dirtyOptions).getTime() - startOfUTCISOWeekYear(date, dirtyOptions).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCWeek (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n }\n\n var date = toDate(dirtyDate, options);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCWeekYear (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale &&\n locale.options &&\n locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate =\n localeFirstWeekContainsDate == null\n ? 1\n : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate =\n options.firstWeekContainsDate == null\n ? defaultFirstWeekContainsDate\n : toInteger(options.firstWeekContainsDate);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively')\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year\n } else {\n return year - 1\n }\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCWeekYear (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale &&\n locale.options &&\n locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate =\n localeFirstWeekContainsDate == null\n ? 1\n : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate =\n options.firstWeekContainsDate == null\n ? defaultFirstWeekContainsDate\n : toInteger(options.firstWeekContainsDate);\n\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date\n}\n\nvar MILLISECONDS_IN_WEEK$1 = 604800000;\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCWeek (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var diff = startOfUTCWeek(date, dirtyOptions).getTime() - startOfUTCWeekYear(date, dirtyOptions).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK$1) + 1\n}\n\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {width: 'abbreviated'})\n // A, B\n case 'GGGGG':\n return localize.era(era, {width: 'narrow'})\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {width: 'wide'})\n }\n },\n\n // Year\n y: function (date, token, localize, options) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n\n // Two digit year\n if (token === 'yy') {\n var twoDigitYear = year % 100;\n return addLeadingZeros(twoDigitYear, 2)\n }\n\n // Ordinal number\n if (token === 'yo') {\n return localize.ordinalNumber(year, {unit: 'year'})\n }\n\n // Padding\n return addLeadingZeros(year, token.length)\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2)\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {unit: 'year'})\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length)\n },\n\n // ISO week-numbering year\n R: function (date, token, localize, options) {\n var isoWeekYear = getUTCISOWeekYear(date, options);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length)\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token, localize, options) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length)\n },\n\n // Quarter\n Q: function (date, token, localize, options) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter)\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2)\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {unit: 'quarter'})\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {width: 'abbreviated', context: 'formatting'})\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {width: 'narrow', context: 'formatting'})\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {width: 'wide', context: 'formatting'})\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize, options) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter)\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2)\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {unit: 'quarter'})\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {width: 'abbreviated', context: 'standalone'})\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {width: 'narrow', context: 'standalone'})\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {width: 'wide', context: 'standalone'})\n }\n },\n\n // Month\n M: function (date, token, localize, options) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return String(month + 1)\n // 01, 02, ..., 12\n case 'MM':\n return addLeadingZeros(month + 1, 2)\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {unit: 'month'})\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {width: 'abbreviated', context: 'formatting'})\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {width: 'narrow', context: 'formatting'})\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {width: 'wide', context: 'formatting'})\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize, options) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1)\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2)\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {unit: 'month'})\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {width: 'abbreviated', context: 'standalone'})\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {width: 'narrow', context: 'standalone'})\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {width: 'wide', context: 'standalone'})\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {unit: 'week'})\n }\n\n return addLeadingZeros(week, token.length)\n },\n\n // ISO week of year\n I: function (date, token, localize, options) {\n var isoWeek = getUTCISOWeek(date, options);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {unit: 'week'})\n }\n\n return addLeadingZeros(isoWeek, token.length)\n },\n\n // Day of the month\n d: function (date, token, localize, options) {\n var dayOfMonth = date.getUTCDate();\n\n if (token === 'do') {\n return localize.ordinalNumber(dayOfMonth, {unit: 'date'})\n }\n\n return addLeadingZeros(dayOfMonth, token.length)\n },\n\n // Day of year\n D: function (date, token, localize, options) {\n var dayOfYear = getUTCDayOfYear(date, options);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {unit: 'dayOfYear'})\n }\n\n return addLeadingZeros(dayOfYear, token.length)\n },\n\n // Day of week\n E: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {width: 'abbreviated', context: 'formatting'})\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {width: 'narrow', context: 'formatting'})\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {width: 'short', context: 'formatting'})\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {width: 'wide', context: 'formatting'})\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = ((dayOfWeek - options.weekStartsOn + 8) % 7) || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek)\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2)\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {unit: 'day'})\n case 'eee':\n return localize.day(dayOfWeek, {width: 'abbreviated', context: 'formatting'})\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {width: 'narrow', context: 'formatting'})\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {width: 'short', context: 'formatting'})\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {width: 'wide', context: 'formatting'})\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = ((dayOfWeek - options.weekStartsOn + 8) % 7) || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek)\n // Padded numberical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length)\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {unit: 'day'})\n case 'ccc':\n return localize.day(dayOfWeek, {width: 'abbreviated', context: 'standalone'})\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {width: 'narrow', context: 'standalone'})\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {width: 'short', context: 'standalone'})\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {width: 'wide', context: 'standalone'})\n }\n },\n\n // ISO day of week\n i: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek)\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length)\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {unit: 'day'})\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {width: 'abbreviated', context: 'formatting'})\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {width: 'narrow', context: 'formatting'})\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {width: 'short', context: 'formatting'})\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {width: 'wide', context: 'formatting'})\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = (hours / 12) >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'abbreviated', context: 'formatting'})\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'narrow', context: 'formatting'})\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'wide', context: 'formatting'})\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = (hours / 12) >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'abbreviated', context: 'formatting'})\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'narrow', context: 'formatting'})\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'wide', context: 'formatting'})\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'abbreviated', context: 'formatting'})\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'narrow', context: 'formatting'})\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'wide', context: 'formatting'})\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize, options) {\n var hours = date.getUTCHours() % 12;\n\n if (hours === 0) {\n hours = 12;\n }\n\n if (token === 'ho') {\n return localize.ordinalNumber(hours, {unit: 'hour'})\n }\n\n return addLeadingZeros(hours, token.length)\n },\n\n // Hour [0-23]\n H: function (date, token, localize, options) {\n var hours = date.getUTCHours();\n\n if (token === 'Ho') {\n return localize.ordinalNumber(hours, {unit: 'hour'})\n }\n\n return addLeadingZeros(hours, token.length)\n },\n\n // Hour [0-11]\n K: function (date, token, localize, options) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {unit: 'hour'})\n }\n\n return addLeadingZeros(hours, token.length)\n },\n\n // Hour [1-24]\n k: function (date, token, localize, options) {\n var hours = date.getUTCHours();\n\n if (hours === 0) {\n hours = 24;\n }\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {unit: 'hour'})\n }\n\n return addLeadingZeros(hours, token.length)\n },\n\n // Minute\n m: function (date, token, localize, options) {\n var minutes = date.getUTCMinutes();\n\n if (token === 'mo') {\n return localize.ordinalNumber(minutes, {unit: 'minute'})\n }\n\n return addLeadingZeros(minutes, token.length)\n },\n\n // Second\n s: function (date, token, localize, options) {\n var seconds = date.getUTCSeconds();\n\n if (token === 'so') {\n return localize.ordinalNumber(seconds, {unit: 'second'})\n }\n\n return addLeadingZeros(seconds, token.length)\n },\n\n // Fraction of second\n S: function (date, token, localize, options) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, numberOfDigits)\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z'\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset)\n\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX': // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset)\n\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':')\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset)\n\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx': // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset)\n\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':')\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':')\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':')\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':')\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':')\n }\n },\n\n // Seconds timestamp\n t: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length)\n },\n\n // Milliseconds timestamp\n T: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length)\n }\n};\n\nfunction addLeadingZeros (number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output\n}\n\nfunction formatTimezone (offset, dirtyDelimeter) {\n var delimeter = dirtyDelimeter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimeter + minutes\n}\n\nfunction formatTimezoneWithOptionalMinutes (offset, dirtyDelimeter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2)\n }\n return formatTimezone(offset, dirtyDelimeter)\n}\n\nfunction formatTimezoneShort (offset, dirtyDelimeter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours)\n }\n var delimeter = dirtyDelimeter || '';\n return sign + String(hours) + delimeter + addLeadingZeros(minutes, 2)\n}\n\nfunction dateLongFormatter (pattern, formatLong, options) {\n switch (pattern) {\n case 'P':\n return formatLong.date({width: 'short'})\n case 'PP':\n return formatLong.date({width: 'medium'})\n case 'PPP':\n return formatLong.date({width: 'long'})\n case 'PPPP':\n default:\n return formatLong.date({width: 'full'})\n }\n}\n\nfunction timeLongFormatter (pattern, formatLong, options) {\n switch (pattern) {\n case 'p':\n return formatLong.time({width: 'short'})\n case 'pp':\n return formatLong.time({width: 'medium'})\n case 'ppp':\n return formatLong.time({width: 'long'})\n case 'pppp':\n default:\n return formatLong.time({width: 'full'})\n }\n}\n\nfunction dateTimeLongFormatter (pattern, formatLong, options) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong)\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({width: 'short'});\n break\n case 'PP':\n dateTimeFormat = formatLong.dateTime({width: 'medium'});\n break\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({width: 'long'});\n break\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({width: 'full'});\n break\n }\n\n return dateTimeFormat\n .replace('{{date}}', dateLongFormatter(datePattern, formatLong))\n .replace('{{time}}', timeLongFormatter(timePattern, formatLong))\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\n\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nfunction subMilliseconds (dirtyDate, dirtyAmount, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount, dirtyOptions)\n}\n\nvar protectedTokens = ['D', 'DD', 'YY', 'YYYY'];\n\nfunction isProtectedToken(token) {\n return protectedTokens.indexOf(token) !== -1\n}\n\nfunction throwProtectedError(token) {\n throw new RangeError(\n '`options.awareOfUnicodeTokens` must be set to `true` to use `' +\n token +\n '` token; see: https://git.io/fxCyr'\n )\n}\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nvar escapedStringRegExp = /^'(.*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 8 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 8 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. These tokens are often confused with others. See: https://git.io/fxCyr\n *\n * @param {Date|String|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {Boolean} [options.awareOfUnicodeTokens=false] - if true, allows usage of Unicode tokens causes confusion:\n * - Some of the day of year tokens (`D`, `DD`) that are confused with the day of month tokens (`d`, `dd`).\n * - Some of the local week-numbering year tokens (`YY`, `YYYY`) that are confused with the calendar year tokens (`yy`, `yyyy`).\n * See: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.awareOfUnicodeTokens` must be set to `true` to use `XX` token; see: https://git.io/fxCyr\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(\n * new Date(2014, 1, 11),\n * 'MM/dd/yyyy'\n * )\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(\n * new Date(2014, 6, 2),\n * \"do 'de' MMMM yyyy\",\n * {locale: eoLocale}\n * )\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(\n * new Date(2014, 6, 2, 15),\n * \"h 'o''clock'\"\n * )\n * //=> \"3 o'clock\"\n */\nfunction format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError(\n '2 arguments required, but only ' + arguments.length + ' present'\n )\n }\n\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n\n var locale = options.locale || locale$1;\n\n var localeFirstWeekContainsDate =\n locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate =\n localeFirstWeekContainsDate == null\n ? 1\n : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate =\n options.firstWeekContainsDate == null\n ? defaultFirstWeekContainsDate\n : toInteger(options.firstWeekContainsDate);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError(\n 'firstWeekContainsDate must be between 1 and 7 inclusively'\n )\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn =\n localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn =\n options.weekStartsOn == null\n ? defaultWeekStartsOn\n : toInteger(options.weekStartsOn);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property')\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property')\n }\n\n var originalDate = toDate(dirtyDate, options);\n\n if (!isValid(originalDate, options)) {\n return 'Invalid Date'\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset, options);\n\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n\n var result = formatStr\n .match(longFormattingTokensRegExp)\n .map(function(substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions)\n }\n return substring\n })\n .join('')\n .match(formattingTokensRegExp)\n .map(function(substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\"\n }\n\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring)\n }\n\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!options.awareOfUnicodeTokens && isProtectedToken(substring)) {\n throwProtectedError(substring);\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions)\n }\n\n return substring\n })\n .join('');\n\n return result\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\")\n}\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|String|Number} date - the date that should be after the other one to return true\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nfunction isAfter (dirtyDate, dirtyDateToCompare, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var dateToCompare = toDate(dirtyDateToCompare, dirtyOptions);\n return date.getTime() > dateToCompare.getTime()\n}\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|String|Number} date - the date that should be before the other one to return true\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nfunction isBefore (dirtyDate, dirtyDateToCompare, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var dateToCompare = toDate(dirtyDateToCompare, dirtyOptions);\n return date.getTime() < dateToCompare.getTime()\n}\n\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0)\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nfunction isEqual$1 (dirtyLeftDate, dirtyRightDate, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var dateLeft = toDate(dirtyLeftDate, dirtyOptions);\n var dateRight = toDate(dirtyRightDate, dirtyOptions);\n return dateLeft.getTime() === dateRight.getTime()\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction setUTCDay (dirtyDate, dirtyDay, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var day = toInteger(dirtyDay);\n\n var currentDay = date.getUTCDay();\n\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n\n date.setUTCDate(date.getUTCDate() + diff);\n return date\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction setUTCWeek (dirtyDate, dirtyWeek, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, dirtyOptions) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction setUTCISODay (dirtyDate, dirtyDay, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate, dirtyOptions);\n var currentDay = date.getUTCDay();\n\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n\n date.setUTCDate(date.getUTCDate() + diff);\n return date\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction setUTCISOWeek (dirtyDate, dirtyISOWeek, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date, dirtyOptions) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date\n}\n\nvar MILLISECONDS_IN_HOUR$1 = 3600000;\nvar MILLISECONDS_IN_MINUTE$2 = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\n\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern (pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null\n }\n\n var value = parseInt(matchResult[0], 10);\n\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n }\n}\n\nfunction parseTimezonePattern (pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n }\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value: sign * (\n hours * MILLISECONDS_IN_HOUR$1 +\n minutes * MILLISECONDS_IN_MINUTE$2 +\n seconds * MILLISECONDS_IN_SECOND\n ),\n rest: string.slice(matchResult[0].length)\n }\n}\n\nfunction parseAnyDigitsSigned (string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback)\n}\n\nfunction parseNDigits (n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback)\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback)\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback)\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback)\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback)\n }\n}\n\nfunction parseNDigitsSigned (n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback)\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback)\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback)\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback)\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback)\n }\n}\n\nfunction dayPeriodEnumToHours (enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4\n case 'evening':\n return 17\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0\n }\n}\n\nfunction normalizeTwoDigitYear (twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result\n}\n\nvar DAYS_IN_MONTH$1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR$1 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// User for validation\nfunction isLeapYearIndex$1 (year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0)\n}\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {width: 'abbreviated'}) ||\n match.era(string, {width: 'narrow'})\n // A, B\n case 'GGGGG':\n return match.era(string, {width: 'narrow'})\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(string, {width: 'wide'}) ||\n match.era(string, {width: 'abbreviated'}) ||\n match.era(string, {width: 'narrow'})\n }\n },\n set: function (date, value, options) {\n // Sets year 10 BC if BC, or 10 AC if AC\n date.setUTCFullYear(value === 1 ? 10 : -9, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n priority: 130,\n parse: function (string, token, match, options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n }\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback)\n case 'yo':\n return match.ordinalNumber(string, {unit: 'year', valueCallback: valueCallback})\n default:\n return parseNDigits(token.length, string, valueCallback)\n }\n },\n validate: function (date, value, options) {\n return value.isTwoDigitYear || value.year > 0\n },\n set: function (date, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n\n var year = currentYear > 0 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n }\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback)\n case 'Yo':\n return match.ordinalNumber(string, {unit: 'year', valueCallback: valueCallback})\n default:\n return parseNDigits(token.length, string, valueCallback)\n }\n },\n validate: function (date, value, options) {\n return value.isTwoDigitYear || value.year > 0\n },\n set: function (date, value, options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options)\n }\n\n var year = currentYear > 0 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options)\n }\n },\n\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, match, options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string)\n }\n\n return parseNDigitsSigned(token.length, string)\n },\n set: function (date, value, options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear)\n }\n },\n\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, match, options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string)\n }\n\n return parseNDigitsSigned(token.length, string)\n },\n set: function (date, value, options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ': // 01, 02, 03, 04\n return parseNDigits(token.length, string)\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(string, {unit: 'quarter'})\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.quarter(string, {width: 'narrow', context: 'formatting'})\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(string, {width: 'narrow', context: 'formatting'})\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(string, {width: 'wide', context: 'formatting'}) ||\n match.quarter(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.quarter(string, {width: 'narrow', context: 'formatting'})\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 4\n },\n set: function (date, value, options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq': // 01, 02, 03, 04\n return parseNDigits(token.length, string)\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(string, {unit: 'quarter'})\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.quarter(string, {width: 'narrow', context: 'standalone'})\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(string, {width: 'narrow', context: 'standalone'})\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(string, {width: 'wide', context: 'standalone'}) ||\n match.quarter(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.quarter(string, {width: 'narrow', context: 'standalone'})\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 4\n },\n set: function (date, value, options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n return value - 1\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback)\n // 01, 02, ..., 12\n case 'MM':\n return parseNDigits(2, string, valueCallback)\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return match.ordinalNumber(string, {unit: 'month', valueCallback: valueCallback})\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.month(string, {width: 'narrow', context: 'formatting'})\n // J, F, ..., D\n case 'MMMMM':\n return match.month(string, {width: 'narrow', context: 'formatting'})\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(string, {width: 'wide', context: 'formatting'}) ||\n match.month(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.month(string, {width: 'narrow', context: 'formatting'})\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 11\n },\n set: function (date, value, options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n return value - 1\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback)\n // 01, 02, ..., 12\n case 'LL':\n return parseNDigits(2, string, valueCallback)\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return match.ordinalNumber(string, {unit: 'month', valueCallback: valueCallback})\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.month(string, {width: 'narrow', context: 'standalone'})\n // J, F, ..., D\n case 'LLLLL':\n return match.month(string, {width: 'narrow', context: 'standalone'})\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(string, {width: 'wide', context: 'standalone'}) ||\n match.month(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.month(string, {width: 'narrow', context: 'standalone'})\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 11\n },\n set: function (date, value, options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string)\n case 'wo':\n return match.ordinalNumber(string, {unit: 'week'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 53\n },\n set: function (date, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options)\n }\n },\n\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string)\n case 'Io':\n return match.ordinalNumber(string, {unit: 'week'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 53\n },\n set: function (date, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options)\n }\n },\n\n // Day of the month\n d: {\n priority: 90,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string)\n case 'do':\n return match.ordinalNumber(string, {unit: 'date'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex$1(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR$1[month]\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH$1[month]\n }\n },\n set: function (date, value, options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Day of year\n D: {\n priority: 90,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string)\n case 'Do':\n return match.ordinalNumber(string, {unit: 'date'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex$1(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366\n } else {\n return value >= 1 && value <= 365\n }\n },\n set: function (date, value, options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n // T\n case 'EEEEE':\n return match.day(string, {width: 'narrow', context: 'formatting'})\n // Tu\n case 'EEEEEE':\n return match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n // Tuesday\n case 'EEEE':\n default:\n return match.day(string, {width: 'wide', context: 'formatting'}) ||\n match.day(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 6\n },\n set: function (date, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee': // 03\n return parseNDigits(token.length, string, valueCallback)\n // 3rd\n case 'eo':\n return match.ordinalNumber(string, {unit: 'day', valueCallback: valueCallback})\n // Tue\n case 'eee':\n return match.day(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n // T\n case 'eeeee':\n return match.day(string, {width: 'narrow', context: 'formatting'})\n // Tu\n case 'eeeeee':\n return match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n // Tuesday\n case 'eeee':\n default:\n return match.day(string, {width: 'wide', context: 'formatting'}) ||\n match.day(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 6\n },\n set: function (date, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc': // 03\n return parseNDigits(token.length, string, valueCallback)\n // 3rd\n case 'co':\n return match.ordinalNumber(string, {unit: 'day', valueCallback: valueCallback})\n // Tue\n case 'ccc':\n return match.day(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.day(string, {width: 'short', context: 'standalone'}) ||\n match.day(string, {width: 'narrow', context: 'standalone'})\n // T\n case 'ccccc':\n return match.day(string, {width: 'narrow', context: 'standalone'})\n // Tu\n case 'cccccc':\n return match.day(string, {width: 'short', context: 'standalone'}) ||\n match.day(string, {width: 'narrow', context: 'standalone'})\n // Tuesday\n case 'cccc':\n default:\n return match.day(string, {width: 'wide', context: 'standalone'}) ||\n match.day(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.day(string, {width: 'short', context: 'standalone'}) ||\n match.day(string, {width: 'narrow', context: 'standalone'})\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 6\n },\n set: function (date, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7\n }\n return value\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii': // 02\n return parseNDigits(token.length, string)\n // 2nd\n case 'io':\n return match.ordinalNumber(string, {unit: 'day'})\n // Tue\n case 'iii':\n return match.day(string, {width: 'abbreviated', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'short', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'narrow', context: 'formatting', valueCallback: valueCallback})\n // T\n case 'iiiii':\n return match.day(string, {width: 'narrow', context: 'formatting', valueCallback: valueCallback})\n // Tu\n case 'iiiiii':\n return match.day(string, {width: 'short', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'narrow', context: 'formatting', valueCallback: valueCallback})\n // Tuesday\n case 'iiii':\n default:\n return match.day(string, {width: 'wide', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'abbreviated', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'short', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'narrow', context: 'formatting', valueCallback: valueCallback})\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 7\n },\n set: function (date, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'aaaaa':\n return match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'aaaa':\n default:\n return match.dayPeriod(string, {width: 'wide', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n }\n },\n set: function (date, value, options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date\n }\n },\n\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'bbbbb':\n return match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'bbbb':\n default:\n return match.dayPeriod(string, {width: 'wide', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n }\n },\n set: function (date, value, options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'BBBBB':\n return match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'BBBB':\n default:\n return match.dayPeriod(string, {width: 'wide', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n }\n },\n set: function (date, value, options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date\n }\n },\n\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string)\n case 'ho':\n return match.ordinalNumber(string, {unit: 'hour'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 12\n },\n set: function (date, value, options) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date\n }\n },\n\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string)\n case 'Ho':\n return match.ordinalNumber(string, {unit: 'hour'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 23\n },\n set: function (date, value, options) {\n date.setUTCHours(value, 0, 0, 0);\n return date\n }\n },\n\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string)\n case 'Ko':\n return match.ordinalNumber(string, {unit: 'hour'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 11\n },\n set: function (date, value, options) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date\n }\n },\n\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string)\n case 'ko':\n return match.ordinalNumber(string, {unit: 'hour'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 24\n },\n set: function (date, value, options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date\n }\n },\n\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string)\n case 'mo':\n return match.ordinalNumber(string, {unit: 'minute'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 59\n },\n set: function (date, value, options) {\n date.setUTCMinutes(value, 0, 0);\n return date\n }\n },\n\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string)\n case 'so':\n return match.ordinalNumber(string, {unit: 'second'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 59\n },\n set: function (date, value, options) {\n date.setUTCSeconds(value, 0);\n return date\n }\n },\n\n // Fraction of second\n S: {\n priority: 40,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3))\n };\n return parseNDigits(token.length, string, valueCallback)\n },\n set: function (date, value, options) {\n date.setUTCMilliseconds(value);\n return date\n }\n },\n\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 20,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string)\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string)\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string)\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string)\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string)\n }\n },\n set: function (date, value, options) {\n return new Date(date.getTime() - value)\n }\n },\n\n // Timezone (ISO-8601)\n x: {\n priority: 20,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string)\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string)\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string)\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string)\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string)\n }\n },\n set: function (date, value, options) {\n return new Date(date.getTime() - value)\n }\n },\n\n // Seconds timestamp\n t: {\n priority: 10,\n parse: function (string, token, match, options) {\n return parseAnyDigitsSigned(string)\n },\n set: function (date, value, options) {\n return new Date(value * 1000)\n }\n },\n\n // Milliseconds timestamp\n T: {\n priority: 10,\n parse: function (string, token, match, options) {\n return parseAnyDigitsSigned(string)\n },\n set: function (date, value, options) {\n return new Date(value)\n }\n }\n};\n\nvar TIMEZONE_UNIT_PRIORITY = 20;\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp$1 = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\nvar escapedStringRegExp$1 = /^'(.*?)'?$/;\nvar doubleQuoteRegExp$1 = /''/g;\n\nvar notWhitespaceRegExp = /\\S/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 6 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 6 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | 40 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 20 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 20 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Seconds timestamp | 10 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Milliseconds timestamp | 10 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `baseDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n *\n * 6. These tokens are often confused with others. See: https://git.io/fxCyr\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `baseDate` which works as a context of parsing.\n *\n * `baseDate` must be passed for correct work of the function.\n * If you're not sure which `baseDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `baseDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `baseDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|String|Number} baseDate - defines values missing from the parsed dateString\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.awareOfUnicodeTokens=false] - if true, allows usage of Unicode tokens causes confusion:\n * - Some of the day of year tokens (`D`, `DD`) that are confused with the day of month tokens (`d`, `dd`).\n * - Some of the local week-numbering year tokens (`YY`, `YYYY`) that are confused with the calendar year tokens (`yy`, `yyyy`).\n * See: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} `options.awareOfUnicodeTokens` must be set to `true` to use `XX` token; see: https://git.io/fxCyr\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse(\n * '02/11/2014',\n * 'MM/dd/yyyy',\n * new Date()\n * )\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse(\n * '28-a de februaro',\n * \"do 'de' MMMM\",\n * new Date(2010, 0, 1),\n * {locale: eo}\n * )\n * //=> Sun Feb 28 2010 00:00:00\n */\nfunction parse(\n dirtyDateString,\n dirtyFormatString,\n dirtyBaseDate,\n dirtyOptions\n) {\n if (arguments.length < 3) {\n throw new TypeError(\n '3 arguments required, but only ' + arguments.length + ' present'\n )\n }\n\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n\n var locale = options.locale || locale$1;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property')\n }\n\n var localeFirstWeekContainsDate =\n locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate =\n localeFirstWeekContainsDate == null\n ? 1\n : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate =\n options.firstWeekContainsDate == null\n ? defaultFirstWeekContainsDate\n : toInteger(options.firstWeekContainsDate);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError(\n 'firstWeekContainsDate must be between 1 and 7 inclusively'\n )\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn =\n localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn =\n options.weekStartsOn == null\n ? defaultWeekStartsOn\n : toInteger(options.weekStartsOn);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyBaseDate, options)\n } else {\n return new Date(NaN)\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [\n {\n priority: TIMEZONE_UNIT_PRIORITY,\n set: dateToSystemTimezone,\n index: 0\n }\n ];\n\n var i;\n\n var tokens = formatString.match(formattingTokensRegExp$1);\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.awareOfUnicodeTokens && isProtectedToken(token)) {\n throwProtectedError(token);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var parseResult = parser.parse(\n dateString,\n token,\n locale.match,\n subFnOptions\n );\n\n if (!parseResult) {\n return new Date(NaN)\n }\n\n setters.push({\n priority: parser.priority,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n\n dateString = parseResult.rest;\n } else {\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString$1(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN)\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN)\n }\n\n var uniquePrioritySetters = setters\n .map(function(setter) {\n return setter.priority\n })\n .sort(function(a, b) {\n return b - a\n })\n .filter(function(priority, index, array) {\n return array.indexOf(priority) === index\n })\n .map(function(priority) {\n return setters\n .filter(function(setter) {\n return setter.priority === priority\n })\n .reverse()\n })\n .map(function(setterArray) {\n return setterArray[0]\n });\n\n var date = toDate(dirtyBaseDate, options);\n\n if (isNaN(date)) {\n return new Date(NaN)\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (\n setter.validate &&\n !setter.validate(utcDate, setter.value, subFnOptions)\n ) {\n return new Date(NaN)\n }\n\n utcDate = setter.set(utcDate, setter.value, subFnOptions);\n }\n\n return utcDate\n}\n\nfunction dateToSystemTimezone(date) {\n var convertedDate = new Date(0);\n convertedDate.setFullYear(\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate()\n );\n convertedDate.setHours(\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds()\n );\n return convertedDate\n}\n\nfunction cleanEscapedString$1(input) {\n return input.match(escapedStringRegExp$1)[1].replace(doubleQuoteRegExp$1, \"'\")\n}\n\n// \n\n/**\n * Custom parse behavior on top of date-fns parse function.\n */\nfunction parseDate$1 (date, format$1) {\n if (typeof date !== 'string') {\n return isValid(date) ? date : null;\n }\n\n var parsed = parse(date, format$1, new Date());\n\n // if date is not valid or the formatted output after parsing does not match\n // the string value passed in (avoids overflows)\n if (!isValid(parsed) || format(parsed, format$1) !== date) {\n return null;\n }\n\n return parsed;\n}\n\nvar afterValidator = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var targetValue = ref.targetValue;\n var inclusion = ref.inclusion; if ( inclusion === void 0 ) inclusion = false;\n var format = ref.format;\n\n if (typeof format === 'undefined') {\n format = inclusion;\n inclusion = false;\n }\n\n value = parseDate$1(value, format);\n targetValue = parseDate$1(targetValue, format);\n\n // if either is not valid.\n if (!value || !targetValue) {\n return false;\n }\n\n return isAfter(value, targetValue) || (inclusion && isEqual$1(value, targetValue));\n};\n\nvar options = {\n hasTarget: true,\n isDate: true\n};\n\n// required to convert from a list of array values to an object.\nvar paramNames = ['targetValue', 'inclusion', 'format'];\n\nvar after = {\n validate: afterValidator,\n options: options,\n paramNames: paramNames\n};\n\n/**\n * Some Alpha Regex helpers.\n * https://github.com/chriso/validator.js/blob/master/src/lib/alpha.js\n */\n\nvar alpha = {\n en: /^[A-Z]*$/i,\n cs: /^[A-ZÃČĎÉĚÃŇÓŘŠŤÚŮÃŽ]*$/i,\n da: /^[A-ZÆØÅ]*$/i,\n de: /^[A-ZÄÖÜß]*$/i,\n es: /^[A-ZÃÉÃÑÓÚÜ]*$/i,\n fr: /^[A-ZÀÂÆÇÉÈÊËÃÎÔŒÙÛÜŸ]*$/i,\n it: /^[A-Z\\xC0-\\xFF]*$/i,\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ]*$/i,\n nl: /^[A-ZÉËÃÓÖÜ]*$/i,\n hu: /^[A-ZÃÉÃÓÖÅÚÜŰ]*$/i,\n pl: /^[A-ZĄĆĘŚÅŃÓŻŹ]*$/i,\n pt: /^[A-ZÃÃÀÂÇÉÊÃÕÓÔÚÜ]*$/i,\n ru: /^[Ð-ЯÐ]*$/i,\n sk: /^[A-ZÃÄČĎÉÃĹĽŇÓŔŠŤÚÃŽ]*$/i,\n sr: /^[A-ZČĆŽŠÄ]*$/i,\n sv: /^[A-ZÅÄÖ]*$/i,\n tr: /^[A-ZÇĞİıÖŞÜ]*$/i,\n uk: /^[Ð-ЩЬЮЯЄІЇÒ]*$/i,\n ar: /^[ءآأؤإئابةتثجØخدذرزسشصضطظعغÙقكلمنهوىيًٌÙÙŽÙÙّْٰ]*$/,\n az: /^[A-ZÇÆĞİıÖŞÜ]*$/i\n};\n\nvar alphaSpaces = {\n en: /^[A-Z\\s]*$/i,\n cs: /^[A-ZÃČĎÉĚÃŇÓŘŠŤÚŮÃŽ\\s]*$/i,\n da: /^[A-ZÆØÅ\\s]*$/i,\n de: /^[A-ZÄÖÜß\\s]*$/i,\n es: /^[A-ZÃÉÃÑÓÚÜ\\s]*$/i,\n fr: /^[A-ZÀÂÆÇÉÈÊËÃÎÔŒÙÛÜŸ\\s]*$/i,\n it: /^[A-Z\\xC0-\\xFF\\s]*$/i,\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ\\s]*$/i,\n nl: /^[A-ZÉËÃÓÖÜ\\s]*$/i,\n hu: /^[A-ZÃÉÃÓÖÅÚÜŰ\\s]*$/i,\n pl: /^[A-ZĄĆĘŚÅŃÓŻŹ\\s]*$/i,\n pt: /^[A-ZÃÃÀÂÇÉÊÃÕÓÔÚÜ\\s]*$/i,\n ru: /^[Ð-ЯÐ\\s]*$/i,\n sk: /^[A-ZÃÄČĎÉÃĹĽŇÓŔŠŤÚÃŽ\\s]*$/i,\n sr: /^[A-ZČĆŽŠÄ\\s]*$/i,\n sv: /^[A-ZÅÄÖ\\s]*$/i,\n tr: /^[A-ZÇĞİıÖŞÜ\\s]*$/i,\n uk: /^[Ð-ЩЬЮЯЄІЇÒ\\s]*$/i,\n ar: /^[ءآأؤإئابةتثجØخدذرزسشصضطظعغÙقكلمنهوىيًٌÙÙŽÙÙّْٰ\\s]*$/,\n az: /^[A-ZÇÆĞİıÖŞÜ\\s]*$/i\n};\n\nvar alphanumeric = {\n en: /^[0-9A-Z]*$/i,\n cs: /^[0-9A-ZÃČĎÉĚÃŇÓŘŠŤÚŮÃŽ]*$/i,\n da: /^[0-9A-ZÆØÅ]$/i,\n de: /^[0-9A-ZÄÖÜß]*$/i,\n es: /^[0-9A-ZÃÉÃÑÓÚÜ]*$/i,\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÃÎÔŒÙÛÜŸ]*$/i,\n it: /^[0-9A-Z\\xC0-\\xFF]*$/i,\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ]*$/i,\n hu: /^[0-9A-ZÃÉÃÓÖÅÚÜŰ]*$/i,\n nl: /^[0-9A-ZÉËÃÓÖÜ]*$/i,\n pl: /^[0-9A-ZĄĆĘŚÅŃÓŻŹ]*$/i,\n pt: /^[0-9A-ZÃÃÀÂÇÉÊÃÕÓÔÚÜ]*$/i,\n ru: /^[0-9Ð-ЯÐ]*$/i,\n sk: /^[0-9A-ZÃÄČĎÉÃĹĽŇÓŔŠŤÚÃŽ]*$/i,\n sr: /^[0-9A-ZČĆŽŠÄ]*$/i,\n sv: /^[0-9A-ZÅÄÖ]*$/i,\n tr: /^[0-9A-ZÇĞİıÖŞÜ]*$/i,\n uk: /^[0-9Ð-ЩЬЮЯЄІЇÒ]*$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجØخدذرزسشصضطظعغÙقكلمنهوىيًٌÙÙŽÙÙّْٰ]*$/,\n az: /^[0-9A-ZÇÆĞİıÖŞÜ]*$/i\n};\n\nvar alphaDash = {\n en: /^[0-9A-Z_-]*$/i,\n cs: /^[0-9A-ZÃČĎÉĚÃŇÓŘŠŤÚŮÃŽ_-]*$/i,\n da: /^[0-9A-ZÆØÅ_-]*$/i,\n de: /^[0-9A-ZÄÖÜß_-]*$/i,\n es: /^[0-9A-ZÃÉÃÑÓÚÜ_-]*$/i,\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÃÎÔŒÙÛÜŸ_-]*$/i,\n it: /^[0-9A-Z\\xC0-\\xFF_-]*$/i,\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ_-]*$/i,\n nl: /^[0-9A-ZÉËÃÓÖÜ_-]*$/i,\n hu: /^[0-9A-ZÃÉÃÓÖÅÚÜŰ_-]*$/i,\n pl: /^[0-9A-ZĄĆĘŚÅŃÓŻŹ_-]*$/i,\n pt: /^[0-9A-ZÃÃÀÂÇÉÊÃÕÓÔÚÜ_-]*$/i,\n ru: /^[0-9Ð-ЯÐ_-]*$/i,\n sk: /^[0-9A-ZÃÄČĎÉÃĹĽŇÓŔŠŤÚÃŽ_-]*$/i,\n sr: /^[0-9A-ZČĆŽŠÄ_-]*$/i,\n sv: /^[0-9A-ZÅÄÖ_-]*$/i,\n tr: /^[0-9A-ZÇĞİıÖŞÜ_-]*$/i,\n uk: /^[0-9Ð-ЩЬЮЯЄІЇÒ_-]*$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجØخدذرزسشصضطظعغÙقكلمنهوىيًٌÙÙŽÙÙّْٰ_-]*$/,\n az: /^[0-9A-ZÇÆĞİıÖŞÜ_-]*$/i\n};\n\nvar validate = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var locale = ref.locale;\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate(val, [locale]); });\n }\n\n // Match at least one locale.\n if (! locale) {\n return Object.keys(alpha).some(function (loc) { return alpha[loc].test(value); });\n }\n\n return (alpha[locale] || alpha.en).test(value);\n};\n\nvar paramNames$1 = ['locale'];\n\nvar alpha$1 = {\n validate: validate,\n paramNames: paramNames$1\n};\n\nvar validate$1 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var locale = ref.locale;\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$1(val, [locale]); });\n }\n\n // Match at least one locale.\n if (! locale) {\n return Object.keys(alphaDash).some(function (loc) { return alphaDash[loc].test(value); });\n }\n\n return (alphaDash[locale] || alphaDash.en).test(value);\n};\n\nvar paramNames$2 = ['locale'];\n\nvar alpha_dash = {\n validate: validate$1,\n paramNames: paramNames$2\n};\n\nvar validate$2 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var locale = ref.locale;\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$2(val, [locale]); });\n }\n\n // Match at least one locale.\n if (! locale) {\n return Object.keys(alphanumeric).some(function (loc) { return alphanumeric[loc].test(value); });\n }\n\n return (alphanumeric[locale] || alphanumeric.en).test(value);\n};\n\nvar paramNames$3 = ['locale'];\n\nvar alpha_num = {\n validate: validate$2,\n paramNames: paramNames$3\n};\n\nvar validate$3 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var locale = ref.locale;\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$3(val, [locale]); });\n }\n\n // Match at least one locale.\n if (! locale) {\n return Object.keys(alphaSpaces).some(function (loc) { return alphaSpaces[loc].test(value); });\n }\n\n return (alphaSpaces[locale] || alphaSpaces.en).test(value);\n};\n\nvar paramNames$4 = ['locale'];\n\nvar alpha_spaces = {\n validate: validate$3,\n paramNames: paramNames$4\n};\n\nvar validate$4 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var targetValue = ref.targetValue;\n var inclusion = ref.inclusion; if ( inclusion === void 0 ) inclusion = false;\n var format = ref.format;\n\n if (typeof format === 'undefined') {\n format = inclusion;\n inclusion = false;\n }\n\n value = parseDate$1(value, format);\n targetValue = parseDate$1(targetValue, format);\n\n // if either is not valid.\n if (!value || !targetValue) {\n return false;\n }\n\n return isBefore(value, targetValue) || (inclusion && isEqual$1(value, targetValue));\n};\n\nvar options$1 = {\n hasTarget: true,\n isDate: true\n};\n\nvar paramNames$5 = ['targetValue', 'inclusion', 'format'];\n\nvar before = {\n validate: validate$4,\n options: options$1,\n paramNames: paramNames$5\n};\n\nvar validate$5 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var min = ref.min;\n var max = ref.max;\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$5(val, { min: min, max: max }); });\n }\n\n return Number(min) <= value && Number(max) >= value;\n};\n\nvar paramNames$6 = ['min', 'max'];\n\nvar between = {\n validate: validate$5,\n paramNames: paramNames$6\n};\n\nvar validate$6 = function (value, ref) {\n var targetValue = ref.targetValue;\n\n return String(value) === String(targetValue);\n};\nvar options$2 = {\n hasTarget: true\n};\n\nvar paramNames$7 = ['targetValue'];\n\nvar confirmed = {\n validate: validate$6,\n options: options$2,\n paramNames: paramNames$7\n};\n\nfunction unwrapExports (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar assertString_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n\n if (!isString) {\n var invalidType;\n\n if (input === null) {\n invalidType = 'null';\n } else {\n invalidType = _typeof(input);\n\n if (invalidType === 'object' && input.constructor && input.constructor.hasOwnProperty('name')) {\n invalidType = input.constructor.name;\n } else {\n invalidType = \"a \".concat(invalidType);\n }\n }\n\n throw new TypeError(\"Expected string but received \".concat(invalidType, \".\"));\n }\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nunwrapExports(assertString_1);\n\nvar isCreditCard_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar creditCard = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11}|6[27][0-9]{14})$/;\n/* eslint-enable max-len */\n\nfunction isCreditCard(str) {\n (0, _assertString.default)(str);\n var sanitized = str.replace(/[- ]+/g, '');\n\n if (!creditCard.test(sanitized)) {\n return false;\n }\n\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble;\n\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n\n if (shouldDouble) {\n tmpNum *= 2;\n\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n\n shouldDouble = !shouldDouble;\n }\n\n return !!(sum % 10 === 0 ? sanitized : false);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nvar isCreditCard = unwrapExports(isCreditCard_1);\n\nvar validate$7 = function (value) { return isCreditCard(String(value)); };\n\nvar credit_card = {\n validate: validate$7\n};\n\nvar validate$8 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var min = ref.min;\n var max = ref.max;\n var inclusivity = ref.inclusivity; if ( inclusivity === void 0 ) inclusivity = '()';\n var format = ref.format;\n\n if (typeof format === 'undefined') {\n format = inclusivity;\n inclusivity = '()';\n }\n\n var minDate = parseDate$1(String(min), format);\n var maxDate = parseDate$1(String(max), format);\n var dateVal = parseDate$1(String(value), format);\n\n if (!minDate || !maxDate || !dateVal) {\n return false;\n }\n\n if (inclusivity === '()') {\n return isAfter(dateVal, minDate) && isBefore(dateVal, maxDate);\n }\n\n if (inclusivity === '(]') {\n return isAfter(dateVal, minDate) && (isEqual$1(dateVal, maxDate) || isBefore(dateVal, maxDate));\n }\n\n if (inclusivity === '[)') {\n return isBefore(dateVal, maxDate) && (isEqual$1(dateVal, minDate) || isAfter(dateVal, minDate));\n }\n\n return isEqual$1(dateVal, maxDate) || isEqual$1(dateVal, minDate) ||\n (isBefore(dateVal, maxDate) && isAfter(dateVal, minDate));\n};\n\nvar options$3 = {\n isDate: true\n};\n\nvar paramNames$8 = ['min', 'max', 'inclusivity', 'format'];\n\nvar date_between = {\n validate: validate$8,\n options: options$3,\n paramNames: paramNames$8\n};\n\nvar validate$9 = function (value, ref) {\n var format = ref.format;\n\n return !!parseDate$1(value, format);\n};\n\nvar options$4 = {\n isDate: true\n};\n\nvar paramNames$9 = ['format'];\n\nvar date_format = {\n validate: validate$9,\n options: options$4,\n paramNames: paramNames$9\n};\n\nvar validate$a = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var decimals = ref.decimals; if ( decimals === void 0 ) decimals = '*';\n var separator = ref.separator; if ( separator === void 0 ) separator = '.';\n\n if (isNullOrUndefined(value) || value === '') {\n return false;\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$a(val, { decimals: decimals, separator: separator }); });\n }\n\n // if is 0.\n if (Number(decimals) === 0) {\n return /^-?\\d*$/.test(value);\n }\n\n var regexPart = decimals === '*' ? '+' : (\"{1,\" + decimals + \"}\");\n var regex = new RegExp((\"^[-+]?\\\\d*(\\\\\" + separator + \"\\\\d\" + regexPart + \")?([eE]{1}[-]?\\\\d+)?$\"));\n\n if (! regex.test(value)) {\n return false;\n }\n\n var parsedValue = parseFloat(value);\n\n // eslint-disable-next-line\n return parsedValue === parsedValue;\n};\n\nvar paramNames$a = ['decimals', 'separator'];\n\nvar decimal = {\n validate: validate$a,\n paramNames: paramNames$a\n};\n\nvar validate$b = function (value, ref) {\n var length = ref[0];\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$b(val, [length]); });\n }\n var strVal = String(value);\n\n return /^[0-9]*$/.test(strVal) && strVal.length === Number(length);\n};\n\nvar digits = {\n validate: validate$b\n};\n\nvar imageRegex = /\\.(jpg|svg|jpeg|png|bmp|gif)$/i;\n\nvar validateImage = function (file, width, height) {\n var URL = window.URL || window.webkitURL;\n return new Promise(function (resolve) {\n var image = new Image();\n image.onerror = function () { return resolve({ valid: false }); };\n image.onload = function () { return resolve({\n valid: image.width === Number(width) && image.height === Number(height)\n }); };\n\n image.src = URL.createObjectURL(file);\n });\n};\n\nvar validate$c = function (files, ref) {\n var width = ref[0];\n var height = ref[1];\n\n var images = ensureArray(files).filter(function (file) { return imageRegex.test(file.name); });\n if (images.length === 0) {\n return false;\n }\n return Promise.all(images.map(function (image) { return validateImage(image, width, height); }));\n};\n\nvar dimensions = {\n validate: validate$c\n};\n\nvar merge_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\n\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nunwrapExports(merge_1);\n\nvar isByteLength_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nunwrapExports(isByteLength_1);\n\nvar isFQDN_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nvar _merge = _interopRequireDefault(merge_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false\n};\n\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n var parts = str.split('.');\n\n for (var i = 0; i < parts.length; i++) {\n if (parts[i].length > 63) {\n return false;\n }\n }\n\n if (options.require_tld) {\n var tld = parts.pop();\n\n if (!parts.length || !/^([a-z\\u00a1-\\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n } // disallow spaces\n\n\n if (/[\\s\\u2002-\\u200B\\u202F\\u205F\\u3000\\uFEFF\\uDB40\\uDC20]/.test(tld)) {\n return false;\n }\n }\n\n for (var part, _i = 0; _i < parts.length; _i++) {\n part = parts[_i];\n\n if (options.allow_underscores) {\n part = part.replace(/_/g, '');\n }\n\n if (!/^[a-z\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n if (part[0] === '-' || part[part.length - 1] === '-') {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nvar isFQDN = unwrapExports(isFQDN_1);\n\nvar isIP_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ipv4Maybe = /^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/;\nvar ipv6Block = /^[0-9A-F]{1,4}$/i;\n\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n } else if (version === '4') {\n if (!ipv4Maybe.test(str)) {\n return false;\n }\n\n var parts = str.split('.').sort(function (a, b) {\n return a - b;\n });\n return parts[3] <= 255;\n } else if (version === '6') {\n var blocks = str.split(':');\n var foundOmissionBlock = false; // marker to indicate ::\n // At least some OS accept the last 32 bits of an IPv6 address\n // (i.e. 2 of the blocks) in IPv4 notation, and RFC 3493 says\n // that '::ffff:a.b.c.d' is valid for IPv4-mapped IPv6 addresses,\n // and '::a.b.c.d' is deprecated, but also valid.\n\n var foundIPv4TransitionBlock = isIP(blocks[blocks.length - 1], 4);\n var expectedNumberOfBlocks = foundIPv4TransitionBlock ? 7 : 8;\n\n if (blocks.length > expectedNumberOfBlocks) {\n return false;\n } // initial or final ::\n\n\n if (str === '::') {\n return true;\n } else if (str.substr(0, 2) === '::') {\n blocks.shift();\n blocks.shift();\n foundOmissionBlock = true;\n } else if (str.substr(str.length - 2) === '::') {\n blocks.pop();\n blocks.pop();\n foundOmissionBlock = true;\n }\n\n for (var i = 0; i < blocks.length; ++i) {\n // test for a :: which can not be at the string start/end\n // since those cases have been handled above\n if (blocks[i] === '' && i > 0 && i < blocks.length - 1) {\n if (foundOmissionBlock) {\n return false; // multiple :: in address\n }\n\n foundOmissionBlock = true;\n } else if (foundIPv4TransitionBlock && i === blocks.length - 1) ; else if (!ipv6Block.test(blocks[i])) {\n return false;\n }\n }\n\n if (foundOmissionBlock) {\n return blocks.length >= 1;\n }\n\n return blocks.length === expectedNumberOfBlocks;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nvar isIP = unwrapExports(isIP_1);\n\nvar isEmail_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nvar _merge = _interopRequireDefault(merge_1);\n\nvar _isByteLength = _interopRequireDefault(isByteLength_1);\n\nvar _isFQDN = _interopRequireDefault(isFQDN_1);\n\nvar _isIP = _interopRequireDefault(isIP_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true\n};\n/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar displayName = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\.\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\,\\.\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF\\s]*<(.+)>$/i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\n/* eslint-enable max-len */\n\n/* eslint-enable no-control-regex */\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(displayName);\n\n if (display_email) {\n str = display_email[1];\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var user = parts.join('@');\n var lower_domain = domain.toLowerCase();\n\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace('.', ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n\n if (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n })) {\n return false;\n }\n\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.substr(1, domain.length - 2);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nvar isEmail = unwrapExports(isEmail_1);\n\nfunction objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }\n\nvar validate$d = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var multiple = ref.multiple; if ( multiple === void 0 ) multiple = false;\n var rest = objectWithoutProperties( ref, [\"multiple\"] );\n var options = rest;\n\n if (multiple && !Array.isArray(value)) {\n value = String(value).split(',').map(function (emailStr) { return emailStr.trim(); });\n }\n\n var validatorOptions = assign({}, options);\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return isEmail(String(val), validatorOptions); });\n }\n\n return isEmail(String(value), validatorOptions);\n};\n\nvar email = {\n validate: validate$d\n};\n\nvar validate$e = function (value, options) {\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$e(val, options); });\n }\n\n return toArray(options).some(function (item) {\n // eslint-disable-next-line\n return item == value;\n });\n};\n\nvar included = {\n validate: validate$e\n};\n\nvar validate$f = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return !validate$e.apply(void 0, args);\n};\n\nvar excluded = {\n validate: validate$f\n};\n\nvar validate$g = function (files, extensions) {\n var regex = new RegExp((\".(\" + (extensions.join('|')) + \")$\"), 'i');\n return ensureArray(files).every(function (file) { return regex.test(file.name); });\n};\n\nvar ext = {\n validate: validate$g\n};\n\nvar validate$h = function (files) { return (Array.isArray(files) ? files : [files]).every(function (file) { return /\\.(jpg|svg|jpeg|png|bmp|gif)$/i.test(file.name); }); };\n\nvar image = {\n validate: validate$h\n};\n\nvar validate$i = function (value) {\n if (Array.isArray(value)) {\n return value.every(function (val) { return /^-?[0-9]+$/.test(String(val)); });\n }\n\n return /^-?[0-9]+$/.test(String(value));\n};\n\nvar integer = {\n validate: validate$i\n};\n\nvar validate$j = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var version = ref.version; if ( version === void 0 ) version = 4;\n\n if (isNullOrUndefined(value)) {\n value = '';\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return isIP(val, version); });\n }\n\n return isIP(value, version);\n};\n\nvar paramNames$b = ['version'];\n\nvar ip = {\n validate: validate$j,\n paramNames: paramNames$b\n};\n\nvar validate$k = function (value) {\n if (isNullOrUndefined(value)) {\n value = '';\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return (isIP(val, '') || isFQDN(val)); });\n }\n\n return isIP(value, '') || isFQDN(value);\n};\n\nvar ip_or_fqdn = {\n validate: validate$k\n};\n\nvar validate$l = function (value, ref) {\n if ( ref === void 0 ) ref = [];\n var other = ref[0];\n\n return value === other;\n};\n\nvar is = {\n validate: validate$l\n};\n\nvar validate$m = function (value, ref) {\n if ( ref === void 0 ) ref = [];\n var other = ref[0];\n\n return value !== other;\n};\n\nvar is_not = {\n validate: validate$m\n};\n\n/**\n * @param {Array|String} value\n * @param {Number} length\n * @param {Number} max\n */\nvar compare = function (value, length, max) {\n if (max === undefined) {\n return value.length === length;\n }\n\n // cast to number.\n max = Number(max);\n\n return value.length >= length && value.length <= max;\n};\n\nvar validate$n = function (value, ref) {\n var length = ref[0];\n var max = ref[1]; if ( max === void 0 ) max = undefined;\n\n if (isNullOrUndefined(value)) {\n return false;\n }\n\n length = Number(length);\n if (typeof value === 'number') {\n value = String(value);\n }\n\n if (!value.length) {\n value = toArray(value);\n }\n\n return compare(value, length, max);\n};\n\nvar length = {\n validate: validate$n\n};\n\nvar validate$o = function (value, ref) {\n var length = ref[0];\n\n if (isNullOrUndefined(value)) {\n return length >= 0;\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$o(val, [length]); });\n }\n\n return String(value).length <= length;\n};\n\nvar max = {\n validate: validate$o\n};\n\nvar validate$p = function (value, ref) {\n var max = ref[0];\n\n if (isNullOrUndefined(value) || value === '') {\n return false;\n }\n\n if (Array.isArray(value)) {\n return value.length > 0 && value.every(function (val) { return validate$p(val, [max]); });\n }\n\n return Number(value) <= max;\n};\n\nvar max_value = {\n validate: validate$p\n};\n\nvar validate$q = function (files, mimes) {\n var regex = new RegExp(((mimes.join('|').replace('*', '.+')) + \"$\"), 'i');\n return ensureArray(files).every(function (file) { return regex.test(file.type); });\n};\n\nvar mimes = {\n validate: validate$q\n};\n\nvar validate$r = function (value, ref) {\n var length = ref[0];\n\n if (isNullOrUndefined(value)) {\n return false;\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$r(val, [length]); });\n }\n\n return String(value).length >= length;\n};\n\nvar min = {\n validate: validate$r\n};\n\nvar validate$s = function (value, ref) {\n var min = ref[0];\n\n if (isNullOrUndefined(value) || value === '') {\n return false;\n }\n\n if (Array.isArray(value)) {\n return value.length > 0 && value.every(function (val) { return validate$s(val, [min]); });\n }\n\n return Number(value) >= min;\n};\n\nvar min_value = {\n validate: validate$s\n};\n\nvar ar = /^[٠١٢٣٤٥٦٧٨٩]+$/;\nvar en = /^[0-9]+$/;\n\nvar validate$t = function (value) {\n var testValue = function (val) {\n var strValue = String(val);\n\n return en.test(strValue) || ar.test(strValue);\n };\n\n if (Array.isArray(value)) {\n return value.every(testValue);\n }\n\n return testValue(value);\n};\n\nvar numeric = {\n validate: validate$t\n};\n\nvar validate$u = function (value, ref) {\n var expression = ref.expression;\n\n if (typeof expression === 'string') {\n expression = new RegExp(expression);\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$u(val, { expression: expression }); });\n }\n\n return expression.test(String(value));\n};\n\nvar paramNames$c = ['expression'];\n\nvar regex = {\n validate: validate$u,\n paramNames: paramNames$c\n};\n\nvar validate$v = function (value, ref) {\n if ( ref === void 0 ) ref = [];\n var invalidateFalse = ref[0]; if ( invalidateFalse === void 0 ) invalidateFalse = false;\n\n if (isNullOrUndefined(value) || isEmptyArray(value)) {\n return false;\n }\n\n // incase a field considers `false` as an empty value like checkboxes.\n if (value === false && invalidateFalse) {\n return false;\n }\n\n return !!String(value).trim().length;\n};\n\nvar required = {\n validate: validate$v\n};\n\nvar validate$w = function (value, ref) {\n if ( ref === void 0 ) ref = [];\n var otherFieldVal = ref[0];\n var possibleVals = ref.slice(1);\n\n var required = possibleVals.includes(String(otherFieldVal).trim());\n\n if (!required) {\n return {\n valid: true,\n data: {\n required: required\n }\n };\n }\n\n var invalid = (isEmptyArray(value) || [false, null, undefined].includes(value));\n\n invalid = invalid || !String(value).trim().length;\n\n return {\n valid: !invalid,\n data: {\n required: required\n }\n };\n};\n\nvar options$5 = {\n hasTarget: true,\n computesRequired: true\n};\n\nvar required_if = {\n validate: validate$w,\n options: options$5\n};\n\nvar validate$x = function (files, ref) {\n var size = ref[0];\n\n if (isNaN(size)) {\n return false;\n }\n var nSize = Number(size) * 1024;\n return ensureArray(files).every(function (file) { return file.size <= nSize; });\n};\n\nvar size = {\n validate: validate$x\n};\n\nvar isURL_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nvar _isFQDN = _interopRequireDefault(isFQDN_1);\n\nvar _isIP = _interopRequireDefault(isIP_1);\n\nvar _merge = _interopRequireDefault(merge_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\n\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\n\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n\n if (!url || url.length >= 2083 || /[\\s<>]/.test(url)) {\n return false;\n }\n\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n\n options = (0, _merge.default)(options, default_url_options);\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.substr(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n\n split[0] = url.substr(2);\n }\n\n url = split.join('://');\n\n if (url === '') {\n return false;\n }\n\n split = url.split('/');\n url = split.shift();\n\n if (url === '' && !options.require_host) {\n return true;\n }\n\n split = url.split('@');\n\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n\n auth = split.shift();\n\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n }\n\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n\n if (split.length) {\n port_str = split.join(':');\n }\n }\n\n if (port_str !== null) {\n port = parseInt(port_str, 10);\n\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n }\n\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n\n host = host || ipv6;\n\n if (options.host_whitelist && !checkHost(host, options.host_whitelist)) {\n return false;\n }\n\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nvar isURL = unwrapExports(isURL_1);\n\nvar validate$y = function (value, options) {\n if ( options === void 0 ) options = {};\n\n if (isNullOrUndefined(value)) {\n value = '';\n }\n\n var validatorOptions = assign({}, options);\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return isURL(val, validatorOptions); });\n }\n\n return isURL(value, validatorOptions);\n};\n\nvar url = {\n validate: validate$y\n};\n\n/* eslint-disable camelcase */\n\nvar Rules = /*#__PURE__*/Object.freeze({\n after: after,\n alpha_dash: alpha_dash,\n alpha_num: alpha_num,\n alpha_spaces: alpha_spaces,\n alpha: alpha$1,\n before: before,\n between: between,\n confirmed: confirmed,\n credit_card: credit_card,\n date_between: date_between,\n date_format: date_format,\n decimal: decimal,\n digits: digits,\n dimensions: dimensions,\n email: email,\n ext: ext,\n image: image,\n included: included,\n integer: integer,\n length: length,\n ip: ip,\n ip_or_fqdn: ip_or_fqdn,\n is_not: is_not,\n is: is,\n max: max,\n max_value: max_value,\n mimes: mimes,\n min: min,\n min_value: min_value,\n excluded: excluded,\n numeric: numeric,\n regex: regex,\n required: required,\n required_if: required_if,\n size: size,\n url: url\n});\n\n// \n\nvar normalize = function (fields) {\n if (Array.isArray(fields)) {\n return fields.reduce(function (prev, curr) {\n if (includes(curr, '.')) {\n prev[curr.split('.')[1]] = curr;\n } else {\n prev[curr] = curr;\n }\n\n return prev;\n }, {});\n }\n\n return fields;\n};\n\n// Combines two flags using either AND or OR depending on the flag type.\nvar combine = function (lhs, rhs) {\n var mapper = {\n pristine: function (lhs, rhs) { return lhs && rhs; },\n dirty: function (lhs, rhs) { return lhs || rhs; },\n touched: function (lhs, rhs) { return lhs || rhs; },\n untouched: function (lhs, rhs) { return lhs && rhs; },\n valid: function (lhs, rhs) { return lhs && rhs; },\n invalid: function (lhs, rhs) { return lhs || rhs; },\n pending: function (lhs, rhs) { return lhs || rhs; },\n required: function (lhs, rhs) { return lhs || rhs; },\n validated: function (lhs, rhs) { return lhs && rhs; }\n };\n\n return Object.keys(mapper).reduce(function (flags, flag) {\n flags[flag] = mapper[flag](lhs[flag], rhs[flag]);\n\n return flags;\n }, {});\n};\n\nvar mapScope = function (scope, deep) {\n if ( deep === void 0 ) deep = true;\n\n return Object.keys(scope).reduce(function (flags, field) {\n if (!flags) {\n flags = assign({}, scope[field]);\n return flags;\n }\n\n // scope.\n var isScope = field.indexOf('$') === 0;\n if (deep && isScope) {\n return combine(mapScope(scope[field]), flags);\n } else if (!deep && isScope) {\n return flags;\n }\n\n flags = combine(flags, scope[field]);\n\n return flags;\n }, null);\n};\n\n/**\n * Maps fields to computed functions.\n */\nvar mapFields = function (fields) {\n if (!fields) {\n return function () {\n return mapScope(this.$validator.flags);\n };\n }\n\n var normalized = normalize(fields);\n return Object.keys(normalized).reduce(function (prev, curr) {\n var field = normalized[curr];\n prev[curr] = function mappedField () {\n // if field exists\n if (this.$validator.flags[field]) {\n return this.$validator.flags[field];\n }\n\n // scopeless fields were selected.\n if (normalized[curr] === '*') {\n return mapScope(this.$validator.flags, false);\n }\n\n // if it has a scope defined\n var index = field.indexOf('.');\n if (index <= 0) {\n return {};\n }\n\n var ref = field.split('.');\n var scope = ref[0];\n var name = ref.slice(1);\n\n scope = this.$validator.flags[(\"$\" + scope)];\n name = name.join('.');\n\n // an entire scope was selected: scope.*\n if (name === '*' && scope) {\n return mapScope(scope);\n }\n\n if (scope && scope[name]) {\n return scope[name];\n }\n\n return {};\n };\n\n return prev;\n }, {});\n};\n\nvar $validator = null;\n\nvar PROVIDER_COUNTER = 0;\n\nvar ValidationProvider = {\n $__veeInject: false,\n inject: {\n $_veeObserver: {\n from: '$_veeObserver',\n default: function default$1 () {\n if (!this.$vnode.context.$_veeObserver) {\n this.$vnode.context.$_veeObserver = createObserver();\n }\n\n return this.$vnode.context.$_veeObserver;\n }\n }\n },\n props: {\n vid: {\n type: [String, Number],\n default: function () {\n PROVIDER_COUNTER++;\n\n return (\"_vee_\" + PROVIDER_COUNTER);\n }\n },\n name: {\n type: String,\n default: null\n },\n mode: {\n type: [String, Function],\n default: function () {\n return getConfig().mode;\n }\n },\n events: {\n type: Array,\n validate: function () {\n /* istanbul ignore next */\n if (process.env.NODE_ENV !== 'production') {\n warn('events prop and config will be deprecated in future version please use the interaction modes instead');\n }\n\n return true;\n },\n default: function () {\n var events = getConfig().events;\n if (typeof events === 'string') {\n return events.split('|');\n }\n\n return events;\n }\n },\n rules: {\n type: [Object, String],\n default: null\n },\n immediate: {\n type: Boolean,\n default: false\n },\n persist: {\n type: Boolean,\n default: false\n },\n bails: {\n type: Boolean,\n default: function () { return getConfig().fastExit; }\n },\n debounce: {\n type: Number,\n default: function () { return getConfig().delay || 0; }\n },\n tag: {\n type: String,\n default: 'span'\n },\n slim: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n rules: {\n deep: true,\n handler: function handler (val, oldVal) {\n this._needsValidation = !isEqual(val, oldVal);\n }\n }\n },\n data: function () { return ({\n messages: [],\n value: undefined,\n initialized: false,\n initialValue: undefined,\n flags: createFlags(),\n failedRules: {},\n forceRequired: false,\n isDeactivated: false,\n id: null\n }); },\n computed: {\n isValid: function isValid () {\n return this.flags.valid;\n },\n fieldDeps: function fieldDeps () {\n var this$1 = this;\n\n var rules = normalizeRules(this.rules);\n\n return Object.keys(rules).filter(RuleContainer.isTargetRule).map(function (rule) {\n var depName = rules[rule][0];\n watchCrossFieldDep(this$1, depName);\n\n return depName;\n });\n },\n normalizedEvents: function normalizedEvents () {\n var this$1 = this;\n\n var ref = computeModeSetting(this);\n var on = ref.on;\n\n return normalizeEvents(on || this.events || []).map(function (e) {\n if (e === 'input') {\n return this$1._inputEventName;\n }\n\n return e;\n });\n },\n isRequired: function isRequired () {\n var rules = normalizeRules(this.rules);\n var forceRequired = this.forceRequired;\n\n var isRequired = rules.required || forceRequired;\n this.flags.required = isRequired;\n\n return isRequired;\n },\n classes: function classes () {\n var this$1 = this;\n\n var names = getConfig().classNames;\n return Object.keys(this.flags).reduce(function (classes, flag) {\n var className = (names && names[flag]) || flag;\n if (isNullOrUndefined(this$1.flags[flag])) {\n return classes;\n }\n\n if (className) {\n classes[className] = this$1.flags[flag];\n }\n\n return classes;\n }, {});\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n this.registerField();\n var ctx = createValidationCtx(this);\n\n // Gracefully handle non-existent scoped slots.\n var slot = this.$scopedSlots.default;\n /* istanbul ignore next */\n if (!isCallable(slot)) {\n if (process.env.NODE_ENV !== 'production') {\n warn('ValidationProvider expects a scoped slot. Did you forget to add \"v-slot\" to your slot?');\n }\n\n return h(this.tag, this.$slots.default);\n }\n\n var nodes = slot(ctx);\n // Handle single-root slot.\n extractVNodes(nodes).forEach(function (input) {\n addListeners.call(this$1, input);\n });\n\n return this.slim ? createRenderless(h, nodes) : h(this.tag, nodes);\n },\n beforeDestroy: function beforeDestroy () {\n // cleanup reference.\n this.$_veeObserver.unsubscribe(this);\n },\n activated: function activated () {\n this.$_veeObserver.subscribe(this);\n this.isDeactivated = false;\n },\n deactivated: function deactivated () {\n this.$_veeObserver.unsubscribe(this);\n this.isDeactivated = true;\n },\n methods: {\n setFlags: function setFlags (flags) {\n var this$1 = this;\n\n Object.keys(flags).forEach(function (flag) {\n this$1.flags[flag] = flags[flag];\n });\n },\n syncValue: function syncValue (e) {\n var value = normalizeValue$1(e);\n this.value = value;\n this.flags.changed = this.initialValue !== value;\n },\n reset: function reset () {\n this.messages = [];\n this._pendingValidation = null;\n this.initialValue = this.value;\n var flags = createFlags();\n this.setFlags(flags);\n },\n validate: function validate () {\n var this$1 = this;\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (args.length > 0) {\n this.syncValue(args[0]);\n }\n\n return this.validateSilent().then(function (result) {\n this$1.applyResult(result);\n\n return result;\n });\n },\n validateSilent: function validateSilent () {\n var this$1 = this;\n\n this.setFlags({ pending: true });\n\n return $validator.verify(this.value, this.rules, {\n name: this.name,\n values: createValuesLookup(this),\n bails: this.bails\n }).then(function (result) {\n this$1.setFlags({ pending: false });\n if (!this$1.isRequired) {\n this$1.setFlags({ valid: result.valid, invalid: !result.valid });\n }\n\n return result;\n });\n },\n applyResult: function applyResult (ref) {\n var errors = ref.errors;\n var failedRules = ref.failedRules;\n\n this.messages = errors;\n this.failedRules = assign({}, failedRules);\n this.setFlags({\n valid: !errors.length,\n changed: this.value !== this.initialValue,\n invalid: !!errors.length,\n validated: true\n });\n },\n registerField: function registerField () {\n if (!$validator) {\n $validator = getValidator() || new Validator(null, { fastExit: getConfig().fastExit });\n }\n\n updateRenderingContextRefs(this);\n }\n }\n};\n\nfunction createValidationCtx (ctx) {\n return {\n errors: ctx.messages,\n flags: ctx.flags,\n classes: ctx.classes,\n valid: ctx.isValid,\n failedRules: ctx.failedRules,\n reset: function () { return ctx.reset(); },\n validate: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return ctx.validate.apply(ctx, args);\n },\n aria: {\n 'aria-invalid': ctx.flags.invalid ? 'true' : 'false',\n 'aria-required': ctx.isRequired ? 'true' : 'false'\n }\n };\n}\n\nfunction normalizeValue$1 (value) {\n if (isEvent(value)) {\n return value.target.type === 'file' ? toArray(value.target.files) : value.target.value;\n }\n\n return value;\n}\n\n/**\n * Determines if a provider needs to run validation.\n */\nfunction shouldValidate (ctx, model) {\n // when an immediate/initial validation is needed and wasn't done before.\n if (!ctx._ignoreImmediate && ctx.immediate) {\n return true;\n }\n\n // when the value changes for whatever reason.\n if (ctx.value !== model.value) {\n return true;\n }\n\n // when it needs validation due to props/cross-fields changes.\n if (ctx._needsValidation) {\n return true;\n }\n\n // when the initial value is undefined and the field wasn't rendered yet.\n if (!ctx.initialized && model.value === undefined) {\n return true;\n }\n\n return false;\n}\n\nfunction computeModeSetting (ctx) {\n var compute = isCallable(ctx.mode) ? ctx.mode : modes[ctx.mode];\n\n return compute({\n errors: ctx.messages,\n value: ctx.value,\n flags: ctx.flags\n });\n}\n\nfunction onRenderUpdate (model) {\n if (!this.initialized) {\n this.initialValue = model.value;\n }\n\n var validateNow = shouldValidate(this, model);\n this._needsValidation = false;\n this.value = model.value;\n this._ignoreImmediate = true;\n\n if (!validateNow) {\n return;\n }\n\n this.validateSilent().then(this.immediate || this.flags.validated ? this.applyResult : function (x) { return x; });\n}\n\n// Creates the common handlers for a validatable context.\nfunction createCommonHandlers (ctx) {\n var onInput = function (e) {\n ctx.syncValue(e); // track and keep the value updated.\n ctx.setFlags({ dirty: true, pristine: false });\n };\n\n // Blur event listener.\n var onBlur = function () {\n ctx.setFlags({ touched: true, untouched: false });\n };\n\n var onValidate = ctx.$veeHandler;\n var mode = computeModeSetting(ctx);\n\n // Handle debounce changes.\n if (!onValidate || ctx.$veeDebounce !== ctx.debounce) {\n onValidate = debounce(\n function () {\n ctx.$nextTick(function () {\n var pendingPromise = ctx.validateSilent();\n // avoids race conditions between successive validations.\n ctx._pendingValidation = pendingPromise;\n pendingPromise.then(function (result) {\n if (pendingPromise === ctx._pendingValidation) {\n ctx.applyResult(result);\n ctx._pendingValidation = null;\n }\n });\n });\n },\n mode.debounce || ctx.debounce\n );\n\n // Cache the handler so we don't create it each time.\n ctx.$veeHandler = onValidate;\n // cache the debounce value so we detect if it was changed.\n ctx.$veeDebounce = ctx.debounce;\n }\n\n return { onInput: onInput, onBlur: onBlur, onValidate: onValidate };\n}\n\n// Adds all plugin listeners to the vnode.\nfunction addListeners (node) {\n var model = findModel(node);\n // cache the input eventName.\n this._inputEventName = this._inputEventName || getInputEventName(node, model);\n\n onRenderUpdate.call(this, model);\n\n var ref = createCommonHandlers(this);\n var onInput = ref.onInput;\n var onBlur = ref.onBlur;\n var onValidate = ref.onValidate;\n addVNodeListener(node, this._inputEventName, onInput);\n addVNodeListener(node, 'blur', onBlur);\n\n // add the validation listeners.\n this.normalizedEvents.forEach(function (evt) {\n addVNodeListener(node, evt, onValidate);\n });\n\n this.initialized = true;\n}\n\nfunction createValuesLookup (ctx) {\n var providers = ctx.$_veeObserver.refs;\n\n return ctx.fieldDeps.reduce(function (acc, depName) {\n if (!providers[depName]) {\n return acc;\n }\n\n acc[depName] = providers[depName].value;\n\n return acc;\n }, {});\n}\n\nfunction updateRenderingContextRefs (ctx) {\n // IDs should not be nullable.\n if (isNullOrUndefined(ctx.id) && ctx.id === ctx.vid) {\n ctx.id = PROVIDER_COUNTER;\n PROVIDER_COUNTER++;\n }\n\n var id = ctx.id;\n var vid = ctx.vid;\n // Nothing has changed.\n if (ctx.isDeactivated || (id === vid && ctx.$_veeObserver.refs[id])) {\n return;\n }\n\n // vid was changed.\n if (id !== vid && ctx.$_veeObserver.refs[id] === ctx) {\n ctx.$_veeObserver.unsubscribe({ vid: id });\n }\n\n ctx.$_veeObserver.subscribe(ctx);\n ctx.id = vid;\n}\n\nfunction createObserver () {\n return {\n refs: {},\n subscribe: function subscribe (ctx) {\n this.refs[ctx.vid] = ctx;\n },\n unsubscribe: function unsubscribe (ctx) {\n delete this.refs[ctx.vid];\n }\n };\n}\n\nfunction watchCrossFieldDep (ctx, depName, withHooks) {\n if ( withHooks === void 0 ) withHooks = true;\n\n var providers = ctx.$_veeObserver.refs;\n if (!ctx._veeWatchers) {\n ctx._veeWatchers = {};\n }\n\n if (!providers[depName] && withHooks) {\n return ctx.$once('hook:mounted', function () {\n watchCrossFieldDep(ctx, depName, false);\n });\n }\n\n if (!isCallable(ctx._veeWatchers[depName]) && providers[depName]) {\n ctx._veeWatchers[depName] = providers[depName].$watch('value', function () {\n if (ctx.flags.validated) {\n ctx._needsValidation = true;\n ctx.validate();\n }\n });\n }\n}\n\nvar flagMergingStrategy = {\n pristine: 'every',\n dirty: 'some',\n touched: 'some',\n untouched: 'every',\n valid: 'every',\n invalid: 'some',\n pending: 'some',\n validated: 'every'\n};\n\nfunction mergeFlags (lhs, rhs, strategy) {\n var stratName = flagMergingStrategy[strategy];\n\n return [lhs, rhs][stratName](function (f) { return f; });\n}\n\nvar OBSERVER_COUNTER = 0;\n\nvar ValidationObserver = {\n name: 'ValidationObserver',\n provide: function provide () {\n return {\n $_veeObserver: this\n };\n },\n inject: {\n $_veeObserver: {\n from: '$_veeObserver',\n default: function default$1 () {\n if (!this.$vnode.context.$_veeObserver) {\n return null;\n }\n\n return this.$vnode.context.$_veeObserver;\n }\n }\n },\n props: {\n tag: {\n type: String,\n default: 'span'\n },\n slim: {\n type: Boolean,\n default: false\n }\n },\n data: function () { return ({\n vid: (\"obs_\" + (OBSERVER_COUNTER++)),\n refs: {},\n observers: [],\n persistedStore: {}\n }); },\n computed: {\n ctx: function ctx () {\n var this$1 = this;\n\n var ctx = {\n errors: {},\n validate: function (arg) {\n var promise = this$1.validate(arg);\n\n return {\n then: function then (thenable) {\n return promise.then(function (success) {\n if (success && isCallable(thenable)) {\n return Promise.resolve(thenable());\n }\n\n return Promise.resolve(success);\n });\n }\n };\n },\n reset: function () { return this$1.reset(); }\n };\n\n return values(this.refs).concat( Object.keys(this.persistedStore).map(function (key) {\n return {\n vid: key,\n flags: this$1.persistedStore[key].flags,\n messages: this$1.persistedStore[key].errors\n };\n }),\n this.observers ).reduce(function (acc, provider) {\n Object.keys(flagMergingStrategy).forEach(function (flag) {\n var flags = provider.flags || provider.ctx;\n if (!(flag in acc)) {\n acc[flag] = flags[flag];\n return;\n }\n\n acc[flag] = mergeFlags(acc[flag], flags[flag], flag);\n });\n\n acc.errors[provider.vid] = provider.messages || values(provider.ctx.errors).reduce(function (errs, obsErrors) {\n return errs.concat(obsErrors);\n }, []);\n\n return acc;\n }, ctx);\n }\n },\n created: function created () {\n if (this.$_veeObserver) {\n this.$_veeObserver.subscribe(this, 'observer');\n }\n },\n activated: function activated () {\n if (this.$_veeObserver) {\n this.$_veeObserver.subscribe(this, 'observer');\n }\n },\n deactivated: function deactivated () {\n if (this.$_veeObserver) {\n this.$_veeObserver.unsubscribe(this, 'observer');\n }\n },\n beforeDestroy: function beforeDestroy () {\n if (this.$_veeObserver) {\n this.$_veeObserver.unsubscribe(this, 'observer');\n }\n },\n render: function render (h) {\n var slots = this.$slots.default || this.$scopedSlots.default || [];\n if (isCallable(slots)) {\n slots = slots(this.ctx);\n }\n\n return this.slim ? createRenderless(h, slots) : h(this.tag, { on: this.$listeners, attrs: this.$attrs }, slots);\n },\n methods: {\n subscribe: function subscribe (subscriber, kind) {\n var obj;\n\n if ( kind === void 0 ) kind = 'provider';\n if (kind === 'observer') {\n this.observers.push(subscriber);\n return;\n }\n\n this.refs = Object.assign({}, this.refs, ( obj = {}, obj[subscriber.vid] = subscriber, obj ));\n if (subscriber.persist && this.persistedStore[subscriber.vid]) {\n this.restoreProviderState(subscriber);\n }\n },\n unsubscribe: function unsubscribe (ref, kind) {\n var vid = ref.vid;\n if ( kind === void 0 ) kind = 'provider';\n\n if (kind === 'provider') {\n this.removeProvider(vid);\n }\n\n var idx = findIndex(this.observers, function (o) { return o.vid === vid; });\n if (idx !== -1) {\n this.observers.splice(idx, 1);\n }\n },\n validate: function validate (ref) {\n if ( ref === void 0 ) ref = { silent: false };\n var silent = ref.silent;\n\n return Promise.all(values(this.refs).map(function (ref) { return ref[silent ? 'validateSilent' : 'validate']().then(function (r) { return r.valid; }); }).concat( this.observers.map(function (obs) { return obs.validate({ silent: silent }); })\n )).then(function (results) { return results.every(function (r) { return r; }); });\n },\n reset: function reset () {\n var this$1 = this;\n\n Object.keys(this.persistedStore).forEach(function (key) {\n this$1.$delete(this$1.persistedStore, key);\n });\n return values(this.refs).concat( this.observers).forEach(function (ref) { return ref.reset(); });\n },\n restoreProviderState: function restoreProviderState (provider) {\n var state = this.persistedStore[provider.vid];\n provider.setFlags(state.flags);\n provider.applyResult(state);\n this.$delete(this.persistedStore, provider.vid);\n },\n removeProvider: function removeProvider (vid) {\n var obj;\n\n var provider = this.refs[vid];\n // save it for the next time.\n if (provider && provider.persist) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n if (vid.indexOf('_vee_') === 0) {\n warn('Please provide a `vid` prop when using `persist`, there might be unexpected issues otherwise.');\n }\n }\n\n this.persistedStore = assign({}, this.persistedStore, ( obj = {}, obj[vid] = {\n flags: provider.flags,\n errors: provider.messages,\n failedRules: provider.failedRules\n }, obj ));\n }\n\n this.$delete(this.refs, vid);\n },\n }\n};\n\nfunction withValidation (component, ctxToProps) {\n if ( ctxToProps === void 0 ) ctxToProps = null;\n\n var options = isCallable(component) ? component.options : component;\n options.$__veeInject = false;\n var hoc = {\n name: ((options.name || 'AnonymousHoc') + \"WithValidation\"),\n props: assign({}, ValidationProvider.props),\n data: ValidationProvider.data,\n computed: assign({}, ValidationProvider.computed),\n methods: assign({}, ValidationProvider.methods),\n $__veeInject: false,\n beforeDestroy: ValidationProvider.beforeDestroy,\n inject: ValidationProvider.inject\n };\n\n // Default ctx converts ctx props to component props.\n if (!ctxToProps) {\n ctxToProps = function (ctx) { return ctx; };\n }\n\n var eventName = (options.model && options.model.event) || 'input';\n\n hoc.render = function (h) {\n var obj;\n\n this.registerField();\n var vctx = createValidationCtx(this);\n var listeners = assign({}, this.$listeners);\n\n var model = findModel(this.$vnode);\n this._inputEventName = this._inputEventName || getInputEventName(this.$vnode, model);\n onRenderUpdate.call(this, model);\n\n var ref = createCommonHandlers(this);\n var onInput = ref.onInput;\n var onBlur = ref.onBlur;\n var onValidate = ref.onValidate;\n\n mergeVNodeListeners(listeners, eventName, onInput);\n mergeVNodeListeners(listeners, 'blur', onBlur);\n this.normalizedEvents.forEach(function (evt, idx) {\n mergeVNodeListeners(listeners, evt, onValidate);\n });\n\n // Props are any attrs not associated with ValidationProvider Plus the model prop.\n // WARNING: Accidental prop overwrite will probably happen.\n var ref$1 = findModelConfig(this.$vnode) || { prop: 'value' };\n var prop = ref$1.prop;\n var props = assign({}, this.$attrs, ( obj = {}, obj[prop] = model.value, obj ), ctxToProps(vctx));\n\n return h(options, {\n attrs: this.$attrs,\n props: props,\n on: listeners\n }, normalizeSlots(this.$slots, this.$vnode.context));\n };\n\n return hoc;\n}\n\nvar version = '2.2.13';\n\nObject.keys(Rules).forEach(function (rule) {\n Validator.extend(rule, Rules[rule].validate, assign({}, Rules[rule].options, { paramNames: Rules[rule].paramNames }));\n});\n\n// Merge the english messages.\nValidator.localize({ en: locale });\n\nvar install = VeeValidate$1.install;\n\nVeeValidate$1.version = version;\nVeeValidate$1.mapFields = mapFields;\nVeeValidate$1.ValidationProvider = ValidationProvider;\nVeeValidate$1.ValidationObserver = ValidationObserver;\nVeeValidate$1.withValidation = withValidation;\n\nexport default VeeValidate$1;\nexport { ErrorBag, Rules, ValidationObserver, ValidationProvider, Validator, directive, install, mapFields, mixin, version, withValidation };\n","<template>\r\n <div>\r\n <div v-if=\"!isIE9\">\r\n <form @submit.prevent=\"onSubmit\" v-show=\"!orderSuccess\">\r\n <label for=\"email\">{{ $trans('/common/email') }}:</label>\r\n <input\r\n v-validate=\"'email'\"\r\n data-vv-validate-on=\"none\"\r\n :class=\"{ input: true, 'is-danger': vErrors.has('email') }\"\r\n v-model=\"email\"\r\n id=\"email\"\r\n name=\"email\"\r\n type=\"text\"\r\n autocomplete=\"on\"\r\n :placeholder=\"$trans('/common/email')\"\r\n aria-describedby=\"email_error\"\r\n />\r\n <button type=\"submit\" class=\"btn\" :disabled=\"!email\">\r\n {{ $trans('/common/subscribe') }}\r\n </button>\r\n <div class=\"subsite-order-newsletter-block__loader\" v-show=\"isLoading\">\r\n <div class=\"loader\"></div>\r\n </div>\r\n <div\r\n v-show=\"vErrors.has('email')\"\r\n id=\"email_error\"\r\n class=\"subsite-order-newsletter-block__validate\"\r\n role=\"alert\"\r\n >\r\n {{ vErrors.first('email') }}\r\n </div>\r\n </form>\r\n\r\n <div v-show=\"orderSuccess\" v-cloak>\r\n <h3>{{ $trans('/common/SubscribeSuccess') }}</h3>\r\n </div>\r\n </div>\r\n <div v-else>\r\n <a :href=\"this.url\" class=\"btn\" target=\"_blank\">{{ $trans('/common/subscribe') }}</a>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport Vue from 'vue';\r\nimport VeeValidate from 'vee-validate';\r\nimport _isNil from 'lodash/isNil';\r\nimport finnish from 'vee-validate/dist/locale/fi';\r\nimport swedish from 'vee-validate/dist/locale/sv';\r\nimport qs from 'qs';\r\nimport axios from 'axios';\r\n\r\n// http://vee-validate.logaretm.com\r\nVue.use(VeeValidate, {\r\n errorBagName: 'vErrors'\r\n});\r\n\r\nexport default {\r\n name: 'OrderNewsletter',\r\n props: {\r\n join: { type: Number },\r\n url: { type: String, default: null },\r\n locale: { type: String, default: 'fi' }\r\n },\r\n data() {\r\n return {\r\n email: '',\r\n orderSuccess: false,\r\n isLoading: false\r\n };\r\n },\r\n created() {\r\n this.localizeForm();\r\n },\r\n methods: {\r\n onSubmit() {\r\n this.$validator.validateAll().then(result => {\r\n if (!result) {\r\n return;\r\n }\r\n this.orderNewsletter();\r\n });\r\n },\r\n orderNewsletter() {\r\n if (_isNil(this.email) || _isNil(this.join) || _isNil(this.url)) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n const data = {\r\n sahkoposti: this.email,\r\n join: this.join\r\n };\r\n const options = {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/x-www-form-urlencoded' },\r\n data: qs.stringify(data)\r\n };\r\n axios(this.url, options)\r\n .then(response => {\r\n this.orderSuccess = response.data.success;\r\n this.isLoading = false;\r\n })\r\n .catch(() => {\r\n this.isLoading = false;\r\n });\r\n },\r\n localizeForm() {\r\n let lang = null;\r\n if (this.locale === 'fi') {\r\n lang = finnish.messages;\r\n } else if (this.locale === 'sv') {\r\n lang = swedish.messages;\r\n }\r\n if (!_isNil(lang)) {\r\n this.$validator.localize(this.locale, {\r\n messages: lang,\r\n attributes: {\r\n email: this.$trans('/common/email')\r\n }\r\n });\r\n }\r\n }\r\n },\r\n computed: {\r\n isIE9() {\r\n return (\r\n /MSIE\\s/.test(navigator.userAgent) && parseFloat(navigator.appVersion.split('MSIE')[1]) < 10\r\n );\r\n }\r\n }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OrderNewsletter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OrderNewsletter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./OrderNewsletter.vue?vue&type=template&id=bb49abec\"\nimport script from \"./OrderNewsletter.vue?vue&type=script&lang=js\"\nexport * from \"./OrderNewsletter.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + (commaRoundTrip && isArray(obj) && valuesArray.length === 1 ? '[]' : '') + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):((e=e||self).__vee_validate_locale__fi=e.__vee_validate_locale__fi||{},e.__vee_validate_locale__fi.js=n())}(this,function(){\"use strict\";var e,n={name:\"fi\",messages:{after:function(e,n){return e+\" tulee olla jälkeen \"+n[0]+\".\"},alpha:function(e){return e+\" voi sisältää vain kirjaimia.\"},alpha_dash:function(e){return e+\" voi sisältää vain kirajimia, numeroita, ja tavu-, tai alaviivoja.\"},alpha_num:function(e){return e+\" voi sisältää vain kirjaimia ja numeroita.\"},before:function(e,n){return e+\" tulee olla ennen \"+n[0]+\".\"},between:function(e,n){return\"Kentän \"+e+\" tulee olla \"+n[0]+\" ja \"+n[1]+\" väliltä.\"},confirmed:function(e,n){return e+\" ei vastannut \"+n[0]+\".\"},date_between:function(e,n){return e+\" tulee olla \"+n[0]+\" ja \"+n[1]+\" väliltä.\"},date_format:function(e,n){return e+\" tulee olla muodossa \"+n[0]+\".\"},decimal:function(e,n){void 0===n&&(n=[]);var t=n[0];return void 0===t&&(t=\"*\"),e+\" tulee olla numeerinen ja voi sisältää\"+(t&&\"*\"!==t?\" \"+t:\"\")+\" desimaalia.\"},digits:function(e,n){return e+\" tulee olla numeerinen ja tarkalleen \"+n[0]+\" merkkiä.\"},dimensions:function(e,n){return e+\" tulee olla \"+n[0]+\" pikseliä kertaa \"+n[1]+\" pikseliä.\"},email:function(e){return e+\" tulee olla kelvollinen sähköpostiosoite.\"},excluded:function(e){return e+\" tulee olla kelvollinen arvo.\"},ext:function(e){return e+\" tulee olla kelvollinen tiedosto.\"},image:function(e){return e+\" tulee olla kelvollinen kuva.\"},included:function(e){return e+\" tulee olla kelvollinen arvo.\"},ip:function(e){return e+\" tulee olla kelvollinen IP-osoite.\"},max:function(e,n){return e+\" ei saa olla pidempi kuin \"+n[0]+\" merkkiä.\"},mimes:function(e){return e+\" tulee olla kelvollinen tiedostotyyppi.\"},min:function(e,n){return e+\" tulee olla vähintään \"+n[0]+\" merkkiä.\"},numeric:function(e){return e+\" voi sisältää vain numeroita.\"},regex:function(e){return e+\" tulee olla kelvollinen säännöllinen lauseke.\"},required:function(e){return e+\" on pakollinen kenttä.\"},size:function(e,n){return e+\" tulee olla vähemmän kuin \"+function(e){var n=1024,t=0===(e=Number(e)*n)?0:Math.floor(Math.log(e)/Math.log(n));return 1*(e/Math.pow(n,t)).toFixed(2)+\" \"+[\"Byte\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\",\"EB\",\"ZB\",\"YB\"][t]}(n[0])+\".\"},url:function(e){return e+\" tulee olla kelvollinen URL-osoite.\"}},attributes:{}};return\"undefined\"!=typeof VeeValidate&&VeeValidate.Validator.localize(((e={})[n.name]=n,e)),n});","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):((e=e||self).__vee_validate_locale__sv=e.__vee_validate_locale__sv||{},e.__vee_validate_locale__sv.js=t())}(this,function(){\"use strict\";var e,t={name:\"sv\",messages:{_default:function(e){return e+\" värde är inte giltigt.\"},after:function(e,t){return\"Fältet \"+e+\" mÃ¥ste vara efter \"+t[0]+\".\"},alpha:function(e){return\"Fältet \"+e+\" fÃ¥r bara innehÃ¥lla alfabetiska tecken.\"},alpha_dash:function(e){return\"Fältet \"+e+\" fÃ¥r bara innehÃ¥lla alfanumeriska tecken sÃ¥väl som snedstreck och understreck.\"},alpha_num:function(e){return\"Fältet \"+e+\" fÃ¥r bara innehÃ¥lla alfanumeriska tecken.\"},alpha_spaces:function(e){return\"Fältet \"+e+\" fÃ¥r bara innehÃ¥lla alfabetiska tecken och mellanslag.\"},before:function(e,t){return\"Fältet \"+e+\" mÃ¥ste vara tidigare än \"+t[0]+\".\"},between:function(e,t){return\"Fältet \"+e+\" mÃ¥ste vara mellan \"+t[0]+\" och \"+t[1]+\".\"},confirmed:function(e,t){return\"Fältet \"+e+\" matchar inte \"+t[0]+\".\"},date_between:function(e,t){return\"Fältet \"+e+\" mÃ¥ste vara mellan \"+t[0]+\" och \"+t[1]+\".\"},date_format:function(e,t){return\"Fältet \"+e+\" mÃ¥ste ha formatet \"+t[0]+\".\"},decimal:function(e,t){void 0===t&&(t=[]);var n=t[0];return void 0===n&&(n=\"*\"),\"Fältet \"+e+\" mÃ¥ste vara numeriskt och fÃ¥r innehÃ¥lla \"+(\"*\"===n?\"\":n)+\" decimaltecken.\"},digits:function(e,t){return\"Fältet \"+e+\" mÃ¥ste vara numeriskt och innehÃ¥lla exakt \"+t[0]+\" siffor.\"},dimensions:function(e,t){return\"Fältet \"+e+\" mÃ¥ste vara \"+t[0]+\" pixlar bred och \"+t[1]+\" pixlar hög.\"},email:function(e){return\"Fältet \"+e+\" mÃ¥ste vara en giltig e-postadress.\"},excluded:function(e){return\"Fältet \"+e+\" mÃ¥ste vara ett godkänt alternativ.\"},ext:function(e){return\"Fältet \"+e+\" mÃ¥ste vara en godkänd fil.\"},image:function(e){return\"Fältet \"+e+\" mÃ¥ste vara en bildfil.\"},included:function(e){return\"Fältet \"+e+\" mÃ¥ste vara ett godkänt alternativ.\"},ip:function(e){return\"Fältet \"+e+\" mÃ¥ste vara en godkänd ip-adress.\"},max:function(e,t){return\"Fältet \"+e+\" fÃ¥r inte vara längre än \"+t[0]+\" tecken.\"},mimes:function(e){return\"Fältet \"+e+\" mÃ¥ste ha en filändelse.\"},min:function(e,t){return\"Fältet \"+e+\" mÃ¥ste minst vara \"+t[0]+\" tecken.\"},numeric:function(e){return\"Fältet \"+e+\" fÃ¥r bara innehÃ¥lla numeriska tecken.\"},regex:function(e){return\"Fältet \"+e+\" har en felaktig formatering.\"},required:function(e){return\"Fältet \"+e+\" är obligatoriskt.\"},size:function(e,t){return\"Fältet \"+e+\" mÃ¥ste vara mindre än \"+function(e){var t=1024,n=0===(e=Number(e)*t)?0:Math.floor(Math.log(e)/Math.log(t));return 1*(e/Math.pow(t,n)).toFixed(2)+\" \"+[\"Byte\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\",\"EB\",\"ZB\",\"YB\"][n]}(t[0])+\".\"},url:function(e){return\"Fältet \"+e+\" är inte en godkänd URL.\"}},attributes:{}};return\"undefined\"!=typeof VeeValidate&&VeeValidate.Validator.localize(((e={})[t.name]=t,e)),t});"],"names":["render","_vm","this","_h","$createElement","_c","_self","isIE9","staticClass","attrs","url","_v","_s","$trans","directives","name","rawName","value","orderSuccess","expression","on","$event","preventDefault","onSubmit","class","input","vErrors","has","domProps","target","composing","email","first","staticRenderFns","isTextInput","el","includes","type","isCheckboxOrRadioInput","isDateInput","getDataAttribute","getAttribute","isNaN$1","Number","isNaN","isNullOrUndefined","values","len","arguments","length","every","undefined","createFlags","untouched","touched","dirty","pristine","valid","invalid","validated","pending","required","changed","isEqual","lhs","rhs","RegExp","source","flags","Array","isArray","i","isObject","Object","keys","key","getScope","scope","form","getForm","tagName","parentNode","getPath","path","def","split","prop","hasPath","obj","previousPath","isValidPath","reduce","reducer","parseRule","rule","params","slice","join","debounce","fn","wait","token","cancelled","args","later","timeout","apply","clearTimeout","setTimeout","appendRule","rules","normalizeRules","prev","curr","warn","parsedRule","message","console","createError","Error","isCallable","func","hasClass","className","classList","contains","match","addClass","add","removeClass","remove","reg","replace","toggleClass","status","forEach","item","toArray","arrayLike","from","array","push","ensureArray","concat","isEmptyArray","others","assign","TypeError","to","arg","id","idTemplate","uniqId","newId","String","findIndex","predicate","find","idx","isBuiltInComponent","vnode","tag","componentOptions","test","makeDelayObject","events","delay","delayConfig","e","deepParseInt","parseInt","map","element","merge","obj$1","fillRulesFromElement","multiple","pattern","regex","maxLength","minLength","min","max","timeFormat","step","k","parseSelector","selector","pop","parts","collection","indexOf","arr","defineNonReactive","defineProperty","configurable","writable","LOCALE","Dictionary","dictionary","container","prototypeAccessors","locale","get","set","prototype","hasLocale","setDateFormat","format","dateFormat","getDateFormat","getMessage","data","hasMessage","messages","_getDefaultMessage","getFieldMessage","field","dict","custom","_default","en","fallback","hasAttribute","attributes","setMessage","setAttribute","attribute","defineProperties","drivers","default","currentDriver","DictionaryResolver","_checkDriverName","driver","setDriver","implementation","getDriver","ErrorBag","errorBag","vmId","items","Symbol","iterator","this$1","index","next","done","error","ref","_normalizeError","regenerate","msg","update","splice","all","filterFn","matchesScope","matchesVM","filter","any","clear","collect","isSingleField","groupErrors","errors","_makeCandidateFilters","isPrimary","isAlt","collected","primary","alt","count","firstById","_match","firstRule","firstByRule","firstNot","removeById","condition","matches","shouldRemove","matchesRule","matchesName","isLast","DEFAULT_CONFIG","errorBagName","fieldsBagName","classes","classNames","inject","fastExit","aria","validity","mode","useConstraintAttrs","i18n","i18nRootKey","currentConfig","resolveConfig","ctx","selfConfig","getConfig","setConfig","newConf","findModel","model","d","extractChildren","children","extractVNodes","nodes","node","candidates","findModelConfig","Ctor","options","mergeVNodeListeners","eventName","handler","prevHandler","addNativeNodeListener","addComponentNodeListener","listeners","addVNodeListener","getInputEventName","event","modifiers","lazy","normalizeSlots","slots","context","slot","createRenderless","h","Resolver","generate","binding","resolveModel","resolveName","listen","disable","bails","continues","resolveScope","vm","component","componentInstance","getter","resolveGetter","resolveEvents","resolveDelay","resolveRules","immediate","initial","persist","initialValue","resolveInitialValue","getCtorConfig","config","normalized","globalDelay","$attrs","$options","watchable","boundGetter","bind","els","document","querySelectorAll","checked","checkbox","elm","files","opt","selected","RULES","RuleContainer","staticAccessors","validate","paramNames","isImmediate","isRequireRule","computesRequired","isTargetRule","hasTarget","ruleName","getParamNames","getOptions","getValidatorMethod","isEvent","evt","Event","srcElement","normalizeEvents","evts","supportsPassive","detectPassiveSupport","opts","window","addEventListener","removeEventListener","cb","passive","DEFAULT_OPTIONS","targetOf","Field","updated","forceRequired","_cacheId","_delay","ctorConfig","prototypeAccessors$1","validator","isRequired","isDisabled","alias","rejectsFalse","$validator","Promise","resolve","disabled","_alias","call","_bails","matchesComponentId","_veeValidateId","waitFor","pendingPromise","_waitingFor","isWaitingFor","promise","updateDependencies","addActionListeners","resetFlag","then","addValueListeners","updateClasses","updateAriaAttrs","reset","_cancellationToken","defaults","flag","updateCustomValidity","setFlags","negated","dependencies","destroy","fields","r","$el","ref$1","$refs","$watch","$vnode","unwatch","watchers","w","isReset","applyClasses","onBlur","inputEvent","onInput","$once","$off","blurEvent","checkValueChanged","_determineInputEvent","_determineEventList","defaultInputEvent","_resolveField","watchCtxVm","debouncedFn","$nextTick","_addComponentEventListener","_addHTMLEventListener","$on","addListener","applyAriaAttrs","setCustomValidity","FieldBag","itemsById","prototypeAccessors$2","matcher","findById","some","m","mapper","ScopedValidator","base","_uid","_base","_paused","prototypeAccessors$3","f","acc","val","localize","attach","attachOpts","pause","resume","detach","extend","descriptor","verify","validateAll","validateScopes","VALIDATOR","getValidator","setValidator","requestsValidator","injections","mixin","provide","beforeCreate","$__veeInject","$parent","$_veeValidate","requested","Vue","util","defineReactive","computed","beforeDestroy","findField","directive","fieldOptions","inserted","oldValue","unbind","Validator","validations","pluginContainer","_createFields","paused","$vee","$emit","prototypeAccessors$4","staticAccessors$1","hasChanged","create","_guardExtend","mergedOpts","_merge","lang","fieldOpts","oldFieldMatcher","oldField","_validate","result","uid","fieldDescriptor","silent","matched","_handleFieldNotFound","validationPromise","_handleValidationResults","providedValues","results","t","targetRules","targetKey","ruleMap","failedRules","_getDateFormat","date_format","_formatErrorMessage","targetName","_getFieldDisplayName","_getLocalizedParams","_convertParamObjectToArray","paramName","localizedName","_convertParamArrayToObj","hasKeys","_test","reject","isDate","allValid","_createFieldError","fieldScope","fieldName","fullName","matchers","allErrors","_shouldSkip","_shouldBail","requireRules","ruleOptions","promises","isExitEarly","v","normalizeValue","normalizeFormat","I18nDictionary","rootKey","prototypeAccessors$5","getDateTimeFormat","setDateTimeFormat","_","dataOptions","te","fallbackLocale","localeKey","clone","mergeLocaleMessage","pendingPlugins","pluginInstance","aggressive","eager","modes","VeeValidate$1","_Vue","configure","_validator","_initVM","_initI18n","prototypeAccessors$6","i18nDriver","staticAccessors$2","setI18nDriver","instance","cfg","setMode","use","plugin","Rules","install","onLocaleChanged","formatFileSize","size","units","threshold","Math","floor","log","pow","toFixed","isDefinedGlobally","VeeValidate","after","inclusion","alpha","alpha_dash","alpha_num","alpha_spaces","before","between","confirmed","credit_card","date_between","decimal","decimals","digits","dimensions","width","height","excluded","ext","image","included","integer","ip","ip_or_fqdn","max_value","mimes","min_value","numeric","required_if","toInteger","dirtyNumber","NaN","number","ceil","MILLISECONDS_IN_MINUTE","getTimezoneOffsetInMilliseconds","dirtyDate","date","Date","getTime","baseTimezoneOffset","getTimezoneOffset","setSeconds","millisecondsPartOfTimezoneOffset","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE$1","DEFAULT_ADDITIONAL_DIGITS","patterns","dateTimeDelimeter","plainTime","timeZoneDelimeter","YY","YYY","YYYY","YYYYY","MM","DDD","MMDD","Www","WwwD","HH","HHMM","HHMMSS","timezone","timezoneZ","timezoneHH","timezoneHHMM","toDate","argument","dirtyOptions","additionalDigits","RangeError","toString","dateStrings","splitDateString","parseYearResult","parseYear","year","restDateString","parseDate","offset","timestamp","time","parseTime","parseTimezone","dateString","timeString","substr","exec","patternYYY","patternYYYYY","yearString","centuryString","month","week","setUTCFullYear","validateDate","dayOfYear","validateDayOfYearDate","day","validateWeekDate","dayOfISOWeekYear","dayOfWeek","hours","minutes","parseFloat","validateTime","seconds","timezoneString","absoluteOffset","validateTimezone","isoWeekYear","fourthOfJanuaryDay","getUTCDay","diff","setUTCDate","getUTCDate","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","isLeapYear","addMilliseconds","dirtyAmount","amount","isValid","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","addSuffix","comparison","buildFormatLongFn","defaultWidth","formats","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative","baseDate","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","rem100","era","quarter","dayPeriod","defaulFormattingWidth","buildMatchPatternFn","dirtyString","string","matchResult","matchPattern","matchedString","parseResult","parsePattern","valueCallback","rest","buildMatchFn","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","findKey","object","hasOwnProperty","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","locale$1","weekStartsOn","firstWeekContainsDate","MILLISECONDS_IN_DAY","getUTCDayOfYear","setUTCMonth","setUTCHours","startOfYearTimestamp","difference","startOfUTCISOWeek","getUTCISOWeekYear","getUTCFullYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","round","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","MILLISECONDS_IN_WEEK$1","getUTCWeek","dayPeriodEnum","formatters","G","y","signedYear","twoDigitYear","addLeadingZeros","unit","Y","signedWeekYear","weekYear","R","u","Q","getUTCMonth","q","M","L","I","isoWeek","dayOfMonth","D","E","localDayOfWeek","c","isoDayOfWeek","a","getUTCHours","dayPeriodEnumValue","b","B","H","K","getUTCMinutes","s","getUTCSeconds","S","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","X","originalDate","_originalDate","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","T","targetLength","sign","output","abs","dirtyDelimeter","delimeter","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","dateTimeFormat","datePattern","timePattern","longFormatters","p","P","subMilliseconds","protectedTokens","isProtectedToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","dirtyFormatStr","formatStr","utcDate","formatterOptions","substring","firstCharacter","longFormatter","cleanEscapedString","formatter","awareOfUnicodeTokens","isAfter","dirtyDateToCompare","dateToCompare","isBefore","isEqual$1","dirtyLeftDate","dirtyRightDate","dateLeft","dateRight","setUTCDay","dirtyDay","currentDay","remainder","dayIndex","setUTCWeek","dirtyWeek","setUTCISODay","setUTCISOWeek","dirtyISOWeek","MILLISECONDS_IN_HOUR$1","MILLISECONDS_IN_MINUTE$2","MILLISECONDS_IN_SECOND","numericPatterns","hour23h","hour24h","hour11h","hour12h","minute","second","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","timezonePatterns","basicOptionalMinutes","basic","basicOptionalSeconds","extended","extendedOptionalSeconds","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","n","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","DAYS_IN_MONTH$1","DAYS_IN_MONTH_LEAP_YEAR$1","isLeapYearIndex$1","parsers","priority","parse","isTwoDigitYear","normalizedTwoDigitYear","firstWeekOfYear","wholeWeekDays","isPM","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","TIMEZONE_UNIT_PRIORITY","formattingTokensRegExp$1","escapedStringRegExp$1","doubleQuoteRegExp$1","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyBaseDate","formatString","subFnOptions","setters","dateToSystemTimezone","tokens","parser","cleanEscapedString$1","uniquePrioritySetters","setter","sort","reverse","setterArray","convertedDate","setFullYear","setHours","parseDate$1","format$1","parsed","afterValidator","targetValue","cs","da","de","es","fr","it","lt","nl","hu","pl","pt","ru","sk","sr","sv","tr","uk","ar","az","alphaSpaces","alphanumeric","alphaDash","loc","paramNames$1","alpha$1","validate$1","paramNames$2","validate$2","paramNames$3","validate$3","paramNames$4","validate$4","options$1","paramNames$5","validate$5","paramNames$6","validate$6","options$2","paramNames$7","unwrapExports","__esModule","createCommonjsModule","module","exports","assertString_1","_typeof","constructor","assertString","invalidType","isString","isCreditCard_1","isCreditCard","_assertString","_interopRequireDefault","creditCard","str","sanitized","digit","tmpNum","shouldDouble","sum","validate$7","validate$8","inclusivity","minDate","maxDate","dateVal","options$3","paramNames$8","validate$9","options$4","paramNames$9","validate$a","separator","regexPart","parsedValue","paramNames$a","validate$b","strVal","imageRegex","validateImage","file","URL","webkitURL","Image","onerror","onload","src","createObjectURL","validate$c","images","merge_1","isByteLength_1","isByteLength","encodeURI","isFQDN_1","isFQDN","default_fqdn_options","require_tld","allow_underscores","allow_trailing_dot","tld","part","_i","isIP_1","isIP","ipv4Maybe","ipv6Block","version","blocks","foundOmissionBlock","foundIPv4TransitionBlock","expectedNumberOfBlocks","shift","isEmail_1","isEmail","_isByteLength","_isFQDN","_isIP","default_email_options","allow_display_name","require_display_name","allow_utf8_local_part","displayName","emailUserPart","gmailUserPart","quotedEmailUser","emailUserUtf8Part","quotedEmailUserUtf8","display_email","domain","user","lower_domain","toLowerCase","domain_specific_validation","username","_user_parts","allow_ip_domain","startsWith","endsWith","noBracketdomain","user_parts","objectWithoutProperties","exclude","validate$d","emailStr","trim","validatorOptions","validate$e","validate$f","validate$g","extensions","validate$h","validate$i","validate$j","paramNames$b","validate$k","validate$l","is","validate$m","is_not","compare","validate$n","validate$o","validate$p","validate$q","validate$r","validate$s","validate$t","testValue","strValue","validate$u","paramNames$c","validate$v","invalidateFalse","validate$w","otherFieldVal","possibleVals","options$5","validate$x","nSize","isURL_1","isURL","default_url_options","protocols","require_protocol","require_host","require_valid_protocol","allow_protocol_relative_urls","wrapped_ipv6","isRegExp","checkHost","host","protocol","auth","hostname","port","port_str","ipv6","disallow_auth","ipv6_match","host_whitelist","host_blacklist","validate$y","freeze","normalize","combine","mapScope","deep","isScope","mapFields","PROVIDER_COUNTER","ValidationProvider","$_veeObserver","createObserver","props","vid","Function","Boolean","slim","watch","oldVal","_needsValidation","initialized","isDeactivated","fieldDeps","depName","watchCrossFieldDep","normalizedEvents","computeModeSetting","_inputEventName","names","registerField","createValidationCtx","$scopedSlots","$slots","addListeners","unsubscribe","activated","subscribe","deactivated","methods","syncValue","normalizeValue$1","_pendingValidation","validateSilent","applyResult","createValuesLookup","updateRenderingContextRefs","shouldValidate","_ignoreImmediate","compute","onRenderUpdate","validateNow","createCommonHandlers","onValidate","$veeHandler","$veeDebounce","providers","refs","withHooks","_veeWatchers","flagMergingStrategy","mergeFlags","strategy","stratName","OBSERVER_COUNTER","ValidationObserver","observers","persistedStore","thenable","success","provider","errs","obsErrors","created","$listeners","subscriber","kind","restoreProviderState","removeProvider","o","obs","$delete","state","withValidation","ctxToProps","hoc","vctx","isLoading","orderNewsletter","sahkoposti","method","headers","axios","catch","localizeForm","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","desc","applyBind","ERROR_MESSAGE","toStr","funcType","that","bound","binder","boundLength","boundArgs","Empty","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","getOwnPropertyDescriptor","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","getPrototypeOf","__proto__","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","Atomics","BigInt","DataView","decodeURI","decodeURIComponent","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","JSON","Map","Proxy","ReferenceError","Reflect","Set","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","stringToPath","last","quote","subString","getBaseIntrinsic","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","origSymbol","hasSymbolSham","getOwnPropertySymbols","sym","symObj","symVal","getOwnPropertyNames","syms","propertyIsEnumerable","enumerable","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","hasWeakMap","weakMapHas","hasWeakSet","weakSetHas","hasWeakRef","weakRefDeref","deref","booleanValueOf","valueOf","objectToString","functionToString","$match","$slice","$toUpperCase","toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","toStringTag","isEnumerable","gPO","addNumericSeparator","num","Infinity","sepRegex","int","intStr","dec","utilInspect","inspectCustom","inspectSymbol","isSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","isError","isNumber","isBoolean","isBigInt","inspect_","depth","seen","maxStringLength","customInspect","indent","numericSeparator","inspectString","bigIntStr","maxDepth","getIndent","inspect","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","isElement","nodeName","childNodes","xs","singleLineValues","indentedJoin","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","ys","isPlainObject","protoTag","stringTag","constructorTag","l","HTMLElement","remaining","trailer","lowbyte","charCodeAt","entries","joinedEntries","baseIndent","lineJoiner","isArr","symMap","j","percentTwenties","Format","RFC1738","RFC3986","stringify","utils","allowDots","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decoder","decode","delimiter","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","$0","numberStr","fromCharCode","parseArrayValue","isoSentinel","parseValues","cleanStr","limit","skipIndex","bracketEqualsPos","pos","maybeMap","encodedVal","parseObject","chain","valuesParsed","leaf","root","cleanRoot","charAt","parseKeys","givenKey","brackets","child","segment","parent","normalizeParseOptions","tempObj","newObj","compact","getSideChannel","arrayPrefixGenerators","prefix","indices","repeat","pushToArray","valueOrArray","toISO","toISOString","defaultFormat","addQueryPrefix","encode","encoder","encodeValuesOnly","serializeDate","skipNulls","isNonNullishPrimitive","sentinel","generateArrayPrefix","commaRoundTrip","sideChannel","tmpSc","findFlag","isBuffer","keyValue","valuesJoined","objKeys","adjustedPrefix","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","joined","hexTable","compactQueue","queue","compacted","arrayToObject","mergeTarget","targetItem","strWithoutPlus","unescape","defaultEncoder","escape","out","mapped","callBound","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","list","listGet","objects","listSet","listHas","$wm","$m","$o","channel","assert"],"sourceRoot":""}