@muflih_kh/profile-ui 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"profile-ui.es.js","sources":["../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../__vite-browser-external","../node_modules/dotenv/lib/main.js","../src/api/profileApi.js","../node_modules/sweetalert2/dist/sweetalert2.esm.all.js","../src/utils/toast.js","../src/components/SgFileUploader.vue","../src/components/ImageCropModal.vue","../src/components/ProfileHeader.vue","../node_modules/date-format-parse/es/util.js","../node_modules/date-format-parse/es/locale/en.js","../node_modules/date-format-parse/es/format.js","../node_modules/date-format-parse/es/parse.js","../node_modules/vue2-datepicker/index.esm.js","../node_modules/vue-select/dist/vue-select.js","../src/components/PersonalDataEditModal.vue","../src/components/ProfilePersonalData.vue","../src/components/OtpModal.vue","../src/components/ProfileVerification.vue","../src/components/EducationModal.vue","../src/components/ProfileEducation.vue","../src/components/ParentModal.vue","../src/components/ProfileParents.vue","../src/components/PreviewModal.vue","../src/components/Profile.vue","../src/index.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\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 && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let 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 {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\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 *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\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 (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\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 *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && 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 *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n 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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\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}\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 * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\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 */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n 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 *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\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 *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\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 *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\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\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\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 env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\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 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\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} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\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 *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\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 *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" 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\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 *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\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 *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\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 *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, 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(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const 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 withXSRFToken: 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 beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)\n };\n\n utils.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\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\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, 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 const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n 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(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\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 (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : 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 const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n * \n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n * \n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n * \n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n * \n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object<string, Function|Object>}\n */\n adapters: knownAdapters\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\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 *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\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 config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\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 config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.13.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\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 *\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 (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\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\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(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 {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _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 const {transitional, paramsSerializer, headers} = config;\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 if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let 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 const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\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,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(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, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n 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\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\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 *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\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\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","export default {}","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\n// Array of tips to display randomly\nconst TIPS = [\n '🔐 encrypt with Dotenvx: https://dotenvx.com',\n '🔐 prevent committing .env to code: https://dotenvx.com/precommit',\n '🔐 prevent building .env in docker: https://dotenvx.com/prebuild',\n '📡 add observability to secrets: https://dotenvx.com/ops',\n '👥 sync secrets across teammates & machines: https://dotenvx.com/ops',\n '🗂️ backup and recover secrets: https://dotenvx.com/ops',\n '✅ audit secrets and track compliance: https://dotenvx.com/ops',\n '🔄 add secrets lifecycle management: https://dotenvx.com/ops',\n '🔑 add access controls to secrets: https://dotenvx.com/ops',\n '🛠️ run anywhere with `dotenvx run -- yourcommand`',\n '⚙️ specify custom .env file path with { path: \\'/custom/path/.env\\' }',\n '⚙️ enable debug logging with { debug: true }',\n '⚙️ override existing env vars with { override: true }',\n '⚙️ suppress all logs with { quiet: true }',\n '⚙️ write to custom object with { processEnv: myObject }',\n '⚙️ load multiple .env files with { path: [\\'.env.local\\', \\'.env\\'] }'\n]\n\n// Get a random tip from the tips array\nfunction _getRandomTip () {\n return TIPS[Math.floor(Math.random() * TIPS.length)]\n}\n\nfunction parseBoolean (value) {\n if (typeof value === 'string') {\n return !['false', '0', 'no', 'off', ''].includes(value.toLowerCase())\n }\n return Boolean(value)\n}\n\nfunction supportsAnsi () {\n return process.stdout.isTTY // && process.env.TERM !== 'dumb'\n}\n\nfunction dim (text) {\n return supportsAnsi() ? `\\x1b[2m${text}\\x1b[0m` : text\n}\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _parseVault (options) {\n options = options || {}\n\n const vaultPath = _vaultPath(options)\n options.path = vaultPath // parse .env.vault\n const result = DotenvModule.configDotenv(options)\n if (!result.parsed) {\n const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n err.code = 'MISSING_DATA'\n throw err\n }\n\n // handle scenario for comma separated keys - for use with key rotation\n // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n const keys = _dotenvKey(options).split(',')\n const length = keys.length\n\n let decrypted\n for (let i = 0; i < length; i++) {\n try {\n // Get full key\n const key = keys[i].trim()\n\n // Get instructions for decrypt\n const attrs = _instructions(result, key)\n\n // Decrypt\n decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n break\n } catch (error) {\n // last key\n if (i + 1 >= length) {\n throw error\n }\n // try next key\n }\n }\n\n // Parse decrypted .env string\n return DotenvModule.parse(decrypted)\n}\n\nfunction _warn (message) {\n console.error(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _log (message) {\n console.log(`[dotenv@${version}] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n // prioritize developer directly setting options.DOTENV_KEY\n if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n return options.DOTENV_KEY\n }\n\n // secondary infra already contains a DOTENV_KEY environment variable\n if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n return process.env.DOTENV_KEY\n }\n\n // fallback to empty string\n return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n // Parse DOTENV_KEY. Format is a URI\n let uri\n try {\n uri = new URL(dotenvKey)\n } catch (error) {\n if (error.code === 'ERR_INVALID_URL') {\n const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n throw error\n }\n\n // Get decrypt key\n const key = uri.password\n if (!key) {\n const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get environment\n const environment = uri.searchParams.get('environment')\n if (!environment) {\n const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get ciphertext payload\n const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n if (!ciphertext) {\n const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n throw err\n }\n\n return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n let possibleVaultPath = null\n\n if (options && options.path && options.path.length > 0) {\n if (Array.isArray(options.path)) {\n for (const filepath of options.path) {\n if (fs.existsSync(filepath)) {\n possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n }\n }\n } else {\n possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n }\n } else {\n possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n }\n\n if (fs.existsSync(possibleVaultPath)) {\n return possibleVaultPath\n }\n\n return null\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n const debug = parseBoolean(process.env.DOTENV_CONFIG_DEBUG || (options && options.debug))\n const quiet = parseBoolean(process.env.DOTENV_CONFIG_QUIET || (options && options.quiet))\n\n if (debug || !quiet) {\n _log('Loading env from encrypted .env.vault')\n }\n\n const parsed = DotenvModule._parseVault(options)\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsed, options)\n\n return { parsed }\n}\n\nfunction configDotenv (options) {\n const dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n let debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || (options && options.debug))\n let quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || (options && options.quiet))\n\n if (options && options.encoding) {\n encoding = options.encoding\n } else {\n if (debug) {\n _debug('No encoding is specified. UTF-8 is used by default')\n }\n }\n\n let optionPaths = [dotenvPath] // default, look for .env\n if (options && options.path) {\n if (!Array.isArray(options.path)) {\n optionPaths = [_resolveHome(options.path)]\n } else {\n optionPaths = [] // reset default\n for (const filepath of options.path) {\n optionPaths.push(_resolveHome(filepath))\n }\n }\n }\n\n // Build the parsed data in a temporary object (because we need to return it). Once we have the final\n // parsed data, we will combine it with process.env (or options.processEnv if provided).\n let lastError\n const parsedAll = {}\n for (const path of optionPaths) {\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n DotenvModule.populate(parsedAll, parsed, options)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${path} ${e.message}`)\n }\n lastError = e\n }\n }\n\n const populated = DotenvModule.populate(processEnv, parsedAll, options)\n\n // handle user settings DOTENV_CONFIG_ options inside .env file(s)\n debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || debug)\n quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || quiet)\n\n if (debug || !quiet) {\n const keysCount = Object.keys(populated).length\n const shortPaths = []\n for (const filePath of optionPaths) {\n try {\n const relative = path.relative(process.cwd(), filePath)\n shortPaths.push(relative)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${filePath} ${e.message}`)\n }\n lastError = e\n }\n }\n\n _log(`injecting env (${keysCount}) from ${shortPaths.join(',')} ${dim(`-- tip: ${_getRandomTip()}`)}`)\n }\n\n if (lastError) {\n return { parsed: parsedAll, error: lastError }\n } else {\n return { parsed: parsedAll }\n }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n // fallback to original dotenv if DOTENV_KEY is not set\n if (_dotenvKey(options).length === 0) {\n return DotenvModule.configDotenv(options)\n }\n\n const vaultPath = _vaultPath(options)\n\n // dotenvKey exists but .env.vault file does not exist\n if (!vaultPath) {\n _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n return DotenvModule.configDotenv(options)\n }\n\n return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n const key = Buffer.from(keyStr.slice(-64), 'hex')\n let ciphertext = Buffer.from(encrypted, 'base64')\n\n const nonce = ciphertext.subarray(0, 12)\n const authTag = ciphertext.subarray(-16)\n ciphertext = ciphertext.subarray(12, -16)\n\n try {\n const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n aesgcm.setAuthTag(authTag)\n return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n } catch (error) {\n const isRange = error instanceof RangeError\n const invalidKeyLength = error.message === 'Invalid key length'\n const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n if (isRange || invalidKeyLength) {\n const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n } else if (decryptionFailed) {\n const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n err.code = 'DECRYPTION_FAILED'\n throw err\n } else {\n throw error\n }\n }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n const populated = {}\n\n if (typeof parsed !== 'object') {\n const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n err.code = 'OBJECT_REQUIRED'\n throw err\n }\n\n // Set process.env\n for (const key of Object.keys(parsed)) {\n if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n if (override === true) {\n processEnv[key] = parsed[key]\n populated[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _debug(`\"${key}\" is already defined and WAS overwritten`)\n } else {\n _debug(`\"${key}\" is already defined and was NOT overwritten`)\n }\n }\n } else {\n processEnv[key] = parsed[key]\n populated[key] = parsed[key]\n }\n }\n\n return populated\n}\n\nconst DotenvModule = {\n configDotenv,\n _configVault,\n _parseVault,\n config,\n decrypt,\n parse,\n populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","import axios from 'axios';\nimport dotenv from 'dotenv';\n\ndotenv.config();\n\nconst API_BASE_URL = process.env.API_URL || '';\nconst profileApi = `${API_BASE_URL}/api/v1/auth/me`;\nconst changePasswordApi = `${API_BASE_URL}/api/v1/auth/change-password`;\nconst checkAgeApi = `${API_BASE_URL}/api/v1/check-age`;\nconst educationsApi = `${API_BASE_URL}/api/v1/educations/me`;\nconst parentsApi = `${API_BASE_URL}/api/v1/parents/me`;\nconst locationsApi = `${API_BASE_URL}/api/v1/locations`;\nconst existingTemplateApi = `${API_BASE_URL}/api/v1/existing-template`;\nconst authVerifyEmailSendApi = `${API_BASE_URL}/api/v1/auth/verify/email/send`;\nconst authVerifyPhoneSendApi = `${API_BASE_URL}/api/v1/auth/verify/phone/send`;\n\nexport function setApiBaseUrl(url) {\n API_BASE_URL = url || '';\n}\n\naxios.interceptors.request.use((request) => {\n request.baseURL = API_BASE_URL;\n\n const token = localStorage.getItem(\"__putm_ptb.token\")\n if (token && token != \"undefined\") {\n request.headers.Authorization = `Bearer ${token}`\n }\n\n // const locale = store.getters['lang/locale']\n // if (locale) {\n // request.headers.common['Accept-Language'] = locale\n // }\n\n return request\n})\n\n// AUTH\nexport const getProfile = () => axios.get(profileApi);\nexport const updateProfile = (updatedData) => axios.put(profileApi, updatedData);\nexport const changePassword = (passwordForm) => axios.put(changePasswordApi, passwordForm);\nexport const checkAge = (birthDate) => axios.get(`${checkAgeApi}/${birthDate}`);\n\n// EDUCATION\nexport const getEducations = () => axios.get(educationsApi);\nexport const addEducation = (formData) => axios.post(educationsApi, formData);\n\n// PARENT\nexport const getParents = () => axios.get(parentsApi);\nexport const getParentByStatus = (familyStatus) => axios.get(`${parentsApi}/${familyStatus}`);\nexport const addOrUpdateParent = (familyStatus, formData) => axios.post(`${parentsApi}/${familyStatus}`, formData);\n\n// FILE UPLOAD\nexport const uploadFile = (endpoint, formData, wordOnly, fileName) =>\n axios.post(`${endpoint}?word_only=${wordOnly}&file_name=${fileName}`, formData, {\n headers: { 'Content-Type': 'multipart/form-data' }\n });\nexport const downloadTemplate = (templateType) => axios.get(`${existingTemplateApi}/${templateType}`);\n\n// LOCATIONS\nexport const getLocations = () => axios.get(locationsApi);\n\n// OTP\nexport const sendEmailOtp = (email) => axios.post(authVerifyEmailSendApi, { data: email });\nexport const sendPhoneOtp = (phone) => axios.post(authVerifyPhoneSendApi, { data: phone });\n","/*!\n* sweetalert2 v11.26.17\n* Released under the MIT License.\n*/\nfunction _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}\nfunction _checkPrivateRedeclaration(e, t) {\n if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n}\nfunction _classPrivateFieldGet2(s, a) {\n return s.get(_assertClassBrand(s, a));\n}\nfunction _classPrivateFieldInitSpec(e, t, a) {\n _checkPrivateRedeclaration(e, t), t.set(e, a);\n}\nfunction _classPrivateFieldSet2(s, a, r) {\n return s.set(_assertClassBrand(s, a), r), r;\n}\n\nconst RESTORE_FOCUS_TIMEOUT = 100;\n\n/** @type {GlobalState} */\nconst globalState = {};\nconst focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n};\n\n/**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise<void>}\n */\nconst restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n};\n\nconst swalPrefix = 'swal2-';\n\n/**\n * @typedef {Record<SwalClass, string>} SwalClasses\n */\n\n/**\n * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n * @typedef {Record<SwalIcon, string>} SwalIcons\n */\n\n/** @type {SwalClass[]} */\nconst classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'draggable', 'dragging'];\nconst swalClasses = classNames.reduce((acc, className) => {\n acc[className] = swalPrefix + className;\n return acc;\n}, /** @type {SwalClasses} */{});\n\n/** @type {SwalIcon[]} */\nconst icons = ['success', 'warning', 'info', 'question', 'error'];\nconst iconTypes = icons.reduce((acc, icon) => {\n acc[icon] = swalPrefix + icon;\n return acc;\n}, /** @type {SwalIcons} */{});\n\nconst consolePrefix = 'SweetAlert2:';\n\n/**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\nconst capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n\n/**\n * Standardize console warnings\n *\n * @param {string | string[]} message\n */\nconst warn = message => {\n console.warn(`${consolePrefix} ${typeof message === 'object' ? message.join(' ') : message}`);\n};\n\n/**\n * Standardize console errors\n *\n * @param {string} message\n */\nconst error = message => {\n console.error(`${consolePrefix} ${message}`);\n};\n\n/**\n * Private global state for `warnOnce`\n *\n * @type {string[]}\n * @private\n */\nconst previousWarnOnceMessages = [];\n\n/**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\nconst warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n};\n\n/**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string?} useInstead\n */\nconst warnAboutDeprecation = (deprecatedParam, useInstead = null) => {\n warnOnce(`\"${deprecatedParam}\" is deprecated and will be removed in the next major release.${useInstead ? ` Use \"${useInstead}\" instead.` : ''}`);\n};\n\n/**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {(() => *) | *} arg\n * @returns {*}\n */\nconst callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n\n/**\n * @param {*} arg\n * @returns {boolean}\n */\nconst hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n\n/**\n * @param {*} arg\n * @returns {Promise<*>}\n */\nconst asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n\n/**\n * @param {*} arg\n * @returns {boolean}\n */\nconst isPromise = arg => arg && Promise.resolve(arg) === arg;\n\n/**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\nconst getContainer = () => document.body.querySelector(`.${swalClasses.container}`);\n\n/**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\nconst elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n};\n\n/**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\nconst elementByClass = className => {\n return elementBySelector(`.${className}`);\n};\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getPopup = () => elementByClass(swalClasses.popup);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getIcon = () => elementByClass(swalClasses.icon);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getIconContent = () => elementByClass(swalClasses['icon-content']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getTitle = () => elementByClass(swalClasses.title);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getImage = () => elementByClass(swalClasses.image);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n\n/**\n * @returns {HTMLButtonElement | null}\n */\nconst getConfirmButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`));\n\n/**\n * @returns {HTMLButtonElement | null}\n */\nconst getCancelButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`));\n\n/**\n * @returns {HTMLButtonElement | null}\n */\nconst getDenyButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.deny}`));\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getInputLabel = () => elementByClass(swalClasses['input-label']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getLoader = () => elementBySelector(`.${swalClasses.loader}`);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getActions = () => elementByClass(swalClasses.actions);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getFooter = () => elementByClass(swalClasses.footer);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getCloseButton = () => elementByClass(swalClasses.close);\n\n// https://github.com/jkup/focusable/blob/master/index.js\nconst focusable = `\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n`;\n/**\n * @returns {HTMLElement[]}\n */\nconst getFocusableElements = () => {\n const popup = getPopup();\n if (!popup) {\n return [];\n }\n /** @type {NodeListOf<HTMLElement>} */\n const focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n const focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n const tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n\n /** @type {NodeListOf<HTMLElement>} */\n const otherFocusableElements = popup.querySelectorAll(focusable);\n const otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(el => el.getAttribute('tabindex') !== '-1');\n return [...new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))].filter(el => isVisible$1(el));\n};\n\n/**\n * @returns {boolean}\n */\nconst isModal = () => {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n};\n\n/**\n * @returns {boolean}\n */\nconst isToast = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return hasClass(popup, swalClasses.toast);\n};\n\n/**\n * @returns {boolean}\n */\nconst isLoading = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return popup.hasAttribute('data-loading');\n};\n\n/**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\nconst setInnerHtml = (elem, html) => {\n elem.textContent = '';\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, `text/html`);\n const head = parsed.querySelector('head');\n if (head) {\n Array.from(head.childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n const body = parsed.querySelector('body');\n if (body) {\n Array.from(body.childNodes).forEach(child => {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n }\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\nconst hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n const classList = className.split(/\\s+/);\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\nconst removeCustomClasses = (elem, params) => {\n Array.from(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n elem.classList.remove(className);\n }\n });\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\nconst applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n if (!params.customClass) {\n return;\n }\n const customClass = params.customClass[(/** @type {keyof SweetAlertCustomClass} */className)];\n if (!customClass) {\n return;\n }\n if (typeof customClass !== 'string' && !customClass.forEach) {\n warn(`Invalid type of customClass.${className}! Expected string or iterable object, got \"${typeof customClass}\"`);\n return;\n }\n addClass(elem, customClass);\n};\n\n/**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n * @returns {HTMLInputElement | null}\n */\nconst getInput$1 = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses[inputClass]}`);\n case 'checkbox':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.checkbox} input`);\n case 'radio':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:checked`) || popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:first-child`);\n case 'range':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.range} input`);\n default:\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.input}`);\n }\n};\n\n/**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\nconst focusInput = input => {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n};\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n * @param {boolean} condition\n */\nconst toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n if (condition) {\n elem.classList.add(className);\n } else {\n elem.classList.remove(className);\n }\n });\n } else {\n if (condition) {\n target.classList.add(className);\n } else {\n target.classList.remove(className);\n }\n }\n });\n};\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\nconst addClass = (target, classList) => {\n toggleClass(target, classList, true);\n};\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\nconst removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n};\n\n/**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\nconst getDirectChildByClass = (elem, className) => {\n const children = Array.from(elem.children);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {string | number | null | undefined} value\n */\nconst applyNumericalStyle = (elem, property, value) => {\n if (value === `${parseInt(`${value}`)}`) {\n value = parseInt(value);\n }\n if (value || parseInt(`${value}`) === 0) {\n elem.style.setProperty(property, typeof value === 'number' ? `${value}px` : (/** @type {string} */value));\n } else {\n elem.style.removeProperty(property);\n }\n};\n\n/**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\nconst show = (elem, display = 'flex') => {\n if (!elem) {\n return;\n }\n elem.style.display = display;\n};\n\n/**\n * @param {HTMLElement | null} elem\n */\nconst hide = elem => {\n if (!elem) {\n return;\n }\n elem.style.display = 'none';\n};\n\n/**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\nconst showWhenInnerHtmlPresent = (elem, display = 'block') => {\n if (!elem) {\n return;\n }\n new MutationObserver(() => {\n toggle(elem, elem.innerHTML, display);\n }).observe(elem, {\n childList: true,\n subtree: true\n });\n};\n\n/**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\nconst setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement | null} */\n const el = parent.querySelector(selector);\n if (el) {\n el.style.setProperty(property, value);\n }\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {boolean | string | null | undefined} condition\n * @param {string} display\n */\nconst toggle = (elem, condition, display = 'flex') => {\n if (condition) {\n show(elem, display);\n } else {\n hide(elem);\n }\n};\n\n/**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement | null} elem\n * @returns {boolean}\n */\nconst isVisible$1 = elem => Boolean(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n\n/**\n * @returns {boolean}\n */\nconst allButtonsAreHidden = () => !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n\n/**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\nconst isScrollable = elem => Boolean(elem.scrollHeight > elem.clientHeight);\n\n/**\n * @param {HTMLElement} element\n * @param {HTMLElement} stopElement\n * @returns {boolean}\n */\nconst selfOrParentIsScrollable = (element, stopElement) => {\n let parent = /** @type {HTMLElement | null} */element;\n while (parent && parent !== stopElement) {\n if (isScrollable(parent)) {\n return true;\n }\n parent = parent.parentElement;\n }\n return false;\n};\n\n/**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\nconst hasCssAnimation = elem => {\n const style = window.getComputedStyle(elem);\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n};\n\n/**\n * @param {number} timer\n * @param {boolean} reset\n */\nconst animateTimerProgressBar = (timer, reset = false) => {\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(() => {\n timerProgressBar.style.transition = `width ${timer / 1000}s linear`;\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n};\nconst stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.width = `${timerProgressBarPercent}%`;\n};\n\n/**\n * Detect Node env\n *\n * @returns {boolean}\n */\nconst isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\nconst sweetHTML = `\n <div aria-labelledby=\"${swalClasses.title}\" aria-describedby=\"${swalClasses['html-container']}\" class=\"${swalClasses.popup}\" tabindex=\"-1\">\n <button type=\"button\" class=\"${swalClasses.close}\"></button>\n <ul class=\"${swalClasses['progress-steps']}\"></ul>\n <div class=\"${swalClasses.icon}\"></div>\n <img class=\"${swalClasses.image}\" />\n <h2 class=\"${swalClasses.title}\" id=\"${swalClasses.title}\"></h2>\n <div class=\"${swalClasses['html-container']}\" id=\"${swalClasses['html-container']}\"></div>\n <input class=\"${swalClasses.input}\" id=\"${swalClasses.input}\" />\n <input type=\"file\" class=\"${swalClasses.file}\" />\n <div class=\"${swalClasses.range}\">\n <input type=\"range\" />\n <output></output>\n </div>\n <select class=\"${swalClasses.select}\" id=\"${swalClasses.select}\"></select>\n <div class=\"${swalClasses.radio}\"></div>\n <label class=\"${swalClasses.checkbox}\">\n <input type=\"checkbox\" id=\"${swalClasses.checkbox}\" />\n <span class=\"${swalClasses.label}\"></span>\n </label>\n <textarea class=\"${swalClasses.textarea}\" id=\"${swalClasses.textarea}\"></textarea>\n <div class=\"${swalClasses['validation-message']}\" id=\"${swalClasses['validation-message']}\"></div>\n <div class=\"${swalClasses.actions}\">\n <div class=\"${swalClasses.loader}\"></div>\n <button type=\"button\" class=\"${swalClasses.confirm}\"></button>\n <button type=\"button\" class=\"${swalClasses.deny}\"></button>\n <button type=\"button\" class=\"${swalClasses.cancel}\"></button>\n </div>\n <div class=\"${swalClasses.footer}\"></div>\n <div class=\"${swalClasses['timer-progress-bar-container']}\">\n <div class=\"${swalClasses['timer-progress-bar']}\"></div>\n </div>\n </div>\n`.replace(/(^|\\n)\\s*/g, '');\n\n/**\n * @returns {boolean}\n */\nconst resetOldContainer = () => {\n const oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'],\n // @ts-ignore: 'has-column' is not defined in swalClasses but may be set dynamically\n swalClasses['has-column']]);\n return true;\n};\nconst resetValidationMessage$1 = () => {\n if (globalState.currentInstance) {\n globalState.currentInstance.resetValidationMessage();\n }\n};\nconst addInputChangeListeners = () => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement | null} */\n const range = popup.querySelector(`.${swalClasses.range} input`);\n /** @type {HTMLOutputElement | null} */\n const rangeOutput = popup.querySelector(`.${swalClasses.range} output`);\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement | null} */\n const checkbox = popup.querySelector(`.${swalClasses.checkbox} input`);\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n if (input) {\n input.oninput = resetValidationMessage$1;\n }\n if (file) {\n file.onchange = resetValidationMessage$1;\n }\n if (select) {\n select.onchange = resetValidationMessage$1;\n }\n if (checkbox) {\n checkbox.onchange = resetValidationMessage$1;\n }\n if (textarea) {\n textarea.oninput = resetValidationMessage$1;\n }\n if (range && rangeOutput) {\n range.oninput = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n }\n};\n\n/**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\nconst getTarget = target => {\n if (typeof target === 'string') {\n const element = document.querySelector(target);\n if (!element) {\n throw new Error(`Target element \"${target}\" not found`);\n }\n return /** @type {HTMLElement} */element;\n }\n return target;\n};\n\n/**\n * @param {SweetAlertOptions} params\n */\nconst setupAccessibility = params => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n};\n\n/**\n * @param {HTMLElement} targetElement\n */\nconst setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n globalState.isRTL = true;\n }\n};\n\n/**\n * Add modal + backdrop to DOM\n *\n * @param {SweetAlertOptions} params\n */\nconst init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n const container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n container.dataset['swal2Theme'] = params.theme;\n const targetElement = getTarget(params.target || 'body');\n targetElement.appendChild(container);\n if (params.topLayer) {\n container.setAttribute('popover', '');\n container.showPopover();\n }\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n};\n\n/**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\nconst parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n};\n\n/**\n * @param {object} param\n * @param {HTMLElement} target\n */\nconst handleObject = (param, target) => {\n // JQuery element(s)\n if ('jquery' in param) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n};\n\n/**\n * @param {HTMLElement} target\n * @param {any} elem\n */\nconst handleJqueryElem = (target, elem) => {\n target.textContent = '';\n if (0 in elem) {\n for (let i = 0; i in elem; i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml || '');\n applyCustomClass(loader, params, 'loader');\n};\n\n/**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\nfunction renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!confirmButton || !denyButton || !cancelButton) {\n return;\n }\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n}\n\n/**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\nfunction handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Apply custom background colors to action buttons\n if (params.confirmButtonColor) {\n confirmButton.style.setProperty('--swal2-confirm-button-background-color', params.confirmButtonColor);\n }\n if (params.denyButtonColor) {\n denyButton.style.setProperty('--swal2-deny-button-background-color', params.denyButtonColor);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.setProperty('--swal2-cancel-button-background-color', params.cancelButtonColor);\n }\n\n // Apply the outline color to action buttons\n applyOutlineColor(confirmButton);\n applyOutlineColor(denyButton);\n applyOutlineColor(cancelButton);\n}\n\n/**\n * @param {HTMLElement} button\n */\nfunction applyOutlineColor(button) {\n const buttonStyle = window.getComputedStyle(button);\n if (buttonStyle.getPropertyValue('--swal2-action-button-focus-box-shadow')) {\n // If the button already has a custom outline color, no need to change it\n return;\n }\n const outlineColor = buttonStyle.backgroundColor.replace(/rgba?\\((\\d+), (\\d+), (\\d+).*/, 'rgba($1, $2, $3, 0.5)');\n button.style.setProperty('--swal2-action-button-focus-box-shadow', buttonStyle.getPropertyValue('--swal2-outline').replace(/ rgba\\(.*/, ` ${outlineColor}`));\n}\n\n/**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\nfunction renderButton(button, buttonType, params) {\n const buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n toggle(button, params[`show${buttonName}Button`], 'inline-block');\n setInnerHtml(button, params[`${buttonType}ButtonText`] || ''); // Set caption text\n button.setAttribute('aria-label', params[`${buttonType}ButtonAriaLabel`] || ''); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, `${buttonType}Button`);\n}\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n if (!closeButton) {\n return;\n }\n setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n // Custom class\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderContainer = (instance, params) => {\n const container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n};\n\n/**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\nfunction handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n}\n\n/**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\nfunction handlePositionParam(container, position) {\n if (!position) {\n return;\n }\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n}\n\n/**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\nfunction handleGrowParam(container, grow) {\n if (!grow) {\n return;\n }\n addClass(container, swalClasses[`grow-${grow}`]);\n}\n\n/**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\nvar privateProps = {\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n};\n\n/// <reference path=\"../../../../sweetalert2.d.ts\"/>\n\n\n/** @type {InputClass[]} */\nconst inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderInput = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(inputClass => {\n const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n if (!inputContainer) {\n return;\n }\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n};\n\n/**\n * @param {SweetAlertOptions} params\n */\nconst showInput = params => {\n if (!params.input) {\n return;\n }\n if (!renderInputType[params.input]) {\n error(`Unexpected type of input! Expected ${Object.keys(renderInputType).join(' | ')}, got \"${params.input}\"`);\n return;\n }\n const inputContainer = getInputContainer(params.input);\n if (!inputContainer) {\n return;\n }\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(() => {\n focusInput(input);\n });\n }\n};\n\n/**\n * @param {HTMLInputElement} input\n */\nconst removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n};\n\n/**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\nconst setAttributes = (inputClass, inputAttributes) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const input = getInput$1(popup, inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n};\n\n/**\n * @param {SweetAlertOptions} params\n */\nconst setCustomClass = params => {\n if (!params.input) {\n return;\n }\n const inputContainer = getInputContainer(params.input);\n if (inputContainer) {\n applyCustomClass(inputContainer, params, 'input');\n }\n};\n\n/**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\nconst setInputPlaceholder = (input, params) => {\n if (!input.placeholder && params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n};\n\n/**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\nconst setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n};\n\n/**\n * @param {SweetAlertInput} inputType\n * @returns {HTMLElement | undefined}\n */\nconst getInputContainer = inputType => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n return getDirectChildByClass(popup, swalClasses[(/** @type {SwalClass} */inputType)] || swalClasses.input);\n};\n\n/**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\nconst checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = `${inputValue}`;\n } else if (!isPromise(inputValue)) {\n warn(`Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"${typeof inputValue}\"`);\n }\n};\n\n/** @type {Record<SweetAlertInput, (input: Input | HTMLElement, params: SweetAlertOptions) => Input>} */\nconst renderInputType = {};\n\n/**\n * @param {Input | HTMLElement} input\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = /** @type {(input: Input | HTMLElement, params: SweetAlertOptions) => Input} */\n(input, params) => {\n const inputElement = /** @type {HTMLInputElement} */input;\n checkAndSetInputValue(inputElement, params.inputValue);\n setInputLabel(inputElement, inputElement, params);\n setInputPlaceholder(inputElement, params);\n inputElement.type = /** @type {string} */params.input;\n return inputElement;\n};\n\n/**\n * @param {Input | HTMLElement} input\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.file = (input, params) => {\n const inputElement = /** @type {HTMLInputElement} */input;\n setInputLabel(inputElement, inputElement, params);\n setInputPlaceholder(inputElement, params);\n return inputElement;\n};\n\n/**\n * @param {Input | HTMLElement} range\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.range = (range, params) => {\n const rangeContainer = /** @type {HTMLElement} */range;\n const rangeInput = rangeContainer.querySelector('input');\n const rangeOutput = rangeContainer.querySelector('output');\n if (rangeInput) {\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = /** @type {string} */params.input;\n setInputLabel(rangeInput, /** @type {Input} */range, params);\n }\n if (rangeOutput) {\n checkAndSetInputValue(rangeOutput, params.inputValue);\n }\n return /** @type {Input} */range;\n};\n\n/**\n * @param {Input | HTMLElement} select\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.select = (select, params) => {\n const selectElement = /** @type {HTMLSelectElement} */select;\n selectElement.textContent = '';\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n selectElement.appendChild(placeholder);\n }\n setInputLabel(selectElement, selectElement, params);\n return selectElement;\n};\n\n/**\n * @param {Input | HTMLElement} radio\n * @returns {Input}\n */\nrenderInputType.radio = radio => {\n const radioElement = /** @type {HTMLElement} */radio;\n radioElement.textContent = '';\n return /** @type {Input} */radio;\n};\n\n/**\n * @param {Input | HTMLElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.checkbox = (checkboxContainer, params) => {\n const popup = getPopup();\n if (!popup) {\n throw new Error('Popup not found');\n }\n const checkbox = getInput$1(popup, 'checkbox');\n if (!checkbox) {\n throw new Error('Checkbox input not found');\n }\n checkbox.value = '1';\n checkbox.checked = Boolean(params.inputValue);\n const containerElement = /** @type {HTMLElement} */checkboxContainer;\n const label = containerElement.querySelector('span');\n if (label) {\n const placeholderOrLabel = params.inputPlaceholder || params.inputLabel;\n if (placeholderOrLabel) {\n setInnerHtml(label, placeholderOrLabel);\n }\n }\n return checkbox;\n};\n\n/**\n * @param {Input | HTMLElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.textarea = (textarea, params) => {\n const textareaElement = /** @type {HTMLTextAreaElement} */textarea;\n checkAndSetInputValue(textareaElement, params.inputValue);\n setInputPlaceholder(textareaElement, params);\n setInputLabel(textareaElement, textareaElement, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const initialPopupWidth = parseInt(window.getComputedStyle(popup).width);\n const textareaResizeHandler = () => {\n // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n if (!document.body.contains(textareaElement)) {\n return;\n }\n const textareaWidth = textareaElement.offsetWidth + getMargin(textareaElement);\n const popupElement = getPopup();\n if (popupElement) {\n if (textareaWidth > initialPopupWidth) {\n popupElement.style.width = `${textareaWidth}px`;\n } else {\n applyNumericalStyle(popupElement, 'width', params.width);\n }\n }\n };\n new MutationObserver(textareaResizeHandler).observe(textareaElement, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textareaElement;\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n if (!htmlContainer) {\n return;\n }\n showWhenInnerHtmlPresent(htmlContainer);\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderFooter = (instance, params) => {\n const footer = getFooter();\n if (!footer) {\n return;\n }\n showWhenInnerHtmlPresent(footer);\n toggle(footer, Boolean(params.footer), 'block');\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon();\n if (!icon) {\n return;\n }\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(`Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"${params.icon}\"`);\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass && params.showClass.icon);\n\n // Re-adjust the success icon on system theme change\n const colorSchemeQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n colorSchemeQueryList.addEventListener('change', adjustSuccessIconBackgroundColor);\n};\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst applyStyles = (icon, params) => {\n for (const [iconType, iconClassName] of Object.entries(iconTypes)) {\n if (params.icon !== iconType) {\n removeClass(icon, iconClassName);\n }\n }\n addClass(icon, params.icon && iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n};\n\n// Adjust success icon background color to match the popup background color\nconst adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf<HTMLElement>} */\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n};\n\n/**\n *\n * @param {SweetAlertOptions} params\n * @returns {string}\n */\nconst successIconHtml = params => `\n ${params.animation ? '<div class=\"swal2-success-circular-line-left\"></div>' : ''}\n <span class=\"swal2-success-line-tip\"></span> <span class=\"swal2-success-line-long\"></span>\n <div class=\"swal2-success-ring\"></div>\n ${params.animation ? '<div class=\"swal2-success-fix\"></div>' : ''}\n ${params.animation ? '<div class=\"swal2-success-circular-line-right\"></div>' : ''}\n`;\nconst errorIconHtml = `\n <span class=\"swal2-x-mark\">\n <span class=\"swal2-x-mark-line-left\"></span>\n <span class=\"swal2-x-mark-line-right\"></span>\n </span>\n`;\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst setContent = (icon, params) => {\n if (!params.icon && !params.iconHtml) {\n return;\n }\n let oldContent = icon.innerHTML;\n let newContent = '';\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml(params);\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else if (params.icon) {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n};\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'background-color', params.iconColor);\n }\n setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);\n};\n\n/**\n * @param {string} content\n * @returns {string}\n */\nconst iconContent = content => `<div class=\"${swalClasses['icon-content']}\">${content}</div>`;\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderImage = (instance, params) => {\n const image = getImage();\n if (!image) {\n return;\n }\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt || '');\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n};\n\nlet dragging = false;\nlet mousedownX = 0;\nlet mousedownY = 0;\nlet initialX = 0;\nlet initialY = 0;\n\n/**\n * @param {HTMLElement} popup\n */\nconst addDraggableListeners = popup => {\n popup.addEventListener('mousedown', down);\n document.body.addEventListener('mousemove', move);\n popup.addEventListener('mouseup', up);\n popup.addEventListener('touchstart', down);\n document.body.addEventListener('touchmove', move);\n popup.addEventListener('touchend', up);\n};\n\n/**\n * @param {HTMLElement} popup\n */\nconst removeDraggableListeners = popup => {\n popup.removeEventListener('mousedown', down);\n document.body.removeEventListener('mousemove', move);\n popup.removeEventListener('mouseup', up);\n popup.removeEventListener('touchstart', down);\n document.body.removeEventListener('touchmove', move);\n popup.removeEventListener('touchend', up);\n};\n\n/**\n * @param {MouseEvent | TouchEvent} event\n */\nconst down = event => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const icon = getIcon();\n if (event.target === popup || icon && icon.contains(/** @type {HTMLElement} */event.target)) {\n dragging = true;\n const clientXY = getClientXY(event);\n mousedownX = clientXY.clientX;\n mousedownY = clientXY.clientY;\n initialX = parseInt(popup.style.insetInlineStart) || 0;\n initialY = parseInt(popup.style.insetBlockStart) || 0;\n addClass(popup, 'swal2-dragging');\n }\n};\n\n/**\n * @param {MouseEvent | TouchEvent} event\n */\nconst move = event => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n if (dragging) {\n let {\n clientX,\n clientY\n } = getClientXY(event);\n const deltaX = clientX - mousedownX;\n // In RTL mode, negate the horizontal delta since insetInlineStart refers to the right edge\n popup.style.insetInlineStart = `${initialX + (globalState.isRTL ? -deltaX : deltaX)}px`;\n popup.style.insetBlockStart = `${initialY + (clientY - mousedownY)}px`;\n }\n};\nconst up = () => {\n const popup = getPopup();\n dragging = false;\n removeClass(popup, 'swal2-dragging');\n};\n\n/**\n * @param {MouseEvent | TouchEvent} event\n * @returns {{ clientX: number, clientY: number }}\n */\nconst getClientXY = event => {\n let clientX = 0,\n clientY = 0;\n if (event.type.startsWith('mouse')) {\n clientX = /** @type {MouseEvent} */event.clientX;\n clientY = /** @type {MouseEvent} */event.clientY;\n } else if (event.type.startsWith('touch')) {\n clientX = /** @type {TouchEvent} */event.touches[0].clientX;\n clientY = /** @type {TouchEvent} */event.touches[0].clientY;\n }\n return {\n clientX,\n clientY\n };\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup();\n if (!container || !popup) {\n return;\n }\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n const loader = getLoader();\n if (loader) {\n popup.insertBefore(loader, getIcon());\n }\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n if (params.draggable && !params.toast) {\n addClass(popup, swalClasses.draggable);\n addDraggableListeners(popup);\n } else {\n removeClass(popup, swalClasses.draggable);\n removeDraggableListeners(popup);\n }\n};\n\n/**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\nconst addClasses$1 = (popup, params) => {\n const showClass = params.showClass || {};\n // Default Class + showClass when updating Swal.update({})\n popup.className = `${swalClasses.popup} ${isVisible$1(popup) ? showClass.popup : ''}`;\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n // TODO: remove in the next major\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[`icon-${params.icon}`]);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n if (!progressStepsContainer) {\n return;\n }\n const {\n progressSteps,\n currentProgressStep\n } = params;\n if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n if (currentProgressStep >= progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n};\n\n/**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\nconst createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n};\n\n/**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\nconst createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderTitle = (instance, params) => {\n const title = getTitle();\n if (!title) {\n return;\n }\n showWhenInnerHtmlPresent(title);\n toggle(title, Boolean(params.title || params.titleText), 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst render = (instance, params) => {\n var _globalState$eventEmi;\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n const popup = getPopup();\n if (typeof params.didRender === 'function' && popup) {\n params.didRender(popup);\n }\n (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('didRender', popup);\n};\n\n/*\n * Global function to determine if SweetAlert2 popup is shown\n */\nconst isVisible = () => {\n return isVisible$1(getPopup());\n};\n\n/*\n * Global function to click 'Confirm' button\n */\nconst clickConfirm = () => {\n var _dom$getConfirmButton;\n return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n};\n\n/*\n * Global function to click 'Deny' button\n */\nconst clickDeny = () => {\n var _dom$getDenyButton;\n return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n};\n\n/*\n * Global function to click 'Cancel' button\n */\nconst clickCancel = () => {\n var _dom$getCancelButton;\n return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n};\n\n/** @type {Record<DismissReason, DismissReason>} */\nconst DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n});\n\n/**\n * @param {GlobalState} globalState\n */\nconst removeKeydownHandler = globalState => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded && globalState.keydownHandler) {\n const handler = /** @type {EventListenerOrEventListenerObject} */ /** @type {unknown} */globalState.keydownHandler;\n globalState.keydownTarget.removeEventListener('keydown', handler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n};\n\n/**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst addKeydownHandler = (globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n /** @type {(this: HTMLElement, event: KeyboardEvent) => void} */\n const handler = e => keydownHandler(innerParams, e, dismissWith);\n globalState.keydownHandler = handler;\n const target = innerParams.keydownListenerCapture ? window : getPopup();\n if (target) {\n globalState.keydownTarget = target;\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n const eventHandler = /** @type {EventListenerOrEventListenerObject} */ /** @type {unknown} */handler;\n globalState.keydownTarget.addEventListener('keydown', eventHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n }\n};\n\n/**\n * @param {number} index\n * @param {number} increment\n */\nconst setFocus = (index, increment) => {\n var _dom$getPopup;\n const focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // shift + tab when .swal2-popup is focused\n if (index === -2) {\n index = focusableElements.length - 1;\n }\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n};\nconst arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\nconst arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {KeyboardEvent} event\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst keydownHandler = (innerParams, event, dismissWith) => {\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n};\n\n/**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\nconst handleEnter = (event, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n const popup = getPopup();\n if (!popup || !innerParams.input) {\n return;\n }\n const input = getInput$1(popup, innerParams.input);\n if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n clickConfirm();\n event.preventDefault();\n }\n};\n\n/**\n * @param {KeyboardEvent} event\n */\nconst handleTab = event => {\n const targetElement = event.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n};\n\n/**\n * @param {string} key\n */\nconst handleArrows = key => {\n const actions = getActions();\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!actions || !confirmButton || !denyButton || !cancelButton) {\n return;\n }\n /** @type HTMLElement[] */\n const buttons = [confirmButton, denyButton, cancelButton];\n if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n return;\n }\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n if (!buttonToFocus) {\n return;\n }\n for (let i = 0; i < actions.children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n};\n\n/**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst handleEsc = (event, innerParams, dismissWith) => {\n event.preventDefault();\n if (callIfFunction(innerParams.allowEscapeKey)) {\n dismissWith(DismissReason.esc);\n }\n};\n\n/**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\nvar privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n};\n\n// From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n// Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n// elements not within the active modal dialog will not be surfaced if a user opens a screen\n// reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\nconst setAriaHidden = () => {\n const container = getContainer();\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.contains(container)) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n }\n el.setAttribute('aria-hidden', 'true');\n });\n};\nconst unsetAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n};\n\n// @ts-ignore\nconst isSafariOrIOS = typeof window !== 'undefined' && Boolean(window.GestureEvent); // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n/**\n * Fix iOS scrolling\n * http://stackoverflow.com/q/39626302\n */\nconst iOSfix = () => {\n if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = `${offset * -1}px`;\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n }\n};\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\nconst lockBodyScroll = () => {\n const container = getContainer();\n if (!container) {\n return;\n }\n /** @type {boolean} */\n let preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = event => {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = event => {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n};\n\n/**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\nconst shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n const htmlContainer = getHtmlContainer();\n if (!container || !htmlContainer) {\n return false;\n }\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && !selfOrParentIsScrollable(target, htmlContainer) &&\n // #2823\n target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(htmlContainer) &&\n // #1944\n htmlContainer.contains(target))) {\n return true;\n }\n return false;\n};\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\nconst isStylus = event => {\n return Boolean(event.touches && event.touches.length &&\n // @ts-ignore - touchType is not a standard property\n event.touches[0].touchType === 'stylus');\n};\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\nconst isZoom = event => {\n return event.touches && event.touches.length > 1;\n};\nconst undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n};\n\n/**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\nconst measureScrollbar = () => {\n const scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n};\n\n/**\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * @type {number | null}\n */\nlet previousBodyPadding = null;\n\n/**\n * @param {string} initialBodyOverflow\n */\nconst replaceScrollbarWithPadding = initialBodyOverflow => {\n // for queues, do not do this more than once\n if (previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n ) {\n // add padding so the content doesn't shift after removal of scrollbar\n previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = `${previousBodyPadding + measureScrollbar()}px`;\n }\n};\nconst undoReplaceScrollbarWithPadding = () => {\n if (previousBodyPadding !== null) {\n document.body.style.paddingRight = `${previousBodyPadding}px`;\n previousBodyPadding = null;\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {(() => void) | undefined} didClose\n */\nfunction removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n removeKeydownHandler(globalState);\n }\n\n // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafariOrIOS) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoReplaceScrollbarWithPadding();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n}\n\n/**\n * Remove SweetAlert2 classes from body\n */\nfunction removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n}\n\n/**\n * Instance method to close sweetAlert\n *\n * @param {SweetAlertResult | undefined} resolveValue\n * @this {SweetAlert}\n */\nfunction close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\n if (this.isAwaitingPromise) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n}\n\n/**\n * @param {SweetAlert} instance\n * @returns {boolean}\n */\nconst triggerClosePopup = instance => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n};\n\n/**\n * @param {Error | string} error\n * @this {SweetAlert}\n */\nfunction rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n}\n\n/**\n * @param {SweetAlert} instance\n */\nconst handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise) {\n // @ts-ignore\n delete instance.isAwaitingPromise;\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n};\n\n/**\n * @param {SweetAlertResult | undefined} resolveValue\n * @returns {SweetAlertResult}\n */\nconst prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} innerParams\n */\nconst handlePopupAnimation = (instance, popup, innerParams) => {\n var _globalState$eventEmi;\n const container = getContainer();\n // If animation is supported, animate\n const animationIsSupported = hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('willClose', popup);\n if (animationIsSupported && container) {\n animatePopup(instance, popup, container, Boolean(innerParams.returnFocus), innerParams.didClose);\n } else if (container) {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, Boolean(innerParams.returnFocus), innerParams.didClose);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {(() => void) | undefined} didClose\n */\nconst animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n /**\n * @param {AnimationEvent | TransitionEvent} e\n */\n const swalCloseAnimationFinished = function (e) {\n if (e.target === popup) {\n var _globalState$swalClos;\n (_globalState$swalClos = globalState.swalCloseEventFinishedCallback) === null || _globalState$swalClos === void 0 || _globalState$swalClos.call(globalState);\n delete globalState.swalCloseEventFinishedCallback;\n popup.removeEventListener('animationend', swalCloseAnimationFinished);\n popup.removeEventListener('transitionend', swalCloseAnimationFinished);\n }\n };\n popup.addEventListener('animationend', swalCloseAnimationFinished);\n popup.addEventListener('transitionend', swalCloseAnimationFinished);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {(() => void) | undefined} didClose\n */\nconst triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n var _globalState$eventEmi2;\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n (_globalState$eventEmi2 = globalState.eventEmitter) === null || _globalState$eventEmi2 === void 0 || _globalState$eventEmi2.emit('didClose');\n // instance might have been destroyed already\n if (instance._destroy) {\n instance._destroy();\n }\n });\n};\n\n/**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n *\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\nconst showLoading = buttonToReplace => {\n let popup = getPopup();\n if (!popup) {\n new Swal();\n }\n popup = getPopup();\n if (!popup) {\n return;\n }\n const loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n};\n\n/**\n * @param {HTMLElement} popup\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\nconst replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n actions.insertBefore(loader, buttonToReplace);\n }\n addClass([popup, actions], swalClasses.loading);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].some(i => i === params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {SweetAlertInputValue}\n */\nconst getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n};\n\n/**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\nconst getCheckboxValue = input => input.checked ? 1 : 0;\n\n/**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\nconst getRadioValue = input => input.checked ? input.value : null;\n\n/**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\nconst getFileValue = input => input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst handleInputOptions = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n /**\n * @param {*} inputOptions\n */\n const processInputOptions = inputOptions => {\n if (params.input === 'select') {\n populateSelectOptions(popup, formatInputOptions(inputOptions), params);\n } else if (params.input === 'radio') {\n populateRadioOptions(popup, formatInputOptions(inputOptions), params);\n }\n };\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(`Unexpected type of inputOptions! Expected object, Map or Promise, got ${typeof params.inputOptions}`);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst handleInputValue = (instance, params) => {\n const input = instance.getInput();\n if (!input) {\n return;\n }\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? `${parseFloat(inputValue) || 0}` : `${inputValue}`;\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(`Error in inputValue promise: ${err}`);\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n};\n\n/**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\nfunction populateSelectOptions(popup, inputOptions, params) {\n const select = getDirectChildByClass(popup, swalClasses.select);\n if (!select) {\n return;\n }\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\n */\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1];\n // <optgroup> spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a <optgroup>\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an <optgroup>\n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of <option>\n renderOption(select, optionLabel, optionValue);\n }\n });\n select.focus();\n}\n\n/**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\nfunction populateRadioOptions(popup, inputOptions, params) {\n const radio = getDirectChildByClass(popup, swalClasses.radio);\n if (!radio) {\n return;\n }\n inputOptions.forEach(inputOption => {\n const radioValue = inputOption[0];\n const radioLabel = inputOption[1];\n const radioInput = document.createElement('input');\n const radioLabelElement = document.createElement('label');\n radioInput.type = 'radio';\n radioInput.name = swalClasses.radio;\n radioInput.value = radioValue;\n if (isSelected(radioValue, params.inputValue)) {\n radioInput.checked = true;\n }\n const label = document.createElement('span');\n setInnerHtml(label, radioLabel);\n label.className = swalClasses.label;\n radioLabelElement.appendChild(radioInput);\n radioLabelElement.appendChild(label);\n radio.appendChild(radioLabelElement);\n });\n const radios = radio.querySelectorAll('input');\n if (radios.length) {\n radios[0].focus();\n }\n}\n\n/**\n * Converts `inputOptions` into an array of `[value, label]`s\n *\n * @param {*} inputOptions\n * @typedef {string[]} InputOptionFlattened\n * @returns {InputOptionFlattened[]}\n */\nconst formatInputOptions = inputOptions => {\n /** @type {InputOptionFlattened[]} */\n const result = [];\n if (inputOptions instanceof Map) {\n inputOptions.forEach((value, key) => {\n let valueFormatted = value;\n if (typeof valueFormatted === 'object') {\n // case of <optgroup>\n valueFormatted = formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(key => {\n let valueFormatted = inputOptions[key];\n if (typeof valueFormatted === 'object') {\n // case of <optgroup>\n valueFormatted = formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n }\n return result;\n};\n\n/**\n * @param {string} optionValue\n * @param {SweetAlertInputValue} inputValue\n * @returns {boolean}\n */\nconst isSelected = (optionValue, inputValue) => {\n return Boolean(inputValue) && inputValue !== null && inputValue !== undefined && inputValue.toString() === optionValue.toString();\n};\n\n/**\n * @param {SweetAlert} instance\n */\nconst handleConfirmButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n */\nconst handleDenyButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {'confirm' | 'deny'} type\n */\nconst handleConfirmOrDenyWithInput = (instance, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams.input) {\n error(`The \"input\" parameter is needed to be set when using returnInputValueOn${capitalizeFirstLetter(type)}`);\n return;\n }\n const input = instance.getInput();\n const inputValue = getInputValue(instance, innerParams);\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (input && !input.checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage || input.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertInputValue} inputValue\n * @param {'confirm' | 'deny'} type\n */\nconst handleInputValidator = (instance, inputValue, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n validationPromise.then(validationMessage => {\n instance.enableButtons();\n instance.enableInput();\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {*} value\n */\nconst deny = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance);\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n if (innerParams.preDeny) {\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.close(/** @type SweetAlertResult */{\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n }).catch(error => rejectWith(instance, error));\n } else {\n instance.close(/** @type SweetAlertResult */{\n isDenied: true,\n value\n });\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {*} value\n */\nconst succeedWith = (instance, value) => {\n instance.close(/** @type SweetAlertResult */{\n isConfirmed: true,\n value\n });\n};\n\n/**\n *\n * @param {SweetAlert} instance\n * @param {string} error\n */\nconst rejectWith = (instance, error) => {\n instance.rejectPromise(error);\n};\n\n/**\n *\n * @param {SweetAlert} instance\n * @param {*} value\n */\nconst confirm = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance);\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.then(preConfirmValue => {\n if (isVisible$1(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n }).catch(error => rejectWith(instance, error));\n } else {\n succeedWith(instance, value);\n }\n};\n\n/**\n * Hides loader and shows back the button which was hidden by .showLoading()\n * @this {SweetAlert}\n */\nfunction hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n return;\n }\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n}\n\n/**\n * @param {DomCache} domCache\n */\nconst showRelatedButton = domCache => {\n const dataButtonToReplace = domCache.loader.getAttribute('data-button-to-replace');\n const buttonToReplace = dataButtonToReplace ? domCache.popup.getElementsByClassName(dataButtonToReplace) : [];\n if (buttonToReplace.length) {\n show(/** @type {HTMLElement} */buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n};\n\n/**\n * Gets the input DOM node, this method works with input parameter.\n *\n * @returns {HTMLInputElement | null}\n * @this {SweetAlert}\n */\nfunction getInput() {\n const innerParams = privateProps.innerParams.get(this);\n const domCache = privateProps.domCache.get(this);\n if (!domCache) {\n return null;\n }\n return getInput$1(domCache.popup, innerParams.input);\n}\n\n/**\n * @param {SweetAlert} instance\n * @param {string[]} buttons\n * @param {boolean} disabled\n */\nfunction setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance);\n buttons.forEach(button => {\n domCache[button].disabled = disabled;\n });\n}\n\n/**\n * @param {HTMLInputElement | null} input\n * @param {boolean} disabled\n */\nfunction setInputDisabled(input, disabled) {\n const popup = getPopup();\n if (!popup || !input) {\n return;\n }\n if (input.type === 'radio') {\n /** @type {NodeListOf<HTMLInputElement>} */\n const radios = popup.querySelectorAll(`[name=\"${swalClasses.radio}\"]`);\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n}\n\n/**\n * Enable all the buttons\n * @this {SweetAlert}\n */\nfunction enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n}\n\n/**\n * Disable all the buttons\n * @this {SweetAlert}\n */\nfunction disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n}\n\n/**\n * Enable the input field\n * @this {SweetAlert}\n */\nfunction enableInput() {\n setInputDisabled(this.getInput(), false);\n}\n\n/**\n * Disable the input field\n * @this {SweetAlert}\n */\nfunction disableInput() {\n setInputDisabled(this.getInput(), true);\n}\n\n/**\n * Show block with validation message\n *\n * @param {string} error\n * @this {SweetAlert}\n */\nfunction showValidationMessage(error) {\n const domCache = privateProps.domCache.get(this);\n const params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n show(domCache.validationMessage);\n const input = this.getInput();\n if (input) {\n input.setAttribute('aria-invalid', 'true');\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n}\n\n/**\n * Hide block with validation message\n *\n * @this {SweetAlert}\n */\nfunction resetValidationMessage() {\n const domCache = privateProps.domCache.get(this);\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n const input = this.getInput();\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n}\n\nconst defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n draggable: false,\n animation: true,\n theme: 'light',\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '&times;',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoFocus: true,\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true,\n topLayer: false\n};\nconst updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'draggable', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'theme', 'willClose'];\n\n/** @type {Record<string, string | undefined>} */\nconst deprecatedParams = {\n allowEnterKey: undefined\n};\nconst toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'draggable', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n\n/**\n * Is valid parameter\n *\n * @param {string} paramName\n * @returns {boolean}\n */\nconst isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n};\n\n/**\n * Is valid parameter for Swal.update() method\n *\n * @param {string} paramName\n * @returns {boolean}\n */\nconst isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n};\n\n/**\n * Is deprecated parameter\n *\n * @param {string} paramName\n * @returns {string | undefined}\n */\nconst isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n};\n\n/**\n * @param {string} param\n */\nconst checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(`Unknown parameter \"${param}\"`);\n }\n};\n\n/**\n * @param {string} param\n */\nconst checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(`The parameter \"${param}\" is incompatible with toasts`);\n }\n};\n\n/**\n * @param {string} param\n */\nconst checkIfParamIsDeprecated = param => {\n const isDeprecated = isDeprecatedParameter(param);\n if (isDeprecated) {\n warnAboutDeprecation(param, isDeprecated);\n }\n};\n\n/**\n * Show relevant warnings for given params\n *\n * @param {SweetAlertOptions} params\n */\nconst showWarningsForParams = params => {\n if (params.backdrop === false && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n if (params.theme && !['light', 'dark', 'auto', 'minimal', 'borderless', 'bootstrap-4', 'bootstrap-4-light', 'bootstrap-4-dark', 'bootstrap-5', 'bootstrap-5-light', 'bootstrap-5-dark', 'material-ui', 'material-ui-light', 'material-ui-dark', 'embed-iframe', 'bulma', 'bulma-light', 'bulma-dark'].includes(params.theme)) {\n warn(`Invalid theme \"${params.theme}\"`);\n }\n for (const param in params) {\n checkIfParamIsValid(param);\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n checkIfParamIsDeprecated(param);\n }\n};\n\n/**\n * Updates popup parameters.\n *\n * @this {any}\n * @param {SweetAlertOptions} params\n */\nfunction update(params) {\n const container = getContainer();\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n warn(`You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.`);\n return;\n }\n const validUpdatableParams = filterValidParams(params);\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n showWarningsForParams(updatedParams);\n if (container) {\n container.dataset['swal2Theme'] = updatedParams.theme;\n }\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n}\n\n/**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\nconst filterValidParams = params => {\n /** @type {Record<string, any>} */\n const validUpdatableParams = {};\n Object.keys(params).forEach(param => {\n if (isUpdatableParameter(param)) {\n const typedParams = /** @type {Record<string, any>} */params;\n validUpdatableParams[param] = typedParams[param];\n } else {\n warn(`Invalid parameter to update: ${param}`);\n }\n });\n return validUpdatableParams;\n};\n\n/**\n * Dispose the current SweetAlert2 instance\n * @this {SweetAlert}\n */\nfunction _destroy() {\n var _globalState$eventEmi;\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n return; // This instance has already been destroyed\n }\n\n // Check if there is another Swal closing\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('didDestroy');\n disposeSwal(this);\n}\n\n/**\n * @param {SweetAlert} instance\n */\nconst disposeSwal = instance => {\n disposeWeakMaps(instance);\n // Unset this.params so GC will dispose it (#1569)\n // @ts-ignore\n delete instance.params;\n // Unset globalState props so GC will dispose globalState (#1569)\n delete globalState.keydownHandler;\n delete globalState.keydownTarget;\n // Unset currentInstance\n delete globalState.currentInstance;\n};\n\n/**\n * @param {SweetAlert} instance\n */\nconst disposeWeakMaps = instance => {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n if (instance.isAwaitingPromise) {\n unsetWeakMaps(privateProps, instance);\n instance.isAwaitingPromise = true;\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n\n // @ts-ignore\n delete instance.isAwaitingPromise;\n // Unset instance methods\n // @ts-ignore\n delete instance.disableButtons;\n // @ts-ignore\n delete instance.enableButtons;\n // @ts-ignore\n delete instance.getInput;\n // @ts-ignore\n delete instance.disableInput;\n // @ts-ignore\n delete instance.enableInput;\n // @ts-ignore\n delete instance.hideLoading;\n // @ts-ignore\n delete instance.disableLoading;\n // @ts-ignore\n delete instance.showValidationMessage;\n // @ts-ignore\n delete instance.resetValidationMessage;\n // @ts-ignore\n delete instance.close;\n // @ts-ignore\n delete instance.closePopup;\n // @ts-ignore\n delete instance.closeModal;\n // @ts-ignore\n delete instance.closeToast;\n // @ts-ignore\n delete instance.rejectPromise;\n // @ts-ignore\n delete instance.update;\n // @ts-ignore\n delete instance._destroy;\n }\n};\n\n/**\n * @param {Record<string, WeakMap<any, any>>} obj\n * @param {SweetAlert} instance\n */\nconst unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance);\n }\n};\n\nvar instanceMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n _destroy: _destroy,\n close: close,\n closeModal: close,\n closePopup: close,\n closeToast: close,\n disableButtons: disableButtons,\n disableInput: disableInput,\n disableLoading: hideLoading,\n enableButtons: enableButtons,\n enableInput: enableInput,\n getInput: getInput,\n handleAwaitingPromise: handleAwaitingPromise,\n hideLoading: hideLoading,\n rejectPromise: rejectPromise,\n resetValidationMessage: resetValidationMessage,\n showValidationMessage: showValidationMessage,\n update: update\n});\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst handlePopupClick = (innerParams, domCache, dismissWith) => {\n if (innerParams.toast) {\n handleToastClick(innerParams, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache);\n\n // Ignore click events that had mousedown on the container but mouseup on the popup\n handleContainerMousedown(domCache);\n handleModalClick(innerParams, domCache, dismissWith);\n }\n};\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst handleToastClick = (innerParams, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n dismissWith(DismissReason.close);\n };\n};\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\nconst isAnyButtonShown = innerParams => {\n return Boolean(innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton);\n};\nlet ignoreOutsideClick = false;\n\n/**\n * @param {DomCache} domCache\n */\nconst handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = () => {};\n // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n};\n\n/**\n * @param {DomCache} domCache\n */\nconst handleContainerMousedown = domCache => {\n domCache.container.onmousedown = e => {\n // prevent the modal text from being selected on double click on the container (allowOutsideClick: false)\n if (e.target === domCache.container) {\n e.preventDefault();\n }\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = () => {};\n // We also need to check if the mouseup target is a child of the popup\n if (e.target === domCache.popup || e.target instanceof HTMLElement && domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n};\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst handleModalClick = (innerParams, domCache, dismissWith) => {\n domCache.container.onclick = e => {\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n};\n\n/**\n * @param {any} elem\n * @returns {boolean}\n */\nconst isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\n\n/**\n * @param {any} elem\n * @returns {boolean}\n */\nconst isElement = elem => elem instanceof Element || isJqueryElement(elem);\n\n/**\n * @param {any[]} args\n * @returns {SweetAlertOptions}\n */\nconst argsToParams = args => {\n /** @type {Record<string, any>} */\n const params = {};\n if (typeof args[0] === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach((name, index) => {\n const arg = args[index];\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(`Unexpected type of ${name}! Expected \"string\" or \"Element\", got ${typeof arg}`);\n }\n });\n }\n return params;\n};\n\n/**\n * Main method to create a new SweetAlert2 popup\n *\n * @this {new (...args: any[]) => any}\n * @param {...SweetAlertOptions} args\n * @returns {Promise<SweetAlertResult>}\n */\nfunction fire(...args) {\n return new this(...args);\n}\n\n/**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlert}\n * @this {typeof import('../SweetAlert.js').SweetAlert}\n */\nfunction mixin(mixinParams) {\n // @ts-ignore: 'this' refers to the SweetAlert constructor\n class MixinSwal extends this {\n /**\n * @param {any} params\n * @param {any} priorityMixinParams\n */\n _main(params, priorityMixinParams) {\n return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));\n }\n }\n // @ts-ignore\n return MixinSwal;\n}\n\n/**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n};\n\n/**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n};\n\n/**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n};\n\n/**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst toggleTimer = () => {\n const timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n};\n\n/**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @param {number} ms\n * @returns {number | undefined}\n */\nconst increaseTimer = ms => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.increase(ms);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n};\n\n/**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n *\n * @returns {boolean}\n */\nconst isTimerRunning = () => {\n return Boolean(globalState.timeout && globalState.timeout.isRunning());\n};\n\nlet bodyClickListenerAdded = false;\n/** @type {Record<string, any>} */\nconst clickHandlers = {};\n\n/**\n * @this {any}\n * @param {string} attr\n */\nfunction bindClickHandler(attr = 'data-swal-template') {\n clickHandlers[attr] = this;\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n}\n\n/**\n * @param {MouseEvent} event\n */\nconst bodyClickListener = event => {\n for (let el = /** @type {any} */event.target; el && el !== document; el = el.parentNode) {\n for (const attr in clickHandlers) {\n const template = el.getAttribute && el.getAttribute(attr);\n if (template) {\n clickHandlers[attr].fire({\n template\n });\n return;\n }\n }\n }\n};\n\n// Source: https://gist.github.com/mudge/5830382?permalink_comment_id=2691957#gistcomment-2691957\n\nclass EventEmitter {\n constructor() {\n /** @type {Events} */\n this.events = {};\n }\n\n /**\n * @param {string} eventName\n * @returns {EventHandlers}\n */\n _getHandlersByEventName(eventName) {\n if (typeof this.events[eventName] === 'undefined') {\n // not Set because we need to keep the FIFO order\n // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1748990334\n this.events[eventName] = [];\n }\n return this.events[eventName];\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n on(eventName, eventHandler) {\n const currentHandlers = this._getHandlersByEventName(eventName);\n if (!currentHandlers.includes(eventHandler)) {\n currentHandlers.push(eventHandler);\n }\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n once(eventName, eventHandler) {\n /**\n * @param {...any} args\n */\n const onceFn = (...args) => {\n this.removeListener(eventName, onceFn);\n // @ts-ignore\n eventHandler.apply(this, args);\n };\n this.on(eventName, onceFn);\n }\n\n /**\n * @param {string} eventName\n * @param {...any} args\n */\n emit(eventName, ...args) {\n this._getHandlersByEventName(eventName).forEach(\n /**\n * @param {EventHandler} eventHandler\n */\n eventHandler => {\n try {\n // @ts-ignore\n eventHandler.apply(this, args);\n } catch (error) {\n console.error(error);\n }\n });\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n removeListener(eventName, eventHandler) {\n const currentHandlers = this._getHandlersByEventName(eventName);\n const index = currentHandlers.indexOf(eventHandler);\n if (index > -1) {\n currentHandlers.splice(index, 1);\n }\n }\n\n /**\n * @param {string} eventName\n */\n removeAllListeners(eventName) {\n if (this.events[eventName] !== undefined) {\n // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1749239222\n this.events[eventName].length = 0;\n }\n }\n reset() {\n this.events = {};\n }\n}\n\nglobalState.eventEmitter = new EventEmitter();\n\n/**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\nconst on = (eventName, eventHandler) => {\n if (globalState.eventEmitter) {\n globalState.eventEmitter.on(eventName, eventHandler);\n }\n};\n\n/**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\nconst once = (eventName, eventHandler) => {\n if (globalState.eventEmitter) {\n globalState.eventEmitter.once(eventName, eventHandler);\n }\n};\n\n/**\n * @param {string} [eventName]\n * @param {EventHandler} [eventHandler]\n */\nconst off = (eventName, eventHandler) => {\n if (!globalState.eventEmitter) {\n return;\n }\n\n // Remove all handlers for all events\n if (!eventName) {\n globalState.eventEmitter.reset();\n return;\n }\n if (eventHandler) {\n // Remove a specific handler\n globalState.eventEmitter.removeListener(eventName, eventHandler);\n } else {\n // Remove all handlers for a specific event\n globalState.eventEmitter.removeAllListeners(eventName);\n }\n};\n\nvar staticMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n argsToParams: argsToParams,\n bindClickHandler: bindClickHandler,\n clickCancel: clickCancel,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n enableLoading: showLoading,\n fire: fire,\n getActions: getActions,\n getCancelButton: getCancelButton,\n getCloseButton: getCloseButton,\n getConfirmButton: getConfirmButton,\n getContainer: getContainer,\n getDenyButton: getDenyButton,\n getFocusableElements: getFocusableElements,\n getFooter: getFooter,\n getHtmlContainer: getHtmlContainer,\n getIcon: getIcon,\n getIconContent: getIconContent,\n getImage: getImage,\n getInputLabel: getInputLabel,\n getLoader: getLoader,\n getPopup: getPopup,\n getProgressSteps: getProgressSteps,\n getTimerLeft: getTimerLeft,\n getTimerProgressBar: getTimerProgressBar,\n getTitle: getTitle,\n getValidationMessage: getValidationMessage,\n increaseTimer: increaseTimer,\n isDeprecatedParameter: isDeprecatedParameter,\n isLoading: isLoading,\n isTimerRunning: isTimerRunning,\n isUpdatableParameter: isUpdatableParameter,\n isValidParameter: isValidParameter,\n isVisible: isVisible,\n mixin: mixin,\n off: off,\n on: on,\n once: once,\n resumeTimer: resumeTimer,\n showLoading: showLoading,\n stopTimer: stopTimer,\n toggleTimer: toggleTimer\n});\n\nclass Timer {\n /**\n * @param {() => void} callback\n * @param {number} delay\n */\n constructor(callback, delay) {\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n /**\n * @returns {number}\n */\n start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n stop() {\n if (this.started && this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n return this.remaining;\n }\n\n /**\n * @param {number} n\n * @returns {number}\n */\n increase(n) {\n const running = this.running;\n if (running) {\n this.stop();\n }\n this.remaining += n;\n if (running) {\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {boolean}\n */\n isRunning() {\n return this.running;\n }\n}\n\nconst swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n\n/**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\nconst getTemplateParams = params => {\n const template = typeof params.template === 'string' ? (/** @type {HTMLTemplateElement} */document.querySelector(params.template)) : params.template;\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n const templateContent = template.content;\n showWarningsForElements(templateContent);\n const result = Object.assign(getSwalParams(templateContent), getSwalFunctionParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, string | boolean | number>}\n */\nconst getSwalParams = templateContent => {\n /** @type {Record<string, string | boolean | number>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalParams = Array.from(templateContent.querySelectorAll('swal-param'));\n swalParams.forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n const value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n if (paramName in defaultParams && typeof defaultParams[(/** @type {keyof typeof defaultParams} */paramName)] === 'boolean') {\n result[paramName] = value !== 'false';\n } else if (paramName in defaultParams && typeof defaultParams[(/** @type {keyof typeof defaultParams} */paramName)] === 'object') {\n result[paramName] = JSON.parse(value);\n } else {\n result[paramName] = value;\n }\n });\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, () => void>}\n */\nconst getSwalFunctionParams = templateContent => {\n /** @type {Record<string, () => void>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalFunctions = Array.from(templateContent.querySelectorAll('swal-function-param'));\n swalFunctions.forEach(param => {\n const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n const value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n result[paramName] = new Function(`return ${value}`)();\n });\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, string | boolean>}\n */\nconst getSwalButtons = templateContent => {\n /** @type {Record<string, string | boolean>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));\n swalButtons.forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n if (!type || !['confirm', 'cancel', 'deny'].includes(type)) {\n return;\n }\n result[`${type}ButtonText`] = button.innerHTML;\n result[`show${capitalizeFirstLetter(type)}Button`] = true;\n if (button.hasAttribute('color')) {\n const color = button.getAttribute('color');\n if (color !== null) {\n result[`${type}ButtonColor`] = color;\n }\n }\n if (button.hasAttribute('aria-label')) {\n const ariaLabel = button.getAttribute('aria-label');\n if (ariaLabel !== null) {\n result[`${type}ButtonAriaLabel`] = ariaLabel;\n }\n }\n });\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Pick<SweetAlertOptions, 'imageUrl' | 'imageWidth' | 'imageHeight' | 'imageAlt'>}\n */\nconst getSwalImage = templateContent => {\n const result = {};\n /** @type {HTMLElement | null} */\n const image = templateContent.querySelector('swal-image');\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src') || undefined;\n }\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width') || undefined;\n }\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height') || undefined;\n }\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt') || undefined;\n }\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {object}\n */\nconst getSwalIcon = templateContent => {\n const result = {};\n /** @type {HTMLElement | null} */\n const icon = templateContent.querySelector('swal-icon');\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n result.iconHtml = icon.innerHTML;\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {object}\n */\nconst getSwalInput = templateContent => {\n /** @type {Record<string, any>} */\n const result = {};\n /** @type {HTMLElement | null} */\n const input = templateContent.querySelector('swal-input');\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n /** @type {HTMLElement[]} */\n const inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));\n if (inputOptions.length) {\n result.inputOptions = {};\n inputOptions.forEach(option => {\n showWarningsForAttributes(option, ['value']);\n const optionValue = option.getAttribute('value');\n if (!optionValue) {\n return;\n }\n const optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n * @returns {Record<string, string>}\n */\nconst getSwalStringParams = (templateContent, paramNames) => {\n /** @type {Record<string, string>} */\n const result = {};\n for (const i in paramNames) {\n const paramName = paramNames[i];\n /** @type {HTMLElement | null} */\n const tag = templateContent.querySelector(paramName);\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n */\nconst showWarningsForElements = templateContent => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-function-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n Array.from(templateContent.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n if (!allowedElements.includes(tagName)) {\n warn(`Unrecognized element <${tagName}>`);\n }\n });\n};\n\n/**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\nconst showWarningsForAttributes = (el, allowedAttributes) => {\n Array.from(el.attributes).forEach(attribute => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([`Unrecognized attribute \"${attribute.name}\" on <${el.tagName.toLowerCase()}>.`, `${allowedAttributes.length ? `Allowed attributes are: ${allowedAttributes.join(', ')}` : 'To set the value, use HTML within the element.'}`]);\n }\n });\n};\n\nconst SHOW_CLASS_TIMEOUT = 10;\n\n/**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param {SweetAlertOptions} params\n */\nconst openPopup = params => {\n var _globalState$eventEmi, _globalState$eventEmi2;\n const container = getContainer();\n const popup = getPopup();\n if (!container || !popup) {\n return;\n }\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('willOpen', popup);\n const bodyStyles = window.getComputedStyle(document.body);\n const initialBodyOverflow = bodyStyles.overflowY;\n addClasses(container, popup, params);\n\n // scrolling is 'hidden' until animation is done, after that 'auto'\n setTimeout(() => {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n if (isModal()) {\n // Using ternary instead of ?? operator for Webpack 4 compatibility\n fixScrollContainer(container, params.scrollbarPadding !== undefined ? params.scrollbarPadding : false, initialBodyOverflow);\n setAriaHidden();\n }\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n if (typeof params.didOpen === 'function') {\n const didOpen = params.didOpen;\n setTimeout(() => didOpen(popup));\n }\n (_globalState$eventEmi2 = globalState.eventEmitter) === null || _globalState$eventEmi2 === void 0 || _globalState$eventEmi2.emit('didOpen', popup);\n};\n\n/**\n * @param {Event} event\n */\nconst swalOpenAnimationFinished = event => {\n const popup = getPopup();\n if (!popup || event.target !== popup) {\n return;\n }\n const container = getContainer();\n if (!container) {\n return;\n }\n popup.removeEventListener('animationend', swalOpenAnimationFinished);\n popup.removeEventListener('transitionend', swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n\n // no-transition is added in init() in case one swal is opened right after another\n removeClass(container, swalClasses['no-transition']);\n};\n\n/**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n */\nconst setScrollingVisibility = (container, popup) => {\n if (hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener('animationend', swalOpenAnimationFinished);\n popup.addEventListener('transitionend', swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n};\n\n/**\n * @param {HTMLElement} container\n * @param {boolean} scrollbarPadding\n * @param {string} initialBodyOverflow\n */\nconst fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n replaceScrollbarWithPadding(initialBodyOverflow);\n }\n\n // sweetalert2/issues/1247\n setTimeout(() => {\n container.scrollTop = 0;\n });\n};\n\n/**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\nconst addClasses = (container, popup, params) => {\n var _params$showClass;\n if ((_params$showClass = params.showClass) !== null && _params$showClass !== void 0 && _params$showClass.backdrop) {\n addClass(container, params.showClass.backdrop);\n }\n if (params.animation) {\n // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(() => {\n var _params$showClass2;\n // Animate popup right after showing it\n if ((_params$showClass2 = params.showClass) !== null && _params$showClass2 !== void 0 && _params$showClass2.popup) {\n addClass(popup, params.showClass.popup);\n }\n // and remove the opacity workaround\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n } else {\n show(popup, 'grid');\n }\n addClass([document.documentElement, document.body], swalClasses.shown);\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n};\n\nvar defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise<string | void>}\n */\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]+$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise<string | void>}\n */\n url: (string, validationMessage) => {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n};\n\n/**\n * @param {SweetAlertOptions} params\n */\nfunction setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (params.inputValidator) {\n return;\n }\n if (params.input === 'email') {\n params.inputValidator = defaultInputValidators['email'];\n }\n if (params.input === 'url') {\n params.inputValidator = defaultInputValidators['url'];\n }\n}\n\n/**\n * @param {SweetAlertOptions} params\n */\nfunction validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n}\n\n/**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\nfunction setParameters(params) {\n setDefaultInputValidators(params);\n\n // showLoaderOnConfirm && preConfirm\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n validateCustomTargetElement(params);\n\n // Replace newlines with <br> in title\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('<br />');\n }\n init(params);\n}\n\n/** @type {SweetAlert} */\nlet currentInstance;\nvar _promise = /*#__PURE__*/new WeakMap();\nclass SweetAlert {\n /**\n * @param {...(SweetAlertOptions | string)} args\n * @this {SweetAlert}\n */\n constructor(...args) {\n /**\n * @type {Promise<SweetAlertResult>}\n */\n _classPrivateFieldInitSpec(this, _promise, /** @type {Promise<SweetAlertResult>} */Promise.resolve({\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n }));\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n currentInstance = this;\n\n // @ts-ignore\n const outerParams = Object.freeze(this.constructor.argsToParams(args));\n\n /** @type {Readonly<SweetAlertOptions>} */\n this.params = outerParams;\n\n /** @type {boolean} */\n this.isAwaitingPromise = false;\n _classPrivateFieldSet2(_promise, this, this._main(currentInstance.params));\n }\n\n /**\n * @param {any} userParams\n * @param {any} mixinParams\n */\n _main(userParams, mixinParams = {}) {\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n if (globalState.currentInstance) {\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(globalState.currentInstance);\n const {\n isAwaitingPromise\n } = globalState.currentInstance;\n globalState.currentInstance._destroy();\n if (!isAwaitingPromise) {\n swalPromiseResolve({\n isDismissed: true\n });\n }\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n globalState.currentInstance = currentInstance;\n const innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams);\n\n // clear the previous timer\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n }\n\n // clear the restore focus timeout\n clearTimeout(globalState.restoreFocusTimeout);\n const domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n }\n\n // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n /**\n * @param {any} onFulfilled\n */\n then(onFulfilled) {\n return _classPrivateFieldGet2(_promise, this).then(onFulfilled);\n }\n\n /**\n * @param {any} onFinally\n */\n finally(onFinally) {\n return _classPrivateFieldGet2(_promise, this).finally(onFinally);\n }\n}\n\n/**\n * @param {SweetAlert} instance\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {Promise<SweetAlertResult>}\n */\nconst swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n /**\n * @param {DismissReason} dismiss\n */\n const dismissWith = dismiss => {\n instance.close({\n isDismissed: true,\n dismiss,\n isConfirmed: false,\n isDenied: false\n });\n };\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n domCache.confirmButton.onclick = () => {\n handleConfirmButtonClick(instance);\n };\n domCache.denyButton.onclick = () => {\n handleDenyButtonClick(instance);\n };\n domCache.cancelButton.onclick = () => {\n handleCancelButtonClick(instance, dismissWith);\n };\n domCache.closeButton.onclick = () => {\n dismissWith(DismissReason.close);\n };\n handlePopupClick(innerParams, domCache, dismissWith);\n addKeydownHandler(globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams);\n\n // Scroll container to top on open (#1247, #1946)\n setTimeout(() => {\n domCache.container.scrollTop = 0;\n });\n });\n};\n\n/**\n * @param {SweetAlertOptions} userParams\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlertOptions}\n */\nconst prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n if (params.animation === false) {\n params.showClass = {\n backdrop: 'swal2-noanimation'\n };\n params.hideClass = {};\n }\n return params;\n};\n\n/**\n * @param {SweetAlert} instance\n * @returns {DomCache}\n */\nconst populateDomCache = instance => {\n const domCache = /** @type {DomCache} */{\n popup: (/** @type {HTMLElement} */getPopup()),\n container: (/** @type {HTMLElement} */getContainer()),\n actions: (/** @type {HTMLElement} */getActions()),\n confirmButton: (/** @type {HTMLElement} */getConfirmButton()),\n denyButton: (/** @type {HTMLElement} */getDenyButton()),\n cancelButton: (/** @type {HTMLElement} */getCancelButton()),\n loader: (/** @type {HTMLElement} */getLoader()),\n closeButton: (/** @type {HTMLElement} */getCloseButton()),\n validationMessage: (/** @type {HTMLElement} */getValidationMessage()),\n progressSteps: (/** @type {HTMLElement} */getProgressSteps())\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n};\n\n/**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst setupTimer = (globalState, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n if (innerParams.timer) {\n globalState.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState.timeout;\n }, innerParams.timer);\n if (innerParams.timerProgressBar && timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(() => {\n if (globalState.timeout && globalState.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(/** @type {number} */innerParams.timer);\n }\n });\n }\n }\n};\n\n/**\n * Initialize focus in the popup:\n *\n * 1. If `toast` is `true`, don't steal focus from the document.\n * 2. Else if there is an [autofocus] element, focus it.\n * 3. Else if `focusConfirm` is `true` and confirm button is visible, focus it.\n * 4. Else if `focusDeny` is `true` and deny button is visible, focus it.\n * 5. Else if `focusCancel` is `true` and cancel button is visible, focus it.\n * 6. Else focus the first focusable element in a popup (if any).\n *\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\nconst initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n // TODO: this is dumb, remove `allowEnterKey` param in the next major version\n if (!callIfFunction(innerParams.allowEnterKey)) {\n warnAboutDeprecation('allowEnterKey');\n blurActiveElement();\n return;\n }\n if (focusAutofocus(domCache)) {\n return;\n }\n if (focusButton(domCache, innerParams)) {\n return;\n }\n setFocus(-1, 1);\n};\n\n/**\n * @param {DomCache} domCache\n * @returns {boolean}\n */\nconst focusAutofocus = domCache => {\n const autofocusElements = Array.from(domCache.popup.querySelectorAll('[autofocus]'));\n for (const autofocusElement of autofocusElements) {\n if (autofocusElement instanceof HTMLElement && isVisible$1(autofocusElement)) {\n autofocusElement.focus();\n return true;\n }\n }\n return false;\n};\n\n/**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\nconst focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible$1(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n if (innerParams.focusCancel && isVisible$1(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n if (innerParams.focusConfirm && isVisible$1(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n return false;\n};\nconst blurActiveElement = () => {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n};\n\n// Assign instance methods from src/instanceMethods/*.js to prototype\nSweetAlert.prototype.disableButtons = disableButtons;\nSweetAlert.prototype.enableButtons = enableButtons;\nSweetAlert.prototype.getInput = getInput;\nSweetAlert.prototype.disableInput = disableInput;\nSweetAlert.prototype.enableInput = enableInput;\nSweetAlert.prototype.hideLoading = hideLoading;\nSweetAlert.prototype.disableLoading = hideLoading;\nSweetAlert.prototype.showValidationMessage = showValidationMessage;\nSweetAlert.prototype.resetValidationMessage = resetValidationMessage;\nSweetAlert.prototype.close = close;\nSweetAlert.prototype.closePopup = close;\nSweetAlert.prototype.closeModal = close;\nSweetAlert.prototype.closeToast = close;\nSweetAlert.prototype.rejectPromise = rejectPromise;\nSweetAlert.prototype.update = update;\nSweetAlert.prototype._destroy = _destroy;\n\n// Assign static methods from src/staticMethods/*.js to constructor\nObject.assign(SweetAlert, staticMethods);\n\n// Proxy to instance methods to constructor, for now, for backwards compatibility\nObject.keys(instanceMethods).forEach(key => {\n /**\n * @param {...(SweetAlertOptions | string | undefined)} args\n * @returns {SweetAlertResult | Promise<SweetAlertResult> | undefined}\n */\n // @ts-ignore: Dynamic property assignment for backwards compatibility\n SweetAlert[key] = function (...args) {\n // @ts-ignore\n if (currentInstance && currentInstance[key]) {\n // @ts-ignore\n return currentInstance[key](...args);\n }\n return undefined;\n };\n});\nSweetAlert.DismissReason = DismissReason;\nSweetAlert.version = '11.26.17';\n\nconst Swal = SweetAlert;\n// @ts-ignore\nSwal.default = Swal;\n\nexport { Swal as default };\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\":root{--swal2-outline: 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-container-padding: 0.625em;--swal2-backdrop: rgba(0, 0, 0, 0.4);--swal2-backdrop-transition: background-color 0.15s;--swal2-width: 32em;--swal2-padding: 0 0 1.25em;--swal2-border: none;--swal2-border-radius: 0.3125rem;--swal2-background: white;--swal2-color: #545454;--swal2-show-animation: swal2-show 0.3s;--swal2-hide-animation: swal2-hide 0.15s forwards;--swal2-icon-zoom: 1;--swal2-icon-animations: true;--swal2-title-padding: 0.8em 1em 0;--swal2-html-container-padding: 1em 1.6em 0.3em;--swal2-input-border: 1px solid #d9d9d9;--swal2-input-border-radius: 0.1875em;--swal2-input-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-background: transparent;--swal2-input-transition: border-color 0.2s, box-shadow 0.2s;--swal2-input-hover-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-focus-border: 1px solid #b4dbed;--swal2-input-focus-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-progress-step-background: #add8e6;--swal2-validation-message-background: #f0f0f0;--swal2-validation-message-color: #666;--swal2-footer-border-color: #eee;--swal2-footer-background: transparent;--swal2-footer-color: inherit;--swal2-timer-progress-bar-background: rgba(0, 0, 0, 0.3);--swal2-close-button-position: initial;--swal2-close-button-inset: auto;--swal2-close-button-font-size: 2.5em;--swal2-close-button-color: #ccc;--swal2-close-button-transition: color 0.2s, box-shadow 0.2s;--swal2-close-button-outline: initial;--swal2-close-button-box-shadow: inset 0 0 0 3px transparent;--swal2-close-button-focus-box-shadow: inset var(--swal2-outline);--swal2-close-button-hover-transform: none;--swal2-actions-justify-content: center;--swal2-actions-width: auto;--swal2-actions-margin: 1.25em auto 0;--swal2-actions-padding: 0;--swal2-actions-border-radius: 0;--swal2-actions-background: transparent;--swal2-action-button-transition: background-color 0.2s, box-shadow 0.2s;--swal2-action-button-hover: black 10%;--swal2-action-button-active: black 10%;--swal2-confirm-button-box-shadow: none;--swal2-confirm-button-border-radius: 0.25em;--swal2-confirm-button-background-color: #7066e0;--swal2-confirm-button-color: #fff;--swal2-deny-button-box-shadow: none;--swal2-deny-button-border-radius: 0.25em;--swal2-deny-button-background-color: #dc3741;--swal2-deny-button-color: #fff;--swal2-cancel-button-box-shadow: none;--swal2-cancel-button-border-radius: 0.25em;--swal2-cancel-button-background-color: #6e7881;--swal2-cancel-button-color: #fff;--swal2-toast-show-animation: swal2-toast-show 0.5s;--swal2-toast-hide-animation: swal2-toast-hide 0.1s forwards;--swal2-toast-border: none;--swal2-toast-box-shadow: 0 0 1px hsl(0deg 0% 0% / 0.075), 0 1px 2px hsl(0deg 0% 0% / 0.075), 1px 2px 4px hsl(0deg 0% 0% / 0.075), 1px 3px 8px hsl(0deg 0% 0% / 0.075), 2px 4px 16px hsl(0deg 0% 0% / 0.075)}[data-swal2-theme=dark]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background: rgba(255, 255, 255, 0.7)}@media(prefers-color-scheme: dark){[data-swal2-theme=auto]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background: rgba(255, 255, 255, 0.7)}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static !important}}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:var(--swal2-container-padding);overflow-x:hidden;transition:var(--swal2-backdrop-transition);-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container)[popover]{width:auto;border:0}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:var(--swal2-width);max-width:100%;padding:var(--swal2-padding);border:var(--swal2-border);border-radius:var(--swal2-border-radius);background:var(--swal2-background);color:var(--swal2-color);font-family:inherit;font-size:1rem;container-name:swal2-popup}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable{cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging{cursor:grabbing}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:var(--swal2-title-padding);color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;overflow-wrap:break-word;cursor:initial}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:var(--swal2-actions-justify-content);width:var(--swal2-actions-width);margin:var(--swal2-actions-margin);padding:var(--swal2-actions-padding);border-radius:var(--swal2-actions-border-radius);background:var(--swal2-actions-background)}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:var(--swal2-action-button-transition);border:none;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border-radius:var(--swal2-confirm-button-border-radius);background:initial;background-color:var(--swal2-confirm-button-background-color);box-shadow:var(--swal2-confirm-button-box-shadow);color:var(--swal2-confirm-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):hover{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):active{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border-radius:var(--swal2-deny-button-border-radius);background:initial;background-color:var(--swal2-deny-button-background-color);box-shadow:var(--swal2-deny-button-box-shadow);color:var(--swal2-deny-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):hover{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):active{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border-radius:var(--swal2-cancel-button-border-radius);background:initial;background-color:var(--swal2-cancel-button-background-color);box-shadow:var(--swal2-cancel-button-box-shadow);color:var(--swal2-cancel-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):hover{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):active{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none;box-shadow:var(--swal2-action-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-styled)[disabled]:not(.swal2-loading){opacity:.4}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid var(--swal2-footer-border-color);background:var(--swal2-footer-background);color:var(--swal2-footer-color);font-size:1em;text-align:center;cursor:initial}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:var(--swal2-border-radius);border-bottom-left-radius:var(--swal2-border-radius)}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:var(--swal2-timer-progress-bar-background)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em;cursor:initial}div:where(.swal2-container) button:where(.swal2-close){position:var(--swal2-close-button-position);inset:var(--swal2-close-button-inset);z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:var(--swal2-close-button-transition);border:none;border-radius:var(--swal2-border-radius);outline:var(--swal2-close-button-outline);background:rgba(0,0,0,0);color:var(--swal2-close-button-color);font-family:monospace;font-size:var(--swal2-close-button-font-size);cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:var(--swal2-close-button-hover-transform);background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:var(--swal2-close-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){z-index:1;justify-content:center;margin:0;padding:var(--swal2-html-container-padding);overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;overflow-wrap:break-word;word-break:break-word;cursor:initial}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:var(--swal2-input-transition);border:var(--swal2-input-border);border-radius:var(--swal2-input-border-radius);background:var(--swal2-input-background);box-shadow:var(--swal2-input-box-shadow);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):hover,div:where(.swal2-container) input:where(.swal2-file):hover,div:where(.swal2-container) textarea:where(.swal2-textarea):hover{box-shadow:var(--swal2-input-hover-box-shadow)}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:var(--swal2-input-focus-border);outline:none;box-shadow:var(--swal2-input-focus-box-shadow)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:var(--swal2-background)}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:var(--swal2-input-background);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:var(--swal2-input-background);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:var(--swal2-background);color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;zoom:var(--swal2-icon-zoom);border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}}div:where(.swal2-icon).swal2-warning{border-color:#f8bb86;color:#f8bb86}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}}div:where(.swal2-icon).swal2-info{border-color:#3fc3ee;color:#3fc3ee}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}}div:where(.swal2-icon).swal2-question{border-color:#87adbd;color:#87adbd}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;border:var(--swal2-toast-border);background:var(--swal2-background);box-shadow:var(--swal2-toast-box-shadow);pointer-events:all}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){height:2em;margin:.5em;font-size:1em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-toast button:where(.swal2-close){grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-toast div:where(.swal2-html-container){margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-toast button:where(.swal2-styled){margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}@container swal2-popup style(--swal2-icon-animations:true){.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}}.swal2-toast.swal2-show{animation:var(--swal2-toast-show-animation)}.swal2-toast.swal2-hide{animation:var(--swal2-toast-hide-animation)}@keyframes swal2-show{0%{transform:translate3d(0, -50px, 0) scale(0.9);opacity:0}100%{transform:translate3d(0, 0, 0) scale(1);opacity:1}}@keyframes swal2-hide{0%{transform:translate3d(0, 0, 0) scale(1);opacity:1}100%{transform:translate3d(0, -50px, 0) scale(0.9);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}\");","import Swal from 'sweetalert2'\nimport '../styles/toast.css'\n\nconst Toast = Swal.mixin({\n toast: true,\n position: 'center',\n iconColor: 'white',\n customClass: {\n popup: 'colored-toast',\n },\n showConfirmButton: false,\n timer: 3000,\n timerProgressBar: true,\n})\n\nexport function showToast({ icon = 'info', title = '' }) {\n return Toast.fire({ icon, title })\n}\n","<template>\n <div class=\"mb-3\">\n <div v-if=\"editable\">\n <div class=\"label-row\">\n <label class=\"form-label fw-bold mb-0\">{{ label }}</label>\n <span v-if=\"templateUrl && previewType !== 'image'\" class=\"template-link ms-2\">\n <a href=\"#\" @click.prevent=\"downloadTemplate\">\n <div v-if=\"downloading\" class=\"d-flex align-items-center\">\n <div class=\"spinner-border spinner-border-sm text-primary me-2\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n </div>\n <span>Downloading...</span>\n </div>\n <div v-else class=\"d-flex align-items-center\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n class=\"me-1\">\n <path d=\"M10 3v10m0 0l-4-4m4 4l4-4M4 17h12\" stroke=\"#2d8cf0\" stroke-width=\"2\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n Download Template\n </div>\n </a>\n </span>\n </div>\n <input ref=\"fileInput\" type=\"file\" :accept=\"computedAccept\" @change=\"onFileChange\" style=\"display: none\" />\n\n <b-button variant=\"outline-secondary\" @click=\"$refs.fileInput.click()\" :disabled=\"uploading\">\n <i class=\"fa fa-upload me-1\"></i>\n {{ uploading ? 'Uploading...' : 'Upload' }}\n </b-button>\n </div>\n <span v-if=\"error\" class=\"error d-block mt-1\">{{ errorMessage }}</span>\n\n <div v-if=\"preview || (value && value.url)\" class=\"mt-3 preview-container\">\n <template v-if=\"currentPreviewType === 'image'\">\n <img :src=\"currentPreviewUrl\" :alt=\"label\" class=\"preview-image\" @click=\"openImageModal\" />\n </template>\n <template v-else>\n <a href=\"#\" @click.prevent=\"openPreview\" class=\"btn btn-sm btn-link p-0\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"me-1\">\n <path d=\"M10 4.5c-5 0-8 5.5-8 5.5s3 5.5 8 5.5 8-5.5 8-5.5-3-5.5-8-5.5zm0 7.5a2 2 0 100-4 2 2 0 000 4z\"\n stroke=\"#888\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n Lihat File{{ currentPreviewType === 'pdf' ? ' (PDF)' : '' }}\n </a>\n </template>\n </div>\n\n <!-- Modal Preview Image -->\n <b-modal v-model=\"showImageModal\" size=\"lg\" centered hide-footer title=\"Preview Gambar\">\n <div class=\"text-center\">\n <img :src=\"currentPreviewUrl\" :alt=\"label\" class=\"modal-preview-image\" />\n </div>\n </b-modal>\n </div>\n</template>\n\n<script>\nimport { uploadFile as apiUploadFile, downloadTemplate as apiDownloadTemplate } from '../api/profileApi';\n\nexport default {\n name: 'SgFileUploader',\n\n props: {\n label: {\n type: String,\n default: 'Upload File',\n },\n value: {\n type: [Object, String, null],\n default: null,\n },\n error: {\n type: Boolean,\n default: false,\n },\n errorMessage: {\n type: String,\n default: 'Wajib upload file',\n },\n endpoint: {\n type: String,\n default: '/api/v1/file/upload',\n },\n accept: {\n type: String,\n default: 'image/*',\n },\n templateUrl: {\n type: String,\n default: '',\n },\n templateLabel: {\n type: String,\n default: '',\n },\n templateType: {\n type: String,\n default: '',\n },\n wordOnly: {\n type: Boolean,\n default: false,\n },\n fileName: {\n type: String,\n default: null,\n },\n editable: {\n type: Boolean,\n default: true,\n },\n },\n\n data() {\n return {\n preview: null,\n previewType: null,\n uploading: false,\n downloading: false,\n showImageModal: false,\n };\n },\n\n computed: {\n computedAccept() {\n // Jika wordOnly aktif, hanya terima file Word\n if (this.wordOnly) {\n return '.doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n }\n // Jika accept sudah diset, gunakan nilai tersebut\n // Jika tidak, default ke image\n return this.accept;\n },\n\n currentPreviewUrl() {\n if (this.preview) return this.preview;\n if (this.value && this.value.url) return this.value.url;\n return null;\n },\n\n currentPreviewType() {\n if (this.preview) return this.previewType;\n if (this.value && this.value.url) return this.getPreviewType(this.value.url);\n return null;\n },\n },\n\n watch: {\n value: {\n immediate: true,\n handler(newVal) {\n this.setPreviewFromValue(newVal);\n },\n },\n },\n\n methods: {\n getPreviewType(url) {\n if (!url) return 'file';\n if (url.match(/\\.(jpg|jpeg|png|gif|webp|svg|bmp|ico)$/i)) return 'image';\n if (url.match(/\\.pdf$/i)) return 'pdf';\n return 'file';\n },\n\n setPreviewFromValue(val) {\n if (val && typeof val === 'object' && val.url) {\n this.preview = val.url;\n this.previewType = this.getPreviewType(val.url);\n } else if (typeof val === 'string' && val) {\n this.preview = val;\n this.previewType = this.getPreviewType(val);\n } else {\n this.preview = null;\n this.previewType = null;\n }\n },\n\n async onFileChange(e) {\n const file = e.target.files[0];\n if (!file) return;\n\n // Validasi file jika wordOnly aktif\n if (this.wordOnly) {\n if (!this.isValidWordFile(file)) {\n this.resetFile();\n this.$toasted.error('Hanya file Word (.doc, .docx) yang diperbolehkan').goAway();\n return;\n }\n }\n\n // Validasi file image jika accept adalah image/*\n if (this.accept === 'image/*' || this.accept.includes('image')) {\n if (!this.isValidImageFile(file)) {\n this.resetFile();\n this.$toasted.error('Hanya file gambar yang diperbolehkan').goAway();\n return;\n }\n }\n\n // Set preview\n this.setFilePreview(file);\n\n // Upload file\n await this.uploadFile(file);\n },\n\n isValidWordFile(file) {\n const allowedTypes = [\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n ];\n const allowedExtensions = ['.doc', '.docx'];\n const fileExt = file.name.substring(file.name.lastIndexOf('.')).toLowerCase();\n\n return allowedTypes.includes(file.type) || allowedExtensions.includes(fileExt);\n },\n\n isValidImageFile(file) {\n const allowedTypes = [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n 'image/svg+xml',\n 'image/bmp',\n ];\n const allowedExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.svg', '.bmp'];\n const fileExt = file.name.substring(file.name.lastIndexOf('.')).toLowerCase();\n\n return allowedTypes.includes(file.type) || allowedExtensions.includes(fileExt);\n },\n\n setFilePreview(file) {\n if (file.type.startsWith('image/')) {\n this.previewType = 'image';\n this.preview = URL.createObjectURL(file);\n } else if (file.type === 'application/pdf') {\n this.previewType = 'pdf';\n this.preview = URL.createObjectURL(file);\n } else {\n this.previewType = 'file';\n this.preview = null;\n }\n },\n\n async uploadFile(file) {\n const formData = new FormData();\n formData.append('file', file);\n\n this.uploading = true;\n\n try {\n const response = await apiUploadFile(this.endpoint, formData, this.wordOnly, this.fileName);\n this.$emit('input', response.data?.data || null);\n this.$emit('change', response.data?.data || null);\n this.$toasted.success('File berhasil diunggah').goAway();\n } catch (error) {\n this.resetFile();\n this.$toasted.error('Gagal mengunggah file').goAway();\n console.error('Upload error:', error);\n } finally {\n this.uploading = false;\n }\n },\n\n async downloadTemplate() {\n if (!this.templateType) return;\n this.downloading = true;\n try {\n const response = await apiDownloadTemplate(this.templateType);\n const url = response.data.data;\n window.open(url, '_blank', 'noopener,noreferrer');\n } catch (error) {\n this.$toasted.error('Gagal mengunduh template').goAway();\n console.error('Download error:', error);\n } finally {\n this.downloading = false;\n }\n },\n\n resetFile() {\n this.$emit('input', null);\n this.$emit('change', null);\n this.$refs.fileInput.value = '';\n },\n\n openImageModal() {\n this.showImageModal = true;\n },\n\n openPreview() {\n // Untuk file non-image (PDF, Word, dll), buka di tab baru\n window.open(this.currentPreviewUrl, '_blank', 'noopener,noreferrer');\n },\n },\n};\n</script>\n\n<style scoped>\n.label-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n}\n\n.template-link a {\n color: #2d8cf0;\n text-decoration: none;\n font-weight: 500;\n font-size: 0.9em;\n transition: color 0.2s;\n}\n\n.template-link a:hover {\n color: #1c6dcf;\n text-decoration: underline;\n}\n\n.error {\n color: #d9534f;\n font-size: 0.875em;\n margin-top: 4px;\n}\n\n.preview-container {\n padding: 12px;\n background-color: #f8f9fa;\n border-radius: 4px;\n border: 1px solid #dee2e6;\n}\n\n.preview-image {\n max-width: 200px;\n max-height: 200px;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n cursor: pointer;\n transition: transform 0.2s, box-shadow 0.2s;\n}\n\n.preview-image:hover {\n transform: scale(1.05);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n}\n\n.modal-preview-image {\n max-width: 100%;\n max-height: 70vh;\n border-radius: 4px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\n}\n</style>","<template>\n <div v-if=\"value\" class=\"modal fade show d-block modal-lg\" tabindex=\"-1\" style=\"background: rgba(0,0,0,0.5);\">\n <div class=\"modal-dialog modal-dialog-centered modal-cropper\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Foto Profil</h5>\n <button type=\"button\" class=\"btn-close\" @click=\"close\" aria-label=\"Close\"></button>\n </div>\n <div class=\"modal-body\">\n <SgFileUploader v-model=\"localPhoto\" />\n </div>\n <div class=\"modal-footer\">\n <button @click=\"save\" type=\"button\" class=\"btn btn-primary rounded-pill px-4\">\n Simpan\n </button>\n <button @click=\"close\" type=\"button\" class=\"btn btn-outline-secondary rounded-pill px-4\">\n Batal\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport SgFileUploader from '../components/SgFileUploader.vue';\n\nexport default {\n name: 'ImageCropModal',\n components: {\n SgFileUploader\n },\n props: {\n value: {\n type: Boolean,\n default: false\n },\n photo: {\n type: Object,\n default: null\n }\n },\n data() {\n return {\n localPhoto: null\n };\n },\n watch: {\n value(newVal) {\n if (newVal) {\n this.localPhoto = this.photo;\n }\n }\n },\n methods: {\n save() {\n this.$emit('save', this.localPhoto);\n },\n close() {\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n</style>","<template>\n <div class=\"card shadow-sm\">\n <!-- Cover Photo -->\n <div class=\"position-relative\"\n style=\"height: 200px; background: linear-gradient(to right, rgb(11, 171, 224), rgb(6, 10, 107));\">\n </div>\n\n <!-- Profile Section -->\n <div class=\"card-body\">\n <!-- Profile Picture -->\n <div class=\"position-relative\" style=\"margin-top: -190px; margin-bottom: 20px;\">\n <div class=\"d-inline-block bg-white p-2 shadow-lg position-relative\">\n <div class=\"d-flex align-items-center justify-center position-relative\"\n style=\"width: 180px; height: 230px; background: linear-gradient(135deg, #64748b, #64748b);\">\n <img v-if=\"user.photo\" :src=\"user.photo?.url\" alt=\"Profile Picture\"\n style=\"width: 180px; height: 230px; object-fit: cover; object-position: center;\" />\n <img v-else\n :src=\"`https://ui-avatars.com/api/?name=${user.name}&size=180&background=64748b&color=ffffff&rounded=false`\"\n alt=\"Profile Picture\" style=\"width: 180px; height: 230px; object-fit: cover; object-position: center;\" />\n <button class=\"btn btn-light position-absolute rounded-circle border border-white shadow-sm\"\n style=\"bottom: 10px; right: 10px; z-index: 2;\" @click=\"showImageCropModal = true\">\n <i class=\"uil uil-camera\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Name and Title -->\n <div class=\"d-flex justify-content-between align-items-start mb-3\">\n <div>\n <div class=\"d-flex align-items-center gap-2 mb-2\">\n <h2 class=\"mb-0\">{{ user.name }}</h2>\n </div>\n <p class=\"text-dark mb-2\">{{ user?.student?.nim }}</p>\n </div>\n </div>\n\n <!-- Education and Work -->\n <div class=\"mb-4\">\n <div class=\"d-flex align-items-center justify-content-between gap-2 mb-2\">\n <div class=\"d-flex align-items-center gap-2\">\n <div class=\"bg-primary rounded d-flex align-items-center justify-content-center\"\n style=\"width: 30px; height: 30px;\">\n <i class=\"bg-primary rounded\" style=\"width: 20px; height: 20px;\"></i>\n </div>\n <span class=\"fw-medium\">{{ user?.student?.campus?.label }}</span>\n <div class=\"bg-warning rounded d-flex align-items-center justify-content-center\"\n style=\"width: 30px; height: 30px;\">\n <span class=\"text-white fw-bold small\"></span>\n </div>\n <span class=\"fw-medium\">{{ user?.student?.school_year?.label }}</span>\n <div class=\"bg-success rounded d-flex align-items-center justify-content-center\"\n style=\"width: 30px; height: 30px;\">\n <span class=\"text-white fw-bold small\"></span>\n </div>\n <span class=\"fw-medium\">{{ user?.student?.semester?.slug }}</span>\n </div>\n <button class=\"btn btn-outline-primary btn-sm\" @click=\"handleResetPassword\">\n <i class=\"uil uil-lock-alt me-1\"></i>\n Reset Password\n </button>\n </div>\n </div>\n </div>\n\n <!-- Image Crop Modal -->\n <ImageCropModal v-model=\"showImageCropModal\" :photo=\"user.photo\" @save=\"handlePhotoSave\" />\n\n <!-- Reset Password Modal -->\n <div class=\"modal fade\" :class=\"{ 'show d-block': showResetPasswordModal }\" tabindex=\"-1\"\n style=\"background-color: rgba(0,0,0,0.5);\" v-if=\"showResetPasswordModal\">\n <div class=\"modal-dialog modal-dialog-centered\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Reset Password</h5>\n <button type=\"button\" class=\"btn-close\" @click=\"closeResetPasswordModal\"></button>\n </div>\n <div class=\"modal-body\">\n <form @submit.prevent=\"submitResetPassword\">\n <div class=\"mb-3\" v-if=\"user && user.password\">\n <label for=\"current_password\" class=\"form-label\">Old Password</label>\n <div class=\"input-group\">\n <input :type=\"showcurrent_password ? 'text' : 'password'\" class=\"form-control\" id=\"current_password\"\n v-model=\"passwordForm.current_password\" required placeholder=\"Enter old password\">\n <button class=\"btn btn-outline-secondary\" type=\"button\"\n @click=\"showcurrent_password = !showcurrent_password\">\n <i :class=\"showcurrent_password ? 'uil uil-eye-slash' : 'uil uil-eye'\"></i>\n </button>\n </div>\n </div>\n <div class=\"mb-3\">\n <label for=\"new_password\" class=\"form-label\">New Password</label>\n <div class=\"input-group\">\n <input :type=\"shownew_password ? 'text' : 'password'\" class=\"form-control\" id=\"new_password\"\n v-model=\"passwordForm.new_password\" required placeholder=\"Enter new password\" minlength=\"8\">\n <button class=\"btn btn-outline-secondary\" type=\"button\" @click=\"shownew_password = !shownew_password\">\n <i :class=\"shownew_password ? 'uil uil-eye-slash' : 'uil uil-eye'\"></i>\n </button>\n </div>\n <small class=\"text-muted\">Password must be at least 8 characters</small>\n </div>\n <div class=\"mb-3\">\n <label for=\"new_password_confirmation\" class=\"form-label\">Confirm New Password</label>\n <div class=\"input-group\">\n <input :type=\"shownew_password_confirmation ? 'text' : 'password'\" class=\"form-control\"\n id=\"new_password_confirmation\" v-model=\"passwordForm.new_password_confirmation\" required\n placeholder=\"Confirm new password\">\n <button class=\"btn btn-outline-secondary\" type=\"button\"\n @click=\"shownew_password_confirmation = !shownew_password_confirmation\">\n <i :class=\"shownew_password_confirmation ? 'uil uil-eye-slash' : 'uil uil-eye'\"></i>\n </button>\n </div>\n <small\n v-if=\"passwordForm.new_password && passwordForm.new_password_confirmation && passwordForm.new_password !== passwordForm.new_password_confirmation\"\n class=\"text-danger\">Passwords do not match</small>\n </div>\n </form>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeResetPasswordModal\">Cancel</button>\n <button type=\"button\" class=\"btn btn-primary\" @click=\"submitResetPassword\" :disabled=\"!isPasswordFormValid\">\n Reset Password\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport ImageCropModal from './ImageCropModal.vue';\n\nexport default {\n name: 'ProfileHeader',\n components: {\n ImageCropModal\n },\n props: {\n user: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n showImageCropModal: false,\n showResetPasswordModal: false,\n passwordForm: {\n current_password: '',\n new_password: '',\n new_password_confirmation: ''\n },\n showcurrent_password: false,\n shownew_password: false,\n shownew_password_confirmation: false\n };\n },\n computed: {\n isPasswordFormValid() {\n return this.passwordForm.new_password && this.passwordForm.new_password_confirmation && this.passwordForm.new_password == this.passwordForm.new_password_confirmation;\n }\n },\n methods: {\n handlePhotoSave(photo) {\n this.$emit('update-photo', photo);\n this.showImageCropModal = false;\n },\n handleResetPassword() {\n this.showResetPasswordModal = true;\n },\n closeResetPasswordModal() {\n this.showResetPasswordModal = false;\n },\n submitResetPassword() {\n this.passwordForm.pass_available = this.user.password ? true : false;\n this.$emit('reset-password', this.passwordForm);\n this.closeResetPasswordModal();\n }\n }\n};\n</script>","export function isDate(value) {\n return value instanceof Date || Object.prototype.toString.call(value) === '[object Date]';\n}\nexport function toDate(value) {\n if (isDate(value)) {\n return new Date(value.getTime());\n }\n\n if (value == null) {\n return new Date(NaN);\n }\n\n return new Date(value);\n}\nexport function isValidDate(value) {\n return isDate(value) && !isNaN(value.getTime());\n}\nexport function startOfWeek(value) {\n var firstDayOfWeek = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (!(firstDayOfWeek >= 0 && firstDayOfWeek <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6');\n }\n\n var date = toDate(value);\n var day = date.getDay();\n var diff = (day + 7 - firstDayOfWeek) % 7;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nexport function startOfWeekYear(value) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$firstDayOfWeek = _ref.firstDayOfWeek,\n firstDayOfWeek = _ref$firstDayOfWeek === void 0 ? 0 : _ref$firstDayOfWeek,\n _ref$firstWeekContain = _ref.firstWeekContainsDate,\n firstWeekContainsDate = _ref$firstWeekContain === void 0 ? 1 : _ref$firstWeekContain;\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7');\n }\n\n var date = toDate(value);\n var year = date.getFullYear();\n var firstDateOfFirstWeek = new Date(0);\n\n for (var i = year + 1; i >= year - 1; i--) {\n firstDateOfFirstWeek.setFullYear(i, 0, firstWeekContainsDate);\n firstDateOfFirstWeek.setHours(0, 0, 0, 0);\n firstDateOfFirstWeek = startOfWeek(firstDateOfFirstWeek, firstDayOfWeek);\n\n if (date.getTime() >= firstDateOfFirstWeek.getTime()) {\n break;\n }\n }\n\n return firstDateOfFirstWeek;\n}\nexport function getWeek(value) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref2$firstDayOfWeek = _ref2.firstDayOfWeek,\n firstDayOfWeek = _ref2$firstDayOfWeek === void 0 ? 0 : _ref2$firstDayOfWeek,\n _ref2$firstWeekContai = _ref2.firstWeekContainsDate,\n firstWeekContainsDate = _ref2$firstWeekContai === void 0 ? 1 : _ref2$firstWeekContai;\n\n var date = toDate(value);\n var firstDateOfThisWeek = startOfWeek(date, firstDayOfWeek);\n var firstDateOfFirstWeek = startOfWeekYear(date, {\n firstDayOfWeek: firstDayOfWeek,\n firstWeekContainsDate: firstWeekContainsDate\n });\n var diff = firstDateOfThisWeek.getTime() - firstDateOfFirstWeek.getTime();\n return Math.round(diff / (7 * 24 * 3600 * 1000)) + 1;\n}","var locale = {\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n weekdaysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n firstDayOfWeek: 0,\n firstWeekContainsDate: 1\n};\nexport default locale;","import { toDate, isValidDate, getWeek } from './util';\nimport defaultLocale from './locale/en';\nvar REGEX_FORMAT = /\\[([^\\]]+)]|YYYY|YY?|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|m{1,2}|s{1,2}|Z{1,2}|S{1,3}|w{1,2}|x|X|a|A/g;\n\nfunction pad(val) {\n var len = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n var output = \"\".concat(Math.abs(val));\n var sign = val < 0 ? '-' : '';\n\n while (output.length < len) {\n output = \"0\".concat(output);\n }\n\n return sign + output;\n}\n\nfunction getOffset(date) {\n return Math.round(date.getTimezoneOffset() / 15) * 15;\n}\n\nfunction formatTimezone(offset) {\n var delimeter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n return sign + pad(hours, 2) + delimeter + pad(minutes, 2);\n}\n\nvar meridiem = function meridiem(h, _, isLowercase) {\n var word = h < 12 ? 'AM' : 'PM';\n return isLowercase ? word.toLocaleLowerCase() : word;\n};\n\nvar formatFlags = {\n Y: function Y(date) {\n var y = date.getFullYear();\n return y <= 9999 ? \"\".concat(y) : \"+\".concat(y);\n },\n // Year: 00, 01, ..., 99\n YY: function YY(date) {\n return pad(date.getFullYear(), 4).substr(2);\n },\n // Year: 1900, 1901, ..., 2099\n YYYY: function YYYY(date) {\n return pad(date.getFullYear(), 4);\n },\n // Month: 1, 2, ..., 12\n M: function M(date) {\n return date.getMonth() + 1;\n },\n // Month: 01, 02, ..., 12\n MM: function MM(date) {\n return pad(date.getMonth() + 1, 2);\n },\n MMM: function MMM(date, locale) {\n return locale.monthsShort[date.getMonth()];\n },\n MMMM: function MMMM(date, locale) {\n return locale.months[date.getMonth()];\n },\n // Day of month: 1, 2, ..., 31\n D: function D(date) {\n return date.getDate();\n },\n // Day of month: 01, 02, ..., 31\n DD: function DD(date) {\n return pad(date.getDate(), 2);\n },\n // Hour: 0, 1, ... 23\n H: function H(date) {\n return date.getHours();\n },\n // Hour: 00, 01, ..., 23\n HH: function HH(date) {\n return pad(date.getHours(), 2);\n },\n // Hour: 1, 2, ..., 12\n h: function h(date) {\n var hours = date.getHours();\n\n if (hours === 0) {\n return 12;\n }\n\n if (hours > 12) {\n return hours % 12;\n }\n\n return hours;\n },\n // Hour: 01, 02, ..., 12\n hh: function hh() {\n var hours = formatFlags.h.apply(formatFlags, arguments);\n return pad(hours, 2);\n },\n // Minute: 0, 1, ..., 59\n m: function m(date) {\n return date.getMinutes();\n },\n // Minute: 00, 01, ..., 59\n mm: function mm(date) {\n return pad(date.getMinutes(), 2);\n },\n // Second: 0, 1, ..., 59\n s: function s(date) {\n return date.getSeconds();\n },\n // Second: 00, 01, ..., 59\n ss: function ss(date) {\n return pad(date.getSeconds(), 2);\n },\n // 1/10 of second: 0, 1, ..., 9\n S: function S(date) {\n return Math.floor(date.getMilliseconds() / 100);\n },\n // 1/100 of second: 00, 01, ..., 99\n SS: function SS(date) {\n return pad(Math.floor(date.getMilliseconds() / 10), 2);\n },\n // Millisecond: 000, 001, ..., 999\n SSS: function SSS(date) {\n return pad(date.getMilliseconds(), 3);\n },\n // Day of week: 0, 1, ..., 6\n d: function d(date) {\n return date.getDay();\n },\n // Day of week: 'Su', 'Mo', ..., 'Sa'\n dd: function dd(date, locale) {\n return locale.weekdaysMin[date.getDay()];\n },\n // Day of week: 'Sun', 'Mon',..., 'Sat'\n ddd: function ddd(date, locale) {\n return locale.weekdaysShort[date.getDay()];\n },\n // Day of week: 'Sunday', 'Monday', ...,'Saturday'\n dddd: function dddd(date, locale) {\n return locale.weekdays[date.getDay()];\n },\n // AM, PM\n A: function A(date, locale) {\n var meridiemFunc = locale.meridiem || meridiem;\n return meridiemFunc(date.getHours(), date.getMinutes(), false);\n },\n // am, pm\n a: function a(date, locale) {\n var meridiemFunc = locale.meridiem || meridiem;\n return meridiemFunc(date.getHours(), date.getMinutes(), true);\n },\n // Timezone: -01:00, +00:00, ... +12:00\n Z: function Z(date) {\n return formatTimezone(getOffset(date), ':');\n },\n // Timezone: -0100, +0000, ... +1200\n ZZ: function ZZ(date) {\n return formatTimezone(getOffset(date));\n },\n // Seconds timestamp: 512969520\n X: function X(date) {\n return Math.floor(date.getTime() / 1000);\n },\n // Milliseconds timestamp: 512969520900\n x: function x(date) {\n return date.getTime();\n },\n w: function w(date, locale) {\n return getWeek(date, {\n firstDayOfWeek: locale.firstDayOfWeek,\n firstWeekContainsDate: locale.firstWeekContainsDate\n });\n },\n ww: function ww(date, locale) {\n return pad(formatFlags.w(date, locale), 2);\n }\n};\nexport function format(val, str) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var formatStr = str ? String(str) : 'YYYY-MM-DDTHH:mm:ss.SSSZ';\n var date = toDate(val);\n\n if (!isValidDate(date)) {\n return 'Invalid Date';\n }\n\n var locale = options.locale || defaultLocale;\n return formatStr.replace(REGEX_FORMAT, function (match, p1) {\n if (p1) {\n return p1;\n }\n\n if (typeof formatFlags[match] === 'function') {\n return \"\".concat(formatFlags[match](date, locale));\n }\n\n return match;\n });\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport defaultLocale from './locale/en';\nimport { startOfWeekYear } from './util';\nvar formattingTokens = /(\\[[^\\[]*\\])|(MM?M?M?|Do|DD?|ddd?d?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|S{1,3}|x|X|ZZ?|.)/g;\nvar match1 = /\\d/; // 0 - 9\n\nvar match2 = /\\d\\d/; // 00 - 99\n\nvar match3 = /\\d{3}/; // 000 - 999\n\nvar match4 = /\\d{4}/; // 0000 - 9999\n\nvar match1to2 = /\\d\\d?/; // 0 - 99\n\nvar matchShortOffset = /[+-]\\d\\d:?\\d\\d/; // +00:00 -00:00 +0000 or -0000\n\nvar matchSigned = /[+-]?\\d+/; // -inf - inf\n\nvar matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n// const matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i; // Word\n\nvar YEAR = 'year';\nvar MONTH = 'month';\nvar DAY = 'day';\nvar HOUR = 'hour';\nvar MINUTE = 'minute';\nvar SECOND = 'second';\nvar MILLISECOND = 'millisecond';\nvar parseFlags = {};\n\nvar addParseFlag = function addParseFlag(token, regex, callback) {\n var tokens = Array.isArray(token) ? token : [token];\n var func;\n\n if (typeof callback === 'string') {\n func = function func(input) {\n var value = parseInt(input, 10);\n return _defineProperty({}, callback, value);\n };\n } else {\n func = callback;\n }\n\n tokens.forEach(function (key) {\n parseFlags[key] = [regex, func];\n });\n};\n\nvar escapeStringRegExp = function escapeStringRegExp(str) {\n return str.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n};\n\nvar matchWordRegExp = function matchWordRegExp(localeKey) {\n return function (locale) {\n var array = locale[localeKey];\n\n if (!Array.isArray(array)) {\n throw new Error(\"Locale[\".concat(localeKey, \"] need an array\"));\n }\n\n return new RegExp(array.map(escapeStringRegExp).join('|'));\n };\n};\n\nvar matchWordCallback = function matchWordCallback(localeKey, key) {\n return function (input, locale) {\n var array = locale[localeKey];\n\n if (!Array.isArray(array)) {\n throw new Error(\"Locale[\".concat(localeKey, \"] need an array\"));\n }\n\n var index = array.indexOf(input);\n\n if (index < 0) {\n throw new Error('Invalid Word');\n }\n\n return _defineProperty({}, key, index);\n };\n};\n\naddParseFlag('Y', matchSigned, YEAR);\naddParseFlag('YY', match2, function (input) {\n var year = new Date().getFullYear();\n var cent = Math.floor(year / 100);\n var value = parseInt(input, 10);\n value = (value > 68 ? cent - 1 : cent) * 100 + value;\n return _defineProperty({}, YEAR, value);\n});\naddParseFlag('YYYY', match4, YEAR);\naddParseFlag('M', match1to2, function (input) {\n return _defineProperty({}, MONTH, parseInt(input, 10) - 1);\n});\naddParseFlag('MM', match2, function (input) {\n return _defineProperty({}, MONTH, parseInt(input, 10) - 1);\n});\naddParseFlag('MMM', matchWordRegExp('monthsShort'), matchWordCallback('monthsShort', MONTH));\naddParseFlag('MMMM', matchWordRegExp('months'), matchWordCallback('months', MONTH));\naddParseFlag('D', match1to2, DAY);\naddParseFlag('DD', match2, DAY);\naddParseFlag(['H', 'h'], match1to2, HOUR);\naddParseFlag(['HH', 'hh'], match2, HOUR);\naddParseFlag('m', match1to2, MINUTE);\naddParseFlag('mm', match2, MINUTE);\naddParseFlag('s', match1to2, SECOND);\naddParseFlag('ss', match2, SECOND);\naddParseFlag('S', match1, function (input) {\n return _defineProperty({}, MILLISECOND, parseInt(input, 10) * 100);\n});\naddParseFlag('SS', match2, function (input) {\n return _defineProperty({}, MILLISECOND, parseInt(input, 10) * 10);\n});\naddParseFlag('SSS', match3, MILLISECOND);\n\nfunction matchMeridiem(locale) {\n return locale.meridiemParse || /[ap]\\.?m?\\.?/i;\n}\n\nfunction defaultIsPM(input) {\n return \"\".concat(input).toLowerCase().charAt(0) === 'p';\n}\n\naddParseFlag(['A', 'a'], matchMeridiem, function (input, locale) {\n var isPM = typeof locale.isPM === 'function' ? locale.isPM(input) : defaultIsPM(input);\n return {\n isPM: isPM\n };\n});\n\nfunction offsetFromString(str) {\n var _ref8 = str.match(/([+-]|\\d\\d)/g) || ['-', '0', '0'],\n _ref9 = _slicedToArray(_ref8, 3),\n symbol = _ref9[0],\n hour = _ref9[1],\n minute = _ref9[2];\n\n var minutes = parseInt(hour, 10) * 60 + parseInt(minute, 10);\n\n if (minutes === 0) {\n return 0;\n }\n\n return symbol === '+' ? -minutes : +minutes;\n}\n\naddParseFlag(['Z', 'ZZ'], matchShortOffset, function (input) {\n return {\n offset: offsetFromString(input)\n };\n});\naddParseFlag('x', matchSigned, function (input) {\n return {\n date: new Date(parseInt(input, 10))\n };\n});\naddParseFlag('X', matchTimestamp, function (input) {\n return {\n date: new Date(parseFloat(input) * 1000)\n };\n});\naddParseFlag('d', match1, 'weekday');\naddParseFlag('dd', matchWordRegExp('weekdaysMin'), matchWordCallback('weekdaysMin', 'weekday'));\naddParseFlag('ddd', matchWordRegExp('weekdaysShort'), matchWordCallback('weekdaysShort', 'weekday'));\naddParseFlag('dddd', matchWordRegExp('weekdays'), matchWordCallback('weekdays', 'weekday'));\naddParseFlag('w', match1to2, 'week');\naddParseFlag('ww', match2, 'week');\n\nfunction to24hour(hour, isPM) {\n if (hour !== undefined && isPM !== undefined) {\n if (isPM) {\n if (hour < 12) {\n return hour + 12;\n }\n } else if (hour === 12) {\n return 0;\n }\n }\n\n return hour;\n}\n\nfunction getFullInputArray(input) {\n var backupDate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();\n var result = [0, 0, 1, 0, 0, 0, 0];\n var backupArr = [backupDate.getFullYear(), backupDate.getMonth(), backupDate.getDate(), backupDate.getHours(), backupDate.getMinutes(), backupDate.getSeconds(), backupDate.getMilliseconds()];\n var useBackup = true;\n\n for (var i = 0; i < 7; i++) {\n if (input[i] === undefined) {\n result[i] = useBackup ? backupArr[i] : result[i];\n } else {\n result[i] = input[i];\n useBackup = false;\n }\n }\n\n return result;\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n var date;\n\n if (y < 100 && y >= 0) {\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate() {\n var date;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var y = args[0];\n\n if (y < 100 && y >= 0) {\n args[0] += 400;\n date = new Date(Date.UTC.apply(Date, args)); // eslint-disable-next-line no-restricted-globals\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(Date, args));\n }\n\n return date;\n}\n\nfunction makeParser(dateString, format, locale) {\n var tokens = format.match(formattingTokens);\n\n if (!tokens) {\n throw new Error();\n }\n\n var length = tokens.length;\n var mark = {};\n\n for (var i = 0; i < length; i += 1) {\n var token = tokens[i];\n var parseTo = parseFlags[token];\n\n if (!parseTo) {\n var word = token.replace(/^\\[|\\]$/g, '');\n\n if (dateString.indexOf(word) === 0) {\n dateString = dateString.substr(word.length);\n } else {\n throw new Error('not match');\n }\n } else {\n var regex = typeof parseTo[0] === 'function' ? parseTo[0](locale) : parseTo[0];\n var parser = parseTo[1];\n var value = (regex.exec(dateString) || [])[0];\n var obj = parser(value, locale);\n mark = _objectSpread({}, mark, {}, obj);\n dateString = dateString.replace(value, '');\n }\n }\n\n return mark;\n}\n\nexport function parse(str, format) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n try {\n var _options$locale = options.locale,\n _locale = _options$locale === void 0 ? defaultLocale : _options$locale,\n _options$backupDate = options.backupDate,\n backupDate = _options$backupDate === void 0 ? new Date() : _options$backupDate;\n\n var parseResult = makeParser(str, format, _locale);\n var year = parseResult.year,\n month = parseResult.month,\n day = parseResult.day,\n hour = parseResult.hour,\n minute = parseResult.minute,\n second = parseResult.second,\n millisecond = parseResult.millisecond,\n isPM = parseResult.isPM,\n date = parseResult.date,\n offset = parseResult.offset,\n weekday = parseResult.weekday,\n week = parseResult.week;\n\n if (date) {\n return date;\n }\n\n var inputArray = [year, month, day, hour, minute, second, millisecond];\n inputArray[3] = to24hour(inputArray[3], isPM); // check week\n\n if (week !== undefined && month === undefined && day === undefined) {\n // new Date(year, 3) make sure in current year\n var firstDate = startOfWeekYear(year === undefined ? backupDate : new Date(year, 3), {\n firstDayOfWeek: _locale.firstDayOfWeek,\n firstWeekContainsDate: _locale.firstWeekContainsDate\n });\n return new Date(firstDate.getTime() + (week - 1) * 7 * 24 * 3600 * 1000);\n }\n\n var parsedDate;\n var result = getFullInputArray(inputArray, backupDate);\n\n if (offset !== undefined) {\n result[6] += offset * 60 * 1000;\n parsedDate = createUTCDate.apply(void 0, _toConsumableArray(result));\n } else {\n parsedDate = createDate.apply(void 0, _toConsumableArray(result));\n } // check weekday\n\n\n if (weekday !== undefined && parsedDate.getDay() !== weekday) {\n return new Date(NaN);\n }\n\n return parsedDate;\n } catch (e) {\n return new Date(NaN);\n }\n}","import { getWeek, format, parse } from 'date-format-parse';\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _extends$1() {\n return _extends$1 = Object.assign || function (a) {\n for (var b, c = 1; c < arguments.length; c++) {\n for (var d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && (a[d] = b[d]);\n }\n }\n\n return a;\n }, _extends$1.apply(this, arguments);\n}\n\nvar normalMerge = [\"attrs\", \"props\", \"domProps\"],\n toArrayMerge = [\"class\", \"style\", \"directives\"],\n functionalMerge = [\"on\", \"nativeOn\"],\n mergeJsxProps = function mergeJsxProps(a) {\n return a.reduce(function (c, a) {\n for (var b in a) {\n if (!c[b]) c[b] = a[b];else if (-1 !== normalMerge.indexOf(b)) c[b] = _extends$1({}, c[b], a[b]);else if (-1 !== toArrayMerge.indexOf(b)) {\n var d = c[b] instanceof Array ? c[b] : [c[b]],\n e = a[b] instanceof Array ? a[b] : [a[b]];\n c[b] = d.concat(e);\n } else if (-1 !== functionalMerge.indexOf(b)) {\n for (var f in a[b]) {\n if (c[b][f]) {\n var g = c[b][f] instanceof Array ? c[b][f] : [c[b][f]],\n h = a[b][f] instanceof Array ? a[b][f] : [a[b][f]];\n c[b][f] = g.concat(h);\n } else c[b][f] = a[b][f];\n }\n } else if (\"hook\" == b) for (var i in a[b]) {\n c[b][i] = c[b][i] ? mergeFn(c[b][i], a[b][i]) : a[b][i];\n } else c[b] = a[b];\n }\n\n return c;\n }, {});\n},\n mergeFn = function mergeFn(a, b) {\n return function () {\n a && a.apply(this, arguments), b && b.apply(this, arguments);\n };\n};\n\nvar helper = mergeJsxProps;\n\n// new Date(10, 0, 1) The year from 0 to 99 will be incremented by 1900 automatically.\nfunction createDate(y) {\n var M = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var d = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var h = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var m = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var s = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n var ms = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;\n var date = new Date(y, M, d, h, m, s, ms);\n\n if (y < 100 && y >= 0) {\n date.setFullYear(y);\n }\n\n return date;\n}\nfunction isValidDate(date) {\n return date instanceof Date && !isNaN(date);\n}\nfunction isValidRangeDate(date) {\n return Array.isArray(date) && date.length === 2 && date.every(isValidDate) && date[0] <= date[1];\n}\nfunction isValidDates(dates) {\n return Array.isArray(dates) && dates.every(isValidDate);\n}\nfunction getValidDate(value) {\n var date = new Date(value);\n\n if (isValidDate(date)) {\n return date;\n }\n\n for (var _len = arguments.length, backup = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n backup[_key - 1] = arguments[_key];\n }\n\n if (backup.length) {\n return getValidDate.apply(void 0, backup);\n }\n\n return new Date();\n}\nfunction startOfYear(value) {\n var date = new Date(value);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction startOfMonth(value) {\n var date = new Date(value);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction startOfDay(value) {\n var date = new Date(value);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction getCalendar(_ref) {\n var firstDayOfWeek = _ref.firstDayOfWeek,\n year = _ref.year,\n month = _ref.month;\n var arr = []; // change to the last day of the last month\n\n var calendar = createDate(year, month, 0);\n var lastDayInLastMonth = calendar.getDate(); // getDay() 0 is Sunday, 1 is Monday\n\n var firstDayInLastMonth = lastDayInLastMonth - (calendar.getDay() + 7 - firstDayOfWeek) % 7;\n\n for (var i = firstDayInLastMonth; i <= lastDayInLastMonth; i++) {\n arr.push(createDate(year, month, i - lastDayInLastMonth));\n } // change to the last day of the current month\n\n\n calendar.setMonth(month + 1, 0);\n var lastDayInCurrentMonth = calendar.getDate();\n\n for (var _i = 1; _i <= lastDayInCurrentMonth; _i++) {\n arr.push(createDate(year, month, _i));\n }\n\n var lastMonthLength = lastDayInLastMonth - firstDayInLastMonth + 1;\n var nextMonthLength = 6 * 7 - lastMonthLength - lastDayInCurrentMonth;\n\n for (var _i2 = 1; _i2 <= nextMonthLength; _i2++) {\n arr.push(createDate(year, month, lastDayInCurrentMonth + _i2));\n }\n\n return arr;\n}\nfunction setMonth(dirtyDate, dirtyMonth) {\n var date = new Date(dirtyDate);\n var month = typeof dirtyMonth === 'function' ? dirtyMonth(date.getMonth()) : Number(dirtyMonth);\n var year = date.getFullYear();\n var daysInMonth = createDate(year, month + 1, 0).getDate();\n var day = date.getDate();\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}\nfunction setYear(dirtyDate, dirtyYear) {\n var date = new Date(dirtyDate);\n var year = typeof dirtyYear === 'function' ? dirtyYear(date.getFullYear()) : dirtyYear;\n date.setFullYear(year);\n return date;\n}\nfunction assignTime(target, source) {\n var date = new Date(target);\n var time = new Date(source);\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds());\n return date;\n}\n\n/**\n * chunk the array\n * @param {Array} arr\n * @param {Number} size\n */\nfunction chunk(arr, size) {\n if (!Array.isArray(arr)) {\n return [];\n }\n\n var result = [];\n var len = arr.length;\n var i = 0;\n size = size || len;\n\n while (i < len) {\n result.push(arr.slice(i, i += size));\n }\n\n return result;\n}\n/**\n * isObject\n * @param {*} obj\n * @returns {Boolean}\n */\n\nfunction isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * pick object\n * @param {Object} obj\n * @param {Array|String} props\n */\n\nfunction pick(obj, props) {\n if (!isObject(obj)) return {};\n\n if (!Array.isArray(props)) {\n props = [props];\n }\n\n var res = {};\n props.forEach(function (prop) {\n if (prop in obj) {\n res[prop] = obj[prop];\n }\n });\n return res;\n}\n/**\n * deep merge two object without merging array\n * @param {object} target\n * @param {object} source\n */\n\nfunction mergeDeep(target, source) {\n if (!isObject(target)) {\n return {};\n }\n\n var result = target;\n\n if (isObject(source)) {\n Object.keys(source).forEach(function (key) {\n var value = source[key];\n\n if (isObject(value) && isObject(target[key])) {\n value = mergeDeep(target[key], value);\n }\n\n result = _objectSpread2({}, result, _defineProperty({}, key, value));\n });\n }\n\n return result;\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 en = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar locale = {\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n weekdaysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n firstDayOfWeek: 0,\n firstWeekContainsDate: 1\n};\nvar _default = locale;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n});\n\nvar en$1 = unwrapExports(en);\n\nvar lang = {\n formatLocale: en$1,\n yearFormat: 'YYYY',\n monthFormat: 'MMM',\n monthBeforeYear: true\n};\n\nvar defaultLocale = 'en';\nvar locales = {};\nlocales[defaultLocale] = lang;\nfunction locale(name, object, isLocal) {\n if (typeof name !== 'string') return locales[defaultLocale];\n var l = defaultLocale;\n\n if (locales[name]) {\n l = name;\n }\n\n if (object) {\n locales[name] = object;\n l = name;\n }\n\n if (!isLocal) {\n defaultLocale = l;\n }\n\n return locales[name] || locales[defaultLocale];\n}\n/**\n * get locale object\n * @param {string} name lang\n */\n\nfunction getLocale(name) {\n return locale(name, null, true);\n}\n\n/* istanbul ignore file */\nfunction rafThrottle(fn) {\n var isRunning = false;\n return function fnBinfRaf() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (isRunning) return;\n isRunning = true;\n requestAnimationFrame(function () {\n isRunning = false;\n fn.apply(_this, args);\n });\n };\n}\n\n/**\n * get the hidden element width, height\n * @param {HTMLElement} element dom\n */\nfunction getPopupElementSize(element) {\n var originalDisplay = element.style.display;\n var originalVisibility = element.style.visibility;\n element.style.display = 'block';\n element.style.visibility = 'hidden';\n var styles = window.getComputedStyle(element);\n var width = element.offsetWidth + parseInt(styles.marginLeft, 10) + parseInt(styles.marginRight, 10);\n var height = element.offsetHeight + parseInt(styles.marginTop, 10) + parseInt(styles.marginBottom, 10);\n element.style.display = originalDisplay;\n element.style.visibility = originalVisibility;\n return {\n width: width,\n height: height\n };\n}\n/**\n * get the popup position\n * @param {HTMLElement} el relative element\n * @param {Number} targetWidth target element's width\n * @param {Number} targetHeight target element's height\n * @param {Boolean} fixed\n */\n\nfunction getRelativePosition(el, targetWidth, targetHeight, fixed) {\n var left = 0;\n var top = 0;\n var offsetX = 0;\n var offsetY = 0;\n var relativeRect = el.getBoundingClientRect();\n var dw = document.documentElement.clientWidth;\n var dh = document.documentElement.clientHeight;\n\n if (fixed) {\n offsetX = window.pageXOffset + relativeRect.left;\n offsetY = window.pageYOffset + relativeRect.top;\n }\n\n if (dw - relativeRect.left < targetWidth && relativeRect.right < targetWidth) {\n left = offsetX - relativeRect.left + 1;\n } else if (relativeRect.left + relativeRect.width / 2 <= dw / 2) {\n left = offsetX;\n } else {\n left = offsetX + relativeRect.width - targetWidth;\n }\n\n if (relativeRect.top <= targetHeight && dh - relativeRect.bottom <= targetHeight) {\n top = offsetY + dh - relativeRect.top - targetHeight;\n } else if (relativeRect.top + relativeRect.height / 2 <= dh / 2) {\n top = offsetY + relativeRect.height;\n } else {\n top = offsetY - targetHeight;\n }\n\n return {\n left: \"\".concat(left, \"px\"),\n top: \"\".concat(top, \"px\")\n };\n}\nfunction getScrollParent(node) {\n var until = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.body;\n\n if (!node || node === until) {\n return null;\n }\n\n var style = function style(value, prop) {\n return getComputedStyle(value, null).getPropertyValue(prop);\n };\n\n var regex = /(auto|scroll)/;\n var scroll = regex.test(style(node, 'overflow') + style(node, 'overflow-y') + style(node, 'overflow-x'));\n return scroll ? node : getScrollParent(node.parentNode, until);\n}\n\n//\nvar script = {\n name: 'Popup',\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n visible: {\n type: Boolean,\n default: false\n },\n appendToBody: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n top: '',\n left: ''\n };\n },\n watch: {\n visible: {\n immediate: true,\n handler: function handler(val) {\n var _this = this;\n\n this.$nextTick(function () {\n if (val) {\n _this.displayPopup();\n }\n });\n }\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n if (this.appendToBody) {\n document.body.appendChild(this.$el);\n }\n\n this._clickoutEvent = 'ontouchend' in document ? 'touchstart' : 'mousedown';\n document.addEventListener(this._clickoutEvent, this.handleClickOutside); // change the popup position when resize or scroll\n\n var relativeElement = this.$parent.$el;\n this._displayPopup = rafThrottle(function () {\n return _this2.displayPopup();\n });\n this._scrollParent = getScrollParent(relativeElement) || window;\n\n this._scrollParent.addEventListener('scroll', this._displayPopup);\n\n window.addEventListener('resize', this._displayPopup);\n },\n beforeDestroy: function beforeDestroy() {\n if (this.appendToBody && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el);\n }\n\n document.removeEventListener(this._clickoutEvent, this.handleClickOutside);\n\n this._scrollParent.removeEventListener('scroll', this._displayPopup);\n\n window.removeEventListener('resize', this._displayPopup);\n },\n methods: {\n handleClickOutside: function handleClickOutside(evt) {\n if (!this.visible) return;\n var target = evt.target;\n var el = this.$el;\n\n if (el && !el.contains(target)) {\n this.$emit('clickoutside', evt);\n }\n },\n displayPopup: function displayPopup() {\n if (!this.visible) return;\n var popup = this.$el;\n var relativeElement = this.$parent.$el;\n var appendToBody = this.appendToBody;\n\n if (!this._popupRect) {\n this._popupRect = getPopupElementSize(popup);\n }\n\n var _this$_popupRect = this._popupRect,\n width = _this$_popupRect.width,\n height = _this$_popupRect.height;\n\n var _getRelativePosition = getRelativePosition(relativeElement, width, height, appendToBody),\n left = _getRelativePosition.left,\n top = _getRelativePosition.top;\n\n this.left = left;\n this.top = top;\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = 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\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\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 ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('transition', {\n attrs: {\n \"name\": _vm.prefixClass + \"-zoom-in-down\"\n }\n }, [_vm.visible ? _c('div', {\n class: _vm.prefixClass + \"-datepicker-main \" + _vm.prefixClass + \"-datepicker-popup\",\n style: {\n top: _vm.top,\n left: _vm.left,\n position: 'absolute'\n }\n }, [_vm._t(\"default\")], 2) : _vm._e()]);\n};\n\nvar __vue_staticRenderFns__ = [];\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\n/* script */\n\n/* template */\nvar __vue_render__$1 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('svg', {\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 1024 1024\",\n \"width\": \"1em\",\n \"height\": \"1em\"\n }\n }, [_c('path', {\n attrs: {\n \"d\": \"M940.218182 107.054545h-209.454546V46.545455h-65.163636v60.50909H363.054545V46.545455H297.890909v60.50909H83.781818c-18.618182 0-32.581818 13.963636-32.581818 32.581819v805.236363c0 18.618182 13.963636 32.581818 32.581818 32.581818h861.090909c18.618182 0 32.581818-13.963636 32.581818-32.581818V139.636364c-4.654545-18.618182-18.618182-32.581818-37.236363-32.581819zM297.890909 172.218182V232.727273h65.163636V172.218182h307.2V232.727273h65.163637V172.218182h176.872727v204.8H116.363636V172.218182h181.527273zM116.363636 912.290909V442.181818h795.927273v470.109091H116.363636z\"\n }\n })]);\n};\n\nvar __vue_staticRenderFns__$1 = [];\n/* style */\n\nvar __vue_inject_styles__$1 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$1 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$1 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$1 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$1 = normalizeComponent({\n render: __vue_render__$1,\n staticRenderFns: __vue_staticRenderFns__$1\n}, __vue_inject_styles__$1, {}, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, undefined, undefined, undefined);\n\n/* script */\n\n/* template */\nvar __vue_render__$2 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('svg', {\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 24 24\",\n \"width\": \"1em\",\n \"height\": \"1em\"\n }\n }, [_c('path', {\n attrs: {\n \"d\": \"M0 0h24v24H0z\",\n \"fill\": \"none\"\n }\n }), _vm._v(\" \"), _c('path', {\n attrs: {\n \"d\": \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }\n }), _vm._v(\" \"), _c('path', {\n attrs: {\n \"d\": \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n }\n })]);\n};\n\nvar __vue_staticRenderFns__$2 = [];\n/* style */\n\nvar __vue_inject_styles__$2 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$2 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$2 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$2 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$2 = normalizeComponent({\n render: __vue_render__$2,\n staticRenderFns: __vue_staticRenderFns__$2\n}, __vue_inject_styles__$2, {}, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, false, undefined, undefined, undefined);\n\n/* script */\n\n/* template */\nvar __vue_render__$3 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('svg', {\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 1024 1024\",\n \"width\": \"1em\",\n \"height\": \"1em\"\n }\n }, [_c('path', {\n attrs: {\n \"d\": \"M810.005333 274.005333l-237.994667 237.994667 237.994667 237.994667-60.010667 60.010667-237.994667-237.994667-237.994667 237.994667-60.010667-60.010667 237.994667-237.994667-237.994667-237.994667 60.010667-60.010667 237.994667 237.994667 237.994667-237.994667z\"\n }\n })]);\n};\n\nvar __vue_staticRenderFns__$3 = [];\n/* style */\n\nvar __vue_inject_styles__$3 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$3 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$3 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$3 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$3 = normalizeComponent({\n render: __vue_render__$3,\n staticRenderFns: __vue_staticRenderFns__$3\n}, __vue_inject_styles__$3, {}, __vue_scope_id__$3, __vue_is_functional_template__$3, __vue_module_identifier__$3, false, undefined, undefined, undefined);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar script$1 = {\n props: {\n type: String,\n disabled: Boolean\n },\n inject: {\n prefixClass: {\n default: 'mx'\n }\n }\n};\n\n/* script */\nvar __vue_script__$1 = script$1;\n/* template */\n\nvar __vue_render__$4 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('button', _vm._g({\n class: [_vm.prefixClass + \"-btn \" + _vm.prefixClass + \"-btn-text \" + _vm.prefixClass + \"-btn-icon-\" + _vm.type, {\n disabled: _vm.disabled\n }],\n attrs: {\n \"type\": \"button\",\n \"disabled\": _vm.disabled\n }\n }, _vm.$listeners), [_c('i', {\n class: _vm.prefixClass + \"-icon-\" + _vm.type\n })]);\n};\n\nvar __vue_staticRenderFns__$4 = [];\n/* style */\n\nvar __vue_inject_styles__$4 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$4 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$4 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$4 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$4 = normalizeComponent({\n render: __vue_render__$4,\n staticRenderFns: __vue_staticRenderFns__$4\n}, __vue_inject_styles__$4, __vue_script__$1, __vue_scope_id__$4, __vue_is_functional_template__$4, __vue_module_identifier__$4, false, undefined, undefined, undefined);\n\nvar script$2 = {\n name: 'TableDate',\n components: {\n IconButton: __vue_component__$4\n },\n inject: {\n getLocale: {\n default: function _default() {\n return getLocale;\n }\n },\n getWeek: {\n default: function _default() {\n return getWeek;\n }\n },\n prefixClass: {\n default: 'mx'\n },\n onDateMouseEnter: {\n default: undefined\n },\n onDateMouseLeave: {\n default: undefined\n }\n },\n props: {\n disabledCalendarChanger: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n calendar: {\n type: Date,\n default: function _default() {\n return new Date();\n }\n },\n showWeekNumber: {\n type: Boolean,\n default: false\n },\n titleFormat: {\n type: String,\n default: 'YYYY-MM-DD'\n },\n getRowClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n },\n getCellClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n }\n },\n computed: {\n firstDayOfWeek: function firstDayOfWeek() {\n return this.getLocale().formatLocale.firstDayOfWeek || 0;\n },\n yearMonth: function yearMonth() {\n var _this$getLocale = this.getLocale(),\n yearFormat = _this$getLocale.yearFormat,\n monthBeforeYear = _this$getLocale.monthBeforeYear,\n _this$getLocale$month = _this$getLocale.monthFormat,\n monthFormat = _this$getLocale$month === void 0 ? 'MMM' : _this$getLocale$month;\n\n var yearLabel = {\n panel: 'year',\n label: this.formatDate(this.calendar, yearFormat)\n };\n var monthLabel = {\n panel: 'month',\n label: this.formatDate(this.calendar, monthFormat)\n };\n return monthBeforeYear ? [monthLabel, yearLabel] : [yearLabel, monthLabel];\n },\n days: function days() {\n var locale = this.getLocale();\n var days = locale.days || locale.formatLocale.weekdaysMin;\n return days.concat(days).slice(this.firstDayOfWeek, this.firstDayOfWeek + 7);\n },\n dates: function dates() {\n var year = this.calendar.getFullYear();\n var month = this.calendar.getMonth();\n var arr = getCalendar({\n firstDayOfWeek: this.firstDayOfWeek,\n year: year,\n month: month\n });\n return chunk(arr, 7);\n }\n },\n methods: {\n isDisabledArrows: function isDisabledArrows(type) {\n var date = new Date(this.calendar);\n\n switch (type) {\n case 'last-year':\n date.setFullYear(date.getFullYear() - 1, date.getMonth() + 1, 0);\n date.setHours(23, 59, 59, 999);\n break;\n\n case 'next-year':\n date.setFullYear(date.getFullYear() + 1);\n break;\n\n case 'last-month':\n date.setMonth(date.getMonth(), 0);\n date.setHours(23, 59, 59, 999);\n break;\n\n case 'next-month':\n date.setMonth(date.getMonth() + 1);\n break;\n }\n\n return this.disabledCalendarChanger(date, type);\n },\n handleIconLeftClick: function handleIconLeftClick() {\n this.$emit('changecalendar', setMonth(this.calendar, function (v) {\n return v - 1;\n }), 'last-month');\n },\n handleIconRightClick: function handleIconRightClick() {\n this.$emit('changecalendar', setMonth(this.calendar, function (v) {\n return v + 1;\n }), 'next-month');\n },\n handleIconDoubleLeftClick: function handleIconDoubleLeftClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v - 1;\n }), 'last-year');\n },\n handleIconDoubleRightClick: function handleIconDoubleRightClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v + 1;\n }), 'next-year');\n },\n handlePanelChange: function handlePanelChange(panel) {\n this.$emit('changepanel', panel);\n },\n handleMouseEnter: function handleMouseEnter(cell) {\n if (typeof this.onDateMouseEnter === 'function') {\n this.onDateMouseEnter(cell);\n }\n },\n handleMouseLeave: function handleMouseLeave(cell) {\n if (typeof this.onDateMouseLeave === 'function') {\n this.onDateMouseLeave(cell);\n }\n },\n handleCellClick: function handleCellClick(evt) {\n var target = evt.target;\n\n if (target.tagName.toUpperCase() === 'DIV') {\n target = target.parentNode;\n }\n\n var index = target.getAttribute('data-row-col');\n\n if (index) {\n var _index$split$map = index.split(',').map(function (v) {\n return parseInt(v, 10);\n }),\n _index$split$map2 = _slicedToArray(_index$split$map, 2),\n row = _index$split$map2[0],\n col = _index$split$map2[1];\n\n var date = this.dates[row][col];\n this.$emit('select', new Date(date));\n }\n },\n formatDate: function formatDate(date, fmt) {\n return format(date, fmt, {\n locale: this.getLocale().formatLocale\n });\n },\n getCellTitle: function getCellTitle(date) {\n var fmt = this.titleFormat;\n return this.formatDate(date, fmt);\n },\n getWeekNumber: function getWeekNumber(date) {\n return this.getWeek(date, this.getLocale().formatLocale);\n }\n }\n};\n\n/* script */\nvar __vue_script__$2 = script$2;\n/* template */\n\nvar __vue_render__$5 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-calendar \" + _vm.prefixClass + \"-calendar-panel-date\"\n }, [_c('div', {\n class: _vm.prefixClass + \"-calendar-header\"\n }, [_c('icon-button', {\n attrs: {\n \"type\": \"double-left\",\n \"disabled\": _vm.isDisabledArrows('last-year')\n },\n on: {\n \"click\": _vm.handleIconDoubleLeftClick\n }\n }), _vm._v(\" \"), _c('icon-button', {\n attrs: {\n \"type\": \"left\",\n \"disabled\": _vm.isDisabledArrows('last-month')\n },\n on: {\n \"click\": _vm.handleIconLeftClick\n }\n }), _vm._v(\" \"), _c('icon-button', {\n attrs: {\n \"type\": \"double-right\",\n \"disabled\": _vm.isDisabledArrows('next-year')\n },\n on: {\n \"click\": _vm.handleIconDoubleRightClick\n }\n }), _vm._v(\" \"), _c('icon-button', {\n attrs: {\n \"type\": \"right\",\n \"disabled\": _vm.isDisabledArrows('next-month')\n },\n on: {\n \"click\": _vm.handleIconRightClick\n }\n }), _vm._v(\" \"), _c('span', {\n class: _vm.prefixClass + \"-calendar-header-label\"\n }, _vm._l(_vm.yearMonth, function (item) {\n return _c('button', {\n key: item.panel,\n class: _vm.prefixClass + \"-btn \" + _vm.prefixClass + \"-btn-text \" + _vm.prefixClass + \"-btn-current-\" + item.panel,\n attrs: {\n \"type\": \"button\"\n },\n on: {\n \"click\": function click($event) {\n return _vm.handlePanelChange(item.panel);\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(item.label) + \"\\n \")]);\n }), 0)], 1), _vm._v(\" \"), _c('div', {\n class: _vm.prefixClass + \"-calendar-content\"\n }, [_c('table', {\n class: _vm.prefixClass + \"-table \" + _vm.prefixClass + \"-table-date\"\n }, [_c('thead', [_c('tr', [_vm.showWeekNumber ? _c('th', {\n class: _vm.prefixClass + \"-week-number-header\"\n }) : _vm._e(), _vm._v(\" \"), _vm._l(_vm.days, function (day) {\n return _c('th', {\n key: day\n }, [_vm._v(_vm._s(day))]);\n })], 2)]), _vm._v(\" \"), _c('tbody', {\n on: {\n \"click\": _vm.handleCellClick\n }\n }, _vm._l(_vm.dates, function (row, i) {\n return _c('tr', {\n key: i,\n class: [_vm.prefixClass + \"-date-row\", _vm.getRowClasses(row)]\n }, [_vm.showWeekNumber ? _c('td', {\n class: _vm.prefixClass + \"-week-number\",\n attrs: {\n \"data-row-col\": i + \",0\"\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.getWeekNumber(row[0])) + \"\\n \")]) : _vm._e(), _vm._v(\" \"), _vm._l(row, function (cell, j) {\n return _c('td', {\n key: j,\n staticClass: \"cell\",\n class: _vm.getCellClasses(cell),\n attrs: {\n \"data-row-col\": i + \",\" + j,\n \"title\": _vm.getCellTitle(cell)\n },\n on: {\n \"mouseenter\": function mouseenter($event) {\n return _vm.handleMouseEnter(cell);\n },\n \"mouseleave\": function mouseleave($event) {\n return _vm.handleMouseLeave(cell);\n }\n }\n }, [_c('div', [_vm._v(_vm._s(cell.getDate()))])]);\n })], 2);\n }), 0)])])]);\n};\n\nvar __vue_staticRenderFns__$5 = [];\n/* style */\n\nvar __vue_inject_styles__$5 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$5 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$5 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$5 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$5 = normalizeComponent({\n render: __vue_render__$5,\n staticRenderFns: __vue_staticRenderFns__$5\n}, __vue_inject_styles__$5, __vue_script__$2, __vue_scope_id__$5, __vue_is_functional_template__$5, __vue_module_identifier__$5, false, undefined, undefined, undefined);\n\n//\nvar script$3 = {\n name: 'TableMonth',\n components: {\n IconButton: __vue_component__$4\n },\n inject: {\n getLocale: {\n default: function _default() {\n return getLocale;\n }\n },\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n disabledCalendarChanger: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n calendar: {\n type: Date,\n default: function _default() {\n return new Date();\n }\n },\n getCellClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n }\n },\n computed: {\n calendarYear: function calendarYear() {\n return this.calendar.getFullYear();\n },\n months: function months() {\n var locale = this.getLocale();\n var monthsLocale = locale.months || locale.formatLocale.monthsShort;\n var months = monthsLocale.map(function (text, month) {\n return {\n text: text,\n month: month\n };\n });\n return chunk(months, 3);\n }\n },\n methods: {\n isDisabledArrows: function isDisabledArrows(type) {\n var date = new Date(this.calendar);\n\n switch (type) {\n case 'last-year':\n date.setFullYear(date.getFullYear() - 1, 11, 31);\n date.setHours(23, 59, 59, 999);\n break;\n\n case 'next-year':\n date.setFullYear(date.getFullYear() + 1, 0, 1);\n break;\n }\n\n return this.disabledCalendarChanger(date, type);\n },\n handleIconDoubleLeftClick: function handleIconDoubleLeftClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v - 1;\n }), 'last-year');\n },\n handleIconDoubleRightClick: function handleIconDoubleRightClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v + 1;\n }), 'next-year');\n },\n handlePanelChange: function handlePanelChange() {\n this.$emit('changepanel', 'year');\n },\n handleClick: function handleClick(evt) {\n var target = evt.target;\n\n if (target.tagName.toUpperCase() === 'DIV') {\n target = target.parentNode;\n }\n\n var month = target.getAttribute('data-month');\n\n if (month && !target.classList.contains('disabled')) {\n this.$emit('select', parseInt(month, 10));\n }\n }\n }\n};\n\n/* script */\nvar __vue_script__$3 = script$3;\n/* template */\n\nvar __vue_render__$6 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-calendar \" + _vm.prefixClass + \"-calendar-panel-month\"\n }, [_c('div', {\n class: _vm.prefixClass + \"-calendar-header\"\n }, [_c('icon-button', {\n attrs: {\n \"type\": \"double-left\",\n \"disabled\": _vm.isDisabledArrows('last-year')\n },\n on: {\n \"click\": _vm.handleIconDoubleLeftClick\n }\n }), _vm._v(\" \"), _c('icon-button', {\n attrs: {\n \"type\": \"double-right\",\n \"disabled\": _vm.isDisabledArrows('next-year')\n },\n on: {\n \"click\": _vm.handleIconDoubleRightClick\n }\n }), _vm._v(\" \"), _c('span', {\n class: _vm.prefixClass + \"-calendar-header-label\"\n }, [_c('button', {\n class: _vm.prefixClass + \"-btn \" + _vm.prefixClass + \"-btn-text\",\n attrs: {\n \"type\": \"button\"\n },\n on: {\n \"click\": _vm.handlePanelChange\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.calendarYear) + \"\\n \")])])], 1), _vm._v(\" \"), _c('div', {\n class: _vm.prefixClass + \"-calendar-content\"\n }, [_c('table', {\n class: _vm.prefixClass + \"-table \" + _vm.prefixClass + \"-table-month\",\n on: {\n \"click\": _vm.handleClick\n }\n }, _vm._l(_vm.months, function (row, i) {\n return _c('tr', {\n key: i\n }, _vm._l(row, function (cell, j) {\n return _c('td', {\n key: j,\n staticClass: \"cell\",\n class: _vm.getCellClasses(cell.month),\n attrs: {\n \"data-month\": cell.month\n }\n }, [_c('div', [_vm._v(_vm._s(cell.text))])]);\n }), 0);\n }), 0)])]);\n};\n\nvar __vue_staticRenderFns__$6 = [];\n/* style */\n\nvar __vue_inject_styles__$6 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$6 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$6 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$6 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$6 = normalizeComponent({\n render: __vue_render__$6,\n staticRenderFns: __vue_staticRenderFns__$6\n}, __vue_inject_styles__$6, __vue_script__$3, __vue_scope_id__$6, __vue_is_functional_template__$6, __vue_module_identifier__$6, false, undefined, undefined, undefined);\n\n//\nvar script$4 = {\n name: 'TableYear',\n components: {\n IconButton: __vue_component__$4\n },\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n disabledCalendarChanger: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n calendar: {\n type: Date,\n default: function _default() {\n return new Date();\n }\n },\n getCellClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n },\n getYearPanel: {\n type: Function\n }\n },\n computed: {\n years: function years() {\n var calendar = new Date(this.calendar);\n\n if (typeof this.getYearPanel === 'function') {\n return this.getYearPanel(calendar);\n }\n\n return this.getYears(calendar);\n },\n firstYear: function firstYear() {\n return this.years[0][0];\n },\n lastYear: function lastYear() {\n var last = function last(arr) {\n return arr[arr.length - 1];\n };\n\n return last(last(this.years));\n }\n },\n methods: {\n isDisabledArrows: function isDisabledArrows(type) {\n var date = new Date(this.calendar);\n\n switch (type) {\n case 'last-decade':\n date.setFullYear(this.firstYear - 1, 11, 31);\n date.setHours(23, 59, 59, 999);\n break;\n\n case 'next-decade':\n date.setFullYear(this.lastYear + 1, 0, 1);\n break;\n }\n\n return this.disabledCalendarChanger(date, type);\n },\n getYears: function getYears(calendar) {\n var firstYear = Math.floor(calendar.getFullYear() / 10) * 10;\n var years = [];\n\n for (var i = 0; i < 10; i++) {\n years.push(firstYear + i);\n }\n\n return chunk(years, 2);\n },\n handleIconDoubleLeftClick: function handleIconDoubleLeftClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v - 10;\n }), 'last-decade');\n },\n handleIconDoubleRightClick: function handleIconDoubleRightClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v + 10;\n }), 'next-decade');\n },\n handleClick: function handleClick(evt) {\n var target = evt.target;\n\n if (target.tagName.toUpperCase() === 'DIV') {\n target = target.parentNode;\n }\n\n var year = target.getAttribute('data-year');\n\n if (year && !target.classList.contains('disabled')) {\n this.$emit('select', parseInt(year, 10));\n }\n }\n }\n};\n\n/* script */\nvar __vue_script__$4 = script$4;\n/* template */\n\nvar __vue_render__$7 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-calendar \" + _vm.prefixClass + \"-calendar-panel-year\"\n }, [_c('div', {\n class: _vm.prefixClass + \"-calendar-header\"\n }, [_c('icon-button', {\n attrs: {\n \"type\": \"double-left\",\n \"disabled\": _vm.isDisabledArrows('last-decade')\n },\n on: {\n \"click\": _vm.handleIconDoubleLeftClick\n }\n }), _vm._v(\" \"), _c('icon-button', {\n attrs: {\n \"type\": \"double-right\",\n \"disabled\": _vm.isDisabledArrows('next-decade')\n },\n on: {\n \"click\": _vm.handleIconDoubleRightClick\n }\n }), _vm._v(\" \"), _c('span', {\n class: _vm.prefixClass + \"-calendar-header-label\"\n }, [_c('span', [_vm._v(_vm._s(_vm.firstYear))]), _vm._v(\" \"), _c('span', {\n class: _vm.prefixClass + \"-calendar-decade-separator\"\n }), _vm._v(\" \"), _c('span', [_vm._v(_vm._s(_vm.lastYear))])])], 1), _vm._v(\" \"), _c('div', {\n class: _vm.prefixClass + \"-calendar-content\"\n }, [_c('table', {\n class: _vm.prefixClass + \"-table \" + _vm.prefixClass + \"-table-year\",\n on: {\n \"click\": _vm.handleClick\n }\n }, _vm._l(_vm.years, function (row, i) {\n return _c('tr', {\n key: i\n }, _vm._l(row, function (cell, j) {\n return _c('td', {\n key: j,\n staticClass: \"cell\",\n class: _vm.getCellClasses(cell),\n attrs: {\n \"data-year\": cell\n }\n }, [_c('div', [_vm._v(_vm._s(cell))])]);\n }), 0);\n }), 0)])]);\n};\n\nvar __vue_staticRenderFns__$7 = [];\n/* style */\n\nvar __vue_inject_styles__$7 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$7 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$7 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$7 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$7 = normalizeComponent({\n render: __vue_render__$7,\n staticRenderFns: __vue_staticRenderFns__$7\n}, __vue_inject_styles__$7, __vue_script__$4, __vue_scope_id__$7, __vue_is_functional_template__$7, __vue_module_identifier__$7, false, undefined, undefined, undefined);\n\nvar CalendarPanel = {\n name: 'CalendarPanel',\n inject: {\n prefixClass: {\n default: 'mx'\n },\n dispatchDatePicker: {\n default: function _default() {\n return function () {};\n }\n }\n },\n props: {\n value: {},\n defaultValue: {\n default: function _default() {\n var date = new Date();\n date.setHours(0, 0, 0, 0);\n return date;\n }\n },\n defaultPanel: {\n type: String\n },\n disabledCalendarChanger: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n disabledDate: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n type: {\n type: String,\n default: 'date'\n },\n getClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n },\n showWeekNumber: {\n type: Boolean,\n default: undefined\n },\n getYearPanel: {\n type: Function\n },\n titleFormat: {\n type: String,\n default: 'YYYY-MM-DD'\n },\n calendar: Date,\n // update date when select year or month\n partialUpdate: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n var panels = ['date', 'month', 'year'];\n var index = Math.max(panels.indexOf(this.type), panels.indexOf(this.defaultPanel));\n var panel = index !== -1 ? panels[index] : 'date';\n return {\n panel: panel,\n innerCalendar: new Date()\n };\n },\n computed: {\n innerValue: function innerValue() {\n var value = Array.isArray(this.value) ? this.value : [this.value];\n var map = {\n year: startOfYear,\n month: startOfMonth,\n date: startOfDay\n };\n var start = map[this.type] || map.date;\n return value.filter(isValidDate).map(function (v) {\n return start(v);\n });\n },\n calendarYear: function calendarYear() {\n return this.innerCalendar.getFullYear();\n },\n calendarMonth: function calendarMonth() {\n return this.innerCalendar.getMonth();\n }\n },\n watch: {\n value: {\n immediate: true,\n handler: 'initCalendar'\n },\n calendar: {\n handler: 'initCalendar'\n },\n defaultValue: {\n handler: 'initCalendar'\n }\n },\n methods: {\n initCalendar: function initCalendar() {\n var calendarDate = this.calendar;\n\n if (!isValidDate(calendarDate)) {\n var length = this.innerValue.length;\n calendarDate = getValidDate(length > 0 ? this.innerValue[length - 1] : this.defaultValue);\n }\n\n this.innerCalendar = startOfMonth(calendarDate);\n },\n isDisabled: function isDisabled(date) {\n return this.disabledDate(new Date(date), this.innerValue);\n },\n emitDate: function emitDate(date, type) {\n if (!this.isDisabled(date)) {\n this.$emit('select', date, type, this.innerValue); // someone need get the first selected date to set range value. (#429)\n\n this.dispatchDatePicker('pick', date, type);\n }\n },\n handleCalendarChange: function handleCalendarChange(calendar, type) {\n var oldCalendar = new Date(this.innerCalendar);\n this.innerCalendar = calendar;\n this.$emit('update:calendar', calendar);\n this.dispatchDatePicker('calendar-change', calendar, oldCalendar, type);\n },\n handelPanelChange: function handelPanelChange(panel) {\n var oldPanel = this.panel;\n this.panel = panel;\n this.dispatchDatePicker('panel-change', panel, oldPanel);\n },\n handleSelectYear: function handleSelectYear(year) {\n if (this.type === 'year') {\n var date = this.getYearCellDate(year);\n this.emitDate(date, 'year');\n } else {\n this.handleCalendarChange(createDate(year, this.calendarMonth), 'year');\n this.handelPanelChange('month');\n\n if (this.partialUpdate && this.innerValue.length === 1) {\n var _date = new Date(this.innerValue[0]);\n\n _date.setFullYear(year);\n\n this.emitDate(_date, 'year');\n }\n }\n },\n handleSelectMonth: function handleSelectMonth(month) {\n if (this.type === 'month') {\n var date = this.getMonthCellDate(month);\n this.emitDate(date, 'month');\n } else {\n this.handleCalendarChange(createDate(this.calendarYear, month), 'month');\n this.handelPanelChange('date');\n\n if (this.partialUpdate && this.innerValue.length === 1) {\n var _date2 = new Date(this.innerValue[0]);\n\n _date2.setFullYear(this.calendarYear);\n\n this.emitDate(setMonth(_date2, month), 'month');\n }\n }\n },\n handleSelectDate: function handleSelectDate(date) {\n this.emitDate(date, this.type === 'week' ? 'week' : 'date');\n },\n getMonthCellDate: function getMonthCellDate(month) {\n return createDate(this.calendarYear, month);\n },\n getYearCellDate: function getYearCellDate(year) {\n return createDate(year, 0);\n },\n getDateClasses: function getDateClasses(cellDate) {\n var notCurrentMonth = cellDate.getMonth() !== this.calendarMonth;\n var classes = [];\n\n if (cellDate.getTime() === new Date().setHours(0, 0, 0, 0)) {\n classes.push('today');\n }\n\n if (notCurrentMonth) {\n classes.push('not-current-month');\n }\n\n var state = this.getStateClass(cellDate);\n\n if (!(state === 'active' && notCurrentMonth)) {\n classes.push(state);\n }\n\n return classes.concat(this.getClasses(cellDate, this.innerValue, classes.join(' ')));\n },\n getMonthClasses: function getMonthClasses(month) {\n var classes = [];\n\n if (this.type !== 'month') {\n if (this.calendarMonth === month) {\n classes.push('active');\n }\n\n var _cellDate = this.getMonthCellDate(month);\n\n if (this.disabledCalendarChanger(_cellDate, 'month')) {\n classes.push('disabled');\n }\n\n return classes;\n }\n\n var cellDate = this.getMonthCellDate(month);\n classes.push(this.getStateClass(cellDate));\n return classes.concat(this.getClasses(cellDate, this.innerValue, classes.join(' ')));\n },\n getYearClasses: function getYearClasses(year) {\n var classes = [];\n\n if (this.type !== 'year') {\n if (this.calendarYear === year) {\n classes.push('active');\n }\n\n var _cellDate2 = this.getYearCellDate(year);\n\n if (this.disabledCalendarChanger(_cellDate2, 'year')) {\n classes.push('disabled');\n }\n\n return classes;\n }\n\n var cellDate = this.getYearCellDate(year);\n classes.push(this.getStateClass(cellDate));\n return classes.concat(this.getClasses(cellDate, this.innerValue, classes.join(' ')));\n },\n getStateClass: function getStateClass(cellDate) {\n if (this.isDisabled(cellDate)) {\n return 'disabled';\n }\n\n if (this.innerValue.some(function (v) {\n return v.getTime() === cellDate.getTime();\n })) {\n return 'active';\n }\n\n return '';\n },\n getWeekState: function getWeekState(row) {\n if (this.type !== 'week') return '';\n var start = row[0].getTime();\n var end = row[6].getTime();\n var active = this.innerValue.some(function (v) {\n var time = v.getTime();\n return time >= start && time <= end;\n });\n return active ? \"\".concat(this.prefixClass, \"-active-week\") : '';\n }\n },\n render: function render() {\n var h = arguments[0];\n var panel = this.panel,\n innerCalendar = this.innerCalendar;\n\n if (panel === 'year') {\n return h(__vue_component__$7, {\n \"attrs\": {\n \"disabledCalendarChanger\": this.disabledCalendarChanger,\n \"calendar\": innerCalendar,\n \"getCellClasses\": this.getYearClasses,\n \"getYearPanel\": this.getYearPanel\n },\n \"on\": {\n \"select\": this.handleSelectYear,\n \"changecalendar\": this.handleCalendarChange\n }\n });\n }\n\n if (panel === 'month') {\n return h(__vue_component__$6, {\n \"attrs\": {\n \"disabledCalendarChanger\": this.disabledCalendarChanger,\n \"calendar\": innerCalendar,\n \"getCellClasses\": this.getMonthClasses\n },\n \"on\": {\n \"select\": this.handleSelectMonth,\n \"changepanel\": this.handelPanelChange,\n \"changecalendar\": this.handleCalendarChange\n }\n });\n }\n\n return h(__vue_component__$5, {\n \"attrs\": {\n \"disabledCalendarChanger\": this.disabledCalendarChanger,\n \"calendar\": innerCalendar,\n \"getCellClasses\": this.getDateClasses,\n \"getRowClasses\": this.getWeekState,\n \"titleFormat\": this.titleFormat,\n \"showWeekNumber\": typeof this.showWeekNumber === 'boolean' ? this.showWeekNumber : this.type === 'week'\n },\n \"class\": _defineProperty({}, \"\".concat(this.prefixClass, \"-calendar-week-mode\"), this.type === 'week'),\n \"on\": {\n \"select\": this.handleSelectDate,\n \"changepanel\": this.handelPanelChange,\n \"changecalendar\": this.handleCalendarChange\n }\n });\n }\n};\n\nvar CalendarRange = {\n name: 'CalendarRange',\n components: {\n CalendarPanel: CalendarPanel\n },\n provide: function provide() {\n return {\n onDateMouseEnter: this.onDateMouseEnter,\n onDateMouseLeave: this.onDateMouseLeave\n };\n },\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n props: _objectSpread2({}, CalendarPanel.props),\n data: function data() {\n return {\n innerValue: [],\n calendars: [],\n hoveredValue: null\n };\n },\n computed: {\n // Minimum difference between start and end calendars\n calendarMinDiff: function calendarMinDiff() {\n var map = {\n date: 1,\n // type:date min 1 month\n month: 1 * 12,\n // type:month min 1 year\n year: 10 * 12 // type:year min 10 year\n\n };\n return map[this.type] || map.date;\n },\n calendarMaxDiff: function calendarMaxDiff() {\n return Infinity;\n },\n defaultValues: function defaultValues() {\n return Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue, this.defaultValue];\n }\n },\n watch: {\n value: {\n immediate: true,\n handler: function handler() {\n var _this = this;\n\n this.innerValue = isValidRangeDate(this.value) ? this.value : [new Date(NaN), new Date(NaN)];\n var calendars = this.innerValue.map(function (v, i) {\n return startOfMonth(getValidDate(v, _this.defaultValues[i]));\n });\n this.updateCalendars(calendars);\n }\n }\n },\n methods: {\n handleSelect: function handleSelect(date, type) {\n var _this$innerValue = _slicedToArray(this.innerValue, 2),\n startValue = _this$innerValue[0],\n endValue = _this$innerValue[1];\n\n if (isValidDate(startValue) && !isValidDate(endValue)) {\n if (startValue.getTime() > date.getTime()) {\n this.innerValue = [date, startValue];\n } else {\n this.innerValue = [startValue, date];\n }\n\n this.emitDate(this.innerValue, type);\n } else {\n this.innerValue = [date, new Date(NaN)];\n }\n },\n onDateMouseEnter: function onDateMouseEnter(cell) {\n this.hoveredValue = cell;\n },\n onDateMouseLeave: function onDateMouseLeave() {\n this.hoveredValue = null;\n },\n emitDate: function emitDate(dates, type) {\n this.$emit('select', dates, type);\n },\n updateStartCalendar: function updateStartCalendar(value) {\n this.updateCalendars([value, this.calendars[1]], 1);\n },\n updateEndCalendar: function updateEndCalendar(value) {\n this.updateCalendars([this.calendars[0], value], 0);\n },\n updateCalendars: function updateCalendars(calendars) {\n var adjustIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var gap = this.getCalendarGap(calendars);\n\n if (gap) {\n var calendar = new Date(calendars[adjustIndex]);\n calendar.setMonth(calendar.getMonth() + (adjustIndex === 0 ? -gap : gap));\n calendars[adjustIndex] = calendar;\n }\n\n this.calendars = calendars;\n },\n getCalendarGap: function getCalendarGap(calendars) {\n var _calendars = _slicedToArray(calendars, 2),\n calendarLeft = _calendars[0],\n calendarRight = _calendars[1];\n\n var yearDiff = calendarRight.getFullYear() - calendarLeft.getFullYear();\n var monthDiff = calendarRight.getMonth() - calendarLeft.getMonth();\n var diff = yearDiff * 12 + monthDiff;\n var min = this.calendarMinDiff;\n var max = this.calendarMaxDiff;\n\n if (diff < min) {\n return min - diff;\n }\n\n if (diff > max) {\n return max - diff;\n }\n\n return 0;\n },\n getRangeClasses: function getRangeClasses(cellDate, currentDates, classnames) {\n var classes = [].concat(this.getClasses(cellDate, currentDates, classnames));\n if (/disabled|active/.test(classnames)) return classes;\n\n var inRange = function inRange(data, range) {\n var fn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (v) {\n return v.getTime();\n };\n var value = fn(data);\n\n var _range$map = range.map(fn),\n _range$map2 = _slicedToArray(_range$map, 2),\n min = _range$map2[0],\n max = _range$map2[1];\n\n if (min > max) {\n var _ref = [max, min];\n min = _ref[0];\n max = _ref[1];\n }\n\n return value > min && value < max;\n };\n\n if (currentDates.length === 2 && inRange(cellDate, currentDates)) {\n return classes.concat('in-range');\n }\n\n if (currentDates.length === 1 && this.hoveredValue && inRange(cellDate, [currentDates[0], this.hoveredValue])) {\n return classes.concat('hover-in-range');\n }\n\n return classes;\n }\n },\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n var calendarRange = this.calendars.map(function (calendar, index) {\n var props = _objectSpread2({}, _this2.$props, {\n calendar: calendar,\n value: _this2.innerValue,\n defaultValue: _this2.defaultValues[index],\n getClasses: _this2.getRangeClasses,\n // don't update when range is true\n partialUpdate: false\n });\n\n var on = {\n select: _this2.handleSelect,\n 'update:calendar': index === 0 ? _this2.updateStartCalendar : _this2.updateEndCalendar\n };\n return h(\"calendar-panel\", {\n \"props\": _objectSpread2({}, props),\n \"on\": _objectSpread2({}, on)\n });\n });\n var prefixClass = this.prefixClass;\n return h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-range-wrapper\")\n }, [calendarRange]);\n }\n};\n\nvar scrollBarWidth;\nfunction getScrollbarWidth () {\n if (typeof window === 'undefined') return 0;\n if (scrollBarWidth !== undefined) return scrollBarWidth;\n var outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll';\n outer.style.width = '100px';\n outer.style.position = 'absolute';\n outer.style.top = '-9999px';\n document.body.appendChild(outer);\n var inner = document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n scrollBarWidth = outer.offsetWidth - inner.offsetWidth;\n outer.parentNode.removeChild(outer);\n return scrollBarWidth;\n}\n\n//\nvar script$5 = {\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n data: function data() {\n return {\n scrollbarWidth: 0,\n thumbTop: '',\n thumbHeight: ''\n };\n },\n created: function created() {\n this.scrollbarWidth = getScrollbarWidth();\n document.addEventListener('mouseup', this.handleDragend);\n },\n beforeDestroy: function beforeDestroy() {\n document.addEventListener('mouseup', this.handleDragend);\n },\n mounted: function mounted() {\n this.$nextTick(this.getThumbSize);\n },\n methods: {\n getThumbSize: function getThumbSize() {\n var wrap = this.$refs.wrap;\n if (!wrap) return;\n var heightPercentage = wrap.clientHeight * 100 / wrap.scrollHeight;\n this.thumbHeight = heightPercentage < 100 ? \"\".concat(heightPercentage, \"%\") : '';\n },\n handleScroll: function handleScroll(evt) {\n var el = evt.currentTarget;\n var scrollHeight = el.scrollHeight,\n scrollTop = el.scrollTop;\n this.thumbTop = \"\".concat(scrollTop * 100 / scrollHeight, \"%\");\n },\n handleDragstart: function handleDragstart(evt) {\n evt.stopImmediatePropagation();\n this._draggable = true;\n var offsetTop = this.$refs.thumb.offsetTop;\n this._prevY = evt.clientY - offsetTop;\n document.addEventListener('mousemove', this.handleDraging);\n },\n handleDraging: function handleDraging(evt) {\n if (!this._draggable) return;\n var clientY = evt.clientY;\n var wrap = this.$refs.wrap;\n var scrollHeight = wrap.scrollHeight,\n clientHeight = wrap.clientHeight;\n var offsetY = clientY - this._prevY;\n var top = offsetY * scrollHeight / clientHeight;\n wrap.scrollTop = top;\n },\n handleDragend: function handleDragend() {\n if (this._draggable) {\n this._draggable = false;\n document.removeEventListener('mousemove', this.handleDraging);\n }\n }\n }\n};\n\n/* script */\nvar __vue_script__$5 = script$5;\n/* template */\n\nvar __vue_render__$8 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-scrollbar\",\n style: {\n position: 'relative',\n overflow: 'hidden'\n }\n }, [_c('div', {\n ref: \"wrap\",\n class: _vm.prefixClass + \"-scrollbar-wrap\",\n style: {\n marginRight: \"-\" + _vm.scrollbarWidth + \"px\"\n },\n on: {\n \"scroll\": _vm.handleScroll\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c('div', {\n class: _vm.prefixClass + \"-scrollbar-track\"\n }, [_c('div', {\n ref: \"thumb\",\n class: _vm.prefixClass + \"-scrollbar-thumb\",\n style: {\n height: _vm.thumbHeight,\n top: _vm.thumbTop\n },\n on: {\n \"mousedown\": _vm.handleDragstart\n }\n })])]);\n};\n\nvar __vue_staticRenderFns__$8 = [];\n/* style */\n\nvar __vue_inject_styles__$8 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$8 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$8 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$8 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$8 = normalizeComponent({\n render: __vue_render__$8,\n staticRenderFns: __vue_staticRenderFns__$8\n}, __vue_inject_styles__$8, __vue_script__$5, __vue_scope_id__$8, __vue_is_functional_template__$8, __vue_module_identifier__$8, false, undefined, undefined, undefined);\n\n//\n\nvar padNumber = function padNumber(value) {\n value = parseInt(value, 10);\n return value < 10 ? \"0\".concat(value) : \"\".concat(value);\n};\n\nvar generateOptions = function generateOptions(length, step, options) {\n if (Array.isArray(options)) {\n return options.filter(function (v) {\n return v >= 0 && v < length;\n });\n }\n\n if (step <= 0) {\n step = 1;\n }\n\n var arr = [];\n\n for (var i = 0; i < length; i += step) {\n arr.push(i);\n }\n\n return arr;\n};\n\nvar scrollTo = function scrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n // jump to target if duration zero\n if (duration <= 0) {\n requestAnimationFrame(function () {\n element.scrollTop = to;\n });\n return;\n }\n\n var difference = to - element.scrollTop;\n var tick = difference / duration * 10;\n requestAnimationFrame(function () {\n var scrollTop = element.scrollTop + tick;\n\n if (scrollTop >= to) {\n element.scrollTop = to;\n return;\n }\n\n element.scrollTop = scrollTop;\n scrollTo(element, to, duration - 10);\n });\n};\n\nvar script$6 = {\n name: 'ListColumns',\n components: {\n ScrollbarVertical: __vue_component__$8\n },\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n date: Date,\n scrollDuration: {\n type: Number,\n default: 100\n },\n getClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n },\n hourOptions: Array,\n minuteOptions: Array,\n secondOptions: Array,\n showHour: {\n type: Boolean,\n default: true\n },\n showMinute: {\n type: Boolean,\n default: true\n },\n showSecond: {\n type: Boolean,\n default: true\n },\n hourStep: {\n type: Number,\n default: 1\n },\n minuteStep: {\n type: Number,\n default: 1\n },\n secondStep: {\n type: Number,\n default: 1\n },\n use12h: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n columns: function columns() {\n var cols = [];\n if (this.showHour) cols.push({\n type: 'hour',\n list: this.getHoursList()\n });\n if (this.showMinute) cols.push({\n type: 'minute',\n list: this.getMinutesList()\n });\n if (this.showSecond) cols.push({\n type: 'second',\n list: this.getSecondsList()\n });\n if (this.use12h) cols.push({\n type: 'ampm',\n list: this.getAMPMList()\n });\n return cols.filter(function (v) {\n return v.list.length > 0;\n });\n }\n },\n watch: {\n date: {\n handler: function handler() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.scrollToSelected(_this.scrollDuration);\n });\n }\n }\n },\n mounted: function mounted() {\n this.scrollToSelected(0);\n },\n methods: {\n getHoursList: function getHoursList() {\n var _this2 = this;\n\n return generateOptions(this.use12h ? 12 : 24, this.hourStep, this.hourOptions).map(function (num) {\n var date = new Date(_this2.date);\n var text = padNumber(num);\n\n if (_this2.use12h) {\n if (num === 0) {\n text = '12';\n }\n\n if (date.getHours() >= 12) {\n num += 12;\n }\n }\n\n var value = date.setHours(num);\n return {\n value: value,\n text: text\n };\n });\n },\n getMinutesList: function getMinutesList() {\n var _this3 = this;\n\n return generateOptions(60, this.minuteStep, this.minuteOptions).map(function (num) {\n var value = new Date(_this3.date).setMinutes(num);\n return {\n value: value,\n text: padNumber(num)\n };\n });\n },\n getSecondsList: function getSecondsList() {\n var _this4 = this;\n\n return generateOptions(60, this.secondStep, this.secondOptions).map(function (num) {\n var value = new Date(_this4.date).setSeconds(num);\n return {\n value: value,\n text: padNumber(num)\n };\n });\n },\n getAMPMList: function getAMPMList() {\n var _this5 = this;\n\n return ['AM', 'PM'].map(function (text, i) {\n var date = new Date(_this5.date);\n var value = date.setHours(date.getHours() % 12 + i * 12);\n return {\n text: text,\n value: value\n };\n });\n },\n scrollToSelected: function scrollToSelected(duration) {\n var elements = this.$el.querySelectorAll('.active');\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i];\n var scrollElement = getScrollParent(element, this.$el);\n\n if (scrollElement) {\n var to = element.offsetTop;\n scrollTo(scrollElement, to, duration);\n }\n }\n },\n handleSelect: function handleSelect(evt) {\n var target = evt.target,\n currentTarget = evt.currentTarget;\n if (target.tagName.toUpperCase() !== 'LI') return;\n var type = currentTarget.getAttribute('data-type');\n var colIndex = parseInt(currentTarget.getAttribute('data-index'), 10);\n var cellIndex = parseInt(target.getAttribute('data-index'), 10);\n var value = this.columns[colIndex].list[cellIndex].value;\n this.$emit('select', value, type);\n }\n }\n};\n\n/* script */\nvar __vue_script__$6 = script$6;\n/* template */\n\nvar __vue_render__$9 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-time-columns\"\n }, _vm._l(_vm.columns, function (col, i) {\n return _c('scrollbar-vertical', {\n key: i,\n class: _vm.prefixClass + \"-time-column\"\n }, [_c('ul', {\n class: _vm.prefixClass + \"-time-list\",\n attrs: {\n \"data-type\": col.type,\n \"data-index\": i\n },\n on: {\n \"click\": _vm.handleSelect\n }\n }, _vm._l(col.list, function (item, j) {\n return _c('li', {\n key: item.value,\n class: [_vm.prefixClass + \"-time-item\", _vm.getClasses(item.value, col.type)],\n attrs: {\n \"data-index\": j\n }\n }, [_vm._v(\"\\n \" + _vm._s(item.text) + \"\\n \")]);\n }), 0)]);\n }), 1);\n};\n\nvar __vue_staticRenderFns__$9 = [];\n/* style */\n\nvar __vue_inject_styles__$9 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$9 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$9 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$9 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$9 = normalizeComponent({\n render: __vue_render__$9,\n staticRenderFns: __vue_staticRenderFns__$9\n}, __vue_inject_styles__$9, __vue_script__$6, __vue_scope_id__$9, __vue_is_functional_template__$9, __vue_module_identifier__$9, false, undefined, undefined, undefined);\n\n//\n\nfunction parseOption() {\n var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var values = time.split(':');\n\n if (values.length >= 2) {\n var hours = parseInt(values[0], 10);\n var minutes = parseInt(values[1], 10);\n return {\n hours: hours,\n minutes: minutes\n };\n }\n\n return null;\n}\n\nvar scrollTo$1 = function scrollTo(element, to) {\n if (element) {\n element.scrollTop = to;\n }\n};\n\nvar script$7 = {\n name: 'ListOptions',\n components: {\n ScrollbarVertical: __vue_component__$8\n },\n inject: {\n getLocale: {\n default: function _default() {\n return getLocale;\n }\n },\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n date: Date,\n options: {\n type: [Object, Function],\n default: function _default() {\n return [];\n }\n },\n format: {\n type: String,\n default: 'HH:mm:ss'\n },\n getClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n }\n },\n computed: {\n list: function list() {\n var result = [];\n var options = this.options;\n\n if (typeof options === 'function') {\n return options() || [];\n }\n\n var start = parseOption(options.start);\n var end = parseOption(options.end);\n var step = parseOption(options.step);\n var fmt = options.format || this.format;\n\n if (start && end && step) {\n var startMinutes = start.minutes + start.hours * 60;\n var endMinutes = end.minutes + end.hours * 60;\n var stepMinutes = step.minutes + step.hours * 60;\n var len = Math.floor((endMinutes - startMinutes) / stepMinutes);\n\n for (var i = 0; i <= len; i++) {\n var timeMinutes = startMinutes + i * stepMinutes;\n var hours = Math.floor(timeMinutes / 60);\n var minutes = timeMinutes % 60;\n var value = new Date(this.date).setHours(hours, minutes, 0);\n result.push({\n value: value,\n text: this.formatDate(value, fmt)\n });\n }\n }\n\n return result;\n }\n },\n mounted: function mounted() {\n this.scrollToSelected();\n },\n methods: {\n formatDate: function formatDate(date, fmt) {\n return format(date, fmt, {\n locale: this.getLocale().formatLocale\n });\n },\n scrollToSelected: function scrollToSelected() {\n var element = this.$el.querySelector('.active');\n if (!element) return;\n var scrollElement = getScrollParent(element, this.$el);\n if (!scrollElement) return;\n var to = element.offsetTop;\n scrollTo$1(scrollElement, to);\n },\n handleSelect: function handleSelect(value) {\n this.$emit('select', value, 'time');\n }\n }\n};\n\n/* script */\nvar __vue_script__$7 = script$7;\n/* template */\n\nvar __vue_render__$a = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('scrollbar-vertical', _vm._l(_vm.list, function (item) {\n return _c('div', {\n key: item.value,\n class: [_vm.prefixClass + \"-time-option\", _vm.getClasses(item.value)],\n on: {\n \"click\": function click($event) {\n return _vm.handleSelect(item.value);\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(item.text) + \"\\n \")]);\n }), 0);\n};\n\nvar __vue_staticRenderFns__$a = [];\n/* style */\n\nvar __vue_inject_styles__$a = undefined;\n/* scoped */\n\nvar __vue_scope_id__$a = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$a = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$a = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$a = normalizeComponent({\n render: __vue_render__$a,\n staticRenderFns: __vue_staticRenderFns__$a\n}, __vue_inject_styles__$a, __vue_script__$7, __vue_scope_id__$a, __vue_is_functional_template__$a, __vue_module_identifier__$a, false, undefined, undefined, undefined);\n\n//\nvar script$8 = {\n name: 'TimePanel',\n components: {\n ListColumns: __vue_component__$9,\n ListOptions: __vue_component__$a\n },\n inject: {\n getLocale: {\n default: function _default() {\n return getLocale;\n }\n },\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n value: {},\n defaultValue: {\n default: function _default() {\n var date = new Date();\n date.setHours(0, 0, 0, 0);\n return date;\n }\n },\n format: {\n default: 'HH:mm:ss'\n },\n timeTitleFormat: {\n type: String,\n default: 'YYYY-MM-DD'\n },\n showTimeHeader: {\n type: Boolean,\n default: false\n },\n disabledTime: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n timePickerOptions: {\n type: [Object, Function],\n default: function _default() {\n return null;\n }\n },\n hourOptions: Array,\n minuteOptions: Array,\n secondOptions: Array,\n hourStep: {\n type: Number,\n default: 1\n },\n minuteStep: {\n type: Number,\n default: 1\n },\n secondStep: {\n type: Number,\n default: 1\n },\n showHour: {\n type: Boolean,\n default: undefined\n },\n showMinute: {\n type: Boolean,\n default: undefined\n },\n showSecond: {\n type: Boolean,\n default: undefined\n },\n use12h: {\n type: Boolean,\n default: undefined\n },\n scrollDuration: {\n type: Number,\n default: 100\n }\n },\n data: function data() {\n return {\n innerValue: getValidDate(this.value, this.defaultValue)\n };\n },\n computed: {\n title: function title() {\n var titleFormat = this.timeTitleFormat;\n var date = new Date(this.innerValue);\n return this.formatDate(date, titleFormat);\n },\n innerForamt: function innerForamt() {\n return typeof this.format === 'string' ? this.format : 'HH:mm:ss';\n },\n ShowHourMinuteSecondAMPM: function ShowHourMinuteSecondAMPM() {\n var _this = this;\n\n var fmt = this.innerForamt;\n var defaultProps = {\n showHour: /[HhKk]/.test(fmt),\n showMinute: /m/.test(fmt),\n showSecond: /s/.test(fmt),\n use12h: /a/i.test(fmt)\n };\n var obj = {};\n Object.keys(defaultProps).forEach(function (key) {\n obj[key] = typeof _this[key] === 'boolean' ? _this[key] : defaultProps[key];\n });\n return obj;\n }\n },\n watch: {\n value: {\n immediate: true,\n handler: function handler() {\n this.innerValue = getValidDate(this.value, this.defaultValue);\n }\n }\n },\n methods: {\n formatDate: function formatDate(date, fmt) {\n return format(date, fmt, {\n locale: this.getLocale().formatLocale\n });\n },\n isDisabledTime: function isDisabledTime(value) {\n return this.disabledTime(new Date(value));\n },\n isDisabledHour: function isDisabledHour(date) {\n var value = new Date(date);\n return this.isDisabledTime(value) && this.isDisabledTime(value.setMinutes(0, 0, 0)) && this.isDisabledTime(value.setMinutes(59, 59, 999));\n },\n isDisabledMinute: function isDisabledMinute(date) {\n var value = new Date(date);\n return this.isDisabledTime(value) && this.isDisabledTime(value.setSeconds(0, 0)) && this.isDisabledTime(value.setSeconds(59, 999));\n },\n isDisabledAMPM: function isDisabledAMPM(date) {\n var value = new Date(date);\n var minHour = value.getHours() < 12 ? 0 : 12;\n var maxHour = minHour + 11;\n return this.isDisabledTime(value) && this.isDisabledTime(value.setHours(minHour, 0, 0, 0)) && this.isDisabledTime(value.setHours(maxHour, 59, 59, 999));\n },\n isDisabled: function isDisabled(date, type) {\n if (type === 'hour') {\n return this.isDisabledHour(date);\n }\n\n if (type === 'minute') {\n return this.isDisabledMinute(date);\n }\n\n if (type === 'ampm') {\n return this.isDisabledAMPM(date);\n }\n\n return this.isDisabledTime(date);\n },\n handleSelect: function handleSelect(value, type) {\n var date = new Date(value);\n\n if (!this.isDisabled(value, type)) {\n this.innerValue = date;\n\n if (!this.isDisabledTime(date)) {\n this.$emit('select', date, type);\n }\n }\n },\n handleClickTitle: function handleClickTitle() {\n this.$emit('clicktitle');\n },\n getClasses: function getClasses(value, type) {\n var cellDate = new Date(value);\n\n if (this.isDisabled(value, type)) {\n return 'disabled';\n }\n\n if (cellDate.getTime() === this.innerValue.getTime()) {\n return 'active';\n }\n\n return '';\n }\n }\n};\n\n/* script */\nvar __vue_script__$8 = script$8;\n/* template */\n\nvar __vue_render__$b = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-time\"\n }, [_vm.showTimeHeader ? _c('div', {\n class: _vm.prefixClass + \"-time-header\"\n }, [_c('button', {\n class: _vm.prefixClass + \"-btn \" + _vm.prefixClass + \"-btn-text \" + _vm.prefixClass + \"-time-header-title\",\n attrs: {\n \"type\": \"button\"\n },\n on: {\n \"click\": _vm.handleClickTitle\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.title) + \"\\n \")])]) : _vm._e(), _vm._v(\" \"), _c('div', {\n class: _vm.prefixClass + \"-time-content\"\n }, [_vm.timePickerOptions ? _c('list-options', {\n attrs: {\n \"date\": _vm.innerValue,\n \"get-classes\": _vm.getClasses,\n \"options\": _vm.timePickerOptions,\n \"format\": _vm.innerForamt\n },\n on: {\n \"select\": _vm.handleSelect\n }\n }) : _c('list-columns', _vm._b({\n attrs: {\n \"date\": _vm.innerValue,\n \"get-classes\": _vm.getClasses,\n \"hour-options\": _vm.hourOptions,\n \"minute-options\": _vm.minuteOptions,\n \"second-options\": _vm.secondOptions,\n \"hour-step\": _vm.hourStep,\n \"minute-step\": _vm.minuteStep,\n \"second-step\": _vm.secondStep,\n \"scroll-duration\": _vm.scrollDuration\n },\n on: {\n \"select\": _vm.handleSelect\n }\n }, 'list-columns', _vm.ShowHourMinuteSecondAMPM, false))], 1)]);\n};\n\nvar __vue_staticRenderFns__$b = [];\n/* style */\n\nvar __vue_inject_styles__$b = undefined;\n/* scoped */\n\nvar __vue_scope_id__$b = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$b = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$b = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$b = normalizeComponent({\n render: __vue_render__$b,\n staticRenderFns: __vue_staticRenderFns__$b\n}, __vue_inject_styles__$b, __vue_script__$8, __vue_scope_id__$b, __vue_is_functional_template__$b, __vue_module_identifier__$b, false, undefined, undefined, undefined);\n\nvar TimeRange = {\n name: 'TimeRange',\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n props: _objectSpread2({}, __vue_component__$b.props),\n data: function data() {\n return {\n startValue: new Date(NaN),\n endValue: new Date(NaN)\n };\n },\n watch: {\n value: {\n immediate: true,\n handler: function handler() {\n if (isValidRangeDate(this.value)) {\n var _this$value = _slicedToArray(this.value, 2),\n startValue = _this$value[0],\n endValue = _this$value[1];\n\n this.startValue = startValue;\n this.endValue = endValue;\n } else {\n this.startValue = new Date(NaN);\n this.endValue = new Date(NaN);\n }\n }\n }\n },\n methods: {\n emitChange: function emitChange(type, index) {\n var date = [this.startValue, this.endValue];\n this.$emit('select', date, type === 'time' ? 'time-range' : type, index);\n },\n handleSelectStart: function handleSelectStart(date, type) {\n this.startValue = date; // check the NaN\n\n if (!(this.endValue.getTime() >= date.getTime())) {\n this.endValue = date;\n }\n\n this.emitChange(type, 0);\n },\n handleSelectEnd: function handleSelectEnd(date, type) {\n // check the NaN\n this.endValue = date;\n\n if (!(this.startValue.getTime() <= date.getTime())) {\n this.startValue = date;\n }\n\n this.emitChange(type, 1);\n },\n disabledStartTime: function disabledStartTime(date) {\n return this.disabledTime(date, 0);\n },\n disabledEndTime: function disabledEndTime(date) {\n return date.getTime() < this.startValue.getTime() || this.disabledTime(date, 1);\n }\n },\n render: function render() {\n var h = arguments[0];\n var defaultValues = Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue, this.defaultValue];\n var prefixClass = this.prefixClass;\n return h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-range-wrapper\")\n }, [h(__vue_component__$b, {\n \"props\": _objectSpread2({}, _objectSpread2({}, this.$props, {\n value: this.startValue,\n defaultValue: defaultValues[0],\n disabledTime: this.disabledStartTime\n })),\n \"on\": _objectSpread2({}, _objectSpread2({}, this.$listeners, {\n select: this.handleSelectStart\n }))\n }), h(__vue_component__$b, {\n \"props\": _objectSpread2({}, _objectSpread2({}, this.$props, {\n value: this.endValue,\n defaultValue: defaultValues[1],\n disabledTime: this.disabledEndTime\n })),\n \"on\": _objectSpread2({}, _objectSpread2({}, this.$listeners, {\n select: this.handleSelectEnd\n }))\n })]);\n }\n};\n\nvar DatetimePanel = {\n name: 'DatetimePanel',\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n emits: ['select', 'update:show-time-panel'],\n props: _objectSpread2({}, CalendarPanel.props, {}, __vue_component__$b.props, {\n showTimePanel: {\n type: Boolean,\n default: undefined\n }\n }),\n data: function data() {\n return {\n defaultTimeVisible: false,\n currentValue: this.value\n };\n },\n computed: {\n timeVisible: function timeVisible() {\n return typeof this.showTimePanel === 'boolean' ? this.showTimePanel : this.defaultTimeVisible;\n }\n },\n watch: {\n value: function value(val) {\n this.currentValue = val;\n }\n },\n methods: {\n closeTimePanel: function closeTimePanel() {\n this.defaultTimeVisible = false;\n this.$emit('update:show-time-panel', false);\n },\n openTimePanel: function openTimePanel() {\n this.defaultTimeVisible = true;\n this.$emit('update:show-time-panel', true);\n },\n emitDate: function emitDate(date, type) {\n this.$emit('select', date, type);\n },\n handleSelect: function handleSelect(date, type) {\n if (type === 'date') {\n this.openTimePanel();\n }\n\n var datetime = assignTime(date, getValidDate(this.value, this.defaultValue));\n\n if (this.disabledTime(new Date(datetime))) {\n // set the time of defalutValue;\n datetime = assignTime(date, this.defaultValue);\n\n if (this.disabledTime(new Date(datetime))) {\n // if disabled don't emit date\n this.currentValue = datetime;\n return;\n }\n }\n\n this.emitDate(datetime, type);\n }\n },\n render: function render() {\n var h = arguments[0];\n var calendarProps = {\n props: _objectSpread2({}, pick(this.$props, Object.keys(CalendarPanel.props)), {\n type: 'date',\n value: this.currentValue\n }),\n on: {\n select: this.handleSelect\n }\n };\n var timeProps = {\n props: _objectSpread2({}, pick(this.$props, Object.keys(__vue_component__$b.props)), {\n showTimeHeader: true,\n value: this.currentValue\n }),\n on: {\n select: this.emitDate,\n clicktitle: this.closeTimePanel\n }\n };\n var prefixClass = this.prefixClass;\n return h(\"div\", [h(CalendarPanel, helper([{}, calendarProps])), this.timeVisible && h(__vue_component__$b, helper([{\n \"class\": \"\".concat(prefixClass, \"-calendar-time\")\n }, timeProps]))]);\n }\n};\n\nvar DatetimeRange = {\n name: 'DatetimeRange',\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n emits: ['select', 'update:show-time-panel'],\n props: _objectSpread2({}, CalendarRange.props, {}, TimeRange.props, {\n showTimePanel: {\n type: Boolean,\n default: undefined\n }\n }),\n data: function data() {\n return {\n defaultTimeVisible: false,\n currentValue: this.value\n };\n },\n computed: {\n timeVisible: function timeVisible() {\n return typeof this.showTimePanel === 'boolean' ? this.showTimePanel : this.defaultTimeVisible;\n }\n },\n watch: {\n value: function value(val) {\n this.currentValue = val;\n }\n },\n methods: {\n closeTimePanel: function closeTimePanel() {\n this.defaultTimeVisible = false;\n this.$emit('update:show-time-panel', false);\n },\n openTimePanel: function openTimePanel() {\n this.defaultTimeVisible = true;\n this.$emit('update:show-time-panel', true);\n },\n emitDate: function emitDate(dates, type) {\n this.$emit('select', dates, type);\n },\n handleSelect: function handleSelect(dates, type) {\n var _this = this;\n\n if (type === 'date') {\n this.openTimePanel();\n }\n\n var defaultValues = Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue, this.defaultValue];\n var datetimes = dates.map(function (date, i) {\n var time = isValidRangeDate(_this.value) ? _this.value[i] : defaultValues[i];\n return assignTime(date, time);\n });\n\n if (datetimes[1].getTime() < datetimes[0].getTime()) {\n datetimes = [datetimes[0], datetimes[0]];\n }\n\n if (datetimes.some(this.disabledTime)) {\n datetimes = dates.map(function (date, i) {\n return assignTime(date, defaultValues[i]);\n });\n\n if (datetimes.some(this.disabledTime)) {\n this.currentValue = datetimes;\n return;\n }\n }\n\n this.emitDate(datetimes, type);\n }\n },\n render: function render() {\n var h = arguments[0];\n var calendarProps = {\n props: _objectSpread2({}, pick(this.$props, Object.keys(CalendarRange.props)), {\n type: 'date',\n value: this.currentValue\n }),\n on: {\n select: this.handleSelect\n }\n };\n var timeProps = {\n props: _objectSpread2({}, pick(this.$props, Object.keys(TimeRange.props)), {\n value: this.currentValue,\n showTimeHeader: true\n }),\n on: {\n select: this.emitDate,\n clicktitle: this.closeTimePanel\n }\n };\n var prefixClass = this.prefixClass;\n return h(\"div\", [h(CalendarRange, helper([{}, calendarProps])), this.timeVisible && h(TimeRange, helper([{\n \"class\": \"\".concat(prefixClass, \"-calendar-time\")\n }, timeProps]))]);\n }\n};\n\nvar componentMap = {\n default: CalendarPanel,\n time: __vue_component__$b,\n datetime: DatetimePanel\n};\nvar componentRangeMap = {\n default: CalendarRange,\n time: TimeRange,\n datetime: DatetimeRange\n};\nvar DatePicker = {\n name: 'DatePicker',\n provide: function provide() {\n var _this = this;\n\n return {\n // make locale reactive\n getLocale: function getLocale() {\n return _this.locale;\n },\n getWeek: this.getWeek,\n prefixClass: this.prefixClass,\n dispatchDatePicker: this.$emit.bind(this)\n };\n },\n props: _objectSpread2({}, DatetimePanel.props, {\n value: {},\n valueType: {\n type: String,\n default: 'date' // date, format, timestamp, or token like 'YYYY-MM-DD'\n\n },\n type: {\n type: String,\n // ['date', 'datetime', 'time', 'year', 'month', 'week']\n default: 'date'\n },\n format: {\n type: String\n },\n formatter: {\n type: Object\n },\n range: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n rangeSeparator: {\n type: String\n },\n lang: {\n type: [String, Object]\n },\n placeholder: {\n type: String,\n default: ''\n },\n editable: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n clearable: {\n type: Boolean,\n default: true\n },\n prefixClass: {\n type: String,\n default: 'mx'\n },\n inputClass: {},\n inputAttr: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n appendToBody: {\n type: Boolean,\n default: true\n },\n open: {\n type: Boolean,\n default: undefined\n },\n popupClass: {},\n popupStyle: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n inline: {\n type: Boolean,\n default: false\n },\n confirm: {\n type: Boolean,\n default: false\n },\n confirmText: {\n type: String,\n default: 'OK'\n },\n renderInputText: {\n type: Function\n },\n shortcuts: {\n type: Array,\n validator: function validator(value) {\n return Array.isArray(value) && value.every(function (v) {\n return isObject(v) && typeof v.text === 'string' && typeof v.onClick === 'function';\n });\n },\n default: function _default() {\n return [];\n }\n }\n }),\n data: function data() {\n return {\n // cache the innervalue, wait to confirm\n currentValue: null,\n userInput: null,\n defaultOpen: false,\n mouseInInput: false\n };\n },\n computed: {\n popupVisible: function popupVisible() {\n return !this.disabled && (typeof this.open === 'boolean' ? this.open : this.defaultOpen);\n },\n innerRangeSeparator: function innerRangeSeparator() {\n return this.rangeSeparator || (this.multiple ? ',' : ' ~ ');\n },\n innerFormat: function innerFormat() {\n var map = {\n date: 'YYYY-MM-DD',\n datetime: 'YYYY-MM-DD HH:mm:ss',\n year: 'YYYY',\n month: 'YYYY-MM',\n time: 'HH:mm:ss',\n week: 'w'\n };\n return this.format || map[this.type] || map.date;\n },\n innerValue: function innerValue() {\n var value = this.value;\n\n if (this.validMultipleType) {\n value = Array.isArray(value) ? value : [];\n return value.map(this.value2date);\n }\n\n if (this.range) {\n value = Array.isArray(value) ? value.slice(0, 2) : [null, null];\n return value.map(this.value2date);\n }\n\n return this.value2date(value);\n },\n text: function text() {\n var _this2 = this;\n\n if (this.userInput !== null) {\n return this.userInput;\n }\n\n if (typeof this.renderInputText === 'function') {\n return this.renderInputText(this.innerValue);\n }\n\n if (!this.isValidValue(this.innerValue)) {\n return '';\n }\n\n if (Array.isArray(this.innerValue)) {\n return this.innerValue.map(function (v) {\n return _this2.formatDate(v);\n }).join(this.innerRangeSeparator);\n }\n\n return this.formatDate(this.innerValue);\n },\n showClearIcon: function showClearIcon() {\n return !this.disabled && this.clearable && this.text && this.mouseInInput;\n },\n locale: function locale() {\n if (isObject(this.lang)) {\n return mergeDeep(getLocale(), this.lang);\n }\n\n return getLocale(this.lang);\n },\n validMultipleType: function validMultipleType() {\n var types = ['date', 'month', 'year'];\n return this.multiple && !this.range && types.indexOf(this.type) !== -1;\n }\n },\n watch: {\n innerValue: {\n immediate: true,\n handler: function handler(val) {\n this.currentValue = val;\n }\n },\n popupVisible: {\n handler: function handler(val) {\n if (val) {\n this.currentValue = this.innerValue;\n }\n }\n }\n },\n created: function created() {\n if (_typeof(this.format) === 'object') {\n console.warn(\"[vue2-datepicker]: The prop `format` don't support Object any more. You can use the new prop `formatter` to replace it\");\n }\n },\n methods: {\n handleMouseEnter: function handleMouseEnter() {\n this.mouseInInput = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n this.mouseInInput = false;\n },\n handleClickOutSide: function handleClickOutSide(evt) {\n var target = evt.target;\n\n if (!this.$el.contains(target)) {\n this.closePopup();\n }\n },\n getFormatter: function getFormatter(key) {\n return isObject(this.formatter) && this.formatter[key] || isObject(this.format) && this.format[key];\n },\n getWeek: function getWeek$1(date, options) {\n if (typeof this.getFormatter('getWeek') === 'function') {\n return this.getFormatter('getWeek')(date, options);\n }\n\n return getWeek(date, options);\n },\n parseDate: function parseDate(value, fmt) {\n fmt = fmt || this.innerFormat;\n\n if (typeof this.getFormatter('parse') === 'function') {\n return this.getFormatter('parse')(value, fmt);\n }\n\n var backupDate = new Date();\n return parse(value, fmt, {\n locale: this.locale.formatLocale,\n backupDate: backupDate\n });\n },\n formatDate: function formatDate(date, fmt) {\n fmt = fmt || this.innerFormat;\n\n if (typeof this.getFormatter('stringify') === 'function') {\n return this.getFormatter('stringify')(date, fmt);\n }\n\n return format(date, fmt, {\n locale: this.locale.formatLocale\n });\n },\n // transform the outer value to inner date\n value2date: function value2date(value) {\n switch (this.valueType) {\n case 'date':\n return value instanceof Date ? new Date(value.getTime()) : new Date(NaN);\n\n case 'timestamp':\n return typeof value === 'number' ? new Date(value) : new Date(NaN);\n\n case 'format':\n return typeof value === 'string' ? this.parseDate(value) : new Date(NaN);\n\n default:\n return typeof value === 'string' ? this.parseDate(value, this.valueType) : new Date(NaN);\n }\n },\n // transform the inner date to outer value\n date2value: function date2value(date) {\n if (!isValidDate(date)) return null;\n\n switch (this.valueType) {\n case 'date':\n return date;\n\n case 'timestamp':\n return date.getTime();\n\n case 'format':\n return this.formatDate(date);\n\n default:\n return this.formatDate(date, this.valueType);\n }\n },\n emitValue: function emitValue(date, type) {\n var close = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // fix IE11/10 trigger input event when input is focused. (placeholder !== '')\n this.userInput = null;\n var value = Array.isArray(date) ? date.map(this.date2value) : this.date2value(date);\n this.$emit('input', value);\n this.$emit('change', value, type);\n\n if (close) {\n this.closePopup();\n }\n\n return value;\n },\n isValidValue: function isValidValue(value) {\n if (this.validMultipleType) {\n return isValidDates(value);\n }\n\n if (this.range) {\n return isValidRangeDate(value);\n }\n\n return isValidDate(value);\n },\n isValidValueAndNotDisabled: function isValidValueAndNotDisabled(value) {\n if (!this.isValidValue(value)) {\n return false;\n }\n\n var disabledDate = typeof this.disabledDate === 'function' ? this.disabledDate : function () {\n return false;\n };\n var disabledTime = typeof this.disabledTime === 'function' ? this.disabledTime : function () {\n return false;\n };\n\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n return value.every(function (v) {\n return !disabledDate(v) && !disabledTime(v);\n });\n },\n handleMultipleDates: function handleMultipleDates(date, dates) {\n if (this.validMultipleType && dates) {\n var nextDates = dates.filter(function (v) {\n return v.getTime() !== date.getTime();\n });\n\n if (nextDates.length === dates.length) {\n nextDates.push(date);\n }\n\n return nextDates;\n }\n\n return date;\n },\n handleSelectDate: function handleSelectDate(val, type, dates) {\n val = this.handleMultipleDates(val, dates);\n\n if (this.confirm) {\n this.currentValue = val;\n } else {\n this.emitValue(val, type, // this.type === 'datetime', click the time should close popup\n !this.validMultipleType && (type === this.type || type === 'time'));\n }\n },\n clear: function clear() {\n this.emitValue(this.range ? [null, null] : null);\n this.$emit('clear');\n },\n handleClear: function handleClear(evt) {\n evt.stopPropagation();\n this.clear();\n },\n handleConfirmDate: function handleConfirmDate() {\n var value = this.emitValue(this.currentValue);\n this.$emit('confirm', value);\n },\n handleSelectShortcut: function handleSelectShortcut(evt) {\n var index = evt.currentTarget.getAttribute('data-index');\n var item = this.shortcuts[parseInt(index, 10)];\n\n if (isObject(item) && typeof item.onClick === 'function') {\n var date = item.onClick(this);\n\n if (date) {\n this.emitValue(date);\n }\n }\n },\n openPopup: function openPopup(evt) {\n if (this.popupVisible || this.disabled) return;\n this.defaultOpen = true;\n this.$emit('open', evt);\n this.$emit('update:open', true);\n },\n closePopup: function closePopup() {\n if (!this.popupVisible) return;\n this.defaultOpen = false;\n this.$emit('close');\n this.$emit('update:open', false);\n },\n blur: function blur() {\n // when use slot input\n if (this.$refs.input) {\n this.$refs.input.blur();\n }\n },\n focus: function focus() {\n if (this.$refs.input) {\n this.$refs.input.focus();\n }\n },\n handleInputChange: function handleInputChange() {\n var _this3 = this;\n\n if (!this.editable || this.userInput === null) return;\n var text = this.userInput.trim();\n this.userInput = null;\n\n if (text === '') {\n this.clear();\n return;\n }\n\n var date;\n\n if (this.validMultipleType) {\n date = text.split(this.innerRangeSeparator).map(function (v) {\n return _this3.parseDate(v.trim());\n });\n } else if (this.range) {\n var arr = text.split(this.innerRangeSeparator);\n\n if (arr.length !== 2) {\n // Maybe the separator during the day is the same as the separator for the date\n // eg: 2019-10-09-2020-01-02\n arr = text.split(this.innerRangeSeparator.trim());\n }\n\n date = arr.map(function (v) {\n return _this3.parseDate(v.trim());\n });\n } else {\n date = this.parseDate(text);\n }\n\n if (this.isValidValueAndNotDisabled(date)) {\n this.emitValue(date);\n this.blur();\n } else {\n this.$emit('input-error', text);\n }\n },\n handleInputInput: function handleInputInput(evt) {\n // slot input v-model\n this.userInput = typeof evt === 'string' ? evt : evt.target.value;\n },\n handleInputKeydown: function handleInputKeydown(evt) {\n var keyCode = evt.keyCode; // Tab 9 or Enter 13\n\n if (keyCode === 9) {\n this.closePopup();\n } else if (keyCode === 13) {\n this.handleInputChange();\n }\n },\n handleInputBlur: function handleInputBlur(evt) {\n // tab close\n this.$emit('blur', evt);\n },\n handleInputFocus: function handleInputFocus(evt) {\n this.openPopup(evt);\n this.$emit('focus', evt);\n },\n hasSlot: function hasSlot(name) {\n return !!(this.$slots[name] || this.$scopedSlots[name]);\n },\n renderSlot: function renderSlot(name, fallback, props) {\n var slotFn = this.$scopedSlots[name];\n\n if (slotFn) {\n return slotFn(props) || fallback;\n }\n\n return this.$slots[name] || fallback;\n },\n renderInput: function renderInput() {\n var h = this.$createElement;\n var prefixClass = this.prefixClass;\n\n var props = _objectSpread2({\n name: 'date',\n type: 'text',\n autocomplete: 'off',\n value: this.text,\n class: this.inputClass || \"\".concat(this.prefixClass, \"-input\"),\n readonly: !this.editable,\n disabled: this.disabled,\n placeholder: this.placeholder\n }, this.inputAttr);\n\n var value = props.value,\n className = props.class,\n attrs = _objectWithoutProperties(props, [\"value\", \"class\"]);\n\n var events = {\n keydown: this.handleInputKeydown,\n focus: this.handleInputFocus,\n blur: this.handleInputBlur,\n input: this.handleInputInput,\n change: this.handleInputChange\n };\n var input = this.renderSlot('input', h(\"input\", {\n \"domProps\": {\n \"value\": value\n },\n \"class\": className,\n \"attrs\": _objectSpread2({}, attrs),\n \"on\": _objectSpread2({}, events),\n \"ref\": \"input\"\n }), {\n props: props,\n events: events\n });\n var calendarIcon = this.type === 'time' ? h(__vue_component__$2) : h(__vue_component__$1); // remove touchstart event to avoid opens the popup while scrolling in mobile #469\n\n return h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-input-wrapper\"),\n \"on\": {\n \"mouseenter\": this.handleMouseEnter,\n \"mouseleave\": this.handleMouseLeave,\n \"click\": this.openPopup\n },\n \"ref\": \"inputWrapper\"\n }, [input, this.showClearIcon ? h(\"i\", {\n \"class\": \"\".concat(prefixClass, \"-icon-clear\"),\n \"on\": {\n \"click\": this.handleClear\n }\n }, [this.renderSlot('icon-clear', h(__vue_component__$3))]) : h(\"i\", {\n \"class\": \"\".concat(prefixClass, \"-icon-calendar\")\n }, [this.renderSlot('icon-calendar', calendarIcon)])]);\n },\n renderContent: function renderContent() {\n var h = this.$createElement;\n var map = this.range ? componentRangeMap : componentMap;\n var Component = map[this.type] || map.default;\n\n var props = _objectSpread2({}, pick(this.$props, Object.keys(Component.props)), {\n value: this.currentValue\n });\n\n var on = _objectSpread2({}, pick(this.$listeners, Component.emits || []), {\n select: this.handleSelectDate\n });\n\n var content = h(Component, helper([{}, {\n props: props,\n on: on,\n ref: 'picker'\n }]));\n return h(\"div\", {\n \"class\": \"\".concat(this.prefixClass, \"-datepicker-body\")\n }, [this.renderSlot('content', content, {\n value: this.currentValue,\n emit: this.handleSelectDate\n })]);\n },\n renderSidebar: function renderSidebar() {\n var _this4 = this;\n\n var h = this.$createElement;\n var prefixClass = this.prefixClass;\n return h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-datepicker-sidebar\")\n }, [this.renderSlot('sidebar', null, {\n value: this.currentValue,\n emit: this.handleSelectDate\n }), this.shortcuts.map(function (v, i) {\n return h(\"button\", {\n \"key\": i,\n \"attrs\": {\n \"data-index\": i,\n \"type\": \"button\"\n },\n \"class\": \"\".concat(prefixClass, \"-btn \").concat(prefixClass, \"-btn-text \").concat(prefixClass, \"-btn-shortcut\"),\n \"on\": {\n \"click\": _this4.handleSelectShortcut\n }\n }, [v.text]);\n })]);\n },\n renderHeader: function renderHeader() {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": \"\".concat(this.prefixClass, \"-datepicker-header\")\n }, [this.renderSlot('header', null, {\n value: this.currentValue,\n emit: this.handleSelectDate\n })]);\n },\n renderFooter: function renderFooter() {\n var h = this.$createElement;\n var prefixClass = this.prefixClass;\n return h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-datepicker-footer\")\n }, [this.renderSlot('footer', null, {\n value: this.currentValue,\n emit: this.handleSelectDate\n }), this.confirm ? h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": \"\".concat(prefixClass, \"-btn \").concat(prefixClass, \"-datepicker-btn-confirm\"),\n \"on\": {\n \"click\": this.handleConfirmDate\n }\n }, [this.confirmText]) : null]);\n }\n },\n render: function render() {\n var _class;\n\n var h = arguments[0];\n var prefixClass = this.prefixClass,\n inline = this.inline,\n disabled = this.disabled;\n var sidedar = this.hasSlot('sidebar') || this.shortcuts.length ? this.renderSidebar() : null;\n var content = h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-datepicker-content\")\n }, [this.hasSlot('header') ? this.renderHeader() : null, this.renderContent(), this.hasSlot('footer') || this.confirm ? this.renderFooter() : null]);\n return h(\"div\", {\n \"class\": (_class = {}, _defineProperty(_class, \"\".concat(prefixClass, \"-datepicker\"), true), _defineProperty(_class, \"\".concat(prefixClass, \"-datepicker-range\"), this.range), _defineProperty(_class, \"\".concat(prefixClass, \"-datepicker-inline\"), inline), _defineProperty(_class, \"disabled\", disabled), _class)\n }, [!inline ? this.renderInput() : null, !inline ? h(__vue_component__, {\n \"ref\": \"popup\",\n \"class\": this.popupClass,\n \"style\": this.popupStyle,\n \"attrs\": {\n \"visible\": this.popupVisible,\n \"appendToBody\": this.appendToBody\n },\n \"on\": {\n \"clickoutside\": this.handleClickOutSide\n }\n }, [sidedar, content]) : h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-datepicker-main\")\n }, [sidedar, content])]);\n }\n};\n\nDatePicker.locale = locale;\n\nDatePicker.install = function install(Vue) {\n Vue.component(DatePicker.name, DatePicker);\n};\n\nif (typeof window !== 'undefined' && window.Vue) {\n DatePicker.install(window.Vue);\n}\n\n_extends(DatePicker, {\n CalendarPanel: CalendarPanel,\n CalendarRange: CalendarRange,\n TimePanel: __vue_component__$b,\n TimeRange: TimeRange,\n DatetimePanel: DatetimePanel,\n DatetimeRange: DatetimeRange\n});\n\nexport default DatePicker;\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueSelect=t():e.VueSelect=t()}(\"undefined\"!=typeof self?self:this,(function(){return(()=>{var e={646:e=>{e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}},713:e=>{e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},860:e=>{e.exports=function(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}},206:e=>{e.exports=function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}},319:(e,t,n)=>{var o=n(646),i=n(860),s=n(206);e.exports=function(e){return o(e)||i(e)||s()}},8:e=>{function t(n){return\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},t(n)}e.exports=t}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var o={};return(()=>{\"use strict\";n.r(o),n.d(o,{VueSelect:()=>m,default:()=>O,mixins:()=>_});var e=n(319),t=n.n(e),i=n(8),s=n.n(i),r=n(713),a=n.n(r);const l={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer:function(){this.autoscroll&&this.maybeAdjustScroll()},open:function(e){var t=this;this.autoscroll&&e&&this.$nextTick((function(){return t.maybeAdjustScroll()}))}},methods:{maybeAdjustScroll:function(){var e,t=(null===(e=this.$refs.dropdownMenu)||void 0===e?void 0:e.children[this.typeAheadPointer])||!1;if(t){var n=this.getDropdownViewport(),o=t.getBoundingClientRect(),i=o.top,s=o.bottom,r=o.height;if(i<n.top)return this.$refs.dropdownMenu.scrollTop=t.offsetTop;if(s>n.bottom)return this.$refs.dropdownMenu.scrollTop=t.offsetTop-(n.height-r)}},getDropdownViewport:function(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},c={data:function(){return{typeAheadPointer:-1}},watch:{filteredOptions:function(){for(var e=0;e<this.filteredOptions.length;e++)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},open:function(e){e&&this.typeAheadToLastSelected()},selectedValue:function(){this.open&&this.typeAheadToLastSelected()}},methods:{typeAheadUp:function(){for(var e=this.typeAheadPointer-1;e>=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown:function(){for(var e=this.typeAheadPointer+1;e<this.filteredOptions.length;e++)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadSelect:function(){var e=this.filteredOptions[this.typeAheadPointer];e&&this.selectable(e)&&this.select(e)},typeAheadToLastSelected:function(){var e=0!==this.selectedValue.length?this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length-1]):-1;-1!==e&&(this.typeAheadPointer=e)}}},u={props:{loading:{type:Boolean,default:!1}},data:function(){return{mutableLoading:!1}},watch:{search:function(){this.$emit(\"search\",this.search,this.toggleLoading)},loading:function(e){this.mutableLoading=e}},methods:{toggleLoading:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.mutableLoading=null==e?!this.mutableLoading:e}}};function p(e,t,n,o,i,s,r,a){var l,c=\"function\"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),o&&(c.functional=!0),s&&(c._scopeId=\"data-v-\"+s),r?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},c._ssrRegister=l):i&&(l=a?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(e,t){return l.call(t),u(e,t)}}else{var p=c.beforeCreate;c.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:c}}const h={Deselect:p({},(function(){var e=this.$createElement,t=this._self._c||e;return t(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"10\",height:\"10\"}},[t(\"path\",{attrs:{d:\"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\"}})])}),[],!1,null,null,null).exports,OpenIndicator:p({},(function(){var e=this.$createElement,t=this._self._c||e;return t(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"14\",height:\"10\"}},[t(\"path\",{attrs:{d:\"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\"}})])}),[],!1,null,null,null).exports},d={inserted:function(e,t,n){var o=n.context;if(o.appendToBody){var i=o.$refs.toggle.getBoundingClientRect(),s=i.height,r=i.top,a=i.left,l=i.width,c=window.scrollX||window.pageXOffset,u=window.scrollY||window.pageYOffset;e.unbindPosition=o.calculatePosition(e,o,{width:l+\"px\",left:c+a+\"px\",top:u+r+s+\"px\"}),document.body.appendChild(e)}},unbind:function(e,t,n){n.context.appendToBody&&(e.unbindPosition&&\"function\"==typeof e.unbindPosition&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}};const f=function(e){var t={};return Object.keys(e).sort().forEach((function(n){t[n]=e[n]})),JSON.stringify(t)};var y=0;const g=function(){return++y};function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){a()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const m=p({components:v({},h),directives:{appendToBody:d},mixins:[l,c,u],props:{value:{},components:{type:Object,default:function(){return{}}},options:{type:Array,default:function(){return[]}},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:\"\"},transition:{type:String,default:\"vs__fade\"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:\"label\"},autocomplete:{type:String,default:\"off\"},reduce:{type:Function,default:function(e){return e}},selectable:{type:Function,default:function(e){return!0}},getOptionLabel:{type:Function,default:function(e){return\"object\"===s()(e)?e.hasOwnProperty(this.label)?e[this.label]:console.warn('[vue-select warn]: Label key \"option.'.concat(this.label,'\" does not')+\" exist in options object \".concat(JSON.stringify(e),\".\\n\")+\"https://vue-select.org/api/props.html#getoptionlabel\"):e}},getOptionKey:{type:Function,default:function(e){if(\"object\"!==s()(e))return e;try{return e.hasOwnProperty(\"id\")?e.id:f(e)}catch(t){return console.warn(\"[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.\\nhttps://vue-select.org/api/props.html#getoptionkey\",e,t)}}},onTab:{type:Function,default:function(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default:function(e,t,n){return(t||\"\").toLocaleLowerCase().indexOf(n.toLocaleLowerCase())>-1}},filter:{type:Function,default:function(e,t){var n=this;return e.filter((function(e){var o=n.getOptionLabel(e);return\"number\"==typeof o&&(o=o.toString()),n.filterBy(e,o,t)}))}},createOption:{type:Function,default:function(e){return\"object\"===s()(this.optionList[0])?a()({},this.label,e):e}},resetOnOptionsChange:{default:!1,validator:function(e){return[\"function\",\"boolean\"].includes(s()(e))}},clearSearchOnBlur:{type:Function,default:function(e){var t=e.clearSearchOnSelect,n=e.multiple;return t&&!n}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:\"auto\"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:function(){return[13]}},searchInputQuerySelector:{type:String,default:\"[type=search]\"},mapKeydown:{type:Function,default:function(e,t){return e}},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default:function(e,t,n){var o=n.width,i=n.top,s=n.left;e.style.top=i,e.style.left=s,e.style.width=o}},dropdownShouldOpen:{type:Function,default:function(e){var t=e.noDrop,n=e.open,o=e.mutableLoading;return!t&&(n&&!o)}},uid:{type:[String,Number],default:function(){return g()}}},data:function(){return{search:\"\",open:!1,isComposing:!1,pushedTags:[],_value:[]}},computed:{isTrackingValues:function(){return void 0===this.value||this.$options.propsData.hasOwnProperty(\"reduce\")},selectedValue:function(){var e=this.value;return this.isTrackingValues&&(e=this.$data._value),null!=e&&\"\"!==e?[].concat(e):[]},optionList:function(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl:function(){return this.$scopedSlots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope:function(){var e=this,t={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:v({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,\"aria-autocomplete\":\"list\",\"aria-labelledby\":\"vs\".concat(this.uid,\"__combobox\"),\"aria-controls\":\"vs\".concat(this.uid,\"__listbox\"),ref:\"search\",type:\"search\",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{\"aria-activedescendant\":\"vs\".concat(this.uid,\"__option-\").concat(this.typeAheadPointer)}:{}),events:{compositionstart:function(){return e.isComposing=!0},compositionend:function(){return e.isComposing=!1},keydown:this.onSearchKeyDown,keypress:this.onSearchKeyPress,blur:this.onSearchBlur,focus:this.onSearchFocus,input:function(t){return e.search=t.target.value}}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:\"openIndicator\",role:\"presentation\",class:\"vs__open-indicator\"}},listHeader:t,listFooter:t,header:v({},t,{deselect:this.deselect}),footer:v({},t,{deselect:this.deselect})}},childComponents:function(){return v({},h,{},this.components)},stateClasses:function(){return{\"vs--open\":this.dropdownOpen,\"vs--single\":!this.multiple,\"vs--multiple\":this.multiple,\"vs--searching\":this.searching&&!this.noDrop,\"vs--searchable\":this.searchable&&!this.noDrop,\"vs--unsearchable\":!this.searchable,\"vs--loading\":this.mutableLoading,\"vs--disabled\":this.disabled}},searching:function(){return!!this.search},dropdownOpen:function(){return this.dropdownShouldOpen(this)},searchPlaceholder:function(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions:function(){var e=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return e;var t=this.search.length?this.filter(e,this.search,this):e;if(this.taggable&&this.search.length){var n=this.createOption(this.search);this.optionExists(n)||t.unshift(n)}return t},isValueEmpty:function(){return 0===this.selectedValue.length},showClearButton:function(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options:function(e,t){var n=this;!this.taggable&&(\"function\"==typeof n.resetOnOptionsChange?n.resetOnOptionsChange(e,t,n.selectedValue):n.resetOnOptionsChange)&&this.clearSelection(),this.value&&this.isTrackingValues&&this.setInternalValueFromOptions(this.value)},value:{immediate:!0,handler:function(e){this.isTrackingValues&&this.setInternalValueFromOptions(e)}},multiple:function(){this.clearSelection()},open:function(e){this.$emit(e?\"open\":\"close\")},search:function(e){e.length&&(this.open=!0)}},created:function(){this.mutableLoading=this.loading,this.$on(\"option:created\",this.pushTag)},methods:{setInternalValueFromOptions:function(e){var t=this;Array.isArray(e)?this.$data._value=e.map((function(e){return t.findOptionFromReducedValue(e)})):this.$data._value=this.findOptionFromReducedValue(e)},select:function(e){this.$emit(\"option:selecting\",e),this.isOptionSelected(e)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(e):(this.taggable&&!this.optionExists(e)&&this.$emit(\"option:created\",e),this.multiple&&(e=this.selectedValue.concat(e)),this.updateValue(e),this.$emit(\"option:selected\",e)),this.onAfterSelect(e)},deselect:function(e){var t=this;this.$emit(\"option:deselecting\",e),this.updateValue(this.selectedValue.filter((function(n){return!t.optionComparator(n,e)}))),this.$emit(\"option:deselected\",e)},clearSelection:function(){this.updateValue(this.multiple?[]:null)},onAfterSelect:function(e){var t=this;this.closeOnSelect&&(this.open=!this.open),this.clearSearchOnSelect&&(this.search=\"\"),this.noDrop&&this.multiple&&this.$nextTick((function(){return t.$refs.search.focus()}))},updateValue:function(e){var t=this;void 0===this.value&&(this.$data._value=e),null!==e&&(e=Array.isArray(e)?e.map((function(e){return t.reduce(e)})):this.reduce(e)),this.$emit(\"input\",e)},toggleDropdown:function(e){var n=e.target!==this.searchEl;n&&e.preventDefault();var o=[].concat(t()(this.$refs.deselectButtons||[]),t()([this.$refs.clearButton]||0));void 0===this.searchEl||o.filter(Boolean).some((function(t){return t.contains(e.target)||t===e.target}))?e.preventDefault():this.open&&n?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected:function(e){var t=this;return this.selectedValue.some((function(n){return t.optionComparator(n,e)}))},isOptionDeselectable:function(e){return this.isOptionSelected(e)&&this.deselectFromDropdown},optionComparator:function(e,t){return this.getOptionKey(e)===this.getOptionKey(t)},findOptionFromReducedValue:function(e){var n=this,o=[].concat(t()(this.options),t()(this.pushedTags)).filter((function(t){return JSON.stringify(n.reduce(t))===JSON.stringify(e)}));return 1===o.length?o[0]:o.find((function(e){return n.optionComparator(e,n.$data._value)}))||e},closeSearchOptions:function(){this.open=!1,this.$emit(\"search:blur\")},maybeDeleteValue:function(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){var e=null;this.multiple&&(e=t()(this.selectedValue.slice(0,this.selectedValue.length-1))),this.updateValue(e)}},optionExists:function(e){var t=this;return this.optionList.some((function(n){return t.optionComparator(n,e)}))},normalizeOptionForSlot:function(e){return\"object\"===s()(e)?e:a()({},this.label,e)},pushTag:function(e){this.pushedTags.push(e)},onEscape:function(){this.search.length?this.search=\"\":this.open=!1},onSearchBlur:function(){if(!this.mousedown||this.searching){var e=this.clearSearchOnSelect,t=this.multiple;return this.clearSearchOnBlur({clearSearchOnSelect:e,multiple:t})&&(this.search=\"\"),void this.closeSearchOptions()}this.mousedown=!1,0!==this.search.length||0!==this.options.length||this.closeSearchOptions()},onSearchFocus:function(){this.open=!0,this.$emit(\"search:focus\")},onMousedown:function(){this.mousedown=!0},onMouseUp:function(){this.mousedown=!1},onSearchKeyDown:function(e){var t=this,n=function(e){return e.preventDefault(),!t.isComposing&&t.typeAheadSelect()},o={8:function(e){return t.maybeDeleteValue()},9:function(e){return t.onTab()},27:function(e){return t.onEscape()},38:function(e){if(e.preventDefault(),t.open)return t.typeAheadUp();t.open=!0},40:function(e){if(e.preventDefault(),t.open)return t.typeAheadDown();t.open=!0}};this.selectOnKeyCodes.forEach((function(e){return o[e]=n}));var i=this.mapKeydown(o,this);if(\"function\"==typeof i[e.keyCode])return i[e.keyCode](e)},onSearchKeyPress:function(e){this.open||32!==e.keyCode||(e.preventDefault(),this.open=!0)}}},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"v-select\",class:e.stateClasses,attrs:{dir:e.dir}},[e._t(\"header\",null,null,e.scope.header),e._v(\" \"),n(\"div\",{ref:\"toggle\",staticClass:\"vs__dropdown-toggle\",attrs:{id:\"vs\"+e.uid+\"__combobox\",role:\"combobox\",\"aria-expanded\":e.dropdownOpen.toString(),\"aria-owns\":\"vs\"+e.uid+\"__listbox\",\"aria-controls\":\"vs\"+e.uid+\"__listbox\",\"aria-label\":\"Search for option\"},on:{mousedown:function(t){return e.toggleDropdown(t)}}},[n(\"div\",{ref:\"selectedOptions\",staticClass:\"vs__selected-options\"},[e._l(e.selectedValue,(function(t){return e._t(\"selected-option-container\",[n(\"span\",{key:e.getOptionKey(t),staticClass:\"vs__selected\"},[e._t(\"selected-option\",[e._v(\"\\n \"+e._s(e.getOptionLabel(t))+\"\\n \")],null,e.normalizeOptionForSlot(t)),e._v(\" \"),e.multiple?n(\"button\",{ref:\"deselectButtons\",refInFor:!0,staticClass:\"vs__deselect\",attrs:{disabled:e.disabled,type:\"button\",title:\"Deselect \"+e.getOptionLabel(t),\"aria-label\":\"Deselect \"+e.getOptionLabel(t)},on:{click:function(n){return e.deselect(t)}}},[n(e.childComponents.Deselect,{tag:\"component\"})],1):e._e()],2)],{option:e.normalizeOptionForSlot(t),deselect:e.deselect,multiple:e.multiple,disabled:e.disabled})})),e._v(\" \"),e._t(\"search\",[n(\"input\",e._g(e._b({staticClass:\"vs__search\"},\"input\",e.scope.search.attributes,!1),e.scope.search.events))],null,e.scope.search)],2),e._v(\" \"),n(\"div\",{ref:\"actions\",staticClass:\"vs__actions\"},[n(\"button\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.showClearButton,expression:\"showClearButton\"}],ref:\"clearButton\",staticClass:\"vs__clear\",attrs:{disabled:e.disabled,type:\"button\",title:\"Clear Selected\",\"aria-label\":\"Clear Selected\"},on:{click:e.clearSelection}},[n(e.childComponents.Deselect,{tag:\"component\"})],1),e._v(\" \"),e._t(\"open-indicator\",[e.noDrop?e._e():n(e.childComponents.OpenIndicator,e._b({tag:\"component\"},\"component\",e.scope.openIndicator.attributes,!1))],null,e.scope.openIndicator),e._v(\" \"),e._t(\"spinner\",[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.mutableLoading,expression:\"mutableLoading\"}],staticClass:\"vs__spinner\"},[e._v(\"Loading...\")])],null,e.scope.spinner)],2)]),e._v(\" \"),n(\"transition\",{attrs:{name:e.transition}},[e.dropdownOpen?n(\"ul\",{directives:[{name:\"append-to-body\",rawName:\"v-append-to-body\"}],key:\"vs\"+e.uid+\"__listbox\",ref:\"dropdownMenu\",staticClass:\"vs__dropdown-menu\",attrs:{id:\"vs\"+e.uid+\"__listbox\",role:\"listbox\",tabindex:\"-1\"},on:{mousedown:function(t){return t.preventDefault(),e.onMousedown(t)},mouseup:e.onMouseUp}},[e._t(\"list-header\",null,null,e.scope.listHeader),e._v(\" \"),e._l(e.filteredOptions,(function(t,o){return n(\"li\",{key:e.getOptionKey(t),staticClass:\"vs__dropdown-option\",class:{\"vs__dropdown-option--deselect\":e.isOptionDeselectable(t)&&o===e.typeAheadPointer,\"vs__dropdown-option--selected\":e.isOptionSelected(t),\"vs__dropdown-option--highlight\":o===e.typeAheadPointer,\"vs__dropdown-option--disabled\":!e.selectable(t)},attrs:{id:\"vs\"+e.uid+\"__option-\"+o,role:\"option\",\"aria-selected\":o===e.typeAheadPointer||null},on:{mouseover:function(n){e.selectable(t)&&(e.typeAheadPointer=o)},click:function(n){n.preventDefault(),n.stopPropagation(),e.selectable(t)&&e.select(t)}}},[e._t(\"option\",[e._v(\"\\n \"+e._s(e.getOptionLabel(t))+\"\\n \")],null,e.normalizeOptionForSlot(t))],2)})),e._v(\" \"),0===e.filteredOptions.length?n(\"li\",{staticClass:\"vs__no-options\"},[e._t(\"no-options\",[e._v(\"\\n Sorry, no matching options.\\n \")],null,e.scope.noOptions)],2):e._e(),e._v(\" \"),e._t(\"list-footer\",null,null,e.scope.listFooter)],2):n(\"ul\",{staticStyle:{display:\"none\",visibility:\"hidden\"},attrs:{id:\"vs\"+e.uid+\"__listbox\",role:\"listbox\"}})]),e._v(\" \"),e._t(\"footer\",null,null,e.scope.footer)],2)}),[],!1,null,null,null).exports,_={ajax:u,pointer:c,pointerScroll:l},O=m})(),o})()}));\n//# sourceMappingURL=vue-select.js.map","<template>\n <div v-if=\"value\" class=\"modal fade show d-block\" tabindex=\"-1\" style=\"background: rgba(0,0,0,0.5);\">\n <div class=\"modal-dialog modal-dialog-scrollable modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Data Pribadi</h5>\n <button @click=\"close\" type=\"button\" class=\"btn-close\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"row g-3\">\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Nama Lengkap</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.name\" placeholder=\"Nama Lengkap\"\n style=\"text-transform: uppercase\" @input=\"formData.name = $event.target.value.toUpperCase()\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Nama Panggilan</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.nick_name\" placeholder=\"Nama Panggilan\"\n style=\"text-transform: uppercase\" @input=\"formData.nick_name = $event.target.value.toUpperCase()\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Email</label>\n <input type=\"email\" class=\"form-control\" v-model=\"formData.email\" placeholder=\"Email\" readonly />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Phone</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.phone\" placeholder=\"No HP\"\n @input=\"formatPhone\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">NIK</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.national_id\" placeholder=\"16 digit NIK\"\n maxlength=\"16\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">No KK</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.family_national_id\" placeholder=\"16 digit No KK\"\n maxlength=\"16\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Tempat Lahir</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.place_of_birth\" placeholder=\"Tempat Lahir\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Tanggal Lahir</label>\n <DatePicker v-model=\"formData.birth_date\" format=\"YYYY-MM-DD\" value-type=\"format\" @input=\"hitungUmur\" />\n <div v-if=\"ageInfo.age !== null\" class=\"mt-2\">\n <small :class=\"isAgeRestricted ? 'text-danger' : 'text-muted'\">\n Umur per 31 Juli {{ currentYear }}: <strong>{{ ageInfo.text }}</strong>\n </small>\n <div v-if=\"isAgeRestricted\" class=\"text-danger mt-1\">\n <small><i class=\"bi bi-exclamation-circle\"></i> Tidak dapat menyimpan data untuk usia 21 tahun atau\n lebih</small>\n </div>\n </div>\n <div v-if=\"loadingAge\" class=\"mt-2\">\n <small class=\"text-muted\">Menghitung umur...</small>\n </div>\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Jenis Kelamin</label>\n <div>\n <input type=\"radio\" v-model=\"formData.sex\" value=\"1\" id=\"male\" />\n <label for=\"male\">Laki-Laki</label>\n <input type=\"radio\" v-model=\"formData.sex\" value=\"2\" id=\"female\" class=\"ms-3\" />\n <label for=\"female\">Perempuan</label>\n </div>\n </div>\n <div class=\"col-md-12\">\n <label class=\"form-label fw-semibold\">Alamat Lengkap</label>\n <textarea class=\"form-control\" v-model=\"formData.address\" placeholder=\"Alamat Lengkap\"\n rows=\"3\"></textarea>\n </div>\n <div class=\"col-md-12\">\n <label class=\"form-label fw-semibold\">Riwayat Penyakit</label>\n <textarea class=\"form-control\" v-model=\"formData.medical_history\" placeholder=\"Riwayat Penyakit\"\n rows=\"3\"></textarea>\n </div>\n <div class=\"col-md-12\">\n <label class=\"form-label fw-semibold\">Kabupaten/Kota</label>\n <v-select v-model=\"formData.location\" :options=\"locations\"\n placeholder=\"Ketik untuk mencari kabupaten/kota...\" @search=\"handleSearch\" :filterable=\"false\">\n <template #no-options>\n Ketik untuk mencari kabupaten/kota...\n </template>\n </v-select>\n </div>\n <div class=\"col-md-12\">\n <SgFileUploader v-model=\"formData.national_card\" label=\"Upload KTP\" />\n </div>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button v-if=\"!isAgeRestricted\" @click=\"save\" type=\"button\" class=\"btn btn-primary rounded-pill px-4\">\n Simpan\n </button>\n <button @click=\"close\" type=\"button\" class=\"btn btn-outline-secondary rounded-pill px-4\">\n Batal\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport DatePicker from \"vue2-datepicker\";\nimport \"vue2-datepicker/index.css\";\nimport vSelect from 'vue-select';\nimport 'vue-select/dist/vue-select.css';\nimport SgFileUploader from '../components/SgFileUploader.vue';\nimport { checkAge } from '../api/profileApi';\n\nexport default {\n name: 'PersonalDataEditModal',\n components: {\n DatePicker,\n vSelect,\n SgFileUploader\n },\n props: {\n value: {\n type: Boolean,\n default: false\n },\n user: {\n type: Object,\n required: true\n },\n locations: {\n type: Array,\n default: () => []\n }\n },\n data() {\n return {\n formData: {},\n ageInfo: {\n age: null,\n text: null\n },\n loadingAge: false,\n currentYear: new Date().getFullYear()\n };\n },\n watch: {\n value(newVal) {\n if (newVal) {\n this.formData = { ...this.user };\n if (this.formData.birth_date) {\n this.hitungUmur();\n }\n }\n }\n },\n computed: {\n isAgeRestricted() {\n const res = (Array.isArray(this.user.role) ? this.user.role.includes('user') || this.user.role.includes('c_thalabah') : this.user.role === 'user' || this.user.role === 'c_thalabah') && this.ageInfo.age >= 21;\n return res;\n }\n },\n methods: {\n formatPhone(event) {\n this.formData.phone = event.target.value\n .replace(/[^\\d+]/g, '')\n .replace(/(\\d{4})/g, '$1 ');\n },\n handleSearch(search, loading) {\n this.$emit('search-locations', search, loading);\n },\n async hitungUmur() {\n if (!this.formData.birth_date) {\n this.ageInfo.age = null;\n return;\n }\n\n this.loadingAge = true;\n try {\n const response = await checkAge(this.formData.birth_date);\n if (response.data && response.data.data) {\n this.ageInfo.age = response.data.data.y;\n this.ageInfo.text = response.data.data.text;\n }\n } catch (error) {\n console.error('Error menghitung umur:', error);\n this.ageInfo.age = null;\n this.ageInfo.text = null;\n } finally {\n this.loadingAge = false;\n }\n },\n save() {\n if (this.isAgeRestricted) {\n alert('Tidak dapat menyimpan data untuk usia 21 tahun atau lebih per 31 Juli ' + this.currentYear);\n return;\n }\n this.$emit('save', this.formData);\n },\n close() {\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n\n.v-select {\n width: 100%;\n}\n\n.v-select .vs__dropdown-toggle {\n padding: 0.375rem 0.75rem;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.v-select .vs__search {\n margin: 0;\n padding: 0;\n border: none;\n}\n\n.v-select .vs__search:focus {\n outline: none;\n}\n\n.v-select .vs__dropdown-menu {\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n max-height: 250px;\n overflow-y: auto;\n}\n\n.v-select .vs__dropdown-option {\n padding: 0.5rem 0.75rem;\n}\n\n.v-select .vs__dropdown-option--highlight {\n background: #0d6efd;\n color: white;\n}\n\n.v-select .vs__selected {\n margin: 0;\n padding: 0;\n}\n\n.v-select .vs__clear {\n margin-right: 5px;\n}\n</style>","<template>\n <div class=\"card shadow-sm\">\n <div class=\"card-body\">\n <!-- Personal Data Section (View Only) -->\n <div class=\"mb-4\">\n <div class=\"d-flex justify-content-between align-items-center mb-3\">\n <h4 class=\"fw-bold mb-0\">Data Pribadi</h4>\n <button class=\"btn btn-light rounded-circle\" @click=\"showEditModal = true\">\n <i class=\"uil uil-edit\"></i>\n </button>\n </div>\n <div class=\"row g-3\">\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Nama Panggilan:</span>\n <div class=\"fw-semibold\">{{ user.nick_name || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Email:</span>\n <div class=\"fw-semibold\">{{ user.email || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">NIK:</span>\n <div class=\"fw-semibold\">{{ user.national_id | nationalIdFormat }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">No KK:</span>\n <div class=\"fw-semibold\">{{ user.family_national_id || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Kewarganegaraan:</span>\n <div class=\"fw-semibold\">{{ user.citizen?.label || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Negara:</span>\n <div class=\"fw-semibold\">{{ user.country?.label || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Phone:</span>\n <div class=\"fw-semibold\">{{ user.phone | formatPhone }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Tempat Lahir:</span>\n <div class=\"fw-semibold\">{{ user.place_of_birth || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Jenis Kelamin:</span>\n <div class=\"fw-semibold\">{{ user.sex | formatGender }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Tanggal Lahir:</span>\n <div class=\"fw-semibold\">{{ user.birth_date | formatDate }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">KTP:</span>\n <div v-if=\"user.national_card\">\n <a @click=\"$emit('show-preview', user.national_card?.url)\" class=\"link\">\n <i class=\"uil uil-file-alt\"></i> Lihat KTP\n </a>\n </div>\n <div v-else class=\"fw-semibold\">-</div>\n </div>\n <div class=\"col-md-12\">\n <span class=\"text-muted\">Alamat:</span>\n <div class=\"fw-semibold\">{{ user.address || '-' }}</div>\n </div>\n <div class=\"col-md-12\">\n <span class=\"text-muted\">Lokasi:</span>\n <div class=\"fw-semibold\">{{ user.location?.label || '-' }}</div>\n </div>\n </div>\n </div>\n\n <!-- Modal Edit Data Pribadi -->\n <PersonalDataEditModal v-model=\"showEditModal\" :user=\"user\" :locations=\"locations\" @save=\"handleSave\"\n @search-locations=\"handleSearchLocations\" />\n </div>\n </div>\n</template>\n\n<script>\nimport PersonalDataEditModal from './PersonalDataEditModal.vue';\n\nexport default {\n name: 'ProfilePersonalData',\n components: {\n PersonalDataEditModal\n },\n props: {\n user: {\n type: Object,\n required: true\n },\n locations: {\n type: Array,\n default: () => []\n }\n },\n data () {\n return {\n showEditModal: false\n };\n },\n mounted () {\n this.$root.$on('open-modal', ({ type }) => {\n if (type === 'profile') {\n this.showEditModal = true;\n }\n });\n },\n beforeDestroy () {\n this.$root.$off('open-modal');\n },\n methods: {\n handleSave (updatedData) {\n this.$emit('update', updatedData);\n this.showEditModal = false;\n },\n handleSearchLocations (search, loading) {\n this.$emit('search-locations', search, loading);\n }\n }\n};\n</script>\n\n<style scoped>\n.link {\n cursor: pointer;\n color: #0d6efd;\n text-decoration: none;\n}\n\n.link:hover {\n text-decoration: underline;\n}\n</style>","<template>\n <div v-if=\"value\" class=\"modal fade show d-block\" tabindex=\"-1\" style=\"background: rgba(0,0,0,0.5);\">\n <div class=\"modal-dialog modal-dialog-centered\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">\n Verifikasi {{ verificationType === 'email' ? 'Email' : 'Nomor Telepon' }}\n </h5>\n <button @click=\"close\" type=\"button\" class=\"btn-close\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"text-center mb-4\">\n <div class=\"mb-3\">\n <i :class=\"verificationType === 'email' ? 'uil uil-envelope' : 'uil uil-phone'\" class=\"text-primary\"\n style=\"font-size: 64px;\"></i>\n </div>\n\n <div v-if=\"verificationType === 'phone'\" class=\"mb-3\">\n <label for=\"phone\" class=\"form-label\">Nomor Telepon</label>\n <input type=\"text\" class=\"form-control\" id=\"phone\" :value=\"formattedPhone\" @input=\"onPhoneInput\"\n placeholder=\"0812 3456 7890\" :class=\"{ 'is-invalid': phoneError }\" />\n <div v-if=\"phoneError\" class=\"invalid-feedback\">\n {{ phoneError }}\n </div>\n </div>\n\n <p class=\"text-muted\">\n {{ verificationType === 'email'\n ? 'Link verifikasi akan dikirim ke ' + email\n : 'Pesan verifikasi akan dikirim ke ' + phone\n }}\n </p>\n </div>\n <button @click=\"sendOtp\" class=\"btn btn-primary w-100\" :disabled=\"isButtonDisabled\">\n <span v-if=\"sendingOtp\" class=\"spinner-border spinner-border-sm me-2\"></span>\n {{ sendingOtp ? 'Mengirim...' :\n (verificationType === 'email' ? 'Kirim Link Verifikasi' : 'Verifikasi Whatsapp')\n }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { sendEmailOtp, sendPhoneOtp } from '../api/profileApi';\nimport { showToast } from '../utils/toast';\nimport Swal from 'sweetalert2';\n\nexport default {\n name: 'OtpModal',\n props: {\n value: {\n type: Boolean,\n default: false\n },\n verificationType: {\n type: String,\n required: true\n },\n email: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n phone: '',\n phoneError: '',\n sendingOtp: false\n };\n },\n computed: {\n formattedPhone() {\n if (!this.phone) return '';\n // Format: 0812 3456 7890 (pisah tiap 4 digit)\n return this.phone.replace(/(\\d{4})(?=\\d)/g, '$1 ');\n },\n isButtonDisabled() {\n if (this.verificationType === 'email') {\n return this.sendingOtp;\n }\n // Untuk phone: disabled jika sedang mengirim atau ada error atau nomor kosong\n return this.sendingOtp || !!this.phoneError || !this.phone;\n }\n },\n methods: {\n onPhoneInput(e) {\n // Ambil hanya angka\n let raw = e.target.value.replace(/\\D/g, '');\n this.phone = raw;\n this.validatePhone();\n },\n validatePhone() {\n if (!this.phone) {\n this.phoneError = 'Nomor telepon tidak boleh kosong';\n } else if (!this.phone.startsWith('0')) {\n this.phoneError = 'Nomor telepon harus diawali angka 0';\n } else if (this.phone.length < 9) {\n this.phoneError = 'Nomor telepon minimal 9 digit';\n } else {\n this.phoneError = '';\n }\n },\n async sendOtp() {\n this.sendingOtp = true;\n\n try {\n let data = {};\n let endpoint = '';\n\n if (this.verificationType === 'email') {\n await sendEmailOtp(this.email);\n showToast({\n icon: 'success',\n title: 'Berhasil',\n text: 'Link verifikasi telah dikirim ke email Anda'\n });\n this.$emit('verified');\n this.close();\n } else {\n const result = await Swal.fire({\n text: 'Pastikan nomor yang ditulis sesuai dengan nomor WhatsApp yang aktif: ' + this.phone,\n icon: 'question',\n showCancelButton: true,\n confirmButtonText: 'Kirim',\n cancelButtonText: 'Batal'\n });\n\n if (result.isConfirmed) {\n const res = await sendPhoneOtp(this.phone);\n const url = res.data.data.wa_url;\n const newTab = window.open(url, '_blank');\n if (newTab) {\n newTab.opener = window;\n }\n this.$emit('verified');\n this.close();\n }\n }\n } catch (error) {\n const errorMessage = error.response?.data?.user_message || 'Gagal melakukan verifikasi';\n showToast({\n icon: 'error',\n title: 'Error',\n text: errorMessage\n });\n } finally {\n this.sendingOtp = false;\n }\n },\n close() {\n this.phone = '';\n this.phoneError = '';\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n</style>","<template>\n <div class=\"card shadow-sm\">\n <div class=\"card-body border-top\">\n <div class=\"d-flex justify-content-between align-items-center mb-4\">\n <h3>Verifikasi Akun</h3>\n </div>\n\n <div class=\"row g-4\">\n <!-- Email Verification -->\n <div class=\"col-12\">\n <div class=\"d-flex gap-3\">\n <div class=\"flex-shrink-0\">\n <div class=\"d-flex align-items-center justify-content-center\"\n :class=\"user.email_verified_at ? 'bg-success' : 'bg-secondary'\"\n style=\"width: 48px; height: 48px; border-radius: 8px;\">\n <i class=\"uil uil-envelope text-white fs-5\"></i>\n </div>\n </div>\n <div class=\"flex-fill\">\n <div class=\"d-flex justify-content-between align-items-start\">\n <div>\n <h5 class=\"mb-1\">Email</h5>\n <p class=\"text-muted small mb-1\">{{ user.email || '-' }}</p>\n <span v-if=\"user.user_email && user.user_email.active\" class=\"badge bg-success\">\n <i class=\"uil uil-check\"></i> Terverifikasi\n </span>\n <span v-else class=\"badge bg-warning text-dark\">\n <i class=\"uil uil-exclamation-triangle\"></i> Belum Terverifikasi\n </span>\n </div>\n <button v-if=\"!user.user_email || !user.user_email.active\" class=\"btn btn-primary btn-sm rounded-pill\"\n @click=\"openVerificationModal('email')\">\n Verifikasi\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Phone Verification -->\n <div class=\"col-12\">\n <div class=\"d-flex gap-3\">\n <div class=\"flex-shrink-0\">\n <div class=\"d-flex align-items-center justify-content-center\"\n :class=\"user.phone_verified_at ? 'bg-success' : 'bg-secondary'\"\n style=\"width: 48px; height: 48px; border-radius: 8px;\">\n <i class=\"uil uil-phone text-white fs-5\"></i>\n </div>\n </div>\n <div class=\"flex-fill\">\n <div class=\"d-flex justify-content-between align-items-start\">\n <div>\n <h5 class=\"mb-1\">Nomor Telepon</h5>\n <p class=\"text-muted small mb-1\">{{ user.phone | formatPhone }}</p>\n <span v-if=\"user.phone_verified_at\" class=\"badge bg-success\">\n <i class=\"uil uil-check\"></i> Terverifikasi\n </span>\n <span v-else class=\"badge bg-warning text-dark\">\n <i class=\"uil uil-exclamation-triangle\"></i> Belum Terverifikasi\n </span>\n </div>\n <button v-if=\"!user.phone_verified_at\" class=\"btn btn-primary btn-sm rounded-pill\"\n @click=\"openVerificationModal('phone')\">\n Verifikasi\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Info Message -->\n <div class=\"alert alert-info d-flex gap-3 mt-4\" role=\"alert\">\n <i class=\"uil uil-info-circle flex-shrink-0\"></i>\n <div>\n <p class=\"fw-semibold mb-1\">Informasi Penting:</p>\n <p class=\"mb-0 small\">Verifikasi akun Anda untuk meningkatkan keamanan dan mengakses semua fitur aplikasi.</p>\n </div>\n </div>\n </div>\n\n <!-- OTP Modal -->\n <OtpModal v-model=\"showOtpModal\" :verification-type=\"verificationType\" :email=\"user.email\"\n @verified=\"handleVerified\" />\n </div>\n</template>\n\n<script>\nimport OtpModal from './OtpModal.vue';\n\nexport default {\n name: 'ProfileVerification',\n components: {\n OtpModal\n },\n props: {\n user: {\n type: Object,\n required: true\n }\n },\n data () {\n return {\n showOtpModal: false,\n verificationType: ''\n };\n },\n methods: {\n openVerificationModal (type) {\n this.verificationType = type;\n this.showOtpModal = true;\n },\n handleVerified () {\n this.$emit('verified');\n }\n }\n};\n</script>","<template>\n <div v-if=\"value\" class=\"modal fade show d-block\" tabindex=\"-1\" style=\"background: rgba(0,0,0,0.5);\">\n <div class=\"modal-dialog modal-dialog-scrollable modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">\n {{ isEdit ? 'Edit' : 'Tambah' }} Pendidikan\n </h5>\n <button @click=\"close\" type=\"button\" class=\"btn-close\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"row g-3\">\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">Nomor Induk (NISN)</label>\n <input v-model=\"formData.nisn\" type=\"text\" class=\"form-control\" placeholder=\"NISN\" />\n </div>\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">Asal Sekolah</label>\n <input v-model=\"formData.previous_school\" type=\"text\" class=\"form-control\" placeholder=\"Asal Sekolah\" />\n </div>\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">Nilai rata-rata rapot kelas XII Semester I</label>\n <input v-model=\"formData.score\" type=\"number\" class=\"form-control\" :min=\"0\" :max=\"100\"\n placeholder=\"Nilai Rata-rata rapot kelas XII Semester I\" />\n </div>\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">Jurusan</label>\n <input v-model=\"formData.major\" type=\"text\" class=\"form-control\" placeholder=\"Jurusan\" />\n </div>\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">Tahun Lulus</label>\n <input v-model=\"formData.year_graduated\" type=\"number\" class=\"form-control\" placeholder=\"Tahun Lulus\" />\n </div>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button @click=\"save\" type=\"button\" class=\"btn btn-primary rounded-pill px-4\">\n Simpan\n </button>\n <button @click=\"close\" type=\"button\" class=\"btn btn-outline-secondary rounded-pill px-4\">\n Batal\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { addEducation } from '../api/profileApi';\nimport { showToast } from '../utils/toast';\n\nexport default {\n name: 'EducationModal',\n props: {\n value: {\n type: Boolean,\n default: false\n },\n education: {\n type: Object,\n default: null\n }\n },\n data() {\n return {\n formData: {\n }\n };\n },\n computed: {\n isEdit() {\n return !!this.education;\n }\n },\n watch: {\n value(newVal) {\n if (newVal) {\n if (this.education) {\n this.formData = { ...this.education };\n } else {\n this.resetForm();\n }\n }\n }\n },\n methods: {\n resetForm() {\n this.formData = {\n\n };\n },\n async save() {\n try {\n await addEducation(this.formData);\n showToast({\n icon: 'success',\n title: 'Success',\n text: 'Data pendidikan berhasil disimpan.'\n });\n this.$emit('save');\n this.close();\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n } catch (error) {\n showToast({\n icon: 'error',\n title: 'Error',\n text: 'Gagal menyimpan data: ' + error.response?.data?.user_message\n });\n }\n },\n close() {\n this.resetForm();\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n</style>","<template>\n <div class=\"card shadow-sm\">\n <div class=\"card-body border-top\">\n <div class=\"d-flex justify-content-between align-items-center mb-4\">\n <h3>Pendidikan</h3>\n <div class=\"d-flex gap-2\">\n <button class=\"btn btn-light rounded-circle\" @click=\"showAddModal = true\">\n <i class=\"uil uil-plus\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"row g-4\">\n <div class=\"col-12\" v-for=\"(edu, k) in educations?.data\" :key=\"k\">\n <div class=\"d-flex gap-3\">\n <div class=\"flex-shrink-0 d-flex align-items-center justify-content-center\"\n style=\"width: 48px; height: 48px;\">\n <a class=\"link\" @click=\"showPreview(edu.certificate?.url)\">\n <img v-if=\"edu.certificate\" :src=\"edu.certificate?.url\" alt=\"Ijazah\"\n style=\"width: 40px; height: 60px; object-fit: cover; object-position: center;\" />\n <span v-else\n style=\"width: 40px; height: 60px; display: flex; align-items: center; justify-content: center;\">\n <i class=\"uil uil-file-alt\"></i>\n </span>\n </a>\n </div>\n <div class=\"flex-fill\">\n <h5 class=\"mb-1\">{{ edu.previous_school }}</h5>\n <p class=\"text-muted small mb-1\">Rata-rata: {{ edu.score }}</p>\n <p class=\"text-muted small mb-1\">\n Jurusan: {{ edu.major }} - {{ edu.nisn }} · {{ edu.year_graduated }}\n </p>\n <span class=\"text-muted small\" v-if=\"edu.degree\">{{ edu.degree }}</span>\n <span v-if=\"edu.degree && edu.gpa\">-</span>\n <span class=\"text-muted small\" v-if=\"edu.gpa\">IPK: {{ edu.gpa }}</span>\n </div>\n <button class=\"btn\" @click=\"editEducation(edu)\">\n <i class=\"uil uil-edit\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <button class=\"btn btn-light w-100 mt-4\" v-if=\"educations?.meta?.has_next_page\" @click=\"loadMore\">\n Lihat Lebih Banyak\n <i class=\"uil uil-angle-down ms-2\"></i>\n </button>\n </div>\n\n <!-- Add/Edit Education Modal -->\n <EducationModal v-model=\"showAddModal\" :education=\"selectedEducation\" @save=\"handleSave\"\n @show-preview=\"showPreview\" />\n </div>\n</template>\n\n<script>\nimport EducationModal from './EducationModal.vue';\n\nexport default {\n name: 'ProfileEducation',\n components: {\n EducationModal\n },\n props: {\n educations: {\n type: Object,\n default: null\n }\n },\n data () {\n return {\n showAddModal: false,\n selectedEducation: null\n };\n },\n mounted () {\n this.$root.$on('open-modal', ({ type }) => {\n if (type === 'education') {\n this.showAddModal = true;\n }\n });\n },\n beforeDestroy () {\n this.$root.$off('open-modal');\n },\n methods: {\n editEducation (edu) {\n this.selectedEducation = edu;\n this.showAddModal = true;\n },\n handleSave () {\n this.selectedEducation = null;\n this.showAddModal = false;\n this.$emit('refresh');\n },\n loadMore () {\n this.$emit('refresh', true);\n },\n showPreview (url) {\n this.$root.$emit('show-preview', url);\n }\n }\n};\n</script>\n\n<style scoped>\n.link {\n cursor: pointer;\n color: #0d6efd;\n text-decoration: none;\n}\n\n.link:hover {\n text-decoration: underline;\n}\n</style>","<template>\n <div v-if=\"value\" class=\"modal fade show d-block\" tabindex=\"-1\" style=\"background: rgba(0,0,0,0.5);\">\n <div class=\"modal-dialog modal-dialog-scrollable modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">\n {{ isEdit ? 'Edit Data Orang Tua/Wali' : 'Tambah Data Orang Tua/Wali' }}\n </h5>\n <button @click=\"close\" type=\"button\" class=\"btn-close\"></button>\n </div>\n <div class=\"modal-body\">\n <div v-if=\"loading\" class=\"text-center py-4\">\n <div class=\"spinner-border\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n </div>\n </div>\n <div v-else class=\"row g-3\">\n <!-- Hubungan Keluarga -->\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">\n Hubungan Keluarga <span class=\"text-danger\">*</span>\n </label>\n <select v-model=\"formData.family_status\" class=\"form-select\" @change=\"changeFamilyStatus\">\n <option value=\"\">Pilih hubungan</option>\n <option value=\"father\">Ayah</option>\n <option value=\"mother\">Ibu</option>\n <option value=\"guardian\">Wali</option>\n </select>\n <small class=\"form-text text-danger\" v-if=\"errors.family_status\">\n {{ errors.family_status }}\n </small>\n </div>\n\n <!-- Nama -->\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">\n Nama Lengkap <span class=\"text-danger\">*</span>\n </label>\n <input v-model=\"formData.name\" type=\"text\" class=\"form-control\" placeholder=\"Masukkan nama lengkap\"\n style=\"text-transform: uppercase\" @input=\"formData.name = $event.target.value.toUpperCase()\" />\n <small class=\"form-text text-danger\" v-if=\"errors.name\">{{ errors.name }}</small>\n </div>\n\n <!-- NIK -->\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">\n NIK (Nomor Induk Kependudukan) <span class=\"text-danger\">*</span>\n </label>\n <input v-model=\"formData.national_id\" type=\"text\" class=\"form-control\" placeholder=\"Masukkan 16 digit NIK\"\n maxlength=\"16\">\n <small class=\"form-text text-danger\" v-if=\"errors.national_id\">\n {{ errors.national_id }}\n </small>\n </div>\n\n <!-- Status -->\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">\n Status <span class=\"text-danger\">*</span>\n </label>\n <select v-model=\"formData.status\" class=\"form-select\">\n <option value=\"\">Pilih status</option>\n <option value=\"hidup\">Masih Hidup</option>\n <option value=\"meninggal\">Sudah Meninggal</option>\n </select>\n <small class=\"form-text text-danger\" v-if=\"errors.status\">{{ errors.status }}</small>\n </div>\n\n <!-- Family Relation (for Guardian) -->\n <div class=\"col-12\" v-if=\"formData.family_status == 'guardian' && formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Hubungan Keluarga <span class=\"text-danger\">*</span>\n </label>\n <input v-model=\"formData.family_relation\" type=\"text\" class=\"form-control\" placeholder=\"Contoh: Paman\">\n <small class=\"form-text text-danger\" v-if=\"errors.family_relation\">\n {{ errors.family_relation }}\n </small>\n </div>\n\n <!-- Pendidikan -->\n <div class=\"col-12\" v-if=\"formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Pendidikan Terakhir <span class=\"text-danger\">*</span>\n </label>\n <select v-model=\"formData.education\" class=\"form-select\">\n <option value=\"\">Pilih pendidikan terakhir</option>\n <option v-for=\"(label, value) in educations\" :key=\"value\" :value=\"value\">\n {{ label }}\n </option>\n </select>\n <small class=\"form-text text-danger\" v-if=\"errors.education\">\n {{ errors.education }}\n </small>\n </div>\n\n <!-- Pekerjaan -->\n <div class=\"col-12\" v-if=\"formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Pekerjaan <span class=\"text-danger\">*</span>\n </label>\n <input v-model=\"formData.work\" type=\"text\" class=\"form-control\" placeholder=\"Masukan pekerjaan\">\n <small class=\"form-text text-danger\" v-if=\"errors.work\">{{ errors.work }}</small>\n </div>\n\n <!-- Penghasilan -->\n <div class=\"col-12\" v-if=\"formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Penghasilan per Bulan <span class=\"text-danger\">*</span>\n </label>\n <select v-model=\"formData.income\" class=\"form-select\">\n <option value=\"\">Pilih range penghasilan</option>\n <option v-for=\"(label, value) in salaries\" :key=\"value\" :value=\"value\">\n {{ label }}\n </option>\n </select>\n <small class=\"form-text text-danger\" v-if=\"errors.income\">{{ errors.income }}</small>\n </div>\n\n <!-- No HP -->\n <div class=\"col-12\" v-if=\"formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Nomor HP <span class=\"text-danger\">*</span>\n </label>\n <input v-model=\"formData.phone\" type=\"tel\" class=\"form-control\" placeholder=\"Contoh: 081234567890\">\n <small class=\"form-text text-danger\" v-if=\"errors.phone\">{{ errors.phone }}</small>\n </div>\n\n <!-- Alamat -->\n <div class=\"col-12\" v-if=\"formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Alamat Lengkap <span class=\"text-danger\">*</span>\n </label>\n <textarea v-model=\"formData.address\" class=\"form-control\" rows=\"3\"\n placeholder=\"Masukan alamat lengkap\"></textarea>\n <small class=\"form-text text-danger\" v-if=\"errors.address\">{{ errors.address }}</small>\n </div>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button @click=\"save\" type=\"button\" class=\"btn btn-primary rounded-pill px-4\">\n Simpan\n </button>\n <button @click=\"close\" type=\"button\" class=\"btn btn-outline-secondary rounded-pill px-4\">\n Batal\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { getParentByStatus, addOrUpdateParent } from '../api/profileApi';\nimport { showToast } from '../utils/toast';\n\nexport default {\n name: 'ParentModal',\n props: {\n value: {\n type: Boolean,\n default: false\n },\n parent: {\n type: Object,\n default: null\n },\n salaries: {\n type: Object,\n required: true\n },\n educations: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n formData: {\n family_status: '',\n name: '',\n status: '',\n national_id: '',\n education: '',\n work: '',\n income: '',\n phone: '',\n address: '',\n family_relation: ''\n },\n errors: {},\n loading: false\n };\n },\n computed: {\n isEdit() {\n return !!this.parent;\n }\n },\n watch: {\n value(newVal) {\n if (newVal) {\n if (this.parent) {\n this.formData = { ...this.parent };\n } else {\n this.resetForm();\n }\n }\n }\n },\n mounted() {\n this.$root.$on('set-family-status', (status) => {\n this.formData.family_status = status;\n this.changeFamilyStatus();\n });\n },\n beforeDestroy() {\n this.$root.$off('set-family-status');\n },\n methods: {\n resetForm() {\n this.formData = {\n\n };\n this.errors = {};\n },\n async changeFamilyStatus() {\n if (!this.formData.family_status) return;\n this.loading = true;\n try {\n const response = await getParentByStatus(this.formData.family_status);\n if (response.data.data) {\n this.formData = response.data.data;\n }\n } catch (error) {\n console.error('Error fetching parent data:', error);\n } finally {\n this.loading = false;\n }\n },\n async save() {\n this.errors = {};\n try {\n await addOrUpdateParent(this.formData.family_status, this.formData);\n showToast({\n icon: 'success',\n title: 'Success',\n text: 'Data orang tua/wali berhasil disimpan.'\n });\n this.$emit('save');\n this.close();\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n } catch (error) {\n this.errors = error.response?.data?.errors || {};\n showToast({\n icon: 'error',\n title: 'Error',\n text: 'Gagal menyimpan data: ' + error.response?.data?.user_message\n });\n }\n },\n close() {\n this.resetForm();\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n</style>","<template>\n <div class=\"card shadow-sm\">\n <div class=\"card-body border-top\">\n <div class=\"d-flex justify-content-between align-items-center mb-4\">\n <h3>Data Orang Tua / Wali</h3>\n <div class=\"d-flex gap-2\">\n <button @click=\"openDialog()\" class=\"btn btn-success rounded-circle\" title=\"Tambah Orang Tua/Wali\">\n <i class=\"uil uil-plus\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"row g-3\">\n <div v-for=\"parent in parents\" :key=\"parent.id\" class=\"col-12 mb-3\">\n <div>\n <div class=\"mb-3\">\n <div class=\"d-flex justify-content-between align-items-start mb-3\">\n <div class=\"d-flex align-items-center gap-3\">\n <div class=\"d-flex align-items-center justify-content-center flex-shrink-0\"\n style=\"width: 48px; height: 48px; background: linear-gradient(135deg, #3b82f6, #2563eb);\">\n <i class=\"uil uil-user text-white fs-5\"></i>\n </div>\n <div>\n <div class=\"d-flex align-items-center gap-2 mb-1\">\n <h5 class=\"mb-0\">{{ parent.name }}</h5>\n <span class=\"badge bg-primary\">{{ parent.family_status | parentStatus }}</span>\n <span class=\"badge bg-primary\"\n v-if=\"parent.status == 'hidup' && parent.family_status == 'father'\">Wali</span>\n </div>\n <p class=\"text-muted small mb-0\">{{ parent.work }}</p>\n </div>\n </div>\n <button @click=\"openDialog(parent)\" class=\"btn\" title=\"Edit Data\">\n <i class=\"uil uil-edit\"></i>\n </button>\n </div>\n\n <div class=\"row g-2 small\">\n <div class=\"col-md-6\">\n <div class=\"d-flex\">\n <span class=\"text-muted\" style=\"width: 130px;\">Status:</span>\n <span class=\"fw-medium\">{{ parent.status }}</span>\n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"d-flex\">\n <span class=\"text-muted\" style=\"width: 130px;\">NIK:</span>\n <span class=\"fw-medium\">{{ parent.national_id | nationalIdFormat }}</span>\n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"d-flex\">\n <span class=\"text-muted\" style=\"width: 130px;\">Pendidikan:</span>\n <span class=\"fw-medium\">{{ educations[parent.education] }}</span>\n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"d-flex\">\n <span class=\"text-muted\" style=\"width: 130px;\">Penghasilan:</span>\n <span class=\"fw-medium\">{{ salaries[parent.income] }}</span>\n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"d-flex\">\n <span class=\"text-muted\" style=\"width: 130px;\">No. HP:</span>\n <span class=\"fw-medium\">{{ parent.phone | formatPhone }}</span>\n </div>\n </div>\n <div class=\"col-12\">\n <div class=\"d-flex\">\n <span class=\"text-muted flex-shrink-0\" style=\"width: 130px;\">Alamat:</span>\n <span class=\"fw-medium\">{{ parent.address }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Info Message -->\n <div class=\"alert alert-info d-flex gap-3 mt-3\" role=\"alert\">\n <i class=\"uil uil-info-circle flex-shrink-0\"></i>\n <div>\n <p class=\"fw-semibold mb-1\">Informasi Penting:</p>\n <p class=\"mb-0 small\">Data orang tua/wali yang Anda masukkan akan dijaga kerahasiaannya\n dan hanya digunakan untuk keperluan administrasi.</p>\n </div>\n </div>\n </div>\n\n <!-- Parent Modal -->\n <ParentModal v-model=\"showParentDialog\" :parent=\"editingParent\" :salaries=\"salaries\" :educations=\"educations\"\n @save=\"handleSave\" />\n </div>\n</template>\n\n<script>\nimport ParentModal from './ParentModal.vue';\n\nexport default {\n name: 'ProfileParents',\n components: {\n ParentModal\n },\n props: {\n parents: {\n type: Array,\n default: () => []\n }\n },\n data () {\n return {\n showParentDialog: false,\n editingParent: null,\n salaries: {\n 0: 'Kurang dari Rp 1.000.000',\n 1000000: 'Rp 1.000.000 - Rp 2.000.000',\n 2000000: 'Rp 2.000.000 - Rp 5.000.000',\n 5000000: 'Rp 5.000.000 - Rp 10.000.000',\n 10000000: 'Rp 10.000.000 - Rp 15.000.000',\n 15000000: 'Rp 15.000.000 - Rp 20.000.000',\n 20000000: 'Rp 20.000.000 - Rp 25.000.000',\n 25000000: 'Rp 25.000.000 - Rp 30.000.000',\n 30000000: 'Rp 30.000.000 - Rp 40.000.000',\n 40000000: 'Rp 40.000.000 - Rp 50.000.000',\n 50000000: 'Rp 50.000.000 - Rp 60.000.000',\n 60000000: 'Rp 60.000.000 - Rp 70.000.000',\n 70000000: 'Rp 70.000.000 - Rp 80.000.000',\n 80000000: 'Rp 80.000.000 - Rp 90.000.000',\n 90000000: 'Rp 90.000.000 - Rp 100.000.000',\n 100000000: 'Lebih dari Rp 100.000.000'\n },\n educations: {\n sd: 'SD/Sederajat',\n smp: 'SMP/Sederajat',\n sma: 'SMA/Sederajat',\n d3: 'Diploma (D3)',\n d4: 'Diploma (D4)',\n s1: 'Sarjana (S1)',\n s2: 'Magister (S2)',\n s3: 'Doktor (S3)'\n }\n };\n },\n mounted () {\n this.$root.$on('open-modal', ({ type, subType }) => {\n if (type === 'parent') {\n this.showParentDialog = true;\n if (subType) {\n this.$nextTick(() => {\n this.$root.$emit('set-family-status', subType);\n });\n }\n }\n });\n },\n beforeDestroy () {\n this.$root.$off('open-modal');\n },\n methods: {\n openDialog (parent = null) {\n this.editingParent = parent;\n this.showParentDialog = true;\n },\n handleSave () {\n this.editingParent = null;\n this.showParentDialog = false;\n this.$emit('refresh');\n }\n }\n};\n</script>","<template>\n <div class=\"modal fade\" :class=\"{ 'show': value }\" :style=\"{ display: value ? 'block' : 'none' }\" tabindex=\"-1\"\n aria-labelledby=\"previewModalLabel\" aria-hidden=\"true\">\n <div class=\"modal-dialog modal-dialog-centered\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\" id=\"previewModalLabel\">Preview Dokumen</h5>\n <button type=\"button\" class=\"btn-close\" @click=\"close\" aria-label=\"Close\"></button>\n </div>\n <div class=\"modal-body\">\n <img v-if=\"url\" :src=\"url\" class=\"img-fluid\" referrerpolicy=\"no-referrer\" alt=\"Preview\" />\n <div v-else class=\"text-center py-4\">\n <p class=\"text-muted\">Tidak ada dokumen untuk ditampilkan</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'PreviewModal',\n props: {\n value: {\n type: Boolean,\n default: false\n },\n url: {\n type: String,\n default: null\n }\n },\n mounted () {\n this.$root.$on('show-preview', (url) => {\n this.$emit('input', true);\n this.$emit('update:url', url);\n });\n },\n beforeDestroy () {\n this.$root.$off('show-preview');\n },\n methods: {\n close () {\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n</style>","<template>\n <div class=\"min-vh-100 bg-light\">\n <ProfileHeader :user=\"me\" @update-profile=\"handleProfileUpdate\" @update-photo=\"handlePhotoUpdate\"\n @reset-password=\"handleResetPassword\" />\n\n <ProfilePersonalData :user=\"me\" :locations=\"locations\" @update=\"handleProfileUpdate\"\n @search-locations=\"searchLocations\" />\n\n <ProfileVerification :user=\"me\" @verified=\"handleVerified\" />\n\n <ProfileEducation :educations=\"userEducation\" @refresh=\"getUserEducation\" />\n\n <ProfileParents :parents=\"parentsData\" @refresh=\"getParents\" />\n\n <PreviewModal v-model=\"showPreview\" :url=\"previewUrl\" />\n </div>\n</template>\n\n<script>\nimport { \n getProfile, \n getParents as apiGetParents, \n getEducations, \n getLocations, \n updateProfile, \n changePassword \n} from '../api/profileApi';\nimport { showToast } from '../utils/toast';\nimport ProfileHeader from './ProfileHeader.vue';\nimport ProfilePersonalData from './ProfilePersonalData.vue';\nimport ProfileVerification from './ProfileVerification.vue';\nimport ProfileEducation from './ProfileEducation.vue';\nimport ProfileParents from './ProfileParents.vue';\nimport PreviewModal from './PreviewModal.vue';\n\nexport default {\n name: 'ProfilePage',\n components: {\n ProfileHeader,\n ProfilePersonalData,\n ProfileVerification,\n ProfileEducation,\n ProfileParents,\n PreviewModal\n },\n data() {\n return {\n me: {},\n userEducation: null,\n parentsData: null,\n locations: [],\n showPreview: false,\n previewUrl: null\n };\n },\n async created() {\n await this.getMe();\n await this.getParents();\n await this.getUserEducation();\n this.handleQueryParams();\n },\n methods: {\n async getMe() {\n try {\n const response = await getProfile();\n this.me = response.data.data;\n localStorage.setItem(\"__putm.sia.user\", JSON.stringify(this.me));\n } catch (error) {\n console.error(error);\n }\n },\n async getParents() {\n try {\n const response = await apiGetParents();\n this.parentsData = response.data.data;\n } catch (error) {\n console.error(error);\n }\n },\n async getUserEducation() {\n try {\n const response = await getEducations();\n this.userEducation = response.data;\n } catch (error) {\n console.error(error);\n }\n },\n async searchLocations(search, loading) {\n if (search.length < 3) return;\n loading(true);\n try {\n // getLocations tidak menerima parameter, jadi gunakan axios manual jika perlu search param\n const response = await getLocations();\n // Jika API mendukung query param, ubah getLocations agar menerima param search\n // const response = await getLocations(search);\n this.locations = response.data.data || [];\n } catch (error) {\n console.error('Error searching locations:', error);\n } finally {\n loading(false);\n }\n },\n async handleProfileUpdate(updatedData) {\n try {\n await updateProfile(updatedData);\n showToast({\n icon: 'success',\n title: 'Success',\n text: 'Data profile berhasil disimpan.'\n });\n await this.getMe();\n await this.redirectIfNeeded();\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n } catch (error) {\n showToast({\n icon: 'error',\n title: 'Error',\n text: 'Gagal menyimpan data profile: ' + error.response.data.user_message\n });\n }\n },\n async handlePhotoUpdate(photo) {\n this.me.photo = photo;\n await this.handleProfileUpdate(this.me);\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n },\n handleVerified() {\n this.getMe();\n },\n handleQueryParams() {\n // Handle query parameters untuk auto-open modal\n const { data, type } = this.$route.query;\n if (data) {\n this.$nextTick(() => {\n // Emit event ke child components\n this.$root.$emit('open-modal', { type: data, subType: type });\n });\n }\n },\n async redirectIfNeeded() {\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n },\n async handleResetPassword(passwordForm) {\n try {\n await changePassword(passwordForm);\n showToast({\n icon: 'success',\n title: 'Success',\n text: 'Password berhasil diubah.'\n });\n await this.getMe();\n await this.redirectIfNeeded();\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n } catch (error) {\n showToast({\n icon: 'error',\n title: 'Gagal mengubah password: ' + error.response.data.user_message\n });\n }\n }\n }\n};\n</script>","// src/index.js - Entry point utama\n// Eksport semua komponen\n\n// Komponen utama\nexport { default as Profile } from './components/Profile.vue'\nexport { default as ProfileHeader } from './components/ProfileHeader.vue'\nexport { default as ProfilePersonalData } from './components/ProfilePersonalData.vue'\nexport { default as ProfileEducation } from './components/ProfileEducation.vue'\nexport { default as ProfileParents } from './components/ProfileParents.vue'\nexport { default as ProfileVerification } from './components/ProfileVerification.vue'\n\n// Modal components\nexport { default as EducationModal } from './components/EducationModal.vue'\nexport { default as ImageCropModal } from './components/ImageCropModal.vue'\nexport { default as OtpModal } from './components/OtpModal.vue'\nexport { default as ParentModal } from './components/ParentModal.vue'\nexport { default as PersonalDataEditModal } from './components/PersonalDataEditModal.vue'\nexport { default as PreviewModal } from './components/PreviewModal.vue'\n\n// Install function untuk Vue app\nimport Profile from './components/Profile.vue'\nimport ProfileHeader from './components/ProfileHeader.vue'\nimport ProfilePersonalData from './components/ProfilePersonalData.vue'\nimport ProfileEducation from './components/ProfileEducation.vue'\nimport ProfileParents from './components/ProfileParents.vue'\nimport ProfileVerification from './components/ProfileVerification.vue'\n\nconst components = {\n Profile,\n ProfileHeader,\n ProfilePersonalData,\n ProfileEducation,\n ProfileParents,\n ProfileVerification,\n EducationModal,\n ImageCropModal,\n OtpModal,\n ParentModal,\n PersonalDataEditModal,\n PreviewModal\n}\n\nconst install = (app) => {\n for (const [key, component] of Object.entries(components)) {\n app.component(key, component)\n }\n}\n\n// Auto-install jika digunakan via script tag\nif (typeof window !== 'undefined' && window.Vue) {\n install(window.Vue)\n}\n\n// Export default dengan install function\nexport default {\n version: '1.0.0',\n install,\n ...components\n}\n\n// Export utilities jika ada\n// export * from './utils/...'"],"names":["bind","fn","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","cache","thing","str","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","allOwnKeys","i","l","keys","len","key","findKey","_key","_global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","extend","a","b","stripBOM","content","inherits","constructor","superConstructor","props","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","m","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","name","ret","freezeMethods","value","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","data","cb","asap","isIterable","utils$1","AxiosError","message","code","config","request","response","utils","error","customProps","axiosError","msg","errCode","httpAdapter","isVisitable","removeBrackets","renderKey","path","dots","isFlatArray","predicates","toFormData","formData","options","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","el","index","exposedHelpers","build","encode","charMap","match","AxiosURLSearchParams","params","encoder","_encode","buildURL","url","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","h","InterceptorManager$1","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","e","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","method","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","entry","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","computed","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","fns","isCancel","CanceledError","settle","resolve","reject","validateStatus","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","args","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","formHeaders","allowedHeaders","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","onloadend","responseHeaders","err","event","timeoutErrorMessage","cancel","protocol","composeSignals","signals","timeout","length","controller","aborted","onabort","reason","unsubscribe","signal","composeSignals$1","streamChunk","chunk","chunkSize","pos","end","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","DEFAULT_CHUNK_SIZE","globalFetchAPI","Request","Response","ReadableStream","TextEncoder","test","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","res","getBodyLength","body","resolveBodyLength","cancelToken","withCredentials","fetchOptions","_fetch","composedSignal","requestContentLength","_request","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","fetch","seeds","seed","map","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapter","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","fullPath","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","c","CancelToken$1","spread","callback","isAxiosError","payload","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","instance","axios","promises","axios$1","__viteBrowserExternal","fs","require$$0","require$$1","os","require$$2","crypto","require$$3","packageJson","require$$4","TIPS","_getRandomTip","parseBoolean","supportsAnsi","dim","text","LINE","parse","src","lines","maybeQuote","_parseVault","vaultPath","_vaultPath","DotenvModule","_dotenvKey","decrypted","attrs","_instructions","_warn","_debug","_log","dotenvKey","uri","environment","environmentKey","ciphertext","possibleVaultPath","filepath","_resolveHome","envPath","_configVault","debug","quiet","processEnv","configDotenv","dotenvPath","encoding","optionPaths","lastError","parsedAll","populated","keysCount","shortPaths","filePath","relative","decrypt","encrypted","keyStr","nonce","authTag","aesgcm","isRange","invalidKeyLength","decryptionFailed","populate","override","mainModule","dotenv","API_BASE_URL","profileApi","changePasswordApi","checkAgeApi","educationsApi","parentsApi","locationsApi","existingTemplateApi","authVerifyEmailSendApi","authVerifyPhoneSendApi","getProfile","updateProfile","updatedData","changePassword","passwordForm","checkAge","birthDate","getEducations","addEducation","getParents","getParentByStatus","familyStatus","addOrUpdateParent","uploadFile","endpoint","wordOnly","fileName","downloadTemplate","templateType","getLocations","sendEmailOtp","email","sendPhoneOtp","phone","_assertClassBrand","t","_checkPrivateRedeclaration","_classPrivateFieldGet2","_classPrivateFieldInitSpec","_classPrivateFieldSet2","r","RESTORE_FOCUS_TIMEOUT","globalState","focusPreviousActiveElement","restoreActiveElement","returnFocus","x","y","swalPrefix","classNames","swalClasses","acc","className","icons","iconTypes","icon","consolePrefix","capitalizeFirstLetter","warn","previousWarnOnceMessages","warnOnce","warnAboutDeprecation","deprecatedParam","useInstead","callIfFunction","arg","hasToPromiseFn","asPromise","isPromise","getContainer","elementBySelector","selectorString","container","elementByClass","getPopup","getIcon","getIconContent","getTitle","getHtmlContainer","getImage","getProgressSteps","getValidationMessage","getConfirmButton","getCancelButton","getDenyButton","getInputLabel","getLoader","getActions","getFooter","getTimerProgressBar","getCloseButton","focusable","getFocusableElements","popup","focusableElementsWithTabindex","focusableElementsWithTabindexSorted","tabindexA","tabindexB","otherFocusableElements","otherFocusableElementsFiltered","isVisible$1","isModal","hasClass","isToast","isLoading","setInnerHtml","elem","html","child","classList","removeCustomClasses","applyCustomClass","customClass","addClass","getInput$1","inputClass","focusInput","input","toggleClass","condition","removeClass","getDirectChildByClass","children","applyNumericalStyle","property","show","display","hide","showWhenInnerHtmlPresent","toggle","setStyle","parent","selector","allButtonsAreHidden","isScrollable","selfOrParentIsScrollable","element","stopElement","hasCssAnimation","style","animDuration","transDuration","animateTimerProgressBar","reset","timerProgressBar","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","isNodeEnv","sweetHTML","resetOldContainer","oldContainer","resetValidationMessage$1","addInputChangeListeners","file","range","rangeOutput","select","checkbox","textarea","getTarget","setupAccessibility","setupRTL","targetElement","init","oldContainerExisted","parseHtmlToContainer","param","handleObject","handleJqueryElem","renderActions","actions","loader","renderButtons","confirmButton","denyButton","cancelButton","renderButton","handleButtonsStyling","applyOutlineColor","button","buttonStyle","outlineColor","buttonType","buttonName","renderCloseButton","closeButton","renderContainer","handleBackdropParam","handlePositionParam","handleGrowParam","backdrop","grow","privateProps","inputClasses","renderInput","innerParams","rerender","inputContainer","setAttributes","showInput","setCustomClass","renderInputType","getInputContainer","removeAttributes","attrName","inputAttributes","attr","setInputPlaceholder","setInputLabel","prependTo","label","labelClass","inputType","checkAndSetInputValue","inputValue","inputElement","rangeContainer","rangeInput","selectElement","placeholder","radio","radioElement","checkboxContainer","placeholderOrLabel","textareaElement","getMargin","initialPopupWidth","textareaResizeHandler","textareaWidth","popupElement","renderContent","htmlContainer","renderFooter","footer","renderIcon","setContent","applyStyles","adjustSuccessIconBackgroundColor","iconType","iconClassName","setColor","popupBackgroundColor","successIconParts","successIconHtml","errorIconHtml","oldContent","newContent","iconContent","sel","renderImage","image","dragging","mousedownX","mousedownY","initialX","initialY","addDraggableListeners","down","move","up","removeDraggableListeners","clientXY","getClientXY","clientX","clientY","deltaX","renderPopup","addClasses$1","showClass","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","step","stepEl","createStepElement","lineEl","createLineElement","renderTitle","title","render","_globalState$eventEmi","isVisible","clickConfirm","_dom$getConfirmButton","clickDeny","_dom$getDenyButton","clickCancel","_dom$getCancelButton","DismissReason","removeKeydownHandler","handler","addKeydownHandler","dismissWith","keydownHandler","eventHandler","setFocus","increment","_dom$getPopup","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","handleEnter","handleTab","handleArrows","handleEsc","btnIndex","buttons","sibling","buttonToFocus","privateMethods","setAriaHidden","unsetAriaHidden","isSafariOrIOS","iOSfix","offset","lockBodyScroll","preventTouchMove","shouldPreventTouchMove","isStylus","isZoom","undoIOSfix","measureScrollbar","scrollDiv","scrollbarWidth","previousBodyPadding","replaceScrollbarWithPadding","initialBodyOverflow","undoReplaceScrollbarWithPadding","removePopupAndResetState","didClose","triggerDidCloseAndDispose","removeBodyClasses","close","resolveValue","prepareResolveValue","swalPromiseResolve","triggerClosePopup","handleAwaitingPromise","handlePopupAnimation","rejectPromise","animationIsSupported","animatePopup","swalCloseAnimationFinished","_globalState$swalClos","_globalState$eventEmi2","showLoading","buttonToReplace","Swal","replaceButton","handleInputOptionsAndValue","handleInputOptions","handleInputValue","getInputValue","getCheckboxValue","getRadioValue","getFileValue","processInputOptions","inputOptions","populateSelectOptions","formatInputOptions","populateRadioOptions","renderOption","optionLabel","optionValue","isSelected","inputOption","optgroup","o","radioValue","radioLabel","radioInput","radioLabelElement","radios","valueFormatted","handleConfirmButtonClick","handleConfirmOrDenyWithInput","confirm","handleDenyButtonClick","deny","handleCancelButtonClick","handleInputValidator","validationMessage","preDenyValue","rejectWith","succeedWith","preConfirmValue","hideLoading","domCache","showRelatedButton","dataButtonToReplace","getInput","setButtonsDisabled","disabled","setInputDisabled","enableButtons","disableButtons","enableInput","disableInput","showValidationMessage","resetValidationMessage","defaultParams","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","isDeprecated","showWarningsForParams","update","validUpdatableParams","filterValidParams","updatedParams","typedParams","_destroy","disposeWeakMaps","disposeSwal","unsetWeakMaps","instanceMethods","handlePopupClick","handleToastClick","handleModalMousedown","handleContainerMousedown","handleModalClick","isAnyButtonShown","ignoreOutsideClick","isJqueryElement","isElement","argsToParams","fire","mixin","mixinParams","MixinSwal","priorityMixinParams","getTimerLeft","stopTimer","resumeTimer","remaining","toggleTimer","increaseTimer","ms","isTimerRunning","bodyClickListenerAdded","clickHandlers","bindClickHandler","bodyClickListener","template","EventEmitter","eventName","currentHandlers","onceFn","on","once","off","staticMethods","Timer","delay","n","running","swalStringParams","getTemplateParams","templateContent","showWarningsForElements","getSwalParams","getSwalFunctionParams","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","getSwalStringParams","showWarningsForAttributes","color","ariaLabel","optionName","paramNames","tag","allowedElements","tagName","allowedAttributes","attribute","SHOW_CLASS_TIMEOUT","openPopup","addClasses","setScrollingVisibility","fixScrollContainer","didOpen","swalOpenAnimationFinished","scrollbarPadding","_params$showClass","_params$showClass2","defaultInputValidators","string","setDefaultInputValidators","validateCustomTargetElement","setParameters","currentInstance","_promise","SweetAlert","outerParams","userParams","isAwaitingPromise","prepareParams","populateDomCache","swalPromise","onFinally","dismiss","setupTimer","initFocus","templateParams","blurActiveElement","focusAutofocus","focusButton","autofocusElements","autofocusElement","Toast","showToast","_sfc_main","newVal","allowedTypes","allowedExtensions","fileExt","apiUploadFile","_a","_b","apiDownloadTemplate","_hoisted_1","_hoisted_3","_hoisted_4","_hoisted_12","_openBlock","_createElementBlock","$props","_hoisted_2","_createElementVNode","_toDisplayString","$data","_hoisted_5","$options","_hoisted_6","_cache","_hoisted_7","_createVNode","_component_b_button","$event","_ctx","_createTextVNode","_hoisted_9","_hoisted_10","_component_b_modal","SgFileUploader","_component_SgFileUploader","ImageCropModal","photo","_hoisted_8","_hoisted_11","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_23","_hoisted_25","_hoisted_26","_hoisted_28","_hoisted_29","_hoisted_32","_c","_f","_e","_d","_i","_h","_g","_l","_k","_j","_component_ImageCropModal","_normalizeClass","_hoisted_22","_vModelDynamic","_hoisted_31","_hoisted_33","toDate","isValidDate","startOfWeek","firstDayOfWeek","date","day","diff","startOfWeekYear","_ref","_ref$firstDayOfWeek","_ref$firstWeekContain","firstWeekContainsDate","year","firstDateOfFirstWeek","getWeek","_ref2","_ref2$firstDayOfWeek","_ref2$firstWeekContai","firstDateOfThisWeek","locale","REGEX_FORMAT","pad","output","sign","getOffset","formatTimezone","delimeter","absOffset","hours","minutes","meridiem","_","isLowercase","word","formatFlags","meridiemFunc","formatStr","defaultLocale","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","arr2","ownKeys","object","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_s","formattingTokens","match1","match2","match3","match4","match1to2","matchShortOffset","matchSigned","matchTimestamp","YEAR","MONTH","DAY","HOUR","MINUTE","SECOND","MILLISECOND","parseFlags","addParseFlag","regex","func","escapeStringRegExp","matchWordRegExp","localeKey","array","matchWordCallback","cent","matchMeridiem","defaultIsPM","isPM","offsetFromString","_ref8","_ref9","symbol","hour","minute","to24hour","getFullInputArray","backupDate","backupArr","useBackup","createDate","d","M","createUTCDate","_len","makeParser","dateString","mark","parseTo","_options$locale","_locale","_options$backupDate","parseResult","month","second","millisecond","weekday","week","inputArray","firstDate","parsedDate","_typeof","_extends","_objectSpread2","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_unsupportedIterableToArray","minLen","_arrayLikeToArray","_extends$1","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","f","g","mergeFn","helper","isValidRangeDate","isValidDates","dates","getValidDate","backup","startOfYear","startOfMonth","startOfDay","getCalendar","calendar","lastDayInLastMonth","firstDayInLastMonth","lastDayInCurrentMonth","lastMonthLength","nextMonthLength","_i2","setMonth","dirtyDate","dirtyMonth","daysInMonth","setYear","dirtyYear","assignTime","time","size","pick","mergeDeep","unwrapExports","createCommonjsModule","module","en","exports","_default","en$1","lang","locales","isLocal","getLocale","rafThrottle","isRunning","_this","getPopupElementSize","originalDisplay","originalVisibility","styles","width","height","getRelativePosition","targetWidth","targetHeight","fixed","left","top","offsetX","offsetY","relativeRect","dw","dh","getScrollParent","node","until","scroll","script","_this2","relativeElement","evt","appendToBody","_this$_popupRect","_getRelativePosition","normalizeComponent","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","originalRender","existing","__vue_script__","__vue_render__","_vm","__vue_staticRenderFns__","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","__vue_component__","__vue_render__$1","__vue_staticRenderFns__$1","__vue_inject_styles__$1","__vue_scope_id__$1","__vue_module_identifier__$1","__vue_is_functional_template__$1","__vue_component__$1","__vue_render__$2","__vue_staticRenderFns__$2","__vue_inject_styles__$2","__vue_scope_id__$2","__vue_module_identifier__$2","__vue_is_functional_template__$2","__vue_component__$2","__vue_render__$3","__vue_staticRenderFns__$3","__vue_inject_styles__$3","__vue_scope_id__$3","__vue_module_identifier__$3","__vue_is_functional_template__$3","__vue_component__$3","script$1","__vue_script__$1","__vue_render__$4","__vue_staticRenderFns__$4","__vue_inject_styles__$4","__vue_scope_id__$4","__vue_module_identifier__$4","__vue_is_functional_template__$4","__vue_component__$4","script$2","_this$getLocale","yearFormat","monthBeforeYear","_this$getLocale$month","monthFormat","yearLabel","monthLabel","days","v","panel","cell","_index$split$map","_index$split$map2","row","col","fmt","__vue_script__$2","__vue_render__$5","item","j","__vue_staticRenderFns__$5","__vue_inject_styles__$5","__vue_scope_id__$5","__vue_module_identifier__$5","__vue_is_functional_template__$5","__vue_component__$5","script$3","monthsLocale","months","__vue_script__$3","__vue_render__$6","__vue_staticRenderFns__$6","__vue_inject_styles__$6","__vue_scope_id__$6","__vue_module_identifier__$6","__vue_is_functional_template__$6","__vue_component__$6","script$4","last","firstYear","years","__vue_script__$4","__vue_render__$7","__vue_staticRenderFns__$7","__vue_inject_styles__$7","__vue_scope_id__$7","__vue_module_identifier__$7","__vue_is_functional_template__$7","__vue_component__$7","CalendarPanel","panels","start","calendarDate","oldCalendar","oldPanel","_date","_date2","cellDate","notCurrentMonth","classes","_cellDate","_cellDate2","active","innerCalendar","CalendarRange","calendars","_this$innerValue","startValue","endValue","adjustIndex","gap","_calendars","calendarLeft","calendarRight","yearDiff","monthDiff","max","currentDates","classnames","_range$map","_range$map2","calendarRange","prefixClass","scrollBarWidth","getScrollbarWidth","outer","inner","script$5","wrap","heightPercentage","scrollHeight","scrollTop","offsetTop","clientHeight","__vue_script__$5","__vue_render__$8","__vue_staticRenderFns__$8","__vue_inject_styles__$8","__vue_scope_id__$8","__vue_module_identifier__$8","__vue_is_functional_template__$8","__vue_component__$8","padNumber","generateOptions","scrollTo","to","duration","difference","tick","script$6","cols","num","_this3","_this4","_this5","elements","scrollElement","currentTarget","colIndex","cellIndex","__vue_script__$6","__vue_render__$9","__vue_staticRenderFns__$9","__vue_inject_styles__$9","__vue_scope_id__$9","__vue_module_identifier__$9","__vue_is_functional_template__$9","__vue_component__$9","parseOption","values","scrollTo$1","script$7","startMinutes","endMinutes","stepMinutes","timeMinutes","__vue_script__$7","__vue_render__$a","__vue_staticRenderFns__$a","__vue_inject_styles__$a","__vue_scope_id__$a","__vue_module_identifier__$a","__vue_is_functional_template__$a","__vue_component__$a","script$8","titleFormat","defaultProps","minHour","maxHour","__vue_script__$8","__vue_render__$b","__vue_staticRenderFns__$b","__vue_inject_styles__$b","__vue_scope_id__$b","__vue_module_identifier__$b","__vue_is_functional_template__$b","__vue_component__$b","TimeRange","_this$value","defaultValues","DatetimePanel","datetime","calendarProps","timeProps","DatetimeRange","datetimes","componentMap","componentRangeMap","DatePicker","types","disabledDate","disabledTime","nextDates","keyCode","fallback","slotFn","events","calendarIcon","Component","_class","inline","sidedar","Vue","this","O","u","p","vSelect","search","loading","_vModelText","_component_DatePicker","_vModelRadio","_component_v_select","PersonalDataEditModal","_hoisted_24","_hoisted_30","_hoisted_27","_component_PersonalDataEditModal","raw","newTab","errorMessage","OtpModal","_component_OtpModal","EducationModal","edu","_Fragment","k","_component_EducationModal","_vModelSelect","_renderList","ParentModal","subType","_component_ParentModal","ProfileHeader","ProfilePersonalData","ProfileVerification","ProfileEducation","ProfileParents","PreviewModal","apiGetParents","_component_ProfileHeader","_component_ProfilePersonalData","_component_ProfileVerification","_component_ProfileEducation","_component_ProfileParents","_component_PreviewModal","components","Profile","install","app","component"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,52,57,58,59,60,61,62]}
1
+ {"version":3,"file":"profile-ui.es.js","sources":["../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../src/api/profileApi.js","../node_modules/sweetalert2/dist/sweetalert2.esm.all.js","../src/utils/toast.js","../src/components/SgFileUploader.vue","../src/components/ImageCropModal.vue","../src/components/ProfileHeader.vue","../node_modules/date-format-parse/es/util.js","../node_modules/date-format-parse/es/locale/en.js","../node_modules/date-format-parse/es/format.js","../node_modules/date-format-parse/es/parse.js","../node_modules/vue2-datepicker/index.esm.js","../node_modules/vue-select/dist/vue-select.js","../src/components/PersonalDataEditModal.vue","../src/components/ProfilePersonalData.vue","../src/components/OtpModal.vue","../src/components/ProfileVerification.vue","../src/components/EducationModal.vue","../src/components/ProfileEducation.vue","../src/components/ParentModal.vue","../src/components/ProfileParents.vue","../src/components/PreviewModal.vue","../src/components/Profile.vue","../src/index.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\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 && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let 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 {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\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 *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\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 (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\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 *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && 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 *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n 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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\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}\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 * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\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 */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n 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 *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\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 *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\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 *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\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\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\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 env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\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 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\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} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\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 *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\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 *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" 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\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 *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\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 *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\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 *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, 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(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const 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 withXSRFToken: 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 beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)\n };\n\n utils.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\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\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, 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 const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n 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(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\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 (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : 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 const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n * \n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n * \n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n * \n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n * \n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object<string, Function|Object>}\n */\n adapters: knownAdapters\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\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 *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\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 config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\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 config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.13.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\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 *\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 (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\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\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(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 {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _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 const {transitional, paramsSerializer, headers} = config;\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 if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let 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 const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\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,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(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, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n 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\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\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 *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\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\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from 'axios';\n\nconst API_BASE_URL = '';\nconst profileApi = `${API_BASE_URL}/api/v1/auth/me`;\nconst changePasswordApi = `${API_BASE_URL}/api/v1/auth/change-password`;\nconst checkAgeApi = `${API_BASE_URL}/api/v1/check-age`;\nconst educationsApi = `${API_BASE_URL}/api/v1/educations/me`;\nconst parentsApi = `${API_BASE_URL}/api/v1/parents/me`;\nconst locationsApi = `${API_BASE_URL}/api/v1/locations`;\nconst existingTemplateApi = `${API_BASE_URL}/api/v1/existing-template`;\nconst authVerifyEmailSendApi = `${API_BASE_URL}/api/v1/auth/verify/email/send`;\nconst authVerifyPhoneSendApi = `${API_BASE_URL}/api/v1/auth/verify/phone/send`;\n\nexport function setApiBaseUrl(url) {\n API_BASE_URL = url || '';\n}\n\naxios.interceptors.request.use((request) => {\n request.baseURL = API_BASE_URL;\n\n const token = localStorage.getItem(\"__putm_ptb.token\")\n if (token && token != \"undefined\") {\n request.headers.Authorization = `Bearer ${token}`\n }\n\n // const locale = store.getters['lang/locale']\n // if (locale) {\n // request.headers.common['Accept-Language'] = locale\n // }\n\n return request\n})\n\n// AUTH\nexport const getProfile = () => axios.get(profileApi);\nexport const updateProfile = (updatedData) => axios.put(profileApi, updatedData);\nexport const changePassword = (passwordForm) => axios.put(changePasswordApi, passwordForm);\nexport const checkAge = (birthDate) => axios.get(`${checkAgeApi}/${birthDate}`);\n\n// EDUCATION\nexport const getEducations = () => axios.get(educationsApi);\nexport const addEducation = (formData) => axios.post(educationsApi, formData);\n\n// PARENT\nexport const getParents = () => axios.get(parentsApi);\nexport const getParentByStatus = (familyStatus) => axios.get(`${parentsApi}/${familyStatus}`);\nexport const addOrUpdateParent = (familyStatus, formData) => axios.post(`${parentsApi}/${familyStatus}`, formData);\n\n// FILE UPLOAD\nexport const uploadFile = (endpoint, formData, wordOnly, fileName) =>\n axios.post(`${endpoint}?word_only=${wordOnly}&file_name=${fileName}`, formData, {\n headers: { 'Content-Type': 'multipart/form-data' }\n });\nexport const downloadTemplate = (templateType) => axios.get(`${existingTemplateApi}/${templateType}`);\n\n// LOCATIONS\nexport const getLocations = () => axios.get(locationsApi);\n\n// OTP\nexport const sendEmailOtp = (email) => axios.post(authVerifyEmailSendApi, { data: email });\nexport const sendPhoneOtp = (phone) => axios.post(authVerifyPhoneSendApi, { data: phone });\n","/*!\n* sweetalert2 v11.26.17\n* Released under the MIT License.\n*/\nfunction _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}\nfunction _checkPrivateRedeclaration(e, t) {\n if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n}\nfunction _classPrivateFieldGet2(s, a) {\n return s.get(_assertClassBrand(s, a));\n}\nfunction _classPrivateFieldInitSpec(e, t, a) {\n _checkPrivateRedeclaration(e, t), t.set(e, a);\n}\nfunction _classPrivateFieldSet2(s, a, r) {\n return s.set(_assertClassBrand(s, a), r), r;\n}\n\nconst RESTORE_FOCUS_TIMEOUT = 100;\n\n/** @type {GlobalState} */\nconst globalState = {};\nconst focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n};\n\n/**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise<void>}\n */\nconst restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n};\n\nconst swalPrefix = 'swal2-';\n\n/**\n * @typedef {Record<SwalClass, string>} SwalClasses\n */\n\n/**\n * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n * @typedef {Record<SwalIcon, string>} SwalIcons\n */\n\n/** @type {SwalClass[]} */\nconst classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'draggable', 'dragging'];\nconst swalClasses = classNames.reduce((acc, className) => {\n acc[className] = swalPrefix + className;\n return acc;\n}, /** @type {SwalClasses} */{});\n\n/** @type {SwalIcon[]} */\nconst icons = ['success', 'warning', 'info', 'question', 'error'];\nconst iconTypes = icons.reduce((acc, icon) => {\n acc[icon] = swalPrefix + icon;\n return acc;\n}, /** @type {SwalIcons} */{});\n\nconst consolePrefix = 'SweetAlert2:';\n\n/**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\nconst capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n\n/**\n * Standardize console warnings\n *\n * @param {string | string[]} message\n */\nconst warn = message => {\n console.warn(`${consolePrefix} ${typeof message === 'object' ? message.join(' ') : message}`);\n};\n\n/**\n * Standardize console errors\n *\n * @param {string} message\n */\nconst error = message => {\n console.error(`${consolePrefix} ${message}`);\n};\n\n/**\n * Private global state for `warnOnce`\n *\n * @type {string[]}\n * @private\n */\nconst previousWarnOnceMessages = [];\n\n/**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\nconst warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n};\n\n/**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string?} useInstead\n */\nconst warnAboutDeprecation = (deprecatedParam, useInstead = null) => {\n warnOnce(`\"${deprecatedParam}\" is deprecated and will be removed in the next major release.${useInstead ? ` Use \"${useInstead}\" instead.` : ''}`);\n};\n\n/**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {(() => *) | *} arg\n * @returns {*}\n */\nconst callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n\n/**\n * @param {*} arg\n * @returns {boolean}\n */\nconst hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n\n/**\n * @param {*} arg\n * @returns {Promise<*>}\n */\nconst asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n\n/**\n * @param {*} arg\n * @returns {boolean}\n */\nconst isPromise = arg => arg && Promise.resolve(arg) === arg;\n\n/**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\nconst getContainer = () => document.body.querySelector(`.${swalClasses.container}`);\n\n/**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\nconst elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n};\n\n/**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\nconst elementByClass = className => {\n return elementBySelector(`.${className}`);\n};\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getPopup = () => elementByClass(swalClasses.popup);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getIcon = () => elementByClass(swalClasses.icon);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getIconContent = () => elementByClass(swalClasses['icon-content']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getTitle = () => elementByClass(swalClasses.title);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getImage = () => elementByClass(swalClasses.image);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n\n/**\n * @returns {HTMLButtonElement | null}\n */\nconst getConfirmButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`));\n\n/**\n * @returns {HTMLButtonElement | null}\n */\nconst getCancelButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`));\n\n/**\n * @returns {HTMLButtonElement | null}\n */\nconst getDenyButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.deny}`));\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getInputLabel = () => elementByClass(swalClasses['input-label']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getLoader = () => elementBySelector(`.${swalClasses.loader}`);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getActions = () => elementByClass(swalClasses.actions);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getFooter = () => elementByClass(swalClasses.footer);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getCloseButton = () => elementByClass(swalClasses.close);\n\n// https://github.com/jkup/focusable/blob/master/index.js\nconst focusable = `\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n`;\n/**\n * @returns {HTMLElement[]}\n */\nconst getFocusableElements = () => {\n const popup = getPopup();\n if (!popup) {\n return [];\n }\n /** @type {NodeListOf<HTMLElement>} */\n const focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n const focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n const tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n\n /** @type {NodeListOf<HTMLElement>} */\n const otherFocusableElements = popup.querySelectorAll(focusable);\n const otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(el => el.getAttribute('tabindex') !== '-1');\n return [...new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))].filter(el => isVisible$1(el));\n};\n\n/**\n * @returns {boolean}\n */\nconst isModal = () => {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n};\n\n/**\n * @returns {boolean}\n */\nconst isToast = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return hasClass(popup, swalClasses.toast);\n};\n\n/**\n * @returns {boolean}\n */\nconst isLoading = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return popup.hasAttribute('data-loading');\n};\n\n/**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\nconst setInnerHtml = (elem, html) => {\n elem.textContent = '';\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, `text/html`);\n const head = parsed.querySelector('head');\n if (head) {\n Array.from(head.childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n const body = parsed.querySelector('body');\n if (body) {\n Array.from(body.childNodes).forEach(child => {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n }\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\nconst hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n const classList = className.split(/\\s+/);\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\nconst removeCustomClasses = (elem, params) => {\n Array.from(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n elem.classList.remove(className);\n }\n });\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\nconst applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n if (!params.customClass) {\n return;\n }\n const customClass = params.customClass[(/** @type {keyof SweetAlertCustomClass} */className)];\n if (!customClass) {\n return;\n }\n if (typeof customClass !== 'string' && !customClass.forEach) {\n warn(`Invalid type of customClass.${className}! Expected string or iterable object, got \"${typeof customClass}\"`);\n return;\n }\n addClass(elem, customClass);\n};\n\n/**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n * @returns {HTMLInputElement | null}\n */\nconst getInput$1 = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses[inputClass]}`);\n case 'checkbox':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.checkbox} input`);\n case 'radio':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:checked`) || popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:first-child`);\n case 'range':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.range} input`);\n default:\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.input}`);\n }\n};\n\n/**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\nconst focusInput = input => {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n};\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n * @param {boolean} condition\n */\nconst toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n if (condition) {\n elem.classList.add(className);\n } else {\n elem.classList.remove(className);\n }\n });\n } else {\n if (condition) {\n target.classList.add(className);\n } else {\n target.classList.remove(className);\n }\n }\n });\n};\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\nconst addClass = (target, classList) => {\n toggleClass(target, classList, true);\n};\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\nconst removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n};\n\n/**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\nconst getDirectChildByClass = (elem, className) => {\n const children = Array.from(elem.children);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {string | number | null | undefined} value\n */\nconst applyNumericalStyle = (elem, property, value) => {\n if (value === `${parseInt(`${value}`)}`) {\n value = parseInt(value);\n }\n if (value || parseInt(`${value}`) === 0) {\n elem.style.setProperty(property, typeof value === 'number' ? `${value}px` : (/** @type {string} */value));\n } else {\n elem.style.removeProperty(property);\n }\n};\n\n/**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\nconst show = (elem, display = 'flex') => {\n if (!elem) {\n return;\n }\n elem.style.display = display;\n};\n\n/**\n * @param {HTMLElement | null} elem\n */\nconst hide = elem => {\n if (!elem) {\n return;\n }\n elem.style.display = 'none';\n};\n\n/**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\nconst showWhenInnerHtmlPresent = (elem, display = 'block') => {\n if (!elem) {\n return;\n }\n new MutationObserver(() => {\n toggle(elem, elem.innerHTML, display);\n }).observe(elem, {\n childList: true,\n subtree: true\n });\n};\n\n/**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\nconst setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement | null} */\n const el = parent.querySelector(selector);\n if (el) {\n el.style.setProperty(property, value);\n }\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {boolean | string | null | undefined} condition\n * @param {string} display\n */\nconst toggle = (elem, condition, display = 'flex') => {\n if (condition) {\n show(elem, display);\n } else {\n hide(elem);\n }\n};\n\n/**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement | null} elem\n * @returns {boolean}\n */\nconst isVisible$1 = elem => Boolean(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n\n/**\n * @returns {boolean}\n */\nconst allButtonsAreHidden = () => !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n\n/**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\nconst isScrollable = elem => Boolean(elem.scrollHeight > elem.clientHeight);\n\n/**\n * @param {HTMLElement} element\n * @param {HTMLElement} stopElement\n * @returns {boolean}\n */\nconst selfOrParentIsScrollable = (element, stopElement) => {\n let parent = /** @type {HTMLElement | null} */element;\n while (parent && parent !== stopElement) {\n if (isScrollable(parent)) {\n return true;\n }\n parent = parent.parentElement;\n }\n return false;\n};\n\n/**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\nconst hasCssAnimation = elem => {\n const style = window.getComputedStyle(elem);\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n};\n\n/**\n * @param {number} timer\n * @param {boolean} reset\n */\nconst animateTimerProgressBar = (timer, reset = false) => {\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(() => {\n timerProgressBar.style.transition = `width ${timer / 1000}s linear`;\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n};\nconst stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.width = `${timerProgressBarPercent}%`;\n};\n\n/**\n * Detect Node env\n *\n * @returns {boolean}\n */\nconst isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\nconst sweetHTML = `\n <div aria-labelledby=\"${swalClasses.title}\" aria-describedby=\"${swalClasses['html-container']}\" class=\"${swalClasses.popup}\" tabindex=\"-1\">\n <button type=\"button\" class=\"${swalClasses.close}\"></button>\n <ul class=\"${swalClasses['progress-steps']}\"></ul>\n <div class=\"${swalClasses.icon}\"></div>\n <img class=\"${swalClasses.image}\" />\n <h2 class=\"${swalClasses.title}\" id=\"${swalClasses.title}\"></h2>\n <div class=\"${swalClasses['html-container']}\" id=\"${swalClasses['html-container']}\"></div>\n <input class=\"${swalClasses.input}\" id=\"${swalClasses.input}\" />\n <input type=\"file\" class=\"${swalClasses.file}\" />\n <div class=\"${swalClasses.range}\">\n <input type=\"range\" />\n <output></output>\n </div>\n <select class=\"${swalClasses.select}\" id=\"${swalClasses.select}\"></select>\n <div class=\"${swalClasses.radio}\"></div>\n <label class=\"${swalClasses.checkbox}\">\n <input type=\"checkbox\" id=\"${swalClasses.checkbox}\" />\n <span class=\"${swalClasses.label}\"></span>\n </label>\n <textarea class=\"${swalClasses.textarea}\" id=\"${swalClasses.textarea}\"></textarea>\n <div class=\"${swalClasses['validation-message']}\" id=\"${swalClasses['validation-message']}\"></div>\n <div class=\"${swalClasses.actions}\">\n <div class=\"${swalClasses.loader}\"></div>\n <button type=\"button\" class=\"${swalClasses.confirm}\"></button>\n <button type=\"button\" class=\"${swalClasses.deny}\"></button>\n <button type=\"button\" class=\"${swalClasses.cancel}\"></button>\n </div>\n <div class=\"${swalClasses.footer}\"></div>\n <div class=\"${swalClasses['timer-progress-bar-container']}\">\n <div class=\"${swalClasses['timer-progress-bar']}\"></div>\n </div>\n </div>\n`.replace(/(^|\\n)\\s*/g, '');\n\n/**\n * @returns {boolean}\n */\nconst resetOldContainer = () => {\n const oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'],\n // @ts-ignore: 'has-column' is not defined in swalClasses but may be set dynamically\n swalClasses['has-column']]);\n return true;\n};\nconst resetValidationMessage$1 = () => {\n if (globalState.currentInstance) {\n globalState.currentInstance.resetValidationMessage();\n }\n};\nconst addInputChangeListeners = () => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement | null} */\n const range = popup.querySelector(`.${swalClasses.range} input`);\n /** @type {HTMLOutputElement | null} */\n const rangeOutput = popup.querySelector(`.${swalClasses.range} output`);\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement | null} */\n const checkbox = popup.querySelector(`.${swalClasses.checkbox} input`);\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n if (input) {\n input.oninput = resetValidationMessage$1;\n }\n if (file) {\n file.onchange = resetValidationMessage$1;\n }\n if (select) {\n select.onchange = resetValidationMessage$1;\n }\n if (checkbox) {\n checkbox.onchange = resetValidationMessage$1;\n }\n if (textarea) {\n textarea.oninput = resetValidationMessage$1;\n }\n if (range && rangeOutput) {\n range.oninput = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n }\n};\n\n/**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\nconst getTarget = target => {\n if (typeof target === 'string') {\n const element = document.querySelector(target);\n if (!element) {\n throw new Error(`Target element \"${target}\" not found`);\n }\n return /** @type {HTMLElement} */element;\n }\n return target;\n};\n\n/**\n * @param {SweetAlertOptions} params\n */\nconst setupAccessibility = params => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n};\n\n/**\n * @param {HTMLElement} targetElement\n */\nconst setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n globalState.isRTL = true;\n }\n};\n\n/**\n * Add modal + backdrop to DOM\n *\n * @param {SweetAlertOptions} params\n */\nconst init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n const container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n container.dataset['swal2Theme'] = params.theme;\n const targetElement = getTarget(params.target || 'body');\n targetElement.appendChild(container);\n if (params.topLayer) {\n container.setAttribute('popover', '');\n container.showPopover();\n }\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n};\n\n/**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\nconst parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n};\n\n/**\n * @param {object} param\n * @param {HTMLElement} target\n */\nconst handleObject = (param, target) => {\n // JQuery element(s)\n if ('jquery' in param) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n};\n\n/**\n * @param {HTMLElement} target\n * @param {any} elem\n */\nconst handleJqueryElem = (target, elem) => {\n target.textContent = '';\n if (0 in elem) {\n for (let i = 0; i in elem; i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml || '');\n applyCustomClass(loader, params, 'loader');\n};\n\n/**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\nfunction renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!confirmButton || !denyButton || !cancelButton) {\n return;\n }\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n}\n\n/**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\nfunction handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Apply custom background colors to action buttons\n if (params.confirmButtonColor) {\n confirmButton.style.setProperty('--swal2-confirm-button-background-color', params.confirmButtonColor);\n }\n if (params.denyButtonColor) {\n denyButton.style.setProperty('--swal2-deny-button-background-color', params.denyButtonColor);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.setProperty('--swal2-cancel-button-background-color', params.cancelButtonColor);\n }\n\n // Apply the outline color to action buttons\n applyOutlineColor(confirmButton);\n applyOutlineColor(denyButton);\n applyOutlineColor(cancelButton);\n}\n\n/**\n * @param {HTMLElement} button\n */\nfunction applyOutlineColor(button) {\n const buttonStyle = window.getComputedStyle(button);\n if (buttonStyle.getPropertyValue('--swal2-action-button-focus-box-shadow')) {\n // If the button already has a custom outline color, no need to change it\n return;\n }\n const outlineColor = buttonStyle.backgroundColor.replace(/rgba?\\((\\d+), (\\d+), (\\d+).*/, 'rgba($1, $2, $3, 0.5)');\n button.style.setProperty('--swal2-action-button-focus-box-shadow', buttonStyle.getPropertyValue('--swal2-outline').replace(/ rgba\\(.*/, ` ${outlineColor}`));\n}\n\n/**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\nfunction renderButton(button, buttonType, params) {\n const buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n toggle(button, params[`show${buttonName}Button`], 'inline-block');\n setInnerHtml(button, params[`${buttonType}ButtonText`] || ''); // Set caption text\n button.setAttribute('aria-label', params[`${buttonType}ButtonAriaLabel`] || ''); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, `${buttonType}Button`);\n}\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n if (!closeButton) {\n return;\n }\n setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n // Custom class\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderContainer = (instance, params) => {\n const container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n};\n\n/**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\nfunction handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n}\n\n/**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\nfunction handlePositionParam(container, position) {\n if (!position) {\n return;\n }\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n}\n\n/**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\nfunction handleGrowParam(container, grow) {\n if (!grow) {\n return;\n }\n addClass(container, swalClasses[`grow-${grow}`]);\n}\n\n/**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\nvar privateProps = {\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n};\n\n/// <reference path=\"../../../../sweetalert2.d.ts\"/>\n\n\n/** @type {InputClass[]} */\nconst inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderInput = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(inputClass => {\n const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n if (!inputContainer) {\n return;\n }\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n};\n\n/**\n * @param {SweetAlertOptions} params\n */\nconst showInput = params => {\n if (!params.input) {\n return;\n }\n if (!renderInputType[params.input]) {\n error(`Unexpected type of input! Expected ${Object.keys(renderInputType).join(' | ')}, got \"${params.input}\"`);\n return;\n }\n const inputContainer = getInputContainer(params.input);\n if (!inputContainer) {\n return;\n }\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(() => {\n focusInput(input);\n });\n }\n};\n\n/**\n * @param {HTMLInputElement} input\n */\nconst removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n};\n\n/**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\nconst setAttributes = (inputClass, inputAttributes) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const input = getInput$1(popup, inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n};\n\n/**\n * @param {SweetAlertOptions} params\n */\nconst setCustomClass = params => {\n if (!params.input) {\n return;\n }\n const inputContainer = getInputContainer(params.input);\n if (inputContainer) {\n applyCustomClass(inputContainer, params, 'input');\n }\n};\n\n/**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\nconst setInputPlaceholder = (input, params) => {\n if (!input.placeholder && params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n};\n\n/**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\nconst setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n};\n\n/**\n * @param {SweetAlertInput} inputType\n * @returns {HTMLElement | undefined}\n */\nconst getInputContainer = inputType => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n return getDirectChildByClass(popup, swalClasses[(/** @type {SwalClass} */inputType)] || swalClasses.input);\n};\n\n/**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\nconst checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = `${inputValue}`;\n } else if (!isPromise(inputValue)) {\n warn(`Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"${typeof inputValue}\"`);\n }\n};\n\n/** @type {Record<SweetAlertInput, (input: Input | HTMLElement, params: SweetAlertOptions) => Input>} */\nconst renderInputType = {};\n\n/**\n * @param {Input | HTMLElement} input\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = /** @type {(input: Input | HTMLElement, params: SweetAlertOptions) => Input} */\n(input, params) => {\n const inputElement = /** @type {HTMLInputElement} */input;\n checkAndSetInputValue(inputElement, params.inputValue);\n setInputLabel(inputElement, inputElement, params);\n setInputPlaceholder(inputElement, params);\n inputElement.type = /** @type {string} */params.input;\n return inputElement;\n};\n\n/**\n * @param {Input | HTMLElement} input\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.file = (input, params) => {\n const inputElement = /** @type {HTMLInputElement} */input;\n setInputLabel(inputElement, inputElement, params);\n setInputPlaceholder(inputElement, params);\n return inputElement;\n};\n\n/**\n * @param {Input | HTMLElement} range\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.range = (range, params) => {\n const rangeContainer = /** @type {HTMLElement} */range;\n const rangeInput = rangeContainer.querySelector('input');\n const rangeOutput = rangeContainer.querySelector('output');\n if (rangeInput) {\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = /** @type {string} */params.input;\n setInputLabel(rangeInput, /** @type {Input} */range, params);\n }\n if (rangeOutput) {\n checkAndSetInputValue(rangeOutput, params.inputValue);\n }\n return /** @type {Input} */range;\n};\n\n/**\n * @param {Input | HTMLElement} select\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.select = (select, params) => {\n const selectElement = /** @type {HTMLSelectElement} */select;\n selectElement.textContent = '';\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n selectElement.appendChild(placeholder);\n }\n setInputLabel(selectElement, selectElement, params);\n return selectElement;\n};\n\n/**\n * @param {Input | HTMLElement} radio\n * @returns {Input}\n */\nrenderInputType.radio = radio => {\n const radioElement = /** @type {HTMLElement} */radio;\n radioElement.textContent = '';\n return /** @type {Input} */radio;\n};\n\n/**\n * @param {Input | HTMLElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.checkbox = (checkboxContainer, params) => {\n const popup = getPopup();\n if (!popup) {\n throw new Error('Popup not found');\n }\n const checkbox = getInput$1(popup, 'checkbox');\n if (!checkbox) {\n throw new Error('Checkbox input not found');\n }\n checkbox.value = '1';\n checkbox.checked = Boolean(params.inputValue);\n const containerElement = /** @type {HTMLElement} */checkboxContainer;\n const label = containerElement.querySelector('span');\n if (label) {\n const placeholderOrLabel = params.inputPlaceholder || params.inputLabel;\n if (placeholderOrLabel) {\n setInnerHtml(label, placeholderOrLabel);\n }\n }\n return checkbox;\n};\n\n/**\n * @param {Input | HTMLElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {Input}\n */\nrenderInputType.textarea = (textarea, params) => {\n const textareaElement = /** @type {HTMLTextAreaElement} */textarea;\n checkAndSetInputValue(textareaElement, params.inputValue);\n setInputPlaceholder(textareaElement, params);\n setInputLabel(textareaElement, textareaElement, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const initialPopupWidth = parseInt(window.getComputedStyle(popup).width);\n const textareaResizeHandler = () => {\n // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n if (!document.body.contains(textareaElement)) {\n return;\n }\n const textareaWidth = textareaElement.offsetWidth + getMargin(textareaElement);\n const popupElement = getPopup();\n if (popupElement) {\n if (textareaWidth > initialPopupWidth) {\n popupElement.style.width = `${textareaWidth}px`;\n } else {\n applyNumericalStyle(popupElement, 'width', params.width);\n }\n }\n };\n new MutationObserver(textareaResizeHandler).observe(textareaElement, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textareaElement;\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n if (!htmlContainer) {\n return;\n }\n showWhenInnerHtmlPresent(htmlContainer);\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderFooter = (instance, params) => {\n const footer = getFooter();\n if (!footer) {\n return;\n }\n showWhenInnerHtmlPresent(footer);\n toggle(footer, Boolean(params.footer), 'block');\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon();\n if (!icon) {\n return;\n }\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(`Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"${params.icon}\"`);\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass && params.showClass.icon);\n\n // Re-adjust the success icon on system theme change\n const colorSchemeQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n colorSchemeQueryList.addEventListener('change', adjustSuccessIconBackgroundColor);\n};\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst applyStyles = (icon, params) => {\n for (const [iconType, iconClassName] of Object.entries(iconTypes)) {\n if (params.icon !== iconType) {\n removeClass(icon, iconClassName);\n }\n }\n addClass(icon, params.icon && iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n};\n\n// Adjust success icon background color to match the popup background color\nconst adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf<HTMLElement>} */\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n};\n\n/**\n *\n * @param {SweetAlertOptions} params\n * @returns {string}\n */\nconst successIconHtml = params => `\n ${params.animation ? '<div class=\"swal2-success-circular-line-left\"></div>' : ''}\n <span class=\"swal2-success-line-tip\"></span> <span class=\"swal2-success-line-long\"></span>\n <div class=\"swal2-success-ring\"></div>\n ${params.animation ? '<div class=\"swal2-success-fix\"></div>' : ''}\n ${params.animation ? '<div class=\"swal2-success-circular-line-right\"></div>' : ''}\n`;\nconst errorIconHtml = `\n <span class=\"swal2-x-mark\">\n <span class=\"swal2-x-mark-line-left\"></span>\n <span class=\"swal2-x-mark-line-right\"></span>\n </span>\n`;\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst setContent = (icon, params) => {\n if (!params.icon && !params.iconHtml) {\n return;\n }\n let oldContent = icon.innerHTML;\n let newContent = '';\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml(params);\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else if (params.icon) {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n};\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'background-color', params.iconColor);\n }\n setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);\n};\n\n/**\n * @param {string} content\n * @returns {string}\n */\nconst iconContent = content => `<div class=\"${swalClasses['icon-content']}\">${content}</div>`;\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderImage = (instance, params) => {\n const image = getImage();\n if (!image) {\n return;\n }\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt || '');\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n};\n\nlet dragging = false;\nlet mousedownX = 0;\nlet mousedownY = 0;\nlet initialX = 0;\nlet initialY = 0;\n\n/**\n * @param {HTMLElement} popup\n */\nconst addDraggableListeners = popup => {\n popup.addEventListener('mousedown', down);\n document.body.addEventListener('mousemove', move);\n popup.addEventListener('mouseup', up);\n popup.addEventListener('touchstart', down);\n document.body.addEventListener('touchmove', move);\n popup.addEventListener('touchend', up);\n};\n\n/**\n * @param {HTMLElement} popup\n */\nconst removeDraggableListeners = popup => {\n popup.removeEventListener('mousedown', down);\n document.body.removeEventListener('mousemove', move);\n popup.removeEventListener('mouseup', up);\n popup.removeEventListener('touchstart', down);\n document.body.removeEventListener('touchmove', move);\n popup.removeEventListener('touchend', up);\n};\n\n/**\n * @param {MouseEvent | TouchEvent} event\n */\nconst down = event => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const icon = getIcon();\n if (event.target === popup || icon && icon.contains(/** @type {HTMLElement} */event.target)) {\n dragging = true;\n const clientXY = getClientXY(event);\n mousedownX = clientXY.clientX;\n mousedownY = clientXY.clientY;\n initialX = parseInt(popup.style.insetInlineStart) || 0;\n initialY = parseInt(popup.style.insetBlockStart) || 0;\n addClass(popup, 'swal2-dragging');\n }\n};\n\n/**\n * @param {MouseEvent | TouchEvent} event\n */\nconst move = event => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n if (dragging) {\n let {\n clientX,\n clientY\n } = getClientXY(event);\n const deltaX = clientX - mousedownX;\n // In RTL mode, negate the horizontal delta since insetInlineStart refers to the right edge\n popup.style.insetInlineStart = `${initialX + (globalState.isRTL ? -deltaX : deltaX)}px`;\n popup.style.insetBlockStart = `${initialY + (clientY - mousedownY)}px`;\n }\n};\nconst up = () => {\n const popup = getPopup();\n dragging = false;\n removeClass(popup, 'swal2-dragging');\n};\n\n/**\n * @param {MouseEvent | TouchEvent} event\n * @returns {{ clientX: number, clientY: number }}\n */\nconst getClientXY = event => {\n let clientX = 0,\n clientY = 0;\n if (event.type.startsWith('mouse')) {\n clientX = /** @type {MouseEvent} */event.clientX;\n clientY = /** @type {MouseEvent} */event.clientY;\n } else if (event.type.startsWith('touch')) {\n clientX = /** @type {TouchEvent} */event.touches[0].clientX;\n clientY = /** @type {TouchEvent} */event.touches[0].clientY;\n }\n return {\n clientX,\n clientY\n };\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup();\n if (!container || !popup) {\n return;\n }\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n const loader = getLoader();\n if (loader) {\n popup.insertBefore(loader, getIcon());\n }\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n if (params.draggable && !params.toast) {\n addClass(popup, swalClasses.draggable);\n addDraggableListeners(popup);\n } else {\n removeClass(popup, swalClasses.draggable);\n removeDraggableListeners(popup);\n }\n};\n\n/**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\nconst addClasses$1 = (popup, params) => {\n const showClass = params.showClass || {};\n // Default Class + showClass when updating Swal.update({})\n popup.className = `${swalClasses.popup} ${isVisible$1(popup) ? showClass.popup : ''}`;\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n // TODO: remove in the next major\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[`icon-${params.icon}`]);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n if (!progressStepsContainer) {\n return;\n }\n const {\n progressSteps,\n currentProgressStep\n } = params;\n if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n if (currentProgressStep >= progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n};\n\n/**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\nconst createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n};\n\n/**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\nconst createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderTitle = (instance, params) => {\n const title = getTitle();\n if (!title) {\n return;\n }\n showWhenInnerHtmlPresent(title);\n toggle(title, Boolean(params.title || params.titleText), 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst render = (instance, params) => {\n var _globalState$eventEmi;\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n const popup = getPopup();\n if (typeof params.didRender === 'function' && popup) {\n params.didRender(popup);\n }\n (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('didRender', popup);\n};\n\n/*\n * Global function to determine if SweetAlert2 popup is shown\n */\nconst isVisible = () => {\n return isVisible$1(getPopup());\n};\n\n/*\n * Global function to click 'Confirm' button\n */\nconst clickConfirm = () => {\n var _dom$getConfirmButton;\n return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n};\n\n/*\n * Global function to click 'Deny' button\n */\nconst clickDeny = () => {\n var _dom$getDenyButton;\n return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n};\n\n/*\n * Global function to click 'Cancel' button\n */\nconst clickCancel = () => {\n var _dom$getCancelButton;\n return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n};\n\n/** @type {Record<DismissReason, DismissReason>} */\nconst DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n});\n\n/**\n * @param {GlobalState} globalState\n */\nconst removeKeydownHandler = globalState => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded && globalState.keydownHandler) {\n const handler = /** @type {EventListenerOrEventListenerObject} */ /** @type {unknown} */globalState.keydownHandler;\n globalState.keydownTarget.removeEventListener('keydown', handler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n};\n\n/**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst addKeydownHandler = (globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n /** @type {(this: HTMLElement, event: KeyboardEvent) => void} */\n const handler = e => keydownHandler(innerParams, e, dismissWith);\n globalState.keydownHandler = handler;\n const target = innerParams.keydownListenerCapture ? window : getPopup();\n if (target) {\n globalState.keydownTarget = target;\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n const eventHandler = /** @type {EventListenerOrEventListenerObject} */ /** @type {unknown} */handler;\n globalState.keydownTarget.addEventListener('keydown', eventHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n }\n};\n\n/**\n * @param {number} index\n * @param {number} increment\n */\nconst setFocus = (index, increment) => {\n var _dom$getPopup;\n const focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // shift + tab when .swal2-popup is focused\n if (index === -2) {\n index = focusableElements.length - 1;\n }\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n};\nconst arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\nconst arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {KeyboardEvent} event\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst keydownHandler = (innerParams, event, dismissWith) => {\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n};\n\n/**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\nconst handleEnter = (event, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n const popup = getPopup();\n if (!popup || !innerParams.input) {\n return;\n }\n const input = getInput$1(popup, innerParams.input);\n if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n clickConfirm();\n event.preventDefault();\n }\n};\n\n/**\n * @param {KeyboardEvent} event\n */\nconst handleTab = event => {\n const targetElement = event.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n};\n\n/**\n * @param {string} key\n */\nconst handleArrows = key => {\n const actions = getActions();\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!actions || !confirmButton || !denyButton || !cancelButton) {\n return;\n }\n /** @type HTMLElement[] */\n const buttons = [confirmButton, denyButton, cancelButton];\n if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n return;\n }\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n if (!buttonToFocus) {\n return;\n }\n for (let i = 0; i < actions.children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n};\n\n/**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst handleEsc = (event, innerParams, dismissWith) => {\n event.preventDefault();\n if (callIfFunction(innerParams.allowEscapeKey)) {\n dismissWith(DismissReason.esc);\n }\n};\n\n/**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\nvar privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n};\n\n// From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n// Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n// elements not within the active modal dialog will not be surfaced if a user opens a screen\n// reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\nconst setAriaHidden = () => {\n const container = getContainer();\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.contains(container)) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n }\n el.setAttribute('aria-hidden', 'true');\n });\n};\nconst unsetAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n};\n\n// @ts-ignore\nconst isSafariOrIOS = typeof window !== 'undefined' && Boolean(window.GestureEvent); // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n/**\n * Fix iOS scrolling\n * http://stackoverflow.com/q/39626302\n */\nconst iOSfix = () => {\n if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = `${offset * -1}px`;\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n }\n};\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\nconst lockBodyScroll = () => {\n const container = getContainer();\n if (!container) {\n return;\n }\n /** @type {boolean} */\n let preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = event => {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = event => {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n};\n\n/**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\nconst shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n const htmlContainer = getHtmlContainer();\n if (!container || !htmlContainer) {\n return false;\n }\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && !selfOrParentIsScrollable(target, htmlContainer) &&\n // #2823\n target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(htmlContainer) &&\n // #1944\n htmlContainer.contains(target))) {\n return true;\n }\n return false;\n};\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\nconst isStylus = event => {\n return Boolean(event.touches && event.touches.length &&\n // @ts-ignore - touchType is not a standard property\n event.touches[0].touchType === 'stylus');\n};\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\nconst isZoom = event => {\n return event.touches && event.touches.length > 1;\n};\nconst undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n};\n\n/**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\nconst measureScrollbar = () => {\n const scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n};\n\n/**\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * @type {number | null}\n */\nlet previousBodyPadding = null;\n\n/**\n * @param {string} initialBodyOverflow\n */\nconst replaceScrollbarWithPadding = initialBodyOverflow => {\n // for queues, do not do this more than once\n if (previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n ) {\n // add padding so the content doesn't shift after removal of scrollbar\n previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = `${previousBodyPadding + measureScrollbar()}px`;\n }\n};\nconst undoReplaceScrollbarWithPadding = () => {\n if (previousBodyPadding !== null) {\n document.body.style.paddingRight = `${previousBodyPadding}px`;\n previousBodyPadding = null;\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {(() => void) | undefined} didClose\n */\nfunction removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n removeKeydownHandler(globalState);\n }\n\n // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafariOrIOS) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoReplaceScrollbarWithPadding();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n}\n\n/**\n * Remove SweetAlert2 classes from body\n */\nfunction removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n}\n\n/**\n * Instance method to close sweetAlert\n *\n * @param {SweetAlertResult | undefined} resolveValue\n * @this {SweetAlert}\n */\nfunction close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\n if (this.isAwaitingPromise) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n}\n\n/**\n * @param {SweetAlert} instance\n * @returns {boolean}\n */\nconst triggerClosePopup = instance => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n};\n\n/**\n * @param {Error | string} error\n * @this {SweetAlert}\n */\nfunction rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n}\n\n/**\n * @param {SweetAlert} instance\n */\nconst handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise) {\n // @ts-ignore\n delete instance.isAwaitingPromise;\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n};\n\n/**\n * @param {SweetAlertResult | undefined} resolveValue\n * @returns {SweetAlertResult}\n */\nconst prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} innerParams\n */\nconst handlePopupAnimation = (instance, popup, innerParams) => {\n var _globalState$eventEmi;\n const container = getContainer();\n // If animation is supported, animate\n const animationIsSupported = hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('willClose', popup);\n if (animationIsSupported && container) {\n animatePopup(instance, popup, container, Boolean(innerParams.returnFocus), innerParams.didClose);\n } else if (container) {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, Boolean(innerParams.returnFocus), innerParams.didClose);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {(() => void) | undefined} didClose\n */\nconst animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n /**\n * @param {AnimationEvent | TransitionEvent} e\n */\n const swalCloseAnimationFinished = function (e) {\n if (e.target === popup) {\n var _globalState$swalClos;\n (_globalState$swalClos = globalState.swalCloseEventFinishedCallback) === null || _globalState$swalClos === void 0 || _globalState$swalClos.call(globalState);\n delete globalState.swalCloseEventFinishedCallback;\n popup.removeEventListener('animationend', swalCloseAnimationFinished);\n popup.removeEventListener('transitionend', swalCloseAnimationFinished);\n }\n };\n popup.addEventListener('animationend', swalCloseAnimationFinished);\n popup.addEventListener('transitionend', swalCloseAnimationFinished);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {(() => void) | undefined} didClose\n */\nconst triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n var _globalState$eventEmi2;\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n (_globalState$eventEmi2 = globalState.eventEmitter) === null || _globalState$eventEmi2 === void 0 || _globalState$eventEmi2.emit('didClose');\n // instance might have been destroyed already\n if (instance._destroy) {\n instance._destroy();\n }\n });\n};\n\n/**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n *\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\nconst showLoading = buttonToReplace => {\n let popup = getPopup();\n if (!popup) {\n new Swal();\n }\n popup = getPopup();\n if (!popup) {\n return;\n }\n const loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n};\n\n/**\n * @param {HTMLElement} popup\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\nconst replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n actions.insertBefore(loader, buttonToReplace);\n }\n addClass([popup, actions], swalClasses.loading);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].some(i => i === params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {SweetAlertInputValue}\n */\nconst getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n};\n\n/**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\nconst getCheckboxValue = input => input.checked ? 1 : 0;\n\n/**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\nconst getRadioValue = input => input.checked ? input.value : null;\n\n/**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\nconst getFileValue = input => input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst handleInputOptions = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n /**\n * @param {*} inputOptions\n */\n const processInputOptions = inputOptions => {\n if (params.input === 'select') {\n populateSelectOptions(popup, formatInputOptions(inputOptions), params);\n } else if (params.input === 'radio') {\n populateRadioOptions(popup, formatInputOptions(inputOptions), params);\n }\n };\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(`Unexpected type of inputOptions! Expected object, Map or Promise, got ${typeof params.inputOptions}`);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst handleInputValue = (instance, params) => {\n const input = instance.getInput();\n if (!input) {\n return;\n }\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? `${parseFloat(inputValue) || 0}` : `${inputValue}`;\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(`Error in inputValue promise: ${err}`);\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n};\n\n/**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\nfunction populateSelectOptions(popup, inputOptions, params) {\n const select = getDirectChildByClass(popup, swalClasses.select);\n if (!select) {\n return;\n }\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\n */\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1];\n // <optgroup> spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a <optgroup>\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an <optgroup>\n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of <option>\n renderOption(select, optionLabel, optionValue);\n }\n });\n select.focus();\n}\n\n/**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\nfunction populateRadioOptions(popup, inputOptions, params) {\n const radio = getDirectChildByClass(popup, swalClasses.radio);\n if (!radio) {\n return;\n }\n inputOptions.forEach(inputOption => {\n const radioValue = inputOption[0];\n const radioLabel = inputOption[1];\n const radioInput = document.createElement('input');\n const radioLabelElement = document.createElement('label');\n radioInput.type = 'radio';\n radioInput.name = swalClasses.radio;\n radioInput.value = radioValue;\n if (isSelected(radioValue, params.inputValue)) {\n radioInput.checked = true;\n }\n const label = document.createElement('span');\n setInnerHtml(label, radioLabel);\n label.className = swalClasses.label;\n radioLabelElement.appendChild(radioInput);\n radioLabelElement.appendChild(label);\n radio.appendChild(radioLabelElement);\n });\n const radios = radio.querySelectorAll('input');\n if (radios.length) {\n radios[0].focus();\n }\n}\n\n/**\n * Converts `inputOptions` into an array of `[value, label]`s\n *\n * @param {*} inputOptions\n * @typedef {string[]} InputOptionFlattened\n * @returns {InputOptionFlattened[]}\n */\nconst formatInputOptions = inputOptions => {\n /** @type {InputOptionFlattened[]} */\n const result = [];\n if (inputOptions instanceof Map) {\n inputOptions.forEach((value, key) => {\n let valueFormatted = value;\n if (typeof valueFormatted === 'object') {\n // case of <optgroup>\n valueFormatted = formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(key => {\n let valueFormatted = inputOptions[key];\n if (typeof valueFormatted === 'object') {\n // case of <optgroup>\n valueFormatted = formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n }\n return result;\n};\n\n/**\n * @param {string} optionValue\n * @param {SweetAlertInputValue} inputValue\n * @returns {boolean}\n */\nconst isSelected = (optionValue, inputValue) => {\n return Boolean(inputValue) && inputValue !== null && inputValue !== undefined && inputValue.toString() === optionValue.toString();\n};\n\n/**\n * @param {SweetAlert} instance\n */\nconst handleConfirmButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n */\nconst handleDenyButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {'confirm' | 'deny'} type\n */\nconst handleConfirmOrDenyWithInput = (instance, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams.input) {\n error(`The \"input\" parameter is needed to be set when using returnInputValueOn${capitalizeFirstLetter(type)}`);\n return;\n }\n const input = instance.getInput();\n const inputValue = getInputValue(instance, innerParams);\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (input && !input.checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage || input.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertInputValue} inputValue\n * @param {'confirm' | 'deny'} type\n */\nconst handleInputValidator = (instance, inputValue, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n validationPromise.then(validationMessage => {\n instance.enableButtons();\n instance.enableInput();\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {*} value\n */\nconst deny = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance);\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n if (innerParams.preDeny) {\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.close(/** @type SweetAlertResult */{\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n }).catch(error => rejectWith(instance, error));\n } else {\n instance.close(/** @type SweetAlertResult */{\n isDenied: true,\n value\n });\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {*} value\n */\nconst succeedWith = (instance, value) => {\n instance.close(/** @type SweetAlertResult */{\n isConfirmed: true,\n value\n });\n};\n\n/**\n *\n * @param {SweetAlert} instance\n * @param {string} error\n */\nconst rejectWith = (instance, error) => {\n instance.rejectPromise(error);\n};\n\n/**\n *\n * @param {SweetAlert} instance\n * @param {*} value\n */\nconst confirm = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance);\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.then(preConfirmValue => {\n if (isVisible$1(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n }).catch(error => rejectWith(instance, error));\n } else {\n succeedWith(instance, value);\n }\n};\n\n/**\n * Hides loader and shows back the button which was hidden by .showLoading()\n * @this {SweetAlert}\n */\nfunction hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n return;\n }\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n}\n\n/**\n * @param {DomCache} domCache\n */\nconst showRelatedButton = domCache => {\n const dataButtonToReplace = domCache.loader.getAttribute('data-button-to-replace');\n const buttonToReplace = dataButtonToReplace ? domCache.popup.getElementsByClassName(dataButtonToReplace) : [];\n if (buttonToReplace.length) {\n show(/** @type {HTMLElement} */buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n};\n\n/**\n * Gets the input DOM node, this method works with input parameter.\n *\n * @returns {HTMLInputElement | null}\n * @this {SweetAlert}\n */\nfunction getInput() {\n const innerParams = privateProps.innerParams.get(this);\n const domCache = privateProps.domCache.get(this);\n if (!domCache) {\n return null;\n }\n return getInput$1(domCache.popup, innerParams.input);\n}\n\n/**\n * @param {SweetAlert} instance\n * @param {string[]} buttons\n * @param {boolean} disabled\n */\nfunction setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance);\n buttons.forEach(button => {\n domCache[button].disabled = disabled;\n });\n}\n\n/**\n * @param {HTMLInputElement | null} input\n * @param {boolean} disabled\n */\nfunction setInputDisabled(input, disabled) {\n const popup = getPopup();\n if (!popup || !input) {\n return;\n }\n if (input.type === 'radio') {\n /** @type {NodeListOf<HTMLInputElement>} */\n const radios = popup.querySelectorAll(`[name=\"${swalClasses.radio}\"]`);\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n}\n\n/**\n * Enable all the buttons\n * @this {SweetAlert}\n */\nfunction enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n}\n\n/**\n * Disable all the buttons\n * @this {SweetAlert}\n */\nfunction disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n}\n\n/**\n * Enable the input field\n * @this {SweetAlert}\n */\nfunction enableInput() {\n setInputDisabled(this.getInput(), false);\n}\n\n/**\n * Disable the input field\n * @this {SweetAlert}\n */\nfunction disableInput() {\n setInputDisabled(this.getInput(), true);\n}\n\n/**\n * Show block with validation message\n *\n * @param {string} error\n * @this {SweetAlert}\n */\nfunction showValidationMessage(error) {\n const domCache = privateProps.domCache.get(this);\n const params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n show(domCache.validationMessage);\n const input = this.getInput();\n if (input) {\n input.setAttribute('aria-invalid', 'true');\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n}\n\n/**\n * Hide block with validation message\n *\n * @this {SweetAlert}\n */\nfunction resetValidationMessage() {\n const domCache = privateProps.domCache.get(this);\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n const input = this.getInput();\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n}\n\nconst defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n draggable: false,\n animation: true,\n theme: 'light',\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '&times;',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoFocus: true,\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true,\n topLayer: false\n};\nconst updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'draggable', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'theme', 'willClose'];\n\n/** @type {Record<string, string | undefined>} */\nconst deprecatedParams = {\n allowEnterKey: undefined\n};\nconst toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'draggable', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n\n/**\n * Is valid parameter\n *\n * @param {string} paramName\n * @returns {boolean}\n */\nconst isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n};\n\n/**\n * Is valid parameter for Swal.update() method\n *\n * @param {string} paramName\n * @returns {boolean}\n */\nconst isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n};\n\n/**\n * Is deprecated parameter\n *\n * @param {string} paramName\n * @returns {string | undefined}\n */\nconst isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n};\n\n/**\n * @param {string} param\n */\nconst checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(`Unknown parameter \"${param}\"`);\n }\n};\n\n/**\n * @param {string} param\n */\nconst checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(`The parameter \"${param}\" is incompatible with toasts`);\n }\n};\n\n/**\n * @param {string} param\n */\nconst checkIfParamIsDeprecated = param => {\n const isDeprecated = isDeprecatedParameter(param);\n if (isDeprecated) {\n warnAboutDeprecation(param, isDeprecated);\n }\n};\n\n/**\n * Show relevant warnings for given params\n *\n * @param {SweetAlertOptions} params\n */\nconst showWarningsForParams = params => {\n if (params.backdrop === false && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n if (params.theme && !['light', 'dark', 'auto', 'minimal', 'borderless', 'bootstrap-4', 'bootstrap-4-light', 'bootstrap-4-dark', 'bootstrap-5', 'bootstrap-5-light', 'bootstrap-5-dark', 'material-ui', 'material-ui-light', 'material-ui-dark', 'embed-iframe', 'bulma', 'bulma-light', 'bulma-dark'].includes(params.theme)) {\n warn(`Invalid theme \"${params.theme}\"`);\n }\n for (const param in params) {\n checkIfParamIsValid(param);\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n checkIfParamIsDeprecated(param);\n }\n};\n\n/**\n * Updates popup parameters.\n *\n * @this {any}\n * @param {SweetAlertOptions} params\n */\nfunction update(params) {\n const container = getContainer();\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n warn(`You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.`);\n return;\n }\n const validUpdatableParams = filterValidParams(params);\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n showWarningsForParams(updatedParams);\n if (container) {\n container.dataset['swal2Theme'] = updatedParams.theme;\n }\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n}\n\n/**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\nconst filterValidParams = params => {\n /** @type {Record<string, any>} */\n const validUpdatableParams = {};\n Object.keys(params).forEach(param => {\n if (isUpdatableParameter(param)) {\n const typedParams = /** @type {Record<string, any>} */params;\n validUpdatableParams[param] = typedParams[param];\n } else {\n warn(`Invalid parameter to update: ${param}`);\n }\n });\n return validUpdatableParams;\n};\n\n/**\n * Dispose the current SweetAlert2 instance\n * @this {SweetAlert}\n */\nfunction _destroy() {\n var _globalState$eventEmi;\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n return; // This instance has already been destroyed\n }\n\n // Check if there is another Swal closing\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('didDestroy');\n disposeSwal(this);\n}\n\n/**\n * @param {SweetAlert} instance\n */\nconst disposeSwal = instance => {\n disposeWeakMaps(instance);\n // Unset this.params so GC will dispose it (#1569)\n // @ts-ignore\n delete instance.params;\n // Unset globalState props so GC will dispose globalState (#1569)\n delete globalState.keydownHandler;\n delete globalState.keydownTarget;\n // Unset currentInstance\n delete globalState.currentInstance;\n};\n\n/**\n * @param {SweetAlert} instance\n */\nconst disposeWeakMaps = instance => {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n if (instance.isAwaitingPromise) {\n unsetWeakMaps(privateProps, instance);\n instance.isAwaitingPromise = true;\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n\n // @ts-ignore\n delete instance.isAwaitingPromise;\n // Unset instance methods\n // @ts-ignore\n delete instance.disableButtons;\n // @ts-ignore\n delete instance.enableButtons;\n // @ts-ignore\n delete instance.getInput;\n // @ts-ignore\n delete instance.disableInput;\n // @ts-ignore\n delete instance.enableInput;\n // @ts-ignore\n delete instance.hideLoading;\n // @ts-ignore\n delete instance.disableLoading;\n // @ts-ignore\n delete instance.showValidationMessage;\n // @ts-ignore\n delete instance.resetValidationMessage;\n // @ts-ignore\n delete instance.close;\n // @ts-ignore\n delete instance.closePopup;\n // @ts-ignore\n delete instance.closeModal;\n // @ts-ignore\n delete instance.closeToast;\n // @ts-ignore\n delete instance.rejectPromise;\n // @ts-ignore\n delete instance.update;\n // @ts-ignore\n delete instance._destroy;\n }\n};\n\n/**\n * @param {Record<string, WeakMap<any, any>>} obj\n * @param {SweetAlert} instance\n */\nconst unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance);\n }\n};\n\nvar instanceMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n _destroy: _destroy,\n close: close,\n closeModal: close,\n closePopup: close,\n closeToast: close,\n disableButtons: disableButtons,\n disableInput: disableInput,\n disableLoading: hideLoading,\n enableButtons: enableButtons,\n enableInput: enableInput,\n getInput: getInput,\n handleAwaitingPromise: handleAwaitingPromise,\n hideLoading: hideLoading,\n rejectPromise: rejectPromise,\n resetValidationMessage: resetValidationMessage,\n showValidationMessage: showValidationMessage,\n update: update\n});\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst handlePopupClick = (innerParams, domCache, dismissWith) => {\n if (innerParams.toast) {\n handleToastClick(innerParams, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache);\n\n // Ignore click events that had mousedown on the container but mouseup on the popup\n handleContainerMousedown(domCache);\n handleModalClick(innerParams, domCache, dismissWith);\n }\n};\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst handleToastClick = (innerParams, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n dismissWith(DismissReason.close);\n };\n};\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\nconst isAnyButtonShown = innerParams => {\n return Boolean(innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton);\n};\nlet ignoreOutsideClick = false;\n\n/**\n * @param {DomCache} domCache\n */\nconst handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = () => {};\n // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n};\n\n/**\n * @param {DomCache} domCache\n */\nconst handleContainerMousedown = domCache => {\n domCache.container.onmousedown = e => {\n // prevent the modal text from being selected on double click on the container (allowOutsideClick: false)\n if (e.target === domCache.container) {\n e.preventDefault();\n }\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = () => {};\n // We also need to check if the mouseup target is a child of the popup\n if (e.target === domCache.popup || e.target instanceof HTMLElement && domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n};\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst handleModalClick = (innerParams, domCache, dismissWith) => {\n domCache.container.onclick = e => {\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n};\n\n/**\n * @param {any} elem\n * @returns {boolean}\n */\nconst isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\n\n/**\n * @param {any} elem\n * @returns {boolean}\n */\nconst isElement = elem => elem instanceof Element || isJqueryElement(elem);\n\n/**\n * @param {any[]} args\n * @returns {SweetAlertOptions}\n */\nconst argsToParams = args => {\n /** @type {Record<string, any>} */\n const params = {};\n if (typeof args[0] === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach((name, index) => {\n const arg = args[index];\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(`Unexpected type of ${name}! Expected \"string\" or \"Element\", got ${typeof arg}`);\n }\n });\n }\n return params;\n};\n\n/**\n * Main method to create a new SweetAlert2 popup\n *\n * @this {new (...args: any[]) => any}\n * @param {...SweetAlertOptions} args\n * @returns {Promise<SweetAlertResult>}\n */\nfunction fire(...args) {\n return new this(...args);\n}\n\n/**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlert}\n * @this {typeof import('../SweetAlert.js').SweetAlert}\n */\nfunction mixin(mixinParams) {\n // @ts-ignore: 'this' refers to the SweetAlert constructor\n class MixinSwal extends this {\n /**\n * @param {any} params\n * @param {any} priorityMixinParams\n */\n _main(params, priorityMixinParams) {\n return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));\n }\n }\n // @ts-ignore\n return MixinSwal;\n}\n\n/**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n};\n\n/**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n};\n\n/**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n};\n\n/**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst toggleTimer = () => {\n const timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n};\n\n/**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @param {number} ms\n * @returns {number | undefined}\n */\nconst increaseTimer = ms => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.increase(ms);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n};\n\n/**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n *\n * @returns {boolean}\n */\nconst isTimerRunning = () => {\n return Boolean(globalState.timeout && globalState.timeout.isRunning());\n};\n\nlet bodyClickListenerAdded = false;\n/** @type {Record<string, any>} */\nconst clickHandlers = {};\n\n/**\n * @this {any}\n * @param {string} attr\n */\nfunction bindClickHandler(attr = 'data-swal-template') {\n clickHandlers[attr] = this;\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n}\n\n/**\n * @param {MouseEvent} event\n */\nconst bodyClickListener = event => {\n for (let el = /** @type {any} */event.target; el && el !== document; el = el.parentNode) {\n for (const attr in clickHandlers) {\n const template = el.getAttribute && el.getAttribute(attr);\n if (template) {\n clickHandlers[attr].fire({\n template\n });\n return;\n }\n }\n }\n};\n\n// Source: https://gist.github.com/mudge/5830382?permalink_comment_id=2691957#gistcomment-2691957\n\nclass EventEmitter {\n constructor() {\n /** @type {Events} */\n this.events = {};\n }\n\n /**\n * @param {string} eventName\n * @returns {EventHandlers}\n */\n _getHandlersByEventName(eventName) {\n if (typeof this.events[eventName] === 'undefined') {\n // not Set because we need to keep the FIFO order\n // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1748990334\n this.events[eventName] = [];\n }\n return this.events[eventName];\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n on(eventName, eventHandler) {\n const currentHandlers = this._getHandlersByEventName(eventName);\n if (!currentHandlers.includes(eventHandler)) {\n currentHandlers.push(eventHandler);\n }\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n once(eventName, eventHandler) {\n /**\n * @param {...any} args\n */\n const onceFn = (...args) => {\n this.removeListener(eventName, onceFn);\n // @ts-ignore\n eventHandler.apply(this, args);\n };\n this.on(eventName, onceFn);\n }\n\n /**\n * @param {string} eventName\n * @param {...any} args\n */\n emit(eventName, ...args) {\n this._getHandlersByEventName(eventName).forEach(\n /**\n * @param {EventHandler} eventHandler\n */\n eventHandler => {\n try {\n // @ts-ignore\n eventHandler.apply(this, args);\n } catch (error) {\n console.error(error);\n }\n });\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n removeListener(eventName, eventHandler) {\n const currentHandlers = this._getHandlersByEventName(eventName);\n const index = currentHandlers.indexOf(eventHandler);\n if (index > -1) {\n currentHandlers.splice(index, 1);\n }\n }\n\n /**\n * @param {string} eventName\n */\n removeAllListeners(eventName) {\n if (this.events[eventName] !== undefined) {\n // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1749239222\n this.events[eventName].length = 0;\n }\n }\n reset() {\n this.events = {};\n }\n}\n\nglobalState.eventEmitter = new EventEmitter();\n\n/**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\nconst on = (eventName, eventHandler) => {\n if (globalState.eventEmitter) {\n globalState.eventEmitter.on(eventName, eventHandler);\n }\n};\n\n/**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\nconst once = (eventName, eventHandler) => {\n if (globalState.eventEmitter) {\n globalState.eventEmitter.once(eventName, eventHandler);\n }\n};\n\n/**\n * @param {string} [eventName]\n * @param {EventHandler} [eventHandler]\n */\nconst off = (eventName, eventHandler) => {\n if (!globalState.eventEmitter) {\n return;\n }\n\n // Remove all handlers for all events\n if (!eventName) {\n globalState.eventEmitter.reset();\n return;\n }\n if (eventHandler) {\n // Remove a specific handler\n globalState.eventEmitter.removeListener(eventName, eventHandler);\n } else {\n // Remove all handlers for a specific event\n globalState.eventEmitter.removeAllListeners(eventName);\n }\n};\n\nvar staticMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n argsToParams: argsToParams,\n bindClickHandler: bindClickHandler,\n clickCancel: clickCancel,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n enableLoading: showLoading,\n fire: fire,\n getActions: getActions,\n getCancelButton: getCancelButton,\n getCloseButton: getCloseButton,\n getConfirmButton: getConfirmButton,\n getContainer: getContainer,\n getDenyButton: getDenyButton,\n getFocusableElements: getFocusableElements,\n getFooter: getFooter,\n getHtmlContainer: getHtmlContainer,\n getIcon: getIcon,\n getIconContent: getIconContent,\n getImage: getImage,\n getInputLabel: getInputLabel,\n getLoader: getLoader,\n getPopup: getPopup,\n getProgressSteps: getProgressSteps,\n getTimerLeft: getTimerLeft,\n getTimerProgressBar: getTimerProgressBar,\n getTitle: getTitle,\n getValidationMessage: getValidationMessage,\n increaseTimer: increaseTimer,\n isDeprecatedParameter: isDeprecatedParameter,\n isLoading: isLoading,\n isTimerRunning: isTimerRunning,\n isUpdatableParameter: isUpdatableParameter,\n isValidParameter: isValidParameter,\n isVisible: isVisible,\n mixin: mixin,\n off: off,\n on: on,\n once: once,\n resumeTimer: resumeTimer,\n showLoading: showLoading,\n stopTimer: stopTimer,\n toggleTimer: toggleTimer\n});\n\nclass Timer {\n /**\n * @param {() => void} callback\n * @param {number} delay\n */\n constructor(callback, delay) {\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n /**\n * @returns {number}\n */\n start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n stop() {\n if (this.started && this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n return this.remaining;\n }\n\n /**\n * @param {number} n\n * @returns {number}\n */\n increase(n) {\n const running = this.running;\n if (running) {\n this.stop();\n }\n this.remaining += n;\n if (running) {\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {boolean}\n */\n isRunning() {\n return this.running;\n }\n}\n\nconst swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n\n/**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\nconst getTemplateParams = params => {\n const template = typeof params.template === 'string' ? (/** @type {HTMLTemplateElement} */document.querySelector(params.template)) : params.template;\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n const templateContent = template.content;\n showWarningsForElements(templateContent);\n const result = Object.assign(getSwalParams(templateContent), getSwalFunctionParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, string | boolean | number>}\n */\nconst getSwalParams = templateContent => {\n /** @type {Record<string, string | boolean | number>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalParams = Array.from(templateContent.querySelectorAll('swal-param'));\n swalParams.forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n const value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n if (paramName in defaultParams && typeof defaultParams[(/** @type {keyof typeof defaultParams} */paramName)] === 'boolean') {\n result[paramName] = value !== 'false';\n } else if (paramName in defaultParams && typeof defaultParams[(/** @type {keyof typeof defaultParams} */paramName)] === 'object') {\n result[paramName] = JSON.parse(value);\n } else {\n result[paramName] = value;\n }\n });\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, () => void>}\n */\nconst getSwalFunctionParams = templateContent => {\n /** @type {Record<string, () => void>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalFunctions = Array.from(templateContent.querySelectorAll('swal-function-param'));\n swalFunctions.forEach(param => {\n const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n const value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n result[paramName] = new Function(`return ${value}`)();\n });\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, string | boolean>}\n */\nconst getSwalButtons = templateContent => {\n /** @type {Record<string, string | boolean>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));\n swalButtons.forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n if (!type || !['confirm', 'cancel', 'deny'].includes(type)) {\n return;\n }\n result[`${type}ButtonText`] = button.innerHTML;\n result[`show${capitalizeFirstLetter(type)}Button`] = true;\n if (button.hasAttribute('color')) {\n const color = button.getAttribute('color');\n if (color !== null) {\n result[`${type}ButtonColor`] = color;\n }\n }\n if (button.hasAttribute('aria-label')) {\n const ariaLabel = button.getAttribute('aria-label');\n if (ariaLabel !== null) {\n result[`${type}ButtonAriaLabel`] = ariaLabel;\n }\n }\n });\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Pick<SweetAlertOptions, 'imageUrl' | 'imageWidth' | 'imageHeight' | 'imageAlt'>}\n */\nconst getSwalImage = templateContent => {\n const result = {};\n /** @type {HTMLElement | null} */\n const image = templateContent.querySelector('swal-image');\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src') || undefined;\n }\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width') || undefined;\n }\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height') || undefined;\n }\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt') || undefined;\n }\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {object}\n */\nconst getSwalIcon = templateContent => {\n const result = {};\n /** @type {HTMLElement | null} */\n const icon = templateContent.querySelector('swal-icon');\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n result.iconHtml = icon.innerHTML;\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {object}\n */\nconst getSwalInput = templateContent => {\n /** @type {Record<string, any>} */\n const result = {};\n /** @type {HTMLElement | null} */\n const input = templateContent.querySelector('swal-input');\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n /** @type {HTMLElement[]} */\n const inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));\n if (inputOptions.length) {\n result.inputOptions = {};\n inputOptions.forEach(option => {\n showWarningsForAttributes(option, ['value']);\n const optionValue = option.getAttribute('value');\n if (!optionValue) {\n return;\n }\n const optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n * @returns {Record<string, string>}\n */\nconst getSwalStringParams = (templateContent, paramNames) => {\n /** @type {Record<string, string>} */\n const result = {};\n for (const i in paramNames) {\n const paramName = paramNames[i];\n /** @type {HTMLElement | null} */\n const tag = templateContent.querySelector(paramName);\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n */\nconst showWarningsForElements = templateContent => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-function-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n Array.from(templateContent.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n if (!allowedElements.includes(tagName)) {\n warn(`Unrecognized element <${tagName}>`);\n }\n });\n};\n\n/**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\nconst showWarningsForAttributes = (el, allowedAttributes) => {\n Array.from(el.attributes).forEach(attribute => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([`Unrecognized attribute \"${attribute.name}\" on <${el.tagName.toLowerCase()}>.`, `${allowedAttributes.length ? `Allowed attributes are: ${allowedAttributes.join(', ')}` : 'To set the value, use HTML within the element.'}`]);\n }\n });\n};\n\nconst SHOW_CLASS_TIMEOUT = 10;\n\n/**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param {SweetAlertOptions} params\n */\nconst openPopup = params => {\n var _globalState$eventEmi, _globalState$eventEmi2;\n const container = getContainer();\n const popup = getPopup();\n if (!container || !popup) {\n return;\n }\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('willOpen', popup);\n const bodyStyles = window.getComputedStyle(document.body);\n const initialBodyOverflow = bodyStyles.overflowY;\n addClasses(container, popup, params);\n\n // scrolling is 'hidden' until animation is done, after that 'auto'\n setTimeout(() => {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n if (isModal()) {\n // Using ternary instead of ?? operator for Webpack 4 compatibility\n fixScrollContainer(container, params.scrollbarPadding !== undefined ? params.scrollbarPadding : false, initialBodyOverflow);\n setAriaHidden();\n }\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n if (typeof params.didOpen === 'function') {\n const didOpen = params.didOpen;\n setTimeout(() => didOpen(popup));\n }\n (_globalState$eventEmi2 = globalState.eventEmitter) === null || _globalState$eventEmi2 === void 0 || _globalState$eventEmi2.emit('didOpen', popup);\n};\n\n/**\n * @param {Event} event\n */\nconst swalOpenAnimationFinished = event => {\n const popup = getPopup();\n if (!popup || event.target !== popup) {\n return;\n }\n const container = getContainer();\n if (!container) {\n return;\n }\n popup.removeEventListener('animationend', swalOpenAnimationFinished);\n popup.removeEventListener('transitionend', swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n\n // no-transition is added in init() in case one swal is opened right after another\n removeClass(container, swalClasses['no-transition']);\n};\n\n/**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n */\nconst setScrollingVisibility = (container, popup) => {\n if (hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener('animationend', swalOpenAnimationFinished);\n popup.addEventListener('transitionend', swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n};\n\n/**\n * @param {HTMLElement} container\n * @param {boolean} scrollbarPadding\n * @param {string} initialBodyOverflow\n */\nconst fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n replaceScrollbarWithPadding(initialBodyOverflow);\n }\n\n // sweetalert2/issues/1247\n setTimeout(() => {\n container.scrollTop = 0;\n });\n};\n\n/**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\nconst addClasses = (container, popup, params) => {\n var _params$showClass;\n if ((_params$showClass = params.showClass) !== null && _params$showClass !== void 0 && _params$showClass.backdrop) {\n addClass(container, params.showClass.backdrop);\n }\n if (params.animation) {\n // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(() => {\n var _params$showClass2;\n // Animate popup right after showing it\n if ((_params$showClass2 = params.showClass) !== null && _params$showClass2 !== void 0 && _params$showClass2.popup) {\n addClass(popup, params.showClass.popup);\n }\n // and remove the opacity workaround\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n } else {\n show(popup, 'grid');\n }\n addClass([document.documentElement, document.body], swalClasses.shown);\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n};\n\nvar defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise<string | void>}\n */\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]+$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise<string | void>}\n */\n url: (string, validationMessage) => {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n};\n\n/**\n * @param {SweetAlertOptions} params\n */\nfunction setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (params.inputValidator) {\n return;\n }\n if (params.input === 'email') {\n params.inputValidator = defaultInputValidators['email'];\n }\n if (params.input === 'url') {\n params.inputValidator = defaultInputValidators['url'];\n }\n}\n\n/**\n * @param {SweetAlertOptions} params\n */\nfunction validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n}\n\n/**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\nfunction setParameters(params) {\n setDefaultInputValidators(params);\n\n // showLoaderOnConfirm && preConfirm\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n validateCustomTargetElement(params);\n\n // Replace newlines with <br> in title\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('<br />');\n }\n init(params);\n}\n\n/** @type {SweetAlert} */\nlet currentInstance;\nvar _promise = /*#__PURE__*/new WeakMap();\nclass SweetAlert {\n /**\n * @param {...(SweetAlertOptions | string)} args\n * @this {SweetAlert}\n */\n constructor(...args) {\n /**\n * @type {Promise<SweetAlertResult>}\n */\n _classPrivateFieldInitSpec(this, _promise, /** @type {Promise<SweetAlertResult>} */Promise.resolve({\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n }));\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n currentInstance = this;\n\n // @ts-ignore\n const outerParams = Object.freeze(this.constructor.argsToParams(args));\n\n /** @type {Readonly<SweetAlertOptions>} */\n this.params = outerParams;\n\n /** @type {boolean} */\n this.isAwaitingPromise = false;\n _classPrivateFieldSet2(_promise, this, this._main(currentInstance.params));\n }\n\n /**\n * @param {any} userParams\n * @param {any} mixinParams\n */\n _main(userParams, mixinParams = {}) {\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n if (globalState.currentInstance) {\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(globalState.currentInstance);\n const {\n isAwaitingPromise\n } = globalState.currentInstance;\n globalState.currentInstance._destroy();\n if (!isAwaitingPromise) {\n swalPromiseResolve({\n isDismissed: true\n });\n }\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n globalState.currentInstance = currentInstance;\n const innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams);\n\n // clear the previous timer\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n }\n\n // clear the restore focus timeout\n clearTimeout(globalState.restoreFocusTimeout);\n const domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n }\n\n // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n /**\n * @param {any} onFulfilled\n */\n then(onFulfilled) {\n return _classPrivateFieldGet2(_promise, this).then(onFulfilled);\n }\n\n /**\n * @param {any} onFinally\n */\n finally(onFinally) {\n return _classPrivateFieldGet2(_promise, this).finally(onFinally);\n }\n}\n\n/**\n * @param {SweetAlert} instance\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {Promise<SweetAlertResult>}\n */\nconst swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n /**\n * @param {DismissReason} dismiss\n */\n const dismissWith = dismiss => {\n instance.close({\n isDismissed: true,\n dismiss,\n isConfirmed: false,\n isDenied: false\n });\n };\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n domCache.confirmButton.onclick = () => {\n handleConfirmButtonClick(instance);\n };\n domCache.denyButton.onclick = () => {\n handleDenyButtonClick(instance);\n };\n domCache.cancelButton.onclick = () => {\n handleCancelButtonClick(instance, dismissWith);\n };\n domCache.closeButton.onclick = () => {\n dismissWith(DismissReason.close);\n };\n handlePopupClick(innerParams, domCache, dismissWith);\n addKeydownHandler(globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams);\n\n // Scroll container to top on open (#1247, #1946)\n setTimeout(() => {\n domCache.container.scrollTop = 0;\n });\n });\n};\n\n/**\n * @param {SweetAlertOptions} userParams\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlertOptions}\n */\nconst prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n if (params.animation === false) {\n params.showClass = {\n backdrop: 'swal2-noanimation'\n };\n params.hideClass = {};\n }\n return params;\n};\n\n/**\n * @param {SweetAlert} instance\n * @returns {DomCache}\n */\nconst populateDomCache = instance => {\n const domCache = /** @type {DomCache} */{\n popup: (/** @type {HTMLElement} */getPopup()),\n container: (/** @type {HTMLElement} */getContainer()),\n actions: (/** @type {HTMLElement} */getActions()),\n confirmButton: (/** @type {HTMLElement} */getConfirmButton()),\n denyButton: (/** @type {HTMLElement} */getDenyButton()),\n cancelButton: (/** @type {HTMLElement} */getCancelButton()),\n loader: (/** @type {HTMLElement} */getLoader()),\n closeButton: (/** @type {HTMLElement} */getCloseButton()),\n validationMessage: (/** @type {HTMLElement} */getValidationMessage()),\n progressSteps: (/** @type {HTMLElement} */getProgressSteps())\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n};\n\n/**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {(dismiss: DismissReason) => void} dismissWith\n */\nconst setupTimer = (globalState, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n if (innerParams.timer) {\n globalState.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState.timeout;\n }, innerParams.timer);\n if (innerParams.timerProgressBar && timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(() => {\n if (globalState.timeout && globalState.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(/** @type {number} */innerParams.timer);\n }\n });\n }\n }\n};\n\n/**\n * Initialize focus in the popup:\n *\n * 1. If `toast` is `true`, don't steal focus from the document.\n * 2. Else if there is an [autofocus] element, focus it.\n * 3. Else if `focusConfirm` is `true` and confirm button is visible, focus it.\n * 4. Else if `focusDeny` is `true` and deny button is visible, focus it.\n * 5. Else if `focusCancel` is `true` and cancel button is visible, focus it.\n * 6. Else focus the first focusable element in a popup (if any).\n *\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\nconst initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n // TODO: this is dumb, remove `allowEnterKey` param in the next major version\n if (!callIfFunction(innerParams.allowEnterKey)) {\n warnAboutDeprecation('allowEnterKey');\n blurActiveElement();\n return;\n }\n if (focusAutofocus(domCache)) {\n return;\n }\n if (focusButton(domCache, innerParams)) {\n return;\n }\n setFocus(-1, 1);\n};\n\n/**\n * @param {DomCache} domCache\n * @returns {boolean}\n */\nconst focusAutofocus = domCache => {\n const autofocusElements = Array.from(domCache.popup.querySelectorAll('[autofocus]'));\n for (const autofocusElement of autofocusElements) {\n if (autofocusElement instanceof HTMLElement && isVisible$1(autofocusElement)) {\n autofocusElement.focus();\n return true;\n }\n }\n return false;\n};\n\n/**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\nconst focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible$1(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n if (innerParams.focusCancel && isVisible$1(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n if (innerParams.focusConfirm && isVisible$1(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n return false;\n};\nconst blurActiveElement = () => {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n};\n\n// Assign instance methods from src/instanceMethods/*.js to prototype\nSweetAlert.prototype.disableButtons = disableButtons;\nSweetAlert.prototype.enableButtons = enableButtons;\nSweetAlert.prototype.getInput = getInput;\nSweetAlert.prototype.disableInput = disableInput;\nSweetAlert.prototype.enableInput = enableInput;\nSweetAlert.prototype.hideLoading = hideLoading;\nSweetAlert.prototype.disableLoading = hideLoading;\nSweetAlert.prototype.showValidationMessage = showValidationMessage;\nSweetAlert.prototype.resetValidationMessage = resetValidationMessage;\nSweetAlert.prototype.close = close;\nSweetAlert.prototype.closePopup = close;\nSweetAlert.prototype.closeModal = close;\nSweetAlert.prototype.closeToast = close;\nSweetAlert.prototype.rejectPromise = rejectPromise;\nSweetAlert.prototype.update = update;\nSweetAlert.prototype._destroy = _destroy;\n\n// Assign static methods from src/staticMethods/*.js to constructor\nObject.assign(SweetAlert, staticMethods);\n\n// Proxy to instance methods to constructor, for now, for backwards compatibility\nObject.keys(instanceMethods).forEach(key => {\n /**\n * @param {...(SweetAlertOptions | string | undefined)} args\n * @returns {SweetAlertResult | Promise<SweetAlertResult> | undefined}\n */\n // @ts-ignore: Dynamic property assignment for backwards compatibility\n SweetAlert[key] = function (...args) {\n // @ts-ignore\n if (currentInstance && currentInstance[key]) {\n // @ts-ignore\n return currentInstance[key](...args);\n }\n return undefined;\n };\n});\nSweetAlert.DismissReason = DismissReason;\nSweetAlert.version = '11.26.17';\n\nconst Swal = SweetAlert;\n// @ts-ignore\nSwal.default = Swal;\n\nexport { Swal as default };\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\":root{--swal2-outline: 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-container-padding: 0.625em;--swal2-backdrop: rgba(0, 0, 0, 0.4);--swal2-backdrop-transition: background-color 0.15s;--swal2-width: 32em;--swal2-padding: 0 0 1.25em;--swal2-border: none;--swal2-border-radius: 0.3125rem;--swal2-background: white;--swal2-color: #545454;--swal2-show-animation: swal2-show 0.3s;--swal2-hide-animation: swal2-hide 0.15s forwards;--swal2-icon-zoom: 1;--swal2-icon-animations: true;--swal2-title-padding: 0.8em 1em 0;--swal2-html-container-padding: 1em 1.6em 0.3em;--swal2-input-border: 1px solid #d9d9d9;--swal2-input-border-radius: 0.1875em;--swal2-input-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-background: transparent;--swal2-input-transition: border-color 0.2s, box-shadow 0.2s;--swal2-input-hover-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-focus-border: 1px solid #b4dbed;--swal2-input-focus-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-progress-step-background: #add8e6;--swal2-validation-message-background: #f0f0f0;--swal2-validation-message-color: #666;--swal2-footer-border-color: #eee;--swal2-footer-background: transparent;--swal2-footer-color: inherit;--swal2-timer-progress-bar-background: rgba(0, 0, 0, 0.3);--swal2-close-button-position: initial;--swal2-close-button-inset: auto;--swal2-close-button-font-size: 2.5em;--swal2-close-button-color: #ccc;--swal2-close-button-transition: color 0.2s, box-shadow 0.2s;--swal2-close-button-outline: initial;--swal2-close-button-box-shadow: inset 0 0 0 3px transparent;--swal2-close-button-focus-box-shadow: inset var(--swal2-outline);--swal2-close-button-hover-transform: none;--swal2-actions-justify-content: center;--swal2-actions-width: auto;--swal2-actions-margin: 1.25em auto 0;--swal2-actions-padding: 0;--swal2-actions-border-radius: 0;--swal2-actions-background: transparent;--swal2-action-button-transition: background-color 0.2s, box-shadow 0.2s;--swal2-action-button-hover: black 10%;--swal2-action-button-active: black 10%;--swal2-confirm-button-box-shadow: none;--swal2-confirm-button-border-radius: 0.25em;--swal2-confirm-button-background-color: #7066e0;--swal2-confirm-button-color: #fff;--swal2-deny-button-box-shadow: none;--swal2-deny-button-border-radius: 0.25em;--swal2-deny-button-background-color: #dc3741;--swal2-deny-button-color: #fff;--swal2-cancel-button-box-shadow: none;--swal2-cancel-button-border-radius: 0.25em;--swal2-cancel-button-background-color: #6e7881;--swal2-cancel-button-color: #fff;--swal2-toast-show-animation: swal2-toast-show 0.5s;--swal2-toast-hide-animation: swal2-toast-hide 0.1s forwards;--swal2-toast-border: none;--swal2-toast-box-shadow: 0 0 1px hsl(0deg 0% 0% / 0.075), 0 1px 2px hsl(0deg 0% 0% / 0.075), 1px 2px 4px hsl(0deg 0% 0% / 0.075), 1px 3px 8px hsl(0deg 0% 0% / 0.075), 2px 4px 16px hsl(0deg 0% 0% / 0.075)}[data-swal2-theme=dark]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background: rgba(255, 255, 255, 0.7)}@media(prefers-color-scheme: dark){[data-swal2-theme=auto]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background: rgba(255, 255, 255, 0.7)}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static !important}}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:var(--swal2-container-padding);overflow-x:hidden;transition:var(--swal2-backdrop-transition);-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container)[popover]{width:auto;border:0}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:var(--swal2-width);max-width:100%;padding:var(--swal2-padding);border:var(--swal2-border);border-radius:var(--swal2-border-radius);background:var(--swal2-background);color:var(--swal2-color);font-family:inherit;font-size:1rem;container-name:swal2-popup}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable{cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging{cursor:grabbing}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:var(--swal2-title-padding);color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;overflow-wrap:break-word;cursor:initial}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:var(--swal2-actions-justify-content);width:var(--swal2-actions-width);margin:var(--swal2-actions-margin);padding:var(--swal2-actions-padding);border-radius:var(--swal2-actions-border-radius);background:var(--swal2-actions-background)}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:var(--swal2-action-button-transition);border:none;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border-radius:var(--swal2-confirm-button-border-radius);background:initial;background-color:var(--swal2-confirm-button-background-color);box-shadow:var(--swal2-confirm-button-box-shadow);color:var(--swal2-confirm-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):hover{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):active{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border-radius:var(--swal2-deny-button-border-radius);background:initial;background-color:var(--swal2-deny-button-background-color);box-shadow:var(--swal2-deny-button-box-shadow);color:var(--swal2-deny-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):hover{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):active{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border-radius:var(--swal2-cancel-button-border-radius);background:initial;background-color:var(--swal2-cancel-button-background-color);box-shadow:var(--swal2-cancel-button-box-shadow);color:var(--swal2-cancel-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):hover{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):active{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none;box-shadow:var(--swal2-action-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-styled)[disabled]:not(.swal2-loading){opacity:.4}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid var(--swal2-footer-border-color);background:var(--swal2-footer-background);color:var(--swal2-footer-color);font-size:1em;text-align:center;cursor:initial}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:var(--swal2-border-radius);border-bottom-left-radius:var(--swal2-border-radius)}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:var(--swal2-timer-progress-bar-background)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em;cursor:initial}div:where(.swal2-container) button:where(.swal2-close){position:var(--swal2-close-button-position);inset:var(--swal2-close-button-inset);z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:var(--swal2-close-button-transition);border:none;border-radius:var(--swal2-border-radius);outline:var(--swal2-close-button-outline);background:rgba(0,0,0,0);color:var(--swal2-close-button-color);font-family:monospace;font-size:var(--swal2-close-button-font-size);cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:var(--swal2-close-button-hover-transform);background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:var(--swal2-close-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){z-index:1;justify-content:center;margin:0;padding:var(--swal2-html-container-padding);overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;overflow-wrap:break-word;word-break:break-word;cursor:initial}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:var(--swal2-input-transition);border:var(--swal2-input-border);border-radius:var(--swal2-input-border-radius);background:var(--swal2-input-background);box-shadow:var(--swal2-input-box-shadow);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):hover,div:where(.swal2-container) input:where(.swal2-file):hover,div:where(.swal2-container) textarea:where(.swal2-textarea):hover{box-shadow:var(--swal2-input-hover-box-shadow)}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:var(--swal2-input-focus-border);outline:none;box-shadow:var(--swal2-input-focus-box-shadow)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:var(--swal2-background)}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:var(--swal2-input-background);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:var(--swal2-input-background);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:var(--swal2-background);color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;zoom:var(--swal2-icon-zoom);border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}}div:where(.swal2-icon).swal2-warning{border-color:#f8bb86;color:#f8bb86}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}}div:where(.swal2-icon).swal2-info{border-color:#3fc3ee;color:#3fc3ee}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}}div:where(.swal2-icon).swal2-question{border-color:#87adbd;color:#87adbd}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;border:var(--swal2-toast-border);background:var(--swal2-background);box-shadow:var(--swal2-toast-box-shadow);pointer-events:all}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){height:2em;margin:.5em;font-size:1em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-toast button:where(.swal2-close){grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-toast div:where(.swal2-html-container){margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-toast button:where(.swal2-styled){margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}@container swal2-popup style(--swal2-icon-animations:true){.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}}.swal2-toast.swal2-show{animation:var(--swal2-toast-show-animation)}.swal2-toast.swal2-hide{animation:var(--swal2-toast-hide-animation)}@keyframes swal2-show{0%{transform:translate3d(0, -50px, 0) scale(0.9);opacity:0}100%{transform:translate3d(0, 0, 0) scale(1);opacity:1}}@keyframes swal2-hide{0%{transform:translate3d(0, 0, 0) scale(1);opacity:1}100%{transform:translate3d(0, -50px, 0) scale(0.9);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}\");","import Swal from 'sweetalert2'\nimport '../styles/toast.css'\n\nconst Toast = Swal.mixin({\n toast: true,\n position: 'center',\n iconColor: 'white',\n customClass: {\n popup: 'colored-toast',\n },\n showConfirmButton: false,\n timer: 3000,\n timerProgressBar: true,\n})\n\nexport function showToast({ icon = 'info', title = '' }) {\n return Toast.fire({ icon, title })\n}\n","<template>\n <div class=\"mb-3\">\n <div v-if=\"editable\">\n <div class=\"label-row\">\n <label class=\"form-label fw-bold mb-0\">{{ label }}</label>\n <span v-if=\"templateUrl && previewType !== 'image'\" class=\"template-link ms-2\">\n <a href=\"#\" @click.prevent=\"downloadTemplate\">\n <div v-if=\"downloading\" class=\"d-flex align-items-center\">\n <div class=\"spinner-border spinner-border-sm text-primary me-2\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n </div>\n <span>Downloading...</span>\n </div>\n <div v-else class=\"d-flex align-items-center\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n class=\"me-1\">\n <path d=\"M10 3v10m0 0l-4-4m4 4l4-4M4 17h12\" stroke=\"#2d8cf0\" stroke-width=\"2\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n Download Template\n </div>\n </a>\n </span>\n </div>\n <input ref=\"fileInput\" type=\"file\" :accept=\"computedAccept\" @change=\"onFileChange\" style=\"display: none\" />\n\n <b-button variant=\"outline-secondary\" @click=\"$refs.fileInput.click()\" :disabled=\"uploading\">\n <i class=\"fa fa-upload me-1\"></i>\n {{ uploading ? 'Uploading...' : 'Upload' }}\n </b-button>\n </div>\n <span v-if=\"error\" class=\"error d-block mt-1\">{{ errorMessage }}</span>\n\n <div v-if=\"preview || (value && value.url)\" class=\"mt-3 preview-container\">\n <template v-if=\"currentPreviewType === 'image'\">\n <img :src=\"currentPreviewUrl\" :alt=\"label\" class=\"preview-image\" @click=\"openImageModal\" />\n </template>\n <template v-else>\n <a href=\"#\" @click.prevent=\"openPreview\" class=\"btn btn-sm btn-link p-0\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"me-1\">\n <path d=\"M10 4.5c-5 0-8 5.5-8 5.5s3 5.5 8 5.5 8-5.5 8-5.5-3-5.5-8-5.5zm0 7.5a2 2 0 100-4 2 2 0 000 4z\"\n stroke=\"#888\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n Lihat File{{ currentPreviewType === 'pdf' ? ' (PDF)' : '' }}\n </a>\n </template>\n </div>\n\n <!-- Modal Preview Image -->\n <b-modal v-model=\"showImageModal\" size=\"lg\" centered hide-footer title=\"Preview Gambar\">\n <div class=\"text-center\">\n <img :src=\"currentPreviewUrl\" :alt=\"label\" class=\"modal-preview-image\" />\n </div>\n </b-modal>\n </div>\n</template>\n\n<script>\nimport { uploadFile as apiUploadFile, downloadTemplate as apiDownloadTemplate } from '@/api/profileApi';\n\nexport default {\n name: 'SgFileUploader',\n\n props: {\n label: {\n type: String,\n default: 'Upload File',\n },\n value: {\n type: [Object, String, null],\n default: null,\n },\n error: {\n type: Boolean,\n default: false,\n },\n errorMessage: {\n type: String,\n default: 'Wajib upload file',\n },\n endpoint: {\n type: String,\n default: '/api/v1/file/upload',\n },\n accept: {\n type: String,\n default: 'image/*',\n },\n templateUrl: {\n type: String,\n default: '',\n },\n templateLabel: {\n type: String,\n default: '',\n },\n templateType: {\n type: String,\n default: '',\n },\n wordOnly: {\n type: Boolean,\n default: false,\n },\n fileName: {\n type: String,\n default: null,\n },\n editable: {\n type: Boolean,\n default: true,\n },\n },\n\n data() {\n return {\n preview: null,\n previewType: null,\n uploading: false,\n downloading: false,\n showImageModal: false,\n };\n },\n\n computed: {\n computedAccept() {\n // Jika wordOnly aktif, hanya terima file Word\n if (this.wordOnly) {\n return '.doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n }\n // Jika accept sudah diset, gunakan nilai tersebut\n // Jika tidak, default ke image\n return this.accept;\n },\n\n currentPreviewUrl() {\n if (this.preview) return this.preview;\n if (this.value && this.value.url) return this.value.url;\n return null;\n },\n\n currentPreviewType() {\n if (this.preview) return this.previewType;\n if (this.value && this.value.url) return this.getPreviewType(this.value.url);\n return null;\n },\n },\n\n watch: {\n value: {\n immediate: true,\n handler(newVal) {\n this.setPreviewFromValue(newVal);\n },\n },\n },\n\n methods: {\n getPreviewType(url) {\n if (!url) return 'file';\n if (url.match(/\\.(jpg|jpeg|png|gif|webp|svg|bmp|ico)$/i)) return 'image';\n if (url.match(/\\.pdf$/i)) return 'pdf';\n return 'file';\n },\n\n setPreviewFromValue(val) {\n if (val && typeof val === 'object' && val.url) {\n this.preview = val.url;\n this.previewType = this.getPreviewType(val.url);\n } else if (typeof val === 'string' && val) {\n this.preview = val;\n this.previewType = this.getPreviewType(val);\n } else {\n this.preview = null;\n this.previewType = null;\n }\n },\n\n async onFileChange(e) {\n const file = e.target.files[0];\n if (!file) return;\n\n // Validasi file jika wordOnly aktif\n if (this.wordOnly) {\n if (!this.isValidWordFile(file)) {\n this.resetFile();\n this.$toasted.error('Hanya file Word (.doc, .docx) yang diperbolehkan').goAway();\n return;\n }\n }\n\n // Validasi file image jika accept adalah image/*\n if (this.accept === 'image/*' || this.accept.includes('image')) {\n if (!this.isValidImageFile(file)) {\n this.resetFile();\n this.$toasted.error('Hanya file gambar yang diperbolehkan').goAway();\n return;\n }\n }\n\n // Set preview\n this.setFilePreview(file);\n\n // Upload file\n await this.uploadFile(file);\n },\n\n isValidWordFile(file) {\n const allowedTypes = [\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n ];\n const allowedExtensions = ['.doc', '.docx'];\n const fileExt = file.name.substring(file.name.lastIndexOf('.')).toLowerCase();\n\n return allowedTypes.includes(file.type) || allowedExtensions.includes(fileExt);\n },\n\n isValidImageFile(file) {\n const allowedTypes = [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n 'image/svg+xml',\n 'image/bmp',\n ];\n const allowedExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.svg', '.bmp'];\n const fileExt = file.name.substring(file.name.lastIndexOf('.')).toLowerCase();\n\n return allowedTypes.includes(file.type) || allowedExtensions.includes(fileExt);\n },\n\n setFilePreview(file) {\n if (file.type.startsWith('image/')) {\n this.previewType = 'image';\n this.preview = URL.createObjectURL(file);\n } else if (file.type === 'application/pdf') {\n this.previewType = 'pdf';\n this.preview = URL.createObjectURL(file);\n } else {\n this.previewType = 'file';\n this.preview = null;\n }\n },\n\n async uploadFile(file) {\n const formData = new FormData();\n formData.append('file', file);\n\n this.uploading = true;\n\n try {\n const response = await apiUploadFile(this.endpoint, formData, this.wordOnly, this.fileName);\n this.$emit('input', response.data?.data || null);\n this.$emit('change', response.data?.data || null);\n this.$toasted.success('File berhasil diunggah').goAway();\n } catch (error) {\n this.resetFile();\n this.$toasted.error('Gagal mengunggah file').goAway();\n console.error('Upload error:', error);\n } finally {\n this.uploading = false;\n }\n },\n\n async downloadTemplate() {\n if (!this.templateType) return;\n this.downloading = true;\n try {\n const response = await apiDownloadTemplate(this.templateType);\n const url = response.data.data;\n window.open(url, '_blank', 'noopener,noreferrer');\n } catch (error) {\n this.$toasted.error('Gagal mengunduh template').goAway();\n console.error('Download error:', error);\n } finally {\n this.downloading = false;\n }\n },\n\n resetFile() {\n this.$emit('input', null);\n this.$emit('change', null);\n this.$refs.fileInput.value = '';\n },\n\n openImageModal() {\n this.showImageModal = true;\n },\n\n openPreview() {\n // Untuk file non-image (PDF, Word, dll), buka di tab baru\n window.open(this.currentPreviewUrl, '_blank', 'noopener,noreferrer');\n },\n },\n};\n</script>\n\n<style scoped>\n.label-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n}\n\n.template-link a {\n color: #2d8cf0;\n text-decoration: none;\n font-weight: 500;\n font-size: 0.9em;\n transition: color 0.2s;\n}\n\n.template-link a:hover {\n color: #1c6dcf;\n text-decoration: underline;\n}\n\n.error {\n color: #d9534f;\n font-size: 0.875em;\n margin-top: 4px;\n}\n\n.preview-container {\n padding: 12px;\n background-color: #f8f9fa;\n border-radius: 4px;\n border: 1px solid #dee2e6;\n}\n\n.preview-image {\n max-width: 200px;\n max-height: 200px;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n cursor: pointer;\n transition: transform 0.2s, box-shadow 0.2s;\n}\n\n.preview-image:hover {\n transform: scale(1.05);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n}\n\n.modal-preview-image {\n max-width: 100%;\n max-height: 70vh;\n border-radius: 4px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\n}\n</style>","<template>\n <div v-if=\"value\" class=\"modal fade show d-block modal-lg\" tabindex=\"-1\" style=\"background: rgba(0,0,0,0.5);\">\n <div class=\"modal-dialog modal-dialog-centered modal-cropper\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Foto Profil</h5>\n <button type=\"button\" class=\"btn-close\" @click=\"close\" aria-label=\"Close\"></button>\n </div>\n <div class=\"modal-body\">\n <SgFileUploader v-model=\"localPhoto\" />\n </div>\n <div class=\"modal-footer\">\n <button @click=\"save\" type=\"button\" class=\"btn btn-primary rounded-pill px-4\">\n Simpan\n </button>\n <button @click=\"close\" type=\"button\" class=\"btn btn-outline-secondary rounded-pill px-4\">\n Batal\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport SgFileUploader from '../components/SgFileUploader.vue';\n\nexport default {\n name: 'ImageCropModal',\n components: {\n SgFileUploader\n },\n props: {\n value: {\n type: Boolean,\n default: false\n },\n photo: {\n type: Object,\n default: null\n }\n },\n data() {\n return {\n localPhoto: null\n };\n },\n watch: {\n value(newVal) {\n if (newVal) {\n this.localPhoto = this.photo;\n }\n }\n },\n methods: {\n save() {\n this.$emit('save', this.localPhoto);\n },\n close() {\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n</style>","<template>\n <div class=\"card shadow-sm\">\n <!-- Cover Photo -->\n <div class=\"position-relative\"\n style=\"height: 200px; background: linear-gradient(to right, rgb(11, 171, 224), rgb(6, 10, 107));\">\n </div>\n\n <!-- Profile Section -->\n <div class=\"card-body\">\n <!-- Profile Picture -->\n <div class=\"position-relative\" style=\"margin-top: -190px; margin-bottom: 20px;\">\n <div class=\"d-inline-block bg-white p-2 shadow-lg position-relative\">\n <div class=\"d-flex align-items-center justify-center position-relative\"\n style=\"width: 180px; height: 230px; background: linear-gradient(135deg, #64748b, #64748b);\">\n <img v-if=\"user.photo\" :src=\"user.photo?.url\" alt=\"Profile Picture\"\n style=\"width: 180px; height: 230px; object-fit: cover; object-position: center;\" />\n <img v-else\n :src=\"`https://ui-avatars.com/api/?name=${user.name}&size=180&background=64748b&color=ffffff&rounded=false`\"\n alt=\"Profile Picture\" style=\"width: 180px; height: 230px; object-fit: cover; object-position: center;\" />\n <button class=\"btn btn-light position-absolute rounded-circle border border-white shadow-sm\"\n style=\"bottom: 10px; right: 10px; z-index: 2;\" @click=\"showImageCropModal = true\">\n <i class=\"uil uil-camera\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Name and Title -->\n <div class=\"d-flex justify-content-between align-items-start mb-3\">\n <div>\n <div class=\"d-flex align-items-center gap-2 mb-2\">\n <h2 class=\"mb-0\">{{ user.name }}</h2>\n </div>\n <p class=\"text-dark mb-2\">{{ user?.student?.nim }}</p>\n </div>\n </div>\n\n <!-- Education and Work -->\n <div class=\"mb-4\">\n <div class=\"d-flex align-items-center justify-content-between gap-2 mb-2\">\n <div class=\"d-flex align-items-center gap-2\">\n <div class=\"bg-primary rounded d-flex align-items-center justify-content-center\"\n style=\"width: 30px; height: 30px;\">\n <i class=\"bg-primary rounded\" style=\"width: 20px; height: 20px;\"></i>\n </div>\n <span class=\"fw-medium\">{{ user?.student?.campus?.label }}</span>\n <div class=\"bg-warning rounded d-flex align-items-center justify-content-center\"\n style=\"width: 30px; height: 30px;\">\n <span class=\"text-white fw-bold small\"></span>\n </div>\n <span class=\"fw-medium\">{{ user?.student?.school_year?.label }}</span>\n <div class=\"bg-success rounded d-flex align-items-center justify-content-center\"\n style=\"width: 30px; height: 30px;\">\n <span class=\"text-white fw-bold small\"></span>\n </div>\n <span class=\"fw-medium\">{{ user?.student?.semester?.slug }}</span>\n </div>\n <button class=\"btn btn-outline-primary btn-sm\" @click=\"handleResetPassword\">\n <i class=\"uil uil-lock-alt me-1\"></i>\n Reset Password\n </button>\n </div>\n </div>\n </div>\n\n <!-- Image Crop Modal -->\n <ImageCropModal v-model=\"showImageCropModal\" :photo=\"user.photo\" @save=\"handlePhotoSave\" />\n\n <!-- Reset Password Modal -->\n <div class=\"modal fade\" :class=\"{ 'show d-block': showResetPasswordModal }\" tabindex=\"-1\"\n style=\"background-color: rgba(0,0,0,0.5);\" v-if=\"showResetPasswordModal\">\n <div class=\"modal-dialog modal-dialog-centered\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Reset Password</h5>\n <button type=\"button\" class=\"btn-close\" @click=\"closeResetPasswordModal\"></button>\n </div>\n <div class=\"modal-body\">\n <form @submit.prevent=\"submitResetPassword\">\n <div class=\"mb-3\" v-if=\"user && user.password\">\n <label for=\"current_password\" class=\"form-label\">Old Password</label>\n <div class=\"input-group\">\n <input :type=\"showcurrent_password ? 'text' : 'password'\" class=\"form-control\" id=\"current_password\"\n v-model=\"passwordForm.current_password\" required placeholder=\"Enter old password\">\n <button class=\"btn btn-outline-secondary\" type=\"button\"\n @click=\"showcurrent_password = !showcurrent_password\">\n <i :class=\"showcurrent_password ? 'uil uil-eye-slash' : 'uil uil-eye'\"></i>\n </button>\n </div>\n </div>\n <div class=\"mb-3\">\n <label for=\"new_password\" class=\"form-label\">New Password</label>\n <div class=\"input-group\">\n <input :type=\"shownew_password ? 'text' : 'password'\" class=\"form-control\" id=\"new_password\"\n v-model=\"passwordForm.new_password\" required placeholder=\"Enter new password\" minlength=\"8\">\n <button class=\"btn btn-outline-secondary\" type=\"button\" @click=\"shownew_password = !shownew_password\">\n <i :class=\"shownew_password ? 'uil uil-eye-slash' : 'uil uil-eye'\"></i>\n </button>\n </div>\n <small class=\"text-muted\">Password must be at least 8 characters</small>\n </div>\n <div class=\"mb-3\">\n <label for=\"new_password_confirmation\" class=\"form-label\">Confirm New Password</label>\n <div class=\"input-group\">\n <input :type=\"shownew_password_confirmation ? 'text' : 'password'\" class=\"form-control\"\n id=\"new_password_confirmation\" v-model=\"passwordForm.new_password_confirmation\" required\n placeholder=\"Confirm new password\">\n <button class=\"btn btn-outline-secondary\" type=\"button\"\n @click=\"shownew_password_confirmation = !shownew_password_confirmation\">\n <i :class=\"shownew_password_confirmation ? 'uil uil-eye-slash' : 'uil uil-eye'\"></i>\n </button>\n </div>\n <small\n v-if=\"passwordForm.new_password && passwordForm.new_password_confirmation && passwordForm.new_password !== passwordForm.new_password_confirmation\"\n class=\"text-danger\">Passwords do not match</small>\n </div>\n </form>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeResetPasswordModal\">Cancel</button>\n <button type=\"button\" class=\"btn btn-primary\" @click=\"submitResetPassword\" :disabled=\"!isPasswordFormValid\">\n Reset Password\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport ImageCropModal from './ImageCropModal.vue';\n\nexport default {\n name: 'ProfileHeader',\n components: {\n ImageCropModal\n },\n props: {\n user: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n showImageCropModal: false,\n showResetPasswordModal: false,\n passwordForm: {\n current_password: '',\n new_password: '',\n new_password_confirmation: ''\n },\n showcurrent_password: false,\n shownew_password: false,\n shownew_password_confirmation: false\n };\n },\n computed: {\n isPasswordFormValid() {\n return this.passwordForm.new_password && this.passwordForm.new_password_confirmation && this.passwordForm.new_password == this.passwordForm.new_password_confirmation;\n }\n },\n methods: {\n handlePhotoSave(photo) {\n this.$emit('update-photo', photo);\n this.showImageCropModal = false;\n },\n handleResetPassword() {\n this.showResetPasswordModal = true;\n },\n closeResetPasswordModal() {\n this.showResetPasswordModal = false;\n },\n submitResetPassword() {\n this.passwordForm.pass_available = this.user.password ? true : false;\n this.$emit('reset-password', this.passwordForm);\n this.closeResetPasswordModal();\n }\n }\n};\n</script>","export function isDate(value) {\n return value instanceof Date || Object.prototype.toString.call(value) === '[object Date]';\n}\nexport function toDate(value) {\n if (isDate(value)) {\n return new Date(value.getTime());\n }\n\n if (value == null) {\n return new Date(NaN);\n }\n\n return new Date(value);\n}\nexport function isValidDate(value) {\n return isDate(value) && !isNaN(value.getTime());\n}\nexport function startOfWeek(value) {\n var firstDayOfWeek = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (!(firstDayOfWeek >= 0 && firstDayOfWeek <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6');\n }\n\n var date = toDate(value);\n var day = date.getDay();\n var diff = (day + 7 - firstDayOfWeek) % 7;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nexport function startOfWeekYear(value) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$firstDayOfWeek = _ref.firstDayOfWeek,\n firstDayOfWeek = _ref$firstDayOfWeek === void 0 ? 0 : _ref$firstDayOfWeek,\n _ref$firstWeekContain = _ref.firstWeekContainsDate,\n firstWeekContainsDate = _ref$firstWeekContain === void 0 ? 1 : _ref$firstWeekContain;\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7');\n }\n\n var date = toDate(value);\n var year = date.getFullYear();\n var firstDateOfFirstWeek = new Date(0);\n\n for (var i = year + 1; i >= year - 1; i--) {\n firstDateOfFirstWeek.setFullYear(i, 0, firstWeekContainsDate);\n firstDateOfFirstWeek.setHours(0, 0, 0, 0);\n firstDateOfFirstWeek = startOfWeek(firstDateOfFirstWeek, firstDayOfWeek);\n\n if (date.getTime() >= firstDateOfFirstWeek.getTime()) {\n break;\n }\n }\n\n return firstDateOfFirstWeek;\n}\nexport function getWeek(value) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref2$firstDayOfWeek = _ref2.firstDayOfWeek,\n firstDayOfWeek = _ref2$firstDayOfWeek === void 0 ? 0 : _ref2$firstDayOfWeek,\n _ref2$firstWeekContai = _ref2.firstWeekContainsDate,\n firstWeekContainsDate = _ref2$firstWeekContai === void 0 ? 1 : _ref2$firstWeekContai;\n\n var date = toDate(value);\n var firstDateOfThisWeek = startOfWeek(date, firstDayOfWeek);\n var firstDateOfFirstWeek = startOfWeekYear(date, {\n firstDayOfWeek: firstDayOfWeek,\n firstWeekContainsDate: firstWeekContainsDate\n });\n var diff = firstDateOfThisWeek.getTime() - firstDateOfFirstWeek.getTime();\n return Math.round(diff / (7 * 24 * 3600 * 1000)) + 1;\n}","var locale = {\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n weekdaysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n firstDayOfWeek: 0,\n firstWeekContainsDate: 1\n};\nexport default locale;","import { toDate, isValidDate, getWeek } from './util';\nimport defaultLocale from './locale/en';\nvar REGEX_FORMAT = /\\[([^\\]]+)]|YYYY|YY?|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|m{1,2}|s{1,2}|Z{1,2}|S{1,3}|w{1,2}|x|X|a|A/g;\n\nfunction pad(val) {\n var len = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n var output = \"\".concat(Math.abs(val));\n var sign = val < 0 ? '-' : '';\n\n while (output.length < len) {\n output = \"0\".concat(output);\n }\n\n return sign + output;\n}\n\nfunction getOffset(date) {\n return Math.round(date.getTimezoneOffset() / 15) * 15;\n}\n\nfunction formatTimezone(offset) {\n var delimeter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n return sign + pad(hours, 2) + delimeter + pad(minutes, 2);\n}\n\nvar meridiem = function meridiem(h, _, isLowercase) {\n var word = h < 12 ? 'AM' : 'PM';\n return isLowercase ? word.toLocaleLowerCase() : word;\n};\n\nvar formatFlags = {\n Y: function Y(date) {\n var y = date.getFullYear();\n return y <= 9999 ? \"\".concat(y) : \"+\".concat(y);\n },\n // Year: 00, 01, ..., 99\n YY: function YY(date) {\n return pad(date.getFullYear(), 4).substr(2);\n },\n // Year: 1900, 1901, ..., 2099\n YYYY: function YYYY(date) {\n return pad(date.getFullYear(), 4);\n },\n // Month: 1, 2, ..., 12\n M: function M(date) {\n return date.getMonth() + 1;\n },\n // Month: 01, 02, ..., 12\n MM: function MM(date) {\n return pad(date.getMonth() + 1, 2);\n },\n MMM: function MMM(date, locale) {\n return locale.monthsShort[date.getMonth()];\n },\n MMMM: function MMMM(date, locale) {\n return locale.months[date.getMonth()];\n },\n // Day of month: 1, 2, ..., 31\n D: function D(date) {\n return date.getDate();\n },\n // Day of month: 01, 02, ..., 31\n DD: function DD(date) {\n return pad(date.getDate(), 2);\n },\n // Hour: 0, 1, ... 23\n H: function H(date) {\n return date.getHours();\n },\n // Hour: 00, 01, ..., 23\n HH: function HH(date) {\n return pad(date.getHours(), 2);\n },\n // Hour: 1, 2, ..., 12\n h: function h(date) {\n var hours = date.getHours();\n\n if (hours === 0) {\n return 12;\n }\n\n if (hours > 12) {\n return hours % 12;\n }\n\n return hours;\n },\n // Hour: 01, 02, ..., 12\n hh: function hh() {\n var hours = formatFlags.h.apply(formatFlags, arguments);\n return pad(hours, 2);\n },\n // Minute: 0, 1, ..., 59\n m: function m(date) {\n return date.getMinutes();\n },\n // Minute: 00, 01, ..., 59\n mm: function mm(date) {\n return pad(date.getMinutes(), 2);\n },\n // Second: 0, 1, ..., 59\n s: function s(date) {\n return date.getSeconds();\n },\n // Second: 00, 01, ..., 59\n ss: function ss(date) {\n return pad(date.getSeconds(), 2);\n },\n // 1/10 of second: 0, 1, ..., 9\n S: function S(date) {\n return Math.floor(date.getMilliseconds() / 100);\n },\n // 1/100 of second: 00, 01, ..., 99\n SS: function SS(date) {\n return pad(Math.floor(date.getMilliseconds() / 10), 2);\n },\n // Millisecond: 000, 001, ..., 999\n SSS: function SSS(date) {\n return pad(date.getMilliseconds(), 3);\n },\n // Day of week: 0, 1, ..., 6\n d: function d(date) {\n return date.getDay();\n },\n // Day of week: 'Su', 'Mo', ..., 'Sa'\n dd: function dd(date, locale) {\n return locale.weekdaysMin[date.getDay()];\n },\n // Day of week: 'Sun', 'Mon',..., 'Sat'\n ddd: function ddd(date, locale) {\n return locale.weekdaysShort[date.getDay()];\n },\n // Day of week: 'Sunday', 'Monday', ...,'Saturday'\n dddd: function dddd(date, locale) {\n return locale.weekdays[date.getDay()];\n },\n // AM, PM\n A: function A(date, locale) {\n var meridiemFunc = locale.meridiem || meridiem;\n return meridiemFunc(date.getHours(), date.getMinutes(), false);\n },\n // am, pm\n a: function a(date, locale) {\n var meridiemFunc = locale.meridiem || meridiem;\n return meridiemFunc(date.getHours(), date.getMinutes(), true);\n },\n // Timezone: -01:00, +00:00, ... +12:00\n Z: function Z(date) {\n return formatTimezone(getOffset(date), ':');\n },\n // Timezone: -0100, +0000, ... +1200\n ZZ: function ZZ(date) {\n return formatTimezone(getOffset(date));\n },\n // Seconds timestamp: 512969520\n X: function X(date) {\n return Math.floor(date.getTime() / 1000);\n },\n // Milliseconds timestamp: 512969520900\n x: function x(date) {\n return date.getTime();\n },\n w: function w(date, locale) {\n return getWeek(date, {\n firstDayOfWeek: locale.firstDayOfWeek,\n firstWeekContainsDate: locale.firstWeekContainsDate\n });\n },\n ww: function ww(date, locale) {\n return pad(formatFlags.w(date, locale), 2);\n }\n};\nexport function format(val, str) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var formatStr = str ? String(str) : 'YYYY-MM-DDTHH:mm:ss.SSSZ';\n var date = toDate(val);\n\n if (!isValidDate(date)) {\n return 'Invalid Date';\n }\n\n var locale = options.locale || defaultLocale;\n return formatStr.replace(REGEX_FORMAT, function (match, p1) {\n if (p1) {\n return p1;\n }\n\n if (typeof formatFlags[match] === 'function') {\n return \"\".concat(formatFlags[match](date, locale));\n }\n\n return match;\n });\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport defaultLocale from './locale/en';\nimport { startOfWeekYear } from './util';\nvar formattingTokens = /(\\[[^\\[]*\\])|(MM?M?M?|Do|DD?|ddd?d?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|S{1,3}|x|X|ZZ?|.)/g;\nvar match1 = /\\d/; // 0 - 9\n\nvar match2 = /\\d\\d/; // 00 - 99\n\nvar match3 = /\\d{3}/; // 000 - 999\n\nvar match4 = /\\d{4}/; // 0000 - 9999\n\nvar match1to2 = /\\d\\d?/; // 0 - 99\n\nvar matchShortOffset = /[+-]\\d\\d:?\\d\\d/; // +00:00 -00:00 +0000 or -0000\n\nvar matchSigned = /[+-]?\\d+/; // -inf - inf\n\nvar matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n// const matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i; // Word\n\nvar YEAR = 'year';\nvar MONTH = 'month';\nvar DAY = 'day';\nvar HOUR = 'hour';\nvar MINUTE = 'minute';\nvar SECOND = 'second';\nvar MILLISECOND = 'millisecond';\nvar parseFlags = {};\n\nvar addParseFlag = function addParseFlag(token, regex, callback) {\n var tokens = Array.isArray(token) ? token : [token];\n var func;\n\n if (typeof callback === 'string') {\n func = function func(input) {\n var value = parseInt(input, 10);\n return _defineProperty({}, callback, value);\n };\n } else {\n func = callback;\n }\n\n tokens.forEach(function (key) {\n parseFlags[key] = [regex, func];\n });\n};\n\nvar escapeStringRegExp = function escapeStringRegExp(str) {\n return str.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n};\n\nvar matchWordRegExp = function matchWordRegExp(localeKey) {\n return function (locale) {\n var array = locale[localeKey];\n\n if (!Array.isArray(array)) {\n throw new Error(\"Locale[\".concat(localeKey, \"] need an array\"));\n }\n\n return new RegExp(array.map(escapeStringRegExp).join('|'));\n };\n};\n\nvar matchWordCallback = function matchWordCallback(localeKey, key) {\n return function (input, locale) {\n var array = locale[localeKey];\n\n if (!Array.isArray(array)) {\n throw new Error(\"Locale[\".concat(localeKey, \"] need an array\"));\n }\n\n var index = array.indexOf(input);\n\n if (index < 0) {\n throw new Error('Invalid Word');\n }\n\n return _defineProperty({}, key, index);\n };\n};\n\naddParseFlag('Y', matchSigned, YEAR);\naddParseFlag('YY', match2, function (input) {\n var year = new Date().getFullYear();\n var cent = Math.floor(year / 100);\n var value = parseInt(input, 10);\n value = (value > 68 ? cent - 1 : cent) * 100 + value;\n return _defineProperty({}, YEAR, value);\n});\naddParseFlag('YYYY', match4, YEAR);\naddParseFlag('M', match1to2, function (input) {\n return _defineProperty({}, MONTH, parseInt(input, 10) - 1);\n});\naddParseFlag('MM', match2, function (input) {\n return _defineProperty({}, MONTH, parseInt(input, 10) - 1);\n});\naddParseFlag('MMM', matchWordRegExp('monthsShort'), matchWordCallback('monthsShort', MONTH));\naddParseFlag('MMMM', matchWordRegExp('months'), matchWordCallback('months', MONTH));\naddParseFlag('D', match1to2, DAY);\naddParseFlag('DD', match2, DAY);\naddParseFlag(['H', 'h'], match1to2, HOUR);\naddParseFlag(['HH', 'hh'], match2, HOUR);\naddParseFlag('m', match1to2, MINUTE);\naddParseFlag('mm', match2, MINUTE);\naddParseFlag('s', match1to2, SECOND);\naddParseFlag('ss', match2, SECOND);\naddParseFlag('S', match1, function (input) {\n return _defineProperty({}, MILLISECOND, parseInt(input, 10) * 100);\n});\naddParseFlag('SS', match2, function (input) {\n return _defineProperty({}, MILLISECOND, parseInt(input, 10) * 10);\n});\naddParseFlag('SSS', match3, MILLISECOND);\n\nfunction matchMeridiem(locale) {\n return locale.meridiemParse || /[ap]\\.?m?\\.?/i;\n}\n\nfunction defaultIsPM(input) {\n return \"\".concat(input).toLowerCase().charAt(0) === 'p';\n}\n\naddParseFlag(['A', 'a'], matchMeridiem, function (input, locale) {\n var isPM = typeof locale.isPM === 'function' ? locale.isPM(input) : defaultIsPM(input);\n return {\n isPM: isPM\n };\n});\n\nfunction offsetFromString(str) {\n var _ref8 = str.match(/([+-]|\\d\\d)/g) || ['-', '0', '0'],\n _ref9 = _slicedToArray(_ref8, 3),\n symbol = _ref9[0],\n hour = _ref9[1],\n minute = _ref9[2];\n\n var minutes = parseInt(hour, 10) * 60 + parseInt(minute, 10);\n\n if (minutes === 0) {\n return 0;\n }\n\n return symbol === '+' ? -minutes : +minutes;\n}\n\naddParseFlag(['Z', 'ZZ'], matchShortOffset, function (input) {\n return {\n offset: offsetFromString(input)\n };\n});\naddParseFlag('x', matchSigned, function (input) {\n return {\n date: new Date(parseInt(input, 10))\n };\n});\naddParseFlag('X', matchTimestamp, function (input) {\n return {\n date: new Date(parseFloat(input) * 1000)\n };\n});\naddParseFlag('d', match1, 'weekday');\naddParseFlag('dd', matchWordRegExp('weekdaysMin'), matchWordCallback('weekdaysMin', 'weekday'));\naddParseFlag('ddd', matchWordRegExp('weekdaysShort'), matchWordCallback('weekdaysShort', 'weekday'));\naddParseFlag('dddd', matchWordRegExp('weekdays'), matchWordCallback('weekdays', 'weekday'));\naddParseFlag('w', match1to2, 'week');\naddParseFlag('ww', match2, 'week');\n\nfunction to24hour(hour, isPM) {\n if (hour !== undefined && isPM !== undefined) {\n if (isPM) {\n if (hour < 12) {\n return hour + 12;\n }\n } else if (hour === 12) {\n return 0;\n }\n }\n\n return hour;\n}\n\nfunction getFullInputArray(input) {\n var backupDate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();\n var result = [0, 0, 1, 0, 0, 0, 0];\n var backupArr = [backupDate.getFullYear(), backupDate.getMonth(), backupDate.getDate(), backupDate.getHours(), backupDate.getMinutes(), backupDate.getSeconds(), backupDate.getMilliseconds()];\n var useBackup = true;\n\n for (var i = 0; i < 7; i++) {\n if (input[i] === undefined) {\n result[i] = useBackup ? backupArr[i] : result[i];\n } else {\n result[i] = input[i];\n useBackup = false;\n }\n }\n\n return result;\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n var date;\n\n if (y < 100 && y >= 0) {\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate() {\n var date;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var y = args[0];\n\n if (y < 100 && y >= 0) {\n args[0] += 400;\n date = new Date(Date.UTC.apply(Date, args)); // eslint-disable-next-line no-restricted-globals\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(Date, args));\n }\n\n return date;\n}\n\nfunction makeParser(dateString, format, locale) {\n var tokens = format.match(formattingTokens);\n\n if (!tokens) {\n throw new Error();\n }\n\n var length = tokens.length;\n var mark = {};\n\n for (var i = 0; i < length; i += 1) {\n var token = tokens[i];\n var parseTo = parseFlags[token];\n\n if (!parseTo) {\n var word = token.replace(/^\\[|\\]$/g, '');\n\n if (dateString.indexOf(word) === 0) {\n dateString = dateString.substr(word.length);\n } else {\n throw new Error('not match');\n }\n } else {\n var regex = typeof parseTo[0] === 'function' ? parseTo[0](locale) : parseTo[0];\n var parser = parseTo[1];\n var value = (regex.exec(dateString) || [])[0];\n var obj = parser(value, locale);\n mark = _objectSpread({}, mark, {}, obj);\n dateString = dateString.replace(value, '');\n }\n }\n\n return mark;\n}\n\nexport function parse(str, format) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n try {\n var _options$locale = options.locale,\n _locale = _options$locale === void 0 ? defaultLocale : _options$locale,\n _options$backupDate = options.backupDate,\n backupDate = _options$backupDate === void 0 ? new Date() : _options$backupDate;\n\n var parseResult = makeParser(str, format, _locale);\n var year = parseResult.year,\n month = parseResult.month,\n day = parseResult.day,\n hour = parseResult.hour,\n minute = parseResult.minute,\n second = parseResult.second,\n millisecond = parseResult.millisecond,\n isPM = parseResult.isPM,\n date = parseResult.date,\n offset = parseResult.offset,\n weekday = parseResult.weekday,\n week = parseResult.week;\n\n if (date) {\n return date;\n }\n\n var inputArray = [year, month, day, hour, minute, second, millisecond];\n inputArray[3] = to24hour(inputArray[3], isPM); // check week\n\n if (week !== undefined && month === undefined && day === undefined) {\n // new Date(year, 3) make sure in current year\n var firstDate = startOfWeekYear(year === undefined ? backupDate : new Date(year, 3), {\n firstDayOfWeek: _locale.firstDayOfWeek,\n firstWeekContainsDate: _locale.firstWeekContainsDate\n });\n return new Date(firstDate.getTime() + (week - 1) * 7 * 24 * 3600 * 1000);\n }\n\n var parsedDate;\n var result = getFullInputArray(inputArray, backupDate);\n\n if (offset !== undefined) {\n result[6] += offset * 60 * 1000;\n parsedDate = createUTCDate.apply(void 0, _toConsumableArray(result));\n } else {\n parsedDate = createDate.apply(void 0, _toConsumableArray(result));\n } // check weekday\n\n\n if (weekday !== undefined && parsedDate.getDay() !== weekday) {\n return new Date(NaN);\n }\n\n return parsedDate;\n } catch (e) {\n return new Date(NaN);\n }\n}","import { getWeek, format, parse } from 'date-format-parse';\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _extends$1() {\n return _extends$1 = Object.assign || function (a) {\n for (var b, c = 1; c < arguments.length; c++) {\n for (var d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && (a[d] = b[d]);\n }\n }\n\n return a;\n }, _extends$1.apply(this, arguments);\n}\n\nvar normalMerge = [\"attrs\", \"props\", \"domProps\"],\n toArrayMerge = [\"class\", \"style\", \"directives\"],\n functionalMerge = [\"on\", \"nativeOn\"],\n mergeJsxProps = function mergeJsxProps(a) {\n return a.reduce(function (c, a) {\n for (var b in a) {\n if (!c[b]) c[b] = a[b];else if (-1 !== normalMerge.indexOf(b)) c[b] = _extends$1({}, c[b], a[b]);else if (-1 !== toArrayMerge.indexOf(b)) {\n var d = c[b] instanceof Array ? c[b] : [c[b]],\n e = a[b] instanceof Array ? a[b] : [a[b]];\n c[b] = d.concat(e);\n } else if (-1 !== functionalMerge.indexOf(b)) {\n for (var f in a[b]) {\n if (c[b][f]) {\n var g = c[b][f] instanceof Array ? c[b][f] : [c[b][f]],\n h = a[b][f] instanceof Array ? a[b][f] : [a[b][f]];\n c[b][f] = g.concat(h);\n } else c[b][f] = a[b][f];\n }\n } else if (\"hook\" == b) for (var i in a[b]) {\n c[b][i] = c[b][i] ? mergeFn(c[b][i], a[b][i]) : a[b][i];\n } else c[b] = a[b];\n }\n\n return c;\n }, {});\n},\n mergeFn = function mergeFn(a, b) {\n return function () {\n a && a.apply(this, arguments), b && b.apply(this, arguments);\n };\n};\n\nvar helper = mergeJsxProps;\n\n// new Date(10, 0, 1) The year from 0 to 99 will be incremented by 1900 automatically.\nfunction createDate(y) {\n var M = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var d = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var h = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var m = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var s = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n var ms = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;\n var date = new Date(y, M, d, h, m, s, ms);\n\n if (y < 100 && y >= 0) {\n date.setFullYear(y);\n }\n\n return date;\n}\nfunction isValidDate(date) {\n return date instanceof Date && !isNaN(date);\n}\nfunction isValidRangeDate(date) {\n return Array.isArray(date) && date.length === 2 && date.every(isValidDate) && date[0] <= date[1];\n}\nfunction isValidDates(dates) {\n return Array.isArray(dates) && dates.every(isValidDate);\n}\nfunction getValidDate(value) {\n var date = new Date(value);\n\n if (isValidDate(date)) {\n return date;\n }\n\n for (var _len = arguments.length, backup = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n backup[_key - 1] = arguments[_key];\n }\n\n if (backup.length) {\n return getValidDate.apply(void 0, backup);\n }\n\n return new Date();\n}\nfunction startOfYear(value) {\n var date = new Date(value);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction startOfMonth(value) {\n var date = new Date(value);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction startOfDay(value) {\n var date = new Date(value);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction getCalendar(_ref) {\n var firstDayOfWeek = _ref.firstDayOfWeek,\n year = _ref.year,\n month = _ref.month;\n var arr = []; // change to the last day of the last month\n\n var calendar = createDate(year, month, 0);\n var lastDayInLastMonth = calendar.getDate(); // getDay() 0 is Sunday, 1 is Monday\n\n var firstDayInLastMonth = lastDayInLastMonth - (calendar.getDay() + 7 - firstDayOfWeek) % 7;\n\n for (var i = firstDayInLastMonth; i <= lastDayInLastMonth; i++) {\n arr.push(createDate(year, month, i - lastDayInLastMonth));\n } // change to the last day of the current month\n\n\n calendar.setMonth(month + 1, 0);\n var lastDayInCurrentMonth = calendar.getDate();\n\n for (var _i = 1; _i <= lastDayInCurrentMonth; _i++) {\n arr.push(createDate(year, month, _i));\n }\n\n var lastMonthLength = lastDayInLastMonth - firstDayInLastMonth + 1;\n var nextMonthLength = 6 * 7 - lastMonthLength - lastDayInCurrentMonth;\n\n for (var _i2 = 1; _i2 <= nextMonthLength; _i2++) {\n arr.push(createDate(year, month, lastDayInCurrentMonth + _i2));\n }\n\n return arr;\n}\nfunction setMonth(dirtyDate, dirtyMonth) {\n var date = new Date(dirtyDate);\n var month = typeof dirtyMonth === 'function' ? dirtyMonth(date.getMonth()) : Number(dirtyMonth);\n var year = date.getFullYear();\n var daysInMonth = createDate(year, month + 1, 0).getDate();\n var day = date.getDate();\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}\nfunction setYear(dirtyDate, dirtyYear) {\n var date = new Date(dirtyDate);\n var year = typeof dirtyYear === 'function' ? dirtyYear(date.getFullYear()) : dirtyYear;\n date.setFullYear(year);\n return date;\n}\nfunction assignTime(target, source) {\n var date = new Date(target);\n var time = new Date(source);\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds());\n return date;\n}\n\n/**\n * chunk the array\n * @param {Array} arr\n * @param {Number} size\n */\nfunction chunk(arr, size) {\n if (!Array.isArray(arr)) {\n return [];\n }\n\n var result = [];\n var len = arr.length;\n var i = 0;\n size = size || len;\n\n while (i < len) {\n result.push(arr.slice(i, i += size));\n }\n\n return result;\n}\n/**\n * isObject\n * @param {*} obj\n * @returns {Boolean}\n */\n\nfunction isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * pick object\n * @param {Object} obj\n * @param {Array|String} props\n */\n\nfunction pick(obj, props) {\n if (!isObject(obj)) return {};\n\n if (!Array.isArray(props)) {\n props = [props];\n }\n\n var res = {};\n props.forEach(function (prop) {\n if (prop in obj) {\n res[prop] = obj[prop];\n }\n });\n return res;\n}\n/**\n * deep merge two object without merging array\n * @param {object} target\n * @param {object} source\n */\n\nfunction mergeDeep(target, source) {\n if (!isObject(target)) {\n return {};\n }\n\n var result = target;\n\n if (isObject(source)) {\n Object.keys(source).forEach(function (key) {\n var value = source[key];\n\n if (isObject(value) && isObject(target[key])) {\n value = mergeDeep(target[key], value);\n }\n\n result = _objectSpread2({}, result, _defineProperty({}, key, value));\n });\n }\n\n return result;\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 en = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar locale = {\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n weekdaysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n firstDayOfWeek: 0,\n firstWeekContainsDate: 1\n};\nvar _default = locale;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n});\n\nvar en$1 = unwrapExports(en);\n\nvar lang = {\n formatLocale: en$1,\n yearFormat: 'YYYY',\n monthFormat: 'MMM',\n monthBeforeYear: true\n};\n\nvar defaultLocale = 'en';\nvar locales = {};\nlocales[defaultLocale] = lang;\nfunction locale(name, object, isLocal) {\n if (typeof name !== 'string') return locales[defaultLocale];\n var l = defaultLocale;\n\n if (locales[name]) {\n l = name;\n }\n\n if (object) {\n locales[name] = object;\n l = name;\n }\n\n if (!isLocal) {\n defaultLocale = l;\n }\n\n return locales[name] || locales[defaultLocale];\n}\n/**\n * get locale object\n * @param {string} name lang\n */\n\nfunction getLocale(name) {\n return locale(name, null, true);\n}\n\n/* istanbul ignore file */\nfunction rafThrottle(fn) {\n var isRunning = false;\n return function fnBinfRaf() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (isRunning) return;\n isRunning = true;\n requestAnimationFrame(function () {\n isRunning = false;\n fn.apply(_this, args);\n });\n };\n}\n\n/**\n * get the hidden element width, height\n * @param {HTMLElement} element dom\n */\nfunction getPopupElementSize(element) {\n var originalDisplay = element.style.display;\n var originalVisibility = element.style.visibility;\n element.style.display = 'block';\n element.style.visibility = 'hidden';\n var styles = window.getComputedStyle(element);\n var width = element.offsetWidth + parseInt(styles.marginLeft, 10) + parseInt(styles.marginRight, 10);\n var height = element.offsetHeight + parseInt(styles.marginTop, 10) + parseInt(styles.marginBottom, 10);\n element.style.display = originalDisplay;\n element.style.visibility = originalVisibility;\n return {\n width: width,\n height: height\n };\n}\n/**\n * get the popup position\n * @param {HTMLElement} el relative element\n * @param {Number} targetWidth target element's width\n * @param {Number} targetHeight target element's height\n * @param {Boolean} fixed\n */\n\nfunction getRelativePosition(el, targetWidth, targetHeight, fixed) {\n var left = 0;\n var top = 0;\n var offsetX = 0;\n var offsetY = 0;\n var relativeRect = el.getBoundingClientRect();\n var dw = document.documentElement.clientWidth;\n var dh = document.documentElement.clientHeight;\n\n if (fixed) {\n offsetX = window.pageXOffset + relativeRect.left;\n offsetY = window.pageYOffset + relativeRect.top;\n }\n\n if (dw - relativeRect.left < targetWidth && relativeRect.right < targetWidth) {\n left = offsetX - relativeRect.left + 1;\n } else if (relativeRect.left + relativeRect.width / 2 <= dw / 2) {\n left = offsetX;\n } else {\n left = offsetX + relativeRect.width - targetWidth;\n }\n\n if (relativeRect.top <= targetHeight && dh - relativeRect.bottom <= targetHeight) {\n top = offsetY + dh - relativeRect.top - targetHeight;\n } else if (relativeRect.top + relativeRect.height / 2 <= dh / 2) {\n top = offsetY + relativeRect.height;\n } else {\n top = offsetY - targetHeight;\n }\n\n return {\n left: \"\".concat(left, \"px\"),\n top: \"\".concat(top, \"px\")\n };\n}\nfunction getScrollParent(node) {\n var until = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.body;\n\n if (!node || node === until) {\n return null;\n }\n\n var style = function style(value, prop) {\n return getComputedStyle(value, null).getPropertyValue(prop);\n };\n\n var regex = /(auto|scroll)/;\n var scroll = regex.test(style(node, 'overflow') + style(node, 'overflow-y') + style(node, 'overflow-x'));\n return scroll ? node : getScrollParent(node.parentNode, until);\n}\n\n//\nvar script = {\n name: 'Popup',\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n visible: {\n type: Boolean,\n default: false\n },\n appendToBody: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n top: '',\n left: ''\n };\n },\n watch: {\n visible: {\n immediate: true,\n handler: function handler(val) {\n var _this = this;\n\n this.$nextTick(function () {\n if (val) {\n _this.displayPopup();\n }\n });\n }\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n if (this.appendToBody) {\n document.body.appendChild(this.$el);\n }\n\n this._clickoutEvent = 'ontouchend' in document ? 'touchstart' : 'mousedown';\n document.addEventListener(this._clickoutEvent, this.handleClickOutside); // change the popup position when resize or scroll\n\n var relativeElement = this.$parent.$el;\n this._displayPopup = rafThrottle(function () {\n return _this2.displayPopup();\n });\n this._scrollParent = getScrollParent(relativeElement) || window;\n\n this._scrollParent.addEventListener('scroll', this._displayPopup);\n\n window.addEventListener('resize', this._displayPopup);\n },\n beforeDestroy: function beforeDestroy() {\n if (this.appendToBody && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el);\n }\n\n document.removeEventListener(this._clickoutEvent, this.handleClickOutside);\n\n this._scrollParent.removeEventListener('scroll', this._displayPopup);\n\n window.removeEventListener('resize', this._displayPopup);\n },\n methods: {\n handleClickOutside: function handleClickOutside(evt) {\n if (!this.visible) return;\n var target = evt.target;\n var el = this.$el;\n\n if (el && !el.contains(target)) {\n this.$emit('clickoutside', evt);\n }\n },\n displayPopup: function displayPopup() {\n if (!this.visible) return;\n var popup = this.$el;\n var relativeElement = this.$parent.$el;\n var appendToBody = this.appendToBody;\n\n if (!this._popupRect) {\n this._popupRect = getPopupElementSize(popup);\n }\n\n var _this$_popupRect = this._popupRect,\n width = _this$_popupRect.width,\n height = _this$_popupRect.height;\n\n var _getRelativePosition = getRelativePosition(relativeElement, width, height, appendToBody),\n left = _getRelativePosition.left,\n top = _getRelativePosition.top;\n\n this.left = left;\n this.top = top;\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = 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\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\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 ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('transition', {\n attrs: {\n \"name\": _vm.prefixClass + \"-zoom-in-down\"\n }\n }, [_vm.visible ? _c('div', {\n class: _vm.prefixClass + \"-datepicker-main \" + _vm.prefixClass + \"-datepicker-popup\",\n style: {\n top: _vm.top,\n left: _vm.left,\n position: 'absolute'\n }\n }, [_vm._t(\"default\")], 2) : _vm._e()]);\n};\n\nvar __vue_staticRenderFns__ = [];\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\n/* script */\n\n/* template */\nvar __vue_render__$1 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('svg', {\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 1024 1024\",\n \"width\": \"1em\",\n \"height\": \"1em\"\n }\n }, [_c('path', {\n attrs: {\n \"d\": \"M940.218182 107.054545h-209.454546V46.545455h-65.163636v60.50909H363.054545V46.545455H297.890909v60.50909H83.781818c-18.618182 0-32.581818 13.963636-32.581818 32.581819v805.236363c0 18.618182 13.963636 32.581818 32.581818 32.581818h861.090909c18.618182 0 32.581818-13.963636 32.581818-32.581818V139.636364c-4.654545-18.618182-18.618182-32.581818-37.236363-32.581819zM297.890909 172.218182V232.727273h65.163636V172.218182h307.2V232.727273h65.163637V172.218182h176.872727v204.8H116.363636V172.218182h181.527273zM116.363636 912.290909V442.181818h795.927273v470.109091H116.363636z\"\n }\n })]);\n};\n\nvar __vue_staticRenderFns__$1 = [];\n/* style */\n\nvar __vue_inject_styles__$1 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$1 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$1 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$1 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$1 = normalizeComponent({\n render: __vue_render__$1,\n staticRenderFns: __vue_staticRenderFns__$1\n}, __vue_inject_styles__$1, {}, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, undefined, undefined, undefined);\n\n/* script */\n\n/* template */\nvar __vue_render__$2 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('svg', {\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 24 24\",\n \"width\": \"1em\",\n \"height\": \"1em\"\n }\n }, [_c('path', {\n attrs: {\n \"d\": \"M0 0h24v24H0z\",\n \"fill\": \"none\"\n }\n }), _vm._v(\" \"), _c('path', {\n attrs: {\n \"d\": \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }\n }), _vm._v(\" \"), _c('path', {\n attrs: {\n \"d\": \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n }\n })]);\n};\n\nvar __vue_staticRenderFns__$2 = [];\n/* style */\n\nvar __vue_inject_styles__$2 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$2 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$2 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$2 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$2 = normalizeComponent({\n render: __vue_render__$2,\n staticRenderFns: __vue_staticRenderFns__$2\n}, __vue_inject_styles__$2, {}, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, false, undefined, undefined, undefined);\n\n/* script */\n\n/* template */\nvar __vue_render__$3 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('svg', {\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 1024 1024\",\n \"width\": \"1em\",\n \"height\": \"1em\"\n }\n }, [_c('path', {\n attrs: {\n \"d\": \"M810.005333 274.005333l-237.994667 237.994667 237.994667 237.994667-60.010667 60.010667-237.994667-237.994667-237.994667 237.994667-60.010667-60.010667 237.994667-237.994667-237.994667-237.994667 60.010667-60.010667 237.994667 237.994667 237.994667-237.994667z\"\n }\n })]);\n};\n\nvar __vue_staticRenderFns__$3 = [];\n/* style */\n\nvar __vue_inject_styles__$3 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$3 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$3 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$3 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$3 = normalizeComponent({\n render: __vue_render__$3,\n staticRenderFns: __vue_staticRenderFns__$3\n}, __vue_inject_styles__$3, {}, __vue_scope_id__$3, __vue_is_functional_template__$3, __vue_module_identifier__$3, false, undefined, undefined, undefined);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar script$1 = {\n props: {\n type: String,\n disabled: Boolean\n },\n inject: {\n prefixClass: {\n default: 'mx'\n }\n }\n};\n\n/* script */\nvar __vue_script__$1 = script$1;\n/* template */\n\nvar __vue_render__$4 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('button', _vm._g({\n class: [_vm.prefixClass + \"-btn \" + _vm.prefixClass + \"-btn-text \" + _vm.prefixClass + \"-btn-icon-\" + _vm.type, {\n disabled: _vm.disabled\n }],\n attrs: {\n \"type\": \"button\",\n \"disabled\": _vm.disabled\n }\n }, _vm.$listeners), [_c('i', {\n class: _vm.prefixClass + \"-icon-\" + _vm.type\n })]);\n};\n\nvar __vue_staticRenderFns__$4 = [];\n/* style */\n\nvar __vue_inject_styles__$4 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$4 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$4 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$4 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$4 = normalizeComponent({\n render: __vue_render__$4,\n staticRenderFns: __vue_staticRenderFns__$4\n}, __vue_inject_styles__$4, __vue_script__$1, __vue_scope_id__$4, __vue_is_functional_template__$4, __vue_module_identifier__$4, false, undefined, undefined, undefined);\n\nvar script$2 = {\n name: 'TableDate',\n components: {\n IconButton: __vue_component__$4\n },\n inject: {\n getLocale: {\n default: function _default() {\n return getLocale;\n }\n },\n getWeek: {\n default: function _default() {\n return getWeek;\n }\n },\n prefixClass: {\n default: 'mx'\n },\n onDateMouseEnter: {\n default: undefined\n },\n onDateMouseLeave: {\n default: undefined\n }\n },\n props: {\n disabledCalendarChanger: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n calendar: {\n type: Date,\n default: function _default() {\n return new Date();\n }\n },\n showWeekNumber: {\n type: Boolean,\n default: false\n },\n titleFormat: {\n type: String,\n default: 'YYYY-MM-DD'\n },\n getRowClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n },\n getCellClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n }\n },\n computed: {\n firstDayOfWeek: function firstDayOfWeek() {\n return this.getLocale().formatLocale.firstDayOfWeek || 0;\n },\n yearMonth: function yearMonth() {\n var _this$getLocale = this.getLocale(),\n yearFormat = _this$getLocale.yearFormat,\n monthBeforeYear = _this$getLocale.monthBeforeYear,\n _this$getLocale$month = _this$getLocale.monthFormat,\n monthFormat = _this$getLocale$month === void 0 ? 'MMM' : _this$getLocale$month;\n\n var yearLabel = {\n panel: 'year',\n label: this.formatDate(this.calendar, yearFormat)\n };\n var monthLabel = {\n panel: 'month',\n label: this.formatDate(this.calendar, monthFormat)\n };\n return monthBeforeYear ? [monthLabel, yearLabel] : [yearLabel, monthLabel];\n },\n days: function days() {\n var locale = this.getLocale();\n var days = locale.days || locale.formatLocale.weekdaysMin;\n return days.concat(days).slice(this.firstDayOfWeek, this.firstDayOfWeek + 7);\n },\n dates: function dates() {\n var year = this.calendar.getFullYear();\n var month = this.calendar.getMonth();\n var arr = getCalendar({\n firstDayOfWeek: this.firstDayOfWeek,\n year: year,\n month: month\n });\n return chunk(arr, 7);\n }\n },\n methods: {\n isDisabledArrows: function isDisabledArrows(type) {\n var date = new Date(this.calendar);\n\n switch (type) {\n case 'last-year':\n date.setFullYear(date.getFullYear() - 1, date.getMonth() + 1, 0);\n date.setHours(23, 59, 59, 999);\n break;\n\n case 'next-year':\n date.setFullYear(date.getFullYear() + 1);\n break;\n\n case 'last-month':\n date.setMonth(date.getMonth(), 0);\n date.setHours(23, 59, 59, 999);\n break;\n\n case 'next-month':\n date.setMonth(date.getMonth() + 1);\n break;\n }\n\n return this.disabledCalendarChanger(date, type);\n },\n handleIconLeftClick: function handleIconLeftClick() {\n this.$emit('changecalendar', setMonth(this.calendar, function (v) {\n return v - 1;\n }), 'last-month');\n },\n handleIconRightClick: function handleIconRightClick() {\n this.$emit('changecalendar', setMonth(this.calendar, function (v) {\n return v + 1;\n }), 'next-month');\n },\n handleIconDoubleLeftClick: function handleIconDoubleLeftClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v - 1;\n }), 'last-year');\n },\n handleIconDoubleRightClick: function handleIconDoubleRightClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v + 1;\n }), 'next-year');\n },\n handlePanelChange: function handlePanelChange(panel) {\n this.$emit('changepanel', panel);\n },\n handleMouseEnter: function handleMouseEnter(cell) {\n if (typeof this.onDateMouseEnter === 'function') {\n this.onDateMouseEnter(cell);\n }\n },\n handleMouseLeave: function handleMouseLeave(cell) {\n if (typeof this.onDateMouseLeave === 'function') {\n this.onDateMouseLeave(cell);\n }\n },\n handleCellClick: function handleCellClick(evt) {\n var target = evt.target;\n\n if (target.tagName.toUpperCase() === 'DIV') {\n target = target.parentNode;\n }\n\n var index = target.getAttribute('data-row-col');\n\n if (index) {\n var _index$split$map = index.split(',').map(function (v) {\n return parseInt(v, 10);\n }),\n _index$split$map2 = _slicedToArray(_index$split$map, 2),\n row = _index$split$map2[0],\n col = _index$split$map2[1];\n\n var date = this.dates[row][col];\n this.$emit('select', new Date(date));\n }\n },\n formatDate: function formatDate(date, fmt) {\n return format(date, fmt, {\n locale: this.getLocale().formatLocale\n });\n },\n getCellTitle: function getCellTitle(date) {\n var fmt = this.titleFormat;\n return this.formatDate(date, fmt);\n },\n getWeekNumber: function getWeekNumber(date) {\n return this.getWeek(date, this.getLocale().formatLocale);\n }\n }\n};\n\n/* script */\nvar __vue_script__$2 = script$2;\n/* template */\n\nvar __vue_render__$5 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-calendar \" + _vm.prefixClass + \"-calendar-panel-date\"\n }, [_c('div', {\n class: _vm.prefixClass + \"-calendar-header\"\n }, [_c('icon-button', {\n attrs: {\n \"type\": \"double-left\",\n \"disabled\": _vm.isDisabledArrows('last-year')\n },\n on: {\n \"click\": _vm.handleIconDoubleLeftClick\n }\n }), _vm._v(\" \"), _c('icon-button', {\n attrs: {\n \"type\": \"left\",\n \"disabled\": _vm.isDisabledArrows('last-month')\n },\n on: {\n \"click\": _vm.handleIconLeftClick\n }\n }), _vm._v(\" \"), _c('icon-button', {\n attrs: {\n \"type\": \"double-right\",\n \"disabled\": _vm.isDisabledArrows('next-year')\n },\n on: {\n \"click\": _vm.handleIconDoubleRightClick\n }\n }), _vm._v(\" \"), _c('icon-button', {\n attrs: {\n \"type\": \"right\",\n \"disabled\": _vm.isDisabledArrows('next-month')\n },\n on: {\n \"click\": _vm.handleIconRightClick\n }\n }), _vm._v(\" \"), _c('span', {\n class: _vm.prefixClass + \"-calendar-header-label\"\n }, _vm._l(_vm.yearMonth, function (item) {\n return _c('button', {\n key: item.panel,\n class: _vm.prefixClass + \"-btn \" + _vm.prefixClass + \"-btn-text \" + _vm.prefixClass + \"-btn-current-\" + item.panel,\n attrs: {\n \"type\": \"button\"\n },\n on: {\n \"click\": function click($event) {\n return _vm.handlePanelChange(item.panel);\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(item.label) + \"\\n \")]);\n }), 0)], 1), _vm._v(\" \"), _c('div', {\n class: _vm.prefixClass + \"-calendar-content\"\n }, [_c('table', {\n class: _vm.prefixClass + \"-table \" + _vm.prefixClass + \"-table-date\"\n }, [_c('thead', [_c('tr', [_vm.showWeekNumber ? _c('th', {\n class: _vm.prefixClass + \"-week-number-header\"\n }) : _vm._e(), _vm._v(\" \"), _vm._l(_vm.days, function (day) {\n return _c('th', {\n key: day\n }, [_vm._v(_vm._s(day))]);\n })], 2)]), _vm._v(\" \"), _c('tbody', {\n on: {\n \"click\": _vm.handleCellClick\n }\n }, _vm._l(_vm.dates, function (row, i) {\n return _c('tr', {\n key: i,\n class: [_vm.prefixClass + \"-date-row\", _vm.getRowClasses(row)]\n }, [_vm.showWeekNumber ? _c('td', {\n class: _vm.prefixClass + \"-week-number\",\n attrs: {\n \"data-row-col\": i + \",0\"\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.getWeekNumber(row[0])) + \"\\n \")]) : _vm._e(), _vm._v(\" \"), _vm._l(row, function (cell, j) {\n return _c('td', {\n key: j,\n staticClass: \"cell\",\n class: _vm.getCellClasses(cell),\n attrs: {\n \"data-row-col\": i + \",\" + j,\n \"title\": _vm.getCellTitle(cell)\n },\n on: {\n \"mouseenter\": function mouseenter($event) {\n return _vm.handleMouseEnter(cell);\n },\n \"mouseleave\": function mouseleave($event) {\n return _vm.handleMouseLeave(cell);\n }\n }\n }, [_c('div', [_vm._v(_vm._s(cell.getDate()))])]);\n })], 2);\n }), 0)])])]);\n};\n\nvar __vue_staticRenderFns__$5 = [];\n/* style */\n\nvar __vue_inject_styles__$5 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$5 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$5 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$5 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$5 = normalizeComponent({\n render: __vue_render__$5,\n staticRenderFns: __vue_staticRenderFns__$5\n}, __vue_inject_styles__$5, __vue_script__$2, __vue_scope_id__$5, __vue_is_functional_template__$5, __vue_module_identifier__$5, false, undefined, undefined, undefined);\n\n//\nvar script$3 = {\n name: 'TableMonth',\n components: {\n IconButton: __vue_component__$4\n },\n inject: {\n getLocale: {\n default: function _default() {\n return getLocale;\n }\n },\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n disabledCalendarChanger: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n calendar: {\n type: Date,\n default: function _default() {\n return new Date();\n }\n },\n getCellClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n }\n },\n computed: {\n calendarYear: function calendarYear() {\n return this.calendar.getFullYear();\n },\n months: function months() {\n var locale = this.getLocale();\n var monthsLocale = locale.months || locale.formatLocale.monthsShort;\n var months = monthsLocale.map(function (text, month) {\n return {\n text: text,\n month: month\n };\n });\n return chunk(months, 3);\n }\n },\n methods: {\n isDisabledArrows: function isDisabledArrows(type) {\n var date = new Date(this.calendar);\n\n switch (type) {\n case 'last-year':\n date.setFullYear(date.getFullYear() - 1, 11, 31);\n date.setHours(23, 59, 59, 999);\n break;\n\n case 'next-year':\n date.setFullYear(date.getFullYear() + 1, 0, 1);\n break;\n }\n\n return this.disabledCalendarChanger(date, type);\n },\n handleIconDoubleLeftClick: function handleIconDoubleLeftClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v - 1;\n }), 'last-year');\n },\n handleIconDoubleRightClick: function handleIconDoubleRightClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v + 1;\n }), 'next-year');\n },\n handlePanelChange: function handlePanelChange() {\n this.$emit('changepanel', 'year');\n },\n handleClick: function handleClick(evt) {\n var target = evt.target;\n\n if (target.tagName.toUpperCase() === 'DIV') {\n target = target.parentNode;\n }\n\n var month = target.getAttribute('data-month');\n\n if (month && !target.classList.contains('disabled')) {\n this.$emit('select', parseInt(month, 10));\n }\n }\n }\n};\n\n/* script */\nvar __vue_script__$3 = script$3;\n/* template */\n\nvar __vue_render__$6 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-calendar \" + _vm.prefixClass + \"-calendar-panel-month\"\n }, [_c('div', {\n class: _vm.prefixClass + \"-calendar-header\"\n }, [_c('icon-button', {\n attrs: {\n \"type\": \"double-left\",\n \"disabled\": _vm.isDisabledArrows('last-year')\n },\n on: {\n \"click\": _vm.handleIconDoubleLeftClick\n }\n }), _vm._v(\" \"), _c('icon-button', {\n attrs: {\n \"type\": \"double-right\",\n \"disabled\": _vm.isDisabledArrows('next-year')\n },\n on: {\n \"click\": _vm.handleIconDoubleRightClick\n }\n }), _vm._v(\" \"), _c('span', {\n class: _vm.prefixClass + \"-calendar-header-label\"\n }, [_c('button', {\n class: _vm.prefixClass + \"-btn \" + _vm.prefixClass + \"-btn-text\",\n attrs: {\n \"type\": \"button\"\n },\n on: {\n \"click\": _vm.handlePanelChange\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.calendarYear) + \"\\n \")])])], 1), _vm._v(\" \"), _c('div', {\n class: _vm.prefixClass + \"-calendar-content\"\n }, [_c('table', {\n class: _vm.prefixClass + \"-table \" + _vm.prefixClass + \"-table-month\",\n on: {\n \"click\": _vm.handleClick\n }\n }, _vm._l(_vm.months, function (row, i) {\n return _c('tr', {\n key: i\n }, _vm._l(row, function (cell, j) {\n return _c('td', {\n key: j,\n staticClass: \"cell\",\n class: _vm.getCellClasses(cell.month),\n attrs: {\n \"data-month\": cell.month\n }\n }, [_c('div', [_vm._v(_vm._s(cell.text))])]);\n }), 0);\n }), 0)])]);\n};\n\nvar __vue_staticRenderFns__$6 = [];\n/* style */\n\nvar __vue_inject_styles__$6 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$6 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$6 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$6 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$6 = normalizeComponent({\n render: __vue_render__$6,\n staticRenderFns: __vue_staticRenderFns__$6\n}, __vue_inject_styles__$6, __vue_script__$3, __vue_scope_id__$6, __vue_is_functional_template__$6, __vue_module_identifier__$6, false, undefined, undefined, undefined);\n\n//\nvar script$4 = {\n name: 'TableYear',\n components: {\n IconButton: __vue_component__$4\n },\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n disabledCalendarChanger: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n calendar: {\n type: Date,\n default: function _default() {\n return new Date();\n }\n },\n getCellClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n },\n getYearPanel: {\n type: Function\n }\n },\n computed: {\n years: function years() {\n var calendar = new Date(this.calendar);\n\n if (typeof this.getYearPanel === 'function') {\n return this.getYearPanel(calendar);\n }\n\n return this.getYears(calendar);\n },\n firstYear: function firstYear() {\n return this.years[0][0];\n },\n lastYear: function lastYear() {\n var last = function last(arr) {\n return arr[arr.length - 1];\n };\n\n return last(last(this.years));\n }\n },\n methods: {\n isDisabledArrows: function isDisabledArrows(type) {\n var date = new Date(this.calendar);\n\n switch (type) {\n case 'last-decade':\n date.setFullYear(this.firstYear - 1, 11, 31);\n date.setHours(23, 59, 59, 999);\n break;\n\n case 'next-decade':\n date.setFullYear(this.lastYear + 1, 0, 1);\n break;\n }\n\n return this.disabledCalendarChanger(date, type);\n },\n getYears: function getYears(calendar) {\n var firstYear = Math.floor(calendar.getFullYear() / 10) * 10;\n var years = [];\n\n for (var i = 0; i < 10; i++) {\n years.push(firstYear + i);\n }\n\n return chunk(years, 2);\n },\n handleIconDoubleLeftClick: function handleIconDoubleLeftClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v - 10;\n }), 'last-decade');\n },\n handleIconDoubleRightClick: function handleIconDoubleRightClick() {\n this.$emit('changecalendar', setYear(this.calendar, function (v) {\n return v + 10;\n }), 'next-decade');\n },\n handleClick: function handleClick(evt) {\n var target = evt.target;\n\n if (target.tagName.toUpperCase() === 'DIV') {\n target = target.parentNode;\n }\n\n var year = target.getAttribute('data-year');\n\n if (year && !target.classList.contains('disabled')) {\n this.$emit('select', parseInt(year, 10));\n }\n }\n }\n};\n\n/* script */\nvar __vue_script__$4 = script$4;\n/* template */\n\nvar __vue_render__$7 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-calendar \" + _vm.prefixClass + \"-calendar-panel-year\"\n }, [_c('div', {\n class: _vm.prefixClass + \"-calendar-header\"\n }, [_c('icon-button', {\n attrs: {\n \"type\": \"double-left\",\n \"disabled\": _vm.isDisabledArrows('last-decade')\n },\n on: {\n \"click\": _vm.handleIconDoubleLeftClick\n }\n }), _vm._v(\" \"), _c('icon-button', {\n attrs: {\n \"type\": \"double-right\",\n \"disabled\": _vm.isDisabledArrows('next-decade')\n },\n on: {\n \"click\": _vm.handleIconDoubleRightClick\n }\n }), _vm._v(\" \"), _c('span', {\n class: _vm.prefixClass + \"-calendar-header-label\"\n }, [_c('span', [_vm._v(_vm._s(_vm.firstYear))]), _vm._v(\" \"), _c('span', {\n class: _vm.prefixClass + \"-calendar-decade-separator\"\n }), _vm._v(\" \"), _c('span', [_vm._v(_vm._s(_vm.lastYear))])])], 1), _vm._v(\" \"), _c('div', {\n class: _vm.prefixClass + \"-calendar-content\"\n }, [_c('table', {\n class: _vm.prefixClass + \"-table \" + _vm.prefixClass + \"-table-year\",\n on: {\n \"click\": _vm.handleClick\n }\n }, _vm._l(_vm.years, function (row, i) {\n return _c('tr', {\n key: i\n }, _vm._l(row, function (cell, j) {\n return _c('td', {\n key: j,\n staticClass: \"cell\",\n class: _vm.getCellClasses(cell),\n attrs: {\n \"data-year\": cell\n }\n }, [_c('div', [_vm._v(_vm._s(cell))])]);\n }), 0);\n }), 0)])]);\n};\n\nvar __vue_staticRenderFns__$7 = [];\n/* style */\n\nvar __vue_inject_styles__$7 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$7 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$7 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$7 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$7 = normalizeComponent({\n render: __vue_render__$7,\n staticRenderFns: __vue_staticRenderFns__$7\n}, __vue_inject_styles__$7, __vue_script__$4, __vue_scope_id__$7, __vue_is_functional_template__$7, __vue_module_identifier__$7, false, undefined, undefined, undefined);\n\nvar CalendarPanel = {\n name: 'CalendarPanel',\n inject: {\n prefixClass: {\n default: 'mx'\n },\n dispatchDatePicker: {\n default: function _default() {\n return function () {};\n }\n }\n },\n props: {\n value: {},\n defaultValue: {\n default: function _default() {\n var date = new Date();\n date.setHours(0, 0, 0, 0);\n return date;\n }\n },\n defaultPanel: {\n type: String\n },\n disabledCalendarChanger: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n disabledDate: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n type: {\n type: String,\n default: 'date'\n },\n getClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n },\n showWeekNumber: {\n type: Boolean,\n default: undefined\n },\n getYearPanel: {\n type: Function\n },\n titleFormat: {\n type: String,\n default: 'YYYY-MM-DD'\n },\n calendar: Date,\n // update date when select year or month\n partialUpdate: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n var panels = ['date', 'month', 'year'];\n var index = Math.max(panels.indexOf(this.type), panels.indexOf(this.defaultPanel));\n var panel = index !== -1 ? panels[index] : 'date';\n return {\n panel: panel,\n innerCalendar: new Date()\n };\n },\n computed: {\n innerValue: function innerValue() {\n var value = Array.isArray(this.value) ? this.value : [this.value];\n var map = {\n year: startOfYear,\n month: startOfMonth,\n date: startOfDay\n };\n var start = map[this.type] || map.date;\n return value.filter(isValidDate).map(function (v) {\n return start(v);\n });\n },\n calendarYear: function calendarYear() {\n return this.innerCalendar.getFullYear();\n },\n calendarMonth: function calendarMonth() {\n return this.innerCalendar.getMonth();\n }\n },\n watch: {\n value: {\n immediate: true,\n handler: 'initCalendar'\n },\n calendar: {\n handler: 'initCalendar'\n },\n defaultValue: {\n handler: 'initCalendar'\n }\n },\n methods: {\n initCalendar: function initCalendar() {\n var calendarDate = this.calendar;\n\n if (!isValidDate(calendarDate)) {\n var length = this.innerValue.length;\n calendarDate = getValidDate(length > 0 ? this.innerValue[length - 1] : this.defaultValue);\n }\n\n this.innerCalendar = startOfMonth(calendarDate);\n },\n isDisabled: function isDisabled(date) {\n return this.disabledDate(new Date(date), this.innerValue);\n },\n emitDate: function emitDate(date, type) {\n if (!this.isDisabled(date)) {\n this.$emit('select', date, type, this.innerValue); // someone need get the first selected date to set range value. (#429)\n\n this.dispatchDatePicker('pick', date, type);\n }\n },\n handleCalendarChange: function handleCalendarChange(calendar, type) {\n var oldCalendar = new Date(this.innerCalendar);\n this.innerCalendar = calendar;\n this.$emit('update:calendar', calendar);\n this.dispatchDatePicker('calendar-change', calendar, oldCalendar, type);\n },\n handelPanelChange: function handelPanelChange(panel) {\n var oldPanel = this.panel;\n this.panel = panel;\n this.dispatchDatePicker('panel-change', panel, oldPanel);\n },\n handleSelectYear: function handleSelectYear(year) {\n if (this.type === 'year') {\n var date = this.getYearCellDate(year);\n this.emitDate(date, 'year');\n } else {\n this.handleCalendarChange(createDate(year, this.calendarMonth), 'year');\n this.handelPanelChange('month');\n\n if (this.partialUpdate && this.innerValue.length === 1) {\n var _date = new Date(this.innerValue[0]);\n\n _date.setFullYear(year);\n\n this.emitDate(_date, 'year');\n }\n }\n },\n handleSelectMonth: function handleSelectMonth(month) {\n if (this.type === 'month') {\n var date = this.getMonthCellDate(month);\n this.emitDate(date, 'month');\n } else {\n this.handleCalendarChange(createDate(this.calendarYear, month), 'month');\n this.handelPanelChange('date');\n\n if (this.partialUpdate && this.innerValue.length === 1) {\n var _date2 = new Date(this.innerValue[0]);\n\n _date2.setFullYear(this.calendarYear);\n\n this.emitDate(setMonth(_date2, month), 'month');\n }\n }\n },\n handleSelectDate: function handleSelectDate(date) {\n this.emitDate(date, this.type === 'week' ? 'week' : 'date');\n },\n getMonthCellDate: function getMonthCellDate(month) {\n return createDate(this.calendarYear, month);\n },\n getYearCellDate: function getYearCellDate(year) {\n return createDate(year, 0);\n },\n getDateClasses: function getDateClasses(cellDate) {\n var notCurrentMonth = cellDate.getMonth() !== this.calendarMonth;\n var classes = [];\n\n if (cellDate.getTime() === new Date().setHours(0, 0, 0, 0)) {\n classes.push('today');\n }\n\n if (notCurrentMonth) {\n classes.push('not-current-month');\n }\n\n var state = this.getStateClass(cellDate);\n\n if (!(state === 'active' && notCurrentMonth)) {\n classes.push(state);\n }\n\n return classes.concat(this.getClasses(cellDate, this.innerValue, classes.join(' ')));\n },\n getMonthClasses: function getMonthClasses(month) {\n var classes = [];\n\n if (this.type !== 'month') {\n if (this.calendarMonth === month) {\n classes.push('active');\n }\n\n var _cellDate = this.getMonthCellDate(month);\n\n if (this.disabledCalendarChanger(_cellDate, 'month')) {\n classes.push('disabled');\n }\n\n return classes;\n }\n\n var cellDate = this.getMonthCellDate(month);\n classes.push(this.getStateClass(cellDate));\n return classes.concat(this.getClasses(cellDate, this.innerValue, classes.join(' ')));\n },\n getYearClasses: function getYearClasses(year) {\n var classes = [];\n\n if (this.type !== 'year') {\n if (this.calendarYear === year) {\n classes.push('active');\n }\n\n var _cellDate2 = this.getYearCellDate(year);\n\n if (this.disabledCalendarChanger(_cellDate2, 'year')) {\n classes.push('disabled');\n }\n\n return classes;\n }\n\n var cellDate = this.getYearCellDate(year);\n classes.push(this.getStateClass(cellDate));\n return classes.concat(this.getClasses(cellDate, this.innerValue, classes.join(' ')));\n },\n getStateClass: function getStateClass(cellDate) {\n if (this.isDisabled(cellDate)) {\n return 'disabled';\n }\n\n if (this.innerValue.some(function (v) {\n return v.getTime() === cellDate.getTime();\n })) {\n return 'active';\n }\n\n return '';\n },\n getWeekState: function getWeekState(row) {\n if (this.type !== 'week') return '';\n var start = row[0].getTime();\n var end = row[6].getTime();\n var active = this.innerValue.some(function (v) {\n var time = v.getTime();\n return time >= start && time <= end;\n });\n return active ? \"\".concat(this.prefixClass, \"-active-week\") : '';\n }\n },\n render: function render() {\n var h = arguments[0];\n var panel = this.panel,\n innerCalendar = this.innerCalendar;\n\n if (panel === 'year') {\n return h(__vue_component__$7, {\n \"attrs\": {\n \"disabledCalendarChanger\": this.disabledCalendarChanger,\n \"calendar\": innerCalendar,\n \"getCellClasses\": this.getYearClasses,\n \"getYearPanel\": this.getYearPanel\n },\n \"on\": {\n \"select\": this.handleSelectYear,\n \"changecalendar\": this.handleCalendarChange\n }\n });\n }\n\n if (panel === 'month') {\n return h(__vue_component__$6, {\n \"attrs\": {\n \"disabledCalendarChanger\": this.disabledCalendarChanger,\n \"calendar\": innerCalendar,\n \"getCellClasses\": this.getMonthClasses\n },\n \"on\": {\n \"select\": this.handleSelectMonth,\n \"changepanel\": this.handelPanelChange,\n \"changecalendar\": this.handleCalendarChange\n }\n });\n }\n\n return h(__vue_component__$5, {\n \"attrs\": {\n \"disabledCalendarChanger\": this.disabledCalendarChanger,\n \"calendar\": innerCalendar,\n \"getCellClasses\": this.getDateClasses,\n \"getRowClasses\": this.getWeekState,\n \"titleFormat\": this.titleFormat,\n \"showWeekNumber\": typeof this.showWeekNumber === 'boolean' ? this.showWeekNumber : this.type === 'week'\n },\n \"class\": _defineProperty({}, \"\".concat(this.prefixClass, \"-calendar-week-mode\"), this.type === 'week'),\n \"on\": {\n \"select\": this.handleSelectDate,\n \"changepanel\": this.handelPanelChange,\n \"changecalendar\": this.handleCalendarChange\n }\n });\n }\n};\n\nvar CalendarRange = {\n name: 'CalendarRange',\n components: {\n CalendarPanel: CalendarPanel\n },\n provide: function provide() {\n return {\n onDateMouseEnter: this.onDateMouseEnter,\n onDateMouseLeave: this.onDateMouseLeave\n };\n },\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n props: _objectSpread2({}, CalendarPanel.props),\n data: function data() {\n return {\n innerValue: [],\n calendars: [],\n hoveredValue: null\n };\n },\n computed: {\n // Minimum difference between start and end calendars\n calendarMinDiff: function calendarMinDiff() {\n var map = {\n date: 1,\n // type:date min 1 month\n month: 1 * 12,\n // type:month min 1 year\n year: 10 * 12 // type:year min 10 year\n\n };\n return map[this.type] || map.date;\n },\n calendarMaxDiff: function calendarMaxDiff() {\n return Infinity;\n },\n defaultValues: function defaultValues() {\n return Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue, this.defaultValue];\n }\n },\n watch: {\n value: {\n immediate: true,\n handler: function handler() {\n var _this = this;\n\n this.innerValue = isValidRangeDate(this.value) ? this.value : [new Date(NaN), new Date(NaN)];\n var calendars = this.innerValue.map(function (v, i) {\n return startOfMonth(getValidDate(v, _this.defaultValues[i]));\n });\n this.updateCalendars(calendars);\n }\n }\n },\n methods: {\n handleSelect: function handleSelect(date, type) {\n var _this$innerValue = _slicedToArray(this.innerValue, 2),\n startValue = _this$innerValue[0],\n endValue = _this$innerValue[1];\n\n if (isValidDate(startValue) && !isValidDate(endValue)) {\n if (startValue.getTime() > date.getTime()) {\n this.innerValue = [date, startValue];\n } else {\n this.innerValue = [startValue, date];\n }\n\n this.emitDate(this.innerValue, type);\n } else {\n this.innerValue = [date, new Date(NaN)];\n }\n },\n onDateMouseEnter: function onDateMouseEnter(cell) {\n this.hoveredValue = cell;\n },\n onDateMouseLeave: function onDateMouseLeave() {\n this.hoveredValue = null;\n },\n emitDate: function emitDate(dates, type) {\n this.$emit('select', dates, type);\n },\n updateStartCalendar: function updateStartCalendar(value) {\n this.updateCalendars([value, this.calendars[1]], 1);\n },\n updateEndCalendar: function updateEndCalendar(value) {\n this.updateCalendars([this.calendars[0], value], 0);\n },\n updateCalendars: function updateCalendars(calendars) {\n var adjustIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var gap = this.getCalendarGap(calendars);\n\n if (gap) {\n var calendar = new Date(calendars[adjustIndex]);\n calendar.setMonth(calendar.getMonth() + (adjustIndex === 0 ? -gap : gap));\n calendars[adjustIndex] = calendar;\n }\n\n this.calendars = calendars;\n },\n getCalendarGap: function getCalendarGap(calendars) {\n var _calendars = _slicedToArray(calendars, 2),\n calendarLeft = _calendars[0],\n calendarRight = _calendars[1];\n\n var yearDiff = calendarRight.getFullYear() - calendarLeft.getFullYear();\n var monthDiff = calendarRight.getMonth() - calendarLeft.getMonth();\n var diff = yearDiff * 12 + monthDiff;\n var min = this.calendarMinDiff;\n var max = this.calendarMaxDiff;\n\n if (diff < min) {\n return min - diff;\n }\n\n if (diff > max) {\n return max - diff;\n }\n\n return 0;\n },\n getRangeClasses: function getRangeClasses(cellDate, currentDates, classnames) {\n var classes = [].concat(this.getClasses(cellDate, currentDates, classnames));\n if (/disabled|active/.test(classnames)) return classes;\n\n var inRange = function inRange(data, range) {\n var fn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (v) {\n return v.getTime();\n };\n var value = fn(data);\n\n var _range$map = range.map(fn),\n _range$map2 = _slicedToArray(_range$map, 2),\n min = _range$map2[0],\n max = _range$map2[1];\n\n if (min > max) {\n var _ref = [max, min];\n min = _ref[0];\n max = _ref[1];\n }\n\n return value > min && value < max;\n };\n\n if (currentDates.length === 2 && inRange(cellDate, currentDates)) {\n return classes.concat('in-range');\n }\n\n if (currentDates.length === 1 && this.hoveredValue && inRange(cellDate, [currentDates[0], this.hoveredValue])) {\n return classes.concat('hover-in-range');\n }\n\n return classes;\n }\n },\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n var calendarRange = this.calendars.map(function (calendar, index) {\n var props = _objectSpread2({}, _this2.$props, {\n calendar: calendar,\n value: _this2.innerValue,\n defaultValue: _this2.defaultValues[index],\n getClasses: _this2.getRangeClasses,\n // don't update when range is true\n partialUpdate: false\n });\n\n var on = {\n select: _this2.handleSelect,\n 'update:calendar': index === 0 ? _this2.updateStartCalendar : _this2.updateEndCalendar\n };\n return h(\"calendar-panel\", {\n \"props\": _objectSpread2({}, props),\n \"on\": _objectSpread2({}, on)\n });\n });\n var prefixClass = this.prefixClass;\n return h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-range-wrapper\")\n }, [calendarRange]);\n }\n};\n\nvar scrollBarWidth;\nfunction getScrollbarWidth () {\n if (typeof window === 'undefined') return 0;\n if (scrollBarWidth !== undefined) return scrollBarWidth;\n var outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll';\n outer.style.width = '100px';\n outer.style.position = 'absolute';\n outer.style.top = '-9999px';\n document.body.appendChild(outer);\n var inner = document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n scrollBarWidth = outer.offsetWidth - inner.offsetWidth;\n outer.parentNode.removeChild(outer);\n return scrollBarWidth;\n}\n\n//\nvar script$5 = {\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n data: function data() {\n return {\n scrollbarWidth: 0,\n thumbTop: '',\n thumbHeight: ''\n };\n },\n created: function created() {\n this.scrollbarWidth = getScrollbarWidth();\n document.addEventListener('mouseup', this.handleDragend);\n },\n beforeDestroy: function beforeDestroy() {\n document.addEventListener('mouseup', this.handleDragend);\n },\n mounted: function mounted() {\n this.$nextTick(this.getThumbSize);\n },\n methods: {\n getThumbSize: function getThumbSize() {\n var wrap = this.$refs.wrap;\n if (!wrap) return;\n var heightPercentage = wrap.clientHeight * 100 / wrap.scrollHeight;\n this.thumbHeight = heightPercentage < 100 ? \"\".concat(heightPercentage, \"%\") : '';\n },\n handleScroll: function handleScroll(evt) {\n var el = evt.currentTarget;\n var scrollHeight = el.scrollHeight,\n scrollTop = el.scrollTop;\n this.thumbTop = \"\".concat(scrollTop * 100 / scrollHeight, \"%\");\n },\n handleDragstart: function handleDragstart(evt) {\n evt.stopImmediatePropagation();\n this._draggable = true;\n var offsetTop = this.$refs.thumb.offsetTop;\n this._prevY = evt.clientY - offsetTop;\n document.addEventListener('mousemove', this.handleDraging);\n },\n handleDraging: function handleDraging(evt) {\n if (!this._draggable) return;\n var clientY = evt.clientY;\n var wrap = this.$refs.wrap;\n var scrollHeight = wrap.scrollHeight,\n clientHeight = wrap.clientHeight;\n var offsetY = clientY - this._prevY;\n var top = offsetY * scrollHeight / clientHeight;\n wrap.scrollTop = top;\n },\n handleDragend: function handleDragend() {\n if (this._draggable) {\n this._draggable = false;\n document.removeEventListener('mousemove', this.handleDraging);\n }\n }\n }\n};\n\n/* script */\nvar __vue_script__$5 = script$5;\n/* template */\n\nvar __vue_render__$8 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-scrollbar\",\n style: {\n position: 'relative',\n overflow: 'hidden'\n }\n }, [_c('div', {\n ref: \"wrap\",\n class: _vm.prefixClass + \"-scrollbar-wrap\",\n style: {\n marginRight: \"-\" + _vm.scrollbarWidth + \"px\"\n },\n on: {\n \"scroll\": _vm.handleScroll\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c('div', {\n class: _vm.prefixClass + \"-scrollbar-track\"\n }, [_c('div', {\n ref: \"thumb\",\n class: _vm.prefixClass + \"-scrollbar-thumb\",\n style: {\n height: _vm.thumbHeight,\n top: _vm.thumbTop\n },\n on: {\n \"mousedown\": _vm.handleDragstart\n }\n })])]);\n};\n\nvar __vue_staticRenderFns__$8 = [];\n/* style */\n\nvar __vue_inject_styles__$8 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$8 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$8 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$8 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$8 = normalizeComponent({\n render: __vue_render__$8,\n staticRenderFns: __vue_staticRenderFns__$8\n}, __vue_inject_styles__$8, __vue_script__$5, __vue_scope_id__$8, __vue_is_functional_template__$8, __vue_module_identifier__$8, false, undefined, undefined, undefined);\n\n//\n\nvar padNumber = function padNumber(value) {\n value = parseInt(value, 10);\n return value < 10 ? \"0\".concat(value) : \"\".concat(value);\n};\n\nvar generateOptions = function generateOptions(length, step, options) {\n if (Array.isArray(options)) {\n return options.filter(function (v) {\n return v >= 0 && v < length;\n });\n }\n\n if (step <= 0) {\n step = 1;\n }\n\n var arr = [];\n\n for (var i = 0; i < length; i += step) {\n arr.push(i);\n }\n\n return arr;\n};\n\nvar scrollTo = function scrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n // jump to target if duration zero\n if (duration <= 0) {\n requestAnimationFrame(function () {\n element.scrollTop = to;\n });\n return;\n }\n\n var difference = to - element.scrollTop;\n var tick = difference / duration * 10;\n requestAnimationFrame(function () {\n var scrollTop = element.scrollTop + tick;\n\n if (scrollTop >= to) {\n element.scrollTop = to;\n return;\n }\n\n element.scrollTop = scrollTop;\n scrollTo(element, to, duration - 10);\n });\n};\n\nvar script$6 = {\n name: 'ListColumns',\n components: {\n ScrollbarVertical: __vue_component__$8\n },\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n date: Date,\n scrollDuration: {\n type: Number,\n default: 100\n },\n getClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n },\n hourOptions: Array,\n minuteOptions: Array,\n secondOptions: Array,\n showHour: {\n type: Boolean,\n default: true\n },\n showMinute: {\n type: Boolean,\n default: true\n },\n showSecond: {\n type: Boolean,\n default: true\n },\n hourStep: {\n type: Number,\n default: 1\n },\n minuteStep: {\n type: Number,\n default: 1\n },\n secondStep: {\n type: Number,\n default: 1\n },\n use12h: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n columns: function columns() {\n var cols = [];\n if (this.showHour) cols.push({\n type: 'hour',\n list: this.getHoursList()\n });\n if (this.showMinute) cols.push({\n type: 'minute',\n list: this.getMinutesList()\n });\n if (this.showSecond) cols.push({\n type: 'second',\n list: this.getSecondsList()\n });\n if (this.use12h) cols.push({\n type: 'ampm',\n list: this.getAMPMList()\n });\n return cols.filter(function (v) {\n return v.list.length > 0;\n });\n }\n },\n watch: {\n date: {\n handler: function handler() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.scrollToSelected(_this.scrollDuration);\n });\n }\n }\n },\n mounted: function mounted() {\n this.scrollToSelected(0);\n },\n methods: {\n getHoursList: function getHoursList() {\n var _this2 = this;\n\n return generateOptions(this.use12h ? 12 : 24, this.hourStep, this.hourOptions).map(function (num) {\n var date = new Date(_this2.date);\n var text = padNumber(num);\n\n if (_this2.use12h) {\n if (num === 0) {\n text = '12';\n }\n\n if (date.getHours() >= 12) {\n num += 12;\n }\n }\n\n var value = date.setHours(num);\n return {\n value: value,\n text: text\n };\n });\n },\n getMinutesList: function getMinutesList() {\n var _this3 = this;\n\n return generateOptions(60, this.minuteStep, this.minuteOptions).map(function (num) {\n var value = new Date(_this3.date).setMinutes(num);\n return {\n value: value,\n text: padNumber(num)\n };\n });\n },\n getSecondsList: function getSecondsList() {\n var _this4 = this;\n\n return generateOptions(60, this.secondStep, this.secondOptions).map(function (num) {\n var value = new Date(_this4.date).setSeconds(num);\n return {\n value: value,\n text: padNumber(num)\n };\n });\n },\n getAMPMList: function getAMPMList() {\n var _this5 = this;\n\n return ['AM', 'PM'].map(function (text, i) {\n var date = new Date(_this5.date);\n var value = date.setHours(date.getHours() % 12 + i * 12);\n return {\n text: text,\n value: value\n };\n });\n },\n scrollToSelected: function scrollToSelected(duration) {\n var elements = this.$el.querySelectorAll('.active');\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i];\n var scrollElement = getScrollParent(element, this.$el);\n\n if (scrollElement) {\n var to = element.offsetTop;\n scrollTo(scrollElement, to, duration);\n }\n }\n },\n handleSelect: function handleSelect(evt) {\n var target = evt.target,\n currentTarget = evt.currentTarget;\n if (target.tagName.toUpperCase() !== 'LI') return;\n var type = currentTarget.getAttribute('data-type');\n var colIndex = parseInt(currentTarget.getAttribute('data-index'), 10);\n var cellIndex = parseInt(target.getAttribute('data-index'), 10);\n var value = this.columns[colIndex].list[cellIndex].value;\n this.$emit('select', value, type);\n }\n }\n};\n\n/* script */\nvar __vue_script__$6 = script$6;\n/* template */\n\nvar __vue_render__$9 = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-time-columns\"\n }, _vm._l(_vm.columns, function (col, i) {\n return _c('scrollbar-vertical', {\n key: i,\n class: _vm.prefixClass + \"-time-column\"\n }, [_c('ul', {\n class: _vm.prefixClass + \"-time-list\",\n attrs: {\n \"data-type\": col.type,\n \"data-index\": i\n },\n on: {\n \"click\": _vm.handleSelect\n }\n }, _vm._l(col.list, function (item, j) {\n return _c('li', {\n key: item.value,\n class: [_vm.prefixClass + \"-time-item\", _vm.getClasses(item.value, col.type)],\n attrs: {\n \"data-index\": j\n }\n }, [_vm._v(\"\\n \" + _vm._s(item.text) + \"\\n \")]);\n }), 0)]);\n }), 1);\n};\n\nvar __vue_staticRenderFns__$9 = [];\n/* style */\n\nvar __vue_inject_styles__$9 = undefined;\n/* scoped */\n\nvar __vue_scope_id__$9 = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$9 = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$9 = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$9 = normalizeComponent({\n render: __vue_render__$9,\n staticRenderFns: __vue_staticRenderFns__$9\n}, __vue_inject_styles__$9, __vue_script__$6, __vue_scope_id__$9, __vue_is_functional_template__$9, __vue_module_identifier__$9, false, undefined, undefined, undefined);\n\n//\n\nfunction parseOption() {\n var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var values = time.split(':');\n\n if (values.length >= 2) {\n var hours = parseInt(values[0], 10);\n var minutes = parseInt(values[1], 10);\n return {\n hours: hours,\n minutes: minutes\n };\n }\n\n return null;\n}\n\nvar scrollTo$1 = function scrollTo(element, to) {\n if (element) {\n element.scrollTop = to;\n }\n};\n\nvar script$7 = {\n name: 'ListOptions',\n components: {\n ScrollbarVertical: __vue_component__$8\n },\n inject: {\n getLocale: {\n default: function _default() {\n return getLocale;\n }\n },\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n date: Date,\n options: {\n type: [Object, Function],\n default: function _default() {\n return [];\n }\n },\n format: {\n type: String,\n default: 'HH:mm:ss'\n },\n getClasses: {\n type: Function,\n default: function _default() {\n return [];\n }\n }\n },\n computed: {\n list: function list() {\n var result = [];\n var options = this.options;\n\n if (typeof options === 'function') {\n return options() || [];\n }\n\n var start = parseOption(options.start);\n var end = parseOption(options.end);\n var step = parseOption(options.step);\n var fmt = options.format || this.format;\n\n if (start && end && step) {\n var startMinutes = start.minutes + start.hours * 60;\n var endMinutes = end.minutes + end.hours * 60;\n var stepMinutes = step.minutes + step.hours * 60;\n var len = Math.floor((endMinutes - startMinutes) / stepMinutes);\n\n for (var i = 0; i <= len; i++) {\n var timeMinutes = startMinutes + i * stepMinutes;\n var hours = Math.floor(timeMinutes / 60);\n var minutes = timeMinutes % 60;\n var value = new Date(this.date).setHours(hours, minutes, 0);\n result.push({\n value: value,\n text: this.formatDate(value, fmt)\n });\n }\n }\n\n return result;\n }\n },\n mounted: function mounted() {\n this.scrollToSelected();\n },\n methods: {\n formatDate: function formatDate(date, fmt) {\n return format(date, fmt, {\n locale: this.getLocale().formatLocale\n });\n },\n scrollToSelected: function scrollToSelected() {\n var element = this.$el.querySelector('.active');\n if (!element) return;\n var scrollElement = getScrollParent(element, this.$el);\n if (!scrollElement) return;\n var to = element.offsetTop;\n scrollTo$1(scrollElement, to);\n },\n handleSelect: function handleSelect(value) {\n this.$emit('select', value, 'time');\n }\n }\n};\n\n/* script */\nvar __vue_script__$7 = script$7;\n/* template */\n\nvar __vue_render__$a = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('scrollbar-vertical', _vm._l(_vm.list, function (item) {\n return _c('div', {\n key: item.value,\n class: [_vm.prefixClass + \"-time-option\", _vm.getClasses(item.value)],\n on: {\n \"click\": function click($event) {\n return _vm.handleSelect(item.value);\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(item.text) + \"\\n \")]);\n }), 0);\n};\n\nvar __vue_staticRenderFns__$a = [];\n/* style */\n\nvar __vue_inject_styles__$a = undefined;\n/* scoped */\n\nvar __vue_scope_id__$a = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$a = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$a = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$a = normalizeComponent({\n render: __vue_render__$a,\n staticRenderFns: __vue_staticRenderFns__$a\n}, __vue_inject_styles__$a, __vue_script__$7, __vue_scope_id__$a, __vue_is_functional_template__$a, __vue_module_identifier__$a, false, undefined, undefined, undefined);\n\n//\nvar script$8 = {\n name: 'TimePanel',\n components: {\n ListColumns: __vue_component__$9,\n ListOptions: __vue_component__$a\n },\n inject: {\n getLocale: {\n default: function _default() {\n return getLocale;\n }\n },\n prefixClass: {\n default: 'mx'\n }\n },\n props: {\n value: {},\n defaultValue: {\n default: function _default() {\n var date = new Date();\n date.setHours(0, 0, 0, 0);\n return date;\n }\n },\n format: {\n default: 'HH:mm:ss'\n },\n timeTitleFormat: {\n type: String,\n default: 'YYYY-MM-DD'\n },\n showTimeHeader: {\n type: Boolean,\n default: false\n },\n disabledTime: {\n type: Function,\n default: function _default() {\n return false;\n }\n },\n timePickerOptions: {\n type: [Object, Function],\n default: function _default() {\n return null;\n }\n },\n hourOptions: Array,\n minuteOptions: Array,\n secondOptions: Array,\n hourStep: {\n type: Number,\n default: 1\n },\n minuteStep: {\n type: Number,\n default: 1\n },\n secondStep: {\n type: Number,\n default: 1\n },\n showHour: {\n type: Boolean,\n default: undefined\n },\n showMinute: {\n type: Boolean,\n default: undefined\n },\n showSecond: {\n type: Boolean,\n default: undefined\n },\n use12h: {\n type: Boolean,\n default: undefined\n },\n scrollDuration: {\n type: Number,\n default: 100\n }\n },\n data: function data() {\n return {\n innerValue: getValidDate(this.value, this.defaultValue)\n };\n },\n computed: {\n title: function title() {\n var titleFormat = this.timeTitleFormat;\n var date = new Date(this.innerValue);\n return this.formatDate(date, titleFormat);\n },\n innerForamt: function innerForamt() {\n return typeof this.format === 'string' ? this.format : 'HH:mm:ss';\n },\n ShowHourMinuteSecondAMPM: function ShowHourMinuteSecondAMPM() {\n var _this = this;\n\n var fmt = this.innerForamt;\n var defaultProps = {\n showHour: /[HhKk]/.test(fmt),\n showMinute: /m/.test(fmt),\n showSecond: /s/.test(fmt),\n use12h: /a/i.test(fmt)\n };\n var obj = {};\n Object.keys(defaultProps).forEach(function (key) {\n obj[key] = typeof _this[key] === 'boolean' ? _this[key] : defaultProps[key];\n });\n return obj;\n }\n },\n watch: {\n value: {\n immediate: true,\n handler: function handler() {\n this.innerValue = getValidDate(this.value, this.defaultValue);\n }\n }\n },\n methods: {\n formatDate: function formatDate(date, fmt) {\n return format(date, fmt, {\n locale: this.getLocale().formatLocale\n });\n },\n isDisabledTime: function isDisabledTime(value) {\n return this.disabledTime(new Date(value));\n },\n isDisabledHour: function isDisabledHour(date) {\n var value = new Date(date);\n return this.isDisabledTime(value) && this.isDisabledTime(value.setMinutes(0, 0, 0)) && this.isDisabledTime(value.setMinutes(59, 59, 999));\n },\n isDisabledMinute: function isDisabledMinute(date) {\n var value = new Date(date);\n return this.isDisabledTime(value) && this.isDisabledTime(value.setSeconds(0, 0)) && this.isDisabledTime(value.setSeconds(59, 999));\n },\n isDisabledAMPM: function isDisabledAMPM(date) {\n var value = new Date(date);\n var minHour = value.getHours() < 12 ? 0 : 12;\n var maxHour = minHour + 11;\n return this.isDisabledTime(value) && this.isDisabledTime(value.setHours(minHour, 0, 0, 0)) && this.isDisabledTime(value.setHours(maxHour, 59, 59, 999));\n },\n isDisabled: function isDisabled(date, type) {\n if (type === 'hour') {\n return this.isDisabledHour(date);\n }\n\n if (type === 'minute') {\n return this.isDisabledMinute(date);\n }\n\n if (type === 'ampm') {\n return this.isDisabledAMPM(date);\n }\n\n return this.isDisabledTime(date);\n },\n handleSelect: function handleSelect(value, type) {\n var date = new Date(value);\n\n if (!this.isDisabled(value, type)) {\n this.innerValue = date;\n\n if (!this.isDisabledTime(date)) {\n this.$emit('select', date, type);\n }\n }\n },\n handleClickTitle: function handleClickTitle() {\n this.$emit('clicktitle');\n },\n getClasses: function getClasses(value, type) {\n var cellDate = new Date(value);\n\n if (this.isDisabled(value, type)) {\n return 'disabled';\n }\n\n if (cellDate.getTime() === this.innerValue.getTime()) {\n return 'active';\n }\n\n return '';\n }\n }\n};\n\n/* script */\nvar __vue_script__$8 = script$8;\n/* template */\n\nvar __vue_render__$b = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c('div', {\n class: _vm.prefixClass + \"-time\"\n }, [_vm.showTimeHeader ? _c('div', {\n class: _vm.prefixClass + \"-time-header\"\n }, [_c('button', {\n class: _vm.prefixClass + \"-btn \" + _vm.prefixClass + \"-btn-text \" + _vm.prefixClass + \"-time-header-title\",\n attrs: {\n \"type\": \"button\"\n },\n on: {\n \"click\": _vm.handleClickTitle\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.title) + \"\\n \")])]) : _vm._e(), _vm._v(\" \"), _c('div', {\n class: _vm.prefixClass + \"-time-content\"\n }, [_vm.timePickerOptions ? _c('list-options', {\n attrs: {\n \"date\": _vm.innerValue,\n \"get-classes\": _vm.getClasses,\n \"options\": _vm.timePickerOptions,\n \"format\": _vm.innerForamt\n },\n on: {\n \"select\": _vm.handleSelect\n }\n }) : _c('list-columns', _vm._b({\n attrs: {\n \"date\": _vm.innerValue,\n \"get-classes\": _vm.getClasses,\n \"hour-options\": _vm.hourOptions,\n \"minute-options\": _vm.minuteOptions,\n \"second-options\": _vm.secondOptions,\n \"hour-step\": _vm.hourStep,\n \"minute-step\": _vm.minuteStep,\n \"second-step\": _vm.secondStep,\n \"scroll-duration\": _vm.scrollDuration\n },\n on: {\n \"select\": _vm.handleSelect\n }\n }, 'list-columns', _vm.ShowHourMinuteSecondAMPM, false))], 1)]);\n};\n\nvar __vue_staticRenderFns__$b = [];\n/* style */\n\nvar __vue_inject_styles__$b = undefined;\n/* scoped */\n\nvar __vue_scope_id__$b = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__$b = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__$b = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__$b = normalizeComponent({\n render: __vue_render__$b,\n staticRenderFns: __vue_staticRenderFns__$b\n}, __vue_inject_styles__$b, __vue_script__$8, __vue_scope_id__$b, __vue_is_functional_template__$b, __vue_module_identifier__$b, false, undefined, undefined, undefined);\n\nvar TimeRange = {\n name: 'TimeRange',\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n props: _objectSpread2({}, __vue_component__$b.props),\n data: function data() {\n return {\n startValue: new Date(NaN),\n endValue: new Date(NaN)\n };\n },\n watch: {\n value: {\n immediate: true,\n handler: function handler() {\n if (isValidRangeDate(this.value)) {\n var _this$value = _slicedToArray(this.value, 2),\n startValue = _this$value[0],\n endValue = _this$value[1];\n\n this.startValue = startValue;\n this.endValue = endValue;\n } else {\n this.startValue = new Date(NaN);\n this.endValue = new Date(NaN);\n }\n }\n }\n },\n methods: {\n emitChange: function emitChange(type, index) {\n var date = [this.startValue, this.endValue];\n this.$emit('select', date, type === 'time' ? 'time-range' : type, index);\n },\n handleSelectStart: function handleSelectStart(date, type) {\n this.startValue = date; // check the NaN\n\n if (!(this.endValue.getTime() >= date.getTime())) {\n this.endValue = date;\n }\n\n this.emitChange(type, 0);\n },\n handleSelectEnd: function handleSelectEnd(date, type) {\n // check the NaN\n this.endValue = date;\n\n if (!(this.startValue.getTime() <= date.getTime())) {\n this.startValue = date;\n }\n\n this.emitChange(type, 1);\n },\n disabledStartTime: function disabledStartTime(date) {\n return this.disabledTime(date, 0);\n },\n disabledEndTime: function disabledEndTime(date) {\n return date.getTime() < this.startValue.getTime() || this.disabledTime(date, 1);\n }\n },\n render: function render() {\n var h = arguments[0];\n var defaultValues = Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue, this.defaultValue];\n var prefixClass = this.prefixClass;\n return h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-range-wrapper\")\n }, [h(__vue_component__$b, {\n \"props\": _objectSpread2({}, _objectSpread2({}, this.$props, {\n value: this.startValue,\n defaultValue: defaultValues[0],\n disabledTime: this.disabledStartTime\n })),\n \"on\": _objectSpread2({}, _objectSpread2({}, this.$listeners, {\n select: this.handleSelectStart\n }))\n }), h(__vue_component__$b, {\n \"props\": _objectSpread2({}, _objectSpread2({}, this.$props, {\n value: this.endValue,\n defaultValue: defaultValues[1],\n disabledTime: this.disabledEndTime\n })),\n \"on\": _objectSpread2({}, _objectSpread2({}, this.$listeners, {\n select: this.handleSelectEnd\n }))\n })]);\n }\n};\n\nvar DatetimePanel = {\n name: 'DatetimePanel',\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n emits: ['select', 'update:show-time-panel'],\n props: _objectSpread2({}, CalendarPanel.props, {}, __vue_component__$b.props, {\n showTimePanel: {\n type: Boolean,\n default: undefined\n }\n }),\n data: function data() {\n return {\n defaultTimeVisible: false,\n currentValue: this.value\n };\n },\n computed: {\n timeVisible: function timeVisible() {\n return typeof this.showTimePanel === 'boolean' ? this.showTimePanel : this.defaultTimeVisible;\n }\n },\n watch: {\n value: function value(val) {\n this.currentValue = val;\n }\n },\n methods: {\n closeTimePanel: function closeTimePanel() {\n this.defaultTimeVisible = false;\n this.$emit('update:show-time-panel', false);\n },\n openTimePanel: function openTimePanel() {\n this.defaultTimeVisible = true;\n this.$emit('update:show-time-panel', true);\n },\n emitDate: function emitDate(date, type) {\n this.$emit('select', date, type);\n },\n handleSelect: function handleSelect(date, type) {\n if (type === 'date') {\n this.openTimePanel();\n }\n\n var datetime = assignTime(date, getValidDate(this.value, this.defaultValue));\n\n if (this.disabledTime(new Date(datetime))) {\n // set the time of defalutValue;\n datetime = assignTime(date, this.defaultValue);\n\n if (this.disabledTime(new Date(datetime))) {\n // if disabled don't emit date\n this.currentValue = datetime;\n return;\n }\n }\n\n this.emitDate(datetime, type);\n }\n },\n render: function render() {\n var h = arguments[0];\n var calendarProps = {\n props: _objectSpread2({}, pick(this.$props, Object.keys(CalendarPanel.props)), {\n type: 'date',\n value: this.currentValue\n }),\n on: {\n select: this.handleSelect\n }\n };\n var timeProps = {\n props: _objectSpread2({}, pick(this.$props, Object.keys(__vue_component__$b.props)), {\n showTimeHeader: true,\n value: this.currentValue\n }),\n on: {\n select: this.emitDate,\n clicktitle: this.closeTimePanel\n }\n };\n var prefixClass = this.prefixClass;\n return h(\"div\", [h(CalendarPanel, helper([{}, calendarProps])), this.timeVisible && h(__vue_component__$b, helper([{\n \"class\": \"\".concat(prefixClass, \"-calendar-time\")\n }, timeProps]))]);\n }\n};\n\nvar DatetimeRange = {\n name: 'DatetimeRange',\n inject: {\n prefixClass: {\n default: 'mx'\n }\n },\n emits: ['select', 'update:show-time-panel'],\n props: _objectSpread2({}, CalendarRange.props, {}, TimeRange.props, {\n showTimePanel: {\n type: Boolean,\n default: undefined\n }\n }),\n data: function data() {\n return {\n defaultTimeVisible: false,\n currentValue: this.value\n };\n },\n computed: {\n timeVisible: function timeVisible() {\n return typeof this.showTimePanel === 'boolean' ? this.showTimePanel : this.defaultTimeVisible;\n }\n },\n watch: {\n value: function value(val) {\n this.currentValue = val;\n }\n },\n methods: {\n closeTimePanel: function closeTimePanel() {\n this.defaultTimeVisible = false;\n this.$emit('update:show-time-panel', false);\n },\n openTimePanel: function openTimePanel() {\n this.defaultTimeVisible = true;\n this.$emit('update:show-time-panel', true);\n },\n emitDate: function emitDate(dates, type) {\n this.$emit('select', dates, type);\n },\n handleSelect: function handleSelect(dates, type) {\n var _this = this;\n\n if (type === 'date') {\n this.openTimePanel();\n }\n\n var defaultValues = Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue, this.defaultValue];\n var datetimes = dates.map(function (date, i) {\n var time = isValidRangeDate(_this.value) ? _this.value[i] : defaultValues[i];\n return assignTime(date, time);\n });\n\n if (datetimes[1].getTime() < datetimes[0].getTime()) {\n datetimes = [datetimes[0], datetimes[0]];\n }\n\n if (datetimes.some(this.disabledTime)) {\n datetimes = dates.map(function (date, i) {\n return assignTime(date, defaultValues[i]);\n });\n\n if (datetimes.some(this.disabledTime)) {\n this.currentValue = datetimes;\n return;\n }\n }\n\n this.emitDate(datetimes, type);\n }\n },\n render: function render() {\n var h = arguments[0];\n var calendarProps = {\n props: _objectSpread2({}, pick(this.$props, Object.keys(CalendarRange.props)), {\n type: 'date',\n value: this.currentValue\n }),\n on: {\n select: this.handleSelect\n }\n };\n var timeProps = {\n props: _objectSpread2({}, pick(this.$props, Object.keys(TimeRange.props)), {\n value: this.currentValue,\n showTimeHeader: true\n }),\n on: {\n select: this.emitDate,\n clicktitle: this.closeTimePanel\n }\n };\n var prefixClass = this.prefixClass;\n return h(\"div\", [h(CalendarRange, helper([{}, calendarProps])), this.timeVisible && h(TimeRange, helper([{\n \"class\": \"\".concat(prefixClass, \"-calendar-time\")\n }, timeProps]))]);\n }\n};\n\nvar componentMap = {\n default: CalendarPanel,\n time: __vue_component__$b,\n datetime: DatetimePanel\n};\nvar componentRangeMap = {\n default: CalendarRange,\n time: TimeRange,\n datetime: DatetimeRange\n};\nvar DatePicker = {\n name: 'DatePicker',\n provide: function provide() {\n var _this = this;\n\n return {\n // make locale reactive\n getLocale: function getLocale() {\n return _this.locale;\n },\n getWeek: this.getWeek,\n prefixClass: this.prefixClass,\n dispatchDatePicker: this.$emit.bind(this)\n };\n },\n props: _objectSpread2({}, DatetimePanel.props, {\n value: {},\n valueType: {\n type: String,\n default: 'date' // date, format, timestamp, or token like 'YYYY-MM-DD'\n\n },\n type: {\n type: String,\n // ['date', 'datetime', 'time', 'year', 'month', 'week']\n default: 'date'\n },\n format: {\n type: String\n },\n formatter: {\n type: Object\n },\n range: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n rangeSeparator: {\n type: String\n },\n lang: {\n type: [String, Object]\n },\n placeholder: {\n type: String,\n default: ''\n },\n editable: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n clearable: {\n type: Boolean,\n default: true\n },\n prefixClass: {\n type: String,\n default: 'mx'\n },\n inputClass: {},\n inputAttr: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n appendToBody: {\n type: Boolean,\n default: true\n },\n open: {\n type: Boolean,\n default: undefined\n },\n popupClass: {},\n popupStyle: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n inline: {\n type: Boolean,\n default: false\n },\n confirm: {\n type: Boolean,\n default: false\n },\n confirmText: {\n type: String,\n default: 'OK'\n },\n renderInputText: {\n type: Function\n },\n shortcuts: {\n type: Array,\n validator: function validator(value) {\n return Array.isArray(value) && value.every(function (v) {\n return isObject(v) && typeof v.text === 'string' && typeof v.onClick === 'function';\n });\n },\n default: function _default() {\n return [];\n }\n }\n }),\n data: function data() {\n return {\n // cache the innervalue, wait to confirm\n currentValue: null,\n userInput: null,\n defaultOpen: false,\n mouseInInput: false\n };\n },\n computed: {\n popupVisible: function popupVisible() {\n return !this.disabled && (typeof this.open === 'boolean' ? this.open : this.defaultOpen);\n },\n innerRangeSeparator: function innerRangeSeparator() {\n return this.rangeSeparator || (this.multiple ? ',' : ' ~ ');\n },\n innerFormat: function innerFormat() {\n var map = {\n date: 'YYYY-MM-DD',\n datetime: 'YYYY-MM-DD HH:mm:ss',\n year: 'YYYY',\n month: 'YYYY-MM',\n time: 'HH:mm:ss',\n week: 'w'\n };\n return this.format || map[this.type] || map.date;\n },\n innerValue: function innerValue() {\n var value = this.value;\n\n if (this.validMultipleType) {\n value = Array.isArray(value) ? value : [];\n return value.map(this.value2date);\n }\n\n if (this.range) {\n value = Array.isArray(value) ? value.slice(0, 2) : [null, null];\n return value.map(this.value2date);\n }\n\n return this.value2date(value);\n },\n text: function text() {\n var _this2 = this;\n\n if (this.userInput !== null) {\n return this.userInput;\n }\n\n if (typeof this.renderInputText === 'function') {\n return this.renderInputText(this.innerValue);\n }\n\n if (!this.isValidValue(this.innerValue)) {\n return '';\n }\n\n if (Array.isArray(this.innerValue)) {\n return this.innerValue.map(function (v) {\n return _this2.formatDate(v);\n }).join(this.innerRangeSeparator);\n }\n\n return this.formatDate(this.innerValue);\n },\n showClearIcon: function showClearIcon() {\n return !this.disabled && this.clearable && this.text && this.mouseInInput;\n },\n locale: function locale() {\n if (isObject(this.lang)) {\n return mergeDeep(getLocale(), this.lang);\n }\n\n return getLocale(this.lang);\n },\n validMultipleType: function validMultipleType() {\n var types = ['date', 'month', 'year'];\n return this.multiple && !this.range && types.indexOf(this.type) !== -1;\n }\n },\n watch: {\n innerValue: {\n immediate: true,\n handler: function handler(val) {\n this.currentValue = val;\n }\n },\n popupVisible: {\n handler: function handler(val) {\n if (val) {\n this.currentValue = this.innerValue;\n }\n }\n }\n },\n created: function created() {\n if (_typeof(this.format) === 'object') {\n console.warn(\"[vue2-datepicker]: The prop `format` don't support Object any more. You can use the new prop `formatter` to replace it\");\n }\n },\n methods: {\n handleMouseEnter: function handleMouseEnter() {\n this.mouseInInput = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n this.mouseInInput = false;\n },\n handleClickOutSide: function handleClickOutSide(evt) {\n var target = evt.target;\n\n if (!this.$el.contains(target)) {\n this.closePopup();\n }\n },\n getFormatter: function getFormatter(key) {\n return isObject(this.formatter) && this.formatter[key] || isObject(this.format) && this.format[key];\n },\n getWeek: function getWeek$1(date, options) {\n if (typeof this.getFormatter('getWeek') === 'function') {\n return this.getFormatter('getWeek')(date, options);\n }\n\n return getWeek(date, options);\n },\n parseDate: function parseDate(value, fmt) {\n fmt = fmt || this.innerFormat;\n\n if (typeof this.getFormatter('parse') === 'function') {\n return this.getFormatter('parse')(value, fmt);\n }\n\n var backupDate = new Date();\n return parse(value, fmt, {\n locale: this.locale.formatLocale,\n backupDate: backupDate\n });\n },\n formatDate: function formatDate(date, fmt) {\n fmt = fmt || this.innerFormat;\n\n if (typeof this.getFormatter('stringify') === 'function') {\n return this.getFormatter('stringify')(date, fmt);\n }\n\n return format(date, fmt, {\n locale: this.locale.formatLocale\n });\n },\n // transform the outer value to inner date\n value2date: function value2date(value) {\n switch (this.valueType) {\n case 'date':\n return value instanceof Date ? new Date(value.getTime()) : new Date(NaN);\n\n case 'timestamp':\n return typeof value === 'number' ? new Date(value) : new Date(NaN);\n\n case 'format':\n return typeof value === 'string' ? this.parseDate(value) : new Date(NaN);\n\n default:\n return typeof value === 'string' ? this.parseDate(value, this.valueType) : new Date(NaN);\n }\n },\n // transform the inner date to outer value\n date2value: function date2value(date) {\n if (!isValidDate(date)) return null;\n\n switch (this.valueType) {\n case 'date':\n return date;\n\n case 'timestamp':\n return date.getTime();\n\n case 'format':\n return this.formatDate(date);\n\n default:\n return this.formatDate(date, this.valueType);\n }\n },\n emitValue: function emitValue(date, type) {\n var close = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // fix IE11/10 trigger input event when input is focused. (placeholder !== '')\n this.userInput = null;\n var value = Array.isArray(date) ? date.map(this.date2value) : this.date2value(date);\n this.$emit('input', value);\n this.$emit('change', value, type);\n\n if (close) {\n this.closePopup();\n }\n\n return value;\n },\n isValidValue: function isValidValue(value) {\n if (this.validMultipleType) {\n return isValidDates(value);\n }\n\n if (this.range) {\n return isValidRangeDate(value);\n }\n\n return isValidDate(value);\n },\n isValidValueAndNotDisabled: function isValidValueAndNotDisabled(value) {\n if (!this.isValidValue(value)) {\n return false;\n }\n\n var disabledDate = typeof this.disabledDate === 'function' ? this.disabledDate : function () {\n return false;\n };\n var disabledTime = typeof this.disabledTime === 'function' ? this.disabledTime : function () {\n return false;\n };\n\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n return value.every(function (v) {\n return !disabledDate(v) && !disabledTime(v);\n });\n },\n handleMultipleDates: function handleMultipleDates(date, dates) {\n if (this.validMultipleType && dates) {\n var nextDates = dates.filter(function (v) {\n return v.getTime() !== date.getTime();\n });\n\n if (nextDates.length === dates.length) {\n nextDates.push(date);\n }\n\n return nextDates;\n }\n\n return date;\n },\n handleSelectDate: function handleSelectDate(val, type, dates) {\n val = this.handleMultipleDates(val, dates);\n\n if (this.confirm) {\n this.currentValue = val;\n } else {\n this.emitValue(val, type, // this.type === 'datetime', click the time should close popup\n !this.validMultipleType && (type === this.type || type === 'time'));\n }\n },\n clear: function clear() {\n this.emitValue(this.range ? [null, null] : null);\n this.$emit('clear');\n },\n handleClear: function handleClear(evt) {\n evt.stopPropagation();\n this.clear();\n },\n handleConfirmDate: function handleConfirmDate() {\n var value = this.emitValue(this.currentValue);\n this.$emit('confirm', value);\n },\n handleSelectShortcut: function handleSelectShortcut(evt) {\n var index = evt.currentTarget.getAttribute('data-index');\n var item = this.shortcuts[parseInt(index, 10)];\n\n if (isObject(item) && typeof item.onClick === 'function') {\n var date = item.onClick(this);\n\n if (date) {\n this.emitValue(date);\n }\n }\n },\n openPopup: function openPopup(evt) {\n if (this.popupVisible || this.disabled) return;\n this.defaultOpen = true;\n this.$emit('open', evt);\n this.$emit('update:open', true);\n },\n closePopup: function closePopup() {\n if (!this.popupVisible) return;\n this.defaultOpen = false;\n this.$emit('close');\n this.$emit('update:open', false);\n },\n blur: function blur() {\n // when use slot input\n if (this.$refs.input) {\n this.$refs.input.blur();\n }\n },\n focus: function focus() {\n if (this.$refs.input) {\n this.$refs.input.focus();\n }\n },\n handleInputChange: function handleInputChange() {\n var _this3 = this;\n\n if (!this.editable || this.userInput === null) return;\n var text = this.userInput.trim();\n this.userInput = null;\n\n if (text === '') {\n this.clear();\n return;\n }\n\n var date;\n\n if (this.validMultipleType) {\n date = text.split(this.innerRangeSeparator).map(function (v) {\n return _this3.parseDate(v.trim());\n });\n } else if (this.range) {\n var arr = text.split(this.innerRangeSeparator);\n\n if (arr.length !== 2) {\n // Maybe the separator during the day is the same as the separator for the date\n // eg: 2019-10-09-2020-01-02\n arr = text.split(this.innerRangeSeparator.trim());\n }\n\n date = arr.map(function (v) {\n return _this3.parseDate(v.trim());\n });\n } else {\n date = this.parseDate(text);\n }\n\n if (this.isValidValueAndNotDisabled(date)) {\n this.emitValue(date);\n this.blur();\n } else {\n this.$emit('input-error', text);\n }\n },\n handleInputInput: function handleInputInput(evt) {\n // slot input v-model\n this.userInput = typeof evt === 'string' ? evt : evt.target.value;\n },\n handleInputKeydown: function handleInputKeydown(evt) {\n var keyCode = evt.keyCode; // Tab 9 or Enter 13\n\n if (keyCode === 9) {\n this.closePopup();\n } else if (keyCode === 13) {\n this.handleInputChange();\n }\n },\n handleInputBlur: function handleInputBlur(evt) {\n // tab close\n this.$emit('blur', evt);\n },\n handleInputFocus: function handleInputFocus(evt) {\n this.openPopup(evt);\n this.$emit('focus', evt);\n },\n hasSlot: function hasSlot(name) {\n return !!(this.$slots[name] || this.$scopedSlots[name]);\n },\n renderSlot: function renderSlot(name, fallback, props) {\n var slotFn = this.$scopedSlots[name];\n\n if (slotFn) {\n return slotFn(props) || fallback;\n }\n\n return this.$slots[name] || fallback;\n },\n renderInput: function renderInput() {\n var h = this.$createElement;\n var prefixClass = this.prefixClass;\n\n var props = _objectSpread2({\n name: 'date',\n type: 'text',\n autocomplete: 'off',\n value: this.text,\n class: this.inputClass || \"\".concat(this.prefixClass, \"-input\"),\n readonly: !this.editable,\n disabled: this.disabled,\n placeholder: this.placeholder\n }, this.inputAttr);\n\n var value = props.value,\n className = props.class,\n attrs = _objectWithoutProperties(props, [\"value\", \"class\"]);\n\n var events = {\n keydown: this.handleInputKeydown,\n focus: this.handleInputFocus,\n blur: this.handleInputBlur,\n input: this.handleInputInput,\n change: this.handleInputChange\n };\n var input = this.renderSlot('input', h(\"input\", {\n \"domProps\": {\n \"value\": value\n },\n \"class\": className,\n \"attrs\": _objectSpread2({}, attrs),\n \"on\": _objectSpread2({}, events),\n \"ref\": \"input\"\n }), {\n props: props,\n events: events\n });\n var calendarIcon = this.type === 'time' ? h(__vue_component__$2) : h(__vue_component__$1); // remove touchstart event to avoid opens the popup while scrolling in mobile #469\n\n return h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-input-wrapper\"),\n \"on\": {\n \"mouseenter\": this.handleMouseEnter,\n \"mouseleave\": this.handleMouseLeave,\n \"click\": this.openPopup\n },\n \"ref\": \"inputWrapper\"\n }, [input, this.showClearIcon ? h(\"i\", {\n \"class\": \"\".concat(prefixClass, \"-icon-clear\"),\n \"on\": {\n \"click\": this.handleClear\n }\n }, [this.renderSlot('icon-clear', h(__vue_component__$3))]) : h(\"i\", {\n \"class\": \"\".concat(prefixClass, \"-icon-calendar\")\n }, [this.renderSlot('icon-calendar', calendarIcon)])]);\n },\n renderContent: function renderContent() {\n var h = this.$createElement;\n var map = this.range ? componentRangeMap : componentMap;\n var Component = map[this.type] || map.default;\n\n var props = _objectSpread2({}, pick(this.$props, Object.keys(Component.props)), {\n value: this.currentValue\n });\n\n var on = _objectSpread2({}, pick(this.$listeners, Component.emits || []), {\n select: this.handleSelectDate\n });\n\n var content = h(Component, helper([{}, {\n props: props,\n on: on,\n ref: 'picker'\n }]));\n return h(\"div\", {\n \"class\": \"\".concat(this.prefixClass, \"-datepicker-body\")\n }, [this.renderSlot('content', content, {\n value: this.currentValue,\n emit: this.handleSelectDate\n })]);\n },\n renderSidebar: function renderSidebar() {\n var _this4 = this;\n\n var h = this.$createElement;\n var prefixClass = this.prefixClass;\n return h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-datepicker-sidebar\")\n }, [this.renderSlot('sidebar', null, {\n value: this.currentValue,\n emit: this.handleSelectDate\n }), this.shortcuts.map(function (v, i) {\n return h(\"button\", {\n \"key\": i,\n \"attrs\": {\n \"data-index\": i,\n \"type\": \"button\"\n },\n \"class\": \"\".concat(prefixClass, \"-btn \").concat(prefixClass, \"-btn-text \").concat(prefixClass, \"-btn-shortcut\"),\n \"on\": {\n \"click\": _this4.handleSelectShortcut\n }\n }, [v.text]);\n })]);\n },\n renderHeader: function renderHeader() {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": \"\".concat(this.prefixClass, \"-datepicker-header\")\n }, [this.renderSlot('header', null, {\n value: this.currentValue,\n emit: this.handleSelectDate\n })]);\n },\n renderFooter: function renderFooter() {\n var h = this.$createElement;\n var prefixClass = this.prefixClass;\n return h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-datepicker-footer\")\n }, [this.renderSlot('footer', null, {\n value: this.currentValue,\n emit: this.handleSelectDate\n }), this.confirm ? h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": \"\".concat(prefixClass, \"-btn \").concat(prefixClass, \"-datepicker-btn-confirm\"),\n \"on\": {\n \"click\": this.handleConfirmDate\n }\n }, [this.confirmText]) : null]);\n }\n },\n render: function render() {\n var _class;\n\n var h = arguments[0];\n var prefixClass = this.prefixClass,\n inline = this.inline,\n disabled = this.disabled;\n var sidedar = this.hasSlot('sidebar') || this.shortcuts.length ? this.renderSidebar() : null;\n var content = h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-datepicker-content\")\n }, [this.hasSlot('header') ? this.renderHeader() : null, this.renderContent(), this.hasSlot('footer') || this.confirm ? this.renderFooter() : null]);\n return h(\"div\", {\n \"class\": (_class = {}, _defineProperty(_class, \"\".concat(prefixClass, \"-datepicker\"), true), _defineProperty(_class, \"\".concat(prefixClass, \"-datepicker-range\"), this.range), _defineProperty(_class, \"\".concat(prefixClass, \"-datepicker-inline\"), inline), _defineProperty(_class, \"disabled\", disabled), _class)\n }, [!inline ? this.renderInput() : null, !inline ? h(__vue_component__, {\n \"ref\": \"popup\",\n \"class\": this.popupClass,\n \"style\": this.popupStyle,\n \"attrs\": {\n \"visible\": this.popupVisible,\n \"appendToBody\": this.appendToBody\n },\n \"on\": {\n \"clickoutside\": this.handleClickOutSide\n }\n }, [sidedar, content]) : h(\"div\", {\n \"class\": \"\".concat(prefixClass, \"-datepicker-main\")\n }, [sidedar, content])]);\n }\n};\n\nDatePicker.locale = locale;\n\nDatePicker.install = function install(Vue) {\n Vue.component(DatePicker.name, DatePicker);\n};\n\nif (typeof window !== 'undefined' && window.Vue) {\n DatePicker.install(window.Vue);\n}\n\n_extends(DatePicker, {\n CalendarPanel: CalendarPanel,\n CalendarRange: CalendarRange,\n TimePanel: __vue_component__$b,\n TimeRange: TimeRange,\n DatetimePanel: DatetimePanel,\n DatetimeRange: DatetimeRange\n});\n\nexport default DatePicker;\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueSelect=t():e.VueSelect=t()}(\"undefined\"!=typeof self?self:this,(function(){return(()=>{var e={646:e=>{e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}},713:e=>{e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},860:e=>{e.exports=function(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}},206:e=>{e.exports=function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}},319:(e,t,n)=>{var o=n(646),i=n(860),s=n(206);e.exports=function(e){return o(e)||i(e)||s()}},8:e=>{function t(n){return\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},t(n)}e.exports=t}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var o={};return(()=>{\"use strict\";n.r(o),n.d(o,{VueSelect:()=>m,default:()=>O,mixins:()=>_});var e=n(319),t=n.n(e),i=n(8),s=n.n(i),r=n(713),a=n.n(r);const l={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer:function(){this.autoscroll&&this.maybeAdjustScroll()},open:function(e){var t=this;this.autoscroll&&e&&this.$nextTick((function(){return t.maybeAdjustScroll()}))}},methods:{maybeAdjustScroll:function(){var e,t=(null===(e=this.$refs.dropdownMenu)||void 0===e?void 0:e.children[this.typeAheadPointer])||!1;if(t){var n=this.getDropdownViewport(),o=t.getBoundingClientRect(),i=o.top,s=o.bottom,r=o.height;if(i<n.top)return this.$refs.dropdownMenu.scrollTop=t.offsetTop;if(s>n.bottom)return this.$refs.dropdownMenu.scrollTop=t.offsetTop-(n.height-r)}},getDropdownViewport:function(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},c={data:function(){return{typeAheadPointer:-1}},watch:{filteredOptions:function(){for(var e=0;e<this.filteredOptions.length;e++)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},open:function(e){e&&this.typeAheadToLastSelected()},selectedValue:function(){this.open&&this.typeAheadToLastSelected()}},methods:{typeAheadUp:function(){for(var e=this.typeAheadPointer-1;e>=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown:function(){for(var e=this.typeAheadPointer+1;e<this.filteredOptions.length;e++)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadSelect:function(){var e=this.filteredOptions[this.typeAheadPointer];e&&this.selectable(e)&&this.select(e)},typeAheadToLastSelected:function(){var e=0!==this.selectedValue.length?this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length-1]):-1;-1!==e&&(this.typeAheadPointer=e)}}},u={props:{loading:{type:Boolean,default:!1}},data:function(){return{mutableLoading:!1}},watch:{search:function(){this.$emit(\"search\",this.search,this.toggleLoading)},loading:function(e){this.mutableLoading=e}},methods:{toggleLoading:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.mutableLoading=null==e?!this.mutableLoading:e}}};function p(e,t,n,o,i,s,r,a){var l,c=\"function\"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),o&&(c.functional=!0),s&&(c._scopeId=\"data-v-\"+s),r?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},c._ssrRegister=l):i&&(l=a?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(e,t){return l.call(t),u(e,t)}}else{var p=c.beforeCreate;c.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:c}}const h={Deselect:p({},(function(){var e=this.$createElement,t=this._self._c||e;return t(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"10\",height:\"10\"}},[t(\"path\",{attrs:{d:\"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\"}})])}),[],!1,null,null,null).exports,OpenIndicator:p({},(function(){var e=this.$createElement,t=this._self._c||e;return t(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"14\",height:\"10\"}},[t(\"path\",{attrs:{d:\"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\"}})])}),[],!1,null,null,null).exports},d={inserted:function(e,t,n){var o=n.context;if(o.appendToBody){var i=o.$refs.toggle.getBoundingClientRect(),s=i.height,r=i.top,a=i.left,l=i.width,c=window.scrollX||window.pageXOffset,u=window.scrollY||window.pageYOffset;e.unbindPosition=o.calculatePosition(e,o,{width:l+\"px\",left:c+a+\"px\",top:u+r+s+\"px\"}),document.body.appendChild(e)}},unbind:function(e,t,n){n.context.appendToBody&&(e.unbindPosition&&\"function\"==typeof e.unbindPosition&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}};const f=function(e){var t={};return Object.keys(e).sort().forEach((function(n){t[n]=e[n]})),JSON.stringify(t)};var y=0;const g=function(){return++y};function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){a()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const m=p({components:v({},h),directives:{appendToBody:d},mixins:[l,c,u],props:{value:{},components:{type:Object,default:function(){return{}}},options:{type:Array,default:function(){return[]}},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:\"\"},transition:{type:String,default:\"vs__fade\"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:\"label\"},autocomplete:{type:String,default:\"off\"},reduce:{type:Function,default:function(e){return e}},selectable:{type:Function,default:function(e){return!0}},getOptionLabel:{type:Function,default:function(e){return\"object\"===s()(e)?e.hasOwnProperty(this.label)?e[this.label]:console.warn('[vue-select warn]: Label key \"option.'.concat(this.label,'\" does not')+\" exist in options object \".concat(JSON.stringify(e),\".\\n\")+\"https://vue-select.org/api/props.html#getoptionlabel\"):e}},getOptionKey:{type:Function,default:function(e){if(\"object\"!==s()(e))return e;try{return e.hasOwnProperty(\"id\")?e.id:f(e)}catch(t){return console.warn(\"[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.\\nhttps://vue-select.org/api/props.html#getoptionkey\",e,t)}}},onTab:{type:Function,default:function(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default:function(e,t,n){return(t||\"\").toLocaleLowerCase().indexOf(n.toLocaleLowerCase())>-1}},filter:{type:Function,default:function(e,t){var n=this;return e.filter((function(e){var o=n.getOptionLabel(e);return\"number\"==typeof o&&(o=o.toString()),n.filterBy(e,o,t)}))}},createOption:{type:Function,default:function(e){return\"object\"===s()(this.optionList[0])?a()({},this.label,e):e}},resetOnOptionsChange:{default:!1,validator:function(e){return[\"function\",\"boolean\"].includes(s()(e))}},clearSearchOnBlur:{type:Function,default:function(e){var t=e.clearSearchOnSelect,n=e.multiple;return t&&!n}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:\"auto\"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:function(){return[13]}},searchInputQuerySelector:{type:String,default:\"[type=search]\"},mapKeydown:{type:Function,default:function(e,t){return e}},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default:function(e,t,n){var o=n.width,i=n.top,s=n.left;e.style.top=i,e.style.left=s,e.style.width=o}},dropdownShouldOpen:{type:Function,default:function(e){var t=e.noDrop,n=e.open,o=e.mutableLoading;return!t&&(n&&!o)}},uid:{type:[String,Number],default:function(){return g()}}},data:function(){return{search:\"\",open:!1,isComposing:!1,pushedTags:[],_value:[]}},computed:{isTrackingValues:function(){return void 0===this.value||this.$options.propsData.hasOwnProperty(\"reduce\")},selectedValue:function(){var e=this.value;return this.isTrackingValues&&(e=this.$data._value),null!=e&&\"\"!==e?[].concat(e):[]},optionList:function(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl:function(){return this.$scopedSlots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope:function(){var e=this,t={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:v({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,\"aria-autocomplete\":\"list\",\"aria-labelledby\":\"vs\".concat(this.uid,\"__combobox\"),\"aria-controls\":\"vs\".concat(this.uid,\"__listbox\"),ref:\"search\",type:\"search\",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{\"aria-activedescendant\":\"vs\".concat(this.uid,\"__option-\").concat(this.typeAheadPointer)}:{}),events:{compositionstart:function(){return e.isComposing=!0},compositionend:function(){return e.isComposing=!1},keydown:this.onSearchKeyDown,keypress:this.onSearchKeyPress,blur:this.onSearchBlur,focus:this.onSearchFocus,input:function(t){return e.search=t.target.value}}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:\"openIndicator\",role:\"presentation\",class:\"vs__open-indicator\"}},listHeader:t,listFooter:t,header:v({},t,{deselect:this.deselect}),footer:v({},t,{deselect:this.deselect})}},childComponents:function(){return v({},h,{},this.components)},stateClasses:function(){return{\"vs--open\":this.dropdownOpen,\"vs--single\":!this.multiple,\"vs--multiple\":this.multiple,\"vs--searching\":this.searching&&!this.noDrop,\"vs--searchable\":this.searchable&&!this.noDrop,\"vs--unsearchable\":!this.searchable,\"vs--loading\":this.mutableLoading,\"vs--disabled\":this.disabled}},searching:function(){return!!this.search},dropdownOpen:function(){return this.dropdownShouldOpen(this)},searchPlaceholder:function(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions:function(){var e=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return e;var t=this.search.length?this.filter(e,this.search,this):e;if(this.taggable&&this.search.length){var n=this.createOption(this.search);this.optionExists(n)||t.unshift(n)}return t},isValueEmpty:function(){return 0===this.selectedValue.length},showClearButton:function(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options:function(e,t){var n=this;!this.taggable&&(\"function\"==typeof n.resetOnOptionsChange?n.resetOnOptionsChange(e,t,n.selectedValue):n.resetOnOptionsChange)&&this.clearSelection(),this.value&&this.isTrackingValues&&this.setInternalValueFromOptions(this.value)},value:{immediate:!0,handler:function(e){this.isTrackingValues&&this.setInternalValueFromOptions(e)}},multiple:function(){this.clearSelection()},open:function(e){this.$emit(e?\"open\":\"close\")},search:function(e){e.length&&(this.open=!0)}},created:function(){this.mutableLoading=this.loading,this.$on(\"option:created\",this.pushTag)},methods:{setInternalValueFromOptions:function(e){var t=this;Array.isArray(e)?this.$data._value=e.map((function(e){return t.findOptionFromReducedValue(e)})):this.$data._value=this.findOptionFromReducedValue(e)},select:function(e){this.$emit(\"option:selecting\",e),this.isOptionSelected(e)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(e):(this.taggable&&!this.optionExists(e)&&this.$emit(\"option:created\",e),this.multiple&&(e=this.selectedValue.concat(e)),this.updateValue(e),this.$emit(\"option:selected\",e)),this.onAfterSelect(e)},deselect:function(e){var t=this;this.$emit(\"option:deselecting\",e),this.updateValue(this.selectedValue.filter((function(n){return!t.optionComparator(n,e)}))),this.$emit(\"option:deselected\",e)},clearSelection:function(){this.updateValue(this.multiple?[]:null)},onAfterSelect:function(e){var t=this;this.closeOnSelect&&(this.open=!this.open),this.clearSearchOnSelect&&(this.search=\"\"),this.noDrop&&this.multiple&&this.$nextTick((function(){return t.$refs.search.focus()}))},updateValue:function(e){var t=this;void 0===this.value&&(this.$data._value=e),null!==e&&(e=Array.isArray(e)?e.map((function(e){return t.reduce(e)})):this.reduce(e)),this.$emit(\"input\",e)},toggleDropdown:function(e){var n=e.target!==this.searchEl;n&&e.preventDefault();var o=[].concat(t()(this.$refs.deselectButtons||[]),t()([this.$refs.clearButton]||0));void 0===this.searchEl||o.filter(Boolean).some((function(t){return t.contains(e.target)||t===e.target}))?e.preventDefault():this.open&&n?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected:function(e){var t=this;return this.selectedValue.some((function(n){return t.optionComparator(n,e)}))},isOptionDeselectable:function(e){return this.isOptionSelected(e)&&this.deselectFromDropdown},optionComparator:function(e,t){return this.getOptionKey(e)===this.getOptionKey(t)},findOptionFromReducedValue:function(e){var n=this,o=[].concat(t()(this.options),t()(this.pushedTags)).filter((function(t){return JSON.stringify(n.reduce(t))===JSON.stringify(e)}));return 1===o.length?o[0]:o.find((function(e){return n.optionComparator(e,n.$data._value)}))||e},closeSearchOptions:function(){this.open=!1,this.$emit(\"search:blur\")},maybeDeleteValue:function(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){var e=null;this.multiple&&(e=t()(this.selectedValue.slice(0,this.selectedValue.length-1))),this.updateValue(e)}},optionExists:function(e){var t=this;return this.optionList.some((function(n){return t.optionComparator(n,e)}))},normalizeOptionForSlot:function(e){return\"object\"===s()(e)?e:a()({},this.label,e)},pushTag:function(e){this.pushedTags.push(e)},onEscape:function(){this.search.length?this.search=\"\":this.open=!1},onSearchBlur:function(){if(!this.mousedown||this.searching){var e=this.clearSearchOnSelect,t=this.multiple;return this.clearSearchOnBlur({clearSearchOnSelect:e,multiple:t})&&(this.search=\"\"),void this.closeSearchOptions()}this.mousedown=!1,0!==this.search.length||0!==this.options.length||this.closeSearchOptions()},onSearchFocus:function(){this.open=!0,this.$emit(\"search:focus\")},onMousedown:function(){this.mousedown=!0},onMouseUp:function(){this.mousedown=!1},onSearchKeyDown:function(e){var t=this,n=function(e){return e.preventDefault(),!t.isComposing&&t.typeAheadSelect()},o={8:function(e){return t.maybeDeleteValue()},9:function(e){return t.onTab()},27:function(e){return t.onEscape()},38:function(e){if(e.preventDefault(),t.open)return t.typeAheadUp();t.open=!0},40:function(e){if(e.preventDefault(),t.open)return t.typeAheadDown();t.open=!0}};this.selectOnKeyCodes.forEach((function(e){return o[e]=n}));var i=this.mapKeydown(o,this);if(\"function\"==typeof i[e.keyCode])return i[e.keyCode](e)},onSearchKeyPress:function(e){this.open||32!==e.keyCode||(e.preventDefault(),this.open=!0)}}},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"v-select\",class:e.stateClasses,attrs:{dir:e.dir}},[e._t(\"header\",null,null,e.scope.header),e._v(\" \"),n(\"div\",{ref:\"toggle\",staticClass:\"vs__dropdown-toggle\",attrs:{id:\"vs\"+e.uid+\"__combobox\",role:\"combobox\",\"aria-expanded\":e.dropdownOpen.toString(),\"aria-owns\":\"vs\"+e.uid+\"__listbox\",\"aria-controls\":\"vs\"+e.uid+\"__listbox\",\"aria-label\":\"Search for option\"},on:{mousedown:function(t){return e.toggleDropdown(t)}}},[n(\"div\",{ref:\"selectedOptions\",staticClass:\"vs__selected-options\"},[e._l(e.selectedValue,(function(t){return e._t(\"selected-option-container\",[n(\"span\",{key:e.getOptionKey(t),staticClass:\"vs__selected\"},[e._t(\"selected-option\",[e._v(\"\\n \"+e._s(e.getOptionLabel(t))+\"\\n \")],null,e.normalizeOptionForSlot(t)),e._v(\" \"),e.multiple?n(\"button\",{ref:\"deselectButtons\",refInFor:!0,staticClass:\"vs__deselect\",attrs:{disabled:e.disabled,type:\"button\",title:\"Deselect \"+e.getOptionLabel(t),\"aria-label\":\"Deselect \"+e.getOptionLabel(t)},on:{click:function(n){return e.deselect(t)}}},[n(e.childComponents.Deselect,{tag:\"component\"})],1):e._e()],2)],{option:e.normalizeOptionForSlot(t),deselect:e.deselect,multiple:e.multiple,disabled:e.disabled})})),e._v(\" \"),e._t(\"search\",[n(\"input\",e._g(e._b({staticClass:\"vs__search\"},\"input\",e.scope.search.attributes,!1),e.scope.search.events))],null,e.scope.search)],2),e._v(\" \"),n(\"div\",{ref:\"actions\",staticClass:\"vs__actions\"},[n(\"button\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.showClearButton,expression:\"showClearButton\"}],ref:\"clearButton\",staticClass:\"vs__clear\",attrs:{disabled:e.disabled,type:\"button\",title:\"Clear Selected\",\"aria-label\":\"Clear Selected\"},on:{click:e.clearSelection}},[n(e.childComponents.Deselect,{tag:\"component\"})],1),e._v(\" \"),e._t(\"open-indicator\",[e.noDrop?e._e():n(e.childComponents.OpenIndicator,e._b({tag:\"component\"},\"component\",e.scope.openIndicator.attributes,!1))],null,e.scope.openIndicator),e._v(\" \"),e._t(\"spinner\",[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.mutableLoading,expression:\"mutableLoading\"}],staticClass:\"vs__spinner\"},[e._v(\"Loading...\")])],null,e.scope.spinner)],2)]),e._v(\" \"),n(\"transition\",{attrs:{name:e.transition}},[e.dropdownOpen?n(\"ul\",{directives:[{name:\"append-to-body\",rawName:\"v-append-to-body\"}],key:\"vs\"+e.uid+\"__listbox\",ref:\"dropdownMenu\",staticClass:\"vs__dropdown-menu\",attrs:{id:\"vs\"+e.uid+\"__listbox\",role:\"listbox\",tabindex:\"-1\"},on:{mousedown:function(t){return t.preventDefault(),e.onMousedown(t)},mouseup:e.onMouseUp}},[e._t(\"list-header\",null,null,e.scope.listHeader),e._v(\" \"),e._l(e.filteredOptions,(function(t,o){return n(\"li\",{key:e.getOptionKey(t),staticClass:\"vs__dropdown-option\",class:{\"vs__dropdown-option--deselect\":e.isOptionDeselectable(t)&&o===e.typeAheadPointer,\"vs__dropdown-option--selected\":e.isOptionSelected(t),\"vs__dropdown-option--highlight\":o===e.typeAheadPointer,\"vs__dropdown-option--disabled\":!e.selectable(t)},attrs:{id:\"vs\"+e.uid+\"__option-\"+o,role:\"option\",\"aria-selected\":o===e.typeAheadPointer||null},on:{mouseover:function(n){e.selectable(t)&&(e.typeAheadPointer=o)},click:function(n){n.preventDefault(),n.stopPropagation(),e.selectable(t)&&e.select(t)}}},[e._t(\"option\",[e._v(\"\\n \"+e._s(e.getOptionLabel(t))+\"\\n \")],null,e.normalizeOptionForSlot(t))],2)})),e._v(\" \"),0===e.filteredOptions.length?n(\"li\",{staticClass:\"vs__no-options\"},[e._t(\"no-options\",[e._v(\"\\n Sorry, no matching options.\\n \")],null,e.scope.noOptions)],2):e._e(),e._v(\" \"),e._t(\"list-footer\",null,null,e.scope.listFooter)],2):n(\"ul\",{staticStyle:{display:\"none\",visibility:\"hidden\"},attrs:{id:\"vs\"+e.uid+\"__listbox\",role:\"listbox\"}})]),e._v(\" \"),e._t(\"footer\",null,null,e.scope.footer)],2)}),[],!1,null,null,null).exports,_={ajax:u,pointer:c,pointerScroll:l},O=m})(),o})()}));\n//# sourceMappingURL=vue-select.js.map","<template>\n <div v-if=\"value\" class=\"modal fade show d-block\" tabindex=\"-1\" style=\"background: rgba(0,0,0,0.5);\">\n <div class=\"modal-dialog modal-dialog-scrollable modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Edit Data Pribadi</h5>\n <button @click=\"close\" type=\"button\" class=\"btn-close\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"row g-3\">\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Nama Lengkap</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.name\" placeholder=\"Nama Lengkap\"\n style=\"text-transform: uppercase\" @input=\"formData.name = $event.target.value.toUpperCase()\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Nama Panggilan</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.nick_name\" placeholder=\"Nama Panggilan\"\n style=\"text-transform: uppercase\" @input=\"formData.nick_name = $event.target.value.toUpperCase()\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Email</label>\n <input type=\"email\" class=\"form-control\" v-model=\"formData.email\" placeholder=\"Email\" readonly />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Phone</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.phone\" placeholder=\"No HP\"\n @input=\"formatPhone\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">NIK</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.national_id\" placeholder=\"16 digit NIK\"\n maxlength=\"16\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">No KK</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.family_national_id\" placeholder=\"16 digit No KK\"\n maxlength=\"16\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Tempat Lahir</label>\n <input type=\"text\" class=\"form-control\" v-model=\"formData.place_of_birth\" placeholder=\"Tempat Lahir\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Tanggal Lahir</label>\n <DatePicker v-model=\"formData.birth_date\" format=\"YYYY-MM-DD\" value-type=\"format\" @input=\"hitungUmur\" />\n <div v-if=\"ageInfo.age !== null\" class=\"mt-2\">\n <small :class=\"isAgeRestricted ? 'text-danger' : 'text-muted'\">\n Umur per 31 Juli {{ currentYear }}: <strong>{{ ageInfo.text }}</strong>\n </small>\n <div v-if=\"isAgeRestricted\" class=\"text-danger mt-1\">\n <small><i class=\"bi bi-exclamation-circle\"></i> Tidak dapat menyimpan data untuk usia 21 tahun atau\n lebih</small>\n </div>\n </div>\n <div v-if=\"loadingAge\" class=\"mt-2\">\n <small class=\"text-muted\">Menghitung umur...</small>\n </div>\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label fw-semibold\">Jenis Kelamin</label>\n <div>\n <input type=\"radio\" v-model=\"formData.sex\" value=\"1\" id=\"male\" />\n <label for=\"male\">Laki-Laki</label>\n <input type=\"radio\" v-model=\"formData.sex\" value=\"2\" id=\"female\" class=\"ms-3\" />\n <label for=\"female\">Perempuan</label>\n </div>\n </div>\n <div class=\"col-md-12\">\n <label class=\"form-label fw-semibold\">Alamat Lengkap</label>\n <textarea class=\"form-control\" v-model=\"formData.address\" placeholder=\"Alamat Lengkap\"\n rows=\"3\"></textarea>\n </div>\n <div class=\"col-md-12\">\n <label class=\"form-label fw-semibold\">Riwayat Penyakit</label>\n <textarea class=\"form-control\" v-model=\"formData.medical_history\" placeholder=\"Riwayat Penyakit\"\n rows=\"3\"></textarea>\n </div>\n <div class=\"col-md-12\">\n <label class=\"form-label fw-semibold\">Kabupaten/Kota</label>\n <v-select v-model=\"formData.location\" :options=\"locations\"\n placeholder=\"Ketik untuk mencari kabupaten/kota...\" @search=\"handleSearch\" :filterable=\"false\">\n <template #no-options>\n Ketik untuk mencari kabupaten/kota...\n </template>\n </v-select>\n </div>\n <div class=\"col-md-12\">\n <SgFileUploader v-model=\"formData.national_card\" label=\"Upload KTP\" />\n </div>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button v-if=\"!isAgeRestricted\" @click=\"save\" type=\"button\" class=\"btn btn-primary rounded-pill px-4\">\n Simpan\n </button>\n <button @click=\"close\" type=\"button\" class=\"btn btn-outline-secondary rounded-pill px-4\">\n Batal\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport DatePicker from \"vue2-datepicker\";\nimport \"vue2-datepicker/index.css\";\nimport vSelect from 'vue-select';\nimport 'vue-select/dist/vue-select.css';\nimport SgFileUploader from '../components/SgFileUploader.vue';\nimport { checkAge } from '@/api/profileApi';\n\nexport default {\n name: 'PersonalDataEditModal',\n components: {\n DatePicker,\n vSelect,\n SgFileUploader\n },\n props: {\n value: {\n type: Boolean,\n default: false\n },\n user: {\n type: Object,\n required: true\n },\n locations: {\n type: Array,\n default: () => []\n }\n },\n data() {\n return {\n formData: {},\n ageInfo: {\n age: null,\n text: null\n },\n loadingAge: false,\n currentYear: new Date().getFullYear()\n };\n },\n watch: {\n value(newVal) {\n if (newVal) {\n this.formData = { ...this.user };\n if (this.formData.birth_date) {\n this.hitungUmur();\n }\n }\n }\n },\n computed: {\n isAgeRestricted() {\n const res = (Array.isArray(this.user.role) ? this.user.role.includes('user') || this.user.role.includes('c_thalabah') : this.user.role === 'user' || this.user.role === 'c_thalabah') && this.ageInfo.age >= 21;\n return res;\n }\n },\n methods: {\n formatPhone(event) {\n this.formData.phone = event.target.value\n .replace(/[^\\d+]/g, '')\n .replace(/(\\d{4})/g, '$1 ');\n },\n handleSearch(search, loading) {\n this.$emit('search-locations', search, loading);\n },\n async hitungUmur() {\n if (!this.formData.birth_date) {\n this.ageInfo.age = null;\n return;\n }\n\n this.loadingAge = true;\n try {\n const response = await checkAge(this.formData.birth_date);\n if (response.data && response.data.data) {\n this.ageInfo.age = response.data.data.y;\n this.ageInfo.text = response.data.data.text;\n }\n } catch (error) {\n console.error('Error menghitung umur:', error);\n this.ageInfo.age = null;\n this.ageInfo.text = null;\n } finally {\n this.loadingAge = false;\n }\n },\n save() {\n if (this.isAgeRestricted) {\n alert('Tidak dapat menyimpan data untuk usia 21 tahun atau lebih per 31 Juli ' + this.currentYear);\n return;\n }\n this.$emit('save', this.formData);\n },\n close() {\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n\n.v-select {\n width: 100%;\n}\n\n.v-select .vs__dropdown-toggle {\n padding: 0.375rem 0.75rem;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.v-select .vs__search {\n margin: 0;\n padding: 0;\n border: none;\n}\n\n.v-select .vs__search:focus {\n outline: none;\n}\n\n.v-select .vs__dropdown-menu {\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n max-height: 250px;\n overflow-y: auto;\n}\n\n.v-select .vs__dropdown-option {\n padding: 0.5rem 0.75rem;\n}\n\n.v-select .vs__dropdown-option--highlight {\n background: #0d6efd;\n color: white;\n}\n\n.v-select .vs__selected {\n margin: 0;\n padding: 0;\n}\n\n.v-select .vs__clear {\n margin-right: 5px;\n}\n</style>","<template>\n <div class=\"card shadow-sm\">\n <div class=\"card-body\">\n <!-- Personal Data Section (View Only) -->\n <div class=\"mb-4\">\n <div class=\"d-flex justify-content-between align-items-center mb-3\">\n <h4 class=\"fw-bold mb-0\">Data Pribadi</h4>\n <button class=\"btn btn-light rounded-circle\" @click=\"showEditModal = true\">\n <i class=\"uil uil-edit\"></i>\n </button>\n </div>\n <div class=\"row g-3\">\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Nama Panggilan:</span>\n <div class=\"fw-semibold\">{{ user.nick_name || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Email:</span>\n <div class=\"fw-semibold\">{{ user.email || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">NIK:</span>\n <div class=\"fw-semibold\">{{ user.national_id | nationalIdFormat }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">No KK:</span>\n <div class=\"fw-semibold\">{{ user.family_national_id || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Kewarganegaraan:</span>\n <div class=\"fw-semibold\">{{ user.citizen?.label || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Negara:</span>\n <div class=\"fw-semibold\">{{ user.country?.label || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Phone:</span>\n <div class=\"fw-semibold\">{{ user.phone | formatPhone }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Tempat Lahir:</span>\n <div class=\"fw-semibold\">{{ user.place_of_birth || '-' }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Jenis Kelamin:</span>\n <div class=\"fw-semibold\">{{ user.sex | formatGender }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">Tanggal Lahir:</span>\n <div class=\"fw-semibold\">{{ user.birth_date | formatDate }}</div>\n </div>\n <div class=\"col-md-6\">\n <span class=\"text-muted\">KTP:</span>\n <div v-if=\"user.national_card\">\n <a @click=\"$emit('show-preview', user.national_card?.url)\" class=\"link\">\n <i class=\"uil uil-file-alt\"></i> Lihat KTP\n </a>\n </div>\n <div v-else class=\"fw-semibold\">-</div>\n </div>\n <div class=\"col-md-12\">\n <span class=\"text-muted\">Alamat:</span>\n <div class=\"fw-semibold\">{{ user.address || '-' }}</div>\n </div>\n <div class=\"col-md-12\">\n <span class=\"text-muted\">Lokasi:</span>\n <div class=\"fw-semibold\">{{ user.location?.label || '-' }}</div>\n </div>\n </div>\n </div>\n\n <!-- Modal Edit Data Pribadi -->\n <PersonalDataEditModal v-model=\"showEditModal\" :user=\"user\" :locations=\"locations\" @save=\"handleSave\"\n @search-locations=\"handleSearchLocations\" />\n </div>\n </div>\n</template>\n\n<script>\nimport PersonalDataEditModal from './PersonalDataEditModal.vue';\n\nexport default {\n name: 'ProfilePersonalData',\n components: {\n PersonalDataEditModal\n },\n props: {\n user: {\n type: Object,\n required: true\n },\n locations: {\n type: Array,\n default: () => []\n }\n },\n data () {\n return {\n showEditModal: false\n };\n },\n mounted () {\n this.$root.$on('open-modal', ({ type }) => {\n if (type === 'profile') {\n this.showEditModal = true;\n }\n });\n },\n beforeDestroy () {\n this.$root.$off('open-modal');\n },\n methods: {\n handleSave (updatedData) {\n this.$emit('update', updatedData);\n this.showEditModal = false;\n },\n handleSearchLocations (search, loading) {\n this.$emit('search-locations', search, loading);\n }\n }\n};\n</script>\n\n<style scoped>\n.link {\n cursor: pointer;\n color: #0d6efd;\n text-decoration: none;\n}\n\n.link:hover {\n text-decoration: underline;\n}\n</style>","<template>\n <div v-if=\"value\" class=\"modal fade show d-block\" tabindex=\"-1\" style=\"background: rgba(0,0,0,0.5);\">\n <div class=\"modal-dialog modal-dialog-centered\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">\n Verifikasi {{ verificationType === 'email' ? 'Email' : 'Nomor Telepon' }}\n </h5>\n <button @click=\"close\" type=\"button\" class=\"btn-close\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"text-center mb-4\">\n <div class=\"mb-3\">\n <i :class=\"verificationType === 'email' ? 'uil uil-envelope' : 'uil uil-phone'\" class=\"text-primary\"\n style=\"font-size: 64px;\"></i>\n </div>\n\n <div v-if=\"verificationType === 'phone'\" class=\"mb-3\">\n <label for=\"phone\" class=\"form-label\">Nomor Telepon</label>\n <input type=\"text\" class=\"form-control\" id=\"phone\" :value=\"formattedPhone\" @input=\"onPhoneInput\"\n placeholder=\"0812 3456 7890\" :class=\"{ 'is-invalid': phoneError }\" />\n <div v-if=\"phoneError\" class=\"invalid-feedback\">\n {{ phoneError }}\n </div>\n </div>\n\n <p class=\"text-muted\">\n {{ verificationType === 'email'\n ? 'Link verifikasi akan dikirim ke ' + email\n : 'Pesan verifikasi akan dikirim ke ' + phone\n }}\n </p>\n </div>\n <button @click=\"sendOtp\" class=\"btn btn-primary w-100\" :disabled=\"isButtonDisabled\">\n <span v-if=\"sendingOtp\" class=\"spinner-border spinner-border-sm me-2\"></span>\n {{ sendingOtp ? 'Mengirim...' :\n (verificationType === 'email' ? 'Kirim Link Verifikasi' : 'Verifikasi Whatsapp')\n }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { sendEmailOtp, sendPhoneOtp } from '@/api/profileApi';\nimport { showToast } from '../utils/toast';\nimport Swal from 'sweetalert2';\n\nexport default {\n name: 'OtpModal',\n props: {\n value: {\n type: Boolean,\n default: false\n },\n verificationType: {\n type: String,\n required: true\n },\n email: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n phone: '',\n phoneError: '',\n sendingOtp: false\n };\n },\n computed: {\n formattedPhone() {\n if (!this.phone) return '';\n // Format: 0812 3456 7890 (pisah tiap 4 digit)\n return this.phone.replace(/(\\d{4})(?=\\d)/g, '$1 ');\n },\n isButtonDisabled() {\n if (this.verificationType === 'email') {\n return this.sendingOtp;\n }\n // Untuk phone: disabled jika sedang mengirim atau ada error atau nomor kosong\n return this.sendingOtp || !!this.phoneError || !this.phone;\n }\n },\n methods: {\n onPhoneInput(e) {\n // Ambil hanya angka\n let raw = e.target.value.replace(/\\D/g, '');\n this.phone = raw;\n this.validatePhone();\n },\n validatePhone() {\n if (!this.phone) {\n this.phoneError = 'Nomor telepon tidak boleh kosong';\n } else if (!this.phone.startsWith('0')) {\n this.phoneError = 'Nomor telepon harus diawali angka 0';\n } else if (this.phone.length < 9) {\n this.phoneError = 'Nomor telepon minimal 9 digit';\n } else {\n this.phoneError = '';\n }\n },\n async sendOtp() {\n this.sendingOtp = true;\n\n try {\n let data = {};\n let endpoint = '';\n\n if (this.verificationType === 'email') {\n await sendEmailOtp(this.email);\n showToast({\n icon: 'success',\n title: 'Berhasil',\n text: 'Link verifikasi telah dikirim ke email Anda'\n });\n this.$emit('verified');\n this.close();\n } else {\n const result = await Swal.fire({\n text: 'Pastikan nomor yang ditulis sesuai dengan nomor WhatsApp yang aktif: ' + this.phone,\n icon: 'question',\n showCancelButton: true,\n confirmButtonText: 'Kirim',\n cancelButtonText: 'Batal'\n });\n\n if (result.isConfirmed) {\n const res = await sendPhoneOtp(this.phone);\n const url = res.data.data.wa_url;\n const newTab = window.open(url, '_blank');\n if (newTab) {\n newTab.opener = window;\n }\n this.$emit('verified');\n this.close();\n }\n }\n } catch (error) {\n const errorMessage = error.response?.data?.user_message || 'Gagal melakukan verifikasi';\n showToast({\n icon: 'error',\n title: 'Error',\n text: errorMessage\n });\n } finally {\n this.sendingOtp = false;\n }\n },\n close() {\n this.phone = '';\n this.phoneError = '';\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n</style>","<template>\n <div class=\"card shadow-sm\">\n <div class=\"card-body border-top\">\n <div class=\"d-flex justify-content-between align-items-center mb-4\">\n <h3>Verifikasi Akun</h3>\n </div>\n\n <div class=\"row g-4\">\n <!-- Email Verification -->\n <div class=\"col-12\">\n <div class=\"d-flex gap-3\">\n <div class=\"flex-shrink-0\">\n <div class=\"d-flex align-items-center justify-content-center\"\n :class=\"user.email_verified_at ? 'bg-success' : 'bg-secondary'\"\n style=\"width: 48px; height: 48px; border-radius: 8px;\">\n <i class=\"uil uil-envelope text-white fs-5\"></i>\n </div>\n </div>\n <div class=\"flex-fill\">\n <div class=\"d-flex justify-content-between align-items-start\">\n <div>\n <h5 class=\"mb-1\">Email</h5>\n <p class=\"text-muted small mb-1\">{{ user.email || '-' }}</p>\n <span v-if=\"user.user_email && user.user_email.active\" class=\"badge bg-success\">\n <i class=\"uil uil-check\"></i> Terverifikasi\n </span>\n <span v-else class=\"badge bg-warning text-dark\">\n <i class=\"uil uil-exclamation-triangle\"></i> Belum Terverifikasi\n </span>\n </div>\n <button v-if=\"!user.user_email || !user.user_email.active\" class=\"btn btn-primary btn-sm rounded-pill\"\n @click=\"openVerificationModal('email')\">\n Verifikasi\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Phone Verification -->\n <div class=\"col-12\">\n <div class=\"d-flex gap-3\">\n <div class=\"flex-shrink-0\">\n <div class=\"d-flex align-items-center justify-content-center\"\n :class=\"user.phone_verified_at ? 'bg-success' : 'bg-secondary'\"\n style=\"width: 48px; height: 48px; border-radius: 8px;\">\n <i class=\"uil uil-phone text-white fs-5\"></i>\n </div>\n </div>\n <div class=\"flex-fill\">\n <div class=\"d-flex justify-content-between align-items-start\">\n <div>\n <h5 class=\"mb-1\">Nomor Telepon</h5>\n <p class=\"text-muted small mb-1\">{{ user.phone | formatPhone }}</p>\n <span v-if=\"user.phone_verified_at\" class=\"badge bg-success\">\n <i class=\"uil uil-check\"></i> Terverifikasi\n </span>\n <span v-else class=\"badge bg-warning text-dark\">\n <i class=\"uil uil-exclamation-triangle\"></i> Belum Terverifikasi\n </span>\n </div>\n <button v-if=\"!user.phone_verified_at\" class=\"btn btn-primary btn-sm rounded-pill\"\n @click=\"openVerificationModal('phone')\">\n Verifikasi\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Info Message -->\n <div class=\"alert alert-info d-flex gap-3 mt-4\" role=\"alert\">\n <i class=\"uil uil-info-circle flex-shrink-0\"></i>\n <div>\n <p class=\"fw-semibold mb-1\">Informasi Penting:</p>\n <p class=\"mb-0 small\">Verifikasi akun Anda untuk meningkatkan keamanan dan mengakses semua fitur aplikasi.</p>\n </div>\n </div>\n </div>\n\n <!-- OTP Modal -->\n <OtpModal v-model=\"showOtpModal\" :verification-type=\"verificationType\" :email=\"user.email\"\n @verified=\"handleVerified\" />\n </div>\n</template>\n\n<script>\nimport OtpModal from './OtpModal.vue';\n\nexport default {\n name: 'ProfileVerification',\n components: {\n OtpModal\n },\n props: {\n user: {\n type: Object,\n required: true\n }\n },\n data () {\n return {\n showOtpModal: false,\n verificationType: ''\n };\n },\n methods: {\n openVerificationModal (type) {\n this.verificationType = type;\n this.showOtpModal = true;\n },\n handleVerified () {\n this.$emit('verified');\n }\n }\n};\n</script>","<template>\n <div v-if=\"value\" class=\"modal fade show d-block\" tabindex=\"-1\" style=\"background: rgba(0,0,0,0.5);\">\n <div class=\"modal-dialog modal-dialog-scrollable modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">\n {{ isEdit ? 'Edit' : 'Tambah' }} Pendidikan\n </h5>\n <button @click=\"close\" type=\"button\" class=\"btn-close\"></button>\n </div>\n <div class=\"modal-body\">\n <div class=\"row g-3\">\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">Nomor Induk (NISN)</label>\n <input v-model=\"formData.nisn\" type=\"text\" class=\"form-control\" placeholder=\"NISN\" />\n </div>\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">Asal Sekolah</label>\n <input v-model=\"formData.previous_school\" type=\"text\" class=\"form-control\" placeholder=\"Asal Sekolah\" />\n </div>\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">Nilai rata-rata rapot kelas XII Semester I</label>\n <input v-model=\"formData.score\" type=\"number\" class=\"form-control\" :min=\"0\" :max=\"100\"\n placeholder=\"Nilai Rata-rata rapot kelas XII Semester I\" />\n </div>\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">Jurusan</label>\n <input v-model=\"formData.major\" type=\"text\" class=\"form-control\" placeholder=\"Jurusan\" />\n </div>\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">Tahun Lulus</label>\n <input v-model=\"formData.year_graduated\" type=\"number\" class=\"form-control\" placeholder=\"Tahun Lulus\" />\n </div>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button @click=\"save\" type=\"button\" class=\"btn btn-primary rounded-pill px-4\">\n Simpan\n </button>\n <button @click=\"close\" type=\"button\" class=\"btn btn-outline-secondary rounded-pill px-4\">\n Batal\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { addEducation } from '../api/profileApi';\nimport { showToast } from '../utils/toast';\n\nexport default {\n name: 'EducationModal',\n props: {\n value: {\n type: Boolean,\n default: false\n },\n education: {\n type: Object,\n default: null\n }\n },\n data() {\n return {\n formData: {\n }\n };\n },\n computed: {\n isEdit() {\n return !!this.education;\n }\n },\n watch: {\n value(newVal) {\n if (newVal) {\n if (this.education) {\n this.formData = { ...this.education };\n } else {\n this.resetForm();\n }\n }\n }\n },\n methods: {\n resetForm() {\n this.formData = {\n\n };\n },\n async save() {\n try {\n await addEducation(this.formData);\n showToast({\n icon: 'success',\n title: 'Success',\n text: 'Data pendidikan berhasil disimpan.'\n });\n this.$emit('save');\n this.close();\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n } catch (error) {\n showToast({\n icon: 'error',\n title: 'Error',\n text: 'Gagal menyimpan data: ' + error.response?.data?.user_message\n });\n }\n },\n close() {\n this.resetForm();\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n</style>","<template>\n <div class=\"card shadow-sm\">\n <div class=\"card-body border-top\">\n <div class=\"d-flex justify-content-between align-items-center mb-4\">\n <h3>Pendidikan</h3>\n <div class=\"d-flex gap-2\">\n <button class=\"btn btn-light rounded-circle\" @click=\"showAddModal = true\">\n <i class=\"uil uil-plus\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"row g-4\">\n <div class=\"col-12\" v-for=\"(edu, k) in educations?.data\" :key=\"k\">\n <div class=\"d-flex gap-3\">\n <div class=\"flex-shrink-0 d-flex align-items-center justify-content-center\"\n style=\"width: 48px; height: 48px;\">\n <a class=\"link\" @click=\"showPreview(edu.certificate?.url)\">\n <img v-if=\"edu.certificate\" :src=\"edu.certificate?.url\" alt=\"Ijazah\"\n style=\"width: 40px; height: 60px; object-fit: cover; object-position: center;\" />\n <span v-else\n style=\"width: 40px; height: 60px; display: flex; align-items: center; justify-content: center;\">\n <i class=\"uil uil-file-alt\"></i>\n </span>\n </a>\n </div>\n <div class=\"flex-fill\">\n <h5 class=\"mb-1\">{{ edu.previous_school }}</h5>\n <p class=\"text-muted small mb-1\">Rata-rata: {{ edu.score }}</p>\n <p class=\"text-muted small mb-1\">\n Jurusan: {{ edu.major }} - {{ edu.nisn }} · {{ edu.year_graduated }}\n </p>\n <span class=\"text-muted small\" v-if=\"edu.degree\">{{ edu.degree }}</span>\n <span v-if=\"edu.degree && edu.gpa\">-</span>\n <span class=\"text-muted small\" v-if=\"edu.gpa\">IPK: {{ edu.gpa }}</span>\n </div>\n <button class=\"btn\" @click=\"editEducation(edu)\">\n <i class=\"uil uil-edit\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <button class=\"btn btn-light w-100 mt-4\" v-if=\"educations?.meta?.has_next_page\" @click=\"loadMore\">\n Lihat Lebih Banyak\n <i class=\"uil uil-angle-down ms-2\"></i>\n </button>\n </div>\n\n <!-- Add/Edit Education Modal -->\n <EducationModal v-model=\"showAddModal\" :education=\"selectedEducation\" @save=\"handleSave\"\n @show-preview=\"showPreview\" />\n </div>\n</template>\n\n<script>\nimport EducationModal from './EducationModal.vue';\n\nexport default {\n name: 'ProfileEducation',\n components: {\n EducationModal\n },\n props: {\n educations: {\n type: Object,\n default: null\n }\n },\n data () {\n return {\n showAddModal: false,\n selectedEducation: null\n };\n },\n mounted () {\n this.$root.$on('open-modal', ({ type }) => {\n if (type === 'education') {\n this.showAddModal = true;\n }\n });\n },\n beforeDestroy () {\n this.$root.$off('open-modal');\n },\n methods: {\n editEducation (edu) {\n this.selectedEducation = edu;\n this.showAddModal = true;\n },\n handleSave () {\n this.selectedEducation = null;\n this.showAddModal = false;\n this.$emit('refresh');\n },\n loadMore () {\n this.$emit('refresh', true);\n },\n showPreview (url) {\n this.$root.$emit('show-preview', url);\n }\n }\n};\n</script>\n\n<style scoped>\n.link {\n cursor: pointer;\n color: #0d6efd;\n text-decoration: none;\n}\n\n.link:hover {\n text-decoration: underline;\n}\n</style>","<template>\n <div v-if=\"value\" class=\"modal fade show d-block\" tabindex=\"-1\" style=\"background: rgba(0,0,0,0.5);\">\n <div class=\"modal-dialog modal-dialog-scrollable modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">\n {{ isEdit ? 'Edit Data Orang Tua/Wali' : 'Tambah Data Orang Tua/Wali' }}\n </h5>\n <button @click=\"close\" type=\"button\" class=\"btn-close\"></button>\n </div>\n <div class=\"modal-body\">\n <div v-if=\"loading\" class=\"text-center py-4\">\n <div class=\"spinner-border\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n </div>\n </div>\n <div v-else class=\"row g-3\">\n <!-- Hubungan Keluarga -->\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">\n Hubungan Keluarga <span class=\"text-danger\">*</span>\n </label>\n <select v-model=\"formData.family_status\" class=\"form-select\" @change=\"changeFamilyStatus\">\n <option value=\"\">Pilih hubungan</option>\n <option value=\"father\">Ayah</option>\n <option value=\"mother\">Ibu</option>\n <option value=\"guardian\">Wali</option>\n </select>\n <small class=\"form-text text-danger\" v-if=\"errors.family_status\">\n {{ errors.family_status }}\n </small>\n </div>\n\n <!-- Nama -->\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">\n Nama Lengkap <span class=\"text-danger\">*</span>\n </label>\n <input v-model=\"formData.name\" type=\"text\" class=\"form-control\" placeholder=\"Masukkan nama lengkap\"\n style=\"text-transform: uppercase\" @input=\"formData.name = $event.target.value.toUpperCase()\" />\n <small class=\"form-text text-danger\" v-if=\"errors.name\">{{ errors.name }}</small>\n </div>\n\n <!-- NIK -->\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">\n NIK (Nomor Induk Kependudukan) <span class=\"text-danger\">*</span>\n </label>\n <input v-model=\"formData.national_id\" type=\"text\" class=\"form-control\" placeholder=\"Masukkan 16 digit NIK\"\n maxlength=\"16\">\n <small class=\"form-text text-danger\" v-if=\"errors.national_id\">\n {{ errors.national_id }}\n </small>\n </div>\n\n <!-- Status -->\n <div class=\"col-12\">\n <label class=\"form-label fw-semibold\">\n Status <span class=\"text-danger\">*</span>\n </label>\n <select v-model=\"formData.status\" class=\"form-select\">\n <option value=\"\">Pilih status</option>\n <option value=\"hidup\">Masih Hidup</option>\n <option value=\"meninggal\">Sudah Meninggal</option>\n </select>\n <small class=\"form-text text-danger\" v-if=\"errors.status\">{{ errors.status }}</small>\n </div>\n\n <!-- Family Relation (for Guardian) -->\n <div class=\"col-12\" v-if=\"formData.family_status == 'guardian' && formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Hubungan Keluarga <span class=\"text-danger\">*</span>\n </label>\n <input v-model=\"formData.family_relation\" type=\"text\" class=\"form-control\" placeholder=\"Contoh: Paman\">\n <small class=\"form-text text-danger\" v-if=\"errors.family_relation\">\n {{ errors.family_relation }}\n </small>\n </div>\n\n <!-- Pendidikan -->\n <div class=\"col-12\" v-if=\"formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Pendidikan Terakhir <span class=\"text-danger\">*</span>\n </label>\n <select v-model=\"formData.education\" class=\"form-select\">\n <option value=\"\">Pilih pendidikan terakhir</option>\n <option v-for=\"(label, value) in educations\" :key=\"value\" :value=\"value\">\n {{ label }}\n </option>\n </select>\n <small class=\"form-text text-danger\" v-if=\"errors.education\">\n {{ errors.education }}\n </small>\n </div>\n\n <!-- Pekerjaan -->\n <div class=\"col-12\" v-if=\"formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Pekerjaan <span class=\"text-danger\">*</span>\n </label>\n <input v-model=\"formData.work\" type=\"text\" class=\"form-control\" placeholder=\"Masukan pekerjaan\">\n <small class=\"form-text text-danger\" v-if=\"errors.work\">{{ errors.work }}</small>\n </div>\n\n <!-- Penghasilan -->\n <div class=\"col-12\" v-if=\"formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Penghasilan per Bulan <span class=\"text-danger\">*</span>\n </label>\n <select v-model=\"formData.income\" class=\"form-select\">\n <option value=\"\">Pilih range penghasilan</option>\n <option v-for=\"(label, value) in salaries\" :key=\"value\" :value=\"value\">\n {{ label }}\n </option>\n </select>\n <small class=\"form-text text-danger\" v-if=\"errors.income\">{{ errors.income }}</small>\n </div>\n\n <!-- No HP -->\n <div class=\"col-12\" v-if=\"formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Nomor HP <span class=\"text-danger\">*</span>\n </label>\n <input v-model=\"formData.phone\" type=\"tel\" class=\"form-control\" placeholder=\"Contoh: 081234567890\">\n <small class=\"form-text text-danger\" v-if=\"errors.phone\">{{ errors.phone }}</small>\n </div>\n\n <!-- Alamat -->\n <div class=\"col-12\" v-if=\"formData.status !== 'meninggal'\">\n <label class=\"form-label fw-semibold\">\n Alamat Lengkap <span class=\"text-danger\">*</span>\n </label>\n <textarea v-model=\"formData.address\" class=\"form-control\" rows=\"3\"\n placeholder=\"Masukan alamat lengkap\"></textarea>\n <small class=\"form-text text-danger\" v-if=\"errors.address\">{{ errors.address }}</small>\n </div>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button @click=\"save\" type=\"button\" class=\"btn btn-primary rounded-pill px-4\">\n Simpan\n </button>\n <button @click=\"close\" type=\"button\" class=\"btn btn-outline-secondary rounded-pill px-4\">\n Batal\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { getParentByStatus, addOrUpdateParent } from '@/api/profileApi';\nimport { showToast } from '../utils/toast';\n\nexport default {\n name: 'ParentModal',\n props: {\n value: {\n type: Boolean,\n default: false\n },\n parent: {\n type: Object,\n default: null\n },\n salaries: {\n type: Object,\n required: true\n },\n educations: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n formData: {\n family_status: '',\n name: '',\n status: '',\n national_id: '',\n education: '',\n work: '',\n income: '',\n phone: '',\n address: '',\n family_relation: ''\n },\n errors: {},\n loading: false\n };\n },\n computed: {\n isEdit() {\n return !!this.parent;\n }\n },\n watch: {\n value(newVal) {\n if (newVal) {\n if (this.parent) {\n this.formData = { ...this.parent };\n } else {\n this.resetForm();\n }\n }\n }\n },\n mounted() {\n this.$root.$on('set-family-status', (status) => {\n this.formData.family_status = status;\n this.changeFamilyStatus();\n });\n },\n beforeDestroy() {\n this.$root.$off('set-family-status');\n },\n methods: {\n resetForm() {\n this.formData = {\n\n };\n this.errors = {};\n },\n async changeFamilyStatus() {\n if (!this.formData.family_status) return;\n this.loading = true;\n try {\n const response = await getParentByStatus(this.formData.family_status);\n if (response.data.data) {\n this.formData = response.data.data;\n }\n } catch (error) {\n console.error('Error fetching parent data:', error);\n } finally {\n this.loading = false;\n }\n },\n async save() {\n this.errors = {};\n try {\n await addOrUpdateParent(this.formData.family_status, this.formData);\n showToast({\n icon: 'success',\n title: 'Success',\n text: 'Data orang tua/wali berhasil disimpan.'\n });\n this.$emit('save');\n this.close();\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n } catch (error) {\n this.errors = error.response?.data?.errors || {};\n showToast({\n icon: 'error',\n title: 'Error',\n text: 'Gagal menyimpan data: ' + error.response?.data?.user_message\n });\n }\n },\n close() {\n this.resetForm();\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n</style>","<template>\n <div class=\"card shadow-sm\">\n <div class=\"card-body border-top\">\n <div class=\"d-flex justify-content-between align-items-center mb-4\">\n <h3>Data Orang Tua / Wali</h3>\n <div class=\"d-flex gap-2\">\n <button @click=\"openDialog()\" class=\"btn btn-success rounded-circle\" title=\"Tambah Orang Tua/Wali\">\n <i class=\"uil uil-plus\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"row g-3\">\n <div v-for=\"parent in parents\" :key=\"parent.id\" class=\"col-12 mb-3\">\n <div>\n <div class=\"mb-3\">\n <div class=\"d-flex justify-content-between align-items-start mb-3\">\n <div class=\"d-flex align-items-center gap-3\">\n <div class=\"d-flex align-items-center justify-content-center flex-shrink-0\"\n style=\"width: 48px; height: 48px; background: linear-gradient(135deg, #3b82f6, #2563eb);\">\n <i class=\"uil uil-user text-white fs-5\"></i>\n </div>\n <div>\n <div class=\"d-flex align-items-center gap-2 mb-1\">\n <h5 class=\"mb-0\">{{ parent.name }}</h5>\n <span class=\"badge bg-primary\">{{ parent.family_status | parentStatus }}</span>\n <span class=\"badge bg-primary\"\n v-if=\"parent.status == 'hidup' && parent.family_status == 'father'\">Wali</span>\n </div>\n <p class=\"text-muted small mb-0\">{{ parent.work }}</p>\n </div>\n </div>\n <button @click=\"openDialog(parent)\" class=\"btn\" title=\"Edit Data\">\n <i class=\"uil uil-edit\"></i>\n </button>\n </div>\n\n <div class=\"row g-2 small\">\n <div class=\"col-md-6\">\n <div class=\"d-flex\">\n <span class=\"text-muted\" style=\"width: 130px;\">Status:</span>\n <span class=\"fw-medium\">{{ parent.status }}</span>\n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"d-flex\">\n <span class=\"text-muted\" style=\"width: 130px;\">NIK:</span>\n <span class=\"fw-medium\">{{ parent.national_id | nationalIdFormat }}</span>\n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"d-flex\">\n <span class=\"text-muted\" style=\"width: 130px;\">Pendidikan:</span>\n <span class=\"fw-medium\">{{ educations[parent.education] }}</span>\n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"d-flex\">\n <span class=\"text-muted\" style=\"width: 130px;\">Penghasilan:</span>\n <span class=\"fw-medium\">{{ salaries[parent.income] }}</span>\n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"d-flex\">\n <span class=\"text-muted\" style=\"width: 130px;\">No. HP:</span>\n <span class=\"fw-medium\">{{ parent.phone | formatPhone }}</span>\n </div>\n </div>\n <div class=\"col-12\">\n <div class=\"d-flex\">\n <span class=\"text-muted flex-shrink-0\" style=\"width: 130px;\">Alamat:</span>\n <span class=\"fw-medium\">{{ parent.address }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Info Message -->\n <div class=\"alert alert-info d-flex gap-3 mt-3\" role=\"alert\">\n <i class=\"uil uil-info-circle flex-shrink-0\"></i>\n <div>\n <p class=\"fw-semibold mb-1\">Informasi Penting:</p>\n <p class=\"mb-0 small\">Data orang tua/wali yang Anda masukkan akan dijaga kerahasiaannya\n dan hanya digunakan untuk keperluan administrasi.</p>\n </div>\n </div>\n </div>\n\n <!-- Parent Modal -->\n <ParentModal v-model=\"showParentDialog\" :parent=\"editingParent\" :salaries=\"salaries\" :educations=\"educations\"\n @save=\"handleSave\" />\n </div>\n</template>\n\n<script>\nimport ParentModal from './ParentModal.vue';\n\nexport default {\n name: 'ProfileParents',\n components: {\n ParentModal\n },\n props: {\n parents: {\n type: Array,\n default: () => []\n }\n },\n data () {\n return {\n showParentDialog: false,\n editingParent: null,\n salaries: {\n 0: 'Kurang dari Rp 1.000.000',\n 1000000: 'Rp 1.000.000 - Rp 2.000.000',\n 2000000: 'Rp 2.000.000 - Rp 5.000.000',\n 5000000: 'Rp 5.000.000 - Rp 10.000.000',\n 10000000: 'Rp 10.000.000 - Rp 15.000.000',\n 15000000: 'Rp 15.000.000 - Rp 20.000.000',\n 20000000: 'Rp 20.000.000 - Rp 25.000.000',\n 25000000: 'Rp 25.000.000 - Rp 30.000.000',\n 30000000: 'Rp 30.000.000 - Rp 40.000.000',\n 40000000: 'Rp 40.000.000 - Rp 50.000.000',\n 50000000: 'Rp 50.000.000 - Rp 60.000.000',\n 60000000: 'Rp 60.000.000 - Rp 70.000.000',\n 70000000: 'Rp 70.000.000 - Rp 80.000.000',\n 80000000: 'Rp 80.000.000 - Rp 90.000.000',\n 90000000: 'Rp 90.000.000 - Rp 100.000.000',\n 100000000: 'Lebih dari Rp 100.000.000'\n },\n educations: {\n sd: 'SD/Sederajat',\n smp: 'SMP/Sederajat',\n sma: 'SMA/Sederajat',\n d3: 'Diploma (D3)',\n d4: 'Diploma (D4)',\n s1: 'Sarjana (S1)',\n s2: 'Magister (S2)',\n s3: 'Doktor (S3)'\n }\n };\n },\n mounted () {\n this.$root.$on('open-modal', ({ type, subType }) => {\n if (type === 'parent') {\n this.showParentDialog = true;\n if (subType) {\n this.$nextTick(() => {\n this.$root.$emit('set-family-status', subType);\n });\n }\n }\n });\n },\n beforeDestroy () {\n this.$root.$off('open-modal');\n },\n methods: {\n openDialog (parent = null) {\n this.editingParent = parent;\n this.showParentDialog = true;\n },\n handleSave () {\n this.editingParent = null;\n this.showParentDialog = false;\n this.$emit('refresh');\n }\n }\n};\n</script>","<template>\n <div class=\"modal fade\" :class=\"{ 'show': value }\" :style=\"{ display: value ? 'block' : 'none' }\" tabindex=\"-1\"\n aria-labelledby=\"previewModalLabel\" aria-hidden=\"true\">\n <div class=\"modal-dialog modal-dialog-centered\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\" id=\"previewModalLabel\">Preview Dokumen</h5>\n <button type=\"button\" class=\"btn-close\" @click=\"close\" aria-label=\"Close\"></button>\n </div>\n <div class=\"modal-body\">\n <img v-if=\"url\" :src=\"url\" class=\"img-fluid\" referrerpolicy=\"no-referrer\" alt=\"Preview\" />\n <div v-else class=\"text-center py-4\">\n <p class=\"text-muted\">Tidak ada dokumen untuk ditampilkan</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'PreviewModal',\n props: {\n value: {\n type: Boolean,\n default: false\n },\n url: {\n type: String,\n default: null\n }\n },\n mounted () {\n this.$root.$on('show-preview', (url) => {\n this.$emit('input', true);\n this.$emit('update:url', url);\n });\n },\n beforeDestroy () {\n this.$root.$off('show-preview');\n },\n methods: {\n close () {\n this.$emit('input', false);\n }\n }\n};\n</script>\n\n<style scoped>\n.modal.show {\n display: block;\n}\n</style>","<template>\n <div class=\"min-vh-100 bg-light\">\n <ProfileHeader :user=\"me\" @update-profile=\"handleProfileUpdate\" @update-photo=\"handlePhotoUpdate\"\n @reset-password=\"handleResetPassword\" />\n\n <ProfilePersonalData :user=\"me\" :locations=\"locations\" @update=\"handleProfileUpdate\"\n @search-locations=\"searchLocations\" />\n\n <ProfileVerification :user=\"me\" @verified=\"handleVerified\" />\n\n <ProfileEducation :educations=\"userEducation\" @refresh=\"getUserEducation\" />\n\n <ProfileParents :parents=\"parentsData\" @refresh=\"getParents\" />\n\n <PreviewModal v-model=\"showPreview\" :url=\"previewUrl\" />\n </div>\n</template>\n\n<script>\nimport {\n getProfile,\n getParents as apiGetParents,\n getEducations,\n getLocations,\n updateProfile,\n changePassword\n} from '@/api/profileApi';\nimport { showToast } from '../utils/toast';\nimport ProfileHeader from './ProfileHeader.vue';\nimport ProfilePersonalData from './ProfilePersonalData.vue';\nimport ProfileVerification from './ProfileVerification.vue';\nimport ProfileEducation from './ProfileEducation.vue';\nimport ProfileParents from './ProfileParents.vue';\nimport PreviewModal from './PreviewModal.vue';\n\nexport default {\n name: 'ProfilePage',\n components: {\n ProfileHeader,\n ProfilePersonalData,\n ProfileVerification,\n ProfileEducation,\n ProfileParents,\n PreviewModal\n },\n data() {\n return {\n me: {},\n userEducation: null,\n parentsData: null,\n locations: [],\n showPreview: false,\n previewUrl: null\n };\n },\n async created() {\n await this.getMe();\n await this.getParents();\n await this.getUserEducation();\n this.handleQueryParams();\n },\n methods: {\n async getMe() {\n try {\n const response = await getProfile();\n this.me = response.data.data;\n localStorage.setItem(\"__putm.sia.user\", JSON.stringify(this.me));\n } catch (error) {\n console.error(error);\n }\n },\n async getParents() {\n try {\n const response = await apiGetParents();\n this.parentsData = response.data.data;\n } catch (error) {\n console.error(error);\n }\n },\n async getUserEducation() {\n try {\n const response = await getEducations();\n this.userEducation = response.data;\n } catch (error) {\n console.error(error);\n }\n },\n async searchLocations(search, loading) {\n if (search.length < 3) return;\n loading(true);\n try {\n // getLocations tidak menerima parameter, jadi gunakan axios manual jika perlu search param\n const response = await getLocations();\n // Jika API mendukung query param, ubah getLocations agar menerima param search\n // const response = await getLocations(search);\n this.locations = response.data.data || [];\n } catch (error) {\n console.error('Error searching locations:', error);\n } finally {\n loading(false);\n }\n },\n async handleProfileUpdate(updatedData) {\n try {\n await updateProfile(updatedData);\n showToast({\n icon: 'success',\n title: 'Success',\n text: 'Data profile berhasil disimpan.'\n });\n await this.getMe();\n await this.redirectIfNeeded();\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n } catch (error) {\n showToast({\n icon: 'error',\n title: 'Error',\n text: 'Gagal menyimpan data profile: ' + error.response.data.user_message\n });\n }\n },\n async handlePhotoUpdate(photo) {\n this.me.photo = photo;\n await this.handleProfileUpdate(this.me);\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n },\n handleVerified() {\n this.getMe();\n },\n handleQueryParams() {\n // Handle query parameters untuk auto-open modal\n const { data, type } = this.$route.query;\n if (data) {\n this.$nextTick(() => {\n // Emit event ke child components\n this.$root.$emit('open-modal', { type: data, subType: type });\n });\n }\n },\n async redirectIfNeeded() {\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n },\n async handleResetPassword(passwordForm) {\n try {\n await changePassword(passwordForm);\n showToast({\n icon: 'success',\n title: 'Success',\n text: 'Password berhasil diubah.'\n });\n await this.getMe();\n await this.redirectIfNeeded();\n if (this.$route.query.r) {\n this.$router.push(this.$route.query.r);\n }\n } catch (error) {\n showToast({\n icon: 'error',\n title: 'Gagal mengubah password: ' + error.response.data.user_message\n });\n }\n }\n }\n};\n</script>","// src/index.js - Entry point utama\n// Eksport semua komponen\n\n// Komponen utama\nexport { default as Profile } from './components/Profile.vue';\nexport { default as ProfileHeader } from './components/ProfileHeader.vue';\nexport { default as ProfilePersonalData } from './components/ProfilePersonalData.vue';\nexport { default as ProfileEducation } from './components/ProfileEducation.vue';\nexport { default as ProfileParents } from './components/ProfileParents.vue';\nexport { default as ProfileVerification } from './components/ProfileVerification.vue';\n\n// Modal components\nexport { default as EducationModal } from './components/EducationModal.vue';\nexport { default as ImageCropModal } from './components/ImageCropModal.vue';\nexport { default as OtpModal } from './components/OtpModal.vue';\nexport { default as ParentModal } from './components/ParentModal.vue';\nexport { default as PersonalDataEditModal } from './components/PersonalDataEditModal.vue';\nexport { default as PreviewModal } from './components/PreviewModal.vue';\nexport { default as SgFileUploader } from './components/SgFileUploader.vue';\n\n// Install function untuk Vue app\nimport Profile from './components/Profile.vue'\nimport ProfileHeader from './components/ProfileHeader.vue'\nimport ProfilePersonalData from './components/ProfilePersonalData.vue'\nimport ProfileEducation from './components/ProfileEducation.vue'\nimport ProfileParents from './components/ProfileParents.vue'\nimport ProfileVerification from './components/ProfileVerification.vue'\n\nconst components = {\n Profile,\n ProfileHeader,\n ProfilePersonalData,\n ProfileEducation,\n ProfileParents,\n ProfileVerification,\n EducationModal,\n ImageCropModal,\n OtpModal,\n ParentModal,\n PersonalDataEditModal,\n PreviewModal\n}\n\nconst install = (app) => {\n for (const [key, component] of Object.entries(components)) {\n app.component(key, component)\n }\n}\n\n// Auto-install jika digunakan via script tag\nif (typeof window !== 'undefined' && window.Vue) {\n install(window.Vue)\n}\n\n// Export default dengan install function\nexport default {\n version: '1.0.0',\n install,\n ...components\n}\n\n// Export utilities jika ada\n// export * from './utils/...'"],"names":["bind","fn","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","cache","thing","str","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","allOwnKeys","i","l","keys","len","key","findKey","_key","_global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","extend","a","b","stripBOM","content","inherits","constructor","superConstructor","props","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","m","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","name","ret","freezeMethods","value","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","data","cb","asap","isIterable","utils$1","AxiosError","message","code","config","request","response","utils","error","customProps","axiosError","msg","errCode","httpAdapter","isVisitable","removeBrackets","renderKey","path","dots","isFlatArray","predicates","toFormData","formData","options","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","el","index","exposedHelpers","build","encode","charMap","match","AxiosURLSearchParams","params","encoder","_encode","buildURL","url","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","h","InterceptorManager$1","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","e","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","method","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","entry","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","computed","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","fns","isCancel","CanceledError","settle","resolve","reject","validateStatus","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","args","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","formHeaders","allowedHeaders","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","onloadend","responseHeaders","err","event","timeoutErrorMessage","cancel","protocol","composeSignals","signals","timeout","length","controller","aborted","onabort","reason","unsubscribe","signal","composeSignals$1","streamChunk","chunk","chunkSize","pos","end","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","DEFAULT_CHUNK_SIZE","globalFetchAPI","Request","Response","ReadableStream","TextEncoder","test","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","res","getBodyLength","body","resolveBodyLength","cancelToken","withCredentials","fetchOptions","_fetch","composedSignal","requestContentLength","_request","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","fetch","seeds","seed","map","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapter","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","fullPath","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","c","CancelToken$1","spread","callback","isAxiosError","payload","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","instance","axios","promises","axios$1","API_BASE_URL","profileApi","changePasswordApi","checkAgeApi","educationsApi","parentsApi","locationsApi","existingTemplateApi","authVerifyEmailSendApi","authVerifyPhoneSendApi","getProfile","updateProfile","updatedData","changePassword","passwordForm","checkAge","birthDate","getEducations","addEducation","getParents","getParentByStatus","familyStatus","addOrUpdateParent","uploadFile","endpoint","wordOnly","fileName","downloadTemplate","templateType","getLocations","sendEmailOtp","email","sendPhoneOtp","phone","_assertClassBrand","t","_checkPrivateRedeclaration","_classPrivateFieldGet2","_classPrivateFieldInitSpec","_classPrivateFieldSet2","r","RESTORE_FOCUS_TIMEOUT","globalState","focusPreviousActiveElement","restoreActiveElement","returnFocus","x","y","swalPrefix","classNames","swalClasses","acc","className","icons","iconTypes","icon","consolePrefix","capitalizeFirstLetter","warn","previousWarnOnceMessages","warnOnce","warnAboutDeprecation","deprecatedParam","useInstead","callIfFunction","arg","hasToPromiseFn","asPromise","isPromise","getContainer","elementBySelector","selectorString","container","elementByClass","getPopup","getIcon","getIconContent","getTitle","getHtmlContainer","getImage","getProgressSteps","getValidationMessage","getConfirmButton","getCancelButton","getDenyButton","getInputLabel","getLoader","getActions","getFooter","getTimerProgressBar","getCloseButton","focusable","getFocusableElements","popup","focusableElementsWithTabindex","focusableElementsWithTabindexSorted","tabindexA","tabindexB","otherFocusableElements","otherFocusableElementsFiltered","isVisible$1","isModal","hasClass","isToast","isLoading","setInnerHtml","elem","html","child","classList","removeCustomClasses","applyCustomClass","customClass","addClass","getInput$1","inputClass","focusInput","input","toggleClass","condition","removeClass","getDirectChildByClass","children","applyNumericalStyle","property","show","display","hide","showWhenInnerHtmlPresent","toggle","setStyle","parent","selector","allButtonsAreHidden","isScrollable","selfOrParentIsScrollable","element","stopElement","hasCssAnimation","style","animDuration","transDuration","animateTimerProgressBar","reset","timerProgressBar","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","isNodeEnv","sweetHTML","resetOldContainer","oldContainer","resetValidationMessage$1","addInputChangeListeners","file","range","rangeOutput","select","checkbox","textarea","getTarget","setupAccessibility","setupRTL","targetElement","init","oldContainerExisted","parseHtmlToContainer","param","handleObject","handleJqueryElem","renderActions","actions","loader","renderButtons","confirmButton","denyButton","cancelButton","renderButton","handleButtonsStyling","applyOutlineColor","button","buttonStyle","outlineColor","buttonType","buttonName","renderCloseButton","closeButton","renderContainer","handleBackdropParam","handlePositionParam","handleGrowParam","backdrop","grow","privateProps","inputClasses","renderInput","innerParams","rerender","inputContainer","setAttributes","showInput","setCustomClass","renderInputType","getInputContainer","removeAttributes","attrName","inputAttributes","attr","setInputPlaceholder","setInputLabel","prependTo","label","labelClass","inputType","checkAndSetInputValue","inputValue","inputElement","rangeContainer","rangeInput","selectElement","placeholder","radio","radioElement","checkboxContainer","placeholderOrLabel","textareaElement","getMargin","initialPopupWidth","textareaResizeHandler","textareaWidth","popupElement","renderContent","htmlContainer","renderFooter","footer","renderIcon","setContent","applyStyles","adjustSuccessIconBackgroundColor","iconType","iconClassName","setColor","popupBackgroundColor","successIconParts","successIconHtml","errorIconHtml","oldContent","newContent","iconContent","sel","renderImage","image","dragging","mousedownX","mousedownY","initialX","initialY","addDraggableListeners","down","move","up","removeDraggableListeners","clientXY","getClientXY","clientX","clientY","deltaX","renderPopup","addClasses$1","showClass","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","step","stepEl","createStepElement","lineEl","createLineElement","renderTitle","title","render","_globalState$eventEmi","isVisible","clickConfirm","_dom$getConfirmButton","clickDeny","_dom$getDenyButton","clickCancel","_dom$getCancelButton","DismissReason","removeKeydownHandler","handler","addKeydownHandler","dismissWith","keydownHandler","eventHandler","setFocus","increment","_dom$getPopup","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","handleEnter","handleTab","handleArrows","handleEsc","btnIndex","buttons","sibling","buttonToFocus","privateMethods","setAriaHidden","unsetAriaHidden","isSafariOrIOS","iOSfix","offset","lockBodyScroll","preventTouchMove","shouldPreventTouchMove","isStylus","isZoom","undoIOSfix","measureScrollbar","scrollDiv","scrollbarWidth","previousBodyPadding","replaceScrollbarWithPadding","initialBodyOverflow","undoReplaceScrollbarWithPadding","removePopupAndResetState","didClose","triggerDidCloseAndDispose","removeBodyClasses","close","resolveValue","prepareResolveValue","swalPromiseResolve","triggerClosePopup","handleAwaitingPromise","handlePopupAnimation","rejectPromise","animationIsSupported","animatePopup","swalCloseAnimationFinished","_globalState$swalClos","_globalState$eventEmi2","showLoading","buttonToReplace","Swal","replaceButton","handleInputOptionsAndValue","handleInputOptions","handleInputValue","getInputValue","getCheckboxValue","getRadioValue","getFileValue","processInputOptions","inputOptions","populateSelectOptions","formatInputOptions","populateRadioOptions","renderOption","optionLabel","optionValue","isSelected","inputOption","optgroup","o","radioValue","radioLabel","radioInput","radioLabelElement","radios","valueFormatted","handleConfirmButtonClick","handleConfirmOrDenyWithInput","confirm","handleDenyButtonClick","deny","handleCancelButtonClick","handleInputValidator","validationMessage","preDenyValue","rejectWith","succeedWith","preConfirmValue","hideLoading","domCache","showRelatedButton","dataButtonToReplace","getInput","setButtonsDisabled","disabled","setInputDisabled","enableButtons","disableButtons","enableInput","disableInput","showValidationMessage","resetValidationMessage","defaultParams","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","isDeprecated","showWarningsForParams","update","validUpdatableParams","filterValidParams","updatedParams","typedParams","_destroy","disposeWeakMaps","disposeSwal","unsetWeakMaps","instanceMethods","handlePopupClick","handleToastClick","handleModalMousedown","handleContainerMousedown","handleModalClick","isAnyButtonShown","ignoreOutsideClick","isJqueryElement","isElement","argsToParams","fire","mixin","mixinParams","MixinSwal","priorityMixinParams","getTimerLeft","stopTimer","resumeTimer","remaining","toggleTimer","increaseTimer","ms","isTimerRunning","bodyClickListenerAdded","clickHandlers","bindClickHandler","bodyClickListener","template","EventEmitter","eventName","currentHandlers","onceFn","on","once","off","staticMethods","Timer","delay","n","running","swalStringParams","getTemplateParams","templateContent","showWarningsForElements","getSwalParams","getSwalFunctionParams","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","getSwalStringParams","showWarningsForAttributes","color","ariaLabel","optionName","paramNames","tag","allowedElements","tagName","allowedAttributes","attribute","SHOW_CLASS_TIMEOUT","openPopup","addClasses","setScrollingVisibility","fixScrollContainer","didOpen","swalOpenAnimationFinished","scrollbarPadding","_params$showClass","_params$showClass2","defaultInputValidators","string","setDefaultInputValidators","validateCustomTargetElement","setParameters","currentInstance","_promise","SweetAlert","outerParams","userParams","isAwaitingPromise","prepareParams","populateDomCache","swalPromise","onFinally","dismiss","setupTimer","initFocus","templateParams","blurActiveElement","focusAutofocus","focusButton","autofocusElements","autofocusElement","Toast","showToast","_sfc_main","newVal","allowedTypes","allowedExtensions","fileExt","apiUploadFile","_a","_b","apiDownloadTemplate","_hoisted_1","_hoisted_3","_hoisted_4","_hoisted_12","_openBlock","_createElementBlock","$props","_hoisted_2","_createElementVNode","_toDisplayString","$data","_hoisted_5","$options","_hoisted_6","_cache","_hoisted_7","_createVNode","_component_b_button","$event","_ctx","_createTextVNode","_hoisted_9","_hoisted_10","_component_b_modal","SgFileUploader","_component_SgFileUploader","ImageCropModal","photo","_hoisted_8","_hoisted_11","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_23","_hoisted_25","_hoisted_26","_hoisted_28","_hoisted_29","_hoisted_32","_c","_f","_e","_d","_i","_h","_g","_l","_k","_j","_component_ImageCropModal","_normalizeClass","_hoisted_22","_vModelDynamic","_hoisted_31","_hoisted_33","toDate","isValidDate","startOfWeek","firstDayOfWeek","date","day","diff","startOfWeekYear","_ref","_ref$firstDayOfWeek","_ref$firstWeekContain","firstWeekContainsDate","year","firstDateOfFirstWeek","getWeek","_ref2","_ref2$firstDayOfWeek","_ref2$firstWeekContai","firstDateOfThisWeek","locale","REGEX_FORMAT","pad","output","sign","getOffset","formatTimezone","delimeter","absOffset","hours","minutes","meridiem","_","isLowercase","word","formatFlags","meridiemFunc","formatStr","defaultLocale","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","arr2","ownKeys","object","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_s","formattingTokens","match1","match2","match3","match4","match1to2","matchShortOffset","matchSigned","matchTimestamp","YEAR","MONTH","DAY","HOUR","MINUTE","SECOND","MILLISECOND","parseFlags","addParseFlag","regex","func","escapeStringRegExp","matchWordRegExp","localeKey","array","matchWordCallback","cent","matchMeridiem","defaultIsPM","isPM","offsetFromString","_ref8","_ref9","symbol","hour","minute","to24hour","getFullInputArray","backupDate","backupArr","useBackup","createDate","d","M","createUTCDate","_len","makeParser","dateString","mark","parseTo","parse","_options$locale","_locale","_options$backupDate","parseResult","month","second","millisecond","weekday","week","inputArray","firstDate","parsedDate","_typeof","_extends","_objectSpread2","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_unsupportedIterableToArray","minLen","_arrayLikeToArray","_extends$1","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","f","g","mergeFn","helper","isValidRangeDate","isValidDates","dates","getValidDate","backup","startOfYear","startOfMonth","startOfDay","getCalendar","calendar","lastDayInLastMonth","firstDayInLastMonth","lastDayInCurrentMonth","lastMonthLength","nextMonthLength","_i2","setMonth","dirtyDate","dirtyMonth","daysInMonth","setYear","dirtyYear","assignTime","time","size","pick","mergeDeep","unwrapExports","createCommonjsModule","module","en","exports","_default","en$1","lang","locales","isLocal","getLocale","rafThrottle","isRunning","_this","getPopupElementSize","originalDisplay","originalVisibility","styles","width","height","getRelativePosition","targetWidth","targetHeight","fixed","left","top","offsetX","offsetY","relativeRect","dw","dh","getScrollParent","node","until","scroll","script","_this2","relativeElement","evt","appendToBody","_this$_popupRect","_getRelativePosition","normalizeComponent","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","originalRender","existing","__vue_script__","__vue_render__","_vm","__vue_staticRenderFns__","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","__vue_component__","__vue_render__$1","__vue_staticRenderFns__$1","__vue_inject_styles__$1","__vue_scope_id__$1","__vue_module_identifier__$1","__vue_is_functional_template__$1","__vue_component__$1","__vue_render__$2","__vue_staticRenderFns__$2","__vue_inject_styles__$2","__vue_scope_id__$2","__vue_module_identifier__$2","__vue_is_functional_template__$2","__vue_component__$2","__vue_render__$3","__vue_staticRenderFns__$3","__vue_inject_styles__$3","__vue_scope_id__$3","__vue_module_identifier__$3","__vue_is_functional_template__$3","__vue_component__$3","script$1","__vue_script__$1","__vue_render__$4","__vue_staticRenderFns__$4","__vue_inject_styles__$4","__vue_scope_id__$4","__vue_module_identifier__$4","__vue_is_functional_template__$4","__vue_component__$4","script$2","_this$getLocale","yearFormat","monthBeforeYear","_this$getLocale$month","monthFormat","yearLabel","monthLabel","days","v","panel","cell","_index$split$map","_index$split$map2","row","col","fmt","__vue_script__$2","__vue_render__$5","item","j","__vue_staticRenderFns__$5","__vue_inject_styles__$5","__vue_scope_id__$5","__vue_module_identifier__$5","__vue_is_functional_template__$5","__vue_component__$5","script$3","monthsLocale","months","text","__vue_script__$3","__vue_render__$6","__vue_staticRenderFns__$6","__vue_inject_styles__$6","__vue_scope_id__$6","__vue_module_identifier__$6","__vue_is_functional_template__$6","__vue_component__$6","script$4","last","firstYear","years","__vue_script__$4","__vue_render__$7","__vue_staticRenderFns__$7","__vue_inject_styles__$7","__vue_scope_id__$7","__vue_module_identifier__$7","__vue_is_functional_template__$7","__vue_component__$7","CalendarPanel","panels","start","calendarDate","oldCalendar","oldPanel","_date","_date2","cellDate","notCurrentMonth","classes","_cellDate","_cellDate2","active","innerCalendar","CalendarRange","calendars","_this$innerValue","startValue","endValue","adjustIndex","gap","_calendars","calendarLeft","calendarRight","yearDiff","monthDiff","max","currentDates","classnames","_range$map","_range$map2","calendarRange","prefixClass","scrollBarWidth","getScrollbarWidth","outer","inner","script$5","wrap","heightPercentage","scrollHeight","scrollTop","offsetTop","clientHeight","__vue_script__$5","__vue_render__$8","__vue_staticRenderFns__$8","__vue_inject_styles__$8","__vue_scope_id__$8","__vue_module_identifier__$8","__vue_is_functional_template__$8","__vue_component__$8","padNumber","generateOptions","scrollTo","to","duration","difference","tick","script$6","cols","num","_this3","_this4","_this5","elements","scrollElement","currentTarget","colIndex","cellIndex","__vue_script__$6","__vue_render__$9","__vue_staticRenderFns__$9","__vue_inject_styles__$9","__vue_scope_id__$9","__vue_module_identifier__$9","__vue_is_functional_template__$9","__vue_component__$9","parseOption","values","scrollTo$1","script$7","startMinutes","endMinutes","stepMinutes","timeMinutes","__vue_script__$7","__vue_render__$a","__vue_staticRenderFns__$a","__vue_inject_styles__$a","__vue_scope_id__$a","__vue_module_identifier__$a","__vue_is_functional_template__$a","__vue_component__$a","script$8","titleFormat","defaultProps","minHour","maxHour","__vue_script__$8","__vue_render__$b","__vue_staticRenderFns__$b","__vue_inject_styles__$b","__vue_scope_id__$b","__vue_module_identifier__$b","__vue_is_functional_template__$b","__vue_component__$b","TimeRange","_this$value","defaultValues","DatetimePanel","datetime","calendarProps","timeProps","DatetimeRange","datetimes","componentMap","componentRangeMap","DatePicker","types","disabledDate","disabledTime","nextDates","keyCode","fallback","slotFn","attrs","events","calendarIcon","Component","_class","inline","sidedar","Vue","this","O","u","p","vSelect","search","loading","_vModelText","_component_DatePicker","_vModelRadio","_component_v_select","PersonalDataEditModal","_hoisted_24","_hoisted_30","_hoisted_27","_component_PersonalDataEditModal","raw","newTab","errorMessage","OtpModal","_component_OtpModal","EducationModal","edu","_Fragment","k","_component_EducationModal","_vModelSelect","_renderList","ParentModal","subType","_component_ParentModal","ProfileHeader","ProfilePersonalData","ProfileVerification","ProfileEducation","ProfileParents","PreviewModal","apiGetParents","_component_ProfileHeader","_component_ProfilePersonalData","_component_ProfileVerification","_component_ProfileEducation","_component_ProfileParents","_component_PreviewModal","components","Profile","install","app","component"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,55,56,57,58,59,60]}