{"version":3,"file":"editor.js","mappings":"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","sources":["webpack://editor/./node_modules/axios/index.js","webpack://editor/./node_modules/axios/lib/adapters/xhr.js","webpack://editor/./node_modules/axios/lib/axios.js","webpack://editor/./node_modules/axios/lib/cancel/Cancel.js","webpack://editor/./node_modules/axios/lib/cancel/CancelToken.js","webpack://editor/./node_modules/axios/lib/cancel/isCancel.js","webpack://editor/./node_modules/axios/lib/core/Axios.js","webpack://editor/./node_modules/axios/lib/core/InterceptorManager.js","webpack://editor/./node_modules/axios/lib/core/buildFullPath.js","webpack://editor/./node_modules/axios/lib/core/createError.js","webpack://editor/./node_modules/axios/lib/core/dispatchRequest.js","webpack://editor/./node_modules/axios/lib/core/enhanceError.js","webpack://editor/./node_modules/axios/lib/core/mergeConfig.js","webpack://editor/./node_modules/axios/lib/core/settle.js","webpack://editor/./node_modules/axios/lib/core/transformData.js","webpack://editor/./node_modules/axios/lib/defaults/index.js","webpack://editor/./node_modules/axios/lib/defaults/transitional.js","webpack://editor/./node_modules/axios/lib/env/data.js","webpack://editor/./node_modules/axios/lib/helpers/bind.js","webpack://editor/./node_modules/axios/lib/helpers/buildURL.js","webpack://editor/./node_modules/axios/lib/helpers/combineURLs.js","webpack://editor/./node_modules/axios/lib/helpers/cookies.js","webpack://editor/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://editor/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://editor/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://editor/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://editor/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://editor/./node_modules/axios/lib/helpers/spread.js","webpack://editor/./node_modules/axios/lib/helpers/validator.js","webpack://editor/./node_modules/axios/lib/utils.js","webpack://editor/./node_modules/base64-js/index.js","webpack://editor/./node_modules/buffer/index.js","webpack://editor/./node_modules/ieee754/index.js","webpack://editor/./node_modules/sax/lib/sax.js","webpack://editor/./node_modules/string_decoder/lib/string_decoder.js","webpack://editor/./node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack://editor/./node_modules/xml-js/lib/array-helper.js","webpack://editor/./node_modules/xml-js/lib/index.js","webpack://editor/./node_modules/xml-js/lib/js2xml.js","webpack://editor/./node_modules/xml-js/lib/json2xml.js","webpack://editor/./node_modules/xml-js/lib/options-helper.js","webpack://editor/./node_modules/xml-js/lib/xml2js.js","webpack://editor/./node_modules/xml-js/lib/xml2json.js","webpack://editor/./node_modules/core-js/internals/a-callable.js","webpack://editor/./node_modules/core-js/internals/a-possible-prototype.js","webpack://editor/./node_modules/core-js/internals/an-instance.js","webpack://editor/./node_modules/core-js/internals/an-object.js","webpack://editor/./node_modules/core-js/internals/array-buffer-native.js","webpack://editor/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://editor/./node_modules/core-js/internals/array-includes.js","webpack://editor/./node_modules/core-js/internals/array-slice.js","webpack://editor/./node_modules/core-js/internals/classof-raw.js","webpack://editor/./node_modules/core-js/internals/classof.js","webpack://editor/./node_modules/core-js/internals/clear-error-stack.js","webpack://editor/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://editor/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://editor/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://editor/./node_modules/core-js/internals/create-property-descriptor.js","webpack://editor/./node_modules/core-js/internals/descriptors.js","webpack://editor/./node_modules/core-js/internals/document-create-element.js","webpack://editor/./node_modules/core-js/internals/dom-exception-constants.js","webpack://editor/./node_modules/core-js/internals/engine-is-ios.js","webpack://editor/./node_modules/core-js/internals/engine-is-node.js","webpack://editor/./node_modules/core-js/internals/engine-user-agent.js","webpack://editor/./node_modules/core-js/internals/engine-v8-version.js","webpack://editor/./node_modules/core-js/internals/enum-bug-keys.js","webpack://editor/./node_modules/core-js/internals/error-stack-installable.js","webpack://editor/./node_modules/core-js/internals/export.js","webpack://editor/./node_modules/core-js/internals/fails.js","webpack://editor/./node_modules/core-js/internals/function-apply.js","webpack://editor/./node_modules/core-js/internals/function-bind-context.js","webpack://editor/./node_modules/core-js/internals/function-bind-native.js","webpack://editor/./node_modules/core-js/internals/function-call.js","webpack://editor/./node_modules/core-js/internals/function-name.js","webpack://editor/./node_modules/core-js/internals/function-uncurry-this.js","webpack://editor/./node_modules/core-js/internals/get-built-in.js","webpack://editor/./node_modules/core-js/internals/get-method.js","webpack://editor/./node_modules/core-js/internals/global.js","webpack://editor/./node_modules/core-js/internals/has-own-property.js","webpack://editor/./node_modules/core-js/internals/hidden-keys.js","webpack://editor/./node_modules/core-js/internals/html.js","webpack://editor/./node_modules/core-js/internals/ie8-dom-define.js","webpack://editor/./node_modules/core-js/internals/indexed-object.js","webpack://editor/./node_modules/core-js/internals/inherit-if-required.js","webpack://editor/./node_modules/core-js/internals/inspect-source.js","webpack://editor/./node_modules/core-js/internals/install-error-cause.js","webpack://editor/./node_modules/core-js/internals/internal-state.js","webpack://editor/./node_modules/core-js/internals/is-callable.js","webpack://editor/./node_modules/core-js/internals/is-forced.js","webpack://editor/./node_modules/core-js/internals/is-object.js","webpack://editor/./node_modules/core-js/internals/is-pure.js","webpack://editor/./node_modules/core-js/internals/is-symbol.js","webpack://editor/./node_modules/core-js/internals/length-of-array-like.js","webpack://editor/./node_modules/core-js/internals/native-symbol.js","webpack://editor/./node_modules/core-js/internals/native-weak-map.js","webpack://editor/./node_modules/core-js/internals/normalize-string-argument.js","webpack://editor/./node_modules/core-js/internals/object-define-property.js","webpack://editor/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://editor/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://editor/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://editor/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://editor/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://editor/./node_modules/core-js/internals/object-keys-internal.js","webpack://editor/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://editor/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://editor/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://editor/./node_modules/core-js/internals/own-keys.js","webpack://editor/./node_modules/core-js/internals/redefine.js","webpack://editor/./node_modules/core-js/internals/require-object-coercible.js","webpack://editor/./node_modules/core-js/internals/set-global.js","webpack://editor/./node_modules/core-js/internals/shared-key.js","webpack://editor/./node_modules/core-js/internals/shared-store.js","webpack://editor/./node_modules/core-js/internals/shared.js","webpack://editor/./node_modules/core-js/internals/task.js","webpack://editor/./node_modules/core-js/internals/to-absolute-index.js","webpack://editor/./node_modules/core-js/internals/to-indexed-object.js","webpack://editor/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://editor/./node_modules/core-js/internals/to-length.js","webpack://editor/./node_modules/core-js/internals/to-object.js","webpack://editor/./node_modules/core-js/internals/to-offset.js","webpack://editor/./node_modules/core-js/internals/to-positive-integer.js","webpack://editor/./node_modules/core-js/internals/to-primitive.js","webpack://editor/./node_modules/core-js/internals/to-property-key.js","webpack://editor/./node_modules/core-js/internals/to-string-tag-support.js","webpack://editor/./node_modules/core-js/internals/to-string.js","webpack://editor/./node_modules/core-js/internals/try-to-string.js","webpack://editor/./node_modules/core-js/internals/uid.js","webpack://editor/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://editor/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://editor/./node_modules/core-js/internals/validate-arguments-length.js","webpack://editor/./node_modules/core-js/internals/well-known-symbol.js","webpack://editor/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://editor/./node_modules/core-js/modules/es.error.cause.js","webpack://editor/./node_modules/core-js/modules/es.typed-array.at.js","webpack://editor/./node_modules/core-js/modules/es.typed-array.set.js","webpack://editor/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://editor/./node_modules/core-js/modules/web.immediate.js","webpack://editor/webpack/bootstrap","webpack://editor/webpack/runtime/compat get default export","webpack://editor/webpack/runtime/define property getters","webpack://editor/webpack/runtime/global","webpack://editor/webpack/runtime/hasOwnProperty shorthand","webpack://editor/./node_modules/vue/dist/vue.esm.js","webpack://editor/./src/App.vue?a90c","webpack://editor/./src/components/EntryDisplay.vue?4f5d","webpack://editor/./src/components/ComponentGeneratorComponent.vue?0ae2","webpack://editor/./src/components/CorpusComponent.vue?23fa","webpack://editor/./src/components/corpusManagers/KontextDisplay.vue?9552","webpack://editor/./src/components/PopupDisplay.vue?d0c2","webpack://editor/src/components/PopupDisplay.vue","webpack://editor/./src/components/PopupDisplay.vue?c056","webpack://editor/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://editor/./src/components/PopupDisplay.vue","webpack://editor/src/components/corpusManagers/KontextDisplay.vue","webpack://editor/./src/components/corpusManagers/KontextDisplay.vue?7215","webpack://editor/./src/components/corpusManagers/KontextDisplay.vue","webpack://editor/./src/components/corpusManagers/SkeDisplay.vue?fb88","webpack://editor/src/components/corpusManagers/SkeDisplay.vue","webpack://editor/./src/components/corpusManagers/SkeDisplay.vue?9265","webpack://editor/./src/components/corpusManagers/SkeDisplay.vue","webpack://editor/src/components/CorpusComponent.vue","webpack://editor/./src/components/CorpusComponent.vue?c9da","webpack://editor/./src/components/CorpusComponent.vue","webpack://editor/./src/shared-resources/mixins/corpusMixin.js","webpack://editor/src/components/ComponentGeneratorComponent.vue","webpack://editor/./src/components/ComponentGeneratorComponent.vue?dce5","webpack://editor/./src/components/ComponentGeneratorComponent.vue","webpack://editor/src/components/EntryDisplay.vue","webpack://editor/./src/components/EntryDisplay.vue?393d","webpack://editor/./src/components/EntryDisplay.vue","webpack://editor/./node_modules/vee-validate/dist/vee-validate.esm.js","webpack://editor/src/App.vue","webpack://editor/./src/App.vue?8b29","webpack://editor/./src/App.vue","webpack://editor/./src/store/index.js","webpack://editor/./src/components/displayTypes/InlineComponent.vue?7391","webpack://editor/./src/components/ActionButtons.vue?6ff3","webpack://editor/./src/shared-resources/mixins/computedElementName.js","webpack://editor/./src/shared-resources/mixins/iconUrl.js","webpack://editor/src/components/ActionButtons.vue","webpack://editor/./src/components/ActionButtons.vue?be42","webpack://editor/./src/components/ActionButtons.vue","webpack://editor/./src/shared-resources/mixins/valueDisplayMixin.js","webpack://editor/./src/shared-resources/mixins/layoutElementMixin.js","webpack://editor/./src/components/SelectElementFromArray.vue?5880","webpack://editor/./src/components/ReadOnlyComponentGenerator.vue?5edd","webpack://editor/src/components/ReadOnlyComponentGenerator.vue","webpack://editor/./src/components/ReadOnlyComponentGenerator.vue?67d9","webpack://editor/./src/components/ReadOnlyComponentGenerator.vue","webpack://editor/src/components/SelectElementFromArray.vue","webpack://editor/./src/components/SelectElementFromArray.vue?3749","webpack://editor/./src/components/SelectElementFromArray.vue","webpack://editor/./src/components/LinkingElementSelector.vue?1cf4","webpack://editor/src/components/LinkingElementSelector.vue","webpack://editor/./src/components/LinkingElementSelector.vue?5ca3","webpack://editor/./src/components/LinkingElementSelector.vue","webpack://editor/src/components/displayTypes/InlineComponent.vue","webpack://editor/./src/components/displayTypes/InlineComponent.vue?0f70","webpack://editor/./src/components/displayTypes/InlineComponent.vue","webpack://editor/./src/components/displayTypes/PopupComponent.vue?d16d","webpack://editor/src/components/displayTypes/PopupComponent.vue","webpack://editor/./src/components/displayTypes/PopupComponent.vue?1f59","webpack://editor/./src/components/displayTypes/PopupComponent.vue","webpack://editor/./src/components/displayTypes/ReadOnlyComponent.vue?06a7","webpack://editor/./src/shared-resources/mixins/showPreview.js","webpack://editor/src/components/displayTypes/ReadOnlyComponent.vue","webpack://editor/./src/components/displayTypes/ReadOnlyComponent.vue?6050","webpack://editor/./src/components/displayTypes/ReadOnlyComponent.vue","webpack://editor/./src/components/displayTypes/DropdownComponent.vue?2b61","webpack://editor/./src/shared-resources/mixins/computedValidation.js","webpack://editor/src/components/displayTypes/DropdownComponent.vue","webpack://editor/./src/components/displayTypes/DropdownComponent.vue?11b5","webpack://editor/./src/components/displayTypes/DropdownComponent.vue","webpack://editor/./src/components/displayTypes/MediaComponent.vue?6d78","webpack://editor/./src/components/ImageSearcher.vue?5346","webpack://editor/./src/components/LoaderComponent.vue?0b19","webpack://editor/src/components/LoaderComponent.vue","webpack://editor/./src/components/LoaderComponent.vue?e91d","webpack://editor/./src/components/LoaderComponent.vue","webpack://editor/src/components/ImageSearcher.vue","webpack://editor/./src/components/ImageSearcher.vue?74d1","webpack://editor/./src/components/ImageSearcher.vue","webpack://editor/src/components/displayTypes/MediaComponent.vue","webpack://editor/./src/components/displayTypes/MediaComponent.vue?eb47","webpack://editor/./src/components/displayTypes/MediaComponent.vue","webpack://editor/./src/components/displayTypes/TextInputComponent.vue?4041","webpack://editor/src/components/displayTypes/TextInputComponent.vue","webpack://editor/./src/components/displayTypes/TextInputComponent.vue?6456","webpack://editor/./src/components/displayTypes/TextInputComponent.vue","webpack://editor/./src/components/displayTypes/TextInputWithMarkupComponent.vue?95a2","webpack://editor/./src/shared-resources/mixins/stylesFromConfig.js","webpack://editor/src/components/displayTypes/TextInputWithMarkupComponent.vue","webpack://editor/./src/components/displayTypes/TextInputWithMarkupComponent.vue?2da4","webpack://editor/./src/components/displayTypes/TextInputWithMarkupComponent.vue","webpack://editor/./src/components/displayTypes/SubentryComponent.vue?8ca4","webpack://editor/src/components/displayTypes/SubentryComponent.vue","webpack://editor/./src/components/displayTypes/SubentryComponent.vue?554e","webpack://editor/./src/components/displayTypes/SubentryComponent.vue","webpack://editor/./src/main.js"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.26.1\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n",";(function (sax) { // wrapper for non-node envs\n sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }\n sax.SAXParser = SAXParser\n sax.SAXStream = SAXStream\n sax.createStream = createStream\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024\n\n var buffers = [\n 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n 'procInstName', 'procInstBody', 'entity', 'attribName',\n 'attribValue', 'cdata', 'script'\n ]\n\n sax.EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n ]\n\n function SAXParser (strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt)\n }\n\n var parser = this\n clearBuffers(parser)\n parser.q = parser.c = ''\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH\n parser.opt = opt || {}\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags\n parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'\n parser.tags = []\n parser.closed = parser.closedRoot = parser.sawRoot = false\n parser.tag = parser.error = null\n parser.strict = !!strict\n parser.noscript = !!(strict || parser.opt.noscript)\n parser.state = S.BEGIN\n parser.strictEntities = parser.opt.strictEntities\n parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)\n parser.attribList = []\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS)\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0\n }\n emit(parser, 'onready')\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F () {}\n F.prototype = o\n var newf = new F()\n return newf\n }\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = []\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i)\n return a\n }\n }\n\n function checkBufferLength (parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)\n var maxActual = 0\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case 'textNode':\n closeText(parser)\n break\n\n case 'cdata':\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n break\n\n case 'script':\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n break\n\n default:\n error(parser, 'Max buffer length exceeded: ' + buffers[i])\n }\n }\n maxActual = Math.max(maxActual, len)\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual\n parser.bufferCheckPosition = m + parser.position\n }\n\n function clearBuffers (parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = ''\n }\n }\n\n function flushBuffers (parser) {\n closeText(parser)\n if (parser.cdata !== '') {\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n }\n if (parser.script !== '') {\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n }\n\n SAXParser.prototype = {\n end: function () { end(this) },\n write: write,\n resume: function () { this.error = null; return this },\n close: function () { return this.write(null) },\n flush: function () { flushBuffers(this) }\n }\n\n var Stream\n try {\n Stream = require('stream').Stream\n } catch (ex) {\n Stream = function () {}\n }\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== 'error' && ev !== 'end'\n })\n\n function createStream (strict, opt) {\n return new SAXStream(strict, opt)\n }\n\n function SAXStream (strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt)\n }\n\n Stream.apply(this)\n\n this._parser = new SAXParser(strict, opt)\n this.writable = true\n this.readable = true\n\n var me = this\n\n this._parser.onend = function () {\n me.emit('end')\n }\n\n this._parser.onerror = function (er) {\n me.emit('error', er)\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null\n }\n\n this._decoder = null\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, 'on' + ev, {\n get: function () {\n return me._parser['on' + ev]\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev)\n me._parser['on' + ev] = h\n return h\n }\n me.on(ev, h)\n },\n enumerable: true,\n configurable: false\n })\n })\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n })\n\n SAXStream.prototype.write = function (data) {\n if (typeof Buffer === 'function' &&\n typeof Buffer.isBuffer === 'function' &&\n Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require('string_decoder').StringDecoder\n this._decoder = new SD('utf8')\n }\n data = this._decoder.write(data)\n }\n\n this._parser.write(data.toString())\n this.emit('data', data)\n return true\n }\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk)\n }\n this._parser.end()\n return true\n }\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this\n if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser['on' + ev] = function () {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)\n args.splice(0, 0, ev)\n me.emit.apply(me, args)\n }\n }\n\n return Stream.prototype.on.call(me, ev, handler)\n }\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = '[CDATA['\n var DOCTYPE = 'DOCTYPE'\n var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'\n var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n function isWhitespace (c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n }\n\n function isQuote (c) {\n return c === '\"' || c === '\\''\n }\n\n function isAttribEnd (c) {\n return c === '>' || isWhitespace(c)\n }\n\n function isMatch (regex, c) {\n return regex.test(c)\n }\n\n function notMatch (regex, c) {\n return !isMatch(regex, c)\n }\n\n var S = 0\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // & and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // \n SCRIPT: S++, // \n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PopupDisplay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PopupDisplay.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./PopupDisplay.vue?vue&type=template&id=aee6e258&scoped=true&\"\nimport script from \"./PopupDisplay.vue?vue&type=script&lang=js&\"\nexport * from \"./PopupDisplay.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PopupDisplay.vue?vue&type=style&index=0&id=aee6e258&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aee6e258\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./KontextDisplay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./KontextDisplay.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KontextDisplay.vue?vue&type=template&id=07c3b036&scoped=true&\"\nimport script from \"./KontextDisplay.vue?vue&type=script&lang=js&\"\nexport * from \"./KontextDisplay.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KontextDisplay.vue?vue&type=style&index=0&id=07c3b036&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"07c3b036\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupDisplay',{attrs:{\"z-index\":\"10\",\"value\":_vm.value,\"hideActions\":true},on:{\"input\":function($event){return _vm.$emit('input', $event)}}},[_c('h2',[_vm._v(\"Sketch Engine:\"+_vm._s(_vm.displayedType)+\" search\")]),_c('div',{staticClass:\"search-box\"},[(_vm.searchType === 'xampl')?_c('div',{staticClass:\"switch type-toggle\"},[_c('label',[_vm._v(\" Headword \"),_c('input',{ref:\"searchTypeToggle\",attrs:{\"type\":\"checkbox\"}}),_c('span',{staticClass:\"lever\"}),_vm._v(\" CQL \")])]):_vm._e(),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"placeholder\":\"Headword\",\"type\":\"text\"},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.searchTerm=$event.target.value}}}),_c('button',{on:{\"click\":function($event){return _vm.getExamples(1)}}},[_vm._v(\"Search\")])]),(!_vm.error)?_c('div',{staticClass:\"examples\"},_vm._l((_vm.examples),function(example,i){return _c('div',{key:example.text + i,staticClass:\"example\",on:{\"click\":function($event){return _vm.toggleCheck(i)}}},[_c('input',{attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":example.checked}}),_c('span',{staticClass:\"text--xs\",staticStyle:{\"font-size\":\"12px\",\"line-height\":\"16px\"},domProps:{\"innerHTML\":_vm._s(example.text)}})])}),0):_c('div',[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")]),_c('div',{staticClass:\"navigation\"},[(_vm.showPreviousButton)?_c('button',{staticClass:\"tertiary\",on:{\"click\":function($event){return _vm.getExamples(_vm.pagination.prevPage)}}},[_vm._v(\"Previous\")]):_vm._e(),(_vm.showNextButton)?_c('button',{staticClass:\"tertiary\",on:{\"click\":function($event){return _vm.getExamples(_vm.pagination.nextPage)}}},[_vm._v(\"Next\")]):_vm._e()]),_c('div',{staticClass:\"actions\"},[_c('button',{on:{\"click\":function($event){return _vm.$emit('input', false)}}},[_vm._v(\"Cancel\")]),_c('button',{attrs:{\"disabled\":!_vm.isAnyExampleChecked},on:{\"click\":_vm.saveSelectedExamples}},[_vm._v(\"Save \"+_vm._s(_vm.examples.filter(function (el) { return el.checked; }).length || \"\")+\" \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SkeDisplay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SkeDisplay.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SkeDisplay.vue?vue&type=template&id=28f93480&scoped=true&\"\nimport script from \"./SkeDisplay.vue?vue&type=script&lang=js&\"\nexport * from \"./SkeDisplay.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SkeDisplay.vue?vue&type=style&index=0&id=28f93480&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28f93480\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CorpusComponent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CorpusComponent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CorpusComponent.vue?vue&type=template&id=3276fe69&scoped=true&\"\nimport script from \"./CorpusComponent.vue?vue&type=script&lang=js&\"\nexport * from \"./CorpusComponent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CorpusComponent.vue?vue&type=style&index=0&id=3276fe69&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3276fe69\",\n null\n \n)\n\nexport default component.exports","export default {\n\n methods: {\n saveFromCorpus(element, data) {\n switch (data.type) {\n case \"kontext\":\n this.saveFromKontext(element, data.elements)\n break\n case \"collx\":\n case \"thes\":\n case \"defo\":\n this.saveSingleWord(element, data.elements)\n break\n case \"xampl\":\n this.saveSkeExamples(element, data.elements)\n break\n }\n },\n saveFromKontext(element, data) {\n for (const elementData of data) {\n let newObject = this.createElementTemplate(element.name)[0]\n let newHeadword = this.createElementTemplate(this.state.entry.dictConfigs.kontext.markup)[0]\n newHeadword.elements = [{type: \"text\", text: elementData.headword}]\n newObject.elements = [\n {type: \"text\", text: elementData.left},\n newHeadword,\n {type: \"text\", text: elementData.right},\n ]\n this.createElement({name: element.name, content: newObject})\n }\n },\n saveSingleWord(element, data) {\n for (const elementData of data) {\n let newObject = this.createElementTemplate(element.name)[0]\n newObject.elements = [\n {type: \"text\", text: elementData.text},\n ]\n this.createElement({name: element.name, content: newObject})\n }\n },\n saveSkeExamples(element, data) {\n for (const elementData of data) {\n let newObject = this.createElementTemplate(element.name)[0]\n let newHeadword = this.createElementTemplate(this.state.entry.dictConfigs.xampl.markup)[0]\n newHeadword.elements = [{type: \"text\", text: elementData.headword}]\n newObject.elements = [\n {type: \"text\", text: elementData.left},\n newHeadword,\n {type: \"text\", text: elementData.right},\n ]\n this.createElement({name: element.name, content: newObject})\n }\n },\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ComponentGeneratorComponent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ComponentGeneratorComponent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ComponentGeneratorComponent.vue?vue&type=template&id=793e780d&scoped=true&\"\nimport script from \"./ComponentGeneratorComponent.vue?vue&type=script&lang=js&\"\nexport * from \"./ComponentGeneratorComponent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ComponentGeneratorComponent.vue?vue&type=style&index=0&id=793e780d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"793e780d\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EntryDisplay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EntryDisplay.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EntryDisplay.vue?vue&type=template&id=30539e3d&scoped=true&\"\nimport script from \"./EntryDisplay.vue?vue&type=script&lang=js&\"\nexport * from \"./EntryDisplay.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30539e3d\",\n null\n \n)\n\nexport default component.exports","/**\n * vee-validate v2.2.15\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, convert to array.\n if (isCallable(obj[eventName])) {\n var prevHandler = obj[eventName];\n obj[eventName] = [prevHandler];\n }\n\n // no listeners, create the array.\n if (isNullOrUndefined(obj[eventName])) {\n obj[eventName] = [];\n }\n\n obj[eventName].push(handler);\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 fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\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 fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی\\s]*$/,\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 fa: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\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 fa: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی_-]*$/,\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.15';\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","\n\n\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=53989925&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var state = {\n entry: {\n entryId: null,\n dictId: null,\n dictConfigs: null,\n userAccess: null,\n userInfo: null,\n userdicts: null,\n editorConfig: null,\n content: {},\n contentHtml: null\n },\n xml2jsConfig: {\n compact: false,\n captureSpacesBetweenElements: true\n },\n _initialContent: null,\n headwordElement: null,\n headwordData: null,\n openedPopups: []\n}\nexport default {\n state: state\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"inline-component\",class:{'read-only': _vm.showElementsPreview, 'element-hidden': !_vm.elementData.shown},style:(_vm.configStyles)},[(_vm.elementData.shown && !_vm.readOnly)?_c('section',{staticClass:\"content\"},[(!_vm.isAttribute)?_c('ActionButtons',{staticClass:\"actions-button\",attrs:{\"elementName\":_vm.elementName,\"elementEditorConfig\":_vm.elementData,\"editorChildNumber\":_vm.editorChildNumber,\"parentElementName\":_vm.parentElementName,\"numberOfElements\":_vm.numberOfElements},on:{\"move-element-down\":_vm.moveElementDown,\"move-element-up\":_vm.moveElementUp,\"add-element\":_vm.createSibling,\"select-new-parent\":_vm.selectNewParent,\"add-link\":_vm.addLink,\"clone-element\":_vm.cloneElement,\"remove-element\":_vm.deleteElement}}):_vm._e(),_c(_vm.valueComponent,{tag:\"component\",staticClass:\"value-display\",class:{'value-display--attribute': _vm.isAttribute},attrs:{\"elementEditorConfig\":_vm.elementData,\"elementName\":_vm.elementName,\"elementData\":_vm.elementData,\"content\":_vm.componentData,\"children\":_vm.children,\"isAttribute\":_vm.isAttribute,\"parentElementName\":_vm.parentElementName,\"showPreview\":_vm.showElementsPreview},on:{\"hide-children\":_vm.hideChildren,\"input\":_vm.handleValueUpdate}})],1):_vm._e(),(!_vm.isElementHidden && _vm.readOnly)?_c('section',{staticClass:\"content\"},[(!_vm.showElementsPreview && !_vm.isAttribute)?_c('ActionButtons',{staticClass:\"actions-button\",attrs:{\"elementName\":_vm.elementName,\"elementEditorConfig\":_vm.elementData,\"editorChildNumber\":_vm.editorChildNumber,\"parentElementName\":_vm.parentElementName,\"numberOfElements\":_vm.numberOfElements,\"disable\":true}}):_vm._e(),_c(_vm.valueComponent,{tag:\"component\",class:{'read-only-element': !_vm.showElementsPreview},attrs:{\"elementEditorConfig\":_vm.elementData,\"elementName\":_vm.elementName,\"elementData\":_vm.elementData,\"content\":_vm.componentData,\"children\":_vm.children,\"isAttribute\":_vm.isAttribute,\"parentElementName\":_vm.parentElementName,\"showPreview\":_vm.showElementsPreview},on:{\"hide-children\":_vm.hideChildren}})],1):_vm._e(),(_vm.valueComponent !== 'TextInputWithMarkupComponent')?_c('ComponentGeneratorComponent',{attrs:{\"children\":_vm.children,\"elementName\":_vm.elementName,\"content\":_vm.calculatedContent,\"showElementsPreview\":_vm.showElementsPreview,\"maxDisplayedChildren\":_vm.maxDisplayedChildren},on:{\"input\":_vm.handleChildUpdate}}):_vm._e(),(_vm.showSelectNewParent)?_c('SelectElementFromArray',{attrs:{\"element-name\":_vm.elementName,\"possible-parent-elements\":_vm.newPossibleParents,\"parentElementName\":_vm.parentElementName},on:{\"selected-element\":_vm.handleSelectedNewParent},model:{value:(_vm.showSelectNewParent),callback:function ($$v) {_vm.showSelectNewParent=$$v},expression:\"showSelectNewParent\"}}):_vm._e(),(_vm.showSelectLinkedElement)?_c('LinkingElementSelector',{attrs:{\"sourceId\":_vm.calculatedContent.attributes && _vm.calculatedContent.attributes['lxnm:linkable'],\"element-name\":_vm.elementName},model:{value:(_vm.showSelectLinkedElement),callback:function ($$v) {_vm.showSelectLinkedElement=$$v},expression:\"showSelectLinkedElement\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isRootElement)?_c('div',{ref:\"actionButton\",staticClass:\"dropdown\"},[_c('button',{staticClass:\"button--sm secondary\",attrs:{\"disabled\":_vm.disable || _vm.numberOfActions === 0},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleDropdown.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],staticClass:\"vue-dropdown-content\"},[(_vm.canMoveElementUp)?_c('button',{staticClass:\"tertiary\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.triggerEvent('move-element-up')}}},[_vm._v(\" Move \"+_vm._s(_vm.computedElementName)+\" \"),_c('img',{attrs:{\"src\":_vm.iconUrl('arrow-up.svg')}})]):_vm._e(),(_vm.canMoveElementDown)?_c('button',{staticClass:\"tertiary\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.triggerEvent('move-element-down')}}},[_vm._v(\" Move \"+_vm._s(_vm.computedElementName)+\" \"),_c('img',{attrs:{\"src\":_vm.iconUrl('arrow-down.svg')}})]):_vm._e(),(_vm.canMoveElementDown || _vm.canMoveElementUp)?_c('div',{staticClass:\"break\"}):_vm._e(),(_vm.canAddElement && !_vm.subentryElement)?_c('button',{staticClass:\"tertiary\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.triggerEvent('add-element')}}},[_vm._v(\" Create new \"+_vm._s(_vm.computedElementName)+\" \")]):_vm._e(),(_vm.canAddElement && _vm.elementEditorConfig.enableCopying)?_c('button',{staticClass:\"tertiary\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.triggerEvent('clone-element')}}},[_vm._v(\" Duplicate \"+_vm._s(_vm.computedElementName)+\" \")]):_vm._e(),(_vm.canAddElement && _vm.subentryElement)?_c('button',{staticClass:\"tertiary\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.triggerEvent('link-element')}}},[_vm._v(\" Add new \"+_vm._s(_vm.computedElementName)+\" subentry \")]):_vm._e(),(_vm.elementEditorConfig.enableParentChange)?_c('button',{staticClass:\"tertiary\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.triggerEvent('select-new-parent')}}},[_vm._v(\" Change parent of \"+_vm._s(_vm.computedElementName)+\" \")]):_vm._e(),(_vm.canAddLink)?_c('button',{staticClass:\"tertiary\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.triggerEvent('add-link')}}},[_vm._v(\" Link to another element \")]):_vm._e(),(_vm.canAddElement && _vm.canRemoveElement)?_c('div',{staticClass:\"break\"}):_vm._e(),(_vm.canRemoveElement)?_c('button',{staticClass:\"tertiary\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.triggerEvent('remove-element')}}},[_vm._v(\" Remove selected \"+_vm._s(_vm.computedElementName)+\" \")]):_vm._e()])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n props: {\n isAttribute: {\n type: Boolean\n },\n parentElementName: {\n type: String\n }\n },\n computed: {\n computedElementNameWithColon() {\n if (!this.computedElementName) {\n return \"\"\n }\n return this.computedElementName + \":\"\n },\n computedElementName() {\n if (this.elementData && this.elementData.hideElementName) {\n return \"\"\n }\n const structureConfig = this.state.entry.dictConfigs.xema.elements\n let name = (structureConfig[this.elementName] && structureConfig[this.elementName].elementName) || this.elementName\n if (this.isAttribute) {\n try {\n let optionality = structureConfig[this.parentElementName].attributes[this.elementName].optionality\n\n if (optionality === \"obligatory\") {\n name += \"*\"\n }\n } catch (e) {\n console.log(\"\", name)\n }\n }\n return name\n }\n }\n}\n","export default {\n methods: {\n iconUrl(fileName) {\n return `${window.location.origin}/img/svg/${fileName}`\n },\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ActionButtons.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ActionButtons.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ActionButtons.vue?vue&type=template&id=d32e8a8a&scoped=true&\"\nimport script from \"./ActionButtons.vue?vue&type=script&lang=js&\"\nexport * from \"./ActionButtons.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ActionButtons.vue?vue&type=style&index=0&id=d32e8a8a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d32e8a8a\",\n null\n \n)\n\nexport default component.exports","\nexport default {\n data() {\n return {\n valueComponent: null\n }\n },\n created() {\n let fillingToComponentMap = {\n \"chd\": \"ReadOnlyComponent\",\n \"emp\": \"ReadOnlyComponent\",\n \"txt\": \"TextInputComponent\",\n \"lst\": \"DropdownComponent\",\n \"med\": \"MediaComponent\",\n \"inl\": \"TextInputWithMarkupComponent\"\n }\n let structureConfig\n if (this.isAttribute) {\n let parentConfig = this.state.entry.dictConfigs.xema.elements[this.parentElementName].attributes || {}\n structureConfig = parentConfig[this.elementName]\n } else {\n structureConfig = this.state.entry.dictConfigs.xema.elements[this.elementName]\n }\n if (structureConfig) {\n let filling = structureConfig.filling\n this.valueComponent = fillingToComponentMap[filling]\n } else {\n console.error(`xema config doesn't exists for: ${this.elementName}`)\n this.valueComponent = \"TextInputComponent\"\n }\n }\n}\n","import valueDisplayMixin from \"@/shared-resources/mixins/valueDisplayMixin\"\nimport {xml2js} from \"xml-js\"\n\nexport default {\n mixins: [\n valueDisplayMixin\n ],\n computed: {\n configStyles() {\n let output = {}\n for (const [style, value] of Object.entries(this.elementData)) {\n switch (style) {\n case \"border\":\n output.border = `1px ${value} #B3D6FF`\n break\n }\n }\n if (this.showElementsPreview) {\n return\n }\n return output\n\n },\n readOnly() {\n return this.elementData.readOnly || this.showElementsPreview\n },\n componentData() {\n if (this.valueComponent === \"TextInputWithMarkupComponent\") {\n return this.calculatedContent.elements\n || []\n }\n if (this.isAttribute) {\n return this.calculatedContent || {type: \"attribute\", name: this.elementName, text: \"\"}\n }\n let textElement = this.calculatedContent.elements && this.calculatedContent.elements.find(element => {\n return element.type === \"text\" && !element.name\n })\n return textElement || {text: \"\", type: \"text\"}\n },\n calculatedContent() {\n return this.updatedContent || this.content\n }\n },\n data() {\n return {\n showChildren: true,\n updatedContent: null,\n isHeadword: false,\n newPossibleParents: [],\n showSelectNewParent: false,\n showSelectLinkedElement: false\n }\n },\n created() {\n if (this.showElementsPreview) {\n return\n }\n if (this.children && this.children.length > 0) {\n this.bus.$on(\"is-parent-to-element\", this.handleIsParentToElement)\n }\n if (this.state.headwordElement === this.elementName) {\n this.isHeadword = true\n this.state.headwordData = this.getHeadwordValue(this.content.elements)\n }\n },\n beforeDestroy() {\n this.bus.$off(\"is-parent-to-element\", this.handleIsParentToElement)\n this.bus.$off('possible-new-parent', this.handlePossibleNewParent)\n this.bus.$off('add-element-to-self', this.addElementToSelf)\n },\n methods: {\n getHeadwordValue(data) {\n if (!data) {\n return \"\"\n }\n try {\n return data.find(el => el.type === \"text\").text\n } catch (e) {\n console.error(e)\n return \"\"\n }\n },\n hideChildren() {\n this.showChildren = false\n },\n createElementTemplate(elementName) {\n return xml2js(`<${elementName}>`, this.state.xml2jsConfig).elements[0]\n },\n handleValueUpdate(data) {\n if (this.isAttribute) {\n this.$emit('input', {elementName: this.elementName, content: data.attributes, isAttribute: true})\n return\n }\n if (this.isHeadword) {\n this.state.headwordData = this.getHeadwordValue(data.elements)\n }\n let content = Object.assign({}, this.calculatedContent)\n if (Object.keys(content).length === 0) {\n content = this.createElementTemplate(this.elementName)\n }\n content.elements = data.elements\n this.$emit('input', {\n elementName: this.elementName,\n editorChildNumber: this.editorChildNumber,\n content: content\n })\n },\n handleChildUpdate(data) {\n let content = {...this.calculatedContent, ...data.content}\n if (!content.type) {\n content.type = \"element\"\n }\n if (!content.name) {\n content.name = this.elementName\n }\n this.$emit('input', {\n elementName: this.elementName,\n editorChildNumber: this.editorChildNumber,\n content: content\n })\n },\n updateContent(newContent) {\n this.updatedContent = newContent\n },\n moveElementDown() {\n this.$emit(\"move-element\", {name: this.elementName, direction: 1, position: this.editorChildNumber})\n },\n moveElementUp() {\n this.$emit(\"move-element\", {name: this.elementName, direction: -1, position: this.editorChildNumber})\n },\n createSibling() {\n this.$emit(\"create-element\", {name: this.elementName})\n },\n deleteElement() {\n this.$emit(\"delete-element\", {name: this.elementName, position: this.editorChildNumber})\n },\n cloneElement() {\n this.$emit(\"clone-element\", {name: this.elementName, content: this.calculatedContent})\n },\n addLink() {\n this.showSelectLinkedElement = true},\n selectNewParent() {\n // Generate list of possible new parents\n\n // let xema = this.state.entry.dictConfigs.xema\n this.newPossibleParents = []\n this.bus.$on('possible-new-parent', this.handlePossibleNewParent)\n this.bus.$emit('is-parent-to-element', {emitEvent: \"possible-new-parent\", elementName: this.elementName})\n setTimeout(() => {\n this.showSelectNewParent = true\n }, 50)\n },\n // ------------ MOVE BETWEEN ELEMENTS ----------------\n handleSelectedNewParent(element) {\n this.bus.$emit('add-element-to-self', {\n name: element.props.elementName,\n editorChildNumber: element.props.content.editorChildNumber,\n content: this.calculatedContent\n })\n this.deleteElement()\n },\n addElementToSelf(data) {\n if (this.elementName === data.name && this.editorChildNumber === data.editorChildNumber) {\n let newContent = Object.assign({}, data.content)\n delete newContent._index\n let content = Object.assign({}, this.calculatedContent)\n if (!content.elements) {\n content.elements = this.createElementTemplate(newContent.name)\n } else if (!content.elements.find(el => {\n return el.name === newContent.name\n })) {\n content.elements.push(newContent)\n this.updatedContent = content\n this.handleChildUpdate({content: content})\n return\n }\n content = this.appendElementAfterSameNameSiblings(newContent.name, content, newContent)\n this.updatedContent = content\n this.handleChildUpdate({content: content})\n }\n this.bus.$off('add-element-to-self', this.addElementToSelf)\n },\n // ------------ EVENT HANDLERS ----------------\n handlePossibleNewParent(data) {\n this.newPossibleParents.push(data.content)\n },\n handleIsParentToElement(data) {\n if (this.children.find(el => el.name === data.elementName)) {\n this.bus.$emit(data.emitEvent, {\n content: {\n ...this.calculatedContent, ...{\n parentName: this.parentElementName,\n editorChildNumber: this.editorChildNumber\n }\n }\n })\n this.bus.$on('add-element-to-self', this.addElementToSelf)\n }\n },\n\n appendElementAfterSameNameSiblings(data, content, newContent) {\n let elements = content.elements || []\n let locationOfLastElement = elements.map(el => el.name).lastIndexOf(data)\n if (locationOfLastElement >= 0) {\n elements.splice(locationOfLastElement + 1, 0, newContent)\n } else {\n elements.push(newContent)\n }\n content.elements = elements\n return content\n }\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupDisplay',{attrs:{\"z-index\":_vm.zIndex,\"value\":_vm.value,\"hideActions\":true},on:{\"input\":function($event){return _vm.$emit('input', $event)}}},[_c('h2',[_vm._v(\"Move selected \"+_vm._s(_vm.computedElementName)+\" to:\")]),_c('div',{staticClass:\"parents\"},[_c('ReadOnlyComponentGenerator',{attrs:{\"children\":_vm.children,\"elementName\":_vm.elementName,\"content\":_vm.possibleParentElements},on:{\"selected-element\":_vm.handleSelectedElement}})],1),_c('div',{staticClass:\"actions\"},[_c('button',{on:{\"click\":function($event){return _vm.$emit('input', false)}}},[_vm._v(\"Cancel\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.renderedChildren),function(element){return _c('section',{key:element.props.key,staticClass:\"component drop-shadow--100\",on:{\"click\":function($event){return _vm.$emit('selected-element', element)}}},[_c(element.componentName,_vm._b({ref:element.props.elementName + element.props.editorChildNumber,refInFor:true,tag:\"component\",class:{'is-attribute': element.props.isAttribute},attrs:{\"showElementsPreview\":true,\"maxDisplayedChildren\":5}},'component',element.props,false))],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReadOnlyComponentGenerator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReadOnlyComponentGenerator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ReadOnlyComponentGenerator.vue?vue&type=template&id=359c9636&scoped=true&\"\nimport script from \"./ReadOnlyComponentGenerator.vue?vue&type=script&lang=js&\"\nexport * from \"./ReadOnlyComponentGenerator.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ReadOnlyComponentGenerator.vue?vue&type=style&index=0&id=359c9636&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"359c9636\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectElementFromArray.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectElementFromArray.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelectElementFromArray.vue?vue&type=template&id=74877dd1&scoped=true&\"\nimport script from \"./SelectElementFromArray.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectElementFromArray.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SelectElementFromArray.vue?vue&type=style&index=0&id=74877dd1&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74877dd1\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupDisplay',{staticClass:\"linking-element-selector\",attrs:{\"z-index\":_vm.zIndex,\"value\":_vm.value,\"saveButtonText\":\"Link\"},on:{\"cancel\":_vm.cancelAddLink,\"save\":_vm.linkToElement}},[_c('h2',[_vm._v(\"Link selected \"+_vm._s(_vm.computedElementName)+\" to:\")]),_c('div',{staticClass:\"popup-header\"},[_c('p',{staticClass:\"text--md\"},[_vm._v(\"Dictionary:\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedDictionary),expression:\"selectedDictionary\"}],attrs:{\"name\":\"dictionary\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedDictionary=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.linkableDicts),function(dict){return _c('option',{key:dict.value,domProps:{\"value\":dict.id,\"selected\":_vm.selectedDictionary === dict.id}},[_vm._v(_vm._s(dict.title)+\" \")])}),0),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"placeholder\":\"Filter\",\"type\":\"text\"},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.searchTerm=$event.target.value}}})]),_c('div',{staticClass:\"links\"},_vm._l((_vm.displayedLinks),function(el,i){return _c('div',{key:i,staticClass:\"link\",class:{'selected': _vm.selectedElement === i},on:{\"click\":function($event){_vm.selectedElement = i}}},[_c('p',[_vm._v(_vm._s(el.element)+\": \"+_vm._s(el.link)+\" (\"+_vm._s(el.preview)+\")\")])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LinkingElementSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LinkingElementSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LinkingElementSelector.vue?vue&type=template&id=0aaf8402&\"\nimport script from \"./LinkingElementSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./LinkingElementSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LinkingElementSelector.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../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","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InlineComponent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InlineComponent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InlineComponent.vue?vue&type=template&id=0559cb9a&scoped=true&\"\nimport script from \"./InlineComponent.vue?vue&type=script&lang=js&\"\nexport * from \"./InlineComponent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InlineComponent.vue?vue&type=style&index=0&id=0559cb9a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0559cb9a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"popup-component\",class:{'element-hidden': !_vm.elementData.shown}},[_c('div',[(_vm.elementData.shown)?_c('section',{staticClass:\"preview drop-shadow--100\",on:{\"click\":_vm.openPopup}},[(!_vm.isAttribute)?_c('ActionButtons',{staticClass:\"actions-button\",attrs:{\"elementName\":_vm.elementName,\"elementEditorConfig\":_vm.elementData,\"editorChildNumber\":_vm.editorChildNumber,\"parentElementName\":_vm.parentElementName,\"numberOfElements\":_vm.numberOfElements},on:{\"move-element-down\":_vm.moveElementDown,\"move-element-up\":_vm.moveElementUp,\"add-element\":_vm.createSibling,\"select-new-parent\":_vm.selectNewParent,\"add-link\":_vm.addLink,\"clone-element\":_vm.cloneElement,\"remove-element\":_vm.deleteElement}}):_vm._e(),_c('section',[_c(_vm.valueComponent,{tag:\"component\",staticClass:\"preview-element text--md\",attrs:{\"elementEditorConfig\":_vm.elementData,\"elementName\":_vm.elementName,\"elementData\":_vm.elementData,\"content\":_vm.componentData,\"isAttribute\":_vm.isAttribute,\"parentElementName\":_vm.parentElementName,\"showElementsPreview\":true},on:{\"hide-children\":_vm.hideChildren}}),(_vm.showChildren)?_c('ComponentGeneratorComponent',{staticClass:\"preview-components\",attrs:{\"children\":_vm.children,\"elementName\":_vm.elementName,\"content\":_vm.viewOnlyContent,\"showElementsPreview\":true,\"hideEmptyElements\":true,\"maxDisplayedChildren\":5}}):_vm._e()],1)],1):_vm._e(),_c('PopupDisplay',{attrs:{\"fullHeight\":false,\"forceButtonClose\":true,\"saveButtonText\":\"Ok\"},on:{\"cancel\":_vm.handleCancel,\"save\":_vm.handleSave},model:{value:(_vm.showPopup),callback:function ($$v) {_vm.showPopup=$$v},expression:\"showPopup\"}},[(_vm.elementData.shown)?_c(_vm.valueComponent,{tag:\"component\",attrs:{\"elementEditorConfig\":_vm.elementData,\"elementName\":_vm.elementName,\"elementData\":_vm.elementData,\"content\":_vm.componentData,\"isAttribute\":_vm.isAttribute,\"parentElementName\":_vm.parentElementName},on:{\"hide-children\":_vm.hideChildren,\"input\":_vm.handleTempValueUpdate}}):_vm._e(),(_vm.showChildren)?_c('ComponentGeneratorComponent',{attrs:{\"children\":_vm.children,\"elementName\":_vm.elementName,\"content\":_vm.calculatedContent},on:{\"input\":_vm.handleTempChildUpdate}}):_vm._e()],1)],1),(_vm.showSelectNewParent)?_c('SelectElementFromArray',{attrs:{\"element-name\":_vm.elementName,\"possible-parent-elements\":_vm.newPossibleParents,\"parentElementName\":_vm.parentElementName},on:{\"selected-element\":_vm.handleSelectedNewParent},model:{value:(_vm.showSelectNewParent),callback:function ($$v) {_vm.showSelectNewParent=$$v},expression:\"showSelectNewParent\"}}):_vm._e(),(_vm.showSelectLinkedElement)?_c('LinkingElementSelector',{attrs:{\"sourceId\":_vm.calculatedContent.attributes && _vm.calculatedContent.attributes['lxnm:linkable'],\"element-name\":_vm.elementName},model:{value:(_vm.showSelectLinkedElement),callback:function ($$v) {_vm.showSelectLinkedElement=$$v},expression:\"showSelectLinkedElement\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PopupComponent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PopupComponent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PopupComponent.vue?vue&type=template&id=f20e1342&scoped=true&\"\nimport script from \"./PopupComponent.vue?vue&type=script&lang=js&\"\nexport * from \"./PopupComponent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PopupComponent.vue?vue&type=style&index=0&id=f20e1342&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f20e1342\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.elementData.shown)?_c('section',[(_vm.showPreview)?_c('p',{class:_vm.computedClass},[_vm._v(_vm._s(_vm.showPreview ? _vm.computedElementNameWithColon : \"\")+\" \")]):_vm._e(),_c('span',{class:_vm.computedClass},[_vm._v(\" \"+_vm._s(_vm.content.text))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n props: {\n showPreview: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n computedClass() {\n return (this.showPreview) ? \"text--xs\" : \"text--md\"\n },\n readOnly() {\n return this.elementData.readOnly || this.showPreview\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReadOnlyComponent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReadOnlyComponent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ReadOnlyComponent.vue?vue&type=template&id=1799e42c&scoped=true&\"\nimport script from \"./ReadOnlyComponent.vue?vue&type=script&lang=js&\"\nexport * from \"./ReadOnlyComponent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ReadOnlyComponent.vue?vue&type=style&index=0&id=1799e42c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1799e42c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.elementData.shown && !_vm.readOnly)?_c('section',{staticClass:\"dropdown\",class:{'error': _vm.errors.has(_vm.computedElementName)}},[_c('p',{staticClass:\"text--md\"},[_vm._v(_vm._s((_vm.isAttribute) ? _vm.computedElementNameWithColon : ''))]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"},{name:\"validate\",rawName:\"v-validate.continues\",value:(_vm.computedValidation),expression:\"computedValidation\",modifiers:{\"continues\":true}}],attrs:{\"name\":_vm.computedElementName || _vm.elementName},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.value=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"\",\"disabled\":\"\",\"selected\":\"\"}},[_vm._v(\" Choose \"+_vm._s(this.computedElementName || _vm.elementName)+\" \")]),_vm._l((_vm.options),function(option){return _c('option',{key:option.value,domProps:{\"value\":option.value}},[_vm._v(_vm._s(option.caption))])})],2)]):_vm._e(),(_vm.elementData.shown && _vm.readOnly)?_c('section',{staticClass:\"read-only\"},[(_vm.showPreview)?_c('p',{class:_vm.computedClass},[_vm._v(_vm._s(_vm.computedElementNameWithColon)+\" \")]):_vm._e(),_c('span',{class:_vm.computedClass},[_vm._v(_vm._s(_vm.valueCaption))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n props: {\n isAttribute: {\n type: Boolean\n },\n parentElementName: {\n type: String\n }\n },\n computed: {\n computedValidation() {\n if (!this.parentElementName) {\n return null\n }\n if (this.isAttribute) {\n let attributeXema = this.state.entry.dictConfigs.xema.elements[this.parentElementName].attributes[this.elementName]\n if (attributeXema.optionality === \"obligatory\") {\n if (attributeXema.filling === \"lst\") {\n return {requiredDropdown: true}\n } else {\n return {required: true}\n }\n }\n }\n return null\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DropdownComponent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DropdownComponent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DropdownComponent.vue?vue&type=template&id=32f9c737&scoped=true&\"\nimport script from \"./DropdownComponent.vue?vue&type=script&lang=js&\"\nexport * from \"./DropdownComponent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DropdownComponent.vue?vue&type=style&index=0&id=32f9c737&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32f9c737\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.elementData.shown && !_vm.readOnly)?_c('section',{staticClass:\"media-input\"},[(_vm.isAttribute)?_c('label',{staticClass:\"text--md\",attrs:{\"for\":_vm.computedElementName}},[_vm._v(_vm._s(_vm.computedElementNameWithColon))]):_vm._e(),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],attrs:{\"name\":_vm.computedElementName,\"type\":\"text\"},domProps:{\"value\":(_vm.value)},on:{\"change\":_vm.updateParent,\"input\":function($event){if($event.target.composing){ return; }_vm.value=$event.target.value}}}),_c('button',{staticClass:\"button--sm secondary\",staticStyle:{\"margin-left\":\"8px\"},on:{\"click\":function($event){return _vm.$refs.imageSearcher.toggleOpen()}}},[_c('img',{attrs:{\"src\":_vm.iconUrl('search-image.svg')}})])]):_vm._e(),(_vm.elementData.shown && !_vm.readOnly)?_c('ImageSearcher',{ref:\"imageSearcher\",on:{\"selected\":_vm.updateValue}}):_vm._e(),(_vm.elementData.shown && _vm.readOnly)?_c('section',{staticClass:\"read-only\"},[(_vm.showPreview)?_c('p',{class:_vm.computedClass},[_vm._v(_vm._s(_vm.computedElementNameWithColon)+\" \")]):_vm._e(),_c('span',{class:_vm.computedClass},[_vm._v(_vm._s(_vm.value))])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],staticClass:\"popup\"},[_c('div',{ref:\"wrapper\",staticClass:\"modal\",on:{\"click\":_vm.maybeClosePopup}},[_c('div',{ref:\"modalContent\",staticClass:\"modal-content\"},[_c('span',{staticClass:\"close\",on:{\"click\":_vm.close}},[_vm._v(\"×\")]),_c('div',{staticClass:\"search-box\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],attrs:{\"type\":\"text\",\"placeholder\":\"Search images for\"},domProps:{\"value\":(_vm.searchTerm)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.searchTerm=$event.target.value}}}),_c('button',{on:{\"click\":function($event){return _vm.getImages()}}},[_vm._v(\"Search\")])]),_c('div',{staticClass:\"image-carousel\"},[_vm._l((_vm.images),function(image,i){return _c('div',{key:i,staticClass:\"image-holder\"},[_c('img',{attrs:{\"src\":image.thumb},on:{\"click\":function($event){return _vm.selectImage(image.url)}}})])}),(_vm.errorMessage)?_c('p',[_vm._v(_vm._s(_vm.errorMessage))]):_vm._e(),_c('div',{staticClass:\"loader-wrapper\"},[(_vm.gettingImagesInProcess)?_c('LoaderComponent'):_vm._e()],1)],2)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loader\"},[_vm._v(\".\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoaderComponent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoaderComponent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoaderComponent.vue?vue&type=template&id=08de508f&scoped=true&\"\nimport script from \"./LoaderComponent.vue?vue&type=script&lang=js&\"\nexport * from \"./LoaderComponent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoaderComponent.vue?vue&type=style&index=0&id=08de508f&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"08de508f\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ImageSearcher.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ImageSearcher.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ImageSearcher.vue?vue&type=template&id=dc8502c0&scoped=true&\"\nimport script from \"./ImageSearcher.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageSearcher.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ImageSearcher.vue?vue&type=style&index=0&id=dc8502c0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dc8502c0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaComponent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaComponent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MediaComponent.vue?vue&type=template&id=40013471&scoped=true&\"\nimport script from \"./MediaComponent.vue?vue&type=script&lang=js&\"\nexport * from \"./MediaComponent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MediaComponent.vue?vue&type=style&index=0&id=40013471&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40013471\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.elementData.shown && !_vm.readOnly)?_c('section',{staticClass:\"text-input\"},[(_vm.isAttribute)?_c('label',{staticClass:\"text--md\",attrs:{\"for\":_vm.computedElementName}},[_vm._v(_vm._s(_vm.computedElementNameWithColon))]):_vm._e(),(this.elementData.editorInputType === 'textarea')?_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"},{name:\"validate\",rawName:\"v-validate.continues\",value:(_vm.computedValidation),expression:\"computedValidation\",modifiers:{\"continues\":true}}],class:{'error': _vm.errors.has(_vm.computedElementName || _vm.elementName)},attrs:{\"name\":_vm.computedElementName || _vm.elementName,\"cols\":\"30\",\"rows\":\"10\",\"placeholder\":(_vm.errors && _vm.errors.first(_vm.computedElementName || _vm.elementName)) || _vm.computedElementName || _vm.elementName},domProps:{\"value\":(_vm.value)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.value=$event.target.value}}}):((_vm.getInputType())==='checkbox')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"},{name:\"validate\",rawName:\"v-validate.continues\",value:(_vm.computedValidation),expression:\"computedValidation\",modifiers:{\"continues\":true}}],class:{'error': _vm.errors.has(_vm.computedElementName || _vm.elementName)},attrs:{\"name\":_vm.computedElementName || _vm.elementName,\"placeholder\":(_vm.errors && _vm.errors.first(_vm.computedElementName || _vm.elementName)) || _vm.computedElementName || _vm.elementName,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.value)?_vm._i(_vm.value,null)>-1:(_vm.value)},on:{\"change\":[function($event){var $$a=_vm.value,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.value=$$a.concat([$$v]))}else{$$i>-1&&(_vm.value=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.value=$$c}},_vm.updateParent]}}):((_vm.getInputType())==='radio')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"},{name:\"validate\",rawName:\"v-validate.continues\",value:(_vm.computedValidation),expression:\"computedValidation\",modifiers:{\"continues\":true}}],class:{'error': _vm.errors.has(_vm.computedElementName || _vm.elementName)},attrs:{\"name\":_vm.computedElementName || _vm.elementName,\"placeholder\":(_vm.errors && _vm.errors.first(_vm.computedElementName || _vm.elementName)) || _vm.computedElementName || _vm.elementName,\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.value,null)},on:{\"change\":[function($event){_vm.value=null},_vm.updateParent]}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"},{name:\"validate\",rawName:\"v-validate.continues\",value:(_vm.computedValidation),expression:\"computedValidation\",modifiers:{\"continues\":true}}],class:{'error': _vm.errors.has(_vm.computedElementName || _vm.elementName)},attrs:{\"name\":_vm.computedElementName || _vm.elementName,\"placeholder\":(_vm.errors && _vm.errors.first(_vm.computedElementName || _vm.elementName)) || _vm.computedElementName || _vm.elementName,\"type\":_vm.getInputType()},domProps:{\"value\":(_vm.value)},on:{\"change\":_vm.updateParent,\"input\":function($event){if($event.target.composing){ return; }_vm.value=$event.target.value}}}),(_vm.elementData.interactivity)?_c('button',{staticClass:\"button--sm tertiary\",staticStyle:{\"margin-left\":\"8px\"},on:{\"click\":_vm.previewValue}},[_vm._v(\"Preview \")]):_vm._e()]):_vm._e(),(_vm.elementData.shown && _vm.readOnly)?_c('section',{staticClass:\"read-only\"},[(_vm.showPreview)?_c('p',{class:_vm.computedClass},[_vm._v(_vm._s(_vm.computedElementNameWithColon)+\" \")]):_vm._e(),_c('span',{class:_vm.computedClass},[_vm._v(_vm._s(_vm.value))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","