You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1 lines
173 KiB

{"version":3,"file":"panels/corpglory-dataexporter-panel/module.js","mappings":"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","sources":["webpack:///external amd \"react\"","webpack:///external amd \"@grafana/ui\"","webpack:///external amd \"@grafana/data\"","webpack:///../node_modules/axios/node_modules/form-data/lib/browser.js","webpack:///external amd \"lodash\"","webpack:///external amd \"@grafana/runtime\"","webpack:///external amd \"app/core/app_events\"","webpack:///external amd \"app/core/core\"","webpack:///external amd \"@emotion/css\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///./panels/corpglory-dataexporter-panel/types.ts","webpack:///./utils/index.ts","webpack:///./icons.ts","webpack:///../node_modules/axios/lib/helpers/bind.js","webpack:///../node_modules/axios/lib/utils.js","webpack:///../node_modules/axios/lib/core/AxiosError.js","webpack:///../node_modules/axios/lib/env/classes/FormData.js","webpack:///../node_modules/axios/lib/helpers/toFormData.js","webpack:///../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack:///../node_modules/axios/lib/helpers/buildURL.js","webpack:///../node_modules/axios/lib/core/InterceptorManager.js","webpack:///../node_modules/axios/lib/defaults/transitional.js","webpack:///../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack:///../node_modules/axios/lib/platform/browser/classes/FormData.js","webpack:///../node_modules/axios/lib/platform/browser/index.js","webpack:///../node_modules/axios/lib/helpers/formDataToJSON.js","webpack:///../node_modules/axios/lib/defaults/index.js","webpack:///../node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack:///../node_modules/axios/lib/helpers/parseHeaders.js","webpack:///../node_modules/axios/lib/core/AxiosHeaders.js","webpack:///../node_modules/axios/lib/core/transformData.js","webpack:///../node_modules/axios/lib/cancel/isCancel.js","webpack:///../node_modules/axios/lib/cancel/CanceledError.js","webpack:///../node_modules/axios/lib/helpers/cookies.js","webpack:///../node_modules/axios/lib/core/buildFullPath.js","webpack:///../node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///../node_modules/axios/lib/helpers/combineURLs.js","webpack:///../node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///../node_modules/axios/lib/helpers/speedometer.js","webpack:///../node_modules/axios/lib/adapters/xhr.js","webpack:///../node_modules/axios/lib/adapters/adapters.js","webpack:///../node_modules/axios/lib/helpers/null.js","webpack:///../node_modules/axios/lib/core/settle.js","webpack:///../node_modules/axios/lib/helpers/parseProtocol.js","webpack:///../node_modules/axios/lib/core/dispatchRequest.js","webpack:///../node_modules/axios/lib/core/mergeConfig.js","webpack:///../node_modules/axios/lib/env/data.js","webpack:///../node_modules/axios/lib/helpers/validator.js","webpack:///../node_modules/axios/lib/core/Axios.js","webpack:///../node_modules/axios/lib/cancel/CancelToken.js","webpack:///../node_modules/axios/lib/axios.js","webpack:///../node_modules/axios/lib/helpers/spread.js","webpack:///../node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./services/api_service.ts","webpack:///./services/grafana_backend_service.ts","webpack:///./panels/corpglory-dataexporter-panel/components/Panel.tsx","webpack:///./panels/corpglory-dataexporter-panel/module.ts"],"sourcesContent":["module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","module.exports = __WEBPACK_EXTERNAL_MODULE__10__;","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__13__;","module.exports = __WEBPACK_EXTERNAL_MODULE__14__;","module.exports = __WEBPACK_EXTERNAL_MODULE__15__;","module.exports = __WEBPACK_EXTERNAL_MODULE__28__;","module.exports = __WEBPACK_EXTERNAL_MODULE__29__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { DataQuery, DataSourceSettings, PanelModel } from '@grafana/data';\n\nexport interface PanelOptions {}\n\nexport enum DatasourceType {\n INFLUXDB = 'influxdb',\n GRAPHITE = 'graphite',\n PROMETHEUS = 'prometheus',\n POSTGRES = 'postgres',\n ELASTICSEARCH = 'elasticsearch',\n MYSQL = 'mysql',\n}\n\nexport enum PanelStatus {\n LOADING = 'Loading',\n DATASOURCE_ERROR = 'Datasource Error',\n PERMISSION_ERROR = 'Permission Error',\n OK = 'Ok',\n}\n\nexport enum ExportStatus {\n EXPORTING = 'exporting',\n FINISHED = 'finished',\n ERROR = 'error',\n}\n\nexport type ExportProgress = {\n time: number;\n exportedRowsCount: number;\n progress: number;\n status: ExportStatus;\n errorMessage?: string;\n};\n\nexport type ExportTask = {\n dashboardUid: string;\n username: string;\n queries: DashboardQuery[];\n timeRange: {\n from: number;\n to: number;\n };\n progress?: ExportProgress;\n id?: string;\n};\n\nexport type DashboardQuery = {\n selected: boolean;\n target: DataQuery;\n panel: PanelModel;\n datasource: DataSourceSettings;\n};\n\nexport interface Dashboard {\n /**\n * TODO docs\n */\n annotations?: {\n list: any[];\n };\n /**\n * Description of dashboard.\n */\n description?: string;\n /**\n * Whether a dashboard is editable or not.\n */\n editable: boolean;\n /**\n * TODO docs\n */\n fiscalYearStartMonth?: number;\n gnetId?: string;\n graphTooltip: any;\n /**\n * Unique numeric identifier for the dashboard.\n * TODO must isolate or remove identifiers local to a Grafana instance...?\n */\n id?: number;\n /**\n * TODO docs\n */\n links?: any[];\n /**\n * TODO docs\n */\n liveNow?: boolean;\n panels?: PanelModel[];\n /**\n * TODO docs\n */\n refresh?: string | false;\n /**\n * Version of the JSON schema, incremented each time a Grafana update brings\n * changes to said schema.\n * TODO this is the existing schema numbering system. It will be replaced by Thema's themaVersion\n */\n schemaVersion: number;\n /**\n * Theme of dashboard.\n */\n style: 'light' | 'dark';\n /**\n * Tags associated with dashboard.\n */\n tags?: string[];\n /**\n * TODO docs\n */\n templating?: {\n list: any[];\n };\n /**\n * Time range for dashboard, e.g. last 6 hours, last 7 days, etc\n */\n time?: {\n from: string;\n to: string;\n };\n /**\n * TODO docs\n * TODO this appears to be spread all over in the frontend. Concepts will likely need tidying in tandem with schema changes\n */\n timepicker?: {\n /**\n * Whether timepicker is collapsed or not.\n */\n collapse: boolean;\n /**\n * Whether timepicker is enabled or not.\n */\n enable: boolean;\n /**\n * Whether timepicker is visible or not.\n */\n hidden: boolean;\n /**\n * Selectable intervals for auto-refresh.\n */\n refresh_intervals: string[];\n /**\n * TODO docs\n */\n time_options: string[];\n };\n /**\n * Timezone of dashboard,\n */\n timezone?: 'browser' | 'utc' | string;\n /**\n * Title of dashboard.\n */\n title?: string;\n /**\n * Unique dashboard identifier that can be generated by anyone. string (8-40)\n */\n uid?: string;\n /**\n * Version of the dashboard, incremented each time the dashboard is updated.\n */\n version?: number;\n /**\n * TODO docs\n */\n weekStart?: string;\n}\n","import { AppEvents, TimeZone } from '@grafana/data';\n// @ts-ignore\nimport appEvents from 'grafana/app/core/app_events';\n\nexport function openNotification(message: React.ReactNode) {\n appEvents.emit(AppEvents.alertSuccess, [message]);\n}\n\nexport function getCurrentDashboardUid(): string {\n const url = window.location.toString();\n\n const matches = new URL(url).pathname.match(/\\/d\\/([^/]+)/);\n if (!matches) {\n throw new Error(`Can't get current dashboard uid. If it's a new dashboard, please save it first.`);\n } else {\n return matches[1];\n }\n}\n\nexport function convertTimestampToDate(timestamp?: number): string {\n const options: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n };\n return timestamp ? new Date(timestamp).toLocaleString('en-GB', options) : '-';\n}\n\nexport function convertTimeZoneTypeToName(timeZone: TimeZone): string {\n switch (timeZone) {\n case 'utc':\n return 'Etc/UTC';\n case 'browser':\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n default:\n return timeZone;\n }\n}\n","export const CLOSE_ICON_BASE_64 =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACJSURBVHgB7ZPRCcAgDESv0lWc0zhC53OIjmAVUpCSamL76YEoyfFIiAGWfldK6SwnKHyhep9xJ3iPcqgH5RyxV1VlBWYJypXVHMEiCaqBbRhAy3W3B76j954wq6ZSVZsOY+WXt6i9l2ymGTlUq0VpOcIqaQC96Zth01DN1zBBefVI4SNp9Za+6wLcH6DKFrfpxgAAAABJRU5ErkJggg==';\nexport const OPTIONS_ICON_BASE_64 =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwklEQVR4nO2Syw3CMBBEc+AIlRAK4NMGn05QoAgIZwoiog2UEmBnN9KixY5wTLjk7JFWsnbsJ43GWZaUNExAsyOSKxEfVHXS9TADpHSDPPTsLhEf7S3QbD9LgwCi7RBJpaqjFkbEr69nZwe1O0Ry777lIgO4Dpc2zLxwQLnEHiBn85h59etx/Q8498CyB3jywGUP8GGRiyjyLYicR5GfAKZB5CqKvG9L2fhSClUdR6XkFtONgwWljK0DX8p64J9ISnoD5XdaQ/60uKsAAAAASUVORK5CYII=';\nexport const UNSELECT_ICON_BASE_64 =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgcng9IjEuNSIgZmlsbD0iIzExMTIxNiIgc3Ryb2tlPSIjMkQyRTM0Ii8+Cjwvc3ZnPgo=';\nexport const SELECT_ICON_BASE_64 =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiByeD0iMiIgZmlsbD0iIzRBNzFEMiIvPgo8cGF0aCBkPSJNNS45ODI2NCAxMi41MjE3QzUuNzczOTUgMTIuNTIxNyA1LjU4MjY0IDEyLjQ1MjIgNS40MjYxMiAxMi4yOTU2TDEuOTY1MjUgOC44MzQ3NkMxLjY1MjIxIDguNTIxNzIgMS42NTIyMSA4LjAzNDc2IDEuOTY1MjUgNy43MjE3MkMyLjI3ODI5IDcuNDA4NjcgMi43NjUyNSA3LjQwODY3IDMuMDc4MjkgNy43MjE3Mkw2LjAwMDAzIDEwLjYyNjFMMTIuOTM5MiAzLjcwNDMzQzEzLjI1MjIgMy4zOTEyOCAxMy43MzkyIDMuMzkxMjggMTQuMDUyMiAzLjcwNDMzQzE0LjM2NTMgNC4wMTczNyAxNC4zNjUzIDQuNTA0MzMgMTQuMDUyMiA0LjgxNzM3TDYuNTU2NTYgMTIuMjk1NkM2LjM4MjY0IDEyLjQ1MjIgNi4xOTEzNCAxMi41MjE3IDUuOTgyNjQgMTIuNTIxN1YxMi41MjE3WiIgZmlsbD0iI0ZFRkZGRiIvPgo8L3N2Zz4K';\nexport const DOWNLOADING_ICON_BASE_64 =\n 'data:image/gif;base64,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';\n","'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 const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\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 = typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self;\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<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[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<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[_-\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = 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 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\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 toJSONObject\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","import FormData from 'form-data';\nexport default FormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport envFormData from '../env/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * 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 isSpecCompliant(thing) {\n return thing && utils.isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator];\n}\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (envFormData || 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 && isSpecCompliant(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<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n (utils.isFileList(value) || utils.endsWith(key, '[]') && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n 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","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default FormData;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\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 isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\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 */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n 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\nconst DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\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 if (!hasJSONContentType) {\n return data;\n }\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 }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nexport default defaults;\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// 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\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\n\nfunction matchHeaderValue(context, value, header, filter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, 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 && (!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() {\n return Object.keys(this).forEach(this.delete.bind(this));\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']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\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 utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'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\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n 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 it's 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\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 const responseType = config.responseType;\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 if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\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.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\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\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 for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\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 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(config1).concat(Object.keys(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.2.1\";","'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 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 !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && 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\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\";\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.default = axios;\n\n// this module should only have a default export\nexport default axios\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","import { ExportTask } from '../panels/corpglory-dataexporter-panel/types';\n\nimport axios from 'axios';\nimport * as _ from 'lodash';\n\nexport const API_HOST = `${window.location.protocol}//${window.location.host}/`;\nexport const API_PROXY_PREFIX = 'api/plugin-proxy/corpglory-dataexporter-app';\nexport const API_PATH_PREFIX = '/api';\n\nconst instance = axios.create();\n\ninstance.interceptors.request.use(function (config) {\n config.validateStatus = (status) => {\n return status >= 200 && status < 300; // default\n };\n\n return {\n ...config,\n };\n});\n\ninterface RequestConfig {\n method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'OPTIONS';\n params?: any;\n data?: any;\n withCredentials?: boolean;\n validateStatus?: (status: number) => boolean;\n}\n\nexport const queryApi = async <RT = any>(path: string, config: RequestConfig) => {\n const { method = 'GET', params, data, validateStatus } = config;\n\n const url = `${API_PROXY_PREFIX}${API_PATH_PREFIX}${path}`;\n\n const response = await instance({\n method,\n url,\n params,\n data,\n validateStatus,\n });\n\n return response.data as RT;\n};\n\nexport async function getTasks(dashboardUid: string): Promise<ExportTask[]> {\n return queryApi<ExportTask[]>('/task', { params: { dashboardUid } });\n}\n\nexport async function deleteTask(taskId?: string): Promise<void> {\n if (_.isEmpty(taskId)) {\n console.warn(`can't delete task without taskId`);\n return;\n }\n await queryApi<ExportTask[]>('/task', { method: 'DELETE', data: { taskId } });\n}\n\nexport async function getStaticFile(taskId?: string): Promise<void> {\n if (_.isEmpty(taskId)) {\n console.warn(`can't download file without taskId`);\n return;\n }\n const respData = await queryApi(`/static/${taskId}.csv`, {});\n // TODO: check if resp exists\n // create file link in browser's memory\n const href = URL.createObjectURL(new Blob([respData], { type: 'text/csv' }));\n\n // create \"a\" HTML element with href to file & click\n const link = document.createElement('a');\n link.href = href;\n link.setAttribute('download', `${taskId}.csv`);\n document.body.appendChild(link);\n link.click();\n\n // clean up \"a\" element & remove ObjectURL\n document.body.removeChild(link);\n URL.revokeObjectURL(href);\n}\n","import { getBackendSrv } from '@grafana/runtime';\n\nexport async function getDatasources() {\n const backendSrv = getBackendSrv();\n return backendSrv.get(`/api/datasources`);\n}\n\nexport async function getDashboardByUid(uid: string) {\n const backendSrv = getBackendSrv();\n return backendSrv.get(`/api/dashboards/uid/${uid}`);\n}\n","import {\n PanelOptions,\n ExportTask,\n DashboardQuery,\n DatasourceType,\n ExportStatus,\n PanelStatus,\n Dashboard,\n} from '../types';\n\nimport { convertTimestampToDate, convertTimeZoneTypeToName, getCurrentDashboardUid } from '../../../utils';\nimport {\n CLOSE_ICON_BASE_64,\n DOWNLOADING_ICON_BASE_64,\n OPTIONS_ICON_BASE_64,\n SELECT_ICON_BASE_64,\n UNSELECT_ICON_BASE_64,\n} from '../../../icons';\n\nimport { deleteTask, getStaticFile, getTasks, queryApi } from '../../../services/api_service';\nimport { getDashboardByUid, getDatasources } from '../../../services/grafana_backend_service';\n\nimport { contextSrv } from 'grafana/app/core/core';\nimport { css } from '@emotion/css';\n\nimport {\n Table,\n Button,\n HorizontalGroup,\n VerticalGroup,\n Modal,\n LoadingPlaceholder,\n TimeRangeInput,\n useStyles2,\n} from '@grafana/ui';\nimport {\n PanelProps,\n toDataFrame,\n FieldType,\n applyFieldOverrides,\n createTheme,\n DataFrame,\n DataLinkClickEvent,\n PanelModel,\n DataQuery,\n DataSourceSettings,\n TimeRange,\n OrgRole,\n} from '@grafana/data';\nimport { RefreshEvent } from '@grafana/runtime';\n\nimport React, { useState, useEffect } from 'react';\nimport * as _ from 'lodash';\n\nconst PANEL_ID = 'corpglory-dataexporter-panel';\nconst APP_ID = 'corpglory-dataexporter-app';\n\ninterface Props extends PanelProps<PanelOptions> {}\n\nexport function Panel({ width, height, timeRange, eventBus, timeZone }: Props) {\n const [dashboard, setDashboard] = useState<Dashboard | null>(null);\n const [datasources, setDatasources] = useState<DataSourceSettings[] | null>(null);\n\n const [tasks, setTasks] = useState<ExportTask[] | null>(null);\n const [queries, setQueries] = useState<DashboardQuery[] | null>(null);\n const [taskIdBeingDownloaded, setTaskIdBeingDownloaded] = useState<string | null>(null);\n\n const [tasksDataFrame, setTasksDataFrame] = useState<DataFrame | null>(null);\n const [queriesDataFrame, setQueriesDataFrame] = useState<DataFrame | null>(null);\n\n const [isModalOpen, setModalVisibility] = useState<boolean>(false);\n\n const [selectedTimeRange, setTimeRange] = useState<TimeRange>(timeRange);\n\n const [panelStatus, setPanelStatus] = useState<PanelStatus>(PanelStatus.LOADING);\n function setPanelStatusWithValidate(status: PanelStatus): void {\n if (panelStatus === PanelStatus.PERMISSION_ERROR) {\n return;\n }\n return setPanelStatus(status);\n }\n\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n const timeZoneName = convertTimeZoneTypeToName(timeZone);\n\n if (contextSrv.user.orgRole !== OrgRole.Admin) {\n setPanelStatusWithValidate(PanelStatus.PERMISSION_ERROR);\n }\n\n useEffect(() => {\n async function getCurrentDashboard(): Promise<any> {\n const currentDashboardUid = getCurrentDashboardUid();\n\n return getDashboardByUid(currentDashboardUid);\n }\n\n getCurrentDashboard()\n .then((dash) => setDashboard(dash.dashboard))\n .catch((err) => console.error(err));\n }, []);\n\n useEffect(() => {\n getDatasources()\n .then((datasources) => setDatasources(datasources))\n .catch((err) => console.error(err));\n }, []);\n\n useEffect(() => {\n if (tasks === null) {\n return;\n }\n const dataFrame = getDataFrameForTaskTable(tasks);\n setTasksDataFrame(dataFrame);\n }, [tasks, taskIdBeingDownloaded]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(fetchTasks, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n if (queries === null) {\n return;\n }\n setQueriesDataFrame(getDataFrameForQueriesTable(queries));\n }, [queries]); // eslint-disable-line react-hooks/exhaustive-deps\n\n async function updateQueries(): Promise<void> {\n if (!dashboard || !datasources) {\n console.warn(`Can't update queries if there is no dashboard or datasources`);\n return;\n }\n\n const queries: DashboardQuery[] = [];\n dashboard.panels?.forEach((panel: PanelModel) => {\n // @ts-ignore\n if (panel.type === PANEL_ID) {\n return;\n }\n\n if (!_.includes(_.values(DatasourceType), panel.datasource?.type)) {\n return;\n }\n\n panel.targets?.forEach((target: DataQuery) => {\n const datasource = getDatasourceByUid(target.datasource?.uid);\n if (!datasource) {\n return;\n }\n queries.push({ selected: false, target, panel, datasource });\n });\n });\n setQueries(queries);\n }\n\n function fetchTasks(): void {\n const dashboardUid = getCurrentDashboardUid();\n\n getTasks(dashboardUid)\n .then((tasks) => {\n setTasks(tasks);\n setPanelStatusWithValidate(PanelStatus.OK);\n for (let task of tasks) {\n if (task.progress?.status === ExportStatus.EXPORTING) {\n setTimeout(fetchTasks, 1000);\n return;\n }\n }\n })\n .catch((err) => {\n setPanelStatusWithValidate(PanelStatus.DATASOURCE_ERROR);\n console.error('some error', err);\n setErrorMessage(`${err.name}: ${err.message}`);\n });\n }\n\n eventBus.subscribe(RefreshEvent, fetchTasks);\n\n function getDatasourceByUid(uid?: string): DataSourceSettings | undefined {\n if (_.isNil(uid)) {\n console.warn(`uid is required to get datasource`);\n return undefined;\n }\n if (datasources === null) {\n console.warn(`there is no datasources yet`);\n return undefined;\n }\n const datasource = _.find(datasources, (datasource: DataSourceSettings) => datasource.uid === uid);\n\n if (!datasource) {\n console.warn(`can't find datasource \"${uid}\"`);\n }\n\n return datasource;\n }\n\n async function onAddTaskClick(timeZoneName: string): Promise<void> {\n const selectedQueries = _.filter(queries, (query: DashboardQuery) => query.selected);\n const timerange: [number, number] = [selectedTimeRange.from.unix(), selectedTimeRange.to.unix()];\n\n const dashboardUid = getCurrentDashboardUid();\n\n const task: ExportTask = {\n dashboardUid,\n // @ts-ignore\n username: contextSrv.user.name,\n timeRange: {\n from: timerange[0] * 1000,\n to: timerange[1] * 1000,\n },\n queries: selectedQueries,\n };\n // TODO: move this function to API Service\n await queryApi('/task', {\n method: 'POST',\n data: {\n task,\n url: window.location.toString(),\n timeZoneName,\n },\n });\n\n fetchTasks();\n\n onCloseModal();\n unselectAllQueries();\n }\n\n function unselectAllQueries(): void {\n if (queries === null) {\n return;\n }\n setQueries(queries.map((query: DashboardQuery) => ({ ...query, selected: false })));\n }\n\n function openDatasourceModal(): void {\n updateQueries();\n setTimeRange(timeRange);\n setModalVisibility(true);\n }\n\n function onCloseModal(): void {\n setModalVisibility(false);\n unselectAllQueries();\n }\n\n function getDataFrameForQueriesTable(queries: DashboardQuery[]): DataFrame {\n const dataFrame = toDataFrame({\n name: 'A',\n fields: [\n {\n name: 'Select',\n type: FieldType.string,\n values: _.map(queries, (query) => (query.selected ? SELECT_ICON_BASE_64 : UNSELECT_ICON_BASE_64)),\n config: {\n custom: {\n filterable: false,\n displayMode: 'image',\n },\n links: [\n {\n targetBlank: false,\n title: 'Select',\n url: '#',\n onClick: (event: DataLinkClickEvent) => onDatasourceSelectClick(event),\n },\n ],\n },\n },\n {\n name: 'Panel',\n type: FieldType.string,\n values: _.map(queries, (query) => query.panel.title),\n },\n {\n name: 'RefId',\n type: FieldType.string,\n values: _.map(queries, (query) => query.target.refId),\n },\n {\n name: 'Datasource',\n type: FieldType.string,\n values: _.map(queries, (query) => query.datasource.name),\n },\n ],\n });\n\n const dataFrames = applyFieldOverrides({\n data: [dataFrame],\n fieldConfig: {\n overrides: [],\n defaults: {},\n },\n theme: createTheme(),\n replaceVariables: (value: string) => value,\n });\n return dataFrames[0];\n }\n\n function getDataFrameForTaskTable(tasks: ExportTask[]): DataFrame {\n const sortedTasks = _.orderBy(tasks, (task) => task.progress?.time, 'desc');\n const dataFrame = toDataFrame({\n name: 'A',\n fields: [\n {\n name: 'Status Updated At',\n type: FieldType.number,\n values: _.map(sortedTasks, (task) => convertTimestampToDate(task.progress?.time)),\n },\n {\n name: 'From',\n type: FieldType.number,\n values: _.map(sortedTasks, (task) => convertTimestampToDate(task.timeRange.from)),\n },\n {\n name: 'To',\n type: FieldType.number,\n values: _.map(sortedTasks, (task) => convertTimestampToDate(task.timeRange.to)),\n },\n {\n name: 'User',\n type: FieldType.string,\n values: _.map(sortedTasks, (task) => task.username),\n },\n {\n name: 'Datasource',\n type: FieldType.string,\n values: _.map(sortedTasks, (task) => task.queries.map((query) => query.datasource?.name).join(',')),\n },\n {\n name: 'Exported Rows',\n type: FieldType.number,\n values: _.map(sortedTasks, (task) => task.progress?.exportedRowsCount),\n },\n {\n name: 'Progress',\n type: FieldType.string,\n values: _.map(sortedTasks, (task) => `${((task.progress?.progress || 0) * 100).toFixed(0)}%`),\n },\n {\n name: 'Status',\n type: FieldType.string,\n values: _.map(sortedTasks, (task) => task.progress?.status),\n },\n {\n name: 'Error',\n type: FieldType.string,\n values: _.map(sortedTasks, (task) => task.progress?.errorMessage || '-'),\n },\n {\n name: 'Actions',\n type: FieldType.string,\n values: _.map(sortedTasks, (task) => {\n switch (task.progress?.status) {\n case ExportStatus.FINISHED:\n if (task.id === taskIdBeingDownloaded) {\n return DOWNLOADING_ICON_BASE_64;\n } else {\n return OPTIONS_ICON_BASE_64;\n }\n case ExportStatus.ERROR:\n return CLOSE_ICON_BASE_64;\n case ExportStatus.EXPORTING:\n return '';\n default:\n throw new Error(`Unknown exporting status: ${task.progress?.status}`);\n }\n }),\n config: {\n custom: {\n filterable: false,\n displayMode: 'image',\n },\n },\n },\n ],\n });\n\n const dataFrames = applyFieldOverrides({\n data: [dataFrame],\n fieldConfig: {\n overrides: [],\n defaults: {},\n },\n theme: createTheme(),\n replaceVariables: (value: string) => value,\n });\n\n // @ts-expect-error\n dataFrames[0].fields[9].getLinks = (cell: { valueRowIndex: number }) => {\n const rowIndex = cell.valueRowIndex;\n const task = _.find(sortedTasks, (task, idx) => idx === rowIndex);\n if (!task) {\n return;\n }\n switch (task.progress?.status) {\n case ExportStatus.FINISHED:\n return [\n {\n targetBlank: false,\n title: 'Download',\n url: '#',\n onClick: () => onDownloadClick(task),\n },\n {\n targetBlank: false,\n title: 'Delete',\n url: '#',\n onClick: () => onDeleteClick(task),\n },\n ];\n case ExportStatus.ERROR:\n return [\n {\n targetBlank: false,\n title: 'Delete',\n url: '#',\n onClick: () => onDeleteClick(task),\n },\n ];\n case ExportStatus.EXPORTING:\n return [];\n default:\n throw new Error(`Unknown exporting status: ${task.progress?.status}`);\n }\n };\n return dataFrames[0];\n }\n\n async function onDeleteClick(taskToDelete: ExportTask): Promise<void> {\n await deleteTask(taskToDelete?.id);\n\n const filteredTasks = _.filter(tasks, (task) => task.id !== taskToDelete.id);\n setTasks(filteredTasks);\n }\n\n async function onDownloadClick(task: ExportTask): Promise<void> {\n setTaskIdBeingDownloaded(task.id as string);\n await getStaticFile(task?.id);\n setTaskIdBeingDownloaded(null);\n }\n\n function onDatasourceSelectClick(e: DataLinkClickEvent): void {\n if (queries === null) {\n return;\n }\n const rowIndex = e.origin.rowIndex;\n const updatedQueries = _.clone(queries);\n updatedQueries[rowIndex].selected = !updatedQueries[rowIndex].selected;\n setQueries(updatedQueries);\n }\n\n const styles = useStyles2(getStyles);\n\n const loadingDiv = <LoadingPlaceholder text=\"Loading...\"></LoadingPlaceholder>;\n // TODO: add styles\n const datasourceErrorDiv = (\n <div>\n <p>Datasource is unavailable.</p>\n <div>\n If you have not setup the plugin click\n <a className={styles.customLink} href={`/plugins/${APP_ID}`}>\n here\n </a>\n to configure DataExporter.\n </div>\n <p style={{ marginTop: '16px' }}>{errorMessage}</p>\n </div>\n );\n const permissionErrorDiv = (\n <div>\n <p> Permission Error. </p>\n <div> DataExporter panel available only for Admins. </div>\n </div>\n );\n const mainDiv = (\n <div>\n <Table width={width} height={height - 40} data={tasksDataFrame as DataFrame} />\n <HorizontalGroup justify=\"flex-end\">\n <Button variant=\"primary\" icon=\"plus\" style={{ marginTop: '8px' }} onClick={openDatasourceModal}>\n Add Task\n </Button>\n <Modal title=\"Select Queries\" isOpen={isModalOpen} onDismiss={onCloseModal} className={styles.calendarModal}>\n {queriesDataFrame === null ? (\n <div>\n <p>There are no queries to export.</p>\n </div>\n ) : (\n <div>\n <VerticalGroup spacing=\"xs\">\n <HorizontalGroup justify=\"flex-start\" spacing=\"md\">\n <TimeRangeInput\n value={selectedTimeRange}\n onChange={(newTimeRange) => {\n setTimeRange(newTimeRange);\n }}\n />\n </HorizontalGroup>\n <Table width={width / 2 - 20} height={height - 40} data={queriesDataFrame} />\n <HorizontalGroup justify=\"flex-end\" spacing=\"md\">\n <Button\n variant=\"primary\"\n aria-label=\"Add task button\"\n onClick={() => onAddTaskClick(timeZoneName)}\n // TODO: move to function\n disabled={!queries?.filter((query: DashboardQuery) => query.selected)?.length}\n >\n Add Task\n </Button>\n </HorizontalGroup>\n </VerticalGroup>\n </div>\n )}\n </Modal>\n </HorizontalGroup>\n </div>\n );\n\n function renderSwitch(panelStatus: PanelStatus): JSX.Element {\n switch (panelStatus) {\n case PanelStatus.LOADING:\n return loadingDiv;\n case PanelStatus.DATASOURCE_ERROR:\n return datasourceErrorDiv;\n case PanelStatus.PERMISSION_ERROR:\n return permissionErrorDiv;\n case PanelStatus.OK:\n return mainDiv;\n default:\n return datasourceErrorDiv;\n }\n }\n return <div>{renderSwitch(panelStatus)}</div>;\n}\n\nconst getStyles = () => ({\n calendarModal: css`\n section {\n position: fixed;\n top: 20%;\n z-index: 1061;\n }\n `,\n customLink: css`\n color: #6e9fff;\n margin: 0 4px;\n &:hover {\n text-decoration: underline;\n }\n `,\n});\n","import { PanelOptions } from './types';\n\nimport { Panel } from './components/Panel';\n\nimport { PanelPlugin } from '@grafana/data';\n\nexport const plugin = new PanelPlugin<PanelOptions>(Panel);\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__1__","__WEBPACK_EXTERNAL_MODULE__10__","self","FormData","window","__WEBPACK_EXTERNAL_MODULE__13__","__WEBPACK_EXTERNAL_MODULE__14__","__WEBPACK_EXTERNAL_MODULE__15__","__WEBPACK_EXTERNAL_MODULE__28__","__WEBPACK_EXTERNAL_MODULE__29__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","DatasourceType","PanelStatus","ExportStatus","getCurrentDashboardUid","url","location","toString","matches","URL","pathname","match","Error","convertTimestampToDate","timestamp","Date","toLocaleString","year","month","day","hour","minute","second","CLOSE_ICON_BASE_64","OPTIONS_ICON_BASE_64","UNSELECT_ICON_BASE_64","SELECT_ICON_BASE_64","DOWNLOADING_ICON_BASE_64","bind","fn","thisArg","apply","arguments","getPrototypeOf","kindOf","cache","create","thing","str","slice","toLowerCase","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","forEach","allOwnKeys","i","l","length","keys","getOwnPropertyNames","len","findKey","_key","_global","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","defineProperties","isBuffer","constructor","isFormData","pattern","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","this","assignValue","targetKey","extend","b","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","exec","push","hasOwnProp","freezeMethods","writable","set","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","toUpperCase","noop","toFiniteNumber","defaultValue","Number","isFinite","toJSONObject","stack","visit","source","target","reducedValue","AxiosError","message","code","config","request","response","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","map","token","join","predicates","test","formData","options","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","append","convertValue","toISOString","Buffer","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","isStandardBrowserEnv","product","navigator","document","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","isBrowser","classes","protocols","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","DEFAULT_CONTENT_TYPE","defaults","transitional","adapter","transformRequest","data","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","e","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","tokens","tokensRE","parseTokens","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","targets","asStrings","static","first","computed","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","configurable","buildAccessors","accessor","transformData","fns","isCancel","__CANCEL__","CanceledError","write","expires","domain","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","remove","now","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","charAt","requestURL","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","Math","round","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","knownAdapters","http","xhr","XMLHttpRequest","Promise","resolve","reject","requestData","requestHeaders","onCanceled","cancelToken","unsubscribe","signal","removeEventListener","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","floor","settle","err","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","isURLSameOrigin","cookies","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","parseProtocol","send","adapters","nameOrAdapter","throwIfCancellationRequested","throwIfRequested","dispatchRequest","then","reason","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","VERSION","validators","deprecatedWarnings","validator","version","opt","opts","desc","formatMessage","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","contextHeaders","boolean","function","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","c","axios","createInstance","defaultConfig","instance","toFormData","Cancel","all","promises","spread","callback","isAxiosError","payload","formToJSON","default","queryApi","dashboardUid","deleteTask","taskId","_","getStaticFile","respData","createObjectURL","link","body","appendChild","click","removeChild","revokeObjectURL","backendSrv","getBackendSrv","getDashboardByUid","uid","PANEL_ID","getStyles","calendarModal","css","customLink","plugin","PanelPlugin","width","height","timeRange","eventBus","timeZone","useState","dashboard","setDashboard","datasources","setDatasources","tasks","setTasks","queries","setQueries","taskIdBeingDownloaded","setTaskIdBeingDownloaded","tasksDataFrame","setTasksDataFrame","queriesDataFrame","setQueriesDataFrame","isModalOpen","setModalVisibility","selectedTimeRange","setTimeRange","LOADING","panelStatus","setPanelStatus","setPanelStatusWithValidate","PERMISSION_ERROR","errorMessage","setErrorMessage","timeZoneName","Intl","DateTimeFormat","resolvedOptions","convertTimeZoneTypeToName","panels","panel","datasource","getDatasourceByUid","selected","fetchTasks","getTasks","OK","EXPORTING","DATASOURCE_ERROR","selectedQueries","query","timerange","unix","to","task","contextSrv","onCloseModal","unselectAllQueries","onDeleteClick","taskToDelete","filteredTasks","onDatasourceSelectClick","rowIndex","origin","updatedQueries","OrgRole","useEffect","currentDashboardUid","getCurrentDashboard","dash","getDatasources","dataFrame","sortedTasks","time","toDataFrame","fields","FieldType","values","exportedRowsCount","toFixed","FINISHED","ERROR","custom","filterable","displayMode","dataFrames","applyFieldOverrides","fieldConfig","overrides","theme","createTheme","replaceVariables","getLinks","cell","valueRowIndex","idx","targetBlank","title","onClick","onDownloadClick","getDataFrameForTaskTable","links","refId","getDataFrameForQueriesTable","RefreshEvent","styles","useStyles2","loadingDiv","LoadingPlaceholder","text","datasourceErrorDiv","className","style","marginTop","permissionErrorDiv","mainDiv","Table","HorizontalGroup","justify","Button","variant","icon","updateQueries","Modal","isOpen","onDismiss","VerticalGroup","spacing","TimeRangeInput","onChange","newTimeRange","onAddTaskClick","disabled","renderSwitch"],"sourceRoot":""}