{"version":3,"file":"app.min.js","sources":["../../src/common/Store.js","../../src/common/WPDarkMode.js","../../src/common/Base.js","../../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/index.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/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/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/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/axios/lib/helpers/speedometer.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/adapters/adapters.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/core/mergeConfig.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/common/Ajax.js","../../src/common/Accessibility.js","../../src/common/Color.js","../../src/common/Images.js","../../src/common/Videos.js","../../node_modules/suncalc/suncalc.js","../../src/common/app.js","../../src/switches/switch-1.js","../../src/switches/switch-10.js","../../src/switches/switch-11.js","../../src/switches/switch-12.js","../../src/switches/switch-13.js","../../src/switches/switch-14.js","../../src/switches/switch-15.js","../../src/switches/switch-16.js","../../src/switches/switch-17.js","../../src/switches/switch-18.js","../../src/switches/switch-19.js","../../src/switches/switch-2.js","../../src/switches/switch-20.js","../../src/switches/switch-21.js","../../src/switches/switch-22.js","../../src/switches/switch-3.js","../../src/switches/switch-4.js","../../src/switches/switch-5.js","../../src/switches/switch-6.js","../../src/switches/switch-7.js","../../src/switches/switch-8.js","../../src/switches/switch-9.js","../../src/common/switch.js","../../src/common/Utility.js","../../src/frontend/main.js"],"sourcesContent":["/**\n * Store class to handle cookies\n * WP Dark Mode\n */\n\nclass Store {\n\tstatic prefix = 'wp-dark-mode-';\n\tstatic set(key, value, daysToExpire = 365) {\n\t\tkey = `${Store.prefix}${key}`;\n\t\tconst expires = daysToExpire ? `expires = ${new Date( Date.now() + daysToExpire * 24 * 60 * 60 * 1000 ).toUTCString()};` : '';\n\t\tdocument.cookie = `${key} = ${encodeURIComponent( value )};${expires}path = / `;\n\n\t\treturn this\n\t}\n\n\tstatic get(key) {\n\t\tkey = `${Store.prefix}${key}`;\n\t\tconst cookies = document.cookie.split( ';' );\n\t\tfor (const cookie of cookies) {\n\t\t\tconst [cookieKey, cookieValue] = cookie.split( '=' ).map( item => item.trim() );\n\t\t\tif (cookieKey === key) {\n\t\t\t\treturn decodeURIComponent( cookieValue );\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tstatic delete(key) {\n\t\tkey = `${Store.prefix}${key}`;\n\t\tdocument.cookie = `${key} = ; expires = Thu, 01 Jan 1970 00:00:00 UTC; path = / ;`;\n\n\t\treturn this\n\t}\n}\n\nexport default Store;","import Store from './Store';\n\nclass DarkMode {\n\tstatic #instance = null;\n\n\t// Singleton: Return the existing instance if available, otherwise create a new one\n\tstatic getInstance() {\n\t\tif ( ! DarkMode.#instance) {\n\t\t\tDarkMode.#instance = new DarkMode();\n\t\t}\n\t\treturn DarkMode.#instance;\n\t}\n\n\t/**\n\t * Callbacks to be executed before and after dark mode is activated or deactivated\n\t */\n\t#callbacks = {\n\t\tonChange: [],\n\t}\n\n\t/**\n\t * Default configuration\n\t */\n\t#config = {\n\t\ttarget: 'html',\n\t\tactiveAttribute: 'data-wp-dark-mode-active',\n\t\tactiveClass: 'wp-dark-mode-active',\n\t\tignoreClass: 'wp-dark-mode-ignore',\n\t}\n\n\t// Register a callback to be executed after dark mode is activated or deactivated\n\tonChange(callback) {\n\t\t// if (typeof callback !== 'object') return;\n\t\tthis.#callbacks.onChange.push(callback);\n\t\treturn this;\n\t}\n\n\t// Check if the system is currently in dark mode\n\tget isDeviceDark() {\n\t\treturn window.matchMedia('(prefers-color-scheme: dark)').matches;\n\t}\n\n\t// Get the target element\n\tget target() {\n\t\treturn document.querySelector(this.#config.target);\n\t}\n\n\t// Check if dark mode is currently active on the page\n\tget isActive() {\n\t\treturn this.target?.hasAttribute(this.#config.activeAttribute);\n\t}\n\n\t// Toggle between activating and deactivating dark mode based on the current state\n\ttoggle() {\n\t\tthis.isActive ? this.deactivate() : this.activate();\n\t\treturn this;\n\t}\n\n\t// Update the class list of the HTML element to activate dark mode\n\tupdateTarget(active) {\n\t\tactive ? this.target.setAttribute(this.#config.activeAttribute, '') : this.target.removeAttribute(this.#config.activeAttribute);\n\t\tactive ? this.target.classList.add(this.#config.activeClass) : this.target.classList.remove(this.#config.activeClass);\n\t\treturn this;\n\t}\n\n\t// Activate dark mode\n\tactivate( config = {} ) {\n\t\t// Merge the default config with the provided config\n\t\tthis.#config = { ...this.#config, ...config };\n\n\t\tthis.updateTarget(true);\n\t\tthis.#callbacks.onChange.forEach(callback => callback({ isActive: this.isActive }));\n\t\treturn this;\n\t}\n\n\t// Deactivate dark mode\n\tdeactivate() {\n\t\tthis.updateTarget(false);\n\t\tthis.#callbacks.onChange.forEach(callback => callback({ isActive: this.isActive }));\n\t\treturn this;\n\t}\n\n\t// Remembers the user's choice of dark mode\n\tremember() {\n\t\tStore.set('choice', this.isActive ? 'dark' : 'light');\n\t\treturn this;\n\t}\n\n\t// Delete any previously stored choice of dark mode\n\tforget() {\n\t\tStore.delete('choice').delete('device').delete('timezone')\n\t\treturn this;\n\t}\n\n}\n\n// Global variable to access the DarkMode class\nconst WPDarkMode = DarkMode.getInstance();\nwindow.WPDarkMode = WPDarkMode;\n\n// Export a single instance of the DarkMode class as a singleton\nexport default WPDarkMode;\n","class Base {\n\n _el = (selector, context = document) => {\n return context.querySelector(selector);\n }\n\n _els = (selector, context = document) => {\n return context.querySelectorAll(selector);\n }\n \n\t/**\n\t * Is true.\n\t *\n\t * @param value\n\t * @return {boolean}\n\t */\n\tisTrue( value ) {\n\t\treturn [ '1', 'true', 'yes', 'on', 1, true ].includes( value );\n\t}\n\n /**\n\t * Determine if the user is premium\n\t */\n\tget isPremium() {\n\t\treturn this.isTrue( wp_dark_mode_json.is_ultimate || wp_dark_mode_json.is_pro ) // is_pro key is Deprecated, will be removed in future.\n\t}\n\n\n\t/**\n\t * Events\n\t */\n\t#events = {}\n\n /**\n * On\n */\n on(event, callback) {\n if (!this.#events[event]) {\n this.#events[event] = [];\n }\n try {\n this.#events[event].push(callback);\n } catch (e) {\n // console.error(e);\n }\n return this;\n }\n\n /**\n * Emit\n */\n emit(event, ...args) {\n if (this.#events[event]) {\n this.#events[event].forEach(callback => {\n callback(...args);\n });\n }\n return this;\n }\n\n // Constructor\n init () {\n this.events();\n // on state ready \n document.addEventListener('DOMContentLoaded', () => {\n // console.log('Document ready');\n this.ready();\n });\n }\n\n // Fires on DOMContentLoaded\n ready() {}\n\n // Events\n events() {}\n\n get html() {\n return document.querySelector('html');\n }\n}\n\nexport default Base;","'use strict';\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;\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) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\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\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 // 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 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} = 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 {\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} 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[Symbol.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}\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 value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\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[Symbol.toStringTag] === 'FormData' && thing[Symbol.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 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\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\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 ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\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 response && (this.response = response);\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.response && this.response.status ? this.response.status : null\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 AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\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} 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} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} 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 (!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} 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} params - The parameters to be converted to a FormData object.\n * @param {Object} 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 replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} 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 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 {Boolean} `true` if the interceptor was removed, `false` otherwise\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","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","'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","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== '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 = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\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\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\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(), Object.assign({\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","'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} 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 | 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'],\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 ) {\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 (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);\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 {\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 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","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) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : 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 \"://\" 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) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'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","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.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 speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return 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 };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n 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() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\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 // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\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 (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\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(fullPath);\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 utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\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\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\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) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\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 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);\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","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : 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, 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, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, 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) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, 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","export const VERSION = \"1.6.7\";","'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\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\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 }\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.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.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, 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 i = 0;\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);\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 /**\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};\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\nclass Ajax {\n async request(method = 'GET', action = '', data = {}){\n const target = typeof wp_dark_mode_admin_json !== 'undefined' ? wp_dark_mode_admin_json : wp_dark_mode_json\n \n let url = target?.url?.ajax + '?action=' + action + '&_wpnonce=' + target.nonce;\n\n\n const headers = {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'\n }\n\n const args = {\n method,\n headers,\n credentials: 'same-origin',\n }\n\n if ( method !== 'POST' && Object.keys(data).length > 0) {\n url += '&' + this.serialize(data); \n } else { \n args.data = data\n }\n\n // Use axios to make the request\n const response = await axios(url, args)\n\n // Return the response\n return response.data;\n }\n\n async get(action = '', data = {}){\n return await this.request('GET', action, data);\n }\n\n async post(action = '', data = {}){\n return await this.request('POST', action, data);\n }\n\n serialize(obj) {\n var str = [];\n for (var p in obj)\n if (obj.hasOwnProperty(p)) {\n str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\n }\n return str.join(\"&\");\n }\n}\n\nexport default new Ajax();","import Base from \"./Base\"\nimport Store from \"./Store\"\nimport Ajax from \"./Ajax\"\n\nclass Accessibility extends Base {\n\t/**\n\t * Init\n\t */\n\tready() {\n\t\tthis.trackKeyBoardPress();\n\t\tthis.handleAnimation();\n\t\tsetTimeout( () => {\n\t\t\tthis.updateVisitor();\n\t\t}, 10000)\n\n\t\tif ( ! this.isPremium ) return;\n\t\tthis.initLargeFont();\n\t\tthis.checkLargeFont();\n\t}\n\n\t/**\n\t * Track keyboard press\n\t */\n\ttrackKeyBoardPress() {\n\n\t\t// Bail, if accessibility is disabled.\n\t\tif ( ! wp_dark_mode_json.options.accessibility_enabled_keyboard_shortcut ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.addEventListener('keydown', (e) => {\n\t\t\t// if pressed ctrl + alt + d\n\t\t\tif (e.ctrlKey && e.altKey && e.keyCode === 68) {\n\t\t\t\tWPDarkMode.toggle().remember();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Handle animation\n\t */\n\thandleAnimation() {\n\t\t// Bail if animation_enabled is disabled.\n\t\tif ( ! wp_dark_mode_json.options.animation_enabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Add animation class.\n\t\tif(WPDarkMode.isActive) {\n\t\t\tdocument.querySelector('html').classList.add('wp-dark-mode-animation');\n\t\t}\n\n\t\tWPDarkMode.onChange(() => {\n\t\t\tif( !WPDarkMode.isActive ) {\n\t\t\t\tdocument.querySelector('html').classList.remove('wp-dark-mode-animation');\n\t\t\t} else {\n\t\t\t\tdocument.querySelector('html').classList.add('wp-dark-mode-animation');\n\t\t\t}\n\t\t})\n\t\t\n\t}\n\n\t/**\n\t * Init large font\n\t */\n\tinitLargeFont = () => {\n\t\tif( !wp_dark_mode_json.options.typography_enabled ) return;\n\n\t\tconst elements = document.querySelectorAll('*:not(.wp-dark-mode-ignore):not(.wp-dark-mode-switch):not(script):not(style):not(link):not(meta):not(title):not(base):not(head):not(.wp-dark-mode-switch)');\n\n\t\tlet desiredSize = wp_dark_mode_json.options.typography_font_size;\n\t\tif( desiredSize === 'custom' ) {\n\t\t\tdesiredSize = wp_dark_mode_json.options.typography_font_size_custom / 100;\n\t\t}\n\n\t\telements.forEach(element => {\n\t\t\t// Bail, if any of parent has wp-dark-mode-ignore class.\n\t\t\tif(element.closest('.wp-dark-mode-ignore')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tconst fontSize = getComputedStyle(element).fontSize;\n\n\t\t\tif (fontSize) {\n\t\t\t\t// Calculate new font size\n\t\t\t\tconst newFontSize = this.calculateFontSize(fontSize, desiredSize);\n\n\t\t\t\t// Set property\n\t\t\t\telement.style.setProperty('--wp-dark-mode-large-font-size', newFontSize);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Toggle font size\n\t */\n\ttoggleFontSize( element ) {\n\n\t\tif( !wp_dark_mode_json.options.typography_enabled ) return;\n\n\t\tconst html = document.querySelector('html');\n\n\t\t// Is large font is active\n\t\tconst isLargeFont = html.classList.contains('wp-dark-mode-large-font');\n\n\t\t// Toggle large font\n\t\thtml.classList[isLargeFont ? 'remove' : 'add']('wp-dark-mode-large-font');\n\n\t\t// Is element is \n\t\tconst isActive = element.classList.contains('active');\n\n\t\t// Toggle active class\n\t\telement.classList[isActive ? 'remove' : 'add']('active');\n\n\t\t// Remember user choice\n\t\tStore.set('large-font', !isLargeFont ? 'on' : 'off');\n\n\t\t// Reactive other switches\n\t\tconst switches = document.querySelectorAll('.wp-dark-mode-switch ._font');\n\n\t\tif( !switches || !switches.length ) return;\n\n\t\tswitches.forEach( switchEl => {\n\t\t\tswitchEl.classList[isActive ? 'remove' : 'add']('active');\n\t\t} );\n\n\t}\n\n\t\n\tcalculateFontSize = ( size, by = 1 ) => {\n\t\tconst unit = size.replace(/[0-9]/g, '');\n\t\tconst value = parseFloat(size.replace(/[a-z]/g, ''));\n\n\t\tlet newValue = 0;\n\t\tnewValue = value * by;\n\t\treturn `${newValue}${unit}`;\n\t}\n\n\t/**\n\t * Check large font\n\t */\n\tcheckLargeFont = () => {\n\n\t\tconst isLargeFont = Store.get('large-font') === 'on';\n\n\t\tif( isLargeFont ) {\n\t\t\tdocument.querySelector('html').classList.add('wp-dark-mode-large-font');\n\n\t\t\t// On wp-dark-mode-switches-updated event\n\t\t\tdocument.addEventListener('wp-dark-mode-switches-updated', () => {\n\t\t\t\tconst switches = document.querySelectorAll('.wp-dark-mode-switch ._font');\n\t\t\t\tif( !switches || !switches.length ) return;\n\t\t\t\tswitches.forEach( switchEl => {\n\t\t\t\t\tswitchEl.classList.add('active');\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\n\t/**\n\t * Track visitor\n\t */\n\tasync updateVisitor() {\n\t\t// Bail, if analytics is disabled.\n\t\tif ( ! wp_dark_mode_json.analytics_enabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Bail, if user has already visited.\n\t\tif ( localStorage.getItem( 'wp-dark-mode-visitor' ) ) {\n\t\t\t// return;\n\t\t}\n\n\t\t// Set visitor.\n\t\tconst visitor_id = localStorage.getItem( 'wp-dark-mode-visitor' ) || null;\n\t\t// Log('visitor_id', visitor_id);\n\n\t\tconst payload = {\n\t\t\tvisitor_id: visitor_id || false,\n\t\t\tmode: WPDarkMode.isActive ? 'dark' : 'light',\n\t\t\tnonce: wp_dark_mode_json.nonce,\n\t\t};\n\n\t\tif( ! visitor_id ) {\n\n\t\t\t// For new visitors, send meta data.\n\t\t\tpayload.meta = JSON.stringify({\n\t\t\t\tos: navigator.platform,\n\t\t\t\tbrowser: navigator.appCodeName,\n\t\t\t\tbrowser_version: navigator.appVersion,\n\t\t\t\tlanguage: navigator.language,\n\t\t\t\ttimezone: Intl.DateTimeFormat().resolvedOptions().timeZone\n\t\t\t})?.replace(';', '');\n\n\t\t\ttry {\n\t\t\t\tpayload.ip = await fetch( 'https://api.ipify.org?format=json' ).then( response => response.json() ).then( data => data.ip );\n\t\t\t} catch (error) { }\n\t\t}\n\n\t\t// Send request.\n\t\tconst result = await Ajax.post( 'wp_dark_mode_update_visitor', payload );\n\t\t\n\t\t// Set visited.\n\t\tif( result && result.success && !visitor_id ) {\n\t\t\tlocalStorage.setItem( 'wp-dark-mode-visitor', result.data.visitor_id );\n\t\t}\n\t}\n}\n\nexport default new Accessibility();","import Base from './Base';\nimport WPDarkMode from \"./WPDarkMode\";\n\nclass Color extends Base {\n\n // Fires when the DOM is ready\n events() {\n // this.applyDarkMode()\n }\n\n ready(){\n this.always();\n this.applyDarkMode()\n }\n\n applyDarkMode(){\n // When automatic mode is enabled\n if ( this.isAutoColor ) {\n const html = document.querySelector('html');\n\n html?.setAttribute('data-wp-dark-mode-loading', true);\n this.applyAutoDark();\n html?.removeAttribute('data-wp-dark-mode-loading');\n } else {\n // Colors need to be fixed when Automatic Mode is disabled\n this.applyPreset();\n }\n }\n\n /**\n * Do always\n */\n always() {\n // Removed loading attribute from html tag\n const html = document.querySelector('html');\n\n html?.removeAttribute('data-wp-dark-mode-loading');\n\n if ( this.isPremium ) {\n this.handleIncludes();\n this.HandleExcludes();\n }\n }\n\n /**\n * When Automatic Mode is enabled\n *\n * @return {void}\n */\n async applyAutoDark(){\n const FiltersConfig = {\n brightness: wp_dark_mode_json.options.color_filter_brightness || 100,\n contrast: wp_dark_mode_json.options.color_filter_contrast || 90,\n sepia: wp_dark_mode_json.options.color_filter_sepia || 10,\n grayscale: wp_dark_mode_json.options.color_filter_grayscale || 0,\n }\n\n if ( WPDarkMode.isActive ) {\n DarkModeAuto.disable();\n DarkModeAuto.enable(FiltersConfig, {\n ignoreInlineStyle: '.wp-dark-mode-ignore'\n });\n }\n\n WPDarkMode.onChange(() => {\n // console.log('Dark Mode Changed');\n if ( WPDarkMode.isActive ) {\n DarkModeAuto.enable(FiltersConfig, {\n ignoreInlineStyle: '.wp-dark-mode-ignore'\n });\n } else {\n DarkModeAuto.disable();\n }\n })\n }\n\n\n\n // Get preset id\n get presetId() {\n const target = typeof wp_dark_mode_admin_json !== 'undefined' ? wp_dark_mode_admin_json : wp_dark_mode_json;\n return target?.options?.color_preset_id || false;\n }\n\n /**\n * Is Automatic Color.\n *\n * @return {boolean}\n */\n get isAutoColor() {\n return Number(this.presetId) === 0;\n }\n\n \n /**\n * Apply colors to the elements\n * \n * @param {boolean} isDark \n * @returns \n */\n initHandlers() {\n }\n\n /**\n * Fix colors\n *\n */\n applyPreset(){\n const all = document.querySelectorAll(`body *:not(.wp-dark-mode-ignore), body *:not(.wp-dark-mode-ignore *)`);\n // window.Log('all', all)\n\n if ( ! all || ! all.length) return;\n\n all.forEach(element => {\n\n // Add class .wp-dark-mode-background\n element.classList.add('wp-dark-mode-transparent');\n\n // Is excludable.\n if ( this.shouldIgnore(element) ) {\n\n const backgroundColor = window.getComputedStyle(element).backgroundColor || 'rgba(0, 0, 0, 0)';\n\n // Log('Background Color', backgroundColor) \n\n if ( ! this.isTransparent( backgroundColor ) ) {\n element.classList.add('wp-dark-mode-ignore');\n }\n\n // Log('Should Ignore', element, backgroundColor)\n element.classList.add('wp-dark-mode-transparent');\n\n } else {\n element.classList.remove('wp-dark-mode-transparent');\n }\n })\n }\n\n\t/**\n\t * Handle excludes\n\t */\n\tHandleExcludes() {\n const excludes = (\n wp_dark_mode_json.options.excludes_elements ? wp_dark_mode_json.options.excludes_elements + ',.wp-dark-mode-ignore' : '.wp-dark-mode-ignore'\n ) + ( wp_dark_mode_json.excluded_elements ? ', ' + wp_dark_mode_json.excluded_elements : '' );\n \n\t\tconst ignorableElements = document.querySelectorAll( excludes );\n\n // console.log('ignorableElements', ignorableElements);\n\n\t\tif ( ! ignorableElements || ! ignorableElements.length) return;\n\n\t\tignorableElements.forEach(element => {\n\t\t\tconst ignoreRecursively = el => {\n\n\t\t\t\t// Bail, if element is not valid.\n\t\t\t\tif ( ! el ) return;\n\n\t\t\t\t// If el not intance of html.\n\t\t\t\tif ( ! (el instanceof HTMLElement) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n \n\n // If element has class .wp-dark-mode-include, return;\n if ( el.classList.contains('wp-dark-mode-include') ) return;\n\n\t\t\t\t// Add class.\n\t\t\t\tel.classList.add('wp-dark-mode-ignore');\n\n\t\t\t\t// if has background color, make it important.\n\t\t\t\tconst { color, borderColor } = window.getComputedStyle(el) || {};\n\n\t\t\t\t// Log('backgroundColor', backgroundColor, color, borderColor);\n\t\t\t\t\n\t\t\t\t// If has color, border color, make it important.\n\t\t\t\tif ( color !== 'rgba(0, 0, 0, 0)' ) {\n\t\t\t\t\tel.style.color = `${color} !important`;\n\t\t\t\t}\n\n\t\t\t\t// If has border color, make it important.\n\t\t\t\tif ( borderColor !== 'rgba(0, 0, 0, 0)' ) {\n\t\t\t\t\tel.style.borderColor = `${borderColor} !important`;\n\t\t\t\t}\n\n\t\t\t\t// if has children, apply recursively.\n\t\t\t\tif ( el.childNodes && el.childNodes.length ) {\n\t\t\t\t\tel.childNodes.forEach(child => {\n\t\t\t\t\t\tignoreRecursively(child);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tignoreRecursively(element);\n\t\t});\n\n\t\treturn this;\n\t}\n\n /**\n * Handle includes\n */\n handleIncludes(){\n const includedElements = document.querySelectorAll( wp_dark_mode_json.options.excludes_elements_includes || '.wp_dark_mode_include' );\n\n\t\tif ( ! includedElements || ! includedElements.length) return;\n\n includedElements.forEach(element => {\n // Add class .wp-dark-mode-include recursively\n const includeRecursively = el => {\n\n // Bail, if element is not valid.\n if ( ! el ) return;\n\n // If el not intance of html.\n if ( ! (el instanceof HTMLElement) ) {\n return;\n }\n\n // Add class.\n el.classList.add('wp-dark-mode-include');\n // Remove class.\n el.classList.remove('wp-dark-mode-ignore');\n\n // if has children, apply recursively.\n if ( el.childNodes && el.childNodes.length ) {\n el.childNodes.forEach(child => {\n includeRecursively(child);\n });\n }\n }\n\n includeRecursively(element);\n });\n }\n\n\n /**\n * isRGB\n *\n * @param {string} color\n * @return {boolean}\n */\n isRGB = color => {\n return color.indexOf('rgb') !== -1;\n }\n\n /**\n * Hex to RGB\n *\n * @param {string} colorString\n * @param {number} alpha\n * @return {string}\n */\n hexToRGB = (colorString, alpha = 1) => {\n\n if ( this.isRGB (colorString) ) return colorString\n\n // Create a temporary div element to apply the color as a style\n const tempDiv = document.createElement(\"div\");\n tempDiv.style.color = colorString;\n\n // Get the computed RGBA value\n const computedColor = window.getComputedStyle(tempDiv).color;\n\n // Parse the RGBA values\n const rgbaValues = computedColor.match(/(\\d+), (\\d+), (\\d+), (\\d+(\\.\\d+)?)\\)/);\n\n if (rgbaValues && rgbaValues.length === 6) {\n const red = parseInt(rgbaValues[1]);\n const green = parseInt(rgbaValues[2]);\n const blue = parseInt(rgbaValues[3]);\n const opacity = alpha !== undefined ? alpha : parseFloat(rgbaValues[4]);\n\n return `rgba(${red}, ${green}, ${blue}, ${opacity})`;\n } else {\n // console.error(`Invalid color string: ${colorString}`);\n return null;\n }\n }\n\n\n /**\n * Get White Percentage\n *\n * @param {string} color\n * @return {boolean}\n */\n luminance = color => {\n // Convert hex to RGB if the color is hex\n if (!this.isRGB(color)) {\n color = this.hexToRgb(color);\n }\n\n // Remove spaces from the color\n color = color.replace(/ /g, '');\n\n // Split the color into array\n color = color.split(',');\n const r = color[0];\n const g = color[1];\n const b = color[2];\n\n // Calculate the luminance\n return (0.299 * r + 0.587 * g + 0.114 * b);\n }\n\n /**\n * Is Dark Color\n * \n *\n * @param {string} color\n * @return {boolean}\n */\n isDarkColor = color => {\n // Log('luminance', this.luminance(color))\n return this.luminance(color) < 190;\n }\n\n /**\n * Get White Percentage\n *\n * @param {string} color\n * @return {number}\n */\n getWhitePercentage = color => {\n // Convert hex to RGB if the color is hex\n if (!this.isRGB(color)) {\n color = this.hexToRgb(color);\n }\n\n // Remove spaces from the color\n color = color.replace(/ /g, '');\n\n // Split the color into array\n color = color.split(',');\n const r = color[0];\n const g = color[1];\n const b = color[2];\n\n // Calculate the white percentage\n return Math.round(((255 - r) + (255 - g) + (255 - b)) / 7.65);\n }\n\n /**\n * Is Transparent\n *\n * @param {string} color\n * @return {boolean}\n */\n isTransparent = color => {\n\n // Bail, if color not set\n if (!color) return true\n\n let rgb = this.hexToRGB(color)\n\n if (!rgb) return true\n\n // Bail, if color is transparent\n if (rgb == 'rgba(0, 0, 0, 0)') return true;\n\n if (rgb == 'rgb(0, 0, 0)') return true;\n\n if (rgb == 'none') return true;\n\n // Remove spaces from the color\n rgb = rgb.replace(/ /g, '');\n\n // Split the color into array\n rgb = rgb.split(',');\n\n // Get the alpha value\n const alpha = parseFloat(rgb[3]);\n\n // Return true if the alpha value is 0\n if (alpha == 0) return true;\n \n\n return false\n }\n\n /**\n * Should Ignore.\n *\n * @param element \n * @return bool\n */\n shouldIgnore = element => {\n // Return true is element is null\n if (!element) return true;\n\n const backgroundColor = window.getComputedStyle(element).backgroundColor || 'rgba(0, 0, 0, 0)';\n\n // Return true if the element has class wp-dark-mode-ignore\n if (element.classList.contains('wp-dark-mode-ignore')) return true;\n\n // Return true if the element has class wp-dark-mode-switch\n if (element.classList.contains('wp-dark-mode-switch')) return true;\n\n // Return true if the element has class wp-dark-mode-background\n if (element.classList.contains('wp-dark-mode-background')) return true;\n\n // Return true if the background color is transparent\n if (this.isTransparent(backgroundColor)) {\n element.classList.add('wp-dark-mode-transparent');\n return true;\n }\n\n // Has background image.\n if (window.getComputedStyle(element).backgroundImage !== 'none') return true;\n\n // Is color darkish, return true.\n if (this.isDarkColor(backgroundColor)) return true;\n\n return false;\n }\n\n}\n\nexport default new Color();","import Base from './Base.js';\n\nclass Images extends Base {\n\t/**\n\t * Init\n\t */\n\tready() {\n\t\tthis.initImages();\n\t}\n\t/**\n\t * Replace images\n\t */\n\tinitImages() {\n\t\t// Set global CSS img opacity inherit\n\t\tdocument.body.style.setProperty('--wp-dark-mode-img-opacity', 1);\n\n\t\tthis.replaceImages();\n\t\tthis.replaceBackgroundImages();\n\t\tthis.excludeFilterImages();\n\n\t\tWPDarkMode.onChange(() => {\n\t\t\tthis.replaceImages();\n\t\t\tthis.replaceBackgroundImages();\n\t\t\tthis.excludeFilterImages();\n\t\t});\n\t}\n\n\treplaceImages() {\n\t\tconst images = document.querySelectorAll('img');\n\t\tif (!images || !images.length) return;\n\n\t\t// Replace images.\n\t\timages.forEach((image) => {\n\t\t\t// Bail, if image src is not set.\n\t\t\tif (!image.src) return;\n\n\t\t\tlet currentSrc = image.dataset.lightSrc || image.src;\n\n\t\t\tif (WPDarkMode.isActive) {\n\t\t\t\tconst darkSrc = this.getDarkSrc(currentSrc);\n\t\t\t\tif (darkSrc) {\n\t\t\t\t\timage.dataset.lightSrc = currentSrc;\n\t\t\t\t\timage.dataset.darkSrc = darkSrc;\n\t\t\t\t\timage.src = darkSrc;\n\t\t\t\t\timage.srcset = darkSrc;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst lightSrc = image.dataset.lightSrc;\n\t\t\t\tif (lightSrc) {\n\t\t\t\t\timage.src = lightSrc;\n\t\t\t\t\timage.srcset = lightSrc;\n\t\t\t\t}\n\t\t\t}\n\n\t\t});\n\t}\n\n\t// Background images\n\treplaceBackgroundImages() {\n\t\t// element having background image.\n\t\tvar elementsWithBackground = document.querySelectorAll('*');\n\n\t\t// Iterate through the selected elements\n\t\telementsWithBackground.forEach((element) => {\n\t\t\t// Check if the element has a background image\n\t\t\tvar backgroundImage = window.getComputedStyle(element).getPropertyValue('background-image');\n\t\t\t\n\t\t\tif (backgroundImage !== 'none') {\n\n\t\t\t\tbackgroundImage = backgroundImage.replace(/url\\((['\"])?(.*?)\\1\\)/gi, '$2').split(',')[0];\n\t\t\t\t// console.log(\"Found backgroundImage\", element);\n\n\t\t\t\t// Add wp-dark-mode-ignore class.\n\t\t\t\telement.classList.add('wp-dark-mode-ignore');\n\n\t\t\t\t// Log('backgroundImage', backgroundImage)\n\t\t\t\t// change the background image to dark mode if dark mode is enabled\n\t\t\t\tif (WPDarkMode.isActive) {\n\t\t\t\t\tconst darkSrc = this.getDarkSrc(backgroundImage);\n\n\t\t\t\t\t// console.log('darkSrc', darkSrc);\n\n\t\t\t\t\tif (darkSrc) {\n\t\t\t\t\t\telement.style.background = `url(${darkSrc})`;\n\t\t\t\t\t\telement.style.backgroundImage = `url(${darkSrc})`;\n\n\t\t\t\t\t\t// Set light src.\n\t\t\t\t\t\telement.dataset.lightSrc = backgroundImage;\n\t\t\t\t\t\telement.dataset.darkSrc = darkSrc;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// change the background image to light mode if dark mode is disabled\n\t\t\t\t\tconst lightSrc = element.dataset.lightSrc;\n\t\t\t\t\tif (lightSrc) {\n\t\t\t\t\t\telement.style.background = `url(${lightSrc})`;\n\t\t\t\t\t\telement.style.backgroundImage = `url(${lightSrc})`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Get dark src\n\t * \n\t * @param {string} src \n\t * @returns \n\t */\n\tgetDarkSrc(src) {\n\t\t// Bail, if src is not set.\n\t\tif (!src) return;\n\n\t\tconst replaceable_images = wp_dark_mode_json.options.image_replaces || false;\n\t\tif (!replaceable_images) return false\n\n\t\tconst imagePair = replaceable_images.find((img) => {\n\t\t\t// remove query string from image src\n\t\t\tconst srcWithoutQuery = src.split('?')[0];\n\n\t\t\treturn img.light === srcWithoutQuery\n\t\t});\n\n\t\tif (!imagePair) return false\n\n\t\treturn imagePair.dark;\n\t}\n\n\t/**\n\t * Exclude low brightness images\n\t */\n\texcludeFilterImages() {\n\t\tconst lowBrightnessExcludes = wp_dark_mode_json.options.image_enabled_low_brightness ? wp_dark_mode_json.options.image_low_brightness_excludes : false;\n\t\tconst lowGrayscaleExcludes = wp_dark_mode_json.options.image_enabled_low_grayscale ? wp_dark_mode_json.options.image_low_grayscale_excludes : false\n\n\t\tconst images = document.querySelectorAll('img');\n\n\t\tif( images && images.length ) {\n\t\t\timages.forEach((image) => {\n\t\t\t\tconst src = image.src;\n\t\n\t\t\t\tif( lowBrightnessExcludes && lowBrightnessExcludes.includes(src) ) {\n\t\t\t\t\t// Set filter to 0.\n\t\t\t\t\timage.style.setProperty('--wp-dark-mode-img-brightness', '100%');\n\t\t\t\t}\n\t\n\t\t\t\tif( lowGrayscaleExcludes && lowGrayscaleExcludes.includes(src) ) {\n\t\t\t\t\t// Set filter to 0.\n\t\t\t\t\timage.style.setProperty('--wp-dark-mode-img-grayscale', '0%');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t}\n\n}\n\nexport default new Images();","import Base from './Base';\n\nclass Videos extends Base {\n\t/**\n\t * Init\n\t */\n\tready() {\n\t\tthis.initVideos();\n\t}\n\n\t// Detect video host\n\tgetVideoHost = url => {\n\t\t// Regular expression for YouTube URLs\n\t\tconst youtubeRegex = /^(https?:\\/\\/)?(www\\.)?(youtube\\.com\\/(watch\\?v=|embed\\/)|youtu\\.be\\/)[\\w-]+/;\n\t\t// Regular expression for Vimeo URLs\n\t\tconst vimeoRegex = /^(https?:\\/\\/)?(www\\.)?(player\\.)?vimeo\\.com\\/(video\\/)?\\d+/;\n\t\t// Regular expression for common video file extensions\n\t\tconst videoFileRegex = /\\.(mp4|avi|mov|flv|wmv|webm|m4v|mkv|mpg|mpeg|vob|asf|divx|ogv|3gp)$/i;\n\n\n\t\tif (youtubeRegex.test(url)) {\n\t\t\treturn 'youtube';\n\t\t} else if (vimeoRegex.test(url)) {\n\t\t\treturn 'vimeo';\n\t\t} else if (videoFileRegex.test(url)) {\n\t\t\treturn 'file';\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\t/**\n\t * Get YouTube video ID\n\t*/\n\tgetYouTubeVideoID = url => {\n\t\t// Regular expression for extracting the YouTube video ID\n\t\tconst regex = /(?:youtube\\.com\\/(?:[^\\/\\n\\s]+\\/\\S+\\/|(?:v|e(?:mbed)?)\\/|.*[?&]v=)|youtu\\.be\\/)([^\"&?\\/\\s]{11})/i;\n\n\t\tconst match = url.match(regex);\n\t\treturn match ? match[1] : null;\n\t}\n\n\t// Get Vimeo video ID\n\tgetVimeoVideoID = url => {\n\t\t// Regular expression for extracting the Vimeo video ID\n\t\tconst regex = /(?:vimeo\\.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/[^\\/]+\\/videos\\/|album\\/\\d+\\/video\\/|video\\/|)(\\d+)|vimeo\\.com\\/(?:\\w*\\/)?(\\d+))/i;\n\n\t\tconst match = url.match(regex);\n\t\treturn match ? match[1] || match[2] : null;\n\t}\n\n\t/**\n\t * Replace videos\n\t */\n\tinitVideos() {\n\t\t// Bail, if no videos are replaceable.\n\t\tif (!wp_dark_mode_json.options.video_replaces) return false\n\n\t\t// Manipulate wp_dark_mode_json.options.video_replaces\n\t\twp_dark_mode_json.options.video_replaces = wp_dark_mode_json.options.video_replaces.map((vid) => {\n\n\t\t\t['light', 'dark'].forEach((mode) => {\n\t\t\t\t// Get video host.\n\t\t\t\tconst host = this.getVideoHost(vid[mode]);\n\n\t\t\t\t// If YouTube, get video ID and construct dark mode video src correctly.\n\t\t\t\tif ('youtube' === host) {\n\t\t\t\t\tconst videoID = this.getYouTubeVideoID(vid[mode]);\n\t\t\t\t\tif (!videoID) return;\n\n\t\t\t\t\tvid[mode] = `https://www.youtube.com/embed/${videoID}`;\n\t\t\t\t}\n\n\t\t\t\t// If Vimeo, get video ID and construct dark mode video src correctly.\n\t\t\t\tif ('vimeo' === host) {\n\t\t\t\t\tconst videoID = this.getVimeoVideoID(vid[mode]);\n\t\t\t\t\tif (!videoID) return;\n\n\t\t\t\t\tvid[mode] = `https://player.vimeo.com/video/${videoID}`;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn vid;\n\t\t});\n\n\t\t// Set global CSS vid opacity inherit\n\t\tdocument.body.style.setProperty('--wp-dark-mode-vid-opacity', 1);\n\n\t\t// Get all embedded video files.\n\t\tthis.replaceVideos();\n\t\tthis.adjustEmbeds();\n\t\tthis.setVideoFilters();\n\n\t\t// Replace external hosted videos.\n\t\t// this.\n\n\n\t\tWPDarkMode.onChange(() => {\n\t\t\tthis.replaceVideos();\n\t\t\tthis.setVideoFilters();\n\t\t});\n\t}\n\n\t/**\n\t * Replaces Direct Videos from URL\n\t */\n\treplaceVideos() {\n\t\tconst videos = document.querySelectorAll('video, iframe, video source');\n\n\t\t// Bail, if videos are not set.\n\t\tif (!videos || !videos.length) return;\n\n\t\t// Replace videos.\n\t\tvideos.forEach((video) => {\n\t\t\t// Bail, if video src is not set.\n\t\t\tif (!video.src) return;\n\n\t\t\tlet currentSrc = video.dataset.lightSrc || video.src;\n\n\n\t\t\t// Add wp-dark-mode-ignore class.\n\t\t\tvideo.classList.add('wp-dark-mode-ignore');\n\n\t\t\tif (WPDarkMode.isActive) {\n\t\t\t\tconst darkSrc = this.getDarkSrc(currentSrc);\n\t\t\t\tif (darkSrc) {\n\t\t\t\t\tvideo.dataset.lightSrc = currentSrc;\n\t\t\t\t\tvideo.dataset.darkSrc = darkSrc;\n\t\t\t\t\tvideo.src = darkSrc;\n\t\t\t\t\tvideo.srcset = darkSrc;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst lightSrc = video.dataset.lightSrc;\n\t\t\t\tif (lightSrc) {\n\t\t\t\t\tvideo.src = lightSrc;\n\t\t\t\t\tvideo.srcset = lightSrc;\n\t\t\t\t}\n\t\t\t}\n\n\t\t});\n\t}\n\n\t/**\n\t * Get dark src\n\t * \n\t * @param {string} src \n\t * @returns \n\t */\n\tgetDarkSrc(src = null) {\n\t\t// Bail, if src is not set.\n\t\tif (!src) return;\n\n\t\tconst replaceable_videos = wp_dark_mode_json.options.video_replaces || false;\n\t\tif (!replaceable_videos) return false\n\n\t\tconst videoPair = replaceable_videos.find((vid) => {\n\t\t\t// remove query string from video src\n\t\t\tconst srcWithoutQuery = src.split('?')[0];\n\n\t\t\treturn vid.light === srcWithoutQuery\n\t\t});\n\n\t\tif (!videoPair) return false\n\n\t\treturn videoPair.dark;\n\t}\n\n\t/**\n\t * Adjust embeds\n\t * \n\t */\n\tadjustEmbeds(){\n\t\t// detect all the embeds iframe videos from YouTube and Vimeo\n\t\tconst embeds = document.querySelectorAll('iframe');\n\n\t\t// Bail, if embeds are not set.\n\t\tif (!embeds || !embeds.length) return;\n\n\t\t// Filter embeds.\n\t\tconst embeddedVideos = Array.from(embeds).filter((embed) => {\n\t\t\t// Bail, if embed src is not set.\n\t\t\tif (!embed.src) return false;\n\n\t\t\t// Get video host.\n\t\t\tconst host = this.getVideoHost(embed.src);\n\n\t\t\t// If YouTube or Vimeo, return embed.\n\t\t\tif ('youtube' === host || 'vimeo' === host || 'file' === host) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t});\n\n\t\t// Bail, if no embeds are found.\n\t\tif (!embeddedVideos || !embeddedVideos.length) return;\n\n\t\tembeddedVideos.forEach((embed) => {\n\t\t\tif ( !embed || !embed.style ) return;\n\t\t\tembed.style.filter = 'brightness(var(--wp-dark-mode-video-brightness, 100%)) grayscale(var(--wp-dark-mode-video-grayscale, 0%))';\n\t\t});\n\t}\n\n\n\t/**\n\t * Exclude low brightness videos\n\t */\n\tsetVideoFilters() {\n\t\t// Log('Filtering');\n\t\tconst lowBrightnessExcludes = wp_dark_mode_json.options.video_enabled_low_brightness ? wp_dark_mode_json.options.video_low_brightness_excludes : [];\n\t\tconst lowGrayscaleExcludes = wp_dark_mode_json.options.video_enabled_low_grayscale ? wp_dark_mode_json.options.video_low_grayscale_excludes : []\n\n\t\tconst videos = document.querySelectorAll('video, iframe, video source');\n\n\t\tif(videos && videos.length) {\n\t\t\tvideos.forEach((video) => {\n\t\t\t\tconst src = video.src;\n\n\t\t\t\t// Log('video src', src);\n\t\n\t\t\t\tif( lowBrightnessExcludes && lowBrightnessExcludes.includes(src) ) {\n\t\t\t\t\tvideo?.style.setProperty('--wp-dark-mode-video-brightness', '100%');\n\t\t\t\t}\n\t\n\t\t\t\tif( lowGrayscaleExcludes && lowGrayscaleExcludes.includes(src) ) {\n\t\t\t\t\tvideo?.style.setProperty('--wp-dark-mode-video-grayscale', '0');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t}\n\n}\n\nexport default new Videos();","/*\n (c) 2011-2015, Vladimir Agafonkin\n SunCalc is a JavaScript library for calculating sun/moon position and light phases.\n https://github.com/mourner/suncalc\n*/\n\n(function () { 'use strict';\n\n// shortcuts for easier to read formulas\n\nvar PI = Math.PI,\n sin = Math.sin,\n cos = Math.cos,\n tan = Math.tan,\n asin = Math.asin,\n atan = Math.atan2,\n acos = Math.acos,\n rad = PI / 180;\n\n// sun calculations are based on http://aa.quae.nl/en/reken/zonpositie.html formulas\n\n\n// date/time constants and conversions\n\nvar dayMs = 1000 * 60 * 60 * 24,\n J1970 = 2440588,\n J2000 = 2451545;\n\nfunction toJulian(date) { return date.valueOf() / dayMs - 0.5 + J1970; }\nfunction fromJulian(j) { return new Date((j + 0.5 - J1970) * dayMs); }\nfunction toDays(date) { return toJulian(date) - J2000; }\n\n\n// general calculations for position\n\nvar e = rad * 23.4397; // obliquity of the Earth\n\nfunction rightAscension(l, b) { return atan(sin(l) * cos(e) - tan(b) * sin(e), cos(l)); }\nfunction declination(l, b) { return asin(sin(b) * cos(e) + cos(b) * sin(e) * sin(l)); }\n\nfunction azimuth(H, phi, dec) { return atan(sin(H), cos(H) * sin(phi) - tan(dec) * cos(phi)); }\nfunction altitude(H, phi, dec) { return asin(sin(phi) * sin(dec) + cos(phi) * cos(dec) * cos(H)); }\n\nfunction siderealTime(d, lw) { return rad * (280.16 + 360.9856235 * d) - lw; }\n\nfunction astroRefraction(h) {\n if (h < 0) // the following formula works for positive altitudes only.\n h = 0; // if h = -0.08901179 a div/0 would occur.\n\n // formula 16.4 of \"Astronomical Algorithms\" 2nd edition by Jean Meeus (Willmann-Bell, Richmond) 1998.\n // 1.02 / tan(h + 10.26 / (h + 5.10)) h in degrees, result in arc minutes -> converted to rad:\n return 0.0002967 / Math.tan(h + 0.00312536 / (h + 0.08901179));\n}\n\n// general sun calculations\n\nfunction solarMeanAnomaly(d) { return rad * (357.5291 + 0.98560028 * d); }\n\nfunction eclipticLongitude(M) {\n\n var C = rad * (1.9148 * sin(M) + 0.02 * sin(2 * M) + 0.0003 * sin(3 * M)), // equation of center\n P = rad * 102.9372; // perihelion of the Earth\n\n return M + C + P + PI;\n}\n\nfunction sunCoords(d) {\n\n var M = solarMeanAnomaly(d),\n L = eclipticLongitude(M);\n\n return {\n dec: declination(L, 0),\n ra: rightAscension(L, 0)\n };\n}\n\n\nvar SunCalc = {};\n\n\n// calculates sun position for a given date and latitude/longitude\n\nSunCalc.getPosition = function (date, lat, lng) {\n\n var lw = rad * -lng,\n phi = rad * lat,\n d = toDays(date),\n\n c = sunCoords(d),\n H = siderealTime(d, lw) - c.ra;\n\n return {\n azimuth: azimuth(H, phi, c.dec),\n altitude: altitude(H, phi, c.dec)\n };\n};\n\n\n// sun times configuration (angle, morning name, evening name)\n\nvar times = SunCalc.times = [\n [-0.833, 'sunrise', 'sunset' ],\n [ -0.3, 'sunriseEnd', 'sunsetStart' ],\n [ -6, 'dawn', 'dusk' ],\n [ -12, 'nauticalDawn', 'nauticalDusk'],\n [ -18, 'nightEnd', 'night' ],\n [ 6, 'goldenHourEnd', 'goldenHour' ]\n];\n\n// adds a custom time to the times config\n\nSunCalc.addTime = function (angle, riseName, setName) {\n times.push([angle, riseName, setName]);\n};\n\n\n// calculations for sun times\n\nvar J0 = 0.0009;\n\nfunction julianCycle(d, lw) { return Math.round(d - J0 - lw / (2 * PI)); }\n\nfunction approxTransit(Ht, lw, n) { return J0 + (Ht + lw) / (2 * PI) + n; }\nfunction solarTransitJ(ds, M, L) { return J2000 + ds + 0.0053 * sin(M) - 0.0069 * sin(2 * L); }\n\nfunction hourAngle(h, phi, d) { return acos((sin(h) - sin(phi) * sin(d)) / (cos(phi) * cos(d))); }\nfunction observerAngle(height) { return -2.076 * Math.sqrt(height) / 60; }\n\n// returns set time for the given sun altitude\nfunction getSetJ(h, lw, phi, dec, n, M, L) {\n\n var w = hourAngle(h, phi, dec),\n a = approxTransit(w, lw, n);\n return solarTransitJ(a, M, L);\n}\n\n\n// calculates sun times for a given date, latitude/longitude, and, optionally,\n// the observer height (in meters) relative to the horizon\n\nSunCalc.getTimes = function (date, lat, lng, height) {\n\n height = height || 0;\n\n var lw = rad * -lng,\n phi = rad * lat,\n\n dh = observerAngle(height),\n\n d = toDays(date),\n n = julianCycle(d, lw),\n ds = approxTransit(0, lw, n),\n\n M = solarMeanAnomaly(ds),\n L = eclipticLongitude(M),\n dec = declination(L, 0),\n\n Jnoon = solarTransitJ(ds, M, L),\n\n i, len, time, h0, Jset, Jrise;\n\n\n var result = {\n solarNoon: fromJulian(Jnoon),\n nadir: fromJulian(Jnoon - 0.5)\n };\n\n for (i = 0, len = times.length; i < len; i += 1) {\n time = times[i];\n h0 = (time[0] + dh) * rad;\n\n Jset = getSetJ(h0, lw, phi, dec, n, M, L);\n Jrise = Jnoon - (Jset - Jnoon);\n\n result[time[1]] = fromJulian(Jrise);\n result[time[2]] = fromJulian(Jset);\n }\n\n return result;\n};\n\n\n// moon calculations, based on http://aa.quae.nl/en/reken/hemelpositie.html formulas\n\nfunction moonCoords(d) { // geocentric ecliptic coordinates of the moon\n\n var L = rad * (218.316 + 13.176396 * d), // ecliptic longitude\n M = rad * (134.963 + 13.064993 * d), // mean anomaly\n F = rad * (93.272 + 13.229350 * d), // mean distance\n\n l = L + rad * 6.289 * sin(M), // longitude\n b = rad * 5.128 * sin(F), // latitude\n dt = 385001 - 20905 * cos(M); // distance to the moon in km\n\n return {\n ra: rightAscension(l, b),\n dec: declination(l, b),\n dist: dt\n };\n}\n\nSunCalc.getMoonPosition = function (date, lat, lng) {\n\n var lw = rad * -lng,\n phi = rad * lat,\n d = toDays(date),\n\n c = moonCoords(d),\n H = siderealTime(d, lw) - c.ra,\n h = altitude(H, phi, c.dec),\n // formula 14.1 of \"Astronomical Algorithms\" 2nd edition by Jean Meeus (Willmann-Bell, Richmond) 1998.\n pa = atan(sin(H), tan(phi) * cos(c.dec) - sin(c.dec) * cos(H));\n\n h = h + astroRefraction(h); // altitude correction for refraction\n\n return {\n azimuth: azimuth(H, phi, c.dec),\n altitude: h,\n distance: c.dist,\n parallacticAngle: pa\n };\n};\n\n\n// calculations for illumination parameters of the moon,\n// based on http://idlastro.gsfc.nasa.gov/ftp/pro/astro/mphase.pro formulas and\n// Chapter 48 of \"Astronomical Algorithms\" 2nd edition by Jean Meeus (Willmann-Bell, Richmond) 1998.\n\nSunCalc.getMoonIllumination = function (date) {\n\n var d = toDays(date || new Date()),\n s = sunCoords(d),\n m = moonCoords(d),\n\n sdist = 149598000, // distance from Earth to Sun in km\n\n phi = acos(sin(s.dec) * sin(m.dec) + cos(s.dec) * cos(m.dec) * cos(s.ra - m.ra)),\n inc = atan(sdist * sin(phi), m.dist - sdist * cos(phi)),\n angle = atan(cos(s.dec) * sin(s.ra - m.ra), sin(s.dec) * cos(m.dec) -\n cos(s.dec) * sin(m.dec) * cos(s.ra - m.ra));\n\n return {\n fraction: (1 + cos(inc)) / 2,\n phase: 0.5 + 0.5 * inc * (angle < 0 ? -1 : 1) / Math.PI,\n angle: angle\n };\n};\n\n\nfunction hoursLater(date, h) {\n return new Date(date.valueOf() + h * dayMs / 24);\n}\n\n// calculations for moon rise/set times are based on http://www.stargazing.net/kepler/moonrise.html article\n\nSunCalc.getMoonTimes = function (date, lat, lng, inUTC) {\n var t = new Date(date);\n if (inUTC) t.setUTCHours(0, 0, 0, 0);\n else t.setHours(0, 0, 0, 0);\n\n var hc = 0.133 * rad,\n h0 = SunCalc.getMoonPosition(t, lat, lng).altitude - hc,\n h1, h2, rise, set, a, b, xe, ye, d, roots, x1, x2, dx;\n\n // go in 2-hour chunks, each time seeing if a 3-point quadratic curve crosses zero (which means rise or set)\n for (var i = 1; i <= 24; i += 2) {\n h1 = SunCalc.getMoonPosition(hoursLater(t, i), lat, lng).altitude - hc;\n h2 = SunCalc.getMoonPosition(hoursLater(t, i + 1), lat, lng).altitude - hc;\n\n a = (h0 + h2) / 2 - h1;\n b = (h2 - h0) / 2;\n xe = -b / (2 * a);\n ye = (a * xe + b) * xe + h1;\n d = b * b - 4 * a * h1;\n roots = 0;\n\n if (d >= 0) {\n dx = Math.sqrt(d) / (Math.abs(a) * 2);\n x1 = xe - dx;\n x2 = xe + dx;\n if (Math.abs(x1) <= 1) roots++;\n if (Math.abs(x2) <= 1) roots++;\n if (x1 < -1) x1 = x2;\n }\n\n if (roots === 1) {\n if (h0 < 0) rise = i + x1;\n else set = i + x1;\n\n } else if (roots === 2) {\n rise = i + (ye < 0 ? x2 : x1);\n set = i + (ye < 0 ? x1 : x2);\n }\n\n if (rise && set) break;\n\n h0 = h2;\n }\n\n var result = {};\n\n if (rise) result.rise = hoursLater(t, rise);\n if (set) result.set = hoursLater(t, set);\n\n if (!rise && !set) result[ye > 0 ? 'alwaysUp' : 'alwaysDown'] = true;\n\n return result;\n};\n\n\n// export as Node module / AMD module / browser variable\nif (typeof exports === 'object' && typeof module !== 'undefined') module.exports = SunCalc;\nelse if (typeof define === 'function' && define.amd) define(SunCalc);\nelse window.SunCalc = SunCalc;\n\n}());\n","import WPDarkMode from \"./WPDarkMode\";\nimport Store from \"./Store\";\nimport Accessibility from \"./Accessibility\";\nimport Color from \"./Color\";\nimport Base from \"./Base\";\nimport Image from \"./Images\";\nimport Video from \"./Videos\";\nimport SunCalc from \"suncalc\";\n\nclass DarkModeApp extends Base {\n\n\t/**\n\t * Events\n\t */\n\tasync events() {\n\t\t// Sync storages.\n\t\tthis.syncStorage();\n\n\t\t// Try applying dark mode.\n\t\tthis.tryApplyingDarkMode();\n\n\t\t// Register event listeners.\n\t\tthis.registerEvents();\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Get user choice.\n\t *\n\t * @return {string}\n\t */\n\tget hasUserChoice() {\n\t\treturn null !== Store.get('choice');\n\t}\n\n\t/**\n\t * Sync storages\n\t */\n\tsyncStorage() {\n\t\t/**\n\t\t * Device preference for dark mode\n\t\t */\n\t\tStore.set('device', WPDarkMode.isDeviceDark ? 'dark' : 'light');\n\n\t\t/**\n\t\t * These are premium features\n\t\t */\n\t\tif (!this.isPremium) return;\n\n\t\t/**\n\t\t * Timezone of device, used for Time based dark mode\n\t\t */\n\t\tlet timeZoneOffset = (new Date().getTimezoneOffset() / 60);\n\n\t\t// Add + sign if offset is negative. Add - sign if offset is positive.\n\t\tif (timeZoneOffset > 0) {\n\t\t\ttimeZoneOffset = '-' + timeZoneOffset;\n\t\t} else {\n\t\t\ttimeZoneOffset = '+' + Math.abs(Number(timeZoneOffset));\n\t\t}\n\n\t\tStore.set('timezone', timeZoneOffset);\n\n\t\t/**\n\t\t * Location of device, used for sunset based dark mode\n\t\t * Ask, only if sunset mode is enabled.\n\t\t */\n\t\tif (wp_dark_mode_json.options.frontend_mode === 'sunset') {\n\t\t\tthis.syncDeviceLocation()\n\t\t}\n\t}\n\n\t/**\n\t * Update device location\n\t */\n\tasync syncDeviceLocation() {\n\n\t\t// Check if location was updated in last 24 hours.\n\t\tconst locationUpdated = Store.get('location-updated');\n\n\t\t// Bail if location was updated in last 24 hours.\n\t\tif (locationUpdated) {\n\t\t\tif (((new Date()) - (new Date().setTime(locationUpdated))) < (24 * 60 * 60 * 1000)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Bail, if navigator is not available or geolocation is not supported.\n\t\tif (!navigator || !navigator.geolocation) {\n\t\t\treturn;\n\t\t}\n\n\t\tnavigator.geolocation.getCurrentPosition((position) => {\n\t\t\t// Save location for dark mode.\n\t\t\tStore.set('location', position.coords.latitude + ',' + position.coords.longitude);\n\n\t\t\t// Save location update time.\n\t\t\tStore.set('location-updated', new Date().getTime());\n\n\t\t\t// Apply sunset mode if it is enabled.\n\t\t\tif ( wp_dark_mode_json.options.frontend_mode === 'sunset' && this.isPremium ) {\n\t\t\t\tthis.applySunsetMode();\n\t\t\t}\n\t\t});\n\n\t}\n\n\t/**\n\t * Register event listeners\n\t */\n\tregisterEvents() {\n\t\t// Adjust presets, colors, exclude elements, etc.\n\t\t// window.WPDarkModeColor = Color\n\t\tColor.init();\n\n\t\t// window.WPDarkModeAccessibility = Accessibility\n\t\tAccessibility.init();\n\n\t\t// Replace images.\n\t\tImage.init();\n\n\t\t// Replace videos.\n\t\tVideo.init();\n\n\t\t// Track device settings.\n\t\tthis.followDevice();\n\t}\n\n\t/**\n\t * Listen for device dark mode change\n\t */\n\tfollowDevice() {\n\t\t// Bail, if dark mode is not following device mode.\n\t\tif (wp_dark_mode_json.options.frontend_mode !== 'device') return;\n\n\t\t// Bail, if device mode change is not supported.\n\t\tif (!window || !window.matchMedia) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst mediaQuery = matchMedia('(prefers-color-scheme: dark)');\n\n\t\tif (!mediaQuery) return false;\n\n\t\tconst checkSystemMode = () => {\n\t\t\t// React to device preference change.\n\t\t\tif (mediaQuery.matches) {\n\t\t\t\tWPDarkMode.activate();\n\t\t\t} else {\n\t\t\t\tWPDarkMode.deactivate();\n\t\t\t}\n\t\t}\n\n\t\tmediaQuery.addEventListener('change', function () {\n\n\t\t\t// Update user device preference.\n\t\t\tStore.set('device', mediaQuery.matches ? 'dark' : 'light');\n\n\t\t\t// React to device preference change.\n\n\t\t\t// Bail, if user choice is set.\n\t\t\tif (Store.get('choice') !== null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcheckSystemMode()\n\t\t});\n\n\t\t// Check system mode on load.\n\t\tif (!WPDarkMode.isActive && !this.hasUserChoice) {\n\t\t\tcheckSystemMode()\n\t\t}\n\t}\n\n\t/**\n\t * Try applying dark mode.\n\t *\n\t * @return {Promise}\n\t * @private\n\t */\n\tasync tryApplyingDarkMode() {\n\n\t\treturn new Promise(async (resolve) => {\n\n\t\t\tif ( this.isPremium ) {\n\t\t\t\t// Bail, if caching is not excluded.\n\t\t\t\tconst res = await fetch( wp_dark_mode_json.url.ajax + '?action=wp_dark_mode_options&nonce=' + wp_dark_mode_json.nonce)\n\t\t\t\tconst data = await res.json()\n\n\t\t\t\tif ( ! this.isTrue( data.data.performance_exclude_cache ) ) {\n\t\t\t\t\tresolve(true);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Bail, if current page is excluded from dark mode.\n\t\t\tif ( ! this.isTrue( wp_dark_mode_json.options.frontend_enabled ) ) {\n\t\t\t\tresolve(true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\t// Apply dark mode, if user choice is set.\n\t\t\tif (this.hasUserChoice) {\n\t\t\t\tif ( 'dark' == Store.get('choice') ) {\n\t\t\t\t\tWPDarkMode.activate();\n\t\t\t\t} else {\n\t\t\t\t\tWPDarkMode.deactivate();\n\t\t\t\t}\n\n\t\t\t\tresolve(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check and apply selected mode.\n\t\t\tswitch (wp_dark_mode_json.options.frontend_mode) {\n\t\t\t\tcase 'default_light':\n\t\t\t\t\tWPDarkMode.deactivate();\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\tcase 'default':\n\t\t\t\t\tWPDarkMode.activate();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'device':\n\n\t\t\t\t\tif (WPDarkMode.isDeviceDark) {\n\t\t\t\t\t\tWPDarkMode.activate();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tWPDarkMode.deactivate();\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'time':\n\n\t\t\t\t\t// Bail, if user is not premium.\n\t\t\t\t\tif (!this.isPremium) {\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst starts = wp_dark_mode_json.options.frontend_time_starts;\n\t\t\t\t\tconst ends = wp_dark_mode_json.options.frontend_time_ends;\n\n\t\t\t\t\t// Helper function to convert \"hh:mm AA\" format to minutes since midnight\n\t\t\t\t\tfunction timeToMinutes(time) {\n\t\t\t\t\t\tconst [timePart, period] = time.split(' ');\n\t\t\t\t\t\tlet [hours, minutes] = timePart.split(':').map(Number);\n\n\t\t\t\t\t\t// Convert to 24-hour format\n\t\t\t\t\t\tif (period === 'PM' && hours !== 12) {\n\t\t\t\t\t\t\thours += 12;\n\t\t\t\t\t\t} else if (period === 'AM' && hours === 12) {\n\t\t\t\t\t\t\thours = 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn hours * 60 + minutes;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get the current time in minutes since midnight\n\t\t\t\t\tconst now = new Date();\n\t\t\t\t\tconst currentMinutes = now.getHours() * 60 + now.getMinutes();\n\n\t\t\t\t\tconst startMinutes = timeToMinutes(starts);\n\t\t\t\t\tconst endMinutes = timeToMinutes(ends);\n\n\t\t\t\t\tlet isDarkMode = false;\n\n\t\t\t\t\t// Check if current time is between start and end time\n\t\t\t\t\tif (startMinutes < endMinutes) {\n\t\t\t\t\t\t// Time range is within the same day\n\t\t\t\t\t\tif (currentMinutes >= startMinutes && currentMinutes < endMinutes) {\n\t\t\t\t\t\t\tisDarkMode = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Time range spans across midnight\n\t\t\t\t\t\tif (currentMinutes >= startMinutes || currentMinutes < endMinutes) {\n\t\t\t\t\t\t\tisDarkMode = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isDarkMode) {\n\t\t\t\t\t\tWPDarkMode.activate();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tWPDarkMode.deactivate();\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'sunset':\n\n\t\t\t\t\t// Bail, if user is not premium.\n\t\t\t\t\tif (!this.isPremium) {\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tawait this.applySunsetMode();\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tresolve(true)\n\n\t\t});\n\t}\n\n\tasync applySunsetMode() {\n\t\t// Get sunset time.\n\t\tconst loc = Store.get('location').split(',').map(Number);\n\t\tlet { sunrise, sunset } = SunCalc.getTimes(new Date(), loc[0], loc[1]);\n\t\t\n\t\t// Get current time.\n\t\tconst now = new Date();\n\n\t\t// Check if it is night time.\n\t\tconst isNight = now > sunset || now < sunrise;\n\n\t\t// Apply dark mode, if it is night time.\n\t\tif (isNight) {\n\t\t\tWPDarkMode.activate();\n\t\t} else {\n\t\t\tWPDarkMode.deactivate();\n\t\t}\n\t}\n\n}\n\nexport default new DarkModeApp();","export default (config = {}) => { \n return `
${config.iconLight || wp_dark_mode_icons.HalfMoonFilled}
${config.iconDark || wp_dark_mode_icons.HalfMoonFilled}
` }","export default ((config = {}) => { return `
${config.iconLight || wp_dark_mode_icons.SunFilled}
${config.iconLight || wp_dark_mode_icons.SunFilled}
${config.iconDark || wp_dark_mode_icons.StarMoonFilled}
` })","export default ((config = {}) => { return `
${config.iconLight || wp_dark_mode_icons.SunFilled}
${config.iconDark || wp_dark_mode_icons.HalfMoonFilled}
` })","export default ((config = {}) => { return `
${config.iconLight || wp_dark_mode_icons.SunFilled}
${config.iconDark || wp_dark_mode_icons.HalfMoonFilled}
` })","export default (config = {}) => { return `
${ config.iconLight || wp_dark_mode_icons.SunOutlined }
${ config.iconDark || wp_dark_mode_icons.SunOutlined }
` }","export default (config = {}) => { return `
${ config.iconLight || wp_dark_mode_icons.FullMoonFilled }
${config.iconDark || wp_dark_mode_icons.FullMoonFilled}
${config.fontIcon || wp_dark_mode_icons.DoubleUpperT }
${config.fontIconActive || wp_dark_mode_icons.DoubleUpperT}
` }","export default (config = {}) => { const fontIcon = config.fontIcon ? `` : `a`; const fontIconActive = config.fontIconActive ? `` : 'A'; return `
${ config.iconLight || wp_dark_mode_icons.SunFilled }
${config.iconDark || wp_dark_mode_icons.HalfMoonFilled }
${fontIcon}
${fontIconActive}
` }","export default (config = {}) => { return `
${ config.iconLight || wp_dark_mode_icons.SunOutlined }
${ config.iconDark || wp_dark_mode_icons.StarMoonOutlined }
${config.fontIcon ? `` : wp_dark_mode_icons.DoubleT}
${config.fontIconActive ? `` : wp_dark_mode_icons.DoubleT}
` }","export default (config = {}) => { return `
${ config.iconLight || wp_dark_mode_icons.RichSunFilled }
${ config.iconDark || wp_dark_mode_icons.RichMoonFilled }
${ config.fontIcon || wp_dark_mode_icons.UpperA}
${ config.fontIconActive || wp_dark_mode_icons.UpperA}
` }","export default (config = {}) => { return `
${ config.fontIcon || wp_dark_mode_icons.UpperA }
${ config.fontIconActive || wp_dark_mode_icons.UpperA }
${ config.iconLight || wp_dark_mode_icons.FullMoonFilled }
${ config.iconDark || wp_dark_mode_icons.FullMoonFilled }
` }","export default (config = {}) => { return `
${ config.fontIcon || wp_dark_mode_icons.UpperA }
${ config.fontIconActive || wp_dark_mode_icons.UpperA }
${ config.iconLight || wp_dark_mode_icons.SunOutlined }
${ config.iconDark || wp_dark_mode_icons.StarMoonFilled }
` }","export default (config = {}) => { return `
${config.textLight || 'Light'}
${config.textDark || 'Dark'}
` }","export default (config = {}) => {\n return `
`;\n};\n","export default ((config = {}) => { return ` `; }); ","export default ((config = {}) => { return `
${config.iconLight || wp_dark_mode_icons.Halloween.light}
${config.iconDark || wp_dark_mode_icons.Halloween.dark}
` })","export default ((config = {}) => { return `
${config.iconLight || wp_dark_mode_icons.SunOutlined}
${config.iconDark || wp_dark_mode_icons.HalfMoonOutlined}
` })","export default ((config = {}) => { return `
${config.iconLight || wp_dark_mode_icons.SunOutlined}
${config.iconDark || wp_dark_mode_icons.HalfMoonOutlined}
` })","export default (config = {}) => {\n\treturn `
${config.iconLight || wp_dark_mode_icons.RichSunOutlined}
${config.iconDark || wp_dark_mode_icons.CurvedMoonOutlined}
`\n}","export default ((config = {}) => {\n\treturn `${config.textLight || 'Light'}
${config.iconLight || wp_dark_mode_icons.RichSunOutlined}
${config.iconDark || wp_dark_mode_icons.CurvedMoonOutlined}
${config.textDark || 'Dark'}`\n})","export default ((config = {}) => { return `
${config.iconLight || wp_dark_mode_icons.RichSunOutlined}
${config.iconDark || wp_dark_mode_icons.CurvedMoonOutlined}
`; })","export default ((config = {}) => { return `
${config.iconLight || wp_dark_mode_icons.SunOutlined}
${config.iconDark || wp_dark_mode_icons.HalfMoonOutlined}
`; })","export default ((config = {}) => { return `
${config.iconLight || wp_dark_mode_icons.SunOutlined}
`; })","import Base from './Base'\nimport WPDarkMode from './WPDarkMode'\nimport * as Switches from '../switches';\nimport Accessibility from './Accessibility'\n\nclass DarkModeSwitch extends Base {\n\n\t/**\n\t * Get switch elements\n\t */\n\tgetSwitches(exclude = '') {\n\n\t\tif (exclude !== '') {\n\t\t\treturn document.querySelectorAll(`.wp-dark-mode-switch:not(${exclude})`);\n\t\t}\n\n\t\treturn document.querySelectorAll('.wp-dark-mode-switch');\n\t}\n\n\t/**\n\t * init\n\t */\n\tready() {\n\t\t\n\t\tconst source = typeof window.wp_dark_mode_admin_json !== 'undefined' ? window.wp_dark_mode_admin_json : window.wp_dark_mode_json;\n\n\t\t// Bail, if not enabled.\n\t\tif (source && source.is_excluded) return;\n\n\t\tthis.injectSwitches();\n\n\t\tthis.listenSwitches();\n\t\tthis.reactiveSwitches();\n\n\t\tthis.throttle = false;\n\n\t\tif (source.options.performance_track_dynamic_content) {\n\t\t\tthis.dynamicSwitches()\n\t\t}\n\n\t\twindow.addEventListener('elementor/frontend/init', () => {\n\t\t\tthis.dynamicSwitches()\n\t\t});\n\n\t}\n\n\tdynamicSwitches() {\n\n\t\t// Bail if already initialized.\n\t\tif (this.dynamicSwitchesInitialized) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dynamicSwitchesInitialized = true;\n\n\t\t// Inject switches when mutation occurs in BODY.\n\t\tconst observer = new MutationObserver((mutations) => {\n\t\t\tmutations.forEach((mutation) => {\n\t\t\t\tif (this.throttle) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Log('ClassList changed!');\n\n\t\t\t\tthis.throttle = true;\n\t\t\t\tsetTimeout(this.injectSwitches, 200);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.throttle = false;\n\t\t\t\t}, 500);\n\t\t\t});\n\t\t});\n\n\t\tobserver.observe(document.body, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t\tattributes: false,\n\t\t});\n\t}\n\n\t/**\n\t * Inject switches to DOM\n\t */\n\tinjectSwitches = () => {\n\t\tconst switches = this.getSwitches('.ignore');\n\n\t\tif (!switches || !switches.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst THIS = this;\n\n\t\tswitches.forEach((switchEl) => {\n\n\t\t\t// Bail, if already injected.\n\t\t\tif (switchEl.querySelector('.wp-dark-mode-switch-styled')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst data_keys = ['style', 'size', 'reactive', 'textLight', 'textDark', 'iconLight', 'iconDark'];\n\n\t\t\tconst config = {}\n\t\t\tdata_keys.forEach((key) => {\n\t\t\t\tconfig[key] = switchEl.dataset[key] || null;\n\t\t\t})\n\n\t\t\t// Return if style is not defined.\n\t\t\tif (!config.style) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Log('config', config);\n\t\t\tconst switchHtml = THIS.buildSwitch(config);\n\t\t\tswitchEl.innerHTML = switchHtml;\n\t\t});\n\t}\n\n\t/**\n\t * Listen switch clicks\n\t */\n\tlistenSwitches() {\n\t\twindow?.addEventListener('click', (event) => {\n\n\n\t\t\t// Check if the clicked element is a Dark Mode switch\n\t\t\tconst isSwitch = event.target.closest('.wp-dark-mode-switch') || event.target.matches('.wp-dark-mode-switch');\n\t\t\t// Bail, if not a Dark Mode switch\n\t\t\tif (!isSwitch) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Bail, if element contains .dummy class.\n\t\t\tif (event.target.closest('.dummy')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// this.emit('click', event);\n\n\t\t\t// Prevent default action\n\t\t\tevent.preventDefault();\n\n\t\t\t// Log('event.target', event.target);\n\t\t\t// if target has _font in parent or self\n\t\t\tif (event.target.closest('._font') || event.target.matches('._font')) {\n\t\t\t\t// Log('font toggle');\n\t\t\t\tAccessibility.toggleFontSize(event.target.closest('.wp-dark-mode-switch ._font'));\n\n\t\t\t\tthis.emit('font-toggled', event);\n\t\t\t} else {\n\t\t\t\tWPDarkMode.toggle().remember();\n\n\t\t\t\t// this.emit('toggled', event);\n\t\t\t}\n\n\t\t});\n\n\t\t// On press Enter key\n\t\twindow?.addEventListener('keydown', (event) => {\n\t\t\tif (event.key === 'Enter') {\n\t\t\t\tconst isSwitch = event.target.closest('.wp-dark-mode-switch') || event.target.matches('.wp-dark-mode-switch');\n\t\t\t\tif (isSwitch) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.target.click();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Reactive switches\n\t */\n\treactiveSwitches() {\n\n\t\t// Initial update switches.\n\t\tthis.updateSwitches();\n\n\t\t// Update switches on change dark mode.\n\t\tWPDarkMode.onChange(this.updateSwitches);\n\t}\n\n\t/**\n\t * Update Switches\n\t */\n\tupdateSwitches = () => {\n\t\tconst switches = this.getSwitches('.dummy');\n\n\t\tif (!switches || !switches.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitches.forEach((switchEl) => {\n\t\t\tconst _scheme = switchEl.querySelector('._scheme')\n\t\t\tif (_scheme) {\n\t\t\t\t// for Accessibility \n\t\t\t\t_scheme.classList[WPDarkMode.isActive ? 'add' : 'remove']('active');\n\t\t\t} else if (switchEl.querySelector('.switch')) {\n\t\t\t\t// For admin\n\t\t\t\tconst switchChild = switchEl.querySelector('.switch')\n\t\t\t\tswitchChild.classList[WPDarkMode.isActive ? 'add' : 'remove']('active');\n\t\t\t} else {\n\t\t\t\t// for normal \n\t\t\t\tlet instantChild = switchEl.querySelector('div:not(.light):not(.dark)');\n\t\t\t\tif (!instantChild) instantChild = switchEl\n\t\t\t\tinstantChild.classList[WPDarkMode.isActive ? 'add' : 'remove']('active');\n\t\t\t}\n\t\t});\n\n\t\t// Event to update switches.\n\t\t// this.emit('updated');\n\t}\n\n\t/**\n\t * Build switch\n\t *\n\t * @param {string} style\n\t * @param {string} size \n\t * @returns {string}\n\t */\n\tbuildSwitch(config = {}) {\n\t\tconst isActive = WPDarkMode.isActive;\n\t\tconst isReactive = config.reactive !== false;\n\n\t\tlet html = `
`;\n\n\t\t// Adjust switch style.\n\t\tconst switchStyle = 'Switch_' + (config.style || 1);\n\n\t\t// Wrap iconLight and iconDark inside img if exists.\n\t\tconfig.iconLight = config.iconLight ? `` : null\n\t\tconfig.iconDark = config.iconDark ? `` : null\n\n\t\thtml += Switches[switchStyle](config);\n\n\t\thtml += `
`;\n\n\t\treturn html;\n\t}\n\n\t// developer events \n\t// clicked = (callback) => {\n\t// \tthis.on('click', callback);\n\t// }\n\n}\n\nexport default new DarkModeSwitch();","export const Log = (...args) => {\n if (!wp_dark_mode_json.debug) return;\n console.log('%cWPDarkMode', 'background: #2663eb; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: 500;', ...args);\n};\n","import DarkModeApp from '@common/app.js';\nimport DarkModeSwitch from '@common/Switch.js';\nimport { Log } from '@common/Utility.js'; \n/**\n * Initialize the app\n *\n * These classes can be initialized only once to avoid conflicts\n */\n\n// document.addEventListener('readystatechange', () => {\n // if (document.readyState === 'complete') {\n window.Log = Log;\n\n window.WPDarkModeApp = DarkModeApp.init();\n console.log('Dark Mode App Initialized');\n \n // Initialize the switch.\n DarkModeSwitch.init()\n// }\n// });\n\n"],"names":["_Store","key","value","daysToExpire","expires","cookies","cookie","cookieKey","cookieValue","item","__publicField","Store","_DarkMode","__privateAdd","_callbacks","_config","__privateGet","_instance","__privateSet","callback","_a","active","config","DarkMode","WPDarkMode","Base","selector","context","_events","event","args","bind","fn","thisArg","toString","getPrototypeOf","kindOf","cache","thing","str","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","trim","forEach","obj","allOwnKeys","i","l","keys","len","findKey","_key","_global","isContextDefined","merge","caseless","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","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","ALPHA","DIGIT","ALPHABET","generateString","size","alphabet","length","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","utils$1","AxiosError","message","code","request","response","utils","error","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","path","dots","token","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","platform$1","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","platform","toURLEncodedForm","data","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","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","computed","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","fns","isCancel","CanceledError","settle","resolve","reject","validateStatus","domain","secure","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","href","requestURL","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","knownAdapters","requestData","requestHeaders","responseType","withXSRFToken","onCanceled","done","username","password","fullPath","onloadend","responseHeaders","err","timeoutErrorMessage","xsrfValue","cancel","protocol","renderReason","reason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","VERSION","validators","deprecatedWarnings","validators$1","validator","version","formatMessage","opt","desc","opts","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","c","CancelToken$1","spread","isAxiosError","payload","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","instance","axios","promises","axios$1","Ajax","action","p","Ajax$1","Accessibility","elements","desiredSize","element","fontSize","newFontSize","by","unit","newValue","switches","switchEl","html","isLargeFont","isActive","visitor_id","Accessibility$1","Color","color","colorString","alpha","tempDiv","rgbaValues","red","green","blue","opacity","r","g","rgb","backgroundColor","FiltersConfig","all","excludes","ignorableElements","ignoreRecursively","borderColor","child","includedElements","includeRecursively","Color$1","Images","images","image","currentSrc","darkSrc","lightSrc","elementsWithBackground","backgroundImage","src","replaceable_images","imagePair","img","srcWithoutQuery","lowBrightnessExcludes","lowGrayscaleExcludes","Image","Videos","youtubeRegex","vimeoRegex","videoFileRegex","regex","vid","mode","host","videoID","videos","video","replaceable_videos","videoPair","embeds","embeddedVideos","embed","Video","PI","sin","cos","tan","asin","atan","acos","rad","dayMs","J1970","J2000","toJulian","date","fromJulian","j","toDays","rightAscension","declination","azimuth","H","phi","dec","altitude","siderealTime","d","lw","astroRefraction","solarMeanAnomaly","eclipticLongitude","M","C","P","sunCoords","L","SunCalc","lat","lng","times","angle","riseName","setName","J0","julianCycle","approxTransit","Ht","n","solarTransitJ","ds","hourAngle","observerAngle","height","getSetJ","dh","Jnoon","time","h0","Jset","Jrise","moonCoords","F","dt","pa","sdist","inc","hoursLater","inUTC","t","hc","h1","h2","rise","set","xe","ye","roots","x1","x2","dx","module","DarkModeApp","timeZoneOffset","locationUpdated","mediaQuery","checkSystemMode","timeToMinutes","timePart","period","hours","minutes","starts","ends","currentMinutes","startMinutes","endMinutes","isDarkMode","loc","sunrise","sunset","DarkModeApp$1","fontIcon","fontIconActive","DarkModeSwitch","THIS","data_keys","switchHtml","_scheme","instantChild","exclude","mutations","mutation","isReactive","switchStyle","Switches","DarkModeSwitch$1","Log"],"mappings":"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","x_google_ignoreList":[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,51]}