cosmosc2-tool-base 5.0.4 → 5.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"cosmosc2-tool-base.js","mappings":"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","sources":["webpack://tool-base/webpack/runtime/load script","webpack://tool-base/./node_modules/axios/index.js","webpack://tool-base/./node_modules/axios/lib/adapters/xhr.js","webpack://tool-base/./node_modules/axios/lib/axios.js","webpack://tool-base/./node_modules/axios/lib/cancel/Cancel.js","webpack://tool-base/./node_modules/axios/lib/cancel/CancelToken.js","webpack://tool-base/./node_modules/axios/lib/cancel/isCancel.js","webpack://tool-base/./node_modules/axios/lib/core/Axios.js","webpack://tool-base/./node_modules/axios/lib/core/InterceptorManager.js","webpack://tool-base/./node_modules/axios/lib/core/buildFullPath.js","webpack://tool-base/./node_modules/axios/lib/core/createError.js","webpack://tool-base/./node_modules/axios/lib/core/dispatchRequest.js","webpack://tool-base/./node_modules/axios/lib/core/enhanceError.js","webpack://tool-base/./node_modules/axios/lib/core/mergeConfig.js","webpack://tool-base/./node_modules/axios/lib/core/settle.js","webpack://tool-base/./node_modules/axios/lib/core/transformData.js","webpack://tool-base/./node_modules/axios/lib/defaults.js","webpack://tool-base/./node_modules/axios/lib/env/data.js","webpack://tool-base/./node_modules/axios/lib/helpers/bind.js","webpack://tool-base/./node_modules/axios/lib/helpers/buildURL.js","webpack://tool-base/./node_modules/axios/lib/helpers/combineURLs.js","webpack://tool-base/./node_modules/axios/lib/helpers/cookies.js","webpack://tool-base/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://tool-base/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://tool-base/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://tool-base/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://tool-base/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://tool-base/./node_modules/axios/lib/helpers/spread.js","webpack://tool-base/./node_modules/axios/lib/helpers/validator.js","webpack://tool-base/./node_modules/axios/lib/utils.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/services/api.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/services/axios.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/layout.scss","webpack://tool-base/./src/AppFooter.vue?0a97","webpack://tool-base/./src/AppNav.vue?238e","webpack://tool-base/./src/components/AlertHistory.vue?c002","webpack://tool-base/./src/components/ClassificationBanners.vue?1865","webpack://tool-base/./src/components/Notifications.vue?0177","webpack://tool-base/./src/components/UserMenu.vue?0662","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue?9ba3","webpack://tool-base/./node_modules/css-loader/dist/runtime/api.js","webpack://tool-base/./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://tool-base/./node_modules/systemjs-webpack-interop/auto-public-path/auto-public-path.js","webpack://tool-base/./node_modules/systemjs-webpack-interop/public-path.js","webpack://tool-base/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/layout.scss?7c42","webpack://tool-base/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://tool-base/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://tool-base/../node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","webpack://tool-base/../node_modules/axios/index.js","webpack://tool-base/../node_modules/axios/lib/adapters/xhr.js","webpack://tool-base/../node_modules/axios/lib/axios.js","webpack://tool-base/../node_modules/axios/lib/cancel/Cancel.js","webpack://tool-base/../node_modules/axios/lib/cancel/CancelToken.js","webpack://tool-base/../node_modules/axios/lib/cancel/isCancel.js","webpack://tool-base/../node_modules/axios/lib/core/Axios.js","webpack://tool-base/../node_modules/axios/lib/core/InterceptorManager.js","webpack://tool-base/../node_modules/axios/lib/core/buildFullPath.js","webpack://tool-base/../node_modules/axios/lib/core/createError.js","webpack://tool-base/../node_modules/axios/lib/core/dispatchRequest.js","webpack://tool-base/../node_modules/axios/lib/core/enhanceError.js","webpack://tool-base/../node_modules/axios/lib/core/mergeConfig.js","webpack://tool-base/../node_modules/axios/lib/core/settle.js","webpack://tool-base/../node_modules/axios/lib/core/transformData.js","webpack://tool-base/../node_modules/axios/lib/defaults.js","webpack://tool-base/../node_modules/axios/lib/env/data.js","webpack://tool-base/../node_modules/axios/lib/helpers/bind.js","webpack://tool-base/../node_modules/axios/lib/helpers/buildURL.js","webpack://tool-base/../node_modules/axios/lib/helpers/combineURLs.js","webpack://tool-base/../node_modules/axios/lib/helpers/cookies.js","webpack://tool-base/../node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://tool-base/../node_modules/axios/lib/helpers/isAxiosError.js","webpack://tool-base/../node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://tool-base/../node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://tool-base/../node_modules/axios/lib/helpers/parseHeaders.js","webpack://tool-base/../node_modules/axios/lib/helpers/spread.js","webpack://tool-base/../node_modules/axios/lib/helpers/validator.js","webpack://tool-base/../node_modules/axios/lib/utils.js","webpack://tool-base/external system \"single-spa\"","webpack://tool-base/external system \"vue\"","webpack://tool-base/external system \"vue-router\"","webpack://tool-base/external system \"vuetify\"","webpack://tool-base/external system \"vuex\"","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://tool-base/webpack/bootstrap","webpack://tool-base/webpack/runtime/__system_context__","webpack://tool-base/webpack/runtime/compat get default export","webpack://tool-base/webpack/runtime/define property getters","webpack://tool-base/webpack/runtime/ensure chunk","webpack://tool-base/webpack/runtime/get javascript chunk filename","webpack://tool-base/webpack/runtime/hasOwnProperty shorthand","webpack://tool-base/webpack/runtime/make namespace object","webpack://tool-base/webpack/runtime/publicPath","webpack://tool-base/webpack/runtime/jsonp chunk loading","webpack://tool-base/./node_modules/systemjs-webpack-interop/auto-public-path/1.js","webpack://tool-base/./src/App.vue?9dca","webpack://tool-base/./src/AppFooter.vue?5fe4","webpack://tool-base/./src/components/ClockFooter.vue?cca3","webpack://tool-base/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://tool-base/./node_modules/date-fns/esm/isDate/index.js","webpack://tool-base/./node_modules/date-fns/esm/toDate/index.js","webpack://tool-base/./node_modules/date-fns/esm/isValid/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://tool-base/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://tool-base/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://tool-base/./node_modules/date-fns/esm/format/index.js","webpack://tool-base/src/components/ClockFooter.vue","webpack://tool-base/./src/components/ClockFooter.vue?4f15","webpack://tool-base/./src/components/ClockFooter.vue","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/readOnlyError.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/services/cosmos-api.js","webpack://tool-base/src/AppFooter.vue","webpack://tool-base/./src/AppFooter.vue?f420","webpack://tool-base/./src/AppFooter.vue?24f6","webpack://tool-base/./src/AppFooter.vue","webpack://tool-base/./src/AppNav.vue?7d5a","webpack://tool-base/./src/components/ScopeSelector.vue?0819","webpack://tool-base/./src/util/scopes.js","webpack://tool-base/src/components/ScopeSelector.vue","webpack://tool-base/./src/components/ScopeSelector.vue?230d","webpack://tool-base/./src/components/ScopeSelector.vue","webpack://tool-base/./src/components/AlertHistory.vue?8fab","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue?dee3","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/RuxIcon.vue?bad2","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/RuxIcon.vue","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/RuxIcon.vue?71f8","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/RuxIcon.vue?9247","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue?7bda","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue?9839","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue?0b93","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/index.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://tool-base/./src/util/AstroStatus.js","webpack://tool-base/src/components/AlertHistory.vue","webpack://tool-base/./src/components/AlertHistory.vue?c5b1","webpack://tool-base/./src/components/AlertHistory.vue?13b2","webpack://tool-base/./src/components/AlertHistory.vue","webpack://tool-base/./src/components/Notifications.vue?e276","webpack://tool-base/./node_modules/date-fns/esm/compareAsc/index.js","webpack://tool-base/./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack://tool-base/./node_modules/date-fns/esm/endOfDay/index.js","webpack://tool-base/./node_modules/date-fns/esm/endOfMonth/index.js","webpack://tool-base/./node_modules/date-fns/esm/isLastDayOfMonth/index.js","webpack://tool-base/./node_modules/date-fns/esm/differenceInMonths/index.js","webpack://tool-base/./node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/roundingMethods/index.js","webpack://tool-base/./node_modules/date-fns/esm/differenceInSeconds/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/cloneObject/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/assign/index.js","webpack://tool-base/./node_modules/date-fns/esm/formatDistance/index.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/services/cable.js","webpack://tool-base/src/components/Notifications.vue","webpack://tool-base/./node_modules/date-fns/esm/formatDistanceToNow/index.js","webpack://tool-base/./src/components/Notifications.vue?ed9a","webpack://tool-base/./src/components/Notifications.vue?9714","webpack://tool-base/./src/components/Notifications.vue","webpack://tool-base/./src/components/UserMenu.vue?f0a2","webpack://tool-base/src/components/UserMenu.vue","webpack://tool-base/./src/components/UserMenu.vue?650e","webpack://tool-base/./src/components/UserMenu.vue?b884","webpack://tool-base/./src/components/UserMenu.vue","webpack://tool-base/src/AppNav.vue","webpack://tool-base/./src/AppNav.vue?a95a","webpack://tool-base/./src/AppNav.vue?8855","webpack://tool-base/./src/AppNav.vue","webpack://tool-base/./src/components/TimeCheck.vue?a824","webpack://tool-base/src/components/TimeCheck.vue","webpack://tool-base/./src/components/TimeCheck.vue?3fe6","webpack://tool-base/./src/components/TimeCheck.vue","webpack://tool-base/src/components/ClassificationBanners.vue","webpack://tool-base/./src/components/ClassificationBanners.vue?101f","webpack://tool-base/./src/components/ClassificationBanners.vue?ce83","webpack://tool-base/./src/components/ClassificationBanners.vue","webpack://tool-base/src/App.vue","webpack://tool-base/./src/App.vue?b39b","webpack://tool-base/./src/App.vue","webpack://tool-base/./src/router.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/plugins/store.js","webpack://tool-base/./src/plugins/vuetify.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadge.vue?b804","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator.vue?fcf9","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator.vue?80c7","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator.vue","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator.vue?2030","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadge.vue?f3c6","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadge.vue","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadge.vue?02ea","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon.vue?64b4","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon.vue","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon.vue?8341","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon.vue?5b13","webpack://tool-base/./src/cosmosc2-tool-base.js"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"tool-base:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.22.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<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 * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport axios from './axios.js'\n\nconst request = async function (\n method,\n url,\n { data, params = {}, headers, noAuth = false, noScope = false } = {}\n) {\n if (!noAuth) {\n try {\n await CosmosAuth.updateToken(CosmosAuth.defaultMinValidity)\n } catch (error) {\n CosmosAuth.login()\n }\n headers['Authorization'] = localStorage.cosmosToken\n }\n if (!noScope && !params['scope']) {\n params['scope'] = localStorage.scope\n }\n return axios({\n method,\n url,\n data,\n params,\n headers,\n })\n}\n\nconst acceptOnlyDefaultHeaders = {\n Accept: 'application/json',\n}\n\nconst fullDefaultHeaders = {\n ...acceptOnlyDefaultHeaders,\n 'Content-Type': 'application/json',\n}\n\nexport default {\n get: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('get', path, { params, headers, noScope, noAuth })\n },\n\n put: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('put', path, { data, params, headers, noScope, noAuth })\n },\n\n post: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('post', path, { data, params, headers, noScope, noAuth })\n },\n\n delete: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('delete', path, { params, headers, noScope, noAuth })\n },\n}\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport axios from 'axios'\nimport Vue from 'vue'\n\nconst vueInstance = new Vue()\n\nconst axiosInstance = axios.create({\n baseURL: location.origin,\n timeout: 10000,\n params: {},\n})\n\naxiosInstance.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response.status === 401) {\n delete localStorage.cosmosToken\n CosmosAuth.login(location.href)\n } else {\n let body = `HTTP ${error.response.status} - `\n if (error.response?.statusText) {\n body += `${error.response.statusText} `\n }\n if (error.response?.config?.data) {\n body += `${error.response.config.data} `\n }\n if (error.response?.data?.message) {\n body += `${error.response.data.message}`\n } else if (error.response?.data?.exception) {\n body += `${error.response.data.exception}`\n } else if (error.response?.data?.error?.message) {\n if (error.response.data.error.class) {\n body += `${error.response.data.error.class} `\n }\n body += `${error.response.data.error.message}`\n } else {\n body += `${error.response?.data}`\n }\n vueInstance.$notify.serious({\n title: 'Network error',\n body,\n })\n }\n throw error\n }\n)\n\nexport default axiosInstance\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".splash-screen{width:100%;height:100%;position:fixed;background:#001724;background:-moz-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 23, 36)));background:-webkit-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-o-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-ms-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:linear-gradient(to right, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=$left, endColorstr=$right,GradientType=1 )}.splash-screen .splash-container{width:40px;height:40px;margin:0px auto;position:absolute;left:50%;top:50%;margin-left:-20px;margin-top:-20px}.splash-screen .splash-double-bounce1,.splash-screen .splash-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:splash-bounce 2s infinite ease-in-out;animation:splash-bounce 2s infinite ease-in-out}.splash-screen .splash-double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes splash-bounce{0%,100%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes splash-bounce{0%,100%{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}*{box-sizing:border-box}html{height:100%}body{font-family:\\\"Open Sans\\\",\\\"Helvetica Neue\\\",sans-serif;font-size:14px;color:#333;margin:0;padding:0;min-height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none}.layout-wrapper{padding:0}.v-application--wrap{min-height:0 !important}.layout-topbar{position:fixed;height:80px;padding:.7em 1.5em 0em 1.5em;color:#fff;z-index:999;right:0;background:#001724;background:-moz-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 23, 36)));background:-webkit-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-o-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-ms-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:linear-gradient(to right, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=$left, endColorstr=$right,GradientType=1 );-moz-transition:left .2s;-o-transition:left .2s;-webkit-transition:left .2s;transition:left .2s}.layout-topbar:after{content:\\\"\\\";display:table;clear:both}.layout-topbar .layout-topbar-icons{float:right;display:block;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-duration:.5s}.layout-topbar .layout-topbar-icons button{position:relative;color:#fff;margin-left:20px;display:inline-block;text-decoration:none;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-topbar .layout-topbar-icons button:hover{color:#c3e8fb}.layout-topbar .layout-topbar-icons button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2em #8dcdff}.layout-topbar .layout-topbar-icons button span.layout-topbar-icon{font-size:2em}.layout-topbar .layout-topbar-icons button span.layout-topbar-item-text{font-size:20px;display:none}.layout-topbar .layout-topbar-icons button span.layout-topbar-badge{position:absolute;font-size:10px;right:-5px;top:-5px;width:16px;height:16px;text-align:center;line-height:16px;color:#fff;background-color:#ef6262;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.layout-topbar .layout-topbar-icons .layout-topbar-search{padding:0;position:relative;display:inline-block;top:-4px}.layout-topbar .layout-topbar-icons .layout-topbar-search input{display:inline-block;border:0 none;font-size:14px;background:rgba(0,0,0,0);border-bottom:2px solid #fff;outline:0 none;-webkit-box-shadow:none;box-shadow:none;color:#fff;width:100px;padding:1px 20px 1px 1px;margin:0px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.layout-topbar .layout-topbar-icons .layout-topbar-search input::-webkit-input-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input:-moz-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input::-moz-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input:-ms-input-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search .layout-topbar-search-icon{font-size:18px;position:absolute;top:-1px;right:0px}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input{border-bottom-color:#c3e8fb}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input::-webkit-input-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input:-moz-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input::-moz-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input:-ms-input-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover .layout-topbar-search-icon{color:#c3e8fb}.layout-topbar .layout-menu-button{cursor:pointer;display:inline-block;text-decoration:none;color:#fff;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-topbar .layout-menu-button span{font-size:2em}.layout-topbar .layout-menu-button:hover{color:#c3e8fb}.layout-topbar button{cursor:pointer}.layout-sidebar{position:fixed;width:250px;height:100%;z-index:999;overflow-y:auto;user-select:none;-moz-user-select:none;-webkit-user-select:none;-moz-transition:transform .2s;-o-transition:transform .2s;-webkit-transition:transform .2s;transition:transform .2s;-webkit-box-shadow:0 0 6px 0 rgba(0,0,0,.16);-moz-box-shadow:0 0 6px 0 rgba(0,0,0,.16);box-shadow:0 0 6px 0 rgba(0,0,0,.16)}.layout-sidebar.layout-sidebar-enter,.layout-sidebar.layout-sidebar-leave-to{transform:translateX(-100%)}.layout-sidebar .layout-logo{text-align:center;margin-top:24px}.layout-sidebar .menuitem-badge{display:inline-block;margin-left:4px;font-size:10px;width:16px;height:16px;line-height:16px;text-align:center;color:#fff;background-color:#007be5;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.layout-profile{text-align:center;padding:10px 0 10px 0}.layout-profile img{width:56px;margin:10px}.layout-profile .layout-profile-link{cursor:pointer;display:inline-block;margin-bottom:.75em;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-profile .layout-profile-link i{display:inline-block;font-size:16px;vertical-align:middle}.layout-profile ul{list-style-type:none;padding:0;margin:0}.layout-profile ul li button{width:100%;padding:1em;border:0 none;border-radius:0;cursor:pointer;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-profile ul li button:hover{color:#0388e5}.layout-profile ul li button span{margin-left:.25em;vertical-align:middle}.layout-profile ul li button i{vertical-align:middle}.layout-profile ul.layout-submenu-wrapper-enter,.layout-profile ul.layout-submenu-wrapper-leave-to{max-height:0}.layout-profile ul.layout-submenu-wrapper-enter-to,.layout-profile ul.layout-submenu-wrapper-leave{max-height:1000px}.layout-profile ul.layout-submenu-wrapper-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0, 1, 0, 1)}.layout-profile ul.layout-submenu-wrapper-enter-active{overflow:hidden;transition:max-height 1s ease-in-out}.layout-sidebar-light .layout-profile .layout-profile-link{color:#232428}.layout-sidebar-light .layout-profile .layout-profile-link:hover{color:#0388e5}.layout-sidebar-light .layout-profile ul{background-color:#fff}.layout-sidebar-light .layout-profile ul li button{color:#232428}.layout-sidebar-light .layout-profile ul li button:hover{color:#0388e5}.layout-sidebar-dark .layout-profile .layout-profile-link{color:#fff}.layout-sidebar-dark .layout-profile .layout-profile-link:hover{color:#005a8f}.layout-sidebar-dark .layout-profile ul{background-color:#002439}.layout-sidebar-dark .layout-profile ul li button{color:#fff}.layout-sidebar-dark .layout-profile ul li button:hover{color:#005a8f}.layout-menu-container{padding-bottom:120px}.layout-menu{list-style-type:none;margin:0;padding:0}.layout-menu li a{cursor:pointer;position:relative;text-decoration:none;display:block;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-menu li a i{font-size:18px;vertical-align:middle}.layout-menu li a span{margin-left:.25em;vertical-align:middle;line-height:18px;display:inline-block}.layout-menu li a .menuitem-toggle-icon{position:absolute;top:50%;right:1em;margin-top:-9px}.layout-menu li a.router-link-active{font-weight:700}.layout-menu li a:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2em #8dcdff}.layout-menu li.active-menuitem>a .menuitem-toggle-icon:before{content:\\\"\\\"}.layout-menu>li>a{padding:1em}.layout-menu>li>a span{font-size:14px}.layout-menu>li:last-child>a{border-bottom:1px solid rgba(207,211,224,.6)}.layout-menu>li ul{list-style-type:none;margin:0;padding:0;padding-left:1.5em}.layout-menu>li ul li a{cursor:pointer;padding:.75em 1em;border-top:0 none}.layout-menu>li ul li a span{font-size:13px}.layout-menu>li ul li:last-child{padding-bottom:1em}.layout-menu>li ul.layout-submenu-wrapper-enter,.layout-menu>li ul.layout-submenu-wrapper-leave-to{max-height:0}.layout-menu>li ul.layout-submenu-wrapper-enter-to,.layout-menu>li ul.layout-submenu-wrapper-leave{max-height:1000px}.layout-menu>li ul.layout-submenu-wrapper-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0, 1, 0, 1)}.layout-menu>li ul.layout-submenu-wrapper-enter-active{overflow:hidden;transition:max-height 1s ease-in-out}.layout-sidebar-light{background:#f3f4f9;background:-moz-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f3f4f9), color-stop(100%, #d7dbe8));background:-webkit-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-o-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-ms-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:linear-gradient(to bottom, #f3f4f9 0%, #d7dbe8 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"#ffffff\\\", endColorstr=\\\"#000000\\\",GradientType=0 )}.layout-sidebar-light .layout-menu>li>a{border-top:1px solid rgba(207,211,224,.6)}.layout-sidebar-light .layout-menu>li:last-child>a{border-bottom:1px solid rgba(207,211,224,.6)}.layout-sidebar-light .layout-menu>li ul{background-color:#fff}.layout-sidebar-light .layout-menu li a{color:#232428}.layout-sidebar-light .layout-menu li a.router-link-active{color:#4dacff}.layout-sidebar-light .layout-menu li a:hover{color:#0388e5}.layout-sidebar-light .layout-menu li.active-menuitem>a{background-color:#fff;color:#0388e5}.layout-sidebar-dark{background:#001724;background:-moz-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 54, 86)));background:-webkit-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-o-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-ms-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:linear-gradient(to bottom, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"#ffffff\\\", endColorstr=\\\"#000000\\\",GradientType=0 )}.layout-sidebar-dark .layout-menu>li>a{border-top:1px solid rgba(52,56,65,.6)}.layout-sidebar-dark .layout-menu>li:last-child>a{border-bottom:1px solid rgba(52,56,65,.6)}.layout-sidebar-dark .layout-menu>li ul{background-color:#002439}.layout-sidebar-dark .layout-menu li a{color:#fff}.layout-sidebar-dark .layout-menu li a.router-link-active{color:#4dacff}.layout-sidebar-dark .layout-menu li a:hover{color:#005a8f}.layout-sidebar-dark .layout-menu li.active-menuitem>a{background-color:#002439;color:#4dacff}.layout-main{-moz-transition:margin-left .2s;-o-transition:margin-left .2s;-webkit-transition:margin-left .2s;transition:margin-left .2s;padding:96px 16px 16px 16px}.layout-footer{-moz-transition:margin-left .2s;-o-transition:margin-left .2s;-webkit-transition:margin-left .2s;transition:margin-left .2s;background-color:#182635;padding:1em 2em}.layout-footer img{vertical-align:middle}.layout-footer .footer-text{vertical-align:middle}@media(min-width: 1025px){.layout-wrapper.layout-overlay .layout-topbar{left:0}.layout-wrapper.layout-overlay .layout-main,.layout-wrapper.layout-overlay .layout-footer{margin-left:0}.layout-wrapper.layout-overlay.layout-overlay-sidebar-active .layout-sidebar{left:0}.layout-wrapper.layout-overlay.layout-overlay-sidebar-active .layout-topbar{left:250px}.layout-wrapper.layout-static .layout-topbar{left:250px}.layout-wrapper.layout-static .layout-main,.layout-wrapper.layout-static .layout-footer{margin-left:250px}.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-topbar{left:0}.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-main,.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-footer{margin-left:0}}@media(max-width: 1024px){.layout-wrapper .layout-topbar{left:0}.layout-wrapper .layout-main,.layout-wrapper .layout-footer{margin-left:0}.layout-wrapper .layout-sidebar{-moz-transition:left .2s;-o-transition:left .2s;-webkit-transition:left .2s;transition:left .2s;left:-250px;margin-top:50px}.layout-wrapper .layout-mask{display:none;position:fixed;width:100%;height:100%;top:50px;left:0;z-index:998;background-color:#424242;opacity:.7;filter:alpha(opacity=70)}.layout-wrapper.layout-mobile-sidebar-active .layout-sidebar{left:0}.layout-wrapper.layout-mobile-sidebar-active .layout-mask{display:block}.body-overflow-hidden{overflow:hidden}}h1{font-weight:normal;margin:0;font-size:24px}h2{font-size:20px;font-weight:normal;margin:0}.card{background-color:#fff;padding:1em;margin-bottom:16px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.card.card-w-title{padding-bottom:2em}.card h1{margin:1em 0 .5em 0;border-bottom:1px solid #d5d5d5;padding:.1em;font-size:24px}.card h1:first-child{margin:0 0 .5em 0}.docs pre[class*=language-]{padding:0 !important;background:rgba(0,0,0,0);overflow:visible}.docs pre[class*=language-]>code{border-left:0 none;box-shadow:none;font-size:14px}.dashboard .summary{position:relative}.dashboard .summary .title{font-size:20px}.dashboard .summary .detail{color:#707070;display:block;margin-top:10px}.dashboard .summary .count{color:#fff;position:absolute;top:10px;right:10px;font-size:24px;padding:7px 14px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.dashboard .summary .count.visitors{background-color:#20d077}.dashboard .summary .count.purchases{background-color:#f9c851}.dashboard .summary .count.revenue{background-color:#007be5}.dashboard .highlight-box{height:100px}.dashboard .highlight-box:after{content:\\\"\\\";display:table;clear:both}.dashboard .highlight-box .initials{height:100%;float:left;width:50%;text-align:center;padding:1em}.dashboard .highlight-box .initials>span{font-size:48px}.dashboard .highlight-box .highlight-details{height:100%;background-color:#fff;float:left;width:50%;padding:1em}.dashboard .highlight-box .highlight-details i{font-size:24px;vertical-align:middle;margin-right:.25em}.dashboard .highlight-box .highlight-details .count{color:#707070;font-size:36px;display:block}.dashboard .task-list{list-style-type:none;margin:0;padding:0}.dashboard .task-list li{padding:.5em .25em;border-bottom:1px solid #e3e3e3}.dashboard .task-list li:after{content:\\\"\\\";display:table;clear:both}.dashboard .task-list .p-checkbox{vertical-align:middle;margin-right:.5em}.dashboard .task-list .task-name{vertical-align:middle}.dashboard .task-list i{float:right;font-size:24px;color:#707070}.dashboard .task-list .p-panel-content{min-height:256px}.dashboard .contact-form .p-panel-content{min-height:256px}.dashboard .contacts ul{list-style-type:none;padding:0;margin:0}.dashboard .contacts ul li{border-bottom:1px solid #e3e3e3}.dashboard .contacts ul li button{padding:9px;width:100%;box-sizing:border-box;text-decoration:none;position:relative;display:block;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:background-color .2s;-o-transition:background-color .2s;-webkit-transition:background-color .2s;transition:background-color .2s}.dashboard .contacts ul li button .name{position:absolute;right:10px;top:10px;font-size:18px}.dashboard .contacts ul li button .email{position:absolute;right:10px;top:30px;font-size:14px;color:#707070}.dashboard .contacts ul li button:hover{cursor:pointer;background-color:#eee}.dashboard .contacts ul li:last-child{border:0}.dashboard .contacts .p-panel-content{min-height:256px}.dashboard .activity-list{list-style-type:none;padding:0;margin:0}.dashboard .activity-list li{border-bottom:1px solid #e3e3e3;padding:16px 8px}.dashboard .activity-list li .count{font-size:24px;color:#fff;background-color:#007be5;font-weight:700;display:inline-block;padding:.25em .5em;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.dashboard .activity-list li:first-child{border-top:1px solid #e3e3e3}.dashboard .activity-list li:last-child{border:0}.dashboard .activity-list li .p-col-6:first-child{font-size:18px;padding:.5em 0 0 .5em}.dashboard .activity-list li .p-col-6:last-child{text-align:right;color:#707070}.cosmos-green{color:#009600 !important}.cosmos-yellow{color:#be8700 !important}.cosmos-red{color:red !important}.cosmos-blue{color:#0064ff !important}.cosmos-purple{color:#c800c8 !important}.cosmos-black{color:#000 !important}.cosmos-white{color:#fff !important}.theme--dark.v-system-bar{background-color:var(--v-primary-base) !important}.theme--dark.v-system-bar.active{background-color:var(--v-secondary-base) !important}body,.theme--dark.v-application,.theme--dark.v-main,.theme--dark.v-content{background-color:var(--v-tertiary-base) !important}.theme--dark.v-sheet.v-list,.theme--dark.v-list,.theme--dark.v-list-item{background-color:var(--v-primary-darken2) !important}.theme--dark.v-data-table,.theme--dark.v-item-group,.theme--dark.v-dialog,.theme--dark.v-card,.theme--dark.v-tab,.theme--dark.v-sheet,.theme--dark.v-date-picker-header,.theme--dark.v-date-picker-table,.theme--dark.v-time-picker-clock__container,.theme--dark.p-menubar{background-color:var(--v-tertiary-darken2) !important}input{color-scheme:dark}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/layout.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_splash.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/_variables.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_mixins.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_main.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_topbar.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_sidebar.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_profile.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_menu.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_content.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_footer.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_responsive.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_utils.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_dashboard.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/_overrides.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".splash-screen{width:100%;height:100%;position:fixed;background:#001724;background:-moz-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 23, 36)));background:-webkit-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-o-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-ms-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:linear-gradient(to right, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=$left, endColorstr=$right,GradientType=1 )}.splash-screen .splash-container{width:40px;height:40px;margin:0px auto;position:absolute;left:50%;top:50%;margin-left:-20px;margin-top:-20px}.splash-screen .splash-double-bounce1,.splash-screen .splash-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:splash-bounce 2s infinite ease-in-out;animation:splash-bounce 2s infinite ease-in-out}.splash-screen .splash-double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes splash-bounce{0%,100%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes splash-bounce{0%,100%{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}*{box-sizing:border-box}html{height:100%}body{font-family:\\\"Open Sans\\\",\\\"Helvetica Neue\\\",sans-serif;font-size:14px;color:#333;margin:0;padding:0;min-height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none}.layout-wrapper{padding:0}.v-application--wrap{min-height:0 !important}.layout-topbar{position:fixed;height:80px;padding:.7em 1.5em 0em 1.5em;color:#fff;z-index:999;right:0;background:#001724;background:-moz-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 23, 36)));background:-webkit-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-o-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-ms-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:linear-gradient(to right, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=$left, endColorstr=$right,GradientType=1 );-moz-transition:left .2s;-o-transition:left .2s;-webkit-transition:left .2s;transition:left .2s}.layout-topbar:after{content:\\\"\\\";display:table;clear:both}.layout-topbar .layout-topbar-icons{float:right;display:block;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-duration:.5s}.layout-topbar .layout-topbar-icons button{position:relative;color:#fff;margin-left:20px;display:inline-block;text-decoration:none;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-topbar .layout-topbar-icons button:hover{color:#c3e8fb}.layout-topbar .layout-topbar-icons button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2em #8dcdff}.layout-topbar .layout-topbar-icons button span.layout-topbar-icon{font-size:2em}.layout-topbar .layout-topbar-icons button span.layout-topbar-item-text{font-size:20px;display:none}.layout-topbar .layout-topbar-icons button span.layout-topbar-badge{position:absolute;font-size:10px;right:-5px;top:-5px;width:16px;height:16px;text-align:center;line-height:16px;color:#fff;background-color:#ef6262;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.layout-topbar .layout-topbar-icons .layout-topbar-search{padding:0;position:relative;display:inline-block;top:-4px}.layout-topbar .layout-topbar-icons .layout-topbar-search input{display:inline-block;border:0 none;font-size:14px;background:rgba(0,0,0,0);border-bottom:2px solid #fff;outline:0 none;-webkit-box-shadow:none;box-shadow:none;color:#fff;width:100px;padding:1px 20px 1px 1px;margin:0px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.layout-topbar .layout-topbar-icons .layout-topbar-search input::-webkit-input-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input:-moz-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input::-moz-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input:-ms-input-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search .layout-topbar-search-icon{font-size:18px;position:absolute;top:-1px;right:0px}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input{border-bottom-color:#c3e8fb}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input::-webkit-input-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input:-moz-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input::-moz-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input:-ms-input-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover .layout-topbar-search-icon{color:#c3e8fb}.layout-topbar .layout-menu-button{cursor:pointer;display:inline-block;text-decoration:none;color:#fff;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-topbar .layout-menu-button span{font-size:2em}.layout-topbar .layout-menu-button:hover{color:#c3e8fb}.layout-topbar button{cursor:pointer}.layout-sidebar{position:fixed;width:250px;height:100%;z-index:999;overflow-y:auto;user-select:none;-moz-user-select:none;-webkit-user-select:none;-moz-transition:transform .2s;-o-transition:transform .2s;-webkit-transition:transform .2s;transition:transform .2s;-webkit-box-shadow:0 0 6px 0 rgba(0,0,0,.16);-moz-box-shadow:0 0 6px 0 rgba(0,0,0,.16);box-shadow:0 0 6px 0 rgba(0,0,0,.16)}.layout-sidebar.layout-sidebar-enter,.layout-sidebar.layout-sidebar-leave-to{transform:translateX(-100%)}.layout-sidebar .layout-logo{text-align:center;margin-top:24px}.layout-sidebar .menuitem-badge{display:inline-block;margin-left:4px;font-size:10px;width:16px;height:16px;line-height:16px;text-align:center;color:#fff;background-color:#007be5;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.layout-profile{text-align:center;padding:10px 0 10px 0}.layout-profile img{width:56px;margin:10px}.layout-profile .layout-profile-link{cursor:pointer;display:inline-block;margin-bottom:.75em;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-profile .layout-profile-link i{display:inline-block;font-size:16px;vertical-align:middle}.layout-profile ul{list-style-type:none;padding:0;margin:0}.layout-profile ul li button{width:100%;padding:1em;border:0 none;border-radius:0;cursor:pointer;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-profile ul li button:hover{color:#0388e5}.layout-profile ul li button span{margin-left:.25em;vertical-align:middle}.layout-profile ul li button i{vertical-align:middle}.layout-profile ul.layout-submenu-wrapper-enter,.layout-profile ul.layout-submenu-wrapper-leave-to{max-height:0}.layout-profile ul.layout-submenu-wrapper-enter-to,.layout-profile ul.layout-submenu-wrapper-leave{max-height:1000px}.layout-profile ul.layout-submenu-wrapper-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0, 1, 0, 1)}.layout-profile ul.layout-submenu-wrapper-enter-active{overflow:hidden;transition:max-height 1s ease-in-out}.layout-sidebar-light .layout-profile .layout-profile-link{color:#232428}.layout-sidebar-light .layout-profile .layout-profile-link:hover{color:#0388e5}.layout-sidebar-light .layout-profile ul{background-color:#fff}.layout-sidebar-light .layout-profile ul li button{color:#232428}.layout-sidebar-light .layout-profile ul li button:hover{color:#0388e5}.layout-sidebar-dark .layout-profile .layout-profile-link{color:#fff}.layout-sidebar-dark .layout-profile .layout-profile-link:hover{color:#005a8f}.layout-sidebar-dark .layout-profile ul{background-color:#002439}.layout-sidebar-dark .layout-profile ul li button{color:#fff}.layout-sidebar-dark .layout-profile ul li button:hover{color:#005a8f}.layout-menu-container{padding-bottom:120px}.layout-menu{list-style-type:none;margin:0;padding:0}.layout-menu li a{cursor:pointer;position:relative;text-decoration:none;display:block;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-menu li a i{font-size:18px;vertical-align:middle}.layout-menu li a span{margin-left:.25em;vertical-align:middle;line-height:18px;display:inline-block}.layout-menu li a .menuitem-toggle-icon{position:absolute;top:50%;right:1em;margin-top:-9px}.layout-menu li a.router-link-active{font-weight:700}.layout-menu li a:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2em #8dcdff}.layout-menu li.active-menuitem>a .menuitem-toggle-icon:before{content:\\\"\\\"}.layout-menu>li>a{padding:1em}.layout-menu>li>a span{font-size:14px}.layout-menu>li:last-child>a{border-bottom:1px solid rgba(207,211,224,.6)}.layout-menu>li ul{list-style-type:none;margin:0;padding:0;padding-left:1.5em}.layout-menu>li ul li a{cursor:pointer;padding:.75em 1em;border-top:0 none}.layout-menu>li ul li a span{font-size:13px}.layout-menu>li ul li:last-child{padding-bottom:1em}.layout-menu>li ul.layout-submenu-wrapper-enter,.layout-menu>li ul.layout-submenu-wrapper-leave-to{max-height:0}.layout-menu>li ul.layout-submenu-wrapper-enter-to,.layout-menu>li ul.layout-submenu-wrapper-leave{max-height:1000px}.layout-menu>li ul.layout-submenu-wrapper-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0, 1, 0, 1)}.layout-menu>li ul.layout-submenu-wrapper-enter-active{overflow:hidden;transition:max-height 1s ease-in-out}.layout-sidebar-light{background:#f3f4f9;background:-moz-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f3f4f9), color-stop(100%, #d7dbe8));background:-webkit-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-o-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-ms-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:linear-gradient(to bottom, #f3f4f9 0%, #d7dbe8 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"#ffffff\\\", endColorstr=\\\"#000000\\\",GradientType=0 )}.layout-sidebar-light .layout-menu>li>a{border-top:1px solid rgba(207,211,224,.6)}.layout-sidebar-light .layout-menu>li:last-child>a{border-bottom:1px solid rgba(207,211,224,.6)}.layout-sidebar-light .layout-menu>li ul{background-color:#fff}.layout-sidebar-light .layout-menu li a{color:#232428}.layout-sidebar-light .layout-menu li a.router-link-active{color:#4dacff}.layout-sidebar-light .layout-menu li a:hover{color:#0388e5}.layout-sidebar-light .layout-menu li.active-menuitem>a{background-color:#fff;color:#0388e5}.layout-sidebar-dark{background:#001724;background:-moz-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 54, 86)));background:-webkit-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-o-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-ms-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:linear-gradient(to bottom, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"#ffffff\\\", endColorstr=\\\"#000000\\\",GradientType=0 )}.layout-sidebar-dark .layout-menu>li>a{border-top:1px solid rgba(52,56,65,.6)}.layout-sidebar-dark .layout-menu>li:last-child>a{border-bottom:1px solid rgba(52,56,65,.6)}.layout-sidebar-dark .layout-menu>li ul{background-color:#002439}.layout-sidebar-dark .layout-menu li a{color:#fff}.layout-sidebar-dark .layout-menu li a.router-link-active{color:#4dacff}.layout-sidebar-dark .layout-menu li a:hover{color:#005a8f}.layout-sidebar-dark .layout-menu li.active-menuitem>a{background-color:#002439;color:#4dacff}.layout-main{-moz-transition:margin-left .2s;-o-transition:margin-left .2s;-webkit-transition:margin-left .2s;transition:margin-left .2s;padding:96px 16px 16px 16px}.layout-footer{-moz-transition:margin-left .2s;-o-transition:margin-left .2s;-webkit-transition:margin-left .2s;transition:margin-left .2s;background-color:#182635;padding:1em 2em}.layout-footer img{vertical-align:middle}.layout-footer .footer-text{vertical-align:middle}@media(min-width: 1025px){.layout-wrapper.layout-overlay .layout-topbar{left:0}.layout-wrapper.layout-overlay .layout-main,.layout-wrapper.layout-overlay .layout-footer{margin-left:0}.layout-wrapper.layout-overlay.layout-overlay-sidebar-active .layout-sidebar{left:0}.layout-wrapper.layout-overlay.layout-overlay-sidebar-active .layout-topbar{left:250px}.layout-wrapper.layout-static .layout-topbar{left:250px}.layout-wrapper.layout-static .layout-main,.layout-wrapper.layout-static .layout-footer{margin-left:250px}.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-topbar{left:0}.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-main,.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-footer{margin-left:0}}@media(max-width: 1024px){.layout-wrapper .layout-topbar{left:0}.layout-wrapper .layout-main,.layout-wrapper .layout-footer{margin-left:0}.layout-wrapper .layout-sidebar{-moz-transition:left .2s;-o-transition:left .2s;-webkit-transition:left .2s;transition:left .2s;left:-250px;margin-top:50px}.layout-wrapper .layout-mask{display:none;position:fixed;width:100%;height:100%;top:50px;left:0;z-index:998;background-color:#424242;opacity:.7;filter:alpha(opacity=70)}.layout-wrapper.layout-mobile-sidebar-active .layout-sidebar{left:0}.layout-wrapper.layout-mobile-sidebar-active .layout-mask{display:block}.body-overflow-hidden{overflow:hidden}}h1{font-weight:normal;margin:0;font-size:24px}h2{font-size:20px;font-weight:normal;margin:0}.card{background-color:#fff;padding:1em;margin-bottom:16px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.card.card-w-title{padding-bottom:2em}.card h1{margin:1em 0 .5em 0;border-bottom:1px solid #d5d5d5;padding:.1em;font-size:24px}.card h1:first-child{margin:0 0 .5em 0}.docs pre[class*=language-]{padding:0 !important;background:rgba(0,0,0,0);overflow:visible}.docs pre[class*=language-]>code{border-left:0 none;box-shadow:none;font-size:14px}.dashboard .summary{position:relative}.dashboard .summary .title{font-size:20px}.dashboard .summary .detail{color:#707070;display:block;margin-top:10px}.dashboard .summary .count{color:#fff;position:absolute;top:10px;right:10px;font-size:24px;padding:7px 14px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.dashboard .summary .count.visitors{background-color:#20d077}.dashboard .summary .count.purchases{background-color:#f9c851}.dashboard .summary .count.revenue{background-color:#007be5}.dashboard .highlight-box{height:100px}.dashboard .highlight-box:after{content:\\\"\\\";display:table;clear:both}.dashboard .highlight-box .initials{height:100%;float:left;width:50%;text-align:center;padding:1em}.dashboard .highlight-box .initials>span{font-size:48px}.dashboard .highlight-box .highlight-details{height:100%;background-color:#fff;float:left;width:50%;padding:1em}.dashboard .highlight-box .highlight-details i{font-size:24px;vertical-align:middle;margin-right:.25em}.dashboard .highlight-box .highlight-details .count{color:#707070;font-size:36px;display:block}.dashboard .task-list{list-style-type:none;margin:0;padding:0}.dashboard .task-list li{padding:.5em .25em;border-bottom:1px solid #e3e3e3}.dashboard .task-list li:after{content:\\\"\\\";display:table;clear:both}.dashboard .task-list .p-checkbox{vertical-align:middle;margin-right:.5em}.dashboard .task-list .task-name{vertical-align:middle}.dashboard .task-list i{float:right;font-size:24px;color:#707070}.dashboard .task-list .p-panel-content{min-height:256px}.dashboard .contact-form .p-panel-content{min-height:256px}.dashboard .contacts ul{list-style-type:none;padding:0;margin:0}.dashboard .contacts ul li{border-bottom:1px solid #e3e3e3}.dashboard .contacts ul li button{padding:9px;width:100%;box-sizing:border-box;text-decoration:none;position:relative;display:block;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:background-color .2s;-o-transition:background-color .2s;-webkit-transition:background-color .2s;transition:background-color .2s}.dashboard .contacts ul li button .name{position:absolute;right:10px;top:10px;font-size:18px}.dashboard .contacts ul li button .email{position:absolute;right:10px;top:30px;font-size:14px;color:#707070}.dashboard .contacts ul li button:hover{cursor:pointer;background-color:#eee}.dashboard .contacts ul li:last-child{border:0}.dashboard .contacts .p-panel-content{min-height:256px}.dashboard .activity-list{list-style-type:none;padding:0;margin:0}.dashboard .activity-list li{border-bottom:1px solid #e3e3e3;padding:16px 8px}.dashboard .activity-list li .count{font-size:24px;color:#fff;background-color:#007be5;font-weight:700;display:inline-block;padding:.25em .5em;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.dashboard .activity-list li:first-child{border-top:1px solid #e3e3e3}.dashboard .activity-list li:last-child{border:0}.dashboard .activity-list li .p-col-6:first-child{font-size:18px;padding:.5em 0 0 .5em}.dashboard .activity-list li .p-col-6:last-child{text-align:right;color:#707070}.cosmos-green{color:#009600 !important}.cosmos-yellow{color:#be8700 !important}.cosmos-red{color:red !important}.cosmos-blue{color:#0064ff !important}.cosmos-purple{color:#c800c8 !important}.cosmos-black{color:#000 !important}.cosmos-white{color:#fff !important}.theme--dark.v-system-bar{background-color:var(--v-primary-base) !important}.theme--dark.v-system-bar.active{background-color:var(--v-secondary-base) !important}body,.theme--dark.v-application,.theme--dark.v-main,.theme--dark.v-content{background-color:var(--v-tertiary-base) !important}.theme--dark.v-sheet.v-list,.theme--dark.v-list,.theme--dark.v-list-item{background-color:var(--v-primary-darken2) !important}.theme--dark.v-data-table,.theme--dark.v-item-group,.theme--dark.v-dialog,.theme--dark.v-card,.theme--dark.v-tab,.theme--dark.v-sheet,.theme--dark.v-date-picker-header,.theme--dark.v-date-picker-table,.theme--dark.v-time-picker-clock__container,.theme--dark.p-menubar{background-color:var(--v-tertiary-darken2) !important}input{color-scheme:dark}\",\".splash-screen {\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n @include linear-gradient-left($topbarLeftBgColor, $topbarRightBgColor);\\n\\n .splash-container {\\n width: 40px;\\n height: 40px;\\n margin: 0px auto;\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n margin-left: -20px;\\n margin-top: -20px;\\n\\n }\\n\\n .splash-double-bounce1, .splash-double-bounce2 {\\n width: 100%;\\n height: 100%;\\n border-radius: 50%;\\n background-color: $topbarItemColor;\\n opacity: 0.6;\\n position: absolute;\\n top: 0;\\n left: 0;\\n\\n -webkit-animation: splash-bounce 2.0s infinite ease-in-out;\\n animation: splash-bounce 2.0s infinite ease-in-out;\\n }\\n\\n .splash-double-bounce2 {\\n -webkit-animation-delay: -1.0s;\\n animation-delay: -1.0s;\\n }\\n\\n @-webkit-keyframes splash-bounce {\\n 0%, 100% { -webkit-transform: scale(0.0) }\\n 50% { -webkit-transform: scale(1.0) }\\n }\\n\\n @keyframes splash-bounce {\\n 0%, 100% {\\n transform: scale(0.0);\\n -webkit-transform: scale(0.0);\\n } 50% {\\n transform: scale(1.0);\\n -webkit-transform: scale(1.0);\\n }\\n }\\n}\\n\",\"/* General */\\n$fontSize: 14px;\\n$bodyBgColor: #edf0f5;\\n$textColor: #333333;\\n$textSecondaryColor: #707070;\\n$borderRadius: 3px;\\n$dividerColor: #e3e3e3;\\n$transitionDuration: 0.2s;\\n$maskBgColor: #424242;\\n$focusShadowColor: #8dcdff;\\n\\n/* Menu Common */\\n$menuitemBadgeBgColor: #007be5;\\n$menuitemBadgeColor: #ffffff;\\n$submenuFontSize: 13px;\\n$menuitemActiveRouteColor: rgb(77, 172, 255);\\n\\n/* Menu Light */\\n$menuBgColorFirst: #f3f4f9;\\n$menuBgColorLast: #d7dbe8;\\n$menuitemColor: #232428;\\n$menuitemHoverColor: #0388e5;\\n$menuitemActiveColor: #0388e5;\\n$menuitemActiveBgColor: #ffffff;\\n$menuitemBorderColor: rgba(207, 211, 224, 0.6);\\n\\n/* Menu Dark */\\n$menuDarkBgColorFirst: rgb(0, 23, 36);\\n$menuDarkBgColorLast: rgb(0, 54, 86);\\n$menuitemDarkColor: #ffffff;\\n$menuitemDarkHoverColor: rgb(0, 90, 143);\\n$menuitemDarkActiveColor: rgb(77, 172, 255);\\n$menuitemDarkActiveBgColor: rgb(0, 36, 57);\\n$menuitemDarkBorderColor: rgba(52, 56, 65, 0.6);\\n\\n/* Topbar */\\n$topbarLeftBgColor: rgb(0, 23, 36);\\n$topbarRightBgColor: rgb(0, 23, 36);\\n$topbarItemBadgeBgColor: #ef6262;\\n$topbarItemBadgeColor: #ffffff;\\n$topbarItemColor: #ffffff;\\n$topbarItemHoverColor: #c3e8fb;\\n$topbarSearchInputBorderBottomColor: #ffffff;\\n$topbarSearchInputColor: #ffffff;\\n\\n/* Footer */\\n$footerBgColor: rgb(24, 38, 53);\\n\",\"// Icon Override Mixin\\n@mixin icon-override($icon) {\\n &:before {\\n content: $icon;\\n }\\n}\\n\\n// === MIXINS === //\\n@mixin border-radius($val) {\\n -moz-border-radius: $val;\\n -webkit-border-radius: $val;\\n border-radius: $val;\\n}\\n\\n@mixin border-radius-right($val) {\\n -moz-border-radius-topright: $val;\\n -webkit-border-top-right-radius: $val;\\n border-top-right-radius: $val;\\n -moz-border-radius-bottomright: $val;\\n -webkit-border-bottom-right-radius: $val;\\n border-bottom-right-radius: $val; \\n}\\n\\n@mixin border-radius-left($val) {\\n -moz-border-radius-topleft: $val;\\n -webkit-border-top-left-radius: $val;\\n border-top-left-radius: $val;\\n -moz-border-radius-bottomleft: $val;\\n -webkit-border-bottom-left-radius: $val;\\n border-bottom-left-radius: $val;\\n}\\n\\n@mixin border-radius-top($val) {\\n -moz-border-radius-topleft: $val;\\n -webkit-border-top-left-radius: $val;\\n border-top-left-radius: $val;\\n -moz-border-radius-topright: $val;\\n -webkit-border-top-right-radius: $val;\\n border-top-right-radius: $val;\\n}\\n\\n@mixin border-radius-bottom($val) {\\n -moz-border-radius-bottomleft: $val;\\n -webkit-border-bottom-left-radius: $val;\\n border-bottom-left-radius: $val;\\n -moz-border-radius-bottomright: $val;\\n -webkit-border-bottom-right-radius: $val;\\n border-bottom-right-radius: $val;\\n}\\n\\n@mixin linear-gradient($top, $bottom){\\n background: $top; /* Old browsers */\\n background: -moz-linear-gradient(top, $top 0%, $bottom 100%); /* FF3.6+ */\\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,$top), color-stop(100%,$bottom)); /* Chrome,Safari4+ */\\n background: -webkit-linear-gradient(top, $top 0%,$bottom 100%); /* Chrome10+,Safari5.1+ */\\n background: -o-linear-gradient(top, $top 0%,$bottom 100%); /* Opera 11.10+ */\\n background: -ms-linear-gradient(top, $top 0%,$bottom 100%); /* IE10+ */\\n background: linear-gradient(to bottom, $top 0%,$bottom 100%); /* W3C */\\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#000000',GradientType=0 ); /* IE6-9 */\\n}\\n\\n@mixin linear-gradient-left($left, $right){\\n background: $left; /* Old browsers */\\n background: -moz-linear-gradient(left, $left 0%, $right 100%); /* FF3.6+ */\\n background: -webkit-gradient(linear, left top, right top, color-stop(0%,$left), color-stop(100%,$right)); /* Chrome,Safari4+ */\\n background: -webkit-linear-gradient(left, $left 0%,$right 100%); /* Chrome10+,Safari5.1+ */\\n background: -o-linear-gradient(left, $left 0%,$right 100%); /* Opera 11.10+ */\\n background: -ms-linear-gradient(left, $left 0%,$right 100%); /* IE10+ */\\n background: linear-gradient(to right, $left 0%,$right 100%); /* W3C */\\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=$left, endColorstr=$right,GradientType=1 ); /* IE6-9 */\\n}\\n\\n@mixin transition($transition...) {\\n -moz-transition: $transition;\\n -o-transition: $transition;\\n -webkit-transition: $transition;\\n transition: $transition;\\n}\\n\\n@mixin transition-property($property) {\\n -webkit-transition-property: $property;\\n -moz-transition-property: $property;\\n -ms-transition-property: $property;\\n -o-transition-property: $property;\\n transition-property: $property;\\n}\\n\\n@mixin transition-duration($duration) {\\n -moz-transition-duration: $duration;\\n -webkit-transition-duration: $duration;\\n -o-transition-duration: $duration;\\n transition-duration: $duration;\\n}\\n\\n@mixin transition-timing-function($function) {\\n -webkit-transition-timing-function: $function;\\n -moz-transition-timing-function: $function;\\n -o-transition-timing-function: $function;\\n transition-timing-function: $function;\\n}\\n\\n@mixin opacity($opacity) {\\n opacity: $opacity;\\n $opacity-ie: $opacity * 100;\\n filter: alpha(opacity=$opacity-ie);\\n}\\n\\n@mixin shadow($value) {\\n -webkit-box-shadow: $value;\\n -moz-box-shadow: $value;\\n box-shadow: $value;\\n}\\n\\n@mixin focused() {\\n outline: 0 none;\\n outline-offset: 0;\\n box-shadow: 0 0 0 0.2em $focusShadowColor;\\n}\\n\\n@mixin focused-inset() {\\n outline: 0 none;\\n outline-offset: 0;\\n box-shadow: inset 0 0 0 0.2em $focusShadowColor;\\n}\\n\\n@mixin clearfix {\\n &:after {\\n content: \\\"\\\";\\n display: table;\\n clear: both;\\n }\\n}\",\"* {\\n box-sizing: border-box;\\n}\\n\\nhtml {\\n height: 100%;\\n}\\n\\nbody {\\n font-family: 'Open Sans', 'Helvetica Neue', sans-serif;\\n font-size: $fontSize;\\n color: $textColor;\\n /* background-color: $bodyBgColor; */\\n margin: 0;\\n padding: 0;\\n min-height: 100%;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\na {\\n text-decoration: none;\\n}\\n\\n.layout-wrapper {\\n padding: 0;\\n}\\n\\n// Don't let the min-height be 100vh because it forces a scroll\\n// with our header and footer\\n.v-application--wrap {\\n min-height: 0 !important;\\n}\\n\",\".layout-topbar {\\n position: fixed;\\n height: 80px;\\n padding: 0.7em 1.5em 0em 1.5em;\\n color: #ffffff;\\n z-index: 999;\\n right: 0;\\n @include clearfix();\\n @include linear-gradient-left($topbarLeftBgColor, $topbarRightBgColor);\\n @include transition(left $transitionDuration);\\n\\n .layout-topbar-icons {\\n float: right;\\n display: block;\\n -moz-animation-duration: 0.5s;\\n -webkit-animation-duration: 0.5s;\\n animation-duration: 0.5s;\\n\\n button {\\n position: relative;\\n color: $topbarItemColor;\\n margin-left: 20px;\\n display: inline-block;\\n text-decoration: none;\\n @include transition(color $transitionDuration);\\n\\n &:hover {\\n color: $topbarItemHoverColor;\\n }\\n\\n &:focus {\\n @include focused();\\n }\\n\\n span {\\n &.layout-topbar-icon {\\n font-size: 2em;\\n }\\n\\n &.layout-topbar-item-text {\\n font-size: 20px;\\n display: none;\\n }\\n\\n &.layout-topbar-badge {\\n position: absolute;\\n font-size: 10px;\\n right: -5px;\\n top: -5px;\\n width: 16px;\\n height: 16px;\\n text-align: center;\\n line-height: 16px;\\n color: $topbarItemBadgeColor;\\n background-color: $topbarItemBadgeBgColor;\\n @include border-radius(50%);\\n }\\n }\\n }\\n\\n .layout-topbar-search {\\n padding: 0;\\n position: relative;\\n display: inline-block;\\n top: -4px;\\n\\n input {\\n display: inline-block;\\n border: 0 none;\\n font-size: $fontSize;\\n background: transparent;\\n border-bottom: 2px solid $topbarSearchInputBorderBottomColor;\\n outline: 0 none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n color: $topbarSearchInputColor;\\n width: 100px;\\n padding: 1px 20px 1px 1px;\\n margin: 0px;\\n @include border-radius(2px);\\n\\n &::-webkit-input-placeholder {\\n color: $topbarSearchInputColor;\\n opacity: 0.7;\\n @include transition(opacity $transitionDuration);\\n }\\n &:-moz-placeholder {\\n color: $topbarSearchInputColor;\\n opacity: 0.7;\\n @include transition(opacity $transitionDuration);\\n }\\n &::-moz-placeholder {\\n color: $topbarSearchInputColor;\\n opacity: 0.7;\\n @include transition(opacity $transitionDuration);\\n }\\n &:-ms-input-placeholder {\\n color: $topbarSearchInputColor;\\n opacity: 0.7;\\n @include transition(opacity $transitionDuration);\\n }\\n }\\n\\n .layout-topbar-search-icon {\\n font-size: 18px;\\n position: absolute;\\n top: -1px;\\n right: 0px;\\n }\\n\\n &:hover {\\n input {\\n border-bottom-color: $topbarItemHoverColor;\\n &::-webkit-input-placeholder {\\n opacity: 1;\\n }\\n &:-moz-placeholder {\\n opacity: 1;\\n }\\n &::-moz-placeholder {\\n opacity: 1;\\n }\\n &:-ms-input-placeholder {\\n opacity: 1;\\n }\\n }\\n\\n .layout-topbar-search-icon {\\n color: $topbarItemHoverColor;\\n }\\n }\\n }\\n }\\n\\n .layout-menu-button {\\n cursor: pointer;\\n display: inline-block;\\n text-decoration: none;\\n color: $topbarItemColor;\\n @include transition(color $transitionDuration);\\n\\n span {\\n font-size: 2em;\\n }\\n\\n &:hover {\\n color: $topbarItemHoverColor;\\n }\\n }\\n\\n button {\\n cursor: pointer;\\n }\\n}\\n\",\".layout-sidebar {\\n position: fixed;\\n width: 250px;\\n height: 100%;\\n z-index: 999;\\n overflow-y: auto;\\n user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n @include transition(transform $transitionDuration);\\n @include shadow(0 0 6px 0 rgba(0, 0, 0, 0.16));\\n\\n &.layout-sidebar-enter,\\n &.layout-sidebar-leave-to {\\n transform: translateX(-100%);\\n }\\n\\n .layout-logo {\\n text-align: center;\\n margin-top: 24px;\\n }\\n\\n .menuitem-badge {\\n display: inline-block;\\n margin-left: 4px;\\n font-size: 10px;\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n text-align: center;\\n color: $menuitemBadgeColor;\\n background-color: $menuitemBadgeBgColor;\\n @include border-radius(50%);\\n }\\n}\",\".layout-profile {\\n text-align: center;\\n padding: 10px 0 10px 0;\\n\\n img {\\n width: 56px;\\n margin: 10px;\\n }\\n\\n .layout-profile-link {\\n cursor: pointer;\\n display: inline-block;\\n margin-bottom: 0.75em;\\n @include transition(color $transitionDuration);\\n\\n i {\\n display: inline-block;\\n font-size: 16px;\\n vertical-align: middle;\\n }\\n }\\n\\n ul {\\n list-style-type: none;\\n padding: 0;\\n margin: 0;\\n\\n li {\\n button {\\n width: 100%;\\n padding: 1em;\\n border: 0 none;\\n border-radius: 0;\\n cursor: pointer;\\n @include transition(color $transitionDuration);\\n\\n &:hover {\\n color: $menuitemHoverColor;\\n }\\n\\n span {\\n margin-left: 0.25em;\\n vertical-align: middle;\\n }\\n\\n i {\\n vertical-align: middle;\\n }\\n }\\n }\\n\\n &.layout-submenu-wrapper-enter,\\n &.layout-submenu-wrapper-leave-to {\\n max-height: 0;\\n }\\n\\n &.layout-submenu-wrapper-enter-to,\\n &.layout-submenu-wrapper-leave {\\n max-height: 1000px;\\n }\\n\\n &.layout-submenu-wrapper-leave-active {\\n overflow: hidden;\\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1);\\n }\\n\\n &.layout-submenu-wrapper-enter-active {\\n overflow: hidden;\\n transition: max-height 1s ease-in-out;\\n }\\n }\\n}\\n\\n.layout-sidebar-light {\\n .layout-profile {\\n .layout-profile-link {\\n color: $menuitemColor;\\n\\n &:hover {\\n color: $menuitemHoverColor;\\n }\\n }\\n\\n ul {\\n background-color: $menuitemActiveBgColor;\\n\\n li {\\n button {\\n color: $menuitemColor;\\n\\n &:hover {\\n color: $menuitemHoverColor;\\n }\\n }\\n }\\n }\\n }\\n}\\n\\n.layout-sidebar-dark {\\n .layout-profile {\\n .layout-profile-link {\\n color: $menuitemDarkColor;\\n\\n &:hover {\\n color: $menuitemDarkHoverColor;\\n }\\n }\\n\\n ul {\\n background-color: $menuitemDarkActiveBgColor;\\n\\n li {\\n button {\\n color: $menuitemDarkColor;\\n\\n &:hover {\\n color: $menuitemDarkHoverColor;\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\".layout-menu-container {\\n padding-bottom: 120px;\\n}\\n\\n.layout-menu {\\n list-style-type: none;\\n margin: 0;\\n padding: 0;\\n\\n li {\\n a {\\n cursor: pointer;\\n position: relative;\\n text-decoration: none;\\n display: block;\\n @include transition(color $transitionDuration);\\n\\n i {\\n font-size: 18px;\\n vertical-align: middle;\\n }\\n\\n span {\\n margin-left: .25em;\\n vertical-align: middle;\\n line-height: 18px;\\n display: inline-block;\\n }\\n\\n .menuitem-toggle-icon {\\n position: absolute;\\n top: 50%;\\n right: 1em;\\n margin-top: -9px;\\n }\\n\\n &.router-link-active {\\n font-weight: 700;\\n }\\n\\n &:focus {\\n @include focused-inset();\\n }\\n }\\n\\n &.active-menuitem {\\n > a {\\n .menuitem-toggle-icon {\\n @include icon-override(\\\"\\\\e933\\\");\\n }\\n }\\n }\\n }\\n\\n > li {\\n > a {\\n padding: 1em;\\n\\n span {\\n font-size: $fontSize;\\n }\\n }\\n\\n &:last-child {\\n > a {\\n border-bottom: 1px solid $menuitemBorderColor;\\n }\\n }\\n\\n ul {\\n list-style-type: none;\\n margin: 0;\\n padding: 0;\\n padding-left: 1.5em;\\n\\n li {\\n a {\\n cursor: pointer;\\n padding: .75em 1em;\\n border-top: 0 none;\\n\\n span {\\n font-size: $submenuFontSize;\\n }\\n }\\n\\n &:last-child {\\n padding-bottom: 1em;\\n }\\n }\\n\\n &.layout-submenu-wrapper-enter,\\n &.layout-submenu-wrapper-leave-to {\\n max-height: 0;\\n }\\n\\n &.layout-submenu-wrapper-enter-to,\\n &.layout-submenu-wrapper-leave {\\n max-height: 1000px;\\n }\\n\\n &.layout-submenu-wrapper-leave-active {\\n overflow: hidden;\\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1);\\n }\\n\\n &.layout-submenu-wrapper-enter-active {\\n overflow: hidden;\\n transition: max-height 1s ease-in-out;\\n }\\n }\\n }\\n}\\n\\n.layout-sidebar-light {\\n @include linear-gradient($menuBgColorFirst, $menuBgColorLast);\\n\\n .layout-menu {\\n > li {\\n > a {\\n border-top: 1px solid $menuitemBorderColor;\\n }\\n\\n &:last-child {\\n > a {\\n border-bottom: 1px solid $menuitemBorderColor;\\n }\\n }\\n\\n ul {\\n background-color: $menuitemActiveBgColor;\\n }\\n }\\n\\n li {\\n a {\\n color: $menuitemColor;\\n\\n &.router-link-active {\\n color: $menuitemActiveRouteColor;\\n }\\n\\n &:hover {\\n color: $menuitemHoverColor;\\n }\\n }\\n\\n &.active-menuitem {\\n > a {\\n background-color: $menuitemActiveBgColor;\\n color: $menuitemActiveColor;\\n }\\n }\\n }\\n }\\n}\\n\\n.layout-sidebar-dark {\\n @include linear-gradient($menuDarkBgColorFirst, $menuDarkBgColorLast);\\n\\n .layout-menu {\\n > li {\\n > a {\\n border-top: 1px solid $menuitemDarkBorderColor;\\n }\\n\\n &:last-child {\\n > a {\\n border-bottom: 1px solid $menuitemDarkBorderColor;\\n }\\n }\\n\\n ul {\\n background-color: $menuitemDarkActiveBgColor;\\n }\\n }\\n\\n li {\\n a {\\n color: $menuitemDarkColor;\\n\\n &.router-link-active {\\n color: $menuitemActiveRouteColor;\\n }\\n\\n &:hover {\\n color: $menuitemDarkHoverColor;\\n }\\n }\\n\\n &.active-menuitem {\\n > a {\\n background-color: $menuitemDarkActiveBgColor;\\n color: $menuitemDarkActiveColor;\\n }\\n }\\n }\\n }\\n}\",\".layout-main {\\n @include transition(margin-left $transitionDuration);\\n padding: 96px 16px 16px 16px;\\n}\\n\",\".layout-footer {\\n @include transition(margin-left $transitionDuration);\\n background-color: $footerBgColor;\\n padding: 1em 2em;\\n\\n img {\\n vertical-align: middle;\\n }\\n\\n .footer-text {\\n vertical-align: middle;\\n }\\n}\",\"@media (min-width: 1025px) {\\n .layout-wrapper {\\n &.layout-overlay { \\n .layout-topbar {\\n left: 0;\\n }\\n \\n .layout-main, .layout-footer {\\n margin-left: 0;\\n }\\n \\n &.layout-overlay-sidebar-active {\\n .layout-sidebar {\\n left: 0;\\n }\\n \\n .layout-topbar {\\n left: 250px;\\n }\\n }\\n }\\n\\n &.layout-static { \\n .layout-topbar {\\n left: 250px;\\n }\\n \\n .layout-main, .layout-footer {\\n margin-left: 250px;\\n }\\n \\n &.layout-static-sidebar-inactive { \\n .layout-topbar {\\n left: 0;\\n }\\n\\n .layout-main, .layout-footer {\\n margin-left: 0;\\n }\\n }\\n }\\n }\\n}\\n\\n@media (max-width: 1024px) {\\n .layout-wrapper {\\n .layout-topbar {\\n left: 0;\\n }\\n\\n .layout-main, .layout-footer {\\n margin-left: 0;\\n }\\n\\n .layout-sidebar {\\n @include transition(left $transitionDuration);\\n left: -250px;\\n margin-top: 50px;\\n }\\n\\n .layout-mask {\\n display: none;\\n position: fixed;\\n width: 100%;\\n height: 100%;\\n top: 50px;\\n left: 0;\\n z-index: 998;\\n background-color: $maskBgColor;\\n @include opacity(0.7);\\n }\\n\\n &.layout-mobile-sidebar-active {\\n .layout-sidebar {\\n left: -0;\\n }\\n\\n .layout-mask {\\n display: block;\\n }\\n }\\n }\\n\\n .body-overflow-hidden {\\n overflow: hidden;\\n }\\n}\",\"/* Typography */\\nh1 {\\n font-weight: normal;\\n margin: 0;\\n font-size: 24px;\\n}\\n\\nh2 {\\n font-size: 20px;\\n font-weight: normal;\\n margin: 0;\\n}\\n\\n.card {\\n background-color: #ffffff;\\n padding: 1em;\\n margin-bottom: 16px;\\n @include border-radius($borderRadius);\\n\\n &.card-w-title {\\n padding-bottom: 2em;\\n }\\n\\n h1 {\\n margin: 1em 0 .5em 0;\\n border-bottom: 1px solid #d5d5d5;\\n padding: .1em;\\n font-size: 24px;\\n\\n &:first-child {\\n margin: 0 0 .5em 0;\\n }\\n }\\n}\\n\\n/* Code Highlight */\\n.docs {\\n pre[class*=\\\"language-\\\"] {\\n padding: 0 !important;\\n background: transparent;\\n overflow: visible;\\n \\n > code {\\n border-left: 0 none;\\n box-shadow: none;\\n font-size: 14px;\\n }\\n }\\n}\\n\",\"/* Dashboard */\\n.dashboard {\\n \\n .summary {\\n position: relative;\\n \\n .title {\\n font-size: 20px;\\n }\\n \\n .detail {\\n color: $textSecondaryColor;\\n display: block;\\n margin-top: 10px;\\n }\\n \\n .count {\\n color: #ffffff;\\n position: absolute;\\n top: 10px;\\n right: 10px;\\n font-size: 24px;\\n padding: 7px 14px;\\n @include border-radius($borderRadius);\\n \\n &.visitors {\\n background-color: #20d077;\\n }\\n \\n &.purchases {\\n background-color: #f9c851;\\n }\\n \\n &.revenue {\\n background-color: #007be5;\\n }\\n }\\n }\\n\\n .highlight-box {\\n height: 100px;\\n @include clearfix();\\n \\n .initials {\\n height: 100%;\\n float: left;\\n width: 50%;\\n text-align: center;\\n padding: 1em;\\n\\n > span {\\n font-size: 48px;\\n }\\n }\\n \\n .highlight-details {\\n height: 100%;\\n background-color: #ffffff;\\n float: left;\\n width: 50%;\\n padding: 1em;\\n\\n i {\\n font-size: 24px;\\n vertical-align: middle;\\n margin-right: .25em;\\n }\\n \\n .count {\\n color: $textSecondaryColor;\\n font-size: 36px;\\n display: block;\\n }\\n }\\n }\\n \\n .task-list {\\n list-style-type: none;\\n margin: 0;\\n padding: 0;\\n \\n li {\\n padding: .5em .25em;\\n border-bottom: 1px solid $dividerColor;\\n @include clearfix();\\n }\\n \\n .p-checkbox {\\n vertical-align: middle;\\n margin-right: .5em;\\n }\\n \\n .task-name {\\n vertical-align: middle;\\n }\\n \\n i {\\n float: right;\\n font-size: 24px;\\n color: $textSecondaryColor;\\n }\\n\\n .p-panel-content {\\n min-height: 256px;\\n }\\n }\\n\\n .contact-form {\\n .p-panel-content {\\n min-height: 256px;\\n }\\n }\\n\\n .contacts {\\n\\n ul {\\n list-style-type: none;\\n padding: 0;\\n margin: 0;\\n\\n li {\\n border-bottom: 1px solid $dividerColor;\\n \\n button {\\n padding: 9px;\\n width: 100%;\\n box-sizing: border-box;\\n text-decoration: none;\\n position: relative;\\n display: block;\\n @include border-radius(2px);\\n @include transition(background-color .2s);\\n \\n .name {\\n position: absolute;\\n right: 10px;\\n top: 10px;\\n font-size: 18px;\\n }\\n \\n .email {\\n position: absolute;\\n right: 10px;\\n top: 30px;\\n font-size: 14px;\\n color: $textSecondaryColor;\\n }\\n \\n &:hover {\\n cursor: pointer;\\n background-color: #eeeeee;\\n }\\n }\\n \\n &:last-child {\\n border: 0;\\n }\\n }\\n }\\n \\n .p-panel-content {\\n min-height: 256px;\\n }\\n }\\n \\n .activity-list {\\n list-style-type: none;\\n padding: 0;\\n margin: 0;\\n \\n li {\\n border-bottom: 1px solid $dividerColor;\\n padding: 16px 8px;\\n \\n .count {\\n font-size: 24px;\\n color: #ffffff;\\n background-color: #007be5;\\n font-weight: 700;\\n display: inline-block;\\n padding: .25em .5em;\\n @include border-radius($borderRadius);\\n }\\n \\n &:first-child {\\n border-top: 1px solid $dividerColor;\\n }\\n \\n &:last-child {\\n border: 0;\\n }\\n\\n .p-col-6:first-child {\\n font-size: 18px;\\n padding: .5em 0 0 .5em;\\n }\\n \\n .p-col-6:last-child {\\n text-align: right;\\n color: $textSecondaryColor;\\n }\\n }\\n }\\n}\\n\",\"// This is for global overrides only. If it's contained to a component put it there.\\n// Also use the variables created by vueify like var(--v-primary-darken2) rather\\n// than something absolute so theming works. See vuetify.js for the base colors\\n// and note the variations are: base, lighten[1-5], and darken[1-4]\\n\\n.cosmos-green {\\n color: rgb(0, 150, 0) !important;\\n}\\n.cosmos-yellow {\\n color: rgb(190, 135, 0) !important;\\n}\\n.cosmos-red {\\n color: red !important;\\n}\\n.cosmos-blue {\\n color: rgb(0, 100, 255) !important;\\n}\\n.cosmos-purple {\\n color: rgb(200, 0, 200) !important;\\n}\\n.cosmos-black {\\n color: black !important;\\n}\\n.cosmos-white {\\n color: white !important;\\n}\\n\\n// Base colors\\n.theme--dark.v-system-bar {\\n background-color: var(--v-primary-base) !important;\\n}\\n.theme--dark.v-system-bar.active {\\n background-color: var(--v-secondary-base) !important;\\n}\\nbody,\\n.theme--dark.v-application,\\n.theme--dark.v-main,\\n.theme--dark.v-content {\\n background-color: var(--v-tertiary-base) !important;\\n}\\n\\n// Highlight colors\\n.theme--dark.v-sheet.v-list,\\n.theme--dark.v-list,\\n.theme--dark.v-list-item {\\n background-color: var(--v-primary-darken2) !important;\\n}\\n.theme--dark.v-data-table,\\n.theme--dark.v-item-group,\\n.theme--dark.v-dialog,\\n.theme--dark.v-card,\\n.theme--dark.v-tab,\\n.theme--dark.v-sheet,\\n.theme--dark.v-date-picker-header,\\n.theme--dark.v-date-picker-table,\\n.theme--dark.v-time-picker-clock__container,\\n.theme--dark.p-menubar {\\n background-color: var(--v-tertiary-darken2) !important;\\n}\\n\\ninput {\\n // This causes the browser to style input icons for a dark background\\n color-scheme: dark;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n#footer[data-v-225df573] {\\n z-index: 1000; /* On TOP! */\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/AppFooter.vue\"],\"names\":[],\"mappings\":\";AAmEA;EACA,aAAA,EAAA,YAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <v-footer id=\\\"footer\\\" app color=\\\"tertiary darken-3\\\" height=\\\"33\\\">\\n <img :src=\\\"logo\\\" alt=\\\"COSMOS\\\" width=\\\"20\\\" height=\\\"20\\\" />\\n <span class=\\\"footer-text\\\" style=\\\"margin-left: 5px\\\">\\n COSMOS {{ cosmosVersion }} &copy; 2022\\n </span>\\n <v-spacer />\\n <a :href=\\\"sourceUrl\\\" class=\\\"white--text text-decoration-underline\\\">\\n Source\\n </a>\\n <v-spacer />\\n <div class=\\\"justify-right\\\"><clock-footer /></div>\\n </v-footer>\\n</template>\\n\\n<script>\\nimport ClockFooter from './components/ClockFooter.vue'\\nimport { CosmosApi } from '../../packages/cosmosc2-tool-common/src/services/cosmos-api'\\nimport logo from '../public/img/logo.png'\\n\\nexport default {\\n components: {\\n ClockFooter,\\n },\\n data() {\\n return {\\n logo: logo,\\n sourceUrl: '',\\n cosmosVersion: '',\\n }\\n },\\n created: function () {\\n this.getSourceUrl()\\n },\\n methods: {\\n getSourceUrl: function () {\\n new CosmosApi()\\n .get_settings(['source_url', 'version'])\\n .then((response) => {\\n this.sourceUrl = response[0]\\n this.cosmosVersion = `(${response[1]})`\\n })\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n#footer {\\n z-index: 1000; /* On TOP! */\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.v-list-item--two-line .v-list-item__icon[data-v-0a95910a] {\\n margin: 0px;\\n}\\n.v-list[data-v-0a95910a] .v-label {\\n margin-left: 5px;\\n}\\n.theme--dark.v-navigation-drawer[data-v-0a95910a] {\\n background-color: var(--v-primary-darken2);\\n}\\n.v-list-item__icon[data-v-0a95910a] {\\n /* For some reason the default margin-right is huge */\\n margin-right: 15px !important;\\n}\\n.v-list-item__title[data-v-0a95910a] {\\n color: white;\\n}\\n#cosmos-app-toolbar .top-bar-divider-full-height[data-v-0a95910a] {\\n margin: -4px 4px;\\n min-height: calc(100% + 8px);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/AppNav.vue\"],\"names\":[],\"mappings\":\";AAsKA;EACA,WAAA;AACA;AACA;EACA,gBAAA;AACA;AACA;EACA,0CAAA;AACA;AACA;EACA,qDAAA;EACA,6BAAA;AACA;AACA;EACA,YAAA;AACA;AAEA;EACA,gBAAA;EACA,4BAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <div>\\n <v-navigation-drawer v-model=\\\"drawer\\\" app id=\\\"cosmos-nav-drawer\\\">\\n <v-list>\\n <v-list-item two-line>\\n <v-list-item-icon>\\n <img :src=\\\"logo\\\" alt=\\\"COSMOS\\\" />\\n </v-list-item-icon>\\n <v-list-item-content>\\n <v-list-item-title class=\\\"font-weight-bold\\\">\\n COSMOS\\n </v-list-item-title>\\n <!-- v-list-item-subtitle>Enterprise Edition</v-list-item-subtitle -->\\n </v-list-item-content>\\n </v-list-item>\\n <v-list-item class=\\\"my-0\\\">\\n <v-list-item-content>\\n <div v-for=\\\"(tool, name) in adminTools\\\" :key=\\\"name\\\">\\n <v-btn\\n block\\n small\\n :href=\\\"tool.url\\\"\\n onclick=\\\"singleSpaNavigate(event)\\\"\\n >\\n Admin\\n </v-btn>\\n </div>\\n </v-list-item-content>\\n </v-list-item>\\n <v-divider />\\n <div v-for=\\\"(tool, name) in shownTools\\\" :key=\\\"name\\\">\\n <v-list-item class=\\\"pr-0\\\">\\n <v-list-item-icon>\\n <a :href=\\\"tool.url\\\" onclick=\\\"singleSpaNavigate(event)\\\">\\n <v-icon>{{ tool.icon }}</v-icon>\\n </a>\\n </v-list-item-icon>\\n <v-list-item-content>\\n <a :href=\\\"tool.url\\\" onclick=\\\"singleSpaNavigate(event)\\\">\\n <v-list-item-title>{{ name }}</v-list-item-title>\\n </a>\\n </v-list-item-content>\\n <v-divider vertical />\\n <v-list-item-icon>\\n <a :href=\\\"tool.url\\\" target=\\\"_blank\\\">\\n <v-icon>mdi-open-in-new</v-icon>\\n </a>\\n </v-list-item-icon>\\n </v-list-item>\\n </div>\\n </v-list>\\n </v-navigation-drawer>\\n <v-app-bar app color=\\\"tertiary darken-3\\\" id=\\\"cosmos-app-toolbar\\\">\\n <v-app-bar-nav-icon @click=\\\"drawer = !drawer\\\" />\\n <v-divider vertical class=\\\"top-bar-divider-full-height\\\" />\\n <span style=\\\"width: 100%\\\"><span id=\\\"cosmos-menu\\\"></span></span>\\n <div class=\\\"justify-right mr-2 pt-2\\\"><scope-selector /></div>\\n <div class=\\\"justify-right\\\"><alert-history /></div>\\n <div class=\\\"justify-right\\\"><notifications /></div>\\n <div class=\\\"justify-right\\\"><user-menu /></div>\\n </v-app-bar>\\n </div>\\n</template>\\n\\n<script>\\nimport Api from '../../packages/cosmosc2-tool-common/src/services/api'\\nimport logo from '../public/img/logo.png'\\nimport { registerApplication, start } from 'single-spa'\\nimport ScopeSelector from './components/ScopeSelector.vue'\\nimport AlertHistory from './components/AlertHistory.vue'\\nimport Notifications from './components/Notifications.vue'\\nimport UserMenu from './components/UserMenu.vue'\\n\\nexport default {\\n components: {\\n ScopeSelector,\\n AlertHistory,\\n Notifications,\\n UserMenu,\\n },\\n data() {\\n return {\\n drawer: true,\\n appNav: {},\\n adminNav: {},\\n checked: [],\\n logo: logo,\\n }\\n },\\n computed: {\\n // a computed getter\\n shownTools: function () {\\n let result = {}\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown && this.appNav[key].category !== 'Admin') {\\n result[key] = this.appNav[key]\\n }\\n }\\n return result\\n },\\n adminTools: function () {\\n let result = {}\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown && this.appNav[key].category === 'Admin') {\\n result[key] = this.appNav[key]\\n }\\n }\\n return result\\n },\\n },\\n created() {\\n Api.get('/cosmos-api/tools/all', { params: { scope: 'DEFAULT' } }).then(\\n (response) => {\\n this.appNav = response.data\\n\\n // Register apps and start single-spa\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown) {\\n let folder_name = this.appNav[key].folder_name\\n let name = '@cosmosc2/tool-' + folder_name\\n registerApplication({\\n name: name,\\n app: () => System.import(name),\\n activeWhen: ['/tools/' + folder_name],\\n })\\n }\\n }\\n start({\\n urlRerouteOnly: true,\\n })\\n\\n // Redirect / to the first tool\\n if (window.location.pathname == '/') {\\n for (var key of Object.keys(this.shownTools)) {\\n if (this.appNav[key].shown) {\\n history.replaceState(null, '', this.appNav[key].url)\\n break\\n }\\n }\\n }\\n }\\n )\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.v-list-item--two-line .v-list-item__icon {\\n margin: 0px;\\n}\\n.v-list >>> .v-label {\\n margin-left: 5px;\\n}\\n.theme--dark.v-navigation-drawer {\\n background-color: var(--v-primary-darken2);\\n}\\n.v-list-item__icon {\\n /* For some reason the default margin-right is huge */\\n margin-right: 15px !important;\\n}\\n.v-list-item__title {\\n color: white;\\n}\\n\\n#cosmos-app-toolbar .top-bar-divider-full-height {\\n margin: -4px 4px;\\n min-height: calc(100% + 8px);\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.v-subheader[data-v-0042fbc8] {\\n height: 28px;\\n}\\n.v-badge[data-v-0042fbc8] {\\n width: 100%;\\n}\\n.overlay[data-v-0042fbc8] {\\n height: 100vh;\\n width: 100vw;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/AlertHistory.vue\"],\"names\":[],\"mappings\":\";AAyKA;EACA,YAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;EACA,aAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <div>\\n <v-overlay :value=\\\"showAlertPane\\\" class=\\\"overlay\\\" />\\n <v-menu\\n v-model=\\\"showAlertPane\\\"\\n transition=\\\"slide-y-transition\\\"\\n :close-on-content-click=\\\"false\\\"\\n :nudge-width=\\\"340\\\"\\n offset-y\\n :nudge-bottom=\\\"20\\\"\\n >\\n <!-- Alert box icon -->\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <v-btn v-bind=\\\"attrs\\\" v-on=\\\"on\\\" icon>\\n <v-icon :size=\\\"size\\\"> mdi-alert-box-outline </v-icon>\\n </v-btn>\\n </template>\\n\\n <!-- Alerts list -->\\n <v-card>\\n <v-card-title>\\n Alerts\\n <v-spacer />\\n <v-tooltip top open-delay=\\\"350\\\">\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <v-btn\\n icon\\n v-bind=\\\"attrs\\\"\\n v-on=\\\"on\\\"\\n @click=\\\"clearAlerts\\\"\\n class=\\\"ml-1\\\"\\n >\\n <v-icon> mdi-notification-clear-all </v-icon>\\n </v-btn>\\n </template>\\n <span>Clear all</span>\\n </v-tooltip>\\n </v-card-title>\\n <v-card-text v-if=\\\"alerts.length === 0\\\"> No alerts </v-card-text>\\n <v-list\\n v-else\\n two-line\\n width=\\\"388\\\"\\n max-height=\\\"80vh\\\"\\n class=\\\"overflow-y-auto\\\"\\n >\\n <template v-for=\\\"(alert, index) in alerts\\\">\\n <v-list-item\\n :key=\\\"`alert-${index}`\\\"\\n @click=\\\"openDialog(alert)\\\"\\n class=\\\"pl-2\\\"\\n >\\n <v-badge left inline color=\\\"transparent\\\">\\n <v-list-item-content class=\\\"pt-0 pb-0\\\">\\n <v-list-item-title>\\n {{ alert.title }}\\n </v-list-item-title>\\n <v-list-item-subtitle>\\n {{ alert.body }}\\n </v-list-item-subtitle>\\n </v-list-item-content>\\n <template v-slot:badge>\\n <astro-status-indicator\\n :status=\\\"alert.severity.toLowerCase()\\\"\\n />\\n </template>\\n </v-badge>\\n </v-list-item>\\n </template>\\n </v-list>\\n </v-card>\\n </v-menu>\\n\\n <!-- Dialog for viewing full alert -->\\n <v-dialog v-model=\\\"alertDialog\\\" width=\\\"600\\\">\\n <v-card>\\n <v-card-title>\\n {{ selectedAlert.title }}\\n <v-spacer />\\n <astro-status-indicator\\n :status=\\\"selectedAlert.severity || 'normal'\\\"\\n />\\n </v-card-title>\\n <v-card-text>\\n {{ selectedAlert.body }}\\n </v-card-text>\\n <v-divider />\\n <v-card-actions>\\n <v-btn color=\\\"primary\\\" text @click=\\\"alertDialog = false\\\">\\n Dismiss\\n </v-btn>\\n </v-card-actions>\\n </v-card>\\n </v-dialog>\\n </div>\\n</template>\\n\\n<script>\\nimport { AstroStatusColors } from '../../../packages/cosmosc2-tool-common/src/components/icons'\\nimport {\\n highestSeverity,\\n orderBySeverity,\\n groupBySeverity,\\n} from '../util/AstroStatus'\\n\\nexport default {\\n props: {\\n size: {\\n type: [String, Number],\\n default: 26,\\n },\\n },\\n data: function () {\\n return {\\n AstroStatusColors,\\n alerts: [],\\n alertDialog: false,\\n showAlertPane: false,\\n selectedAlert: {},\\n }\\n },\\n watch: {\\n showAlertPane: function (val) {\\n if (val) {\\n this.refreshList()\\n }\\n if (!val && this.selectedAlert.title) {\\n this.alertDialog = false\\n this.selectedAlert = {}\\n }\\n },\\n },\\n methods: {\\n refreshList: function () {\\n this.alerts = this.$store.state.notifyHistory\\n },\\n clearAlerts: function () {\\n this.$store.commit('notifyClearHistory')\\n this.refreshList()\\n this.showAlertPane = false\\n },\\n openDialog: function (alert, clearToast = false) {\\n this.selectedAlert = alert\\n this.alertDialog = true\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.v-subheader {\\n height: 28px;\\n}\\n\\n.v-badge {\\n width: 100%;\\n}\\n\\n.overlay {\\n height: 100vh;\\n width: 100vw;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* push things up and down to make room for the classification banners */\\n#app,\\n#cosmos-nav-drawer {\\n margin-top: var(--classification-height-top);\\n}\\n#cosmos-app-toolbar {\\n top: var(--classification-height-top);\\n}\\n#cosmos-nav-drawer .v-navigation-drawer__content {\\n height: calc(\\n 100% - var(--classification-height-top) -\\n var(--classification-height-bottom)\\n );\\n}\\n#footer {\\n margin-bottom: var(--classification-height-bottom);\\n}\\n\\n/* make the classification banners */\\n#app::before,\\n#app::after {\\n z-index: 99;\\n position: fixed;\\n left: 0;\\n right: 0;\\n text-align: center;\\n content: var(--classification-text);\\n color: var(--classification-font-color);\\n background-color: var(--classification-background-color);\\n}\\n#app::before {\\n top: 0;\\n font-size: calc(var(--classification-height-top) * 0.7);\\n height: var(--classification-height-top);\\n}\\n#app::after {\\n bottom: 0;\\n font-size: calc(var(--classification-height-bottom) * 0.7);\\n height: var(--classification-height-bottom);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/ClassificationBanners.vue\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,wEAAA;AACA;;EAEA,4CAAA;AACA;AACA;EACA,qCAAA;AACA;AACA;EACA;;;GAGA;AACA;AACA;EACA,kDAAA;AACA;;AAEA,oCAAA;AACA;;EAEA,WAAA;EACA,eAAA;EACA,OAAA;EACA,QAAA;EACA,kBAAA;EACA,mCAAA;EACA,uCAAA;EACA,wDAAA;AACA;AACA;EACA,MAAA;EACA,uDAAA;EACA,wCAAA;AACA;AACA;EACA,SAAA;EACA,0DAAA;EACA,2CAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<script>\\nimport { CosmosApi } from '../../../packages/cosmosc2-tool-common/src/services/cosmos-api'\\n\\nexport default {\\n data: function () {\\n return {\\n api: null,\\n classification: {\\n text: '',\\n fontColor: 'white',\\n backgroundColor: 'red',\\n topHeight: 0,\\n bottomHeight: 0,\\n },\\n }\\n },\\n computed: {\\n classificationStyles: function () {\\n // JavaScript can't access CSS psudo-elements (::before and ::after).\\n // This string sets these JS values to CSS variables, accessible to\\n // the style sheet via the style attribute on #app\\n return [\\n `--classification-text:\\\"${this.classification.text}\\\";`,\\n `--classification-font-color:${this.classification.fontColor};`,\\n `--classification-background-color:${this.classification.backgroundColor};`,\\n `--classification-height-top:${this.classification.topHeight}px;`,\\n `--classification-height-bottom:${this.classification.bottomHeight}px;`,\\n ].join('')\\n },\\n },\\n created: function () {\\n this.api = new CosmosApi()\\n this.load()\\n },\\n methods: {\\n load: function () {\\n this.api.get_setting('classification_banner').then((response) => {\\n if (response) {\\n this.classification = JSON.parse(response)\\n }\\n })\\n },\\n },\\n}\\n</script>\\n\\n<style>\\n/* push things up and down to make room for the classification banners */\\n#app,\\n#cosmos-nav-drawer {\\n margin-top: var(--classification-height-top);\\n}\\n#cosmos-app-toolbar {\\n top: var(--classification-height-top);\\n}\\n#cosmos-nav-drawer .v-navigation-drawer__content {\\n height: calc(\\n 100% - var(--classification-height-top) -\\n var(--classification-height-bottom)\\n );\\n}\\n#footer {\\n margin-bottom: var(--classification-height-bottom);\\n}\\n\\n/* make the classification banners */\\n#app::before,\\n#app::after {\\n z-index: 99;\\n position: fixed;\\n left: 0;\\n right: 0;\\n text-align: center;\\n content: var(--classification-text);\\n color: var(--classification-font-color);\\n background-color: var(--classification-background-color);\\n}\\n#app::before {\\n top: 0;\\n font-size: calc(var(--classification-height-top) * 0.7);\\n height: var(--classification-height-top);\\n}\\n#app::after {\\n bottom: 0;\\n font-size: calc(var(--classification-height-bottom) * 0.7);\\n height: var(--classification-height-bottom);\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.v-subheader[data-v-43a3e4e8] {\\n height: 28px;\\n}\\n.v-badge[data-v-43a3e4e8] {\\n width: 100%;\\n}\\n.overlay[data-v-43a3e4e8] {\\n height: 100vh;\\n width: 100vw;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/Notifications.vue\"],\"names\":[],\"mappings\":\";AAmYA;EACA,YAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;EACA,aAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <div>\\n <v-overlay :value=\\\"showNotificationPane\\\" class=\\\"overlay\\\" />\\n <v-menu\\n v-model=\\\"showNotificationPane\\\"\\n transition=\\\"slide-y-transition\\\"\\n :close-on-content-click=\\\"false\\\"\\n :nudge-width=\\\"340\\\"\\n offset-y\\n :nudge-bottom=\\\"20\\\"\\n >\\n <!-- Bell icon -->\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <v-btn v-bind=\\\"attrs\\\" v-on=\\\"on\\\" icon>\\n <v-icon v-if=\\\"unreadCount === 0\\\" :size=\\\"size\\\">\\n mdi-bell-outline\\n </v-icon>\\n <v-badge\\n v-else\\n left\\n offset-x=\\\"24\\\"\\n offset-y=\\\"8\\\"\\n :color=\\\"badgeColor\\\"\\n bordered\\n :content=\\\"unreadCount\\\"\\n >\\n <v-icon :size=\\\"size\\\" :color=\\\"badgeColor\\\"> mdi-bell </v-icon>\\n </v-badge>\\n </v-btn>\\n </template>\\n\\n <!-- Notifications list -->\\n <v-card>\\n <v-card-title>\\n Notifications\\n <v-spacer />\\n <v-tooltip top open-delay=\\\"350\\\">\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <v-btn\\n icon\\n v-bind=\\\"attrs\\\"\\n v-on=\\\"on\\\"\\n @click=\\\"clearNotifications\\\"\\n class=\\\"ml-1\\\"\\n >\\n <v-icon> mdi-notification-clear-all </v-icon>\\n </v-btn>\\n </template>\\n <span>Clear all</span>\\n </v-tooltip>\\n <v-btn icon @click=\\\"toggleSettingsDialog\\\" class=\\\"ml-1\\\">\\n <v-icon> $astro-settings </v-icon>\\n </v-btn>\\n </v-card-title>\\n <v-card-text v-if=\\\"notifications.length === 0\\\">\\n No notifications\\n </v-card-text>\\n <v-list\\n v-else\\n two-line\\n width=\\\"388\\\"\\n max-height=\\\"80vh\\\"\\n class=\\\"overflow-y-auto\\\"\\n >\\n <template v-for=\\\"(notification, index) in notificationList\\\">\\n <template v-if=\\\"notification.header\\\">\\n <v-divider v-if=\\\"index !== 0\\\" :key=\\\"index\\\" class=\\\"mb-2\\\" />\\n <v-subheader :key=\\\"notification.header\\\">\\n {{ notification.header }}\\n </v-subheader>\\n </template>\\n\\n <v-list-item\\n v-else\\n :key=\\\"`notification-${index}`\\\"\\n @click=\\\"openDialog(notification)\\\"\\n class=\\\"pl-2\\\"\\n >\\n <v-badge left inline color=\\\"transparent\\\">\\n <v-list-item-content class=\\\"pt-0 pb-0\\\">\\n <v-list-item-title\\n :class=\\\"{ 'text--secondary': notification.read }\\\"\\n >\\n {{ notification.title }}\\n </v-list-item-title>\\n <v-list-item-subtitle>\\n {{ notification.body }}\\n </v-list-item-subtitle>\\n </v-list-item-content>\\n <v-list-item-action class=\\\"mt-0\\\">\\n <v-list-item-action-text>\\n {{ notification.time | shortDateTime }}\\n </v-list-item-action-text>\\n <v-spacer />\\n </v-list-item-action>\\n <template v-slot:badge>\\n <astro-status-indicator\\n :status=\\\"notification.severity.toLowerCase()\\\"\\n />\\n </template>\\n </v-badge>\\n </v-list-item>\\n </template>\\n </v-list>\\n </v-card>\\n </v-menu>\\n\\n <!-- Dialog for viewing full notification -->\\n <v-dialog v-model=\\\"notificationDialog\\\" width=\\\"600\\\">\\n <v-card>\\n <v-card-title>\\n {{ selectedNotification.title }}\\n <v-spacer />\\n <astro-status-indicator\\n :status=\\\"selectedNotification.severity || 'normal'\\\"\\n />\\n </v-card-title>\\n <v-card-subtitle>\\n {{ selectedNotification.time | shortDateTime }}\\n </v-card-subtitle>\\n <v-card-text>\\n {{ selectedNotification.body }}\\n </v-card-text>\\n <v-divider />\\n <v-card-actions>\\n <v-btn\\n color=\\\"primary\\\"\\n text\\n @click=\\\"navigate(selectedNotification.url)\\\"\\n >\\n Open\\n <v-icon right> mdi-open-in-new </v-icon>\\n </v-btn>\\n <v-btn color=\\\"primary\\\" text @click=\\\"notificationDialog = false\\\">\\n Dismiss\\n </v-btn>\\n </v-card-actions>\\n </v-card>\\n </v-dialog>\\n\\n <!-- Dialog for changing notification settings -->\\n <v-dialog v-model=\\\"settingsDialog\\\" width=\\\"600\\\">\\n <v-card>\\n <v-card-title> Notification settings </v-card-title>\\n <v-card-text>\\n <v-switch v-model=\\\"showToast\\\" label=\\\"Show toasts\\\" />\\n </v-card-text>\\n <v-divider />\\n <v-card-actions>\\n <v-btn color=\\\"primary\\\" text @click=\\\"toggleSettingsDialog\\\">\\n close\\n </v-btn>\\n </v-card-actions>\\n </v-card>\\n </v-dialog>\\n </div>\\n</template>\\n\\n<script>\\nimport { formatDistanceToNow } from 'date-fns'\\nimport { AstroStatusColors } from '../../../packages/cosmosc2-tool-common/src/components/icons'\\nimport {\\n highestSeverity,\\n orderBySeverity,\\n groupBySeverity,\\n} from '../util/AstroStatus'\\nimport Cable from '../../../packages/cosmosc2-tool-common/src/services/cable.js'\\n\\nconst NOTIFICATION_HISTORY_MAX_LENGTH = 100\\n\\nexport default {\\n props: {\\n size: {\\n type: [String, Number],\\n default: 26,\\n },\\n },\\n data: function () {\\n return {\\n AstroStatusColors,\\n cable: new Cable(),\\n subscription: null,\\n notifications: [],\\n showNotificationPane: false,\\n toastNotification: {},\\n notificationDialog: false,\\n selectedNotification: {},\\n settingsDialog: false,\\n showToast: true,\\n }\\n },\\n computed: {\\n badgeColor: function () {\\n if (!this.unreadCount) {\\n return AstroStatusColors['off']\\n }\\n const severities = this.unreadNotifications\\n .map((notification) => notification.severity)\\n .filter((val, index, self) => {\\n return self.indexOf(val) === index // Unique values\\n })\\n return AstroStatusColors[highestSeverity(severities)]\\n },\\n readNotifications: function () {\\n return this.notifications\\n .filter((notification) => notification.read)\\n .sort((a, b) => b.time - a.time)\\n },\\n unreadNotifications: function () {\\n return this.notifications\\n .filter((notification) => !notification.read)\\n .sort((a, b) => b.time - a.time)\\n },\\n unreadCount: function () {\\n return this.unreadNotifications.length\\n },\\n notificationList: function () {\\n const groups = groupBySeverity(this.unreadNotifications)\\n let result = orderBySeverity(Object.keys(groups), (k) => k).flatMap(\\n (severity) => {\\n const header = {\\n header: severity.charAt(0).toUpperCase() + severity.slice(1),\\n }\\n return [header, ...groups[severity]]\\n }\\n )\\n if (this.readNotifications.length) {\\n result = result.concat([{ header: 'Read' }, ...this.readNotifications])\\n }\\n return result\\n },\\n },\\n watch: {\\n showNotificationPane: function (val) {\\n if (!val) {\\n if (this.selectedNotification.title) {\\n this.notificationDialog = false\\n this.selectedNotification = {}\\n } else {\\n this.markAllAsRead()\\n }\\n }\\n },\\n showToast: function (val) {\\n localStorage.notoast = !val\\n },\\n },\\n created: function () {\\n this.showToast = localStorage.notoast === 'false'\\n this.subscribe()\\n },\\n destroyed: function () {\\n if (this.subscription) {\\n this.subscription.unsubscribe()\\n }\\n this.cable.disconnect()\\n },\\n methods: {\\n markAllAsRead: function () {\\n this.notifications.forEach((notification) => {\\n notification.read = true\\n if (\\n !localStorage.lastReadNotification ||\\n localStorage.lastReadNotification < notification.msg_id\\n ) {\\n localStorage.lastReadNotification = notification.msg_id\\n }\\n })\\n },\\n clearNotifications: function () {\\n this.markAllAsRead()\\n this.notifications = []\\n localStorage.notificationStreamOffset = localStorage.lastReadNotification\\n this.showNotificationPane = false\\n },\\n toggleNotificationPane: function () {\\n this.showNotificationPane = !this.showNotificationPane\\n },\\n toggleSettingsDialog: function () {\\n this.settingsDialog = !this.settingsDialog\\n },\\n openDialog: function (notification, clearToast = false) {\\n notification.read = true\\n if (\\n !localStorage.lastReadNotification ||\\n localStorage.lastReadNotification < notification.msg_id\\n ) {\\n localStorage.lastReadNotification = notification.msg_id\\n }\\n this.selectedNotification = notification\\n this.notificationDialog = true\\n },\\n navigate: function (url) {\\n window.open(url, '_blank')\\n },\\n subscribe: function () {\\n this.cable\\n .createSubscription(\\n 'NotificationsChannel',\\n localStorage.scope,\\n {\\n received: (data) => this.received(data),\\n },\\n {\\n start_offset:\\n localStorage.notificationStreamOffset ||\\n localStorage.lastReadNotification,\\n }\\n )\\n .then((subscription) => {\\n this.subscription = subscription\\n })\\n },\\n received: function (data) {\\n const parsed = JSON.parse(data)\\n if (parsed.length > NOTIFICATION_HISTORY_MAX_LENGTH) {\\n parsed.splice(0, parsed.length - NOTIFICATION_HISTORY_MAX_LENGTH)\\n }\\n let foundToast = false\\n parsed.forEach((notification) => {\\n notification.read =\\n notification.msg_id <= localStorage.lastReadNotification\\n notification.severity = notification.severity || 'normal'\\n if (\\n !notification.read && // Don't toast read notifications\\n (['critical', 'serious'].includes(notification.severity) || // Toast for these statuses\\n notification.severity === 'critical') // Ok to override a toast only if this one is 'critical'\\n ) {\\n foundToast = true\\n this.toastNotification = notification\\n }\\n })\\n\\n if (this.showToast && foundToast) {\\n this.$notify[this.toastNotification.severity]({\\n ...this.toastNotification,\\n type: 'notification',\\n duration:\\n this.toastNotification.severity === 'critical' ? null : 5000,\\n saveToHistory: false,\\n })\\n }\\n\\n if (\\n this.notifications.length + parsed.length >\\n NOTIFICATION_HISTORY_MAX_LENGTH\\n ) {\\n this.notifications.splice(\\n 0,\\n this.notifications.length +\\n parsed.length -\\n NOTIFICATION_HISTORY_MAX_LENGTH\\n )\\n }\\n this.notifications = this.notifications.concat(parsed)\\n },\\n },\\n filters: {\\n shortDateTime: function (nsec) {\\n if (!nsec) return ''\\n const date = new Date(nsec / 1_000_000)\\n return formatDistanceToNow(date, { addSuffix: true })\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.v-subheader {\\n height: 28px;\\n}\\n\\n.v-badge {\\n width: 100%;\\n}\\n\\n.overlay {\\n height: 100vh;\\n width: 100vw;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.overlay[data-v-53e47a0c] {\\n height: 100vh;\\n width: 100vw;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/UserMenu.vue\"],\"names\":[],\"mappings\":\";AAyFA;EACA,aAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <div>\\n <v-overlay :value=\\\"showUserMenu\\\" class=\\\"overlay\\\" />\\n <v-menu\\n v-model=\\\"showUserMenu\\\"\\n transition=\\\"slide-y-transition\\\"\\n offset-y\\n :close-on-content-click=\\\"false\\\"\\n :nudge-width=\\\"120\\\"\\n :nudge-bottom=\\\"20\\\"\\n >\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <v-btn v-bind=\\\"attrs\\\" v-on=\\\"on\\\" icon>\\n <v-icon :size=\\\"size\\\"> mdi-account </v-icon>\\n </v-btn>\\n </template>\\n\\n <v-card>\\n <v-card-text class=\\\"text-center\\\">\\n <div v-if=\\\"authenticated\\\">\\n <v-btn block @click=\\\"logout\\\" color=\\\"primary\\\"> Logout </v-btn>\\n </div>\\n <div v-else>\\n <v-btn block @click=\\\"login\\\" color=\\\"primary\\\"> Login </v-btn>\\n </div>\\n <div>\\n <v-switch label=\\\"Colorblind mode\\\" v-model=\\\"colorblindMode\\\" />\\n </div>\\n </v-card-text>\\n </v-card>\\n </v-menu>\\n </div>\\n</template>\\n\\n<script>\\nexport default {\\n props: {\\n size: {\\n type: [String, Number],\\n default: 26,\\n },\\n },\\n data: function () {\\n return {\\n showUserMenu: false,\\n authenticated: !!localStorage.cosmosToken,\\n }\\n },\\n computed: {\\n colorblindMode: {\\n get: function () {\\n return localStorage.colorblindMode === 'true'\\n },\\n set: function (val) {\\n localStorage.colorblindMode = val\\n },\\n },\\n },\\n methods: {\\n logout: function () {\\n CosmosAuth.logout()\\n },\\n login: function () {\\n CosmosAuth.login(location.href)\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.overlay {\\n height: 100vh;\\n width: 100vw;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.astro-icon[data-v-1fcc6ea4] {\\n fill: currentColor;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue\"],\"names\":[],\"mappings\":\";AA6CA;EACA,kBAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <rux-icon :icon=\\\"icon\\\" class=\\\"astro-icon\\\" />\\n</template>\\n\\n<script>\\nimport RuxIcon from './RuxIcon.vue'\\nimport { AstroIconLibrary } from '.'\\n\\n// This component is a wrapper around the Astro UXDS RuxIcon to make it work with Vuetify\\nexport default {\\n components: {\\n RuxIcon,\\n },\\n props: {\\n icon: {\\n type: String,\\n required: true,\\n validator: (val) => {\\n return AstroIconLibrary.includes(val)\\n },\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.astro-icon {\\n fill: currentColor;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","const resolveDirectory = require(\"../public-path\").resolveDirectory;\n\nexports.autoPublicPath = function autoPublicPath(rootDirLevel) {\n if (!rootDirLevel) {\n rootDirLevel = 1;\n }\n\n if (typeof __webpack_public_path__ !== \"undefined\") {\n if (typeof __system_context__ === \"undefined\") {\n throw Error(\n \"systemjs-webpack-interop requires webpack@>=5.0.0-beta.15 and output.libraryTarget set to 'system'\"\n );\n }\n\n if (!__system_context__.meta || !__system_context__.meta.url) {\n console.error(\"__system_context__\", __system_context__);\n throw Error(\n \"systemjs-webpack-interop was provided an unknown SystemJS context. Expected context.meta.url, but none was provided\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(\n __system_context__.meta.url,\n rootDirLevel\n );\n }\n};\n","exports.setPublicPath = function setPublicPath(\n systemjsModuleName,\n rootDirectoryLevel\n) {\n if (!rootDirectoryLevel) {\n rootDirectoryLevel = 1;\n }\n if (\n typeof systemjsModuleName !== \"string\" ||\n systemjsModuleName.trim().length === 0\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'\"\n );\n }\n\n if (\n typeof rootDirectoryLevel !== \"number\" ||\n rootDirectoryLevel <= 0 ||\n isNaN(rootDirectoryLevel) ||\n !isInteger(rootDirectoryLevel)\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'\"\n );\n }\n\n var moduleUrl;\n try {\n moduleUrl = window.System.resolve(systemjsModuleName);\n if (!moduleUrl) {\n throw Error();\n }\n } catch (err) {\n throw Error(\n \"systemjs-webpack-interop: There is no such module '\" +\n systemjsModuleName +\n \"' in the SystemJS registry. Did you misspell the name of your module?\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(moduleUrl, rootDirectoryLevel);\n};\n\nfunction resolveDirectory(urlString, rootDirectoryLevel) {\n // Our friend IE11 doesn't support new URL()\n // https://github.com/single-spa/single-spa/issues/612\n // https://gist.github.com/jlong/2428561\n\n var a = document.createElement(\"a\");\n a.href = urlString;\n\n var pathname = a.pathname[0] === \"/\" ? a.pathname : \"/\" + a.pathname;\n var numDirsProcessed = 0,\n index = pathname.length;\n while (numDirsProcessed !== rootDirectoryLevel && index >= 0) {\n var char = pathname[--index];\n if (char === \"/\") {\n numDirsProcessed++;\n }\n }\n\n if (numDirsProcessed !== rootDirectoryLevel) {\n throw Error(\n \"systemjs-webpack-interop: rootDirectoryLevel (\" +\n rootDirectoryLevel +\n \") is greater than the number of directories (\" +\n numDirsProcessed +\n \") in the URL path \" +\n urlString\n );\n }\n\n var finalPath = pathname.slice(0, index + 1);\n\n return a.protocol + \"//\" + a.host + finalPath;\n}\n\nexports.resolveDirectory = resolveDirectory;\n\n// borrowed from https://github.com/parshap/js-is-integer/blob/master/index.js\nvar isInteger =\n Number.isInteger ||\n function isInteger(val) {\n return typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n };\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/cjs.js!../../../../../../cosmosc2-tool-base/node_modules/sass-loader/dist/cjs.js!./layout.scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../cosmosc2-tool-base/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"21230954\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/cjs.js!../../../../../../cosmosc2-tool-base/node_modules/sass-loader/dist/cjs.js!./layout.scss\", function() {\n var newContent = require(\"!!../../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/cjs.js!../../../../../../cosmosc2-tool-base/node_modules/sass-loader/dist/cjs.js!./layout.scss\");\n if(newContent.__esModule) newContent = newContent.default;\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","(function(global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([ \"exports\" ], factory) : factory(global.ActionCable = {});\n})(this, function(exports) {\n \"use strict\";\n var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n };\n var logger = {\n log: function log() {\n if (this.enabled) {\n var _adapters$logger;\n for (var _len = arguments.length, messages = Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n messages.push(Date.now());\n (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [ \"[ActionCable]\" ].concat(messages));\n }\n }\n };\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var classCallCheck = function(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function() {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var now = function now() {\n return new Date().getTime();\n };\n var secondsSince = function secondsSince(time) {\n return (now() - time) / 1e3;\n };\n var clamp = function clamp(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n var ConnectionMonitor = function() {\n function ConnectionMonitor(connection) {\n classCallCheck(this, ConnectionMonitor);\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n ConnectionMonitor.prototype.start = function start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor started. pollInterval = \" + this.getPollInterval() + \" ms\");\n }\n };\n ConnectionMonitor.prototype.stop = function stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n };\n ConnectionMonitor.prototype.isRunning = function isRunning() {\n return this.startedAt && !this.stoppedAt;\n };\n ConnectionMonitor.prototype.recordPing = function recordPing() {\n this.pingedAt = now();\n };\n ConnectionMonitor.prototype.recordConnect = function recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n };\n ConnectionMonitor.prototype.recordDisconnect = function recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n };\n ConnectionMonitor.prototype.startPolling = function startPolling() {\n this.stopPolling();\n this.poll();\n };\n ConnectionMonitor.prototype.stopPolling = function stopPolling() {\n clearTimeout(this.pollTimeout);\n };\n ConnectionMonitor.prototype.poll = function poll() {\n var _this = this;\n this.pollTimeout = setTimeout(function() {\n _this.reconnectIfStale();\n _this.poll();\n }, this.getPollInterval());\n };\n ConnectionMonitor.prototype.getPollInterval = function getPollInterval() {\n var _constructor$pollInte = this.constructor.pollInterval, min = _constructor$pollInte.min, max = _constructor$pollInte.max, multiplier = _constructor$pollInte.multiplier;\n var interval = multiplier * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1e3);\n };\n ConnectionMonitor.prototype.reconnectIfStale = function reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + this.getPollInterval() + \" ms, time disconnected = \" + secondsSince(this.disconnectedAt) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n };\n ConnectionMonitor.prototype.connectionIsStale = function connectionIsStale() {\n return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.disconnectedRecently = function disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.visibilityDidChange = function visibilityDidChange() {\n var _this2 = this;\n if (document.visibilityState === \"visible\") {\n setTimeout(function() {\n if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = \" + document.visibilityState);\n _this2.connection.reopen();\n }\n }, 200);\n }\n };\n return ConnectionMonitor;\n }();\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30,\n multiplier: 5\n };\n ConnectionMonitor.staleThreshold = 6;\n var INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n };\n var message_types = INTERNAL.message_types, protocols = INTERNAL.protocols;\n var supportedProtocols = protocols.slice(0, protocols.length - 1);\n var indexOf = [].indexOf;\n var Connection = function() {\n function Connection(consumer) {\n classCallCheck(this, Connection);\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n Connection.prototype.send = function send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n Connection.prototype.open = function open() {\n if (this.isActive()) {\n logger.log(\"Attempted to open WebSocket, but existing socket is \" + this.getState());\n return false;\n } else {\n logger.log(\"Opening WebSocket, current state is \" + this.getState() + \", subprotocols: \" + protocols);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n Connection.prototype.close = function close() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n }, allowReconnect = _ref.allowReconnect;\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isActive()) {\n return this.webSocket.close();\n }\n };\n Connection.prototype.reopen = function reopen() {\n logger.log(\"Reopening WebSocket, current state is \" + this.getState());\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n Connection.prototype.getProtocol = function getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n };\n Connection.prototype.isOpen = function isOpen() {\n return this.isState(\"open\");\n };\n Connection.prototype.isActive = function isActive() {\n return this.isState(\"open\", \"connecting\");\n };\n Connection.prototype.isProtocolSupported = function isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n };\n Connection.prototype.isState = function isState() {\n for (var _len = arguments.length, states = Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return indexOf.call(states, this.getState()) >= 0;\n };\n Connection.prototype.getState = function getState() {\n if (this.webSocket) {\n for (var state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n };\n Connection.prototype.installEventHandlers = function installEventHandlers() {\n for (var eventName in this.events) {\n var handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n Connection.prototype.uninstallEventHandlers = function uninstallEventHandlers() {\n for (var eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function() {};\n }\n };\n return Connection;\n }();\n Connection.reopenDelay = 500;\n Connection.prototype.events = {\n message: function message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n var _JSON$parse = JSON.parse(event.data), identifier = _JSON$parse.identifier, message = _JSON$parse.message, reason = _JSON$parse.reason, reconnect = _JSON$parse.reconnect, type = _JSON$parse.type;\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(\"Disconnecting. Reason: \" + reason);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function open() {\n logger.log(\"WebSocket onopen event, using '\" + this.getProtocol() + \"' subprotocol\");\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function error() {\n logger.log(\"WebSocket onerror event\");\n }\n };\n var extend = function extend(object, properties) {\n if (properties != null) {\n for (var key in properties) {\n var value = properties[key];\n object[key] = value;\n }\n }\n return object;\n };\n var Subscription = function() {\n function Subscription(consumer) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var mixin = arguments[2];\n classCallCheck(this, Subscription);\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n Subscription.prototype.perform = function perform(action) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n data.action = action;\n return this.send(data);\n };\n Subscription.prototype.send = function send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n Subscription.prototype.unsubscribe = function unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n };\n return Subscription;\n }();\n var SubscriptionGuarantor = function() {\n function SubscriptionGuarantor(subscriptions) {\n classCallCheck(this, SubscriptionGuarantor);\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n SubscriptionGuarantor.prototype.guarantee = function guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(\"SubscriptionGuarantor guaranteeing \" + subscription.identifier);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(\"SubscriptionGuarantor already guaranteeing \" + subscription.identifier);\n }\n this.startGuaranteeing();\n };\n SubscriptionGuarantor.prototype.forget = function forget(subscription) {\n logger.log(\"SubscriptionGuarantor forgetting \" + subscription.identifier);\n this.pendingSubscriptions = this.pendingSubscriptions.filter(function(s) {\n return s !== subscription;\n });\n };\n SubscriptionGuarantor.prototype.startGuaranteeing = function startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n };\n SubscriptionGuarantor.prototype.stopGuaranteeing = function stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n };\n SubscriptionGuarantor.prototype.retrySubscribing = function retrySubscribing() {\n var _this = this;\n this.retryTimeout = setTimeout(function() {\n if (_this.subscriptions && typeof _this.subscriptions.subscribe === \"function\") {\n _this.pendingSubscriptions.map(function(subscription) {\n logger.log(\"SubscriptionGuarantor resubscribing \" + subscription.identifier);\n _this.subscriptions.subscribe(subscription);\n });\n }\n }, 500);\n };\n return SubscriptionGuarantor;\n }();\n var Subscriptions = function() {\n function Subscriptions(consumer) {\n classCallCheck(this, Subscriptions);\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n Subscriptions.prototype.create = function create(channelName, mixin) {\n var channel = channelName;\n var params = (typeof channel === \"undefined\" ? \"undefined\" : _typeof(channel)) === \"object\" ? channel : {\n channel: channel\n };\n var subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n Subscriptions.prototype.add = function add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n };\n Subscriptions.prototype.remove = function remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n };\n Subscriptions.prototype.reject = function reject(identifier) {\n var _this = this;\n return this.findAll(identifier).map(function(subscription) {\n _this.forget(subscription);\n _this.notify(subscription, \"rejected\");\n return subscription;\n });\n };\n Subscriptions.prototype.forget = function forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter(function(s) {\n return s !== subscription;\n });\n return subscription;\n };\n Subscriptions.prototype.findAll = function findAll(identifier) {\n return this.subscriptions.filter(function(s) {\n return s.identifier === identifier;\n });\n };\n Subscriptions.prototype.reload = function reload() {\n var _this2 = this;\n return this.subscriptions.map(function(subscription) {\n return _this2.subscribe(subscription);\n });\n };\n Subscriptions.prototype.notifyAll = function notifyAll(callbackName) {\n var _this3 = this;\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return this.subscriptions.map(function(subscription) {\n return _this3.notify.apply(_this3, [ subscription, callbackName ].concat(args));\n });\n };\n Subscriptions.prototype.notify = function notify(subscription, callbackName) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n var subscriptions = void 0;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map(function(subscription) {\n return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n });\n };\n Subscriptions.prototype.subscribe = function subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n };\n Subscriptions.prototype.confirmSubscription = function confirmSubscription(identifier) {\n var _this4 = this;\n logger.log(\"Subscription confirmed \" + identifier);\n this.findAll(identifier).map(function(subscription) {\n return _this4.guarantor.forget(subscription);\n });\n };\n Subscriptions.prototype.sendCommand = function sendCommand(subscription, command) {\n var identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n return Subscriptions;\n }();\n var Consumer = function() {\n function Consumer(url) {\n classCallCheck(this, Consumer);\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n Consumer.prototype.send = function send(data) {\n return this.connection.send(data);\n };\n Consumer.prototype.connect = function connect() {\n return this.connection.open();\n };\n Consumer.prototype.disconnect = function disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n Consumer.prototype.ensureActiveConnection = function ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n createClass(Consumer, [ {\n key: \"url\",\n get: function get$$1() {\n return createWebSocketURL(this._url);\n }\n } ]);\n return Consumer;\n }();\n function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n var a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n }\n function createConsumer() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n return new Consumer(url);\n }\n function getConfig(name) {\n var element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n exports.Connection = Connection;\n exports.ConnectionMonitor = ConnectionMonitor;\n exports.Consumer = Consumer;\n exports.INTERNAL = INTERNAL;\n exports.Subscription = Subscription;\n exports.Subscriptions = Subscriptions;\n exports.SubscriptionGuarantor = SubscriptionGuarantor;\n exports.adapters = adapters;\n exports.createWebSocketURL = createWebSocketURL;\n exports.logger = logger;\n exports.createConsumer = createConsumer;\n exports.getConfig = getConfig;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.22.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<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 * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8645__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4091__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4688__;","module.exports = __WEBPACK_EXTERNAL_MODULE__9731__;","module.exports = __WEBPACK_EXTERNAL_MODULE__9191__;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","// 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\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.y = __system_context__;","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".cosmosc2-tool-base.js\";\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(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};","__webpack_require__.p = \"\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktool_base\"] = self[\"webpackChunktool_base\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","const autoPublicPath = require(\"./auto-public-path\").autoPublicPath;\n\nautoPublicPath(1);\n","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-app\",\n { style: _vm.classificationStyles },\n [\n _c(\"app-nav\"),\n _vm._v(\" \"),\n _c(\n \"v-main\",\n [\n _c(\"v-container\", { attrs: { fluid: \"\" } }, [\n _c(\"div\", { attrs: { id: \"cosmos-tool\" } }),\n _vm._v(\" \"),\n _c(\"div\", [_c(\"router-view\")], 1),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"app-footer\", { attrs: { app: \"\" } }),\n _vm._v(\" \"),\n _c(\"time-check\"),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-footer\",\n {\n attrs: {\n id: \"footer\",\n app: \"\",\n color: \"tertiary darken-3\",\n height: \"33\",\n },\n },\n [\n _c(\"img\", {\n attrs: { src: _vm.logo, alt: \"COSMOS\", width: \"20\", height: \"20\" },\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n { staticClass: \"footer-text\", staticStyle: { \"margin-left\": \"5px\" } },\n [_vm._v(\"\\n COSMOS \" + _vm._s(_vm.cosmosVersion) + \" © 2022\\n \")]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"a\",\n {\n staticClass: \"white--text text-decoration-underline\",\n attrs: { href: _vm.sourceUrl },\n },\n [_vm._v(\"\\n Source\\n \")]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"justify-right\" }, [_c(\"clock-footer\")], 1),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"span\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"font-weight-bold\",\n staticStyle: { cursor: \"context-menu\" },\n on: { contextmenu: _vm.openMenu },\n },\n \"span\",\n _vm.attrs,\n false\n ),\n _vm.on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"date\")(\n _vm.displayLocal ? _vm.localDate : _vm.utcDate,\n _vm.formatString\n )\n ) +\n \"\\n (\" +\n _vm._s(_vm.displayLocal ? \"local\" : \"UTC\") +\n \")\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n \"position-x\": _vm.menuX,\n \"position-y\": _vm.menuY,\n absolute: \"\",\n \"offset-y\": \"\",\n },\n model: {\n value: _vm.showMenu,\n callback: function ($$v) {\n _vm.showMenu = $$v\n },\n expression: \"showMenu\",\n },\n },\n [\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.toggleDisplayLocal },\n },\n [\n _vm._v(\n \"\\n Display \" +\n _vm._s(_vm.displayLocal ? \"UTC\" : \"local time\") +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.toggleDisplay24h },\n },\n [\n _vm._v(\n \"\\n Display \" +\n _vm._s(_vm.display24h ? 12 : 24) +\n \" hour clock\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _vm.dateMode !== \"monthFirst\"\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.setMonthFirst },\n },\n [_vm._v(\"\\n Display mm/dd/yyyy\\n \")]\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.dateMode !== \"dayFirst\"\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.setDayFirst },\n },\n [_vm._v(\"\\n Display dd/mm/yyyy\\n \")]\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.dateMode !== \"number\"\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.setNumber },\n },\n [_vm._v(\"\\n Display day of year\\n \")]\n ),\n ],\n 1\n )\n : _vm._e(),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <span\n v-bind=\"attrs\"\n v-on=\"on\"\n style=\"cursor: context-menu\"\n class=\"font-weight-bold\"\n @contextmenu=\"openMenu\"\n >\n {{ (displayLocal ? localDate : utcDate) | date(formatString) }}\n ({{ displayLocal ? 'local' : 'UTC' }})\n </span>\n <v-menu\n v-model=\"showMenu\"\n :position-x=\"menuX\"\n :position-y=\"menuY\"\n absolute\n offset-y\n >\n <v-list>\n <v-list-item>\n <v-list-item-title\n style=\"cursor: pointer\"\n @click=\"toggleDisplayLocal\"\n >\n Display {{ displayLocal ? 'UTC' : 'local time' }}\n </v-list-item-title>\n </v-list-item>\n <v-divider />\n <v-list-item>\n <v-list-item-title style=\"cursor: pointer\" @click=\"toggleDisplay24h\">\n Display {{ display24h ? 12 : 24 }} hour clock\n </v-list-item-title>\n </v-list-item>\n <v-divider />\n <v-list-item v-if=\"dateMode !== 'monthFirst'\">\n <v-list-item-title style=\"cursor: pointer\" @click=\"setMonthFirst\">\n Display mm/dd/yyyy\n </v-list-item-title>\n </v-list-item>\n <v-list-item v-if=\"dateMode !== 'dayFirst'\">\n <v-list-item-title style=\"cursor: pointer\" @click=\"setDayFirst\">\n Display dd/mm/yyyy\n </v-list-item-title>\n </v-list-item>\n <v-list-item v-if=\"dateMode !== 'number'\">\n <v-list-item-title style=\"cursor: pointer\" @click=\"setNumber\">\n Display day of year\n </v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n </div>\n</template>\n\n<script>\nimport { format } from 'date-fns'\n\nexport default {\n data: function () {\n return {\n localDate: new Date(),\n displayLocal: localStorage.clock_zone === 'local',\n display24h: !localStorage.clock_12h,\n dateMode: localStorage.clock_dateMode || 'monthFirst',\n intervalCount: 0,\n showMenu: false,\n menuX: 0,\n menuY: 0,\n }\n },\n computed: {\n utcDate: function () {\n return new Date(\n this.localDate.getTime() + this.localDate.getTimezoneOffset() * 60000\n )\n },\n formatString: function () {\n let dateFormat\n switch (this.dateMode) {\n case 'monthFirst':\n dateFormat = 'LL/dd/yyy'\n break\n case 'dayFirst':\n dateFormat = 'dd/LL/yyy'\n break\n case 'number':\n dateFormat = 'D'\n break\n }\n\n let timeFormat\n if (this.display24h) {\n timeFormat = 'HH:mm:ss'\n } else {\n timeFormat = 'hh:mm:ss a'\n }\n\n return `${dateFormat} ${timeFormat}`\n },\n },\n watch: {\n displayLocal: function (val) {\n localStorage.clock_zone = val ? 'local' : 'utc'\n },\n display24h: function (val) {\n // store opposite because it makes default value (true) easier\n if (val) {\n delete localStorage.clock_12h\n } else {\n localStorage.clock_12h = true\n }\n },\n dateMode: function (val) {\n if (val.match(/^monthFirst$|^dayFirst$|^number$/)) {\n localStorage.clock_dateMode = val\n }\n },\n },\n created: function () {\n setInterval(\n () => {\n this.intervalCount++\n this.localDate = new Date()\n },\n this.intervalCount < 10 ? 100 : 1000 // get the seconds to about 100ms accuracy\n )\n },\n methods: {\n openMenu: function (event) {\n event.preventDefault()\n this.showMenu = false\n this.menuX = event.clientX\n this.menuY = event.clientY\n this.$nextTick(() => {\n this.showMenu = true\n })\n },\n toggleDisplayLocal: function () {\n this.displayLocal = !this.displayLocal\n },\n toggleDisplay24h: function () {\n this.display24h = !this.display24h\n },\n setMonthFirst: function () {\n this.dateMode = 'monthFirst'\n },\n setDayFirst: function () {\n this.dateMode = 'dayFirst'\n },\n setNumber: function () {\n this.dateMode = 'number'\n },\n },\n filters: {\n date: function (val, formatString) {\n return format(val, formatString, { useAdditionalDayOfYearTokens: true })\n },\n },\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClockFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClockFooter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClockFooter.vue?vue&type=template&id=67422cc9&\"\nimport script from \"./ClockFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./ClockFooter.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('67422cc9')) {\n api.createRecord('67422cc9', component.options)\n } else {\n api.reload('67422cc9', component.options)\n }\n module.hot.accept(\"./ClockFooter.vue?vue&type=template&id=67422cc9&\", function () {\n api.rerender('67422cc9', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/ClockFooter.vue\"\nexport default component.exports","export default function _readOnlyError(name) {\n throw new TypeError(\"\\\"\" + name + \"\\\" is read-only\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport axios from './axios.js'\n\nexport class CosmosApi {\n id = 1\n\n constructor() {}\n\n // This is hacky Json-rpc for now. Should probably use a jsonrpc library.\n async exec(method, params, kwparams = {}) {\n try {\n await CosmosAuth.updateToken(CosmosAuth.defaultMinValidity)\n } catch (error) {\n CosmosAuth.login()\n }\n this.id = this.id + 1\n try {\n kwparams['scope'] = localStorage.scope\n const response = await axios.post(\n '/cosmos-api/api',\n {\n jsonrpc: '2.0',\n method: method,\n params: params,\n id: this.id,\n keyword_params: kwparams,\n },\n {\n headers: {\n Authorization: localStorage.cosmosToken,\n 'Content-Type': 'application/json-rpc',\n },\n }\n )\n // var data = response.data\n // if (data.error) {\n // var err = new Error()\n // err.name = data.error.data.class\n // err.message = data.error.data.message\n // console.log(data.error.data.backtrace.join('\\n'))\n // throw err\n // }\n return response.data.result\n } catch (error) {\n var err = new Error()\n if (error.response) {\n // The request was made and the server responded with a\n // status code that falls out of the range of 2xx\n err.name = error.response.data.error.data.class\n err.message = error.response.data.error.data.message\n } else if (error.request) {\n // The request was made but no response was received, `error.request`\n // is an instance of XMLHttpRequest in the browser and an instance\n // of http.ClientRequest in Node.js\n err.name = 'Request error'\n err.message = 'Request error, no response received'\n } else {\n // Something happened in setting up the request and triggered an Error\n err.name = 'Unknown error'\n }\n //console.log(error)\n throw err\n }\n }\n\n decode_cosmos_type(val) {\n if (val !== null && typeof val === 'object') {\n if (val.json_class == 'Float' && val.raw) {\n if (val.raw == 'NaN') {\n return NaN\n } else if (val.raw == 'Infinity') {\n return Infinity\n } else if (val.raw == '-Infinity') {\n return -Infinity\n }\n }\n }\n return null\n }\n\n encode_cosmos_type(val) {\n if (Number.isNaN(val)) {\n return { json_class: 'Float', raw: 'NaN' }\n } else if (val == Number.POSITIVE_INFINITY) {\n return { json_class: 'Float', raw: 'Infinity' }\n } else if (val == Number.NEGATIVE_INFINITY) {\n return { json_class: 'Float', raw: '-Infinity' }\n }\n return null\n }\n\n // ***********************************************\n // The following APIs are used by the CmdTlmServer\n // ***********************************************\n get_all_interface_info() {\n return this.exec('get_all_interface_info', [])\n }\n\n connect_interface(interface_name) {\n return this.exec('connect_interface', [interface_name])\n }\n\n disconnect_interface(interface_name) {\n return this.exec('disconnect_interface', [interface_name])\n }\n\n get_all_router_info() {\n return this.exec('get_all_router_info', [])\n }\n\n connect_router(router_name) {\n return this.exec('connect_router', [router_name])\n }\n\n disconnect_router(router_name) {\n return this.exec('disconnect_router', [router_name])\n }\n\n get_all_target_info() {\n return this.exec('get_all_target_info', [])\n }\n\n get_all_cmd_info() {\n return this.exec('get_all_cmd_info', [])\n }\n\n get_all_tlm_info() {\n return this.exec('get_all_tlm_info', [])\n }\n\n get_item(target, packet, item) {\n return this.exec('get_item', [target, packet, item])\n }\n\n get_parameter(target, packet, item) {\n return this.exec('get_parameter', [target, packet, item])\n }\n\n get_all_packet_logger_info() {\n return this.exec('get_all_packet_logger_info', [])\n }\n\n start_logging() {\n return this.exec('start_logging', [])\n }\n\n stop_logging() {\n return this.exec('stop_logging', [])\n }\n\n start_cmd_log(log_writer_name) {\n return this.exec('start_cmd_log', [log_writer_name])\n }\n\n start_tlm_log(log_writer_name) {\n return this.exec('start_tlm_log', [log_writer_name])\n }\n\n stop_cmd_log(log_writer_name) {\n return this.exec('stop_cmd_log', [log_writer_name])\n }\n\n stop_tlm_log(log_writer_name) {\n return this.exec('stop_tlm_log', [log_writer_name])\n }\n\n get_server_status() {\n return this.exec('get_server_status', [])\n }\n\n get_limits_sets() {\n return this.exec('get_limits_sets', [])\n }\n\n get_limits_set() {\n return this.exec('get_limits_set', [])\n }\n\n set_limits_set(limits_set) {\n return this.exec('set_limits_set', [limits_set])\n }\n\n get_background_tasks() {\n return this.exec('get_background_tasks', [])\n }\n\n start_background_task(name) {\n return this.exec('start_background_task', [name])\n }\n\n stop_background_task(name) {\n return this.exec('stop_background_task', [name])\n }\n\n // ***********************************************\n // End CmdTlmServer APIs\n // ***********************************************\n\n get_oldest_logfile() {\n return this.exec('get_oldest_logfile', [])\n }\n\n get_target(target_name) {\n return this.exec('get_target', [target_name])\n }\n\n get_target_list() {\n return this.exec('get_target_list', [])\n }\n\n get_telemetry(target_name, packet_name) {\n return this.exec('get_telemetry', [target_name, packet_name])\n }\n\n get_all_telemetry(target_name) {\n return this.exec('get_all_telemetry', [target_name])\n }\n\n get_all_telemetry_list(target_name) {\n return this.exec('get_all_telemetry_list', [target_name])\n }\n\n // Called by PacketViewerComponent\n async get_tlm_packet(target_name, packet_name, value_type) {\n const data = await this.exec('get_tlm_packet', [target_name, packet_name], {\n type: value_type,\n })\n // Make sure data isn't null or undefined. Note this is the only valid use of == or !=\n if (data != null) {\n var len = data.length\n var converted = null\n for (var i = 0; i < len; i++) {\n converted = this.decode_cosmos_type(data[i][1])\n if (converted !== null) {\n data[i][1] = converted\n }\n }\n }\n return data\n }\n\n // Called by PacketViewerComponent\n get_packet_derived_items(target_name, packet_name) {\n return this.exec('get_packet_derived_items', [target_name, packet_name])\n }\n\n // Called by CmdTlmServer Tlm Packets tab\n get_tlm_buffer(target_name, packet_name) {\n return this.exec('get_tlm_buffer', [target_name, packet_name])\n }\n\n // Called by CosmosScreenComponent\n async get_tlm_values(items) {\n const data = await this.exec('get_tlm_values', [items])\n var len = data[0].length\n var converted = null\n for (var i = 0; i < len; i++) {\n converted = this.decode_cosmos_type(data[0][i])\n if (converted !== null) {\n data[0][i] = converted\n }\n }\n return data\n }\n\n // Called by LimitsbarWidget\n get_limits(target_name, packet_name, item_name) {\n return this.exec('get_limits', [target_name, packet_name, item_name])\n }\n\n // Called by LimitsMonitorComponent\n async tlm(target_name, packet_name, item_name) {\n const data = await this.exec('tlm', [target_name, packet_name, item_name])\n var converted = this.decode_cosmos_type(data)\n if (converted !== null) {\n data = converted\n }\n return data\n }\n\n get_all_commands(target_name) {\n return this.exec('get_all_commands', [target_name])\n }\n\n get_all_commands_list(target_name) {\n return this.exec('get_all_commands_list', [target_name])\n }\n\n get_command(target_name, command_name) {\n return this.exec('get_command', [target_name, command_name])\n }\n\n get_cmd_value(\n target_name,\n packet_name,\n parameter_name,\n value_type = 'CONVERTED'\n ) {\n return this.exec('get_cmd_value', [\n target_name,\n packet_name,\n parameter_name,\n value_type,\n ])\n }\n\n // Called by CmdTlmServer Cmd Packets tab\n get_cmd_buffer(target_name, packet_name) {\n return this.exec('get_cmd_buffer', [target_name, packet_name])\n }\n\n // Implementation of functionality shared by cmd methods with param_lists.\n _cmd(method, target_name, command_name, param_list) {\n var converted = null\n for (var key in param_list) {\n if (Object.prototype.hasOwnProperty.call(param_list, key)) {\n converted = this.encode_cosmos_type(param_list[key])\n if (converted !== null) {\n param_list[key] = converted\n }\n }\n }\n return this.exec(method, [target_name, command_name, param_list])\n }\n\n // Called by CmdSenderComponent\n get_cmd_hazardous(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('get_cmd_hazardous', target_name)\n } else {\n return this._cmd(\n 'get_cmd_hazardous',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd', target_name)\n } else {\n return this._cmd('cmd', target_name, command_name, param_list)\n }\n }\n\n // Called by CmdSenderComponent\n cmd_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_range_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw', target_name)\n } else {\n return this._cmd('cmd_raw', target_name, command_name, param_list)\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_range_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_hazardous_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_checks', target_name)\n } else {\n return this._cmd('cmd_no_checks', target_name, command_name, param_list)\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_hazardous_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_checks', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_checks',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n get_interface_names() {\n return this.exec('get_interface_names', [])\n }\n\n // Called by CmdSenderComponent\n send_raw(interface_name, data) {\n return this.exec('send_raw', [interface_name, data])\n }\n\n list_configs(tool) {\n return this.exec('list_configs', [tool])\n }\n\n load_config(tool, name) {\n return this.exec('load_config', [tool, name])\n }\n\n save_config(tool, name, data) {\n return this.exec('save_config', [tool, name, data])\n }\n\n delete_config(tool, name) {\n return this.exec('delete_config', [tool, name])\n }\n\n get_out_of_limits() {\n return this.exec('get_out_of_limits', [])\n }\n\n get_overall_limits_state(ignored) {\n return this.exec('get_overall_limits_state', [ignored])\n }\n\n list_settings() {\n return this.exec('list_settings', [])\n }\n\n get_all_settings() {\n return this.exec('get_all_settings', [])\n }\n\n get_setting(name) {\n return this.exec('get_setting', [name])\n }\n\n get_settings(array) {\n return this.exec('get_settings', array)\n }\n\n save_setting(name, data) {\n return this.exec('save_setting', [name, data])\n }\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-footer id=\"footer\" app color=\"tertiary darken-3\" height=\"33\">\n <img :src=\"logo\" alt=\"COSMOS\" width=\"20\" height=\"20\" />\n <span class=\"footer-text\" style=\"margin-left: 5px\">\n COSMOS {{ cosmosVersion }} &copy; 2022\n </span>\n <v-spacer />\n <a :href=\"sourceUrl\" class=\"white--text text-decoration-underline\">\n Source\n </a>\n <v-spacer />\n <div class=\"justify-right\"><clock-footer /></div>\n </v-footer>\n</template>\n\n<script>\nimport ClockFooter from './components/ClockFooter.vue'\nimport { CosmosApi } from '../../packages/cosmosc2-tool-common/src/services/cosmos-api'\nimport logo from '../public/img/logo.png'\n\nexport default {\n components: {\n ClockFooter,\n },\n data() {\n return {\n logo: logo,\n sourceUrl: '',\n cosmosVersion: '',\n }\n },\n created: function () {\n this.getSourceUrl()\n },\n methods: {\n getSourceUrl: function () {\n new CosmosApi()\n .get_settings(['source_url', 'version'])\n .then((response) => {\n this.sourceUrl = response[0]\n this.cosmosVersion = `(${response[1]})`\n })\n },\n },\n}\n</script>\n\n<style scoped>\n#footer {\n z-index: 1000; /* On TOP! */\n}\n</style>\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=js&\"","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=style&index=0&id=225df573&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=style&index=0&id=225df573&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppFooter.vue?vue&type=template&id=225df573&scoped=true&\"\nimport script from \"./AppFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./AppFooter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppFooter.vue?vue&type=style&index=0&id=225df573&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"225df573\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('225df573')) {\n api.createRecord('225df573', component.options)\n } else {\n api.reload('225df573', component.options)\n }\n module.hot.accept(\"./AppFooter.vue?vue&type=template&id=225df573&scoped=true&\", function () {\n api.rerender('225df573', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/AppFooter.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"v-navigation-drawer\",\n {\n attrs: { app: \"\", id: \"cosmos-nav-drawer\" },\n model: {\n value: _vm.drawer,\n callback: function ($$v) {\n _vm.drawer = $$v\n },\n expression: \"drawer\",\n },\n },\n [\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n { attrs: { \"two-line\": \"\" } },\n [\n _c(\"v-list-item-icon\", [\n _c(\"img\", { attrs: { src: _vm.logo, alt: \"COSMOS\" } }),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-list-item-content\",\n [\n _c(\n \"v-list-item-title\",\n { staticClass: \"font-weight-bold\" },\n [_vm._v(\"\\n COSMOS\\n \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n { staticClass: \"my-0\" },\n [\n _c(\n \"v-list-item-content\",\n _vm._l(_vm.adminTools, function (tool, name) {\n return _c(\n \"div\",\n { key: name },\n [\n _c(\n \"v-btn\",\n {\n attrs: {\n block: \"\",\n small: \"\",\n href: tool.url,\n onclick: \"singleSpaNavigate(event)\",\n },\n },\n [_vm._v(\"\\n Admin\\n \")]\n ),\n ],\n 1\n )\n }),\n 0\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _vm._l(_vm.shownTools, function (tool, name) {\n return _c(\n \"div\",\n { key: name },\n [\n _c(\n \"v-list-item\",\n { staticClass: \"pr-0\" },\n [\n _c(\"v-list-item-icon\", [\n _c(\n \"a\",\n {\n attrs: {\n href: tool.url,\n onclick: \"singleSpaNavigate(event)\",\n },\n },\n [_c(\"v-icon\", [_vm._v(_vm._s(tool.icon))])],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-list-item-content\", [\n _c(\n \"a\",\n {\n attrs: {\n href: tool.url,\n onclick: \"singleSpaNavigate(event)\",\n },\n },\n [_c(\"v-list-item-title\", [_vm._v(_vm._s(name))])],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-divider\", { attrs: { vertical: \"\" } }),\n _vm._v(\" \"),\n _c(\"v-list-item-icon\", [\n _c(\n \"a\",\n { attrs: { href: tool.url, target: \"_blank\" } },\n [_c(\"v-icon\", [_vm._v(\"mdi-open-in-new\")])],\n 1\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n ],\n 2\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-app-bar\",\n {\n attrs: {\n app: \"\",\n color: \"tertiary darken-3\",\n id: \"cosmos-app-toolbar\",\n },\n },\n [\n _c(\"v-app-bar-nav-icon\", {\n on: {\n click: function ($event) {\n _vm.drawer = !_vm.drawer\n },\n },\n }),\n _vm._v(\" \"),\n _c(\"v-divider\", {\n staticClass: \"top-bar-divider-full-height\",\n attrs: { vertical: \"\" },\n }),\n _vm._v(\" \"),\n _c(\"span\", { staticStyle: { width: \"100%\" } }, [\n _c(\"span\", { attrs: { id: \"cosmos-menu\" } }),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"justify-right mr-2 pt-2\" },\n [_c(\"scope-selector\")],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"justify-right\" }, [_c(\"alert-history\")], 1),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"justify-right\" }, [_c(\"notifications\")], 1),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"justify-right\" }, [_c(\"user-menu\")], 1),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"v-select\", {\n attrs: {\n items: _vm.scopes,\n disabled: _vm.scopes.length <= 1,\n label: \"Scope\",\n dense: \"\",\n \"hide-details\": \"\",\n },\n model: {\n value: _vm.scope,\n callback: function ($$v) {\n _vm.scope = $$v\n },\n expression: \"scope\",\n },\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nexport default {\n created: function () {\n this.scopes = ['DEFAULT']\n },\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-select\n v-model=\"scope\"\n :items=\"scopes\"\n :disabled=\"scopes.length <= 1\"\n label=\"Scope\"\n dense\n hide-details\n />\n</template>\n\n<script>\nimport Scopes from '../util/scopes.js'\n\nexport default {\n mixins: [Scopes],\n data: function () {\n return {\n scopes: [], // gets set in the mixin\n scope: localStorage.scope,\n }\n },\n watch: {\n scope: function (val) {\n localStorage.scope = val\n location.reload()\n },\n scopes: function (val) {\n if (val.length === 1 || (!this.scope && val.length)) this.scope = val[0]\n },\n },\n created: function () {\n if (localStorage.scope == null) {\n localStorage.scope = 'DEFAULT'\n }\n },\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScopeSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScopeSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ScopeSelector.vue?vue&type=template&id=a826b65a&\"\nimport script from \"./ScopeSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./ScopeSelector.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('a826b65a')) {\n api.createRecord('a826b65a', component.options)\n } else {\n api.reload('a826b65a', component.options)\n }\n module.hot.accept(\"./ScopeSelector.vue?vue&type=template&id=a826b65a&\", function () {\n api.rerender('a826b65a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/ScopeSelector.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"v-overlay\", {\n staticClass: \"overlay\",\n attrs: { value: _vm.showAlertPane },\n }),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n transition: \"slide-y-transition\",\n \"close-on-content-click\": false,\n \"nudge-width\": 340,\n \"offset-y\": \"\",\n \"nudge-bottom\": 20,\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b({ attrs: { icon: \"\" } }, \"v-btn\", attrs, false),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { size: _vm.size } }, [\n _vm._v(\" mdi-alert-box-outline \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.showAlertPane,\n callback: function ($$v) {\n _vm.showAlertPane = $$v\n },\n expression: \"showAlertPane\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-title\",\n [\n _vm._v(\"\\n Alerts\\n \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { top: \"\", \"open-delay\": \"350\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ml-1\",\n attrs: { icon: \"\" },\n on: { click: _vm.clearAlerts },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", [\n _vm._v(\" mdi-notification-clear-all \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [_vm._v(\" \"), _c(\"span\", [_vm._v(\"Clear all\")])]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.alerts.length === 0\n ? _c(\"v-card-text\", [_vm._v(\" No alerts \")])\n : _c(\n \"v-list\",\n {\n staticClass: \"overflow-y-auto\",\n attrs: {\n \"two-line\": \"\",\n width: \"388\",\n \"max-height\": \"80vh\",\n },\n },\n [\n _vm._l(_vm.alerts, function (alert, index) {\n return [\n _c(\n \"v-list-item\",\n {\n key: \"alert-\" + index,\n staticClass: \"pl-2\",\n on: {\n click: function ($event) {\n return _vm.openDialog(alert)\n },\n },\n },\n [\n _c(\n \"v-badge\",\n {\n attrs: {\n left: \"\",\n inline: \"\",\n color: \"transparent\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"badge\",\n fn: function () {\n return [\n _c(\"astro-status-indicator\", {\n attrs: {\n status:\n alert.severity.toLowerCase(),\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n },\n [\n _c(\n \"v-list-item-content\",\n { staticClass: \"pt-0 pb-0\" },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(alert.title) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-list-item-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(alert.body) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n }),\n ],\n 2\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { width: \"600\" },\n model: {\n value: _vm.alertDialog,\n callback: function ($$v) {\n _vm.alertDialog = $$v\n },\n expression: \"alertDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-title\",\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.selectedAlert.title) +\n \"\\n \"\n ),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"astro-status-indicator\", {\n attrs: { status: _vm.selectedAlert.severity || \"normal\" },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-card-text\", [\n _vm._v(\n \"\\n \" + _vm._s(_vm.selectedAlert.body) + \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: {\n click: function ($event) {\n _vm.alertDialog = false\n },\n },\n },\n [_vm._v(\"\\n Dismiss\\n \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"rux-icon\", {\n staticClass: \"astro-icon\",\n attrs: { icon: _vm.icon },\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"span\",\n {\n style: _vm.style,\n attrs: { id: \"rux-icon\", title: _vm.label, size: _vm.size },\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 128 128\",\n preserveAspectRatio: \"xMidYMid meet\",\n focusable: \"false\",\n },\n },\n [_c(\"use\", { attrs: { href: _vm.getIcon(this.library, this.icon) } })]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <span id=\"rux-icon\" :title=\"label\" :style=\"style\" :size=\"size\">\n <!-- Camel case props becase svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 128 128\"\n preserveAspectRatio=\"xMidYMid meet\"\n focusable=\"false\"\n >\n <use :href=\"getIcon(this.library, this.icon)\" />\n </svg>\n </span>\n</template>\n\n<script>\n// This component is a rewrite of the Astro UXDS RuxIcon into Vue\n// Prevents multiple customElement problem with single-spa\nexport default {\n props: {\n icon: {\n type: String,\n },\n size: {\n type: String,\n default: 'extra-small',\n },\n color: {\n type: String,\n },\n library: {\n type: String,\n default: '/icons/astro.svg',\n },\n label: {\n type: String,\n default: 'icon',\n },\n },\n computed: {\n style: function () {\n return '--iconColor=' + this.propscolor\n },\n },\n methods: {\n getIcon() {\n return this.library + '#' + this.icon\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./RuxIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./RuxIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RuxIcon.vue?vue&type=template&id=c3c6c00c&\"\nimport script from \"./RuxIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./RuxIcon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('c3c6c00c')) {\n api.createRecord('c3c6c00c', component.options)\n } else {\n api.reload('c3c6c00c', component.options)\n }\n module.hot.accept(\"./RuxIcon.vue?vue&type=template&id=c3c6c00c&\", function () {\n api.rerender('c3c6c00c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/cosmosc2-tool-common/src/components/icons/RuxIcon.vue\"\nexport default component.exports","import mod from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <rux-icon :icon=\"icon\" class=\"astro-icon\" />\n</template>\n\n<script>\nimport RuxIcon from './RuxIcon.vue'\nimport { AstroIconLibrary } from '.'\n\n// This component is a wrapper around the Astro UXDS RuxIcon to make it work with Vuetify\nexport default {\n components: {\n RuxIcon,\n },\n props: {\n icon: {\n type: String,\n required: true,\n validator: (val) => {\n return AstroIconLibrary.includes(val)\n },\n },\n },\n}\n</script>\n\n<style scoped>\n.astro-icon {\n fill: currentColor;\n}\n</style>\n","\n import API from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=style&index=0&id=1fcc6ea4&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=style&index=0&id=1fcc6ea4&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AstroIcon.vue?vue&type=template&id=1fcc6ea4&scoped=true&\"\nimport script from \"./AstroIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./AstroIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AstroIcon.vue?vue&type=style&index=0&id=1fcc6ea4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1fcc6ea4\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('1fcc6ea4')) {\n api.createRecord('1fcc6ea4', component.options)\n } else {\n api.reload('1fcc6ea4', component.options)\n }\n module.hot.accept(\"./AstroIcon.vue?vue&type=template&id=1fcc6ea4&scoped=true&\", function () {\n api.rerender('1fcc6ea4', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue\"\nexport default component.exports","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport AstroIcon from './AstroIcon'\n\nconst AstroIconLibrary = [\n // These are from the IDs in the default RuxIcon library: https://github.com/RocketCommunicationsInc/astro-components/blob/master/static/icons/astro.svg\n 'altitude',\n 'antenna',\n 'antenna-off',\n 'antenna-receive',\n 'antenna-transmit',\n 'equipment',\n 'mission',\n 'payload',\n 'processor',\n 'processor-alt',\n 'netcom',\n 'propulsion-power',\n 'thermal',\n 'satellite-off',\n 'satellite-receive',\n 'satellite-transmit',\n 'add-large',\n 'add-small',\n 'close-large',\n 'close-small',\n 'collapse',\n 'expand',\n 'lock',\n 'unlock',\n 'search',\n 'caution',\n 'maintenance',\n 'notifications',\n 'settings',\n\n // These are in that SVG file, but they're broken in RuxIcon:\n // 'twitter', // the twitter logo\n // 'progress', // circle\n // 'resources', // filing cabinet\n // 'solar', // grid\n]\n\nconst AstroIconVuetifyValues = AstroIconLibrary.reduce((values, icon) => {\n return {\n [`astro-${icon}`]: {\n component: AstroIcon,\n props: {\n icon,\n },\n },\n ...values,\n }\n}, {})\n\nconst AstroStatusColors = {\n critical: '#ff3838',\n serious: '#ffb302',\n caution: '#fce83a',\n normal: '#56f000',\n standby: '#2dccff',\n off: '#9ea7ad',\n}\n\nconst getStatusColorContrast = function (severity) {\n const black = '#000000'\n const white = '#ffffff'\n\n const statusColor = AstroStatusColors[severity]\n if (statusColor) {\n const r = Number(`0x${statusColor.slice(1, 3)}`)\n const g = Number(`0x${statusColor.slice(3, 5)}`)\n const b = Number(`0x${statusColor.slice(5, 7)}`)\n const brightness = (r * 299 + g * 587 + b * 114) / 1000 // https://www.w3.org/TR/AERT/#color-contrast\n\n if (brightness > 128) return black\n }\n return white\n}\n\nconst AstroStatuses = Object.keys(AstroStatusColors)\n\nexport {\n AstroIconLibrary,\n AstroIconVuetifyValues,\n AstroStatuses,\n AstroStatusColors,\n getStatusColorContrast,\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","const _severities = [\n // order of severities from highest to lowest\n 'critical',\n 'serious',\n 'caution',\n 'normal',\n 'standby',\n 'off',\n]\n\nconst _getSeverityIndeces = function (severities) {\n return severities.map((severity) => _severities.indexOf(severity.toLowerCase()))\n}\n\nconst highestSeverity = function (severities) {\n const indeces = _getSeverityIndeces(severities)\n const index = Math.min(...indeces)\n return _severities[index]\n}\n\nconst lowestSeverity = function (severities) {\n const indeces = _getSeverityIndeces(severities)\n const index = Math.max(...indeces)\n return _severities[index]\n}\n\nconst orderBySeverity = function (objects, severityGetter = (x) => x.severity) {\n return objects.sort((a, b) => {\n return _severities.indexOf(severityGetter(a)) - _severities.indexOf(severityGetter(b))\n })\n}\n\nconst groupBySeverity = function (objects, severityGetter = (x) => x.severity) {\n return objects.reduce((groups, obj) => {\n const severity = severityGetter(obj)\n groups[severity] ||= []\n groups[severity].push(obj)\n return groups\n }, {})\n}\n\nexport { highestSeverity, lowestSeverity, orderBySeverity, groupBySeverity }\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <v-overlay :value=\"showAlertPane\" class=\"overlay\" />\n <v-menu\n v-model=\"showAlertPane\"\n transition=\"slide-y-transition\"\n :close-on-content-click=\"false\"\n :nudge-width=\"340\"\n offset-y\n :nudge-bottom=\"20\"\n >\n <!-- Alert box icon -->\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn v-bind=\"attrs\" v-on=\"on\" icon>\n <v-icon :size=\"size\"> mdi-alert-box-outline </v-icon>\n </v-btn>\n </template>\n\n <!-- Alerts list -->\n <v-card>\n <v-card-title>\n Alerts\n <v-spacer />\n <v-tooltip top open-delay=\"350\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn\n icon\n v-bind=\"attrs\"\n v-on=\"on\"\n @click=\"clearAlerts\"\n class=\"ml-1\"\n >\n <v-icon> mdi-notification-clear-all </v-icon>\n </v-btn>\n </template>\n <span>Clear all</span>\n </v-tooltip>\n </v-card-title>\n <v-card-text v-if=\"alerts.length === 0\"> No alerts </v-card-text>\n <v-list\n v-else\n two-line\n width=\"388\"\n max-height=\"80vh\"\n class=\"overflow-y-auto\"\n >\n <template v-for=\"(alert, index) in alerts\">\n <v-list-item\n :key=\"`alert-${index}`\"\n @click=\"openDialog(alert)\"\n class=\"pl-2\"\n >\n <v-badge left inline color=\"transparent\">\n <v-list-item-content class=\"pt-0 pb-0\">\n <v-list-item-title>\n {{ alert.title }}\n </v-list-item-title>\n <v-list-item-subtitle>\n {{ alert.body }}\n </v-list-item-subtitle>\n </v-list-item-content>\n <template v-slot:badge>\n <astro-status-indicator\n :status=\"alert.severity.toLowerCase()\"\n />\n </template>\n </v-badge>\n </v-list-item>\n </template>\n </v-list>\n </v-card>\n </v-menu>\n\n <!-- Dialog for viewing full alert -->\n <v-dialog v-model=\"alertDialog\" width=\"600\">\n <v-card>\n <v-card-title>\n {{ selectedAlert.title }}\n <v-spacer />\n <astro-status-indicator\n :status=\"selectedAlert.severity || 'normal'\"\n />\n </v-card-title>\n <v-card-text>\n {{ selectedAlert.body }}\n </v-card-text>\n <v-divider />\n <v-card-actions>\n <v-btn color=\"primary\" text @click=\"alertDialog = false\">\n Dismiss\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n </div>\n</template>\n\n<script>\nimport { AstroStatusColors } from '../../../packages/cosmosc2-tool-common/src/components/icons'\nimport {\n highestSeverity,\n orderBySeverity,\n groupBySeverity,\n} from '../util/AstroStatus'\n\nexport default {\n props: {\n size: {\n type: [String, Number],\n default: 26,\n },\n },\n data: function () {\n return {\n AstroStatusColors,\n alerts: [],\n alertDialog: false,\n showAlertPane: false,\n selectedAlert: {},\n }\n },\n watch: {\n showAlertPane: function (val) {\n if (val) {\n this.refreshList()\n }\n if (!val && this.selectedAlert.title) {\n this.alertDialog = false\n this.selectedAlert = {}\n }\n },\n },\n methods: {\n refreshList: function () {\n this.alerts = this.$store.state.notifyHistory\n },\n clearAlerts: function () {\n this.$store.commit('notifyClearHistory')\n this.refreshList()\n this.showAlertPane = false\n },\n openDialog: function (alert, clearToast = false) {\n this.selectedAlert = alert\n this.alertDialog = true\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n height: 28px;\n}\n\n.v-badge {\n width: 100%;\n}\n\n.overlay {\n height: 100vh;\n width: 100vw;\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertHistory.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertHistory.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertHistory.vue?vue&type=style&index=0&id=0042fbc8&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertHistory.vue?vue&type=style&index=0&id=0042fbc8&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AlertHistory.vue?vue&type=template&id=0042fbc8&scoped=true&\"\nimport script from \"./AlertHistory.vue?vue&type=script&lang=js&\"\nexport * from \"./AlertHistory.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AlertHistory.vue?vue&type=style&index=0&id=0042fbc8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0042fbc8\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('0042fbc8')) {\n api.createRecord('0042fbc8', component.options)\n } else {\n api.reload('0042fbc8', component.options)\n }\n module.hot.accept(\"./AlertHistory.vue?vue&type=template&id=0042fbc8&scoped=true&\", function () {\n api.rerender('0042fbc8', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/AlertHistory.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"v-overlay\", {\n staticClass: \"overlay\",\n attrs: { value: _vm.showNotificationPane },\n }),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n transition: \"slide-y-transition\",\n \"close-on-content-click\": false,\n \"nudge-width\": 340,\n \"offset-y\": \"\",\n \"nudge-bottom\": 20,\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b({ attrs: { icon: \"\" } }, \"v-btn\", attrs, false),\n on\n ),\n [\n _vm.unreadCount === 0\n ? _c(\"v-icon\", { attrs: { size: _vm.size } }, [\n _vm._v(\"\\n mdi-bell-outline\\n \"),\n ])\n : _c(\n \"v-badge\",\n {\n attrs: {\n left: \"\",\n \"offset-x\": \"24\",\n \"offset-y\": \"8\",\n color: _vm.badgeColor,\n bordered: \"\",\n content: _vm.unreadCount,\n },\n },\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n size: _vm.size,\n color: _vm.badgeColor,\n },\n },\n [_vm._v(\" mdi-bell \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.showNotificationPane,\n callback: function ($$v) {\n _vm.showNotificationPane = $$v\n },\n expression: \"showNotificationPane\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-title\",\n [\n _vm._v(\"\\n Notifications\\n \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { top: \"\", \"open-delay\": \"350\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ml-1\",\n attrs: { icon: \"\" },\n on: { click: _vm.clearNotifications },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", [\n _vm._v(\" mdi-notification-clear-all \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [_vm._v(\" \"), _c(\"span\", [_vm._v(\"Clear all\")])]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n staticClass: \"ml-1\",\n attrs: { icon: \"\" },\n on: { click: _vm.toggleSettingsDialog },\n },\n [_c(\"v-icon\", [_vm._v(\" $astro-settings \")])],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.notifications.length === 0\n ? _c(\"v-card-text\", [\n _vm._v(\"\\n No notifications\\n \"),\n ])\n : _c(\n \"v-list\",\n {\n staticClass: \"overflow-y-auto\",\n attrs: {\n \"two-line\": \"\",\n width: \"388\",\n \"max-height\": \"80vh\",\n },\n },\n [\n _vm._l(\n _vm.notificationList,\n function (notification, index) {\n return [\n notification.header\n ? [\n index !== 0\n ? _c(\"v-divider\", {\n key: index,\n staticClass: \"mb-2\",\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"v-subheader\",\n { key: notification.header },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(notification.header) +\n \"\\n \"\n ),\n ]\n ),\n ]\n : _c(\n \"v-list-item\",\n {\n key: \"notification-\" + index,\n staticClass: \"pl-2\",\n on: {\n click: function ($event) {\n return _vm.openDialog(notification)\n },\n },\n },\n [\n _c(\n \"v-badge\",\n {\n attrs: {\n left: \"\",\n inline: \"\",\n color: \"transparent\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"badge\",\n fn: function () {\n return [\n _c(\"astro-status-indicator\", {\n attrs: {\n status:\n notification.severity.toLowerCase(),\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n },\n [\n _c(\n \"v-list-item-content\",\n { staticClass: \"pt-0 pb-0\" },\n [\n _c(\n \"v-list-item-title\",\n {\n class: {\n \"text--secondary\":\n notification.read,\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(notification.title) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-list-item-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(notification.body) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item-action\",\n { staticClass: \"mt-0\" },\n [\n _c(\"v-list-item-action-text\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"shortDateTime\")(\n notification.time\n )\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n }\n ),\n ],\n 2\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { width: \"600\" },\n model: {\n value: _vm.notificationDialog,\n callback: function ($$v) {\n _vm.notificationDialog = $$v\n },\n expression: \"notificationDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-title\",\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.selectedNotification.title) +\n \"\\n \"\n ),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"astro-status-indicator\", {\n attrs: {\n status: _vm.selectedNotification.severity || \"normal\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-card-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"shortDateTime\")(_vm.selectedNotification.time)\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-card-text\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.selectedNotification.body) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: {\n click: function ($event) {\n return _vm.navigate(_vm.selectedNotification.url)\n },\n },\n },\n [\n _vm._v(\"\\n Open\\n \"),\n _c(\"v-icon\", { attrs: { right: \"\" } }, [\n _vm._v(\" mdi-open-in-new \"),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: {\n click: function ($event) {\n _vm.notificationDialog = false\n },\n },\n },\n [_vm._v(\"\\n Dismiss\\n \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { width: \"600\" },\n model: {\n value: _vm.settingsDialog,\n callback: function ($$v) {\n _vm.settingsDialog = $$v\n },\n expression: \"settingsDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [_vm._v(\" Notification settings \")]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\"v-switch\", {\n attrs: { label: \"Show toasts\" },\n model: {\n value: _vm.showToast,\n callback: function ($$v) {\n _vm.showToast = $$v\n },\n expression: \"showToast\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: { click: _vm.toggleSettingsDialog },\n },\n [_vm._v(\"\\n close\\n \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport * as ActionCable from '@rails/actioncable'\n//ActionCable.logger.enabled = true\nActionCable.ConnectionMonitor.staleThreshold = 60\n\nexport default class Cable {\n constructor(url = '/cosmos-api/cable') {\n this._cable = ActionCable.createConsumer(url)\n }\n disconnect() {\n this._cable.disconnect()\n }\n createSubscription(channel, scope, callbacks = {}, additionalOptions = {}) {\n return CosmosAuth.updateToken(CosmosAuth.defaultMinValidity).then(() => {\n return this._cable.subscriptions.create(\n {\n channel,\n scope,\n token: localStorage.cosmosToken,\n ...additionalOptions,\n },\n callbacks\n )\n })\n }\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <v-overlay :value=\"showNotificationPane\" class=\"overlay\" />\n <v-menu\n v-model=\"showNotificationPane\"\n transition=\"slide-y-transition\"\n :close-on-content-click=\"false\"\n :nudge-width=\"340\"\n offset-y\n :nudge-bottom=\"20\"\n >\n <!-- Bell icon -->\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn v-bind=\"attrs\" v-on=\"on\" icon>\n <v-icon v-if=\"unreadCount === 0\" :size=\"size\">\n mdi-bell-outline\n </v-icon>\n <v-badge\n v-else\n left\n offset-x=\"24\"\n offset-y=\"8\"\n :color=\"badgeColor\"\n bordered\n :content=\"unreadCount\"\n >\n <v-icon :size=\"size\" :color=\"badgeColor\"> mdi-bell </v-icon>\n </v-badge>\n </v-btn>\n </template>\n\n <!-- Notifications list -->\n <v-card>\n <v-card-title>\n Notifications\n <v-spacer />\n <v-tooltip top open-delay=\"350\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn\n icon\n v-bind=\"attrs\"\n v-on=\"on\"\n @click=\"clearNotifications\"\n class=\"ml-1\"\n >\n <v-icon> mdi-notification-clear-all </v-icon>\n </v-btn>\n </template>\n <span>Clear all</span>\n </v-tooltip>\n <v-btn icon @click=\"toggleSettingsDialog\" class=\"ml-1\">\n <v-icon> $astro-settings </v-icon>\n </v-btn>\n </v-card-title>\n <v-card-text v-if=\"notifications.length === 0\">\n No notifications\n </v-card-text>\n <v-list\n v-else\n two-line\n width=\"388\"\n max-height=\"80vh\"\n class=\"overflow-y-auto\"\n >\n <template v-for=\"(notification, index) in notificationList\">\n <template v-if=\"notification.header\">\n <v-divider v-if=\"index !== 0\" :key=\"index\" class=\"mb-2\" />\n <v-subheader :key=\"notification.header\">\n {{ notification.header }}\n </v-subheader>\n </template>\n\n <v-list-item\n v-else\n :key=\"`notification-${index}`\"\n @click=\"openDialog(notification)\"\n class=\"pl-2\"\n >\n <v-badge left inline color=\"transparent\">\n <v-list-item-content class=\"pt-0 pb-0\">\n <v-list-item-title\n :class=\"{ 'text--secondary': notification.read }\"\n >\n {{ notification.title }}\n </v-list-item-title>\n <v-list-item-subtitle>\n {{ notification.body }}\n </v-list-item-subtitle>\n </v-list-item-content>\n <v-list-item-action class=\"mt-0\">\n <v-list-item-action-text>\n {{ notification.time | shortDateTime }}\n </v-list-item-action-text>\n <v-spacer />\n </v-list-item-action>\n <template v-slot:badge>\n <astro-status-indicator\n :status=\"notification.severity.toLowerCase()\"\n />\n </template>\n </v-badge>\n </v-list-item>\n </template>\n </v-list>\n </v-card>\n </v-menu>\n\n <!-- Dialog for viewing full notification -->\n <v-dialog v-model=\"notificationDialog\" width=\"600\">\n <v-card>\n <v-card-title>\n {{ selectedNotification.title }}\n <v-spacer />\n <astro-status-indicator\n :status=\"selectedNotification.severity || 'normal'\"\n />\n </v-card-title>\n <v-card-subtitle>\n {{ selectedNotification.time | shortDateTime }}\n </v-card-subtitle>\n <v-card-text>\n {{ selectedNotification.body }}\n </v-card-text>\n <v-divider />\n <v-card-actions>\n <v-btn\n color=\"primary\"\n text\n @click=\"navigate(selectedNotification.url)\"\n >\n Open\n <v-icon right> mdi-open-in-new </v-icon>\n </v-btn>\n <v-btn color=\"primary\" text @click=\"notificationDialog = false\">\n Dismiss\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n\n <!-- Dialog for changing notification settings -->\n <v-dialog v-model=\"settingsDialog\" width=\"600\">\n <v-card>\n <v-card-title> Notification settings </v-card-title>\n <v-card-text>\n <v-switch v-model=\"showToast\" label=\"Show toasts\" />\n </v-card-text>\n <v-divider />\n <v-card-actions>\n <v-btn color=\"primary\" text @click=\"toggleSettingsDialog\">\n close\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n </div>\n</template>\n\n<script>\nimport { formatDistanceToNow } from 'date-fns'\nimport { AstroStatusColors } from '../../../packages/cosmosc2-tool-common/src/components/icons'\nimport {\n highestSeverity,\n orderBySeverity,\n groupBySeverity,\n} from '../util/AstroStatus'\nimport Cable from '../../../packages/cosmosc2-tool-common/src/services/cable.js'\n\nconst NOTIFICATION_HISTORY_MAX_LENGTH = 100\n\nexport default {\n props: {\n size: {\n type: [String, Number],\n default: 26,\n },\n },\n data: function () {\n return {\n AstroStatusColors,\n cable: new Cable(),\n subscription: null,\n notifications: [],\n showNotificationPane: false,\n toastNotification: {},\n notificationDialog: false,\n selectedNotification: {},\n settingsDialog: false,\n showToast: true,\n }\n },\n computed: {\n badgeColor: function () {\n if (!this.unreadCount) {\n return AstroStatusColors['off']\n }\n const severities = this.unreadNotifications\n .map((notification) => notification.severity)\n .filter((val, index, self) => {\n return self.indexOf(val) === index // Unique values\n })\n return AstroStatusColors[highestSeverity(severities)]\n },\n readNotifications: function () {\n return this.notifications\n .filter((notification) => notification.read)\n .sort((a, b) => b.time - a.time)\n },\n unreadNotifications: function () {\n return this.notifications\n .filter((notification) => !notification.read)\n .sort((a, b) => b.time - a.time)\n },\n unreadCount: function () {\n return this.unreadNotifications.length\n },\n notificationList: function () {\n const groups = groupBySeverity(this.unreadNotifications)\n let result = orderBySeverity(Object.keys(groups), (k) => k).flatMap(\n (severity) => {\n const header = {\n header: severity.charAt(0).toUpperCase() + severity.slice(1),\n }\n return [header, ...groups[severity]]\n }\n )\n if (this.readNotifications.length) {\n result = result.concat([{ header: 'Read' }, ...this.readNotifications])\n }\n return result\n },\n },\n watch: {\n showNotificationPane: function (val) {\n if (!val) {\n if (this.selectedNotification.title) {\n this.notificationDialog = false\n this.selectedNotification = {}\n } else {\n this.markAllAsRead()\n }\n }\n },\n showToast: function (val) {\n localStorage.notoast = !val\n },\n },\n created: function () {\n this.showToast = localStorage.notoast === 'false'\n this.subscribe()\n },\n destroyed: function () {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.cable.disconnect()\n },\n methods: {\n markAllAsRead: function () {\n this.notifications.forEach((notification) => {\n notification.read = true\n if (\n !localStorage.lastReadNotification ||\n localStorage.lastReadNotification < notification.msg_id\n ) {\n localStorage.lastReadNotification = notification.msg_id\n }\n })\n },\n clearNotifications: function () {\n this.markAllAsRead()\n this.notifications = []\n localStorage.notificationStreamOffset = localStorage.lastReadNotification\n this.showNotificationPane = false\n },\n toggleNotificationPane: function () {\n this.showNotificationPane = !this.showNotificationPane\n },\n toggleSettingsDialog: function () {\n this.settingsDialog = !this.settingsDialog\n },\n openDialog: function (notification, clearToast = false) {\n notification.read = true\n if (\n !localStorage.lastReadNotification ||\n localStorage.lastReadNotification < notification.msg_id\n ) {\n localStorage.lastReadNotification = notification.msg_id\n }\n this.selectedNotification = notification\n this.notificationDialog = true\n },\n navigate: function (url) {\n window.open(url, '_blank')\n },\n subscribe: function () {\n this.cable\n .createSubscription(\n 'NotificationsChannel',\n localStorage.scope,\n {\n received: (data) => this.received(data),\n },\n {\n start_offset:\n localStorage.notificationStreamOffset ||\n localStorage.lastReadNotification,\n }\n )\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data) {\n const parsed = JSON.parse(data)\n if (parsed.length > NOTIFICATION_HISTORY_MAX_LENGTH) {\n parsed.splice(0, parsed.length - NOTIFICATION_HISTORY_MAX_LENGTH)\n }\n let foundToast = false\n parsed.forEach((notification) => {\n notification.read =\n notification.msg_id <= localStorage.lastReadNotification\n notification.severity = notification.severity || 'normal'\n if (\n !notification.read && // Don't toast read notifications\n (['critical', 'serious'].includes(notification.severity) || // Toast for these statuses\n notification.severity === 'critical') // Ok to override a toast only if this one is 'critical'\n ) {\n foundToast = true\n this.toastNotification = notification\n }\n })\n\n if (this.showToast && foundToast) {\n this.$notify[this.toastNotification.severity]({\n ...this.toastNotification,\n type: 'notification',\n duration:\n this.toastNotification.severity === 'critical' ? null : 5000,\n saveToHistory: false,\n })\n }\n\n if (\n this.notifications.length + parsed.length >\n NOTIFICATION_HISTORY_MAX_LENGTH\n ) {\n this.notifications.splice(\n 0,\n this.notifications.length +\n parsed.length -\n NOTIFICATION_HISTORY_MAX_LENGTH\n )\n }\n this.notifications = this.notifications.concat(parsed)\n },\n },\n filters: {\n shortDateTime: function (nsec) {\n if (!nsec) return ''\n const date = new Date(nsec / 1_000_000)\n return formatDistanceToNow(date, { addSuffix: true })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n height: 28px;\n}\n\n.v-badge {\n width: 100%;\n}\n\n.overlay {\n height: 100vh;\n width: 100vw;\n}\n</style>\n","import distanceInWords from \"../formatDistance/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsToNow ` to `formatDistanceToNow`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n * ```\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if now is earlier or later than the passed date\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistanceToNow(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return distanceInWords(dirtyDate, Date.now(), dirtyOptions);\n}","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=style&index=0&id=43a3e4e8&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=style&index=0&id=43a3e4e8&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Notifications.vue?vue&type=template&id=43a3e4e8&scoped=true&\"\nimport script from \"./Notifications.vue?vue&type=script&lang=js&\"\nexport * from \"./Notifications.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Notifications.vue?vue&type=style&index=0&id=43a3e4e8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"43a3e4e8\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('43a3e4e8')) {\n api.createRecord('43a3e4e8', component.options)\n } else {\n api.reload('43a3e4e8', component.options)\n }\n module.hot.accept(\"./Notifications.vue?vue&type=template&id=43a3e4e8&scoped=true&\", function () {\n api.rerender('43a3e4e8', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/Notifications.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"v-overlay\", {\n staticClass: \"overlay\",\n attrs: { value: _vm.showUserMenu },\n }),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n transition: \"slide-y-transition\",\n \"offset-y\": \"\",\n \"close-on-content-click\": false,\n \"nudge-width\": 120,\n \"nudge-bottom\": 20,\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b({ attrs: { icon: \"\" } }, \"v-btn\", attrs, false),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { size: _vm.size } }, [\n _vm._v(\" mdi-account \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.showUserMenu,\n callback: function ($$v) {\n _vm.showUserMenu = $$v\n },\n expression: \"showUserMenu\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\"v-card-text\", { staticClass: \"text-center\" }, [\n _vm.authenticated\n ? _c(\n \"div\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { block: \"\", color: \"primary\" },\n on: { click: _vm.logout },\n },\n [_vm._v(\" Logout \")]\n ),\n ],\n 1\n )\n : _c(\n \"div\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { block: \"\", color: \"primary\" },\n on: { click: _vm.login },\n },\n [_vm._v(\" Login \")]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n _c(\"v-switch\", {\n attrs: { label: \"Colorblind mode\" },\n model: {\n value: _vm.colorblindMode,\n callback: function ($$v) {\n _vm.colorblindMode = $$v\n },\n expression: \"colorblindMode\",\n },\n }),\n ],\n 1\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <v-overlay :value=\"showUserMenu\" class=\"overlay\" />\n <v-menu\n v-model=\"showUserMenu\"\n transition=\"slide-y-transition\"\n offset-y\n :close-on-content-click=\"false\"\n :nudge-width=\"120\"\n :nudge-bottom=\"20\"\n >\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn v-bind=\"attrs\" v-on=\"on\" icon>\n <v-icon :size=\"size\"> mdi-account </v-icon>\n </v-btn>\n </template>\n\n <v-card>\n <v-card-text class=\"text-center\">\n <div v-if=\"authenticated\">\n <v-btn block @click=\"logout\" color=\"primary\"> Logout </v-btn>\n </div>\n <div v-else>\n <v-btn block @click=\"login\" color=\"primary\"> Login </v-btn>\n </div>\n <div>\n <v-switch label=\"Colorblind mode\" v-model=\"colorblindMode\" />\n </div>\n </v-card-text>\n </v-card>\n </v-menu>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n size: {\n type: [String, Number],\n default: 26,\n },\n },\n data: function () {\n return {\n showUserMenu: false,\n authenticated: !!localStorage.cosmosToken,\n }\n },\n computed: {\n colorblindMode: {\n get: function () {\n return localStorage.colorblindMode === 'true'\n },\n set: function (val) {\n localStorage.colorblindMode = val\n },\n },\n },\n methods: {\n logout: function () {\n CosmosAuth.logout()\n },\n login: function () {\n CosmosAuth.login(location.href)\n },\n },\n}\n</script>\n\n<style scoped>\n.overlay {\n height: 100vh;\n width: 100vw;\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=style&index=0&id=53e47a0c&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=style&index=0&id=53e47a0c&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserMenu.vue?vue&type=template&id=53e47a0c&scoped=true&\"\nimport script from \"./UserMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./UserMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserMenu.vue?vue&type=style&index=0&id=53e47a0c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53e47a0c\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('53e47a0c')) {\n api.createRecord('53e47a0c', component.options)\n } else {\n api.reload('53e47a0c', component.options)\n }\n module.hot.accept(\"./UserMenu.vue?vue&type=template&id=53e47a0c&scoped=true&\", function () {\n api.rerender('53e47a0c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/UserMenu.vue\"\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <v-navigation-drawer v-model=\"drawer\" app id=\"cosmos-nav-drawer\">\n <v-list>\n <v-list-item two-line>\n <v-list-item-icon>\n <img :src=\"logo\" alt=\"COSMOS\" />\n </v-list-item-icon>\n <v-list-item-content>\n <v-list-item-title class=\"font-weight-bold\">\n COSMOS\n </v-list-item-title>\n <!-- v-list-item-subtitle>Enterprise Edition</v-list-item-subtitle -->\n </v-list-item-content>\n </v-list-item>\n <v-list-item class=\"my-0\">\n <v-list-item-content>\n <div v-for=\"(tool, name) in adminTools\" :key=\"name\">\n <v-btn\n block\n small\n :href=\"tool.url\"\n onclick=\"singleSpaNavigate(event)\"\n >\n Admin\n </v-btn>\n </div>\n </v-list-item-content>\n </v-list-item>\n <v-divider />\n <div v-for=\"(tool, name) in shownTools\" :key=\"name\">\n <v-list-item class=\"pr-0\">\n <v-list-item-icon>\n <a :href=\"tool.url\" onclick=\"singleSpaNavigate(event)\">\n <v-icon>{{ tool.icon }}</v-icon>\n </a>\n </v-list-item-icon>\n <v-list-item-content>\n <a :href=\"tool.url\" onclick=\"singleSpaNavigate(event)\">\n <v-list-item-title>{{ name }}</v-list-item-title>\n </a>\n </v-list-item-content>\n <v-divider vertical />\n <v-list-item-icon>\n <a :href=\"tool.url\" target=\"_blank\">\n <v-icon>mdi-open-in-new</v-icon>\n </a>\n </v-list-item-icon>\n </v-list-item>\n </div>\n </v-list>\n </v-navigation-drawer>\n <v-app-bar app color=\"tertiary darken-3\" id=\"cosmos-app-toolbar\">\n <v-app-bar-nav-icon @click=\"drawer = !drawer\" />\n <v-divider vertical class=\"top-bar-divider-full-height\" />\n <span style=\"width: 100%\"><span id=\"cosmos-menu\"></span></span>\n <div class=\"justify-right mr-2 pt-2\"><scope-selector /></div>\n <div class=\"justify-right\"><alert-history /></div>\n <div class=\"justify-right\"><notifications /></div>\n <div class=\"justify-right\"><user-menu /></div>\n </v-app-bar>\n </div>\n</template>\n\n<script>\nimport Api from '../../packages/cosmosc2-tool-common/src/services/api'\nimport logo from '../public/img/logo.png'\nimport { registerApplication, start } from 'single-spa'\nimport ScopeSelector from './components/ScopeSelector.vue'\nimport AlertHistory from './components/AlertHistory.vue'\nimport Notifications from './components/Notifications.vue'\nimport UserMenu from './components/UserMenu.vue'\n\nexport default {\n components: {\n ScopeSelector,\n AlertHistory,\n Notifications,\n UserMenu,\n },\n data() {\n return {\n drawer: true,\n appNav: {},\n adminNav: {},\n checked: [],\n logo: logo,\n }\n },\n computed: {\n // a computed getter\n shownTools: function () {\n let result = {}\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown && this.appNav[key].category !== 'Admin') {\n result[key] = this.appNav[key]\n }\n }\n return result\n },\n adminTools: function () {\n let result = {}\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown && this.appNav[key].category === 'Admin') {\n result[key] = this.appNav[key]\n }\n }\n return result\n },\n },\n created() {\n Api.get('/cosmos-api/tools/all', { params: { scope: 'DEFAULT' } }).then(\n (response) => {\n this.appNav = response.data\n\n // Register apps and start single-spa\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown) {\n let folder_name = this.appNav[key].folder_name\n let name = '@cosmosc2/tool-' + folder_name\n registerApplication({\n name: name,\n app: () => System.import(name),\n activeWhen: ['/tools/' + folder_name],\n })\n }\n }\n start({\n urlRerouteOnly: true,\n })\n\n // Redirect / to the first tool\n if (window.location.pathname == '/') {\n for (var key of Object.keys(this.shownTools)) {\n if (this.appNav[key].shown) {\n history.replaceState(null, '', this.appNav[key].url)\n break\n }\n }\n }\n }\n )\n },\n}\n</script>\n\n<style scoped>\n.v-list-item--two-line .v-list-item__icon {\n margin: 0px;\n}\n.v-list >>> .v-label {\n margin-left: 5px;\n}\n.theme--dark.v-navigation-drawer {\n background-color: var(--v-primary-darken2);\n}\n.v-list-item__icon {\n /* For some reason the default margin-right is huge */\n margin-right: 15px !important;\n}\n.v-list-item__title {\n color: white;\n}\n\n#cosmos-app-toolbar .top-bar-divider-full-height {\n margin: -4px 4px;\n min-height: calc(100% + 8px);\n}\n</style>\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=script&lang=js&\"","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=style&index=0&id=0a95910a&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=style&index=0&id=0a95910a&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppNav.vue?vue&type=template&id=0a95910a&scoped=true&\"\nimport script from \"./AppNav.vue?vue&type=script&lang=js&\"\nexport * from \"./AppNav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppNav.vue?vue&type=style&index=0&id=0a95910a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0a95910a\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('0a95910a')) {\n api.createRecord('0a95910a', component.options)\n } else {\n api.reload('0a95910a', component.options)\n }\n module.hot.accept(\"./AppNav.vue?vue&type=template&id=0a95910a&scoped=true&\", function () {\n api.rerender('0a95910a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/AppNav.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-dialog\",\n {\n attrs: { width: \"500\" },\n model: {\n value: _vm.dialog,\n callback: function ($$v) {\n _vm.dialog = $$v\n },\n expression: \"dialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [_vm._v(\" Clock out of sync \")]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _vm._v(\n \"\\n We've detected that your clock is approximately\\n \" +\n _vm._s(Math.abs(_vm.approximateDiscrepancySec)) +\n \" seconds\\n \" +\n _vm._s(\n _vm.approximateDiscrepancySec > 0 ? \"behind\" : \"ahead of\"\n ) +\n \" server time.\\n This can cause issues and might have unknown side effects.\\n \"\n ),\n _c(\"v-checkbox\", {\n attrs: { label: \"Don't show this again\" },\n model: {\n value: _vm.suppress,\n callback: function ($$v) {\n _vm.suppress = $$v\n },\n expression: \"suppress\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: { click: _vm.dismiss },\n },\n [_vm._v(\" Dismiss \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-dialog v-model=\"dialog\" width=\"500\">\n <v-card>\n <v-card-title> Clock out of sync </v-card-title>\n <v-card-text>\n We've detected that your clock is approximately\n {{ Math.abs(approximateDiscrepancySec) }} seconds\n {{ approximateDiscrepancySec > 0 ? 'behind' : 'ahead of' }} server time.\n This can cause issues and might have unknown side effects.\n <v-checkbox v-model=\"suppress\" label=\"Don't show this again\" />\n </v-card-text>\n <v-divider />\n <v-card-actions>\n <v-btn color=\"primary\" text @click=\"dismiss\"> Dismiss </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\n// Directly use axios since we need no authentication or scope\nimport axios from 'axios'\n\nconst ALLOWABLE_DISCREPANCY_MS = 3000\n\nexport default {\n data: function () {\n return {\n dismissed: false,\n suppress: false,\n discrepancy: 0,\n }\n },\n created: function () {\n this.suppress =\n localStorage['suppresswarning__clock_out_of_sync_with_server'] === 'true'\n if (!this.suppress) {\n axios\n .get('/cosmos-api/time')\n .then((response) => {\n this.discrepancy = response.data.now_nsec / 1_000_000 - Date.now()\n })\n .catch((error) => {\n // Silently fail\n this.dismissed = true\n })\n }\n },\n methods: {\n dismiss: function () {\n localStorage['suppresswarning__clock_out_of_sync_with_server'] =\n this.suppress\n this.dismissed = true\n },\n },\n computed: {\n approximateDiscrepancySec: function () {\n return (this.discrepancy / 1000).toFixed()\n },\n dialog: function () {\n return (\n !this.dismissed &&\n Math.abs(this.discrepancy) >= ALLOWABLE_DISCREPANCY_MS\n )\n },\n },\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeCheck.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeCheck.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TimeCheck.vue?vue&type=template&id=6504bcbb&\"\nimport script from \"./TimeCheck.vue?vue&type=script&lang=js&\"\nexport * from \"./TimeCheck.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('6504bcbb')) {\n api.createRecord('6504bcbb', component.options)\n } else {\n api.reload('6504bcbb', component.options)\n }\n module.hot.accept(\"./TimeCheck.vue?vue&type=template&id=6504bcbb&\", function () {\n api.rerender('6504bcbb', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/TimeCheck.vue\"\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<script>\nimport { CosmosApi } from '../../../packages/cosmosc2-tool-common/src/services/cosmos-api'\n\nexport default {\n data: function () {\n return {\n api: null,\n classification: {\n text: '',\n fontColor: 'white',\n backgroundColor: 'red',\n topHeight: 0,\n bottomHeight: 0,\n },\n }\n },\n computed: {\n classificationStyles: function () {\n // JavaScript can't access CSS psudo-elements (::before and ::after).\n // This string sets these JS values to CSS variables, accessible to\n // the style sheet via the style attribute on #app\n return [\n `--classification-text:\"${this.classification.text}\";`,\n `--classification-font-color:${this.classification.fontColor};`,\n `--classification-background-color:${this.classification.backgroundColor};`,\n `--classification-height-top:${this.classification.topHeight}px;`,\n `--classification-height-bottom:${this.classification.bottomHeight}px;`,\n ].join('')\n },\n },\n created: function () {\n this.api = new CosmosApi()\n this.load()\n },\n methods: {\n load: function () {\n this.api.get_setting('classification_banner').then((response) => {\n if (response) {\n this.classification = JSON.parse(response)\n }\n })\n },\n },\n}\n</script>\n\n<style>\n/* push things up and down to make room for the classification banners */\n#app,\n#cosmos-nav-drawer {\n margin-top: var(--classification-height-top);\n}\n#cosmos-app-toolbar {\n top: var(--classification-height-top);\n}\n#cosmos-nav-drawer .v-navigation-drawer__content {\n height: calc(\n 100% - var(--classification-height-top) -\n var(--classification-height-bottom)\n );\n}\n#footer {\n margin-bottom: var(--classification-height-bottom);\n}\n\n/* make the classification banners */\n#app::before,\n#app::after {\n z-index: 99;\n position: fixed;\n left: 0;\n right: 0;\n text-align: center;\n content: var(--classification-text);\n color: var(--classification-font-color);\n background-color: var(--classification-background-color);\n}\n#app::before {\n top: 0;\n font-size: calc(var(--classification-height-top) * 0.7);\n height: var(--classification-height-top);\n}\n#app::after {\n bottom: 0;\n font-size: calc(var(--classification-height-bottom) * 0.7);\n height: var(--classification-height-bottom);\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=style&index=0&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=style&index=0&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","var render, staticRenderFns\nimport script from \"./ClassificationBanners.vue?vue&type=script&lang=js&\"\nexport * from \"./ClassificationBanners.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ClassificationBanners.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('40f420fe')) {\n api.createRecord('40f420fe', component.options)\n } else {\n api.reload('40f420fe', component.options)\n }\n \n }\n}\ncomponent.options.__file = \"src/components/ClassificationBanners.vue\"\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-app :style=\"classificationStyles\">\n <app-nav />\n\n <!-- Sizes your content based upon application components -->\n <v-main>\n <v-container fluid>\n <div id=\"cosmos-tool\"></div>\n <div><router-view /></div>\n </v-container>\n </v-main>\n <app-footer app />\n <time-check />\n </v-app>\n</template>\n\n<script>\nimport AppFooter from './AppFooter'\nimport AppNav from './AppNav'\nimport TimeCheck from './components/TimeCheck'\nimport ClassificationBanners from './components/ClassificationBanners'\nexport default {\n components: {\n AppFooter,\n AppNav,\n TimeCheck,\n },\n mixins: [ClassificationBanners],\n}\n</script>\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=7ba5bd90&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('7ba5bd90')) {\n api.createRecord('7ba5bd90', component.options)\n } else {\n api.reload('7ba5bd90', component.options)\n }\n module.hot.accept(\"./App.vue?vue&type=template&id=7ba5bd90&\", function () {\n api.rerender('7ba5bd90', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/App.vue\"\nexport default component.exports","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport Vue from 'vue'\nimport Router from 'vue-router'\n\nVue.use(Router)\n\nexport default new Router({\n mode: 'history',\n base: process.env.BASE_URL,\n routes: [\n {\n path: '/login',\n component: () => import('./components/Login'),\n },\n // TODO: Create NotFoundComponent since we're doing history browser mode\n // See: https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations\n // {\n // path: '*',\n // component: NotFoundComponent\n // }\n ],\n})\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport Vue from 'vue'\nimport Vuex from 'vuex'\n\nVue.use(Vuex)\n\nconst NOTIFY_HISTORY_MAX_LENGTH = 100\n\nif (!window.hasOwnProperty('CosmosStore')) {\n window.CosmosStore = new Vuex.Store({\n state: {\n notifyHistory: [],\n tlmViewerItems: [],\n tlmViewerValues: {},\n },\n getters: {},\n mutations: {\n notifyAddHistory: function (state, notification) {\n if (state.notifyHistory.length >= NOTIFY_HISTORY_MAX_LENGTH) {\n state.notifyHistory.length = NOTIFY_HISTORY_MAX_LENGTH - 1\n }\n state.notifyHistory.unshift(notification)\n },\n notifyClearHistory: function (state) {\n state.notifyHistory = []\n },\n\n tlmViewerUpdateValues: function (state, values) {\n for (let i = 0; i < values.length; i++) {\n Vue.set(state.tlmViewerValues, state.tlmViewerItems[i], values[i])\n }\n },\n tlmViewerAddItem: function (state, item) {\n state.tlmViewerItems.push(item)\n Vue.set(state.tlmViewerValues, item, [null, null])\n },\n tlmViewerDeleteItem: function (state, item) {\n let index = state.tlmViewerItems.indexOf(item)\n state.tlmViewerItems.splice(index, 1)\n delete state.tlmViewerValues[item]\n },\n },\n modules: {},\n })\n}\n\nexport default window.CosmosStore\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport Vue from 'vue'\nimport Vuetify from 'vuetify'\nimport { AstroIconVuetifyValues } from '../../../packages/cosmosc2-tool-common/src/components/icons/index.js'\n\nVue.use(Vuetify)\n\nexport default new Vuetify({\n theme: {\n dark: true,\n options: {\n customProperties: true,\n },\n themes: {\n dark: {\n primary: '#005a8f',\n secondary: '#4dacff',\n tertiary: '#283f58',\n },\n light: {\n primary: '#cce6ff',\n secondary: '#cce6ff',\n },\n },\n },\n icons: {\n values: {\n ...AstroIconVuetifyValues,\n },\n },\n})\n","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-badge\",\n {\n attrs: {\n color: \"transparent\",\n left: \"\",\n inline: _vm.inline,\n \"offset-x\": _vm.offsetX,\n \"offset-y\": _vm.offsetY + 12,\n },\n scopedSlots: _vm._u([\n {\n key: \"badge\",\n fn: function () {\n return [\n _c(\"astro-status-indicator\", {\n attrs: { status: _vm.status, small: \"\" },\n }),\n ]\n },\n proxy: true,\n },\n ]),\n },\n [_vm._v(\" \"), _vm._t(\"default\")],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { style: _vm.iconStyle })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroStatusIndicator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroStatusIndicator.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div :style=\"iconStyle\" />\n</template>\n\n<script>\nimport { AstroStatuses } from '.'\nimport dark from '../../../public/icons/status-dark.png'\nimport light from '../../../public/icons/status-light.png'\n\nexport default {\n props: {\n status: {\n type: String,\n required: true,\n validator: (val) => {\n return AstroStatuses.includes(val)\n },\n },\n large: {\n type: Boolean,\n },\n small: {\n type: Boolean,\n },\n scale: {\n type: Number,\n },\n },\n computed: {\n icons: function () {\n return dark // TODO: check theme\n },\n scaleFactor: function () {\n if (this.scale) {\n return this.scale\n } else if (this.large) {\n return 1\n } else if (this.small) {\n return 0.3\n } else {\n return 0.5\n }\n },\n iconStyle: function () {\n // The original png dimensions are 192x32 px\n const bgWidth = 192 * this.scaleFactor\n const bgHeight = 32 * this.scaleFactor\n const iconWidth = 32 * this.scaleFactor // Each icon in the png is 32px wide with no space in between\n const offset = AstroStatuses.indexOf(this.status)\n return [\n `background-image: url(${this.icons});`,\n `background-position-x: -${offset * iconWidth}px;`,\n `background-size: ${bgWidth}px ${bgHeight}px;`,\n `height: ${iconWidth}px;`,\n `width: ${iconWidth}px;`,\n ].join('')\n },\n },\n}\n</script>\n","import { render, staticRenderFns } from \"./AstroStatusIndicator.vue?vue&type=template&id=4d46e73c&\"\nimport script from \"./AstroStatusIndicator.vue?vue&type=script&lang=js&\"\nexport * from \"./AstroStatusIndicator.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('4d46e73c')) {\n api.createRecord('4d46e73c', component.options)\n } else {\n api.reload('4d46e73c', component.options)\n }\n module.hot.accept(\"./AstroStatusIndicator.vue?vue&type=template&id=4d46e73c&\", function () {\n api.rerender('4d46e73c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator.vue\"\nexport default component.exports","import mod from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroBadge.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroBadge.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-badge\n color=\"transparent\"\n left\n :inline=\"inline\"\n :offset-x=\"offsetX\"\n :offset-y=\"offsetY + 12\"\n >\n <template v-slot:badge>\n <astro-status-indicator :status=\"status\" small />\n </template>\n <slot />\n </v-badge>\n</template>\n\n<script>\nimport AstroStatusIndicator from './AstroStatusIndicator.vue'\nexport default {\n components: {\n AstroStatusIndicator,\n },\n props: {\n status: {\n type: String,\n required: true,\n },\n offsetX: {\n type: [Number, String],\n },\n offsetY: {\n type: [Number, String],\n default: 0,\n },\n inline: {\n type: Boolean,\n },\n },\n}\n</script>\n","import { render, staticRenderFns } from \"./AstroBadge.vue?vue&type=template&id=a5a039f0&\"\nimport script from \"./AstroBadge.vue?vue&type=script&lang=js&\"\nexport * from \"./AstroBadge.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('a5a039f0')) {\n api.createRecord('a5a039f0', component.options)\n } else {\n api.reload('a5a039f0', component.options)\n }\n module.hot.accept(\"./AstroBadge.vue?vue&type=template&id=a5a039f0&\", function () {\n api.rerender('a5a039f0', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/cosmosc2-tool-common/src/components/icons/AstroBadge.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"astro-badge\",\n { attrs: { status: _vm.status } },\n [\n _c(\n \"v-icon\",\n { attrs: { color: _vm.color || _vm.statusColor } },\n [\n _vm.$slots.default\n ? _vm._t(\"default\")\n : [_vm._v(\" \" + _vm._s(_vm.icon) + \" \")],\n ],\n 2\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <astro-badge :status=\"status\">\n <v-icon :color=\"color || statusColor\">\n <slot v-if=\"$slots.default\" />\n <template v-else> {{ icon }} </template>\n </v-icon>\n </astro-badge>\n</template>\n\n<script>\nimport { AstroStatusColors } from '.'\nimport AstroBadge from './AstroBadge.vue'\n\nexport default {\n components: { AstroBadge },\n props: {\n status: {\n type: String,\n required: true,\n },\n icon: {\n type: String,\n },\n color: {\n type: String,\n },\n },\n computed: {\n statusColor: function () {\n return AstroStatusColors[this.status]\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroBadgeIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroBadgeIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AstroBadgeIcon.vue?vue&type=template&id=0a0e31be&\"\nimport script from \"./AstroBadgeIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./AstroBadgeIcon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('0a0e31be')) {\n api.createRecord('0a0e31be', component.options)\n } else {\n api.reload('0a0e31be', component.options)\n }\n module.hot.accept(\"./AstroBadgeIcon.vue?vue&type=template&id=0a0e31be&\", function () {\n api.rerender('0a0e31be', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon.vue\"\nexport default component.exports","import Vue from 'vue'\nimport App from './App.vue'\nimport router from './router'\n\nVue.config.productionTip = false\n\nimport store from '../../packages/cosmosc2-tool-common/src/plugins/store'\nimport '../../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/layout.scss'\nimport vuetify from './plugins/vuetify'\n\n// Register these globally so they don't have to be imported every time\nimport AstroBadge from '../../packages/cosmosc2-tool-common/src/components/icons/AstroBadge'\nimport AstroBadgeIcon from '../../packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon'\nimport AstroStatusIndicator from '../../packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator'\nVue.component('astro-badge', AstroBadge)\nVue.component('astro-badge-icon', AstroBadgeIcon)\nVue.component('astro-status-indicator', AstroStatusIndicator)\n\nconst options = CosmosAuth.getInitOptions()\nCosmosAuth.init(options).then(() => {\n new Vue({\n router,\n store,\n vuetify,\n render: (h) => h(App),\n }).$mount('#cosmos-main')\n})\n"],"names":["inProgress","dataWebpackPrefix","module","exports","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","defaults","Cancel","config","Promise","resolve","reject","onCanceled","requestData","data","requestHeaders","headers","responseType","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","value","err","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","send","bind","Axios","mergeConfig","axios","createInstance","defaultConfig","context","instance","prototype","extend","create","instanceConfig","CancelToken","isCancel","VERSION","all","promises","spread","isAxiosError","message","this","toString","__CANCEL__","executor","TypeError","resolvePromise","promise","token","then","_listeners","i","l","length","onfulfilled","_resolve","reason","throwIfRequested","listener","push","index","splice","source","c","InterceptorManager","dispatchRequest","validator","validators","interceptors","arguments","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","Array","apply","concat","shift","newConfig","onFulfilled","onRejected","error","getUri","replace","handlers","use","options","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","Error","transformData","throwIfCancellationRequested","call","transformRequest","merge","common","adapter","transformResponse","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","Object","keys","configValue","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","args","encode","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","substr","callback","arr","thing","deprecatedWarnings","version","formatMessage","opt","desc","opts","console","warn","schema","allowUnknown","result","getPrototypeOf","isFunction","obj","hasOwnProperty","constructor","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","assignValue","a","b","str","stripBOM","content","charCodeAt","noAuth","noScope","CosmosAuth","updateToken","defaultMinValidity","login","localStorage","cosmosToken","scope","acceptOnlyDefaultHeaders","Accept","fullDefaultHeaders","get","put","post","delete","vueInstance","Vue","axiosInstance","origin","body","exception","class","$notify","serious","title","___CSS_LOADER_EXPORT___","cssWithMappingToString","list","map","item","modules","mediaQuery","dedupe","alreadyImportedModules","_i","_arrayLikeToArray","len","arr2","_item","_arrayWithHoles","Symbol","iterator","_s","_e","_arr","_n","_d","next","_iterableToArrayLimit","o","minLen","n","from","_unsupportedIterableToArray","_nonIterableRest","cssMapping","base64","sourceMapping","sourceURLs","sources","sourceRoot","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","api","domAPI","update","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","memo","insert","style","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","getTarget","appendChild","element","setAttributes","attributes","styleElement","nonce","insertStyleElement","needLayer","styleTagTransform","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","resolveDirectory","rootDirLevel","meta","urlString","rootDirectoryLevel","numDirsProcessed","finalPath","Number","isInteger","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","__esModule","default","locals","listToStyles","parentId","styles","newStyles","part","hasDocument","DEBUG","stylesInDom","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","isOldIE","addStylesClient","_isProduction","_options","addStylesToDom","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleIndex","applyToSingletonTag","applyToTag","textStore","replaceText","replacement","filter","Boolean","cssNode","childNodes","insertBefore","ssrId","adapters","logger","self","WebSocket","log","enabled","_adapters$logger","_len","messages","_key","_typeof","classCallCheck","Constructor","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","getTime","secondsSince","time","ConnectionMonitor","connection","visibilityDidChange","reconnectAttempts","start","isRunning","startedAt","stoppedAt","startPolling","getPollInterval","stop","stopPolling","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","clearTimeout","pollTimeout","_this","reconnectIfStale","_constructor$pollInte","pollInterval","min","max","interval","multiplier","Math","round","clamp","connectionIsStale","staleThreshold","disconnectedRecently","reopen","_this2","visibilityState","isOpen","INTERNAL","message_types","welcome","disconnect","ping","confirmation","rejection","disconnect_reasons","unauthorized","invalid_request","server_restart","default_mount_path","protocols","supportedProtocols","Connection","consumer","subscriptions","monitor","disconnected","webSocket","isActive","getState","uninstallEventHandlers","installEventHandlers","close","allowReconnect","reopenDelay","getProtocol","isState","isProtocolSupported","states","state","eventName","events","handler","event","_JSON$parse","reconnect","reload","confirmSubscription","notify","notifyAll","willAttemptReconnect","object","properties","Subscription","mixin","perform","action","command","SubscriptionGuarantor","pendingSubscriptions","guarantee","subscription","startGuaranteeing","forget","s","stopGuaranteeing","retrySubscribing","retryTimeout","Subscriptions","guarantor","channelName","channel","ensureActiveConnection","findAll","sendCommand","callbackName","_this3","_len2","_key2","_this4","Consumer","_url","connect","createWebSocketURL","getConfig","getAttribute","createConsumer","factory","__WEBPACK_EXTERNAL_MODULE__8645__","__WEBPACK_EXTERNAL_MODULE__4091__","__WEBPACK_EXTERNAL_MODULE__4688__","__WEBPACK_EXTERNAL_MODULE__9731__","__WEBPACK_EXTERNAL_MODULE__9191__","_defineProperty","asyncGeneratorStep","gen","_next","_throw","arg","info","_asyncToGenerator","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","y","__system_context__","getter","d","definition","f","chunkId","reduce","u","script","needAttach","scripts","charset","nc","src","onScriptComplete","prev","onload","doneFns","r","toStringTag","p","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","autoPublicPath","_vm","_h","$createElement","_c","_self","classificationStyles","_v","attrs","fluid","app","_withStripped","color","height","logo","alt","width","staticClass","staticStyle","cosmosVersion","sourceUrl","_g","_b","cursor","on","contextmenu","openMenu","_f","displayLocal","localDate","utcDate","formatString","menuX","menuY","absolute","model","showMenu","$$v","expression","click","toggleDisplayLocal","toggleDisplay24h","display24h","dateMode","setMonthFirst","setDayFirst","setNumber","requiredArgs","required","toDate","argument","argStr","NaN","isValid","dirtyDate","date","isNaN","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","String","defaultWidth","format","formats","full","long","medium","short","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","dirtyOptions","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","ordinalNumber","dirtyNumber","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","pattern","findKey","valueCallback","rest","predicate","array","parsePattern","parseInt","parseResult","any","formatDistance","tokenValue","addSuffix","comparison","formatLong","formatRelative","_date","_baseDate","localize","weekStartsOn","firstWeekContainsDate","toInteger","ceil","floor","addMilliseconds","dirtyAmount","timestamp","amount","subMilliseconds","MILLISECONDS_IN_DAY","startOfUTCISOWeek","getUTCDay","diff","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","startOfUTCWeek","locale","localeWeekStartsOn","defaultWeekStartsOn","RangeError","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","addLeadingZeros","targetLength","sign","output","abs","signedYear","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","pow","G","unit","lightFormatters","Y","signedWeekYear","weekYear","R","Q","q","M","L","w","week","getUTCWeek","I","isoWeek","getUTCISOWeek","D","dayOfYear","setUTCMonth","startOfYearTimestamp","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","hours","B","H","K","k","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","t","originalDate","T","offset","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","timeLongFormatter","P","dateTimeFormat","datePattern","timePattern","getTimezoneOffsetInMilliseconds","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","input","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","cleanEscapedString","clock_zone","clock_12h","intervalCount","computed","dateFormat","timeFormat","watch","clock_dateMode","created","setInterval","methods","preventDefault","clientX","clientY","$nextTick","filters","dirtyFormatStr","formatStr","formatterOptions","substring","firstCharacter","longFormatter","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","component","__file","_readOnlyError","_classCallCheck","_defineProperties","_createClass","CosmosApi","kwparams","jsonrpc","keyword_params","json_class","raw","Infinity","POSITIVE_INFINITY","NEGATIVE_INFINITY","exec","interface_name","router_name","packet","log_writer_name","limits_set","target_name","packet_name","value_type","converted","decode_cosmos_type","items","item_name","command_name","parameter_name","param_list","encode_cosmos_type","_cmd","tool","ignored","components","ClockFooter","getSourceUrl","drawer","_l","adminTools","block","small","onclick","shownTools","icon","vertical","$event","scopes","disabled","label","dense","mixins","showAlertPane","transition","scopedSlots","_u","ref","size","top","clearAlerts","alerts","alert","openDialog","left","inline","severity","proxy","alertDialog","selectedAlert","text","xmlns","viewBox","preserveAspectRatio","focusable","getIcon","library","propscolor","RuxIcon","AstroIconLibrary","includes","AstroIconVuetifyValues","AstroIcon","AstroStatusColors","critical","caution","normal","standby","off","AstroStatuses","iter","_severities","refreshList","$store","notifyHistory","commit","showNotificationPane","unreadCount","badgeColor","bordered","clearNotifications","toggleSettingsDialog","notifications","notificationList","notification","header","notificationDialog","selectedNotification","navigate","right","settingsDialog","showToast","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","differenceInCalendarMonths","yearDiff","monthDiff","endOfDay","setHours","endOfMonth","setFullYear","isLastDayOfMonth","differenceInMonths","setDate","setMonth","isLastMonthNotFull","differenceInMilliseconds","roundingMap","trunc","getRoundingMethod","differenceInSeconds","roundingMethod","cloneObject","dirtyObject","property","MINUTES_IN_DAY","MINUTES_IN_MONTH","dirtyBaseDate","localizeOptions","months","seconds","offsetInSeconds","includeSeconds","days","nearestMonth","monthsSinceStartOfYear","years","ActionCable","Cable","_cable","callbacks","additionalOptions","cable","toastNotification","severities","indeces","_getSeverityIndeces","highestSeverity","readNotifications","unreadNotifications","objects","severityGetter","groups","sort","markAllAsRead","notoast","destroyed","lastReadNotification","msg_id","notificationStreamOffset","toggleNotificationPane","received","NOTIFICATION_HISTORY_MAX_LENGTH","foundToast","duration","saveToHistory","shortDateTime","nsec","formatDistanceToNow","showUserMenu","authenticated","logout","colorblindMode","set","ScopeSelector","AlertHistory","Notifications","UserMenu","appNav","adminNav","checked","activeWhen","folder_name","dialog","approximateDiscrepancySec","suppress","dismiss","dismissed","discrepancy","toFixed","classification","fontColor","backgroundColor","topHeight","bottomHeight","load","get_setting","AppFooter","AppNav","TimeCheck","ClassificationBanners","Router","mode","routes","Vuex","CosmosStore","tlmViewerItems","tlmViewerValues","getters","mutations","notifyAddHistory","NOTIFY_HISTORY_MAX_LENGTH","notifyClearHistory","tlmViewerUpdateValues","tlmViewerAddItem","tlmViewerDeleteItem","Vuetify","theme","dark","customProperties","themes","primary","secondary","tertiary","light","icons","offsetX","offsetY","_t","iconStyle","large","scale","scaleFactor","AstroStatusIndicator","statusColor","$slots","AstroBadge","AstroBadgeIcon","getInitOptions","init","router","store","vuetify","App","$mount"],"sourceRoot":""}
1
+ {"version":3,"file":"cosmosc2-tool-base.js","mappings":"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","sources":["webpack://tool-base/webpack/runtime/load script","webpack://tool-base/./node_modules/axios/index.js","webpack://tool-base/./node_modules/axios/lib/adapters/xhr.js","webpack://tool-base/./node_modules/axios/lib/axios.js","webpack://tool-base/./node_modules/axios/lib/cancel/Cancel.js","webpack://tool-base/./node_modules/axios/lib/cancel/CancelToken.js","webpack://tool-base/./node_modules/axios/lib/cancel/isCancel.js","webpack://tool-base/./node_modules/axios/lib/core/Axios.js","webpack://tool-base/./node_modules/axios/lib/core/InterceptorManager.js","webpack://tool-base/./node_modules/axios/lib/core/buildFullPath.js","webpack://tool-base/./node_modules/axios/lib/core/createError.js","webpack://tool-base/./node_modules/axios/lib/core/dispatchRequest.js","webpack://tool-base/./node_modules/axios/lib/core/enhanceError.js","webpack://tool-base/./node_modules/axios/lib/core/mergeConfig.js","webpack://tool-base/./node_modules/axios/lib/core/settle.js","webpack://tool-base/./node_modules/axios/lib/core/transformData.js","webpack://tool-base/./node_modules/axios/lib/defaults.js","webpack://tool-base/./node_modules/axios/lib/env/data.js","webpack://tool-base/./node_modules/axios/lib/helpers/bind.js","webpack://tool-base/./node_modules/axios/lib/helpers/buildURL.js","webpack://tool-base/./node_modules/axios/lib/helpers/combineURLs.js","webpack://tool-base/./node_modules/axios/lib/helpers/cookies.js","webpack://tool-base/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://tool-base/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://tool-base/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://tool-base/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://tool-base/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://tool-base/./node_modules/axios/lib/helpers/spread.js","webpack://tool-base/./node_modules/axios/lib/helpers/validator.js","webpack://tool-base/./node_modules/axios/lib/utils.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/services/api.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/services/axios.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/layout.scss","webpack://tool-base/./src/AppFooter.vue?0a97","webpack://tool-base/./src/AppNav.vue?238e","webpack://tool-base/./src/components/AlertHistory.vue?c002","webpack://tool-base/./src/components/ClassificationBanners.vue?1865","webpack://tool-base/./src/components/Notifications.vue?0177","webpack://tool-base/./src/components/UserMenu.vue?0662","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue?9ba3","webpack://tool-base/./node_modules/css-loader/dist/runtime/api.js","webpack://tool-base/./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://tool-base/./node_modules/systemjs-webpack-interop/auto-public-path/auto-public-path.js","webpack://tool-base/./node_modules/systemjs-webpack-interop/public-path.js","webpack://tool-base/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/layout.scss?7c42","webpack://tool-base/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://tool-base/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://tool-base/../node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","webpack://tool-base/../node_modules/axios/index.js","webpack://tool-base/../node_modules/axios/lib/adapters/xhr.js","webpack://tool-base/../node_modules/axios/lib/axios.js","webpack://tool-base/../node_modules/axios/lib/cancel/Cancel.js","webpack://tool-base/../node_modules/axios/lib/cancel/CancelToken.js","webpack://tool-base/../node_modules/axios/lib/cancel/isCancel.js","webpack://tool-base/../node_modules/axios/lib/core/Axios.js","webpack://tool-base/../node_modules/axios/lib/core/InterceptorManager.js","webpack://tool-base/../node_modules/axios/lib/core/buildFullPath.js","webpack://tool-base/../node_modules/axios/lib/core/createError.js","webpack://tool-base/../node_modules/axios/lib/core/dispatchRequest.js","webpack://tool-base/../node_modules/axios/lib/core/enhanceError.js","webpack://tool-base/../node_modules/axios/lib/core/mergeConfig.js","webpack://tool-base/../node_modules/axios/lib/core/settle.js","webpack://tool-base/../node_modules/axios/lib/core/transformData.js","webpack://tool-base/../node_modules/axios/lib/defaults.js","webpack://tool-base/../node_modules/axios/lib/env/data.js","webpack://tool-base/../node_modules/axios/lib/helpers/bind.js","webpack://tool-base/../node_modules/axios/lib/helpers/buildURL.js","webpack://tool-base/../node_modules/axios/lib/helpers/combineURLs.js","webpack://tool-base/../node_modules/axios/lib/helpers/cookies.js","webpack://tool-base/../node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://tool-base/../node_modules/axios/lib/helpers/isAxiosError.js","webpack://tool-base/../node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://tool-base/../node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://tool-base/../node_modules/axios/lib/helpers/parseHeaders.js","webpack://tool-base/../node_modules/axios/lib/helpers/spread.js","webpack://tool-base/../node_modules/axios/lib/helpers/validator.js","webpack://tool-base/../node_modules/axios/lib/utils.js","webpack://tool-base/external system \"single-spa\"","webpack://tool-base/external system \"vue\"","webpack://tool-base/external system \"vue-router\"","webpack://tool-base/external system \"vuetify\"","webpack://tool-base/external system \"vuex\"","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://tool-base/webpack/bootstrap","webpack://tool-base/webpack/runtime/__system_context__","webpack://tool-base/webpack/runtime/compat get default export","webpack://tool-base/webpack/runtime/define property getters","webpack://tool-base/webpack/runtime/ensure chunk","webpack://tool-base/webpack/runtime/get javascript chunk filename","webpack://tool-base/webpack/runtime/hasOwnProperty shorthand","webpack://tool-base/webpack/runtime/make namespace object","webpack://tool-base/webpack/runtime/publicPath","webpack://tool-base/webpack/runtime/jsonp chunk loading","webpack://tool-base/./node_modules/systemjs-webpack-interop/auto-public-path/1.js","webpack://tool-base/./src/App.vue?9dca","webpack://tool-base/./src/AppFooter.vue?5fe4","webpack://tool-base/./src/components/ClockFooter.vue?cca3","webpack://tool-base/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://tool-base/./node_modules/date-fns/esm/isDate/index.js","webpack://tool-base/./node_modules/date-fns/esm/toDate/index.js","webpack://tool-base/./node_modules/date-fns/esm/isValid/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://tool-base/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://tool-base/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://tool-base/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://tool-base/./node_modules/date-fns/esm/format/index.js","webpack://tool-base/src/components/ClockFooter.vue","webpack://tool-base/./src/components/ClockFooter.vue?4f15","webpack://tool-base/./src/components/ClockFooter.vue","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/readOnlyError.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/services/cosmos-api.js","webpack://tool-base/src/AppFooter.vue","webpack://tool-base/./src/AppFooter.vue?f420","webpack://tool-base/./src/AppFooter.vue?24f6","webpack://tool-base/./src/AppFooter.vue","webpack://tool-base/./src/AppNav.vue?7d5a","webpack://tool-base/./src/components/ScopeSelector.vue?0819","webpack://tool-base/./src/util/scopes.js","webpack://tool-base/src/components/ScopeSelector.vue","webpack://tool-base/./src/components/ScopeSelector.vue?230d","webpack://tool-base/./src/components/ScopeSelector.vue","webpack://tool-base/./src/components/AlertHistory.vue?8fab","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue?dee3","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/RuxIcon.vue?bad2","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/RuxIcon.vue","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/RuxIcon.vue?71f8","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/RuxIcon.vue?9247","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue?7bda","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue?9839","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue?0b93","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/index.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://tool-base/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://tool-base/./src/util/AstroStatus.js","webpack://tool-base/src/components/AlertHistory.vue","webpack://tool-base/./src/components/AlertHistory.vue?c5b1","webpack://tool-base/./src/components/AlertHistory.vue?13b2","webpack://tool-base/./src/components/AlertHistory.vue","webpack://tool-base/./src/components/Notifications.vue?e276","webpack://tool-base/./node_modules/date-fns/esm/compareAsc/index.js","webpack://tool-base/./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack://tool-base/./node_modules/date-fns/esm/endOfDay/index.js","webpack://tool-base/./node_modules/date-fns/esm/endOfMonth/index.js","webpack://tool-base/./node_modules/date-fns/esm/isLastDayOfMonth/index.js","webpack://tool-base/./node_modules/date-fns/esm/differenceInMonths/index.js","webpack://tool-base/./node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/roundingMethods/index.js","webpack://tool-base/./node_modules/date-fns/esm/differenceInSeconds/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/cloneObject/index.js","webpack://tool-base/./node_modules/date-fns/esm/_lib/assign/index.js","webpack://tool-base/./node_modules/date-fns/esm/formatDistance/index.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/services/cable.js","webpack://tool-base/src/components/Notifications.vue","webpack://tool-base/./node_modules/date-fns/esm/formatDistanceToNow/index.js","webpack://tool-base/./src/components/Notifications.vue?ed9a","webpack://tool-base/./src/components/Notifications.vue?9714","webpack://tool-base/./src/components/Notifications.vue","webpack://tool-base/./src/components/UserMenu.vue?f0a2","webpack://tool-base/src/components/UserMenu.vue","webpack://tool-base/./src/components/UserMenu.vue?650e","webpack://tool-base/./src/components/UserMenu.vue?b884","webpack://tool-base/./src/components/UserMenu.vue","webpack://tool-base/src/AppNav.vue","webpack://tool-base/./src/AppNav.vue?a95a","webpack://tool-base/./src/AppNav.vue?8855","webpack://tool-base/./src/AppNav.vue","webpack://tool-base/./src/components/TimeCheck.vue?a824","webpack://tool-base/src/components/TimeCheck.vue","webpack://tool-base/./src/components/TimeCheck.vue?3fe6","webpack://tool-base/./src/components/TimeCheck.vue","webpack://tool-base/src/components/ClassificationBanners.vue","webpack://tool-base/./src/components/ClassificationBanners.vue?101f","webpack://tool-base/./src/components/ClassificationBanners.vue?ce83","webpack://tool-base/./src/components/ClassificationBanners.vue","webpack://tool-base/src/App.vue","webpack://tool-base/./src/App.vue?b39b","webpack://tool-base/./src/App.vue","webpack://tool-base/./src/router.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/plugins/store.js","webpack://tool-base/./src/plugins/vuetify.js","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadge.vue?b804","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator.vue?fcf9","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator.vue?80c7","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator.vue","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator.vue?2030","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadge.vue?f3c6","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadge.vue","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadge.vue?02ea","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon.vue?64b4","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon.vue","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon.vue?8341","webpack://tool-base/../packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon.vue?5b13","webpack://tool-base/./src/cosmosc2-tool-base.js"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"tool-base:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.22.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<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 * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport axios from './axios.js'\n\nconst request = async function (\n method,\n url,\n { data, params = {}, headers, noAuth = false, noScope = false } = {}\n) {\n if (!noAuth) {\n try {\n await CosmosAuth.updateToken(CosmosAuth.defaultMinValidity)\n } catch (error) {\n CosmosAuth.login()\n }\n headers['Authorization'] = localStorage.cosmosToken\n }\n if (!noScope && !params['scope']) {\n params['scope'] = localStorage.scope\n }\n return axios({\n method,\n url,\n data,\n params,\n headers,\n })\n}\n\nconst acceptOnlyDefaultHeaders = {\n Accept: 'application/json',\n}\n\nconst fullDefaultHeaders = {\n ...acceptOnlyDefaultHeaders,\n 'Content-Type': 'application/json',\n}\n\nexport default {\n get: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('get', path, { params, headers, noScope, noAuth })\n },\n\n put: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('put', path, { data, params, headers, noScope, noAuth })\n },\n\n post: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('post', path, { data, params, headers, noScope, noAuth })\n },\n\n delete: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('delete', path, { params, headers, noScope, noAuth })\n },\n}\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport axios from 'axios'\nimport Vue from 'vue'\n\nconst vueInstance = new Vue()\n\nconst axiosInstance = axios.create({\n baseURL: location.origin,\n timeout: 60000,\n params: {},\n})\n\naxiosInstance.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n delete localStorage.cosmosToken\n CosmosAuth.login(location.href)\n } else {\n // Individual tools can set axiosIgnoreResponse to an error code\n // they potentially expect, e.g. '404', in which case we ignore it\n // Since localStorage only supports strings call toString on the status\n if (\n localStorage.axiosIgnoreResponse === error.response.status.toString()\n ) {\n return Promise.reject(error)\n }\n let body = `HTTP ${error.response.status} - `\n if (error.response?.statusText) {\n body += `${error.response.statusText} `\n }\n if (error.response?.config?.data) {\n body += `${error.response.config.data} `\n }\n if (error.response?.data?.message) {\n body += `${error.response.data.message}`\n } else if (error.response?.data?.exception) {\n body += `${error.response.data.exception}`\n } else if (error.response?.data?.error?.message) {\n if (error.response.data.error.class) {\n body += `${error.response.data.error.class} `\n }\n body += `${error.response.data.error.message}`\n } else {\n body += `${error.response?.data}`\n }\n vueInstance.$notify.serious({\n title: 'Network error',\n body,\n })\n }\n throw error\n } else {\n throw error\n }\n }\n)\n\nexport default axiosInstance\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".splash-screen{width:100%;height:100%;position:fixed;background:#001724;background:-moz-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 23, 36)));background:-webkit-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-o-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-ms-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:linear-gradient(to right, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=$left, endColorstr=$right,GradientType=1 )}.splash-screen .splash-container{width:40px;height:40px;margin:0px auto;position:absolute;left:50%;top:50%;margin-left:-20px;margin-top:-20px}.splash-screen .splash-double-bounce1,.splash-screen .splash-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:splash-bounce 2s infinite ease-in-out;animation:splash-bounce 2s infinite ease-in-out}.splash-screen .splash-double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes splash-bounce{0%,100%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes splash-bounce{0%,100%{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}*{box-sizing:border-box}html{height:100%}body{font-family:\\\"Open Sans\\\",\\\"Helvetica Neue\\\",sans-serif;font-size:14px;color:#333;margin:0;padding:0;min-height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none}.layout-wrapper{padding:0}.v-application--wrap{min-height:0 !important}.layout-topbar{position:fixed;height:80px;padding:.7em 1.5em 0em 1.5em;color:#fff;z-index:999;right:0;background:#001724;background:-moz-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 23, 36)));background:-webkit-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-o-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-ms-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:linear-gradient(to right, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=$left, endColorstr=$right,GradientType=1 );-moz-transition:left .2s;-o-transition:left .2s;-webkit-transition:left .2s;transition:left .2s}.layout-topbar:after{content:\\\"\\\";display:table;clear:both}.layout-topbar .layout-topbar-icons{float:right;display:block;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-duration:.5s}.layout-topbar .layout-topbar-icons button{position:relative;color:#fff;margin-left:20px;display:inline-block;text-decoration:none;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-topbar .layout-topbar-icons button:hover{color:#c3e8fb}.layout-topbar .layout-topbar-icons button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2em #8dcdff}.layout-topbar .layout-topbar-icons button span.layout-topbar-icon{font-size:2em}.layout-topbar .layout-topbar-icons button span.layout-topbar-item-text{font-size:20px;display:none}.layout-topbar .layout-topbar-icons button span.layout-topbar-badge{position:absolute;font-size:10px;right:-5px;top:-5px;width:16px;height:16px;text-align:center;line-height:16px;color:#fff;background-color:#ef6262;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.layout-topbar .layout-topbar-icons .layout-topbar-search{padding:0;position:relative;display:inline-block;top:-4px}.layout-topbar .layout-topbar-icons .layout-topbar-search input{display:inline-block;border:0 none;font-size:14px;background:rgba(0,0,0,0);border-bottom:2px solid #fff;outline:0 none;-webkit-box-shadow:none;box-shadow:none;color:#fff;width:100px;padding:1px 20px 1px 1px;margin:0px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.layout-topbar .layout-topbar-icons .layout-topbar-search input::-webkit-input-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input:-moz-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input::-moz-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input:-ms-input-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search .layout-topbar-search-icon{font-size:18px;position:absolute;top:-1px;right:0px}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input{border-bottom-color:#c3e8fb}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input::-webkit-input-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input:-moz-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input::-moz-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input:-ms-input-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover .layout-topbar-search-icon{color:#c3e8fb}.layout-topbar .layout-menu-button{cursor:pointer;display:inline-block;text-decoration:none;color:#fff;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-topbar .layout-menu-button span{font-size:2em}.layout-topbar .layout-menu-button:hover{color:#c3e8fb}.layout-topbar button{cursor:pointer}.layout-sidebar{position:fixed;width:250px;height:100%;z-index:999;overflow-y:auto;user-select:none;-moz-user-select:none;-webkit-user-select:none;-moz-transition:transform .2s;-o-transition:transform .2s;-webkit-transition:transform .2s;transition:transform .2s;-webkit-box-shadow:0 0 6px 0 rgba(0,0,0,.16);-moz-box-shadow:0 0 6px 0 rgba(0,0,0,.16);box-shadow:0 0 6px 0 rgba(0,0,0,.16)}.layout-sidebar.layout-sidebar-enter,.layout-sidebar.layout-sidebar-leave-to{transform:translateX(-100%)}.layout-sidebar .layout-logo{text-align:center;margin-top:24px}.layout-sidebar .menuitem-badge{display:inline-block;margin-left:4px;font-size:10px;width:16px;height:16px;line-height:16px;text-align:center;color:#fff;background-color:#007be5;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.layout-profile{text-align:center;padding:10px 0 10px 0}.layout-profile img{width:56px;margin:10px}.layout-profile .layout-profile-link{cursor:pointer;display:inline-block;margin-bottom:.75em;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-profile .layout-profile-link i{display:inline-block;font-size:16px;vertical-align:middle}.layout-profile ul{list-style-type:none;padding:0;margin:0}.layout-profile ul li button{width:100%;padding:1em;border:0 none;border-radius:0;cursor:pointer;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-profile ul li button:hover{color:#0388e5}.layout-profile ul li button span{margin-left:.25em;vertical-align:middle}.layout-profile ul li button i{vertical-align:middle}.layout-profile ul.layout-submenu-wrapper-enter,.layout-profile ul.layout-submenu-wrapper-leave-to{max-height:0}.layout-profile ul.layout-submenu-wrapper-enter-to,.layout-profile ul.layout-submenu-wrapper-leave{max-height:1000px}.layout-profile ul.layout-submenu-wrapper-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0, 1, 0, 1)}.layout-profile ul.layout-submenu-wrapper-enter-active{overflow:hidden;transition:max-height 1s ease-in-out}.layout-sidebar-light .layout-profile .layout-profile-link{color:#232428}.layout-sidebar-light .layout-profile .layout-profile-link:hover{color:#0388e5}.layout-sidebar-light .layout-profile ul{background-color:#fff}.layout-sidebar-light .layout-profile ul li button{color:#232428}.layout-sidebar-light .layout-profile ul li button:hover{color:#0388e5}.layout-sidebar-dark .layout-profile .layout-profile-link{color:#fff}.layout-sidebar-dark .layout-profile .layout-profile-link:hover{color:#005a8f}.layout-sidebar-dark .layout-profile ul{background-color:#002439}.layout-sidebar-dark .layout-profile ul li button{color:#fff}.layout-sidebar-dark .layout-profile ul li button:hover{color:#005a8f}.layout-menu-container{padding-bottom:120px}.layout-menu{list-style-type:none;margin:0;padding:0}.layout-menu li a{cursor:pointer;position:relative;text-decoration:none;display:block;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-menu li a i{font-size:18px;vertical-align:middle}.layout-menu li a span{margin-left:.25em;vertical-align:middle;line-height:18px;display:inline-block}.layout-menu li a .menuitem-toggle-icon{position:absolute;top:50%;right:1em;margin-top:-9px}.layout-menu li a.router-link-active{font-weight:700}.layout-menu li a:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2em #8dcdff}.layout-menu li.active-menuitem>a .menuitem-toggle-icon:before{content:\\\"\\\"}.layout-menu>li>a{padding:1em}.layout-menu>li>a span{font-size:14px}.layout-menu>li:last-child>a{border-bottom:1px solid rgba(207,211,224,.6)}.layout-menu>li ul{list-style-type:none;margin:0;padding:0;padding-left:1.5em}.layout-menu>li ul li a{cursor:pointer;padding:.75em 1em;border-top:0 none}.layout-menu>li ul li a span{font-size:13px}.layout-menu>li ul li:last-child{padding-bottom:1em}.layout-menu>li ul.layout-submenu-wrapper-enter,.layout-menu>li ul.layout-submenu-wrapper-leave-to{max-height:0}.layout-menu>li ul.layout-submenu-wrapper-enter-to,.layout-menu>li ul.layout-submenu-wrapper-leave{max-height:1000px}.layout-menu>li ul.layout-submenu-wrapper-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0, 1, 0, 1)}.layout-menu>li ul.layout-submenu-wrapper-enter-active{overflow:hidden;transition:max-height 1s ease-in-out}.layout-sidebar-light{background:#f3f4f9;background:-moz-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f3f4f9), color-stop(100%, #d7dbe8));background:-webkit-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-o-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-ms-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:linear-gradient(to bottom, #f3f4f9 0%, #d7dbe8 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"#ffffff\\\", endColorstr=\\\"#000000\\\",GradientType=0 )}.layout-sidebar-light .layout-menu>li>a{border-top:1px solid rgba(207,211,224,.6)}.layout-sidebar-light .layout-menu>li:last-child>a{border-bottom:1px solid rgba(207,211,224,.6)}.layout-sidebar-light .layout-menu>li ul{background-color:#fff}.layout-sidebar-light .layout-menu li a{color:#232428}.layout-sidebar-light .layout-menu li a.router-link-active{color:#4dacff}.layout-sidebar-light .layout-menu li a:hover{color:#0388e5}.layout-sidebar-light .layout-menu li.active-menuitem>a{background-color:#fff;color:#0388e5}.layout-sidebar-dark{background:#001724;background:-moz-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 54, 86)));background:-webkit-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-o-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-ms-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:linear-gradient(to bottom, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"#ffffff\\\", endColorstr=\\\"#000000\\\",GradientType=0 )}.layout-sidebar-dark .layout-menu>li>a{border-top:1px solid rgba(52,56,65,.6)}.layout-sidebar-dark .layout-menu>li:last-child>a{border-bottom:1px solid rgba(52,56,65,.6)}.layout-sidebar-dark .layout-menu>li ul{background-color:#002439}.layout-sidebar-dark .layout-menu li a{color:#fff}.layout-sidebar-dark .layout-menu li a.router-link-active{color:#4dacff}.layout-sidebar-dark .layout-menu li a:hover{color:#005a8f}.layout-sidebar-dark .layout-menu li.active-menuitem>a{background-color:#002439;color:#4dacff}.layout-main{-moz-transition:margin-left .2s;-o-transition:margin-left .2s;-webkit-transition:margin-left .2s;transition:margin-left .2s;padding:96px 16px 16px 16px}.layout-footer{-moz-transition:margin-left .2s;-o-transition:margin-left .2s;-webkit-transition:margin-left .2s;transition:margin-left .2s;background-color:#182635;padding:1em 2em}.layout-footer img{vertical-align:middle}.layout-footer .footer-text{vertical-align:middle}@media(min-width: 1025px){.layout-wrapper.layout-overlay .layout-topbar{left:0}.layout-wrapper.layout-overlay .layout-main,.layout-wrapper.layout-overlay .layout-footer{margin-left:0}.layout-wrapper.layout-overlay.layout-overlay-sidebar-active .layout-sidebar{left:0}.layout-wrapper.layout-overlay.layout-overlay-sidebar-active .layout-topbar{left:250px}.layout-wrapper.layout-static .layout-topbar{left:250px}.layout-wrapper.layout-static .layout-main,.layout-wrapper.layout-static .layout-footer{margin-left:250px}.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-topbar{left:0}.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-main,.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-footer{margin-left:0}}@media(max-width: 1024px){.layout-wrapper .layout-topbar{left:0}.layout-wrapper .layout-main,.layout-wrapper .layout-footer{margin-left:0}.layout-wrapper .layout-sidebar{-moz-transition:left .2s;-o-transition:left .2s;-webkit-transition:left .2s;transition:left .2s;left:-250px;margin-top:50px}.layout-wrapper .layout-mask{display:none;position:fixed;width:100%;height:100%;top:50px;left:0;z-index:998;background-color:#424242;opacity:.7;filter:alpha(opacity=70)}.layout-wrapper.layout-mobile-sidebar-active .layout-sidebar{left:0}.layout-wrapper.layout-mobile-sidebar-active .layout-mask{display:block}.body-overflow-hidden{overflow:hidden}}h1{font-weight:normal;margin:0;font-size:24px}h2{font-size:20px;font-weight:normal;margin:0}.card{background-color:#fff;padding:1em;margin-bottom:16px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.card.card-w-title{padding-bottom:2em}.card h1{margin:1em 0 .5em 0;border-bottom:1px solid #d5d5d5;padding:.1em;font-size:24px}.card h1:first-child{margin:0 0 .5em 0}.docs pre[class*=language-]{padding:0 !important;background:rgba(0,0,0,0);overflow:visible}.docs pre[class*=language-]>code{border-left:0 none;box-shadow:none;font-size:14px}.dashboard .summary{position:relative}.dashboard .summary .title{font-size:20px}.dashboard .summary .detail{color:#707070;display:block;margin-top:10px}.dashboard .summary .count{color:#fff;position:absolute;top:10px;right:10px;font-size:24px;padding:7px 14px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.dashboard .summary .count.visitors{background-color:#20d077}.dashboard .summary .count.purchases{background-color:#f9c851}.dashboard .summary .count.revenue{background-color:#007be5}.dashboard .highlight-box{height:100px}.dashboard .highlight-box:after{content:\\\"\\\";display:table;clear:both}.dashboard .highlight-box .initials{height:100%;float:left;width:50%;text-align:center;padding:1em}.dashboard .highlight-box .initials>span{font-size:48px}.dashboard .highlight-box .highlight-details{height:100%;background-color:#fff;float:left;width:50%;padding:1em}.dashboard .highlight-box .highlight-details i{font-size:24px;vertical-align:middle;margin-right:.25em}.dashboard .highlight-box .highlight-details .count{color:#707070;font-size:36px;display:block}.dashboard .task-list{list-style-type:none;margin:0;padding:0}.dashboard .task-list li{padding:.5em .25em;border-bottom:1px solid #e3e3e3}.dashboard .task-list li:after{content:\\\"\\\";display:table;clear:both}.dashboard .task-list .p-checkbox{vertical-align:middle;margin-right:.5em}.dashboard .task-list .task-name{vertical-align:middle}.dashboard .task-list i{float:right;font-size:24px;color:#707070}.dashboard .task-list .p-panel-content{min-height:256px}.dashboard .contact-form .p-panel-content{min-height:256px}.dashboard .contacts ul{list-style-type:none;padding:0;margin:0}.dashboard .contacts ul li{border-bottom:1px solid #e3e3e3}.dashboard .contacts ul li button{padding:9px;width:100%;box-sizing:border-box;text-decoration:none;position:relative;display:block;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:background-color .2s;-o-transition:background-color .2s;-webkit-transition:background-color .2s;transition:background-color .2s}.dashboard .contacts ul li button .name{position:absolute;right:10px;top:10px;font-size:18px}.dashboard .contacts ul li button .email{position:absolute;right:10px;top:30px;font-size:14px;color:#707070}.dashboard .contacts ul li button:hover{cursor:pointer;background-color:#eee}.dashboard .contacts ul li:last-child{border:0}.dashboard .contacts .p-panel-content{min-height:256px}.dashboard .activity-list{list-style-type:none;padding:0;margin:0}.dashboard .activity-list li{border-bottom:1px solid #e3e3e3;padding:16px 8px}.dashboard .activity-list li .count{font-size:24px;color:#fff;background-color:#007be5;font-weight:700;display:inline-block;padding:.25em .5em;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.dashboard .activity-list li:first-child{border-top:1px solid #e3e3e3}.dashboard .activity-list li:last-child{border:0}.dashboard .activity-list li .p-col-6:first-child{font-size:18px;padding:.5em 0 0 .5em}.dashboard .activity-list li .p-col-6:last-child{text-align:right;color:#707070}.cosmos-green{color:#009600 !important}.cosmos-yellow{color:#be8700 !important}.cosmos-red{color:red !important}.cosmos-blue{color:#0064ff !important}.cosmos-purple{color:#c800c8 !important}.cosmos-black{color:#000 !important}.cosmos-white{color:#fff !important}.theme--dark.v-system-bar{background-color:var(--v-primary-base) !important}.theme--dark.v-system-bar.active{background-color:var(--v-secondary-base) !important}body,.theme--dark.v-application,.theme--dark.v-main,.theme--dark.v-content{background-color:var(--v-tertiary-base) !important}.theme--dark.v-sheet.v-list,.theme--dark.v-list,.theme--dark.v-list-item{background-color:var(--v-primary-darken2) !important}.theme--dark.v-data-table,.theme--dark.v-item-group,.theme--dark.v-dialog,.theme--dark.v-card,.theme--dark.v-tab,.theme--dark.v-sheet,.theme--dark.v-date-picker-header,.theme--dark.v-date-picker-table,.theme--dark.v-time-picker-clock__container,.theme--dark.p-menubar{background-color:var(--v-tertiary-darken2) !important}input{color-scheme:dark}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/layout.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_splash.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/_variables.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_mixins.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_main.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_topbar.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_sidebar.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_profile.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_menu.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_content.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_footer.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_responsive.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_utils.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/sass/_dashboard.scss\",\"webpack://./../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/_overrides.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".splash-screen{width:100%;height:100%;position:fixed;background:#001724;background:-moz-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 23, 36)));background:-webkit-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-o-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-ms-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:linear-gradient(to right, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=$left, endColorstr=$right,GradientType=1 )}.splash-screen .splash-container{width:40px;height:40px;margin:0px auto;position:absolute;left:50%;top:50%;margin-left:-20px;margin-top:-20px}.splash-screen .splash-double-bounce1,.splash-screen .splash-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:splash-bounce 2s infinite ease-in-out;animation:splash-bounce 2s infinite ease-in-out}.splash-screen .splash-double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes splash-bounce{0%,100%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes splash-bounce{0%,100%{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}*{box-sizing:border-box}html{height:100%}body{font-family:\\\"Open Sans\\\",\\\"Helvetica Neue\\\",sans-serif;font-size:14px;color:#333;margin:0;padding:0;min-height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none}.layout-wrapper{padding:0}.v-application--wrap{min-height:0 !important}.layout-topbar{position:fixed;height:80px;padding:.7em 1.5em 0em 1.5em;color:#fff;z-index:999;right:0;background:#001724;background:-moz-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 23, 36)));background:-webkit-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-o-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-ms-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:linear-gradient(to right, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=$left, endColorstr=$right,GradientType=1 );-moz-transition:left .2s;-o-transition:left .2s;-webkit-transition:left .2s;transition:left .2s}.layout-topbar:after{content:\\\"\\\";display:table;clear:both}.layout-topbar .layout-topbar-icons{float:right;display:block;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-duration:.5s}.layout-topbar .layout-topbar-icons button{position:relative;color:#fff;margin-left:20px;display:inline-block;text-decoration:none;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-topbar .layout-topbar-icons button:hover{color:#c3e8fb}.layout-topbar .layout-topbar-icons button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2em #8dcdff}.layout-topbar .layout-topbar-icons button span.layout-topbar-icon{font-size:2em}.layout-topbar .layout-topbar-icons button span.layout-topbar-item-text{font-size:20px;display:none}.layout-topbar .layout-topbar-icons button span.layout-topbar-badge{position:absolute;font-size:10px;right:-5px;top:-5px;width:16px;height:16px;text-align:center;line-height:16px;color:#fff;background-color:#ef6262;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.layout-topbar .layout-topbar-icons .layout-topbar-search{padding:0;position:relative;display:inline-block;top:-4px}.layout-topbar .layout-topbar-icons .layout-topbar-search input{display:inline-block;border:0 none;font-size:14px;background:rgba(0,0,0,0);border-bottom:2px solid #fff;outline:0 none;-webkit-box-shadow:none;box-shadow:none;color:#fff;width:100px;padding:1px 20px 1px 1px;margin:0px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.layout-topbar .layout-topbar-icons .layout-topbar-search input::-webkit-input-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input:-moz-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input::-moz-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input:-ms-input-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search .layout-topbar-search-icon{font-size:18px;position:absolute;top:-1px;right:0px}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input{border-bottom-color:#c3e8fb}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input::-webkit-input-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input:-moz-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input::-moz-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input:-ms-input-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover .layout-topbar-search-icon{color:#c3e8fb}.layout-topbar .layout-menu-button{cursor:pointer;display:inline-block;text-decoration:none;color:#fff;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-topbar .layout-menu-button span{font-size:2em}.layout-topbar .layout-menu-button:hover{color:#c3e8fb}.layout-topbar button{cursor:pointer}.layout-sidebar{position:fixed;width:250px;height:100%;z-index:999;overflow-y:auto;user-select:none;-moz-user-select:none;-webkit-user-select:none;-moz-transition:transform .2s;-o-transition:transform .2s;-webkit-transition:transform .2s;transition:transform .2s;-webkit-box-shadow:0 0 6px 0 rgba(0,0,0,.16);-moz-box-shadow:0 0 6px 0 rgba(0,0,0,.16);box-shadow:0 0 6px 0 rgba(0,0,0,.16)}.layout-sidebar.layout-sidebar-enter,.layout-sidebar.layout-sidebar-leave-to{transform:translateX(-100%)}.layout-sidebar .layout-logo{text-align:center;margin-top:24px}.layout-sidebar .menuitem-badge{display:inline-block;margin-left:4px;font-size:10px;width:16px;height:16px;line-height:16px;text-align:center;color:#fff;background-color:#007be5;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.layout-profile{text-align:center;padding:10px 0 10px 0}.layout-profile img{width:56px;margin:10px}.layout-profile .layout-profile-link{cursor:pointer;display:inline-block;margin-bottom:.75em;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-profile .layout-profile-link i{display:inline-block;font-size:16px;vertical-align:middle}.layout-profile ul{list-style-type:none;padding:0;margin:0}.layout-profile ul li button{width:100%;padding:1em;border:0 none;border-radius:0;cursor:pointer;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-profile ul li button:hover{color:#0388e5}.layout-profile ul li button span{margin-left:.25em;vertical-align:middle}.layout-profile ul li button i{vertical-align:middle}.layout-profile ul.layout-submenu-wrapper-enter,.layout-profile ul.layout-submenu-wrapper-leave-to{max-height:0}.layout-profile ul.layout-submenu-wrapper-enter-to,.layout-profile ul.layout-submenu-wrapper-leave{max-height:1000px}.layout-profile ul.layout-submenu-wrapper-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0, 1, 0, 1)}.layout-profile ul.layout-submenu-wrapper-enter-active{overflow:hidden;transition:max-height 1s ease-in-out}.layout-sidebar-light .layout-profile .layout-profile-link{color:#232428}.layout-sidebar-light .layout-profile .layout-profile-link:hover{color:#0388e5}.layout-sidebar-light .layout-profile ul{background-color:#fff}.layout-sidebar-light .layout-profile ul li button{color:#232428}.layout-sidebar-light .layout-profile ul li button:hover{color:#0388e5}.layout-sidebar-dark .layout-profile .layout-profile-link{color:#fff}.layout-sidebar-dark .layout-profile .layout-profile-link:hover{color:#005a8f}.layout-sidebar-dark .layout-profile ul{background-color:#002439}.layout-sidebar-dark .layout-profile ul li button{color:#fff}.layout-sidebar-dark .layout-profile ul li button:hover{color:#005a8f}.layout-menu-container{padding-bottom:120px}.layout-menu{list-style-type:none;margin:0;padding:0}.layout-menu li a{cursor:pointer;position:relative;text-decoration:none;display:block;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-menu li a i{font-size:18px;vertical-align:middle}.layout-menu li a span{margin-left:.25em;vertical-align:middle;line-height:18px;display:inline-block}.layout-menu li a .menuitem-toggle-icon{position:absolute;top:50%;right:1em;margin-top:-9px}.layout-menu li a.router-link-active{font-weight:700}.layout-menu li a:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2em #8dcdff}.layout-menu li.active-menuitem>a .menuitem-toggle-icon:before{content:\\\"\\\"}.layout-menu>li>a{padding:1em}.layout-menu>li>a span{font-size:14px}.layout-menu>li:last-child>a{border-bottom:1px solid rgba(207,211,224,.6)}.layout-menu>li ul{list-style-type:none;margin:0;padding:0;padding-left:1.5em}.layout-menu>li ul li a{cursor:pointer;padding:.75em 1em;border-top:0 none}.layout-menu>li ul li a span{font-size:13px}.layout-menu>li ul li:last-child{padding-bottom:1em}.layout-menu>li ul.layout-submenu-wrapper-enter,.layout-menu>li ul.layout-submenu-wrapper-leave-to{max-height:0}.layout-menu>li ul.layout-submenu-wrapper-enter-to,.layout-menu>li ul.layout-submenu-wrapper-leave{max-height:1000px}.layout-menu>li ul.layout-submenu-wrapper-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0, 1, 0, 1)}.layout-menu>li ul.layout-submenu-wrapper-enter-active{overflow:hidden;transition:max-height 1s ease-in-out}.layout-sidebar-light{background:#f3f4f9;background:-moz-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f3f4f9), color-stop(100%, #d7dbe8));background:-webkit-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-o-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-ms-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:linear-gradient(to bottom, #f3f4f9 0%, #d7dbe8 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"#ffffff\\\", endColorstr=\\\"#000000\\\",GradientType=0 )}.layout-sidebar-light .layout-menu>li>a{border-top:1px solid rgba(207,211,224,.6)}.layout-sidebar-light .layout-menu>li:last-child>a{border-bottom:1px solid rgba(207,211,224,.6)}.layout-sidebar-light .layout-menu>li ul{background-color:#fff}.layout-sidebar-light .layout-menu li a{color:#232428}.layout-sidebar-light .layout-menu li a.router-link-active{color:#4dacff}.layout-sidebar-light .layout-menu li a:hover{color:#0388e5}.layout-sidebar-light .layout-menu li.active-menuitem>a{background-color:#fff;color:#0388e5}.layout-sidebar-dark{background:#001724;background:-moz-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 54, 86)));background:-webkit-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-o-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-ms-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:linear-gradient(to bottom, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\\"#ffffff\\\", endColorstr=\\\"#000000\\\",GradientType=0 )}.layout-sidebar-dark .layout-menu>li>a{border-top:1px solid rgba(52,56,65,.6)}.layout-sidebar-dark .layout-menu>li:last-child>a{border-bottom:1px solid rgba(52,56,65,.6)}.layout-sidebar-dark .layout-menu>li ul{background-color:#002439}.layout-sidebar-dark .layout-menu li a{color:#fff}.layout-sidebar-dark .layout-menu li a.router-link-active{color:#4dacff}.layout-sidebar-dark .layout-menu li a:hover{color:#005a8f}.layout-sidebar-dark .layout-menu li.active-menuitem>a{background-color:#002439;color:#4dacff}.layout-main{-moz-transition:margin-left .2s;-o-transition:margin-left .2s;-webkit-transition:margin-left .2s;transition:margin-left .2s;padding:96px 16px 16px 16px}.layout-footer{-moz-transition:margin-left .2s;-o-transition:margin-left .2s;-webkit-transition:margin-left .2s;transition:margin-left .2s;background-color:#182635;padding:1em 2em}.layout-footer img{vertical-align:middle}.layout-footer .footer-text{vertical-align:middle}@media(min-width: 1025px){.layout-wrapper.layout-overlay .layout-topbar{left:0}.layout-wrapper.layout-overlay .layout-main,.layout-wrapper.layout-overlay .layout-footer{margin-left:0}.layout-wrapper.layout-overlay.layout-overlay-sidebar-active .layout-sidebar{left:0}.layout-wrapper.layout-overlay.layout-overlay-sidebar-active .layout-topbar{left:250px}.layout-wrapper.layout-static .layout-topbar{left:250px}.layout-wrapper.layout-static .layout-main,.layout-wrapper.layout-static .layout-footer{margin-left:250px}.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-topbar{left:0}.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-main,.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-footer{margin-left:0}}@media(max-width: 1024px){.layout-wrapper .layout-topbar{left:0}.layout-wrapper .layout-main,.layout-wrapper .layout-footer{margin-left:0}.layout-wrapper .layout-sidebar{-moz-transition:left .2s;-o-transition:left .2s;-webkit-transition:left .2s;transition:left .2s;left:-250px;margin-top:50px}.layout-wrapper .layout-mask{display:none;position:fixed;width:100%;height:100%;top:50px;left:0;z-index:998;background-color:#424242;opacity:.7;filter:alpha(opacity=70)}.layout-wrapper.layout-mobile-sidebar-active .layout-sidebar{left:0}.layout-wrapper.layout-mobile-sidebar-active .layout-mask{display:block}.body-overflow-hidden{overflow:hidden}}h1{font-weight:normal;margin:0;font-size:24px}h2{font-size:20px;font-weight:normal;margin:0}.card{background-color:#fff;padding:1em;margin-bottom:16px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.card.card-w-title{padding-bottom:2em}.card h1{margin:1em 0 .5em 0;border-bottom:1px solid #d5d5d5;padding:.1em;font-size:24px}.card h1:first-child{margin:0 0 .5em 0}.docs pre[class*=language-]{padding:0 !important;background:rgba(0,0,0,0);overflow:visible}.docs pre[class*=language-]>code{border-left:0 none;box-shadow:none;font-size:14px}.dashboard .summary{position:relative}.dashboard .summary .title{font-size:20px}.dashboard .summary .detail{color:#707070;display:block;margin-top:10px}.dashboard .summary .count{color:#fff;position:absolute;top:10px;right:10px;font-size:24px;padding:7px 14px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.dashboard .summary .count.visitors{background-color:#20d077}.dashboard .summary .count.purchases{background-color:#f9c851}.dashboard .summary .count.revenue{background-color:#007be5}.dashboard .highlight-box{height:100px}.dashboard .highlight-box:after{content:\\\"\\\";display:table;clear:both}.dashboard .highlight-box .initials{height:100%;float:left;width:50%;text-align:center;padding:1em}.dashboard .highlight-box .initials>span{font-size:48px}.dashboard .highlight-box .highlight-details{height:100%;background-color:#fff;float:left;width:50%;padding:1em}.dashboard .highlight-box .highlight-details i{font-size:24px;vertical-align:middle;margin-right:.25em}.dashboard .highlight-box .highlight-details .count{color:#707070;font-size:36px;display:block}.dashboard .task-list{list-style-type:none;margin:0;padding:0}.dashboard .task-list li{padding:.5em .25em;border-bottom:1px solid #e3e3e3}.dashboard .task-list li:after{content:\\\"\\\";display:table;clear:both}.dashboard .task-list .p-checkbox{vertical-align:middle;margin-right:.5em}.dashboard .task-list .task-name{vertical-align:middle}.dashboard .task-list i{float:right;font-size:24px;color:#707070}.dashboard .task-list .p-panel-content{min-height:256px}.dashboard .contact-form .p-panel-content{min-height:256px}.dashboard .contacts ul{list-style-type:none;padding:0;margin:0}.dashboard .contacts ul li{border-bottom:1px solid #e3e3e3}.dashboard .contacts ul li button{padding:9px;width:100%;box-sizing:border-box;text-decoration:none;position:relative;display:block;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:background-color .2s;-o-transition:background-color .2s;-webkit-transition:background-color .2s;transition:background-color .2s}.dashboard .contacts ul li button .name{position:absolute;right:10px;top:10px;font-size:18px}.dashboard .contacts ul li button .email{position:absolute;right:10px;top:30px;font-size:14px;color:#707070}.dashboard .contacts ul li button:hover{cursor:pointer;background-color:#eee}.dashboard .contacts ul li:last-child{border:0}.dashboard .contacts .p-panel-content{min-height:256px}.dashboard .activity-list{list-style-type:none;padding:0;margin:0}.dashboard .activity-list li{border-bottom:1px solid #e3e3e3;padding:16px 8px}.dashboard .activity-list li .count{font-size:24px;color:#fff;background-color:#007be5;font-weight:700;display:inline-block;padding:.25em .5em;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.dashboard .activity-list li:first-child{border-top:1px solid #e3e3e3}.dashboard .activity-list li:last-child{border:0}.dashboard .activity-list li .p-col-6:first-child{font-size:18px;padding:.5em 0 0 .5em}.dashboard .activity-list li .p-col-6:last-child{text-align:right;color:#707070}.cosmos-green{color:#009600 !important}.cosmos-yellow{color:#be8700 !important}.cosmos-red{color:red !important}.cosmos-blue{color:#0064ff !important}.cosmos-purple{color:#c800c8 !important}.cosmos-black{color:#000 !important}.cosmos-white{color:#fff !important}.theme--dark.v-system-bar{background-color:var(--v-primary-base) !important}.theme--dark.v-system-bar.active{background-color:var(--v-secondary-base) !important}body,.theme--dark.v-application,.theme--dark.v-main,.theme--dark.v-content{background-color:var(--v-tertiary-base) !important}.theme--dark.v-sheet.v-list,.theme--dark.v-list,.theme--dark.v-list-item{background-color:var(--v-primary-darken2) !important}.theme--dark.v-data-table,.theme--dark.v-item-group,.theme--dark.v-dialog,.theme--dark.v-card,.theme--dark.v-tab,.theme--dark.v-sheet,.theme--dark.v-date-picker-header,.theme--dark.v-date-picker-table,.theme--dark.v-time-picker-clock__container,.theme--dark.p-menubar{background-color:var(--v-tertiary-darken2) !important}input{color-scheme:dark}\",\".splash-screen {\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n @include linear-gradient-left($topbarLeftBgColor, $topbarRightBgColor);\\n\\n .splash-container {\\n width: 40px;\\n height: 40px;\\n margin: 0px auto;\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n margin-left: -20px;\\n margin-top: -20px;\\n\\n }\\n\\n .splash-double-bounce1, .splash-double-bounce2 {\\n width: 100%;\\n height: 100%;\\n border-radius: 50%;\\n background-color: $topbarItemColor;\\n opacity: 0.6;\\n position: absolute;\\n top: 0;\\n left: 0;\\n\\n -webkit-animation: splash-bounce 2.0s infinite ease-in-out;\\n animation: splash-bounce 2.0s infinite ease-in-out;\\n }\\n\\n .splash-double-bounce2 {\\n -webkit-animation-delay: -1.0s;\\n animation-delay: -1.0s;\\n }\\n\\n @-webkit-keyframes splash-bounce {\\n 0%, 100% { -webkit-transform: scale(0.0) }\\n 50% { -webkit-transform: scale(1.0) }\\n }\\n\\n @keyframes splash-bounce {\\n 0%, 100% {\\n transform: scale(0.0);\\n -webkit-transform: scale(0.0);\\n } 50% {\\n transform: scale(1.0);\\n -webkit-transform: scale(1.0);\\n }\\n }\\n}\\n\",\"/* General */\\n$fontSize: 14px;\\n$bodyBgColor: #edf0f5;\\n$textColor: #333333;\\n$textSecondaryColor: #707070;\\n$borderRadius: 3px;\\n$dividerColor: #e3e3e3;\\n$transitionDuration: 0.2s;\\n$maskBgColor: #424242;\\n$focusShadowColor: #8dcdff;\\n\\n/* Menu Common */\\n$menuitemBadgeBgColor: #007be5;\\n$menuitemBadgeColor: #ffffff;\\n$submenuFontSize: 13px;\\n$menuitemActiveRouteColor: rgb(77, 172, 255);\\n\\n/* Menu Light */\\n$menuBgColorFirst: #f3f4f9;\\n$menuBgColorLast: #d7dbe8;\\n$menuitemColor: #232428;\\n$menuitemHoverColor: #0388e5;\\n$menuitemActiveColor: #0388e5;\\n$menuitemActiveBgColor: #ffffff;\\n$menuitemBorderColor: rgba(207, 211, 224, 0.6);\\n\\n/* Menu Dark */\\n$menuDarkBgColorFirst: rgb(0, 23, 36);\\n$menuDarkBgColorLast: rgb(0, 54, 86);\\n$menuitemDarkColor: #ffffff;\\n$menuitemDarkHoverColor: rgb(0, 90, 143);\\n$menuitemDarkActiveColor: rgb(77, 172, 255);\\n$menuitemDarkActiveBgColor: rgb(0, 36, 57);\\n$menuitemDarkBorderColor: rgba(52, 56, 65, 0.6);\\n\\n/* Topbar */\\n$topbarLeftBgColor: rgb(0, 23, 36);\\n$topbarRightBgColor: rgb(0, 23, 36);\\n$topbarItemBadgeBgColor: #ef6262;\\n$topbarItemBadgeColor: #ffffff;\\n$topbarItemColor: #ffffff;\\n$topbarItemHoverColor: #c3e8fb;\\n$topbarSearchInputBorderBottomColor: #ffffff;\\n$topbarSearchInputColor: #ffffff;\\n\\n/* Footer */\\n$footerBgColor: rgb(24, 38, 53);\\n\",\"// Icon Override Mixin\\n@mixin icon-override($icon) {\\n &:before {\\n content: $icon;\\n }\\n}\\n\\n// === MIXINS === //\\n@mixin border-radius($val) {\\n -moz-border-radius: $val;\\n -webkit-border-radius: $val;\\n border-radius: $val;\\n}\\n\\n@mixin border-radius-right($val) {\\n -moz-border-radius-topright: $val;\\n -webkit-border-top-right-radius: $val;\\n border-top-right-radius: $val;\\n -moz-border-radius-bottomright: $val;\\n -webkit-border-bottom-right-radius: $val;\\n border-bottom-right-radius: $val; \\n}\\n\\n@mixin border-radius-left($val) {\\n -moz-border-radius-topleft: $val;\\n -webkit-border-top-left-radius: $val;\\n border-top-left-radius: $val;\\n -moz-border-radius-bottomleft: $val;\\n -webkit-border-bottom-left-radius: $val;\\n border-bottom-left-radius: $val;\\n}\\n\\n@mixin border-radius-top($val) {\\n -moz-border-radius-topleft: $val;\\n -webkit-border-top-left-radius: $val;\\n border-top-left-radius: $val;\\n -moz-border-radius-topright: $val;\\n -webkit-border-top-right-radius: $val;\\n border-top-right-radius: $val;\\n}\\n\\n@mixin border-radius-bottom($val) {\\n -moz-border-radius-bottomleft: $val;\\n -webkit-border-bottom-left-radius: $val;\\n border-bottom-left-radius: $val;\\n -moz-border-radius-bottomright: $val;\\n -webkit-border-bottom-right-radius: $val;\\n border-bottom-right-radius: $val;\\n}\\n\\n@mixin linear-gradient($top, $bottom){\\n background: $top; /* Old browsers */\\n background: -moz-linear-gradient(top, $top 0%, $bottom 100%); /* FF3.6+ */\\n background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,$top), color-stop(100%,$bottom)); /* Chrome,Safari4+ */\\n background: -webkit-linear-gradient(top, $top 0%,$bottom 100%); /* Chrome10+,Safari5.1+ */\\n background: -o-linear-gradient(top, $top 0%,$bottom 100%); /* Opera 11.10+ */\\n background: -ms-linear-gradient(top, $top 0%,$bottom 100%); /* IE10+ */\\n background: linear-gradient(to bottom, $top 0%,$bottom 100%); /* W3C */\\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#000000',GradientType=0 ); /* IE6-9 */\\n}\\n\\n@mixin linear-gradient-left($left, $right){\\n background: $left; /* Old browsers */\\n background: -moz-linear-gradient(left, $left 0%, $right 100%); /* FF3.6+ */\\n background: -webkit-gradient(linear, left top, right top, color-stop(0%,$left), color-stop(100%,$right)); /* Chrome,Safari4+ */\\n background: -webkit-linear-gradient(left, $left 0%,$right 100%); /* Chrome10+,Safari5.1+ */\\n background: -o-linear-gradient(left, $left 0%,$right 100%); /* Opera 11.10+ */\\n background: -ms-linear-gradient(left, $left 0%,$right 100%); /* IE10+ */\\n background: linear-gradient(to right, $left 0%,$right 100%); /* W3C */\\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=$left, endColorstr=$right,GradientType=1 ); /* IE6-9 */\\n}\\n\\n@mixin transition($transition...) {\\n -moz-transition: $transition;\\n -o-transition: $transition;\\n -webkit-transition: $transition;\\n transition: $transition;\\n}\\n\\n@mixin transition-property($property) {\\n -webkit-transition-property: $property;\\n -moz-transition-property: $property;\\n -ms-transition-property: $property;\\n -o-transition-property: $property;\\n transition-property: $property;\\n}\\n\\n@mixin transition-duration($duration) {\\n -moz-transition-duration: $duration;\\n -webkit-transition-duration: $duration;\\n -o-transition-duration: $duration;\\n transition-duration: $duration;\\n}\\n\\n@mixin transition-timing-function($function) {\\n -webkit-transition-timing-function: $function;\\n -moz-transition-timing-function: $function;\\n -o-transition-timing-function: $function;\\n transition-timing-function: $function;\\n}\\n\\n@mixin opacity($opacity) {\\n opacity: $opacity;\\n $opacity-ie: $opacity * 100;\\n filter: alpha(opacity=$opacity-ie);\\n}\\n\\n@mixin shadow($value) {\\n -webkit-box-shadow: $value;\\n -moz-box-shadow: $value;\\n box-shadow: $value;\\n}\\n\\n@mixin focused() {\\n outline: 0 none;\\n outline-offset: 0;\\n box-shadow: 0 0 0 0.2em $focusShadowColor;\\n}\\n\\n@mixin focused-inset() {\\n outline: 0 none;\\n outline-offset: 0;\\n box-shadow: inset 0 0 0 0.2em $focusShadowColor;\\n}\\n\\n@mixin clearfix {\\n &:after {\\n content: \\\"\\\";\\n display: table;\\n clear: both;\\n }\\n}\",\"* {\\n box-sizing: border-box;\\n}\\n\\nhtml {\\n height: 100%;\\n}\\n\\nbody {\\n font-family: 'Open Sans', 'Helvetica Neue', sans-serif;\\n font-size: $fontSize;\\n color: $textColor;\\n /* background-color: $bodyBgColor; */\\n margin: 0;\\n padding: 0;\\n min-height: 100%;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\na {\\n text-decoration: none;\\n}\\n\\n.layout-wrapper {\\n padding: 0;\\n}\\n\\n// Don't let the min-height be 100vh because it forces a scroll\\n// with our header and footer\\n.v-application--wrap {\\n min-height: 0 !important;\\n}\\n\",\".layout-topbar {\\n position: fixed;\\n height: 80px;\\n padding: 0.7em 1.5em 0em 1.5em;\\n color: #ffffff;\\n z-index: 999;\\n right: 0;\\n @include clearfix();\\n @include linear-gradient-left($topbarLeftBgColor, $topbarRightBgColor);\\n @include transition(left $transitionDuration);\\n\\n .layout-topbar-icons {\\n float: right;\\n display: block;\\n -moz-animation-duration: 0.5s;\\n -webkit-animation-duration: 0.5s;\\n animation-duration: 0.5s;\\n\\n button {\\n position: relative;\\n color: $topbarItemColor;\\n margin-left: 20px;\\n display: inline-block;\\n text-decoration: none;\\n @include transition(color $transitionDuration);\\n\\n &:hover {\\n color: $topbarItemHoverColor;\\n }\\n\\n &:focus {\\n @include focused();\\n }\\n\\n span {\\n &.layout-topbar-icon {\\n font-size: 2em;\\n }\\n\\n &.layout-topbar-item-text {\\n font-size: 20px;\\n display: none;\\n }\\n\\n &.layout-topbar-badge {\\n position: absolute;\\n font-size: 10px;\\n right: -5px;\\n top: -5px;\\n width: 16px;\\n height: 16px;\\n text-align: center;\\n line-height: 16px;\\n color: $topbarItemBadgeColor;\\n background-color: $topbarItemBadgeBgColor;\\n @include border-radius(50%);\\n }\\n }\\n }\\n\\n .layout-topbar-search {\\n padding: 0;\\n position: relative;\\n display: inline-block;\\n top: -4px;\\n\\n input {\\n display: inline-block;\\n border: 0 none;\\n font-size: $fontSize;\\n background: transparent;\\n border-bottom: 2px solid $topbarSearchInputBorderBottomColor;\\n outline: 0 none;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n color: $topbarSearchInputColor;\\n width: 100px;\\n padding: 1px 20px 1px 1px;\\n margin: 0px;\\n @include border-radius(2px);\\n\\n &::-webkit-input-placeholder {\\n color: $topbarSearchInputColor;\\n opacity: 0.7;\\n @include transition(opacity $transitionDuration);\\n }\\n &:-moz-placeholder {\\n color: $topbarSearchInputColor;\\n opacity: 0.7;\\n @include transition(opacity $transitionDuration);\\n }\\n &::-moz-placeholder {\\n color: $topbarSearchInputColor;\\n opacity: 0.7;\\n @include transition(opacity $transitionDuration);\\n }\\n &:-ms-input-placeholder {\\n color: $topbarSearchInputColor;\\n opacity: 0.7;\\n @include transition(opacity $transitionDuration);\\n }\\n }\\n\\n .layout-topbar-search-icon {\\n font-size: 18px;\\n position: absolute;\\n top: -1px;\\n right: 0px;\\n }\\n\\n &:hover {\\n input {\\n border-bottom-color: $topbarItemHoverColor;\\n &::-webkit-input-placeholder {\\n opacity: 1;\\n }\\n &:-moz-placeholder {\\n opacity: 1;\\n }\\n &::-moz-placeholder {\\n opacity: 1;\\n }\\n &:-ms-input-placeholder {\\n opacity: 1;\\n }\\n }\\n\\n .layout-topbar-search-icon {\\n color: $topbarItemHoverColor;\\n }\\n }\\n }\\n }\\n\\n .layout-menu-button {\\n cursor: pointer;\\n display: inline-block;\\n text-decoration: none;\\n color: $topbarItemColor;\\n @include transition(color $transitionDuration);\\n\\n span {\\n font-size: 2em;\\n }\\n\\n &:hover {\\n color: $topbarItemHoverColor;\\n }\\n }\\n\\n button {\\n cursor: pointer;\\n }\\n}\\n\",\".layout-sidebar {\\n position: fixed;\\n width: 250px;\\n height: 100%;\\n z-index: 999;\\n overflow-y: auto;\\n user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n @include transition(transform $transitionDuration);\\n @include shadow(0 0 6px 0 rgba(0, 0, 0, 0.16));\\n\\n &.layout-sidebar-enter,\\n &.layout-sidebar-leave-to {\\n transform: translateX(-100%);\\n }\\n\\n .layout-logo {\\n text-align: center;\\n margin-top: 24px;\\n }\\n\\n .menuitem-badge {\\n display: inline-block;\\n margin-left: 4px;\\n font-size: 10px;\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n text-align: center;\\n color: $menuitemBadgeColor;\\n background-color: $menuitemBadgeBgColor;\\n @include border-radius(50%);\\n }\\n}\",\".layout-profile {\\n text-align: center;\\n padding: 10px 0 10px 0;\\n\\n img {\\n width: 56px;\\n margin: 10px;\\n }\\n\\n .layout-profile-link {\\n cursor: pointer;\\n display: inline-block;\\n margin-bottom: 0.75em;\\n @include transition(color $transitionDuration);\\n\\n i {\\n display: inline-block;\\n font-size: 16px;\\n vertical-align: middle;\\n }\\n }\\n\\n ul {\\n list-style-type: none;\\n padding: 0;\\n margin: 0;\\n\\n li {\\n button {\\n width: 100%;\\n padding: 1em;\\n border: 0 none;\\n border-radius: 0;\\n cursor: pointer;\\n @include transition(color $transitionDuration);\\n\\n &:hover {\\n color: $menuitemHoverColor;\\n }\\n\\n span {\\n margin-left: 0.25em;\\n vertical-align: middle;\\n }\\n\\n i {\\n vertical-align: middle;\\n }\\n }\\n }\\n\\n &.layout-submenu-wrapper-enter,\\n &.layout-submenu-wrapper-leave-to {\\n max-height: 0;\\n }\\n\\n &.layout-submenu-wrapper-enter-to,\\n &.layout-submenu-wrapper-leave {\\n max-height: 1000px;\\n }\\n\\n &.layout-submenu-wrapper-leave-active {\\n overflow: hidden;\\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1);\\n }\\n\\n &.layout-submenu-wrapper-enter-active {\\n overflow: hidden;\\n transition: max-height 1s ease-in-out;\\n }\\n }\\n}\\n\\n.layout-sidebar-light {\\n .layout-profile {\\n .layout-profile-link {\\n color: $menuitemColor;\\n\\n &:hover {\\n color: $menuitemHoverColor;\\n }\\n }\\n\\n ul {\\n background-color: $menuitemActiveBgColor;\\n\\n li {\\n button {\\n color: $menuitemColor;\\n\\n &:hover {\\n color: $menuitemHoverColor;\\n }\\n }\\n }\\n }\\n }\\n}\\n\\n.layout-sidebar-dark {\\n .layout-profile {\\n .layout-profile-link {\\n color: $menuitemDarkColor;\\n\\n &:hover {\\n color: $menuitemDarkHoverColor;\\n }\\n }\\n\\n ul {\\n background-color: $menuitemDarkActiveBgColor;\\n\\n li {\\n button {\\n color: $menuitemDarkColor;\\n\\n &:hover {\\n color: $menuitemDarkHoverColor;\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\".layout-menu-container {\\n padding-bottom: 120px;\\n}\\n\\n.layout-menu {\\n list-style-type: none;\\n margin: 0;\\n padding: 0;\\n\\n li {\\n a {\\n cursor: pointer;\\n position: relative;\\n text-decoration: none;\\n display: block;\\n @include transition(color $transitionDuration);\\n\\n i {\\n font-size: 18px;\\n vertical-align: middle;\\n }\\n\\n span {\\n margin-left: .25em;\\n vertical-align: middle;\\n line-height: 18px;\\n display: inline-block;\\n }\\n\\n .menuitem-toggle-icon {\\n position: absolute;\\n top: 50%;\\n right: 1em;\\n margin-top: -9px;\\n }\\n\\n &.router-link-active {\\n font-weight: 700;\\n }\\n\\n &:focus {\\n @include focused-inset();\\n }\\n }\\n\\n &.active-menuitem {\\n > a {\\n .menuitem-toggle-icon {\\n @include icon-override(\\\"\\\\e933\\\");\\n }\\n }\\n }\\n }\\n\\n > li {\\n > a {\\n padding: 1em;\\n\\n span {\\n font-size: $fontSize;\\n }\\n }\\n\\n &:last-child {\\n > a {\\n border-bottom: 1px solid $menuitemBorderColor;\\n }\\n }\\n\\n ul {\\n list-style-type: none;\\n margin: 0;\\n padding: 0;\\n padding-left: 1.5em;\\n\\n li {\\n a {\\n cursor: pointer;\\n padding: .75em 1em;\\n border-top: 0 none;\\n\\n span {\\n font-size: $submenuFontSize;\\n }\\n }\\n\\n &:last-child {\\n padding-bottom: 1em;\\n }\\n }\\n\\n &.layout-submenu-wrapper-enter,\\n &.layout-submenu-wrapper-leave-to {\\n max-height: 0;\\n }\\n\\n &.layout-submenu-wrapper-enter-to,\\n &.layout-submenu-wrapper-leave {\\n max-height: 1000px;\\n }\\n\\n &.layout-submenu-wrapper-leave-active {\\n overflow: hidden;\\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1);\\n }\\n\\n &.layout-submenu-wrapper-enter-active {\\n overflow: hidden;\\n transition: max-height 1s ease-in-out;\\n }\\n }\\n }\\n}\\n\\n.layout-sidebar-light {\\n @include linear-gradient($menuBgColorFirst, $menuBgColorLast);\\n\\n .layout-menu {\\n > li {\\n > a {\\n border-top: 1px solid $menuitemBorderColor;\\n }\\n\\n &:last-child {\\n > a {\\n border-bottom: 1px solid $menuitemBorderColor;\\n }\\n }\\n\\n ul {\\n background-color: $menuitemActiveBgColor;\\n }\\n }\\n\\n li {\\n a {\\n color: $menuitemColor;\\n\\n &.router-link-active {\\n color: $menuitemActiveRouteColor;\\n }\\n\\n &:hover {\\n color: $menuitemHoverColor;\\n }\\n }\\n\\n &.active-menuitem {\\n > a {\\n background-color: $menuitemActiveBgColor;\\n color: $menuitemActiveColor;\\n }\\n }\\n }\\n }\\n}\\n\\n.layout-sidebar-dark {\\n @include linear-gradient($menuDarkBgColorFirst, $menuDarkBgColorLast);\\n\\n .layout-menu {\\n > li {\\n > a {\\n border-top: 1px solid $menuitemDarkBorderColor;\\n }\\n\\n &:last-child {\\n > a {\\n border-bottom: 1px solid $menuitemDarkBorderColor;\\n }\\n }\\n\\n ul {\\n background-color: $menuitemDarkActiveBgColor;\\n }\\n }\\n\\n li {\\n a {\\n color: $menuitemDarkColor;\\n\\n &.router-link-active {\\n color: $menuitemActiveRouteColor;\\n }\\n\\n &:hover {\\n color: $menuitemDarkHoverColor;\\n }\\n }\\n\\n &.active-menuitem {\\n > a {\\n background-color: $menuitemDarkActiveBgColor;\\n color: $menuitemDarkActiveColor;\\n }\\n }\\n }\\n }\\n}\",\".layout-main {\\n @include transition(margin-left $transitionDuration);\\n padding: 96px 16px 16px 16px;\\n}\\n\",\".layout-footer {\\n @include transition(margin-left $transitionDuration);\\n background-color: $footerBgColor;\\n padding: 1em 2em;\\n\\n img {\\n vertical-align: middle;\\n }\\n\\n .footer-text {\\n vertical-align: middle;\\n }\\n}\",\"@media (min-width: 1025px) {\\n .layout-wrapper {\\n &.layout-overlay { \\n .layout-topbar {\\n left: 0;\\n }\\n \\n .layout-main, .layout-footer {\\n margin-left: 0;\\n }\\n \\n &.layout-overlay-sidebar-active {\\n .layout-sidebar {\\n left: 0;\\n }\\n \\n .layout-topbar {\\n left: 250px;\\n }\\n }\\n }\\n\\n &.layout-static { \\n .layout-topbar {\\n left: 250px;\\n }\\n \\n .layout-main, .layout-footer {\\n margin-left: 250px;\\n }\\n \\n &.layout-static-sidebar-inactive { \\n .layout-topbar {\\n left: 0;\\n }\\n\\n .layout-main, .layout-footer {\\n margin-left: 0;\\n }\\n }\\n }\\n }\\n}\\n\\n@media (max-width: 1024px) {\\n .layout-wrapper {\\n .layout-topbar {\\n left: 0;\\n }\\n\\n .layout-main, .layout-footer {\\n margin-left: 0;\\n }\\n\\n .layout-sidebar {\\n @include transition(left $transitionDuration);\\n left: -250px;\\n margin-top: 50px;\\n }\\n\\n .layout-mask {\\n display: none;\\n position: fixed;\\n width: 100%;\\n height: 100%;\\n top: 50px;\\n left: 0;\\n z-index: 998;\\n background-color: $maskBgColor;\\n @include opacity(0.7);\\n }\\n\\n &.layout-mobile-sidebar-active {\\n .layout-sidebar {\\n left: -0;\\n }\\n\\n .layout-mask {\\n display: block;\\n }\\n }\\n }\\n\\n .body-overflow-hidden {\\n overflow: hidden;\\n }\\n}\",\"/* Typography */\\nh1 {\\n font-weight: normal;\\n margin: 0;\\n font-size: 24px;\\n}\\n\\nh2 {\\n font-size: 20px;\\n font-weight: normal;\\n margin: 0;\\n}\\n\\n.card {\\n background-color: #ffffff;\\n padding: 1em;\\n margin-bottom: 16px;\\n @include border-radius($borderRadius);\\n\\n &.card-w-title {\\n padding-bottom: 2em;\\n }\\n\\n h1 {\\n margin: 1em 0 .5em 0;\\n border-bottom: 1px solid #d5d5d5;\\n padding: .1em;\\n font-size: 24px;\\n\\n &:first-child {\\n margin: 0 0 .5em 0;\\n }\\n }\\n}\\n\\n/* Code Highlight */\\n.docs {\\n pre[class*=\\\"language-\\\"] {\\n padding: 0 !important;\\n background: transparent;\\n overflow: visible;\\n \\n > code {\\n border-left: 0 none;\\n box-shadow: none;\\n font-size: 14px;\\n }\\n }\\n}\\n\",\"/* Dashboard */\\n.dashboard {\\n \\n .summary {\\n position: relative;\\n \\n .title {\\n font-size: 20px;\\n }\\n \\n .detail {\\n color: $textSecondaryColor;\\n display: block;\\n margin-top: 10px;\\n }\\n \\n .count {\\n color: #ffffff;\\n position: absolute;\\n top: 10px;\\n right: 10px;\\n font-size: 24px;\\n padding: 7px 14px;\\n @include border-radius($borderRadius);\\n \\n &.visitors {\\n background-color: #20d077;\\n }\\n \\n &.purchases {\\n background-color: #f9c851;\\n }\\n \\n &.revenue {\\n background-color: #007be5;\\n }\\n }\\n }\\n\\n .highlight-box {\\n height: 100px;\\n @include clearfix();\\n \\n .initials {\\n height: 100%;\\n float: left;\\n width: 50%;\\n text-align: center;\\n padding: 1em;\\n\\n > span {\\n font-size: 48px;\\n }\\n }\\n \\n .highlight-details {\\n height: 100%;\\n background-color: #ffffff;\\n float: left;\\n width: 50%;\\n padding: 1em;\\n\\n i {\\n font-size: 24px;\\n vertical-align: middle;\\n margin-right: .25em;\\n }\\n \\n .count {\\n color: $textSecondaryColor;\\n font-size: 36px;\\n display: block;\\n }\\n }\\n }\\n \\n .task-list {\\n list-style-type: none;\\n margin: 0;\\n padding: 0;\\n \\n li {\\n padding: .5em .25em;\\n border-bottom: 1px solid $dividerColor;\\n @include clearfix();\\n }\\n \\n .p-checkbox {\\n vertical-align: middle;\\n margin-right: .5em;\\n }\\n \\n .task-name {\\n vertical-align: middle;\\n }\\n \\n i {\\n float: right;\\n font-size: 24px;\\n color: $textSecondaryColor;\\n }\\n\\n .p-panel-content {\\n min-height: 256px;\\n }\\n }\\n\\n .contact-form {\\n .p-panel-content {\\n min-height: 256px;\\n }\\n }\\n\\n .contacts {\\n\\n ul {\\n list-style-type: none;\\n padding: 0;\\n margin: 0;\\n\\n li {\\n border-bottom: 1px solid $dividerColor;\\n \\n button {\\n padding: 9px;\\n width: 100%;\\n box-sizing: border-box;\\n text-decoration: none;\\n position: relative;\\n display: block;\\n @include border-radius(2px);\\n @include transition(background-color .2s);\\n \\n .name {\\n position: absolute;\\n right: 10px;\\n top: 10px;\\n font-size: 18px;\\n }\\n \\n .email {\\n position: absolute;\\n right: 10px;\\n top: 30px;\\n font-size: 14px;\\n color: $textSecondaryColor;\\n }\\n \\n &:hover {\\n cursor: pointer;\\n background-color: #eeeeee;\\n }\\n }\\n \\n &:last-child {\\n border: 0;\\n }\\n }\\n }\\n \\n .p-panel-content {\\n min-height: 256px;\\n }\\n }\\n \\n .activity-list {\\n list-style-type: none;\\n padding: 0;\\n margin: 0;\\n \\n li {\\n border-bottom: 1px solid $dividerColor;\\n padding: 16px 8px;\\n \\n .count {\\n font-size: 24px;\\n color: #ffffff;\\n background-color: #007be5;\\n font-weight: 700;\\n display: inline-block;\\n padding: .25em .5em;\\n @include border-radius($borderRadius);\\n }\\n \\n &:first-child {\\n border-top: 1px solid $dividerColor;\\n }\\n \\n &:last-child {\\n border: 0;\\n }\\n\\n .p-col-6:first-child {\\n font-size: 18px;\\n padding: .5em 0 0 .5em;\\n }\\n \\n .p-col-6:last-child {\\n text-align: right;\\n color: $textSecondaryColor;\\n }\\n }\\n }\\n}\\n\",\"// This is for global overrides only. If it's contained to a component put it there.\\n// Also use the variables created by vueify like var(--v-primary-darken2) rather\\n// than something absolute so theming works. See vuetify.js for the base colors\\n// and note the variations are: base, lighten[1-5], and darken[1-4]\\n\\n.cosmos-green {\\n color: rgb(0, 150, 0) !important;\\n}\\n.cosmos-yellow {\\n color: rgb(190, 135, 0) !important;\\n}\\n.cosmos-red {\\n color: red !important;\\n}\\n.cosmos-blue {\\n color: rgb(0, 100, 255) !important;\\n}\\n.cosmos-purple {\\n color: rgb(200, 0, 200) !important;\\n}\\n.cosmos-black {\\n color: black !important;\\n}\\n.cosmos-white {\\n color: white !important;\\n}\\n\\n// Base colors\\n.theme--dark.v-system-bar {\\n background-color: var(--v-primary-base) !important;\\n}\\n.theme--dark.v-system-bar.active {\\n background-color: var(--v-secondary-base) !important;\\n}\\nbody,\\n.theme--dark.v-application,\\n.theme--dark.v-main,\\n.theme--dark.v-content {\\n background-color: var(--v-tertiary-base) !important;\\n}\\n\\n// Highlight colors\\n.theme--dark.v-sheet.v-list,\\n.theme--dark.v-list,\\n.theme--dark.v-list-item {\\n background-color: var(--v-primary-darken2) !important;\\n}\\n.theme--dark.v-data-table,\\n.theme--dark.v-item-group,\\n.theme--dark.v-dialog,\\n.theme--dark.v-card,\\n.theme--dark.v-tab,\\n.theme--dark.v-sheet,\\n.theme--dark.v-date-picker-header,\\n.theme--dark.v-date-picker-table,\\n.theme--dark.v-time-picker-clock__container,\\n.theme--dark.p-menubar {\\n background-color: var(--v-tertiary-darken2) !important;\\n}\\n\\ninput {\\n // This causes the browser to style input icons for a dark background\\n color-scheme: dark;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n#footer[data-v-225df573] {\\n z-index: 1000; /* On TOP! */\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/AppFooter.vue\"],\"names\":[],\"mappings\":\";AAmEA;EACA,aAAA,EAAA,YAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <v-footer id=\\\"footer\\\" app color=\\\"tertiary darken-3\\\" height=\\\"33\\\">\\n <img :src=\\\"logo\\\" alt=\\\"COSMOS\\\" width=\\\"20\\\" height=\\\"20\\\" />\\n <span class=\\\"footer-text\\\" style=\\\"margin-left: 5px\\\">\\n COSMOS {{ cosmosVersion }} &copy; 2022\\n </span>\\n <v-spacer />\\n <a :href=\\\"sourceUrl\\\" class=\\\"white--text text-decoration-underline\\\">\\n Source\\n </a>\\n <v-spacer />\\n <div class=\\\"justify-right\\\"><clock-footer /></div>\\n </v-footer>\\n</template>\\n\\n<script>\\nimport ClockFooter from './components/ClockFooter.vue'\\nimport { CosmosApi } from '../../packages/cosmosc2-tool-common/src/services/cosmos-api'\\nimport logo from '../public/img/logo.png'\\n\\nexport default {\\n components: {\\n ClockFooter,\\n },\\n data() {\\n return {\\n logo: logo,\\n sourceUrl: '',\\n cosmosVersion: '',\\n }\\n },\\n created: function () {\\n this.getSourceUrl()\\n },\\n methods: {\\n getSourceUrl: function () {\\n new CosmosApi()\\n .get_settings(['source_url', 'version'])\\n .then((response) => {\\n this.sourceUrl = response[0]\\n this.cosmosVersion = `(${response[1]})`\\n })\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n#footer {\\n z-index: 1000; /* On TOP! */\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.v-list-item--two-line .v-list-item__icon[data-v-0a95910a] {\\n margin: 0px;\\n}\\n.v-list[data-v-0a95910a] .v-label {\\n margin-left: 5px;\\n}\\n.theme--dark.v-navigation-drawer[data-v-0a95910a] {\\n background-color: var(--v-primary-darken2);\\n}\\n.v-list-item__icon[data-v-0a95910a] {\\n /* For some reason the default margin-right is huge */\\n margin-right: 15px !important;\\n}\\n.v-list-item__title[data-v-0a95910a] {\\n color: white;\\n}\\n#cosmos-app-toolbar .top-bar-divider-full-height[data-v-0a95910a] {\\n margin: -4px 4px;\\n min-height: calc(100% + 8px);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/AppNav.vue\"],\"names\":[],\"mappings\":\";AAsKA;EACA,WAAA;AACA;AACA;EACA,gBAAA;AACA;AACA;EACA,0CAAA;AACA;AACA;EACA,qDAAA;EACA,6BAAA;AACA;AACA;EACA,YAAA;AACA;AAEA;EACA,gBAAA;EACA,4BAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <div>\\n <v-navigation-drawer v-model=\\\"drawer\\\" app id=\\\"cosmos-nav-drawer\\\">\\n <v-list>\\n <v-list-item two-line>\\n <v-list-item-icon>\\n <img :src=\\\"logo\\\" alt=\\\"COSMOS\\\" />\\n </v-list-item-icon>\\n <v-list-item-content>\\n <v-list-item-title class=\\\"font-weight-bold\\\">\\n COSMOS\\n </v-list-item-title>\\n <!-- v-list-item-subtitle>Enterprise Edition</v-list-item-subtitle -->\\n </v-list-item-content>\\n </v-list-item>\\n <v-list-item class=\\\"my-0\\\">\\n <v-list-item-content>\\n <div v-for=\\\"(tool, name) in adminTools\\\" :key=\\\"name\\\">\\n <v-btn\\n block\\n small\\n :href=\\\"tool.url\\\"\\n onclick=\\\"singleSpaNavigate(event)\\\"\\n >\\n Admin\\n </v-btn>\\n </div>\\n </v-list-item-content>\\n </v-list-item>\\n <v-divider />\\n <div v-for=\\\"(tool, name) in shownTools\\\" :key=\\\"name\\\">\\n <v-list-item class=\\\"pr-0\\\">\\n <v-list-item-icon>\\n <a :href=\\\"tool.url\\\" onclick=\\\"singleSpaNavigate(event)\\\">\\n <v-icon>{{ tool.icon }}</v-icon>\\n </a>\\n </v-list-item-icon>\\n <v-list-item-content>\\n <a :href=\\\"tool.url\\\" onclick=\\\"singleSpaNavigate(event)\\\">\\n <v-list-item-title>{{ name }}</v-list-item-title>\\n </a>\\n </v-list-item-content>\\n <v-divider vertical />\\n <v-list-item-icon>\\n <a :href=\\\"tool.url\\\" target=\\\"_blank\\\">\\n <v-icon>mdi-open-in-new</v-icon>\\n </a>\\n </v-list-item-icon>\\n </v-list-item>\\n </div>\\n </v-list>\\n </v-navigation-drawer>\\n <v-app-bar app color=\\\"tertiary darken-3\\\" id=\\\"cosmos-app-toolbar\\\">\\n <v-app-bar-nav-icon @click=\\\"drawer = !drawer\\\" />\\n <v-divider vertical class=\\\"top-bar-divider-full-height\\\" />\\n <span style=\\\"width: 100%\\\"><span id=\\\"cosmos-menu\\\"></span></span>\\n <div class=\\\"justify-right mr-2 pt-2\\\"><scope-selector /></div>\\n <div class=\\\"justify-right\\\"><alert-history /></div>\\n <div class=\\\"justify-right\\\"><notifications /></div>\\n <div class=\\\"justify-right\\\"><user-menu /></div>\\n </v-app-bar>\\n </div>\\n</template>\\n\\n<script>\\nimport Api from '../../packages/cosmosc2-tool-common/src/services/api'\\nimport logo from '../public/img/logo.png'\\nimport { registerApplication, start } from 'single-spa'\\nimport ScopeSelector from './components/ScopeSelector.vue'\\nimport AlertHistory from './components/AlertHistory.vue'\\nimport Notifications from './components/Notifications.vue'\\nimport UserMenu from './components/UserMenu.vue'\\n\\nexport default {\\n components: {\\n ScopeSelector,\\n AlertHistory,\\n Notifications,\\n UserMenu,\\n },\\n data() {\\n return {\\n drawer: true,\\n appNav: {},\\n adminNav: {},\\n checked: [],\\n logo: logo,\\n }\\n },\\n computed: {\\n // a computed getter\\n shownTools: function () {\\n let result = {}\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown && this.appNav[key].category !== 'Admin') {\\n result[key] = this.appNav[key]\\n }\\n }\\n return result\\n },\\n adminTools: function () {\\n let result = {}\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown && this.appNav[key].category === 'Admin') {\\n result[key] = this.appNav[key]\\n }\\n }\\n return result\\n },\\n },\\n created() {\\n Api.get('/cosmos-api/tools/all', { params: { scope: 'DEFAULT' } }).then(\\n (response) => {\\n this.appNav = response.data\\n\\n // Register apps and start single-spa\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown) {\\n let folder_name = this.appNav[key].folder_name\\n let name = '@cosmosc2/tool-' + folder_name\\n registerApplication({\\n name: name,\\n app: () => System.import(name),\\n activeWhen: ['/tools/' + folder_name],\\n })\\n }\\n }\\n start({\\n urlRerouteOnly: true,\\n })\\n\\n // Redirect / to the first tool\\n if (window.location.pathname == '/') {\\n for (var key of Object.keys(this.shownTools)) {\\n if (this.appNav[key].shown) {\\n history.replaceState(null, '', this.appNav[key].url)\\n break\\n }\\n }\\n }\\n }\\n )\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.v-list-item--two-line .v-list-item__icon {\\n margin: 0px;\\n}\\n.v-list >>> .v-label {\\n margin-left: 5px;\\n}\\n.theme--dark.v-navigation-drawer {\\n background-color: var(--v-primary-darken2);\\n}\\n.v-list-item__icon {\\n /* For some reason the default margin-right is huge */\\n margin-right: 15px !important;\\n}\\n.v-list-item__title {\\n color: white;\\n}\\n\\n#cosmos-app-toolbar .top-bar-divider-full-height {\\n margin: -4px 4px;\\n min-height: calc(100% + 8px);\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.v-subheader[data-v-0042fbc8] {\\n height: 28px;\\n}\\n.v-badge[data-v-0042fbc8] {\\n width: 100%;\\n}\\n.overlay[data-v-0042fbc8] {\\n height: 100vh;\\n width: 100vw;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/AlertHistory.vue\"],\"names\":[],\"mappings\":\";AAyKA;EACA,YAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;EACA,aAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <div>\\n <v-overlay :value=\\\"showAlertPane\\\" class=\\\"overlay\\\" />\\n <v-menu\\n v-model=\\\"showAlertPane\\\"\\n transition=\\\"slide-y-transition\\\"\\n :close-on-content-click=\\\"false\\\"\\n :nudge-width=\\\"340\\\"\\n offset-y\\n :nudge-bottom=\\\"20\\\"\\n >\\n <!-- Alert box icon -->\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <v-btn v-bind=\\\"attrs\\\" v-on=\\\"on\\\" icon>\\n <v-icon :size=\\\"size\\\"> mdi-alert-box-outline </v-icon>\\n </v-btn>\\n </template>\\n\\n <!-- Alerts list -->\\n <v-card>\\n <v-card-title>\\n Alerts\\n <v-spacer />\\n <v-tooltip top open-delay=\\\"350\\\">\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <v-btn\\n icon\\n v-bind=\\\"attrs\\\"\\n v-on=\\\"on\\\"\\n @click=\\\"clearAlerts\\\"\\n class=\\\"ml-1\\\"\\n >\\n <v-icon> mdi-notification-clear-all </v-icon>\\n </v-btn>\\n </template>\\n <span>Clear all</span>\\n </v-tooltip>\\n </v-card-title>\\n <v-card-text v-if=\\\"alerts.length === 0\\\"> No alerts </v-card-text>\\n <v-list\\n v-else\\n two-line\\n width=\\\"388\\\"\\n max-height=\\\"80vh\\\"\\n class=\\\"overflow-y-auto\\\"\\n >\\n <template v-for=\\\"(alert, index) in alerts\\\">\\n <v-list-item\\n :key=\\\"`alert-${index}`\\\"\\n @click=\\\"openDialog(alert)\\\"\\n class=\\\"pl-2\\\"\\n >\\n <v-badge left inline color=\\\"transparent\\\">\\n <v-list-item-content class=\\\"pt-0 pb-0\\\">\\n <v-list-item-title>\\n {{ alert.title }}\\n </v-list-item-title>\\n <v-list-item-subtitle>\\n {{ alert.body }}\\n </v-list-item-subtitle>\\n </v-list-item-content>\\n <template v-slot:badge>\\n <astro-status-indicator\\n :status=\\\"alert.severity.toLowerCase()\\\"\\n />\\n </template>\\n </v-badge>\\n </v-list-item>\\n </template>\\n </v-list>\\n </v-card>\\n </v-menu>\\n\\n <!-- Dialog for viewing full alert -->\\n <v-dialog v-model=\\\"alertDialog\\\" width=\\\"600\\\">\\n <v-card>\\n <v-card-title>\\n {{ selectedAlert.title }}\\n <v-spacer />\\n <astro-status-indicator\\n :status=\\\"selectedAlert.severity || 'normal'\\\"\\n />\\n </v-card-title>\\n <v-card-text>\\n {{ selectedAlert.body }}\\n </v-card-text>\\n <v-divider />\\n <v-card-actions>\\n <v-btn color=\\\"primary\\\" text @click=\\\"alertDialog = false\\\">\\n Dismiss\\n </v-btn>\\n </v-card-actions>\\n </v-card>\\n </v-dialog>\\n </div>\\n</template>\\n\\n<script>\\nimport { AstroStatusColors } from '../../../packages/cosmosc2-tool-common/src/components/icons'\\nimport {\\n highestSeverity,\\n orderBySeverity,\\n groupBySeverity,\\n} from '../util/AstroStatus'\\n\\nexport default {\\n props: {\\n size: {\\n type: [String, Number],\\n default: 26,\\n },\\n },\\n data: function () {\\n return {\\n AstroStatusColors,\\n alerts: [],\\n alertDialog: false,\\n showAlertPane: false,\\n selectedAlert: {},\\n }\\n },\\n watch: {\\n showAlertPane: function (val) {\\n if (val) {\\n this.refreshList()\\n }\\n if (!val && this.selectedAlert.title) {\\n this.alertDialog = false\\n this.selectedAlert = {}\\n }\\n },\\n },\\n methods: {\\n refreshList: function () {\\n this.alerts = this.$store.state.notifyHistory\\n },\\n clearAlerts: function () {\\n this.$store.commit('notifyClearHistory')\\n this.refreshList()\\n this.showAlertPane = false\\n },\\n openDialog: function (alert, clearToast = false) {\\n this.selectedAlert = alert\\n this.alertDialog = true\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.v-subheader {\\n height: 28px;\\n}\\n\\n.v-badge {\\n width: 100%;\\n}\\n\\n.overlay {\\n height: 100vh;\\n width: 100vw;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* push things up and down to make room for the classification banners */\\n#app,\\n#cosmos-nav-drawer {\\n margin-top: var(--classification-height-top);\\n}\\n#cosmos-app-toolbar {\\n top: var(--classification-height-top);\\n}\\n#cosmos-nav-drawer .v-navigation-drawer__content {\\n height: calc(\\n 100% - var(--classification-height-top) -\\n var(--classification-height-bottom)\\n );\\n}\\n#footer {\\n margin-bottom: var(--classification-height-bottom);\\n}\\n\\n/* make the classification banners */\\n#app::before,\\n#app::after {\\n z-index: 99;\\n position: fixed;\\n left: 0;\\n right: 0;\\n text-align: center;\\n content: var(--classification-text);\\n color: var(--classification-font-color);\\n background-color: var(--classification-background-color);\\n}\\n#app::before {\\n top: 0;\\n font-size: calc(var(--classification-height-top) * 0.7);\\n height: var(--classification-height-top);\\n}\\n#app::after {\\n bottom: 0;\\n font-size: calc(var(--classification-height-bottom) * 0.7);\\n height: var(--classification-height-bottom);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/ClassificationBanners.vue\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,wEAAA;AACA;;EAEA,4CAAA;AACA;AACA;EACA,qCAAA;AACA;AACA;EACA;;;GAGA;AACA;AACA;EACA,kDAAA;AACA;;AAEA,oCAAA;AACA;;EAEA,WAAA;EACA,eAAA;EACA,OAAA;EACA,QAAA;EACA,kBAAA;EACA,mCAAA;EACA,uCAAA;EACA,wDAAA;AACA;AACA;EACA,MAAA;EACA,uDAAA;EACA,wCAAA;AACA;AACA;EACA,SAAA;EACA,0DAAA;EACA,2CAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<script>\\nimport { CosmosApi } from '../../../packages/cosmosc2-tool-common/src/services/cosmos-api'\\n\\nexport default {\\n data: function () {\\n return {\\n api: null,\\n classification: {\\n text: '',\\n fontColor: 'white',\\n backgroundColor: 'red',\\n topHeight: 0,\\n bottomHeight: 0,\\n },\\n }\\n },\\n computed: {\\n classificationStyles: function () {\\n // JavaScript can't access CSS psudo-elements (::before and ::after).\\n // This string sets these JS values to CSS variables, accessible to\\n // the style sheet via the style attribute on #app\\n return [\\n `--classification-text:\\\"${this.classification.text}\\\";`,\\n `--classification-font-color:${this.classification.fontColor};`,\\n `--classification-background-color:${this.classification.backgroundColor};`,\\n `--classification-height-top:${this.classification.topHeight}px;`,\\n `--classification-height-bottom:${this.classification.bottomHeight}px;`,\\n ].join('')\\n },\\n },\\n created: function () {\\n this.api = new CosmosApi()\\n this.load()\\n },\\n methods: {\\n load: function () {\\n this.api.get_setting('classification_banner').then((response) => {\\n if (response) {\\n this.classification = JSON.parse(response)\\n }\\n })\\n },\\n },\\n}\\n</script>\\n\\n<style>\\n/* push things up and down to make room for the classification banners */\\n#app,\\n#cosmos-nav-drawer {\\n margin-top: var(--classification-height-top);\\n}\\n#cosmos-app-toolbar {\\n top: var(--classification-height-top);\\n}\\n#cosmos-nav-drawer .v-navigation-drawer__content {\\n height: calc(\\n 100% - var(--classification-height-top) -\\n var(--classification-height-bottom)\\n );\\n}\\n#footer {\\n margin-bottom: var(--classification-height-bottom);\\n}\\n\\n/* make the classification banners */\\n#app::before,\\n#app::after {\\n z-index: 99;\\n position: fixed;\\n left: 0;\\n right: 0;\\n text-align: center;\\n content: var(--classification-text);\\n color: var(--classification-font-color);\\n background-color: var(--classification-background-color);\\n}\\n#app::before {\\n top: 0;\\n font-size: calc(var(--classification-height-top) * 0.7);\\n height: var(--classification-height-top);\\n}\\n#app::after {\\n bottom: 0;\\n font-size: calc(var(--classification-height-bottom) * 0.7);\\n height: var(--classification-height-bottom);\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.v-subheader[data-v-43a3e4e8] {\\n height: 28px;\\n}\\n.v-badge[data-v-43a3e4e8] {\\n width: 100%;\\n}\\n.overlay[data-v-43a3e4e8] {\\n height: 100vh;\\n width: 100vw;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/Notifications.vue\"],\"names\":[],\"mappings\":\";AAmYA;EACA,YAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;EACA,aAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <div>\\n <v-overlay :value=\\\"showNotificationPane\\\" class=\\\"overlay\\\" />\\n <v-menu\\n v-model=\\\"showNotificationPane\\\"\\n transition=\\\"slide-y-transition\\\"\\n :close-on-content-click=\\\"false\\\"\\n :nudge-width=\\\"340\\\"\\n offset-y\\n :nudge-bottom=\\\"20\\\"\\n >\\n <!-- Bell icon -->\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <v-btn v-bind=\\\"attrs\\\" v-on=\\\"on\\\" icon>\\n <v-icon v-if=\\\"unreadCount === 0\\\" :size=\\\"size\\\">\\n mdi-bell-outline\\n </v-icon>\\n <v-badge\\n v-else\\n left\\n offset-x=\\\"24\\\"\\n offset-y=\\\"8\\\"\\n :color=\\\"badgeColor\\\"\\n bordered\\n :content=\\\"unreadCount\\\"\\n >\\n <v-icon :size=\\\"size\\\" :color=\\\"badgeColor\\\"> mdi-bell </v-icon>\\n </v-badge>\\n </v-btn>\\n </template>\\n\\n <!-- Notifications list -->\\n <v-card>\\n <v-card-title>\\n Notifications\\n <v-spacer />\\n <v-tooltip top open-delay=\\\"350\\\">\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <v-btn\\n icon\\n v-bind=\\\"attrs\\\"\\n v-on=\\\"on\\\"\\n @click=\\\"clearNotifications\\\"\\n class=\\\"ml-1\\\"\\n >\\n <v-icon> mdi-notification-clear-all </v-icon>\\n </v-btn>\\n </template>\\n <span>Clear all</span>\\n </v-tooltip>\\n <v-btn icon @click=\\\"toggleSettingsDialog\\\" class=\\\"ml-1\\\">\\n <v-icon> $astro-settings </v-icon>\\n </v-btn>\\n </v-card-title>\\n <v-card-text v-if=\\\"notifications.length === 0\\\">\\n No notifications\\n </v-card-text>\\n <v-list\\n v-else\\n two-line\\n width=\\\"388\\\"\\n max-height=\\\"80vh\\\"\\n class=\\\"overflow-y-auto\\\"\\n >\\n <template v-for=\\\"(notification, index) in notificationList\\\">\\n <template v-if=\\\"notification.header\\\">\\n <v-divider v-if=\\\"index !== 0\\\" :key=\\\"index\\\" class=\\\"mb-2\\\" />\\n <v-subheader :key=\\\"notification.header\\\">\\n {{ notification.header }}\\n </v-subheader>\\n </template>\\n\\n <v-list-item\\n v-else\\n :key=\\\"`notification-${index}`\\\"\\n @click=\\\"openDialog(notification)\\\"\\n class=\\\"pl-2\\\"\\n >\\n <v-badge left inline color=\\\"transparent\\\">\\n <v-list-item-content class=\\\"pt-0 pb-0\\\">\\n <v-list-item-title\\n :class=\\\"{ 'text--secondary': notification.read }\\\"\\n >\\n {{ notification.title }}\\n </v-list-item-title>\\n <v-list-item-subtitle>\\n {{ notification.body }}\\n </v-list-item-subtitle>\\n </v-list-item-content>\\n <v-list-item-action class=\\\"mt-0\\\">\\n <v-list-item-action-text>\\n {{ notification.time | shortDateTime }}\\n </v-list-item-action-text>\\n <v-spacer />\\n </v-list-item-action>\\n <template v-slot:badge>\\n <astro-status-indicator\\n :status=\\\"notification.severity.toLowerCase()\\\"\\n />\\n </template>\\n </v-badge>\\n </v-list-item>\\n </template>\\n </v-list>\\n </v-card>\\n </v-menu>\\n\\n <!-- Dialog for viewing full notification -->\\n <v-dialog v-model=\\\"notificationDialog\\\" width=\\\"600\\\">\\n <v-card>\\n <v-card-title>\\n {{ selectedNotification.title }}\\n <v-spacer />\\n <astro-status-indicator\\n :status=\\\"selectedNotification.severity || 'normal'\\\"\\n />\\n </v-card-title>\\n <v-card-subtitle>\\n {{ selectedNotification.time | shortDateTime }}\\n </v-card-subtitle>\\n <v-card-text>\\n {{ selectedNotification.body }}\\n </v-card-text>\\n <v-divider />\\n <v-card-actions>\\n <v-btn\\n color=\\\"primary\\\"\\n text\\n @click=\\\"navigate(selectedNotification.url)\\\"\\n >\\n Open\\n <v-icon right> mdi-open-in-new </v-icon>\\n </v-btn>\\n <v-btn color=\\\"primary\\\" text @click=\\\"notificationDialog = false\\\">\\n Dismiss\\n </v-btn>\\n </v-card-actions>\\n </v-card>\\n </v-dialog>\\n\\n <!-- Dialog for changing notification settings -->\\n <v-dialog v-model=\\\"settingsDialog\\\" width=\\\"600\\\">\\n <v-card>\\n <v-card-title> Notification settings </v-card-title>\\n <v-card-text>\\n <v-switch v-model=\\\"showToast\\\" label=\\\"Show toasts\\\" />\\n </v-card-text>\\n <v-divider />\\n <v-card-actions>\\n <v-btn color=\\\"primary\\\" text @click=\\\"toggleSettingsDialog\\\">\\n close\\n </v-btn>\\n </v-card-actions>\\n </v-card>\\n </v-dialog>\\n </div>\\n</template>\\n\\n<script>\\nimport { formatDistanceToNow } from 'date-fns'\\nimport { AstroStatusColors } from '../../../packages/cosmosc2-tool-common/src/components/icons'\\nimport {\\n highestSeverity,\\n orderBySeverity,\\n groupBySeverity,\\n} from '../util/AstroStatus'\\nimport Cable from '../../../packages/cosmosc2-tool-common/src/services/cable.js'\\n\\nconst NOTIFICATION_HISTORY_MAX_LENGTH = 100\\n\\nexport default {\\n props: {\\n size: {\\n type: [String, Number],\\n default: 26,\\n },\\n },\\n data: function () {\\n return {\\n AstroStatusColors,\\n cable: new Cable(),\\n subscription: null,\\n notifications: [],\\n showNotificationPane: false,\\n toastNotification: {},\\n notificationDialog: false,\\n selectedNotification: {},\\n settingsDialog: false,\\n showToast: true,\\n }\\n },\\n computed: {\\n badgeColor: function () {\\n if (!this.unreadCount) {\\n return AstroStatusColors['off']\\n }\\n const severities = this.unreadNotifications\\n .map((notification) => notification.severity)\\n .filter((val, index, self) => {\\n return self.indexOf(val) === index // Unique values\\n })\\n return AstroStatusColors[highestSeverity(severities)]\\n },\\n readNotifications: function () {\\n return this.notifications\\n .filter((notification) => notification.read)\\n .sort((a, b) => b.time - a.time)\\n },\\n unreadNotifications: function () {\\n return this.notifications\\n .filter((notification) => !notification.read)\\n .sort((a, b) => b.time - a.time)\\n },\\n unreadCount: function () {\\n return this.unreadNotifications.length\\n },\\n notificationList: function () {\\n const groups = groupBySeverity(this.unreadNotifications)\\n let result = orderBySeverity(Object.keys(groups), (k) => k).flatMap(\\n (severity) => {\\n const header = {\\n header: severity.charAt(0).toUpperCase() + severity.slice(1),\\n }\\n return [header, ...groups[severity]]\\n }\\n )\\n if (this.readNotifications.length) {\\n result = result.concat([{ header: 'Read' }, ...this.readNotifications])\\n }\\n return result\\n },\\n },\\n watch: {\\n showNotificationPane: function (val) {\\n if (!val) {\\n if (this.selectedNotification.title) {\\n this.notificationDialog = false\\n this.selectedNotification = {}\\n } else {\\n this.markAllAsRead()\\n }\\n }\\n },\\n showToast: function (val) {\\n localStorage.notoast = !val\\n },\\n },\\n created: function () {\\n this.showToast = localStorage.notoast === 'false'\\n this.subscribe()\\n },\\n destroyed: function () {\\n if (this.subscription) {\\n this.subscription.unsubscribe()\\n }\\n this.cable.disconnect()\\n },\\n methods: {\\n markAllAsRead: function () {\\n this.notifications.forEach((notification) => {\\n notification.read = true\\n if (\\n !localStorage.lastReadNotification ||\\n localStorage.lastReadNotification < notification.msg_id\\n ) {\\n localStorage.lastReadNotification = notification.msg_id\\n }\\n })\\n },\\n clearNotifications: function () {\\n this.markAllAsRead()\\n this.notifications = []\\n localStorage.notificationStreamOffset = localStorage.lastReadNotification\\n this.showNotificationPane = false\\n },\\n toggleNotificationPane: function () {\\n this.showNotificationPane = !this.showNotificationPane\\n },\\n toggleSettingsDialog: function () {\\n this.settingsDialog = !this.settingsDialog\\n },\\n openDialog: function (notification, clearToast = false) {\\n notification.read = true\\n if (\\n !localStorage.lastReadNotification ||\\n localStorage.lastReadNotification < notification.msg_id\\n ) {\\n localStorage.lastReadNotification = notification.msg_id\\n }\\n this.selectedNotification = notification\\n this.notificationDialog = true\\n },\\n navigate: function (url) {\\n window.open(url, '_blank')\\n },\\n subscribe: function () {\\n this.cable\\n .createSubscription(\\n 'NotificationsChannel',\\n localStorage.scope,\\n {\\n received: (data) => this.received(data),\\n },\\n {\\n start_offset:\\n localStorage.notificationStreamOffset ||\\n localStorage.lastReadNotification,\\n }\\n )\\n .then((subscription) => {\\n this.subscription = subscription\\n })\\n },\\n received: function (data) {\\n const parsed = JSON.parse(data)\\n if (parsed.length > NOTIFICATION_HISTORY_MAX_LENGTH) {\\n parsed.splice(0, parsed.length - NOTIFICATION_HISTORY_MAX_LENGTH)\\n }\\n let foundToast = false\\n parsed.forEach((notification) => {\\n notification.read =\\n notification.msg_id <= localStorage.lastReadNotification\\n notification.severity = notification.severity || 'normal'\\n if (\\n !notification.read && // Don't toast read notifications\\n (['critical', 'serious'].includes(notification.severity) || // Toast for these statuses\\n notification.severity === 'critical') // Ok to override a toast only if this one is 'critical'\\n ) {\\n foundToast = true\\n this.toastNotification = notification\\n }\\n })\\n\\n if (this.showToast && foundToast) {\\n this.$notify[this.toastNotification.severity]({\\n ...this.toastNotification,\\n type: 'notification',\\n duration:\\n this.toastNotification.severity === 'critical' ? null : 5000,\\n saveToHistory: false,\\n })\\n }\\n\\n if (\\n this.notifications.length + parsed.length >\\n NOTIFICATION_HISTORY_MAX_LENGTH\\n ) {\\n this.notifications.splice(\\n 0,\\n this.notifications.length +\\n parsed.length -\\n NOTIFICATION_HISTORY_MAX_LENGTH\\n )\\n }\\n this.notifications = this.notifications.concat(parsed)\\n },\\n },\\n filters: {\\n shortDateTime: function (nsec) {\\n if (!nsec) return ''\\n const date = new Date(nsec / 1_000_000)\\n return formatDistanceToNow(date, { addSuffix: true })\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.v-subheader {\\n height: 28px;\\n}\\n\\n.v-badge {\\n width: 100%;\\n}\\n\\n.overlay {\\n height: 100vh;\\n width: 100vw;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.overlay[data-v-53e47a0c] {\\n height: 100vh;\\n width: 100vw;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/UserMenu.vue\"],\"names\":[],\"mappings\":\";AAyFA;EACA,aAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <div>\\n <v-overlay :value=\\\"showUserMenu\\\" class=\\\"overlay\\\" />\\n <v-menu\\n v-model=\\\"showUserMenu\\\"\\n transition=\\\"slide-y-transition\\\"\\n offset-y\\n :close-on-content-click=\\\"false\\\"\\n :nudge-width=\\\"120\\\"\\n :nudge-bottom=\\\"20\\\"\\n >\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <v-btn v-bind=\\\"attrs\\\" v-on=\\\"on\\\" icon>\\n <v-icon :size=\\\"size\\\"> mdi-account </v-icon>\\n </v-btn>\\n </template>\\n\\n <v-card>\\n <v-card-text class=\\\"text-center\\\">\\n <div v-if=\\\"authenticated\\\">\\n <v-btn block @click=\\\"logout\\\" color=\\\"primary\\\"> Logout </v-btn>\\n </div>\\n <div v-else>\\n <v-btn block @click=\\\"login\\\" color=\\\"primary\\\"> Login </v-btn>\\n </div>\\n <div>\\n <v-switch label=\\\"Colorblind mode\\\" v-model=\\\"colorblindMode\\\" />\\n </div>\\n </v-card-text>\\n </v-card>\\n </v-menu>\\n </div>\\n</template>\\n\\n<script>\\nexport default {\\n props: {\\n size: {\\n type: [String, Number],\\n default: 26,\\n },\\n },\\n data: function () {\\n return {\\n showUserMenu: false,\\n authenticated: !!localStorage.cosmosToken,\\n }\\n },\\n computed: {\\n colorblindMode: {\\n get: function () {\\n return localStorage.colorblindMode === 'true'\\n },\\n set: function (val) {\\n localStorage.colorblindMode = val\\n },\\n },\\n },\\n methods: {\\n logout: function () {\\n CosmosAuth.logout()\\n },\\n login: function () {\\n CosmosAuth.login(location.href)\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.overlay {\\n height: 100vh;\\n width: 100vw;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.astro-icon[data-v-1fcc6ea4] {\\n fill: currentColor;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue\"],\"names\":[],\"mappings\":\";AA6CA;EACA,kBAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n#\\n# This program may also be used under the terms of a commercial or\\n# enterprise edition license of COSMOS if purchased from the\\n# copyright holder\\n-->\\n\\n<template>\\n <rux-icon :icon=\\\"icon\\\" class=\\\"astro-icon\\\" />\\n</template>\\n\\n<script>\\nimport RuxIcon from './RuxIcon.vue'\\nimport { AstroIconLibrary } from '.'\\n\\n// This component is a wrapper around the Astro UXDS RuxIcon to make it work with Vuetify\\nexport default {\\n components: {\\n RuxIcon,\\n },\\n props: {\\n icon: {\\n type: String,\\n required: true,\\n validator: (val) => {\\n return AstroIconLibrary.includes(val)\\n },\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.astro-icon {\\n fill: currentColor;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","const resolveDirectory = require(\"../public-path\").resolveDirectory;\n\nexports.autoPublicPath = function autoPublicPath(rootDirLevel) {\n if (!rootDirLevel) {\n rootDirLevel = 1;\n }\n\n if (typeof __webpack_public_path__ !== \"undefined\") {\n if (typeof __system_context__ === \"undefined\") {\n throw Error(\n \"systemjs-webpack-interop requires webpack@>=5.0.0-beta.15 and output.libraryTarget set to 'system'\"\n );\n }\n\n if (!__system_context__.meta || !__system_context__.meta.url) {\n console.error(\"__system_context__\", __system_context__);\n throw Error(\n \"systemjs-webpack-interop was provided an unknown SystemJS context. Expected context.meta.url, but none was provided\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(\n __system_context__.meta.url,\n rootDirLevel\n );\n }\n};\n","exports.setPublicPath = function setPublicPath(\n systemjsModuleName,\n rootDirectoryLevel\n) {\n if (!rootDirectoryLevel) {\n rootDirectoryLevel = 1;\n }\n if (\n typeof systemjsModuleName !== \"string\" ||\n systemjsModuleName.trim().length === 0\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'\"\n );\n }\n\n if (\n typeof rootDirectoryLevel !== \"number\" ||\n rootDirectoryLevel <= 0 ||\n isNaN(rootDirectoryLevel) ||\n !isInteger(rootDirectoryLevel)\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'\"\n );\n }\n\n var moduleUrl;\n try {\n moduleUrl = window.System.resolve(systemjsModuleName);\n if (!moduleUrl) {\n throw Error();\n }\n } catch (err) {\n throw Error(\n \"systemjs-webpack-interop: There is no such module '\" +\n systemjsModuleName +\n \"' in the SystemJS registry. Did you misspell the name of your module?\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(moduleUrl, rootDirectoryLevel);\n};\n\nfunction resolveDirectory(urlString, rootDirectoryLevel) {\n // Our friend IE11 doesn't support new URL()\n // https://github.com/single-spa/single-spa/issues/612\n // https://gist.github.com/jlong/2428561\n\n var a = document.createElement(\"a\");\n a.href = urlString;\n\n var pathname = a.pathname[0] === \"/\" ? a.pathname : \"/\" + a.pathname;\n var numDirsProcessed = 0,\n index = pathname.length;\n while (numDirsProcessed !== rootDirectoryLevel && index >= 0) {\n var char = pathname[--index];\n if (char === \"/\") {\n numDirsProcessed++;\n }\n }\n\n if (numDirsProcessed !== rootDirectoryLevel) {\n throw Error(\n \"systemjs-webpack-interop: rootDirectoryLevel (\" +\n rootDirectoryLevel +\n \") is greater than the number of directories (\" +\n numDirsProcessed +\n \") in the URL path \" +\n urlString\n );\n }\n\n var finalPath = pathname.slice(0, index + 1);\n\n return a.protocol + \"//\" + a.host + finalPath;\n}\n\nexports.resolveDirectory = resolveDirectory;\n\n// borrowed from https://github.com/parshap/js-is-integer/blob/master/index.js\nvar isInteger =\n Number.isInteger ||\n function isInteger(val) {\n return typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n };\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/cjs.js!../../../../../../cosmosc2-tool-base/node_modules/sass-loader/dist/cjs.js!./layout.scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../cosmosc2-tool-base/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"21230954\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/cjs.js!../../../../../../cosmosc2-tool-base/node_modules/sass-loader/dist/cjs.js!./layout.scss\", function() {\n var newContent = require(\"!!../../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/cjs.js!../../../../../../cosmosc2-tool-base/node_modules/sass-loader/dist/cjs.js!./layout.scss\");\n if(newContent.__esModule) newContent = newContent.default;\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","(function(global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([ \"exports\" ], factory) : factory(global.ActionCable = {});\n})(this, function(exports) {\n \"use strict\";\n var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n };\n var logger = {\n log: function log() {\n if (this.enabled) {\n var _adapters$logger;\n for (var _len = arguments.length, messages = Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n messages.push(Date.now());\n (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [ \"[ActionCable]\" ].concat(messages));\n }\n }\n };\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var classCallCheck = function(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function() {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var now = function now() {\n return new Date().getTime();\n };\n var secondsSince = function secondsSince(time) {\n return (now() - time) / 1e3;\n };\n var clamp = function clamp(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n var ConnectionMonitor = function() {\n function ConnectionMonitor(connection) {\n classCallCheck(this, ConnectionMonitor);\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n ConnectionMonitor.prototype.start = function start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor started. pollInterval = \" + this.getPollInterval() + \" ms\");\n }\n };\n ConnectionMonitor.prototype.stop = function stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n };\n ConnectionMonitor.prototype.isRunning = function isRunning() {\n return this.startedAt && !this.stoppedAt;\n };\n ConnectionMonitor.prototype.recordPing = function recordPing() {\n this.pingedAt = now();\n };\n ConnectionMonitor.prototype.recordConnect = function recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n };\n ConnectionMonitor.prototype.recordDisconnect = function recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n };\n ConnectionMonitor.prototype.startPolling = function startPolling() {\n this.stopPolling();\n this.poll();\n };\n ConnectionMonitor.prototype.stopPolling = function stopPolling() {\n clearTimeout(this.pollTimeout);\n };\n ConnectionMonitor.prototype.poll = function poll() {\n var _this = this;\n this.pollTimeout = setTimeout(function() {\n _this.reconnectIfStale();\n _this.poll();\n }, this.getPollInterval());\n };\n ConnectionMonitor.prototype.getPollInterval = function getPollInterval() {\n var _constructor$pollInte = this.constructor.pollInterval, min = _constructor$pollInte.min, max = _constructor$pollInte.max, multiplier = _constructor$pollInte.multiplier;\n var interval = multiplier * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1e3);\n };\n ConnectionMonitor.prototype.reconnectIfStale = function reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + this.getPollInterval() + \" ms, time disconnected = \" + secondsSince(this.disconnectedAt) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n };\n ConnectionMonitor.prototype.connectionIsStale = function connectionIsStale() {\n return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.disconnectedRecently = function disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.visibilityDidChange = function visibilityDidChange() {\n var _this2 = this;\n if (document.visibilityState === \"visible\") {\n setTimeout(function() {\n if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = \" + document.visibilityState);\n _this2.connection.reopen();\n }\n }, 200);\n }\n };\n return ConnectionMonitor;\n }();\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30,\n multiplier: 5\n };\n ConnectionMonitor.staleThreshold = 6;\n var INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n };\n var message_types = INTERNAL.message_types, protocols = INTERNAL.protocols;\n var supportedProtocols = protocols.slice(0, protocols.length - 1);\n var indexOf = [].indexOf;\n var Connection = function() {\n function Connection(consumer) {\n classCallCheck(this, Connection);\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n Connection.prototype.send = function send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n Connection.prototype.open = function open() {\n if (this.isActive()) {\n logger.log(\"Attempted to open WebSocket, but existing socket is \" + this.getState());\n return false;\n } else {\n logger.log(\"Opening WebSocket, current state is \" + this.getState() + \", subprotocols: \" + protocols);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n Connection.prototype.close = function close() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n }, allowReconnect = _ref.allowReconnect;\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isActive()) {\n return this.webSocket.close();\n }\n };\n Connection.prototype.reopen = function reopen() {\n logger.log(\"Reopening WebSocket, current state is \" + this.getState());\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n Connection.prototype.getProtocol = function getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n };\n Connection.prototype.isOpen = function isOpen() {\n return this.isState(\"open\");\n };\n Connection.prototype.isActive = function isActive() {\n return this.isState(\"open\", \"connecting\");\n };\n Connection.prototype.isProtocolSupported = function isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n };\n Connection.prototype.isState = function isState() {\n for (var _len = arguments.length, states = Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return indexOf.call(states, this.getState()) >= 0;\n };\n Connection.prototype.getState = function getState() {\n if (this.webSocket) {\n for (var state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n };\n Connection.prototype.installEventHandlers = function installEventHandlers() {\n for (var eventName in this.events) {\n var handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n Connection.prototype.uninstallEventHandlers = function uninstallEventHandlers() {\n for (var eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function() {};\n }\n };\n return Connection;\n }();\n Connection.reopenDelay = 500;\n Connection.prototype.events = {\n message: function message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n var _JSON$parse = JSON.parse(event.data), identifier = _JSON$parse.identifier, message = _JSON$parse.message, reason = _JSON$parse.reason, reconnect = _JSON$parse.reconnect, type = _JSON$parse.type;\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(\"Disconnecting. Reason: \" + reason);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function open() {\n logger.log(\"WebSocket onopen event, using '\" + this.getProtocol() + \"' subprotocol\");\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function error() {\n logger.log(\"WebSocket onerror event\");\n }\n };\n var extend = function extend(object, properties) {\n if (properties != null) {\n for (var key in properties) {\n var value = properties[key];\n object[key] = value;\n }\n }\n return object;\n };\n var Subscription = function() {\n function Subscription(consumer) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var mixin = arguments[2];\n classCallCheck(this, Subscription);\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n Subscription.prototype.perform = function perform(action) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n data.action = action;\n return this.send(data);\n };\n Subscription.prototype.send = function send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n Subscription.prototype.unsubscribe = function unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n };\n return Subscription;\n }();\n var SubscriptionGuarantor = function() {\n function SubscriptionGuarantor(subscriptions) {\n classCallCheck(this, SubscriptionGuarantor);\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n SubscriptionGuarantor.prototype.guarantee = function guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(\"SubscriptionGuarantor guaranteeing \" + subscription.identifier);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(\"SubscriptionGuarantor already guaranteeing \" + subscription.identifier);\n }\n this.startGuaranteeing();\n };\n SubscriptionGuarantor.prototype.forget = function forget(subscription) {\n logger.log(\"SubscriptionGuarantor forgetting \" + subscription.identifier);\n this.pendingSubscriptions = this.pendingSubscriptions.filter(function(s) {\n return s !== subscription;\n });\n };\n SubscriptionGuarantor.prototype.startGuaranteeing = function startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n };\n SubscriptionGuarantor.prototype.stopGuaranteeing = function stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n };\n SubscriptionGuarantor.prototype.retrySubscribing = function retrySubscribing() {\n var _this = this;\n this.retryTimeout = setTimeout(function() {\n if (_this.subscriptions && typeof _this.subscriptions.subscribe === \"function\") {\n _this.pendingSubscriptions.map(function(subscription) {\n logger.log(\"SubscriptionGuarantor resubscribing \" + subscription.identifier);\n _this.subscriptions.subscribe(subscription);\n });\n }\n }, 500);\n };\n return SubscriptionGuarantor;\n }();\n var Subscriptions = function() {\n function Subscriptions(consumer) {\n classCallCheck(this, Subscriptions);\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n Subscriptions.prototype.create = function create(channelName, mixin) {\n var channel = channelName;\n var params = (typeof channel === \"undefined\" ? \"undefined\" : _typeof(channel)) === \"object\" ? channel : {\n channel: channel\n };\n var subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n Subscriptions.prototype.add = function add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n };\n Subscriptions.prototype.remove = function remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n };\n Subscriptions.prototype.reject = function reject(identifier) {\n var _this = this;\n return this.findAll(identifier).map(function(subscription) {\n _this.forget(subscription);\n _this.notify(subscription, \"rejected\");\n return subscription;\n });\n };\n Subscriptions.prototype.forget = function forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter(function(s) {\n return s !== subscription;\n });\n return subscription;\n };\n Subscriptions.prototype.findAll = function findAll(identifier) {\n return this.subscriptions.filter(function(s) {\n return s.identifier === identifier;\n });\n };\n Subscriptions.prototype.reload = function reload() {\n var _this2 = this;\n return this.subscriptions.map(function(subscription) {\n return _this2.subscribe(subscription);\n });\n };\n Subscriptions.prototype.notifyAll = function notifyAll(callbackName) {\n var _this3 = this;\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return this.subscriptions.map(function(subscription) {\n return _this3.notify.apply(_this3, [ subscription, callbackName ].concat(args));\n });\n };\n Subscriptions.prototype.notify = function notify(subscription, callbackName) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n var subscriptions = void 0;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map(function(subscription) {\n return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n });\n };\n Subscriptions.prototype.subscribe = function subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n };\n Subscriptions.prototype.confirmSubscription = function confirmSubscription(identifier) {\n var _this4 = this;\n logger.log(\"Subscription confirmed \" + identifier);\n this.findAll(identifier).map(function(subscription) {\n return _this4.guarantor.forget(subscription);\n });\n };\n Subscriptions.prototype.sendCommand = function sendCommand(subscription, command) {\n var identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n return Subscriptions;\n }();\n var Consumer = function() {\n function Consumer(url) {\n classCallCheck(this, Consumer);\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n Consumer.prototype.send = function send(data) {\n return this.connection.send(data);\n };\n Consumer.prototype.connect = function connect() {\n return this.connection.open();\n };\n Consumer.prototype.disconnect = function disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n Consumer.prototype.ensureActiveConnection = function ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n createClass(Consumer, [ {\n key: \"url\",\n get: function get$$1() {\n return createWebSocketURL(this._url);\n }\n } ]);\n return Consumer;\n }();\n function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n var a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n }\n function createConsumer() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n return new Consumer(url);\n }\n function getConfig(name) {\n var element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n exports.Connection = Connection;\n exports.ConnectionMonitor = ConnectionMonitor;\n exports.Consumer = Consumer;\n exports.INTERNAL = INTERNAL;\n exports.Subscription = Subscription;\n exports.Subscriptions = Subscriptions;\n exports.SubscriptionGuarantor = SubscriptionGuarantor;\n exports.adapters = adapters;\n exports.createWebSocketURL = createWebSocketURL;\n exports.logger = logger;\n exports.createConsumer = createConsumer;\n exports.getConfig = getConfig;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.22.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<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 * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8645__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4091__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4688__;","module.exports = __WEBPACK_EXTERNAL_MODULE__9731__;","module.exports = __WEBPACK_EXTERNAL_MODULE__9191__;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","// 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\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.y = __system_context__;","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".cosmosc2-tool-base.js\";\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(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};","__webpack_require__.p = \"\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktool_base\"] = self[\"webpackChunktool_base\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","const autoPublicPath = require(\"./auto-public-path\").autoPublicPath;\n\nautoPublicPath(1);\n","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-app\",\n { style: _vm.classificationStyles },\n [\n _c(\"app-nav\", { staticClass: \"d-print-none\" }),\n _vm._v(\" \"),\n _c(\n \"v-main\",\n [\n _c(\"v-container\", { attrs: { fluid: \"\" } }, [\n _c(\"div\", { attrs: { id: \"cosmos-tool\" } }),\n _vm._v(\" \"),\n _c(\"div\", [_c(\"router-view\")], 1),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"app-footer\", { staticClass: \"d-print-none\", attrs: { app: \"\" } }),\n _vm._v(\" \"),\n _c(\"time-check\"),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-footer\",\n {\n attrs: {\n id: \"footer\",\n app: \"\",\n color: \"tertiary darken-3\",\n height: \"33\",\n },\n },\n [\n _c(\"img\", {\n attrs: { src: _vm.logo, alt: \"COSMOS\", width: \"20\", height: \"20\" },\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n { staticClass: \"footer-text\", staticStyle: { \"margin-left\": \"5px\" } },\n [_vm._v(\"\\n COSMOS \" + _vm._s(_vm.cosmosVersion) + \" © 2022\\n \")]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"a\",\n {\n staticClass: \"white--text text-decoration-underline\",\n attrs: { href: _vm.sourceUrl },\n },\n [_vm._v(\"\\n Source\\n \")]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"justify-right\" }, [_c(\"clock-footer\")], 1),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"span\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"font-weight-bold\",\n staticStyle: { cursor: \"context-menu\" },\n on: { contextmenu: _vm.openMenu },\n },\n \"span\",\n _vm.attrs,\n false\n ),\n _vm.on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"date\")(\n _vm.displayLocal ? _vm.localDate : _vm.utcDate,\n _vm.formatString\n )\n ) +\n \"\\n (\" +\n _vm._s(_vm.displayLocal ? \"local\" : \"UTC\") +\n \")\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n \"position-x\": _vm.menuX,\n \"position-y\": _vm.menuY,\n absolute: \"\",\n \"offset-y\": \"\",\n },\n model: {\n value: _vm.showMenu,\n callback: function ($$v) {\n _vm.showMenu = $$v\n },\n expression: \"showMenu\",\n },\n },\n [\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.toggleDisplayLocal },\n },\n [\n _vm._v(\n \"\\n Display \" +\n _vm._s(_vm.displayLocal ? \"UTC\" : \"local time\") +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.toggleDisplay24h },\n },\n [\n _vm._v(\n \"\\n Display \" +\n _vm._s(_vm.display24h ? 12 : 24) +\n \" hour clock\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _vm.dateMode !== \"monthFirst\"\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.setMonthFirst },\n },\n [_vm._v(\"\\n Display mm/dd/yyyy\\n \")]\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.dateMode !== \"dayFirst\"\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.setDayFirst },\n },\n [_vm._v(\"\\n Display dd/mm/yyyy\\n \")]\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.dateMode !== \"number\"\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.setNumber },\n },\n [_vm._v(\"\\n Display day of year\\n \")]\n ),\n ],\n 1\n )\n : _vm._e(),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <span\n v-bind=\"attrs\"\n v-on=\"on\"\n style=\"cursor: context-menu\"\n class=\"font-weight-bold\"\n @contextmenu=\"openMenu\"\n >\n {{ (displayLocal ? localDate : utcDate) | date(formatString) }}\n ({{ displayLocal ? 'local' : 'UTC' }})\n </span>\n <v-menu\n v-model=\"showMenu\"\n :position-x=\"menuX\"\n :position-y=\"menuY\"\n absolute\n offset-y\n >\n <v-list>\n <v-list-item>\n <v-list-item-title\n style=\"cursor: pointer\"\n @click=\"toggleDisplayLocal\"\n >\n Display {{ displayLocal ? 'UTC' : 'local time' }}\n </v-list-item-title>\n </v-list-item>\n <v-divider />\n <v-list-item>\n <v-list-item-title style=\"cursor: pointer\" @click=\"toggleDisplay24h\">\n Display {{ display24h ? 12 : 24 }} hour clock\n </v-list-item-title>\n </v-list-item>\n <v-divider />\n <v-list-item v-if=\"dateMode !== 'monthFirst'\">\n <v-list-item-title style=\"cursor: pointer\" @click=\"setMonthFirst\">\n Display mm/dd/yyyy\n </v-list-item-title>\n </v-list-item>\n <v-list-item v-if=\"dateMode !== 'dayFirst'\">\n <v-list-item-title style=\"cursor: pointer\" @click=\"setDayFirst\">\n Display dd/mm/yyyy\n </v-list-item-title>\n </v-list-item>\n <v-list-item v-if=\"dateMode !== 'number'\">\n <v-list-item-title style=\"cursor: pointer\" @click=\"setNumber\">\n Display day of year\n </v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n </div>\n</template>\n\n<script>\nimport { format } from 'date-fns'\n\nexport default {\n data: function () {\n return {\n localDate: new Date(),\n displayLocal: localStorage.clock_zone === 'local',\n display24h: !localStorage.clock_12h,\n dateMode: localStorage.clock_dateMode || 'monthFirst',\n intervalCount: 0,\n showMenu: false,\n menuX: 0,\n menuY: 0,\n }\n },\n computed: {\n utcDate: function () {\n return new Date(\n this.localDate.getTime() + this.localDate.getTimezoneOffset() * 60000\n )\n },\n formatString: function () {\n let dateFormat\n switch (this.dateMode) {\n case 'monthFirst':\n dateFormat = 'LL/dd/yyy'\n break\n case 'dayFirst':\n dateFormat = 'dd/LL/yyy'\n break\n case 'number':\n dateFormat = 'D'\n break\n }\n\n let timeFormat\n if (this.display24h) {\n timeFormat = 'HH:mm:ss'\n } else {\n timeFormat = 'hh:mm:ss a'\n }\n\n return `${dateFormat} ${timeFormat}`\n },\n },\n watch: {\n displayLocal: function (val) {\n localStorage.clock_zone = val ? 'local' : 'utc'\n },\n display24h: function (val) {\n // store opposite because it makes default value (true) easier\n if (val) {\n delete localStorage.clock_12h\n } else {\n localStorage.clock_12h = true\n }\n },\n dateMode: function (val) {\n if (val.match(/^monthFirst$|^dayFirst$|^number$/)) {\n localStorage.clock_dateMode = val\n }\n },\n },\n created: function () {\n setInterval(\n () => {\n this.intervalCount++\n this.localDate = new Date()\n },\n this.intervalCount < 10 ? 100 : 1000 // get the seconds to about 100ms accuracy\n )\n },\n methods: {\n openMenu: function (event) {\n event.preventDefault()\n this.showMenu = false\n this.menuX = event.clientX\n this.menuY = event.clientY\n this.$nextTick(() => {\n this.showMenu = true\n })\n },\n toggleDisplayLocal: function () {\n this.displayLocal = !this.displayLocal\n },\n toggleDisplay24h: function () {\n this.display24h = !this.display24h\n },\n setMonthFirst: function () {\n this.dateMode = 'monthFirst'\n },\n setDayFirst: function () {\n this.dateMode = 'dayFirst'\n },\n setNumber: function () {\n this.dateMode = 'number'\n },\n },\n filters: {\n date: function (val, formatString) {\n return format(val, formatString, { useAdditionalDayOfYearTokens: true })\n },\n },\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClockFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClockFooter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClockFooter.vue?vue&type=template&id=67422cc9&\"\nimport script from \"./ClockFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./ClockFooter.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('67422cc9')) {\n api.createRecord('67422cc9', component.options)\n } else {\n api.reload('67422cc9', component.options)\n }\n module.hot.accept(\"./ClockFooter.vue?vue&type=template&id=67422cc9&\", function () {\n api.rerender('67422cc9', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/ClockFooter.vue\"\nexport default component.exports","export default function _readOnlyError(name) {\n throw new TypeError(\"\\\"\" + name + \"\\\" is read-only\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport axios from './axios.js'\n\nexport class CosmosApi {\n id = 1\n\n constructor() {}\n\n // This is hacky Json-rpc for now. Should probably use a jsonrpc library.\n async exec(method, params, kwparams = {}) {\n try {\n await CosmosAuth.updateToken(CosmosAuth.defaultMinValidity)\n } catch (error) {\n CosmosAuth.login()\n }\n this.id = this.id + 1\n try {\n kwparams['scope'] = localStorage.scope\n const response = await axios.post(\n '/cosmos-api/api',\n {\n jsonrpc: '2.0',\n method: method,\n params: params,\n id: this.id,\n keyword_params: kwparams,\n },\n {\n headers: {\n Authorization: localStorage.cosmosToken,\n 'Content-Type': 'application/json-rpc',\n },\n }\n )\n // var data = response.data\n // if (data.error) {\n // var err = new Error()\n // err.name = data.error.data.class\n // err.message = data.error.data.message\n // console.log(data.error.data.backtrace.join('\\n'))\n // throw err\n // }\n return response.data.result\n } catch (error) {\n var err = new Error()\n if (error.response) {\n // The request was made and the server responded with a\n // status code that falls out of the range of 2xx\n err.name = error.response.data.error.data.class\n err.message = error.response.data.error.data.message\n } else if (error.request) {\n // The request was made but no response was received, `error.request`\n // is an instance of XMLHttpRequest in the browser and an instance\n // of http.ClientRequest in Node.js\n err.name = 'Request error'\n err.message = 'Request error, no response received'\n } else {\n // Something happened in setting up the request and triggered an Error\n err.name = 'Unknown error'\n }\n //console.log(error)\n throw err\n }\n }\n\n decode_cosmos_type(val) {\n if (val !== null && typeof val === 'object') {\n if (val.json_class == 'Float' && val.raw) {\n if (val.raw == 'NaN') {\n return NaN\n } else if (val.raw == 'Infinity') {\n return Infinity\n } else if (val.raw == '-Infinity') {\n return -Infinity\n }\n }\n }\n return null\n }\n\n encode_cosmos_type(val) {\n if (Number.isNaN(val)) {\n return { json_class: 'Float', raw: 'NaN' }\n } else if (val == Number.POSITIVE_INFINITY) {\n return { json_class: 'Float', raw: 'Infinity' }\n } else if (val == Number.NEGATIVE_INFINITY) {\n return { json_class: 'Float', raw: '-Infinity' }\n }\n return null\n }\n\n // ***********************************************\n // The following APIs are used by the CmdTlmServer\n // ***********************************************\n get_all_interface_info() {\n return this.exec('get_all_interface_info', [])\n }\n\n connect_interface(interface_name) {\n return this.exec('connect_interface', [interface_name])\n }\n\n disconnect_interface(interface_name) {\n return this.exec('disconnect_interface', [interface_name])\n }\n\n get_all_router_info() {\n return this.exec('get_all_router_info', [])\n }\n\n connect_router(router_name) {\n return this.exec('connect_router', [router_name])\n }\n\n disconnect_router(router_name) {\n return this.exec('disconnect_router', [router_name])\n }\n\n get_all_target_info() {\n return this.exec('get_all_target_info', [])\n }\n\n get_all_cmd_info() {\n return this.exec('get_all_cmd_info', [])\n }\n\n get_all_tlm_info() {\n return this.exec('get_all_tlm_info', [])\n }\n\n get_item(target, packet, item) {\n return this.exec('get_item', [target, packet, item])\n }\n\n get_parameter(target, packet, item) {\n return this.exec('get_parameter', [target, packet, item])\n }\n\n get_all_packet_logger_info() {\n return this.exec('get_all_packet_logger_info', [])\n }\n\n start_logging() {\n return this.exec('start_logging', [])\n }\n\n stop_logging() {\n return this.exec('stop_logging', [])\n }\n\n start_cmd_log(log_writer_name) {\n return this.exec('start_cmd_log', [log_writer_name])\n }\n\n start_tlm_log(log_writer_name) {\n return this.exec('start_tlm_log', [log_writer_name])\n }\n\n stop_cmd_log(log_writer_name) {\n return this.exec('stop_cmd_log', [log_writer_name])\n }\n\n stop_tlm_log(log_writer_name) {\n return this.exec('stop_tlm_log', [log_writer_name])\n }\n\n get_server_status() {\n return this.exec('get_server_status', [])\n }\n\n get_limits_sets() {\n return this.exec('get_limits_sets', [])\n }\n\n get_limits_set() {\n return this.exec('get_limits_set', [])\n }\n\n set_limits_set(limits_set) {\n return this.exec('set_limits_set', [limits_set])\n }\n\n get_background_tasks() {\n return this.exec('get_background_tasks', [])\n }\n\n start_background_task(name) {\n return this.exec('start_background_task', [name])\n }\n\n stop_background_task(name) {\n return this.exec('stop_background_task', [name])\n }\n\n // ***********************************************\n // End CmdTlmServer APIs\n // ***********************************************\n\n get_oldest_logfile() {\n return this.exec('get_oldest_logfile', [])\n }\n\n get_target(target_name) {\n return this.exec('get_target', [target_name])\n }\n\n get_target_list() {\n return this.exec('get_target_list', [])\n }\n\n get_telemetry(target_name, packet_name) {\n return this.exec('get_telemetry', [target_name, packet_name])\n }\n\n get_all_telemetry(target_name) {\n return this.exec('get_all_telemetry', [target_name])\n }\n\n get_all_telemetry_list(target_name) {\n return this.exec('get_all_telemetry_list', [target_name])\n }\n\n // Called by PacketViewerComponent\n async get_tlm_packet(target_name, packet_name, value_type) {\n const data = await this.exec('get_tlm_packet', [target_name, packet_name], {\n type: value_type,\n })\n // Make sure data isn't null or undefined. Note this is the only valid use of == or !=\n if (data != null) {\n var len = data.length\n var converted = null\n for (var i = 0; i < len; i++) {\n converted = this.decode_cosmos_type(data[i][1])\n if (converted !== null) {\n data[i][1] = converted\n }\n }\n }\n return data\n }\n\n // Called by PacketViewerComponent\n get_packet_derived_items(target_name, packet_name) {\n return this.exec('get_packet_derived_items', [target_name, packet_name])\n }\n\n // Called by CmdTlmServer Tlm Packets tab\n get_tlm_buffer(target_name, packet_name) {\n return this.exec('get_tlm_buffer', [target_name, packet_name])\n }\n\n // Called by CosmosScreenComponent\n async get_tlm_values(items) {\n const data = await this.exec('get_tlm_values', [items])\n var len = data[0].length\n var converted = null\n for (var i = 0; i < len; i++) {\n converted = this.decode_cosmos_type(data[0][i])\n if (converted !== null) {\n data[0][i] = converted\n }\n }\n return data\n }\n\n // Called by LimitsbarWidget\n get_limits(target_name, packet_name, item_name) {\n return this.exec('get_limits', [target_name, packet_name, item_name])\n }\n\n // Called by LimitsMonitorComponent\n async tlm(target_name, packet_name, item_name) {\n const data = await this.exec('tlm', [target_name, packet_name, item_name])\n var converted = this.decode_cosmos_type(data)\n if (converted !== null) {\n data = converted\n }\n return data\n }\n\n get_all_commands(target_name) {\n return this.exec('get_all_commands', [target_name])\n }\n\n get_all_commands_list(target_name) {\n return this.exec('get_all_commands_list', [target_name])\n }\n\n get_command(target_name, command_name) {\n return this.exec('get_command', [target_name, command_name])\n }\n\n get_cmd_value(\n target_name,\n packet_name,\n parameter_name,\n value_type = 'CONVERTED'\n ) {\n return this.exec('get_cmd_value', [\n target_name,\n packet_name,\n parameter_name,\n value_type,\n ])\n }\n\n // Called by CmdTlmServer Cmd Packets tab\n get_cmd_buffer(target_name, packet_name) {\n return this.exec('get_cmd_buffer', [target_name, packet_name])\n }\n\n // Implementation of functionality shared by cmd methods with param_lists.\n _cmd(method, target_name, command_name, param_list) {\n var converted = null\n for (var key in param_list) {\n if (Object.prototype.hasOwnProperty.call(param_list, key)) {\n converted = this.encode_cosmos_type(param_list[key])\n if (converted !== null) {\n param_list[key] = converted\n }\n }\n }\n return this.exec(method, [target_name, command_name, param_list])\n }\n\n // Called by CmdSenderComponent\n get_cmd_hazardous(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('get_cmd_hazardous', target_name)\n } else {\n return this._cmd(\n 'get_cmd_hazardous',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd', target_name)\n } else {\n return this._cmd('cmd', target_name, command_name, param_list)\n }\n }\n\n // Called by CmdSenderComponent\n cmd_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_range_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw', target_name)\n } else {\n return this._cmd('cmd_raw', target_name, command_name, param_list)\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_range_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_hazardous_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_checks', target_name)\n } else {\n return this._cmd('cmd_no_checks', target_name, command_name, param_list)\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_hazardous_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_checks', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_checks',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n get_interface_names() {\n return this.exec('get_interface_names', [])\n }\n\n // Called by CmdSenderComponent\n send_raw(interface_name, data) {\n return this.exec('send_raw', [interface_name, data])\n }\n\n list_configs(tool) {\n return this.exec('list_configs', [tool])\n }\n\n load_config(tool, name) {\n return this.exec('load_config', [tool, name])\n }\n\n save_config(tool, name, data) {\n return this.exec('save_config', [tool, name, data])\n }\n\n delete_config(tool, name) {\n return this.exec('delete_config', [tool, name])\n }\n\n get_out_of_limits() {\n return this.exec('get_out_of_limits', [])\n }\n\n get_overall_limits_state(ignored) {\n return this.exec('get_overall_limits_state', [ignored])\n }\n\n list_settings() {\n return this.exec('list_settings', [])\n }\n\n get_all_settings() {\n return this.exec('get_all_settings', [])\n }\n\n get_setting(name) {\n return this.exec('get_setting', [name])\n }\n\n get_settings(array) {\n return this.exec('get_settings', array)\n }\n\n save_setting(name, data) {\n return this.exec('save_setting', [name, data])\n }\n\n // TODO: Currently unused but seemed like a useful function\n async hashString(string) {\n if (window.isSecureContext) {\n // Encode the string as an arrayBuffer which the subtle crypto API uses\n const arrayBuffer = new TextEncoder().encode(string)\n // Use the subtle crypto API to perform a SHA256 Sum of the array buffer\n // The resulting hash is stored in an array buffer\n const hashAsArrayBuffer = await crypto.subtle.digest(\n 'SHA-256',\n arrayBuffer\n )\n // To create a string we will get the hexadecimal value of each byte of the array buffer\n // This gets us an array where each byte of the array buffer becomes one item in the array\n const uint8ViewOfHash = new Uint8Array(hashAsArrayBuffer)\n // We then convert it to a regular array so we can convert each item to hexadecimal strings\n // Where to characters of 0-9 or a-f represent a number between 0 and 16, containing 4 bits of information, so 2 of them is 8 bits (1 byte).\n return Array.from(uint8ViewOfHash)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('')\n }\n // else ?\n }\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-footer id=\"footer\" app color=\"tertiary darken-3\" height=\"33\">\n <img :src=\"logo\" alt=\"COSMOS\" width=\"20\" height=\"20\" />\n <span class=\"footer-text\" style=\"margin-left: 5px\">\n COSMOS {{ cosmosVersion }} &copy; 2022\n </span>\n <v-spacer />\n <a :href=\"sourceUrl\" class=\"white--text text-decoration-underline\">\n Source\n </a>\n <v-spacer />\n <div class=\"justify-right\"><clock-footer /></div>\n </v-footer>\n</template>\n\n<script>\nimport ClockFooter from './components/ClockFooter.vue'\nimport { CosmosApi } from '../../packages/cosmosc2-tool-common/src/services/cosmos-api'\nimport logo from '../public/img/logo.png'\n\nexport default {\n components: {\n ClockFooter,\n },\n data() {\n return {\n logo: logo,\n sourceUrl: '',\n cosmosVersion: '',\n }\n },\n created: function () {\n this.getSourceUrl()\n },\n methods: {\n getSourceUrl: function () {\n new CosmosApi()\n .get_settings(['source_url', 'version'])\n .then((response) => {\n this.sourceUrl = response[0]\n this.cosmosVersion = `(${response[1]})`\n })\n },\n },\n}\n</script>\n\n<style scoped>\n#footer {\n z-index: 1000; /* On TOP! */\n}\n</style>\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=js&\"","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=style&index=0&id=225df573&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=style&index=0&id=225df573&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppFooter.vue?vue&type=template&id=225df573&scoped=true&\"\nimport script from \"./AppFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./AppFooter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppFooter.vue?vue&type=style&index=0&id=225df573&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"225df573\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('225df573')) {\n api.createRecord('225df573', component.options)\n } else {\n api.reload('225df573', component.options)\n }\n module.hot.accept(\"./AppFooter.vue?vue&type=template&id=225df573&scoped=true&\", function () {\n api.rerender('225df573', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/AppFooter.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"v-navigation-drawer\",\n {\n attrs: { app: \"\", id: \"cosmos-nav-drawer\" },\n model: {\n value: _vm.drawer,\n callback: function ($$v) {\n _vm.drawer = $$v\n },\n expression: \"drawer\",\n },\n },\n [\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n { attrs: { \"two-line\": \"\" } },\n [\n _c(\"v-list-item-icon\", [\n _c(\"img\", { attrs: { src: _vm.logo, alt: \"COSMOS\" } }),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-list-item-content\",\n [\n _c(\n \"v-list-item-title\",\n { staticClass: \"font-weight-bold\" },\n [_vm._v(\"\\n COSMOS\\n \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n { staticClass: \"my-0\" },\n [\n _c(\n \"v-list-item-content\",\n _vm._l(_vm.adminTools, function (tool, name) {\n return _c(\n \"div\",\n { key: name },\n [\n _c(\n \"v-btn\",\n {\n attrs: {\n block: \"\",\n small: \"\",\n href: tool.url,\n onclick: \"singleSpaNavigate(event)\",\n },\n },\n [_vm._v(\"\\n Admin\\n \")]\n ),\n ],\n 1\n )\n }),\n 0\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _vm._l(_vm.shownTools, function (tool, name) {\n return _c(\n \"div\",\n { key: name },\n [\n _c(\n \"v-list-item\",\n { staticClass: \"pr-0\" },\n [\n _c(\"v-list-item-icon\", [\n _c(\n \"a\",\n {\n attrs: {\n href: tool.url,\n onclick: \"singleSpaNavigate(event)\",\n },\n },\n [_c(\"v-icon\", [_vm._v(_vm._s(tool.icon))])],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-list-item-content\", [\n _c(\n \"a\",\n {\n attrs: {\n href: tool.url,\n onclick: \"singleSpaNavigate(event)\",\n },\n },\n [_c(\"v-list-item-title\", [_vm._v(_vm._s(name))])],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-divider\", { attrs: { vertical: \"\" } }),\n _vm._v(\" \"),\n _c(\"v-list-item-icon\", [\n _c(\n \"a\",\n { attrs: { href: tool.url, target: \"_blank\" } },\n [_c(\"v-icon\", [_vm._v(\"mdi-open-in-new\")])],\n 1\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n ],\n 2\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-app-bar\",\n {\n attrs: {\n app: \"\",\n color: \"tertiary darken-3\",\n id: \"cosmos-app-toolbar\",\n },\n },\n [\n _c(\"v-app-bar-nav-icon\", {\n on: {\n click: function ($event) {\n _vm.drawer = !_vm.drawer\n },\n },\n }),\n _vm._v(\" \"),\n _c(\"v-divider\", {\n staticClass: \"top-bar-divider-full-height\",\n attrs: { vertical: \"\" },\n }),\n _vm._v(\" \"),\n _c(\"span\", { staticStyle: { width: \"100%\" } }, [\n _c(\"span\", { attrs: { id: \"cosmos-menu\" } }),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"justify-right mr-2 pt-2\" },\n [_c(\"scope-selector\")],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"justify-right\" }, [_c(\"alert-history\")], 1),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"justify-right\" }, [_c(\"notifications\")], 1),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"justify-right\" }, [_c(\"user-menu\")], 1),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"v-select\", {\n attrs: {\n items: _vm.scopes,\n disabled: _vm.scopes.length <= 1,\n label: \"Scope\",\n dense: \"\",\n \"hide-details\": \"\",\n },\n model: {\n value: _vm.scope,\n callback: function ($$v) {\n _vm.scope = $$v\n },\n expression: \"scope\",\n },\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nexport default {\n created: function () {\n this.scopes = ['DEFAULT']\n },\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-select\n v-model=\"scope\"\n :items=\"scopes\"\n :disabled=\"scopes.length <= 1\"\n label=\"Scope\"\n dense\n hide-details\n />\n</template>\n\n<script>\nimport Scopes from '../util/scopes.js'\n\nexport default {\n mixins: [Scopes],\n data: function () {\n return {\n scopes: [], // gets set in the mixin\n scope: localStorage.scope,\n }\n },\n watch: {\n scope: function (val) {\n localStorage.scope = val\n location.reload()\n },\n scopes: function (val) {\n if (val.length === 1 || (!this.scope && val.length)) this.scope = val[0]\n },\n },\n created: function () {\n if (localStorage.scope == null) {\n localStorage.scope = 'DEFAULT'\n }\n },\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScopeSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScopeSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ScopeSelector.vue?vue&type=template&id=a826b65a&\"\nimport script from \"./ScopeSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./ScopeSelector.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('a826b65a')) {\n api.createRecord('a826b65a', component.options)\n } else {\n api.reload('a826b65a', component.options)\n }\n module.hot.accept(\"./ScopeSelector.vue?vue&type=template&id=a826b65a&\", function () {\n api.rerender('a826b65a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/ScopeSelector.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"v-overlay\", {\n staticClass: \"overlay\",\n attrs: { value: _vm.showAlertPane },\n }),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n transition: \"slide-y-transition\",\n \"close-on-content-click\": false,\n \"nudge-width\": 340,\n \"offset-y\": \"\",\n \"nudge-bottom\": 20,\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b({ attrs: { icon: \"\" } }, \"v-btn\", attrs, false),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { size: _vm.size } }, [\n _vm._v(\" mdi-alert-box-outline \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.showAlertPane,\n callback: function ($$v) {\n _vm.showAlertPane = $$v\n },\n expression: \"showAlertPane\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-title\",\n [\n _vm._v(\"\\n Alerts\\n \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { top: \"\", \"open-delay\": \"350\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ml-1\",\n attrs: { icon: \"\" },\n on: { click: _vm.clearAlerts },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", [\n _vm._v(\" mdi-notification-clear-all \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [_vm._v(\" \"), _c(\"span\", [_vm._v(\"Clear all\")])]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.alerts.length === 0\n ? _c(\"v-card-text\", [_vm._v(\" No alerts \")])\n : _c(\n \"v-list\",\n {\n staticClass: \"overflow-y-auto\",\n attrs: {\n \"two-line\": \"\",\n width: \"388\",\n \"max-height\": \"80vh\",\n },\n },\n [\n _vm._l(_vm.alerts, function (alert, index) {\n return [\n _c(\n \"v-list-item\",\n {\n key: \"alert-\" + index,\n staticClass: \"pl-2\",\n on: {\n click: function ($event) {\n return _vm.openDialog(alert)\n },\n },\n },\n [\n _c(\n \"v-badge\",\n {\n attrs: {\n left: \"\",\n inline: \"\",\n color: \"transparent\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"badge\",\n fn: function () {\n return [\n _c(\"astro-status-indicator\", {\n attrs: {\n status:\n alert.severity.toLowerCase(),\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n },\n [\n _c(\n \"v-list-item-content\",\n { staticClass: \"pt-0 pb-0\" },\n [\n _c(\"v-list-item-title\", [\n _vm._v(\n \"\\n \" +\n _vm._s(alert.title) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-list-item-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(alert.body) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n }),\n ],\n 2\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { width: \"600\" },\n model: {\n value: _vm.alertDialog,\n callback: function ($$v) {\n _vm.alertDialog = $$v\n },\n expression: \"alertDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-title\",\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.selectedAlert.title) +\n \"\\n \"\n ),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"astro-status-indicator\", {\n attrs: { status: _vm.selectedAlert.severity || \"normal\" },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-card-text\", [\n _vm._v(\n \"\\n \" + _vm._s(_vm.selectedAlert.body) + \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: {\n click: function ($event) {\n _vm.alertDialog = false\n },\n },\n },\n [_vm._v(\"\\n Dismiss\\n \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"rux-icon\", {\n staticClass: \"astro-icon\",\n attrs: { icon: _vm.icon },\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"span\",\n {\n style: _vm.style,\n attrs: { id: \"rux-icon\", title: _vm.label, size: _vm.size },\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 128 128\",\n preserveAspectRatio: \"xMidYMid meet\",\n focusable: \"false\",\n },\n },\n [_c(\"use\", { attrs: { href: _vm.getIcon(this.library, this.icon) } })]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <span id=\"rux-icon\" :title=\"label\" :style=\"style\" :size=\"size\">\n <!-- Camel case props becase svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 128 128\"\n preserveAspectRatio=\"xMidYMid meet\"\n focusable=\"false\"\n >\n <use :href=\"getIcon(this.library, this.icon)\" />\n </svg>\n </span>\n</template>\n\n<script>\n// This component is a rewrite of the Astro UXDS RuxIcon into Vue\n// Prevents multiple customElement problem with single-spa\nexport default {\n props: {\n icon: {\n type: String,\n },\n size: {\n type: String,\n default: 'extra-small',\n },\n color: {\n type: String,\n },\n library: {\n type: String,\n default: '/icons/astro.svg',\n },\n label: {\n type: String,\n default: 'icon',\n },\n },\n computed: {\n style: function () {\n return '--iconColor=' + this.propscolor\n },\n },\n methods: {\n getIcon() {\n return this.library + '#' + this.icon\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./RuxIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./RuxIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RuxIcon.vue?vue&type=template&id=c3c6c00c&\"\nimport script from \"./RuxIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./RuxIcon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('c3c6c00c')) {\n api.createRecord('c3c6c00c', component.options)\n } else {\n api.reload('c3c6c00c', component.options)\n }\n module.hot.accept(\"./RuxIcon.vue?vue&type=template&id=c3c6c00c&\", function () {\n api.rerender('c3c6c00c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/cosmosc2-tool-common/src/components/icons/RuxIcon.vue\"\nexport default component.exports","import mod from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <rux-icon :icon=\"icon\" class=\"astro-icon\" />\n</template>\n\n<script>\nimport RuxIcon from './RuxIcon.vue'\nimport { AstroIconLibrary } from '.'\n\n// This component is a wrapper around the Astro UXDS RuxIcon to make it work with Vuetify\nexport default {\n components: {\n RuxIcon,\n },\n props: {\n icon: {\n type: String,\n required: true,\n validator: (val) => {\n return AstroIconLibrary.includes(val)\n },\n },\n },\n}\n</script>\n\n<style scoped>\n.astro-icon {\n fill: currentColor;\n}\n</style>\n","\n import API from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../cosmosc2-tool-base/node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=style&index=0&id=1fcc6ea4&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../cosmosc2-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=style&index=0&id=1fcc6ea4&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AstroIcon.vue?vue&type=template&id=1fcc6ea4&scoped=true&\"\nimport script from \"./AstroIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./AstroIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AstroIcon.vue?vue&type=style&index=0&id=1fcc6ea4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1fcc6ea4\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('1fcc6ea4')) {\n api.createRecord('1fcc6ea4', component.options)\n } else {\n api.reload('1fcc6ea4', component.options)\n }\n module.hot.accept(\"./AstroIcon.vue?vue&type=template&id=1fcc6ea4&scoped=true&\", function () {\n api.rerender('1fcc6ea4', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/cosmosc2-tool-common/src/components/icons/AstroIcon.vue\"\nexport default component.exports","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport AstroIcon from './AstroIcon'\n\nconst AstroIconLibrary = [\n // These are from the IDs in the default RuxIcon library: https://github.com/RocketCommunicationsInc/astro-components/blob/master/static/icons/astro.svg\n 'altitude',\n 'antenna',\n 'antenna-off',\n 'antenna-receive',\n 'antenna-transmit',\n 'equipment',\n 'mission',\n 'payload',\n 'processor',\n 'processor-alt',\n 'netcom',\n 'propulsion-power',\n 'thermal',\n 'satellite-off',\n 'satellite-receive',\n 'satellite-transmit',\n 'add-large',\n 'add-small',\n 'close-large',\n 'close-small',\n 'collapse',\n 'expand',\n 'lock',\n 'unlock',\n 'search',\n 'caution',\n 'maintenance',\n 'notifications',\n 'settings',\n\n // These are in that SVG file, but they're broken in RuxIcon:\n // 'twitter', // the twitter logo\n // 'progress', // circle\n // 'resources', // filing cabinet\n // 'solar', // grid\n]\n\nconst AstroIconVuetifyValues = AstroIconLibrary.reduce((values, icon) => {\n return {\n [`astro-${icon}`]: {\n component: AstroIcon,\n props: {\n icon,\n },\n },\n ...values,\n }\n}, {})\n\nconst AstroStatusColors = {\n critical: '#ff3838',\n serious: '#ffb302',\n caution: '#fce83a',\n normal: '#56f000',\n standby: '#2dccff',\n off: '#9ea7ad',\n}\n\nconst getStatusColorContrast = function (severity) {\n const black = '#000000'\n const white = '#ffffff'\n\n const statusColor = AstroStatusColors[severity]\n if (statusColor) {\n const r = Number(`0x${statusColor.slice(1, 3)}`)\n const g = Number(`0x${statusColor.slice(3, 5)}`)\n const b = Number(`0x${statusColor.slice(5, 7)}`)\n const brightness = (r * 299 + g * 587 + b * 114) / 1000 // https://www.w3.org/TR/AERT/#color-contrast\n\n if (brightness > 128) return black\n }\n return white\n}\n\nconst AstroStatuses = Object.keys(AstroStatusColors)\n\nexport {\n AstroIconLibrary,\n AstroIconVuetifyValues,\n AstroStatuses,\n AstroStatusColors,\n getStatusColorContrast,\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","const _severities = [\n // order of severities from highest to lowest\n 'critical',\n 'serious',\n 'caution',\n 'normal',\n 'standby',\n 'off',\n]\n\nconst _getSeverityIndeces = function (severities) {\n return severities.map((severity) => _severities.indexOf(severity.toLowerCase()))\n}\n\nconst highestSeverity = function (severities) {\n const indeces = _getSeverityIndeces(severities)\n const index = Math.min(...indeces)\n return _severities[index]\n}\n\nconst lowestSeverity = function (severities) {\n const indeces = _getSeverityIndeces(severities)\n const index = Math.max(...indeces)\n return _severities[index]\n}\n\nconst orderBySeverity = function (objects, severityGetter = (x) => x.severity) {\n return objects.sort((a, b) => {\n return _severities.indexOf(severityGetter(a)) - _severities.indexOf(severityGetter(b))\n })\n}\n\nconst groupBySeverity = function (objects, severityGetter = (x) => x.severity) {\n return objects.reduce((groups, obj) => {\n const severity = severityGetter(obj)\n groups[severity] ||= []\n groups[severity].push(obj)\n return groups\n }, {})\n}\n\nexport { highestSeverity, lowestSeverity, orderBySeverity, groupBySeverity }\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <v-overlay :value=\"showAlertPane\" class=\"overlay\" />\n <v-menu\n v-model=\"showAlertPane\"\n transition=\"slide-y-transition\"\n :close-on-content-click=\"false\"\n :nudge-width=\"340\"\n offset-y\n :nudge-bottom=\"20\"\n >\n <!-- Alert box icon -->\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn v-bind=\"attrs\" v-on=\"on\" icon>\n <v-icon :size=\"size\"> mdi-alert-box-outline </v-icon>\n </v-btn>\n </template>\n\n <!-- Alerts list -->\n <v-card>\n <v-card-title>\n Alerts\n <v-spacer />\n <v-tooltip top open-delay=\"350\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn\n icon\n v-bind=\"attrs\"\n v-on=\"on\"\n @click=\"clearAlerts\"\n class=\"ml-1\"\n >\n <v-icon> mdi-notification-clear-all </v-icon>\n </v-btn>\n </template>\n <span>Clear all</span>\n </v-tooltip>\n </v-card-title>\n <v-card-text v-if=\"alerts.length === 0\"> No alerts </v-card-text>\n <v-list\n v-else\n two-line\n width=\"388\"\n max-height=\"80vh\"\n class=\"overflow-y-auto\"\n >\n <template v-for=\"(alert, index) in alerts\">\n <v-list-item\n :key=\"`alert-${index}`\"\n @click=\"openDialog(alert)\"\n class=\"pl-2\"\n >\n <v-badge left inline color=\"transparent\">\n <v-list-item-content class=\"pt-0 pb-0\">\n <v-list-item-title>\n {{ alert.title }}\n </v-list-item-title>\n <v-list-item-subtitle>\n {{ alert.body }}\n </v-list-item-subtitle>\n </v-list-item-content>\n <template v-slot:badge>\n <astro-status-indicator\n :status=\"alert.severity.toLowerCase()\"\n />\n </template>\n </v-badge>\n </v-list-item>\n </template>\n </v-list>\n </v-card>\n </v-menu>\n\n <!-- Dialog for viewing full alert -->\n <v-dialog v-model=\"alertDialog\" width=\"600\">\n <v-card>\n <v-card-title>\n {{ selectedAlert.title }}\n <v-spacer />\n <astro-status-indicator\n :status=\"selectedAlert.severity || 'normal'\"\n />\n </v-card-title>\n <v-card-text>\n {{ selectedAlert.body }}\n </v-card-text>\n <v-divider />\n <v-card-actions>\n <v-btn color=\"primary\" text @click=\"alertDialog = false\">\n Dismiss\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n </div>\n</template>\n\n<script>\nimport { AstroStatusColors } from '../../../packages/cosmosc2-tool-common/src/components/icons'\nimport {\n highestSeverity,\n orderBySeverity,\n groupBySeverity,\n} from '../util/AstroStatus'\n\nexport default {\n props: {\n size: {\n type: [String, Number],\n default: 26,\n },\n },\n data: function () {\n return {\n AstroStatusColors,\n alerts: [],\n alertDialog: false,\n showAlertPane: false,\n selectedAlert: {},\n }\n },\n watch: {\n showAlertPane: function (val) {\n if (val) {\n this.refreshList()\n }\n if (!val && this.selectedAlert.title) {\n this.alertDialog = false\n this.selectedAlert = {}\n }\n },\n },\n methods: {\n refreshList: function () {\n this.alerts = this.$store.state.notifyHistory\n },\n clearAlerts: function () {\n this.$store.commit('notifyClearHistory')\n this.refreshList()\n this.showAlertPane = false\n },\n openDialog: function (alert, clearToast = false) {\n this.selectedAlert = alert\n this.alertDialog = true\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n height: 28px;\n}\n\n.v-badge {\n width: 100%;\n}\n\n.overlay {\n height: 100vh;\n width: 100vw;\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertHistory.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertHistory.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertHistory.vue?vue&type=style&index=0&id=0042fbc8&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertHistory.vue?vue&type=style&index=0&id=0042fbc8&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AlertHistory.vue?vue&type=template&id=0042fbc8&scoped=true&\"\nimport script from \"./AlertHistory.vue?vue&type=script&lang=js&\"\nexport * from \"./AlertHistory.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AlertHistory.vue?vue&type=style&index=0&id=0042fbc8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0042fbc8\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('0042fbc8')) {\n api.createRecord('0042fbc8', component.options)\n } else {\n api.reload('0042fbc8', component.options)\n }\n module.hot.accept(\"./AlertHistory.vue?vue&type=template&id=0042fbc8&scoped=true&\", function () {\n api.rerender('0042fbc8', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/AlertHistory.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"v-overlay\", {\n staticClass: \"overlay\",\n attrs: { value: _vm.showNotificationPane },\n }),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n transition: \"slide-y-transition\",\n \"close-on-content-click\": false,\n \"nudge-width\": 340,\n \"offset-y\": \"\",\n \"nudge-bottom\": 20,\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b({ attrs: { icon: \"\" } }, \"v-btn\", attrs, false),\n on\n ),\n [\n _vm.unreadCount === 0\n ? _c(\"v-icon\", { attrs: { size: _vm.size } }, [\n _vm._v(\"\\n mdi-bell-outline\\n \"),\n ])\n : _c(\n \"v-badge\",\n {\n attrs: {\n left: \"\",\n \"offset-x\": \"24\",\n \"offset-y\": \"8\",\n color: _vm.badgeColor,\n bordered: \"\",\n content: _vm.unreadCount,\n },\n },\n [\n _c(\n \"v-icon\",\n {\n attrs: {\n size: _vm.size,\n color: _vm.badgeColor,\n },\n },\n [_vm._v(\" mdi-bell \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.showNotificationPane,\n callback: function ($$v) {\n _vm.showNotificationPane = $$v\n },\n expression: \"showNotificationPane\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-title\",\n [\n _vm._v(\"\\n Notifications\\n \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { top: \"\", \"open-delay\": \"350\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ml-1\",\n attrs: { icon: \"\" },\n on: { click: _vm.clearNotifications },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", [\n _vm._v(\" mdi-notification-clear-all \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [_vm._v(\" \"), _c(\"span\", [_vm._v(\"Clear all\")])]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n staticClass: \"ml-1\",\n attrs: { icon: \"\" },\n on: { click: _vm.toggleSettingsDialog },\n },\n [_c(\"v-icon\", [_vm._v(\" $astro-settings \")])],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.notifications.length === 0\n ? _c(\"v-card-text\", [\n _vm._v(\"\\n No notifications\\n \"),\n ])\n : _c(\n \"v-list\",\n {\n staticClass: \"overflow-y-auto\",\n attrs: {\n \"two-line\": \"\",\n width: \"388\",\n \"max-height\": \"80vh\",\n },\n },\n [\n _vm._l(\n _vm.notificationList,\n function (notification, index) {\n return [\n notification.header\n ? [\n index !== 0\n ? _c(\"v-divider\", {\n key: index,\n staticClass: \"mb-2\",\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"v-subheader\",\n { key: notification.header },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(notification.header) +\n \"\\n \"\n ),\n ]\n ),\n ]\n : _c(\n \"v-list-item\",\n {\n key: \"notification-\" + index,\n staticClass: \"pl-2\",\n on: {\n click: function ($event) {\n return _vm.openDialog(notification)\n },\n },\n },\n [\n _c(\n \"v-badge\",\n {\n attrs: {\n left: \"\",\n inline: \"\",\n color: \"transparent\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"badge\",\n fn: function () {\n return [\n _c(\"astro-status-indicator\", {\n attrs: {\n status:\n notification.severity.toLowerCase(),\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n },\n [\n _c(\n \"v-list-item-content\",\n { staticClass: \"pt-0 pb-0\" },\n [\n _c(\n \"v-list-item-title\",\n {\n class: {\n \"text--secondary\":\n notification.read,\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(notification.title) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-list-item-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(notification.body) +\n \"\\n \"\n ),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-list-item-action\",\n { staticClass: \"mt-0\" },\n [\n _c(\"v-list-item-action-text\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"shortDateTime\")(\n notification.time\n )\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n }\n ),\n ],\n 2\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { width: \"600\" },\n model: {\n value: _vm.notificationDialog,\n callback: function ($$v) {\n _vm.notificationDialog = $$v\n },\n expression: \"notificationDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-title\",\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.selectedNotification.title) +\n \"\\n \"\n ),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"astro-status-indicator\", {\n attrs: {\n status: _vm.selectedNotification.severity || \"normal\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-card-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"shortDateTime\")(_vm.selectedNotification.time)\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-card-text\", [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.selectedNotification.body) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: {\n click: function ($event) {\n return _vm.navigate(_vm.selectedNotification.url)\n },\n },\n },\n [\n _vm._v(\"\\n Open\\n \"),\n _c(\"v-icon\", { attrs: { right: \"\" } }, [\n _vm._v(\" mdi-open-in-new \"),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: {\n click: function ($event) {\n _vm.notificationDialog = false\n },\n },\n },\n [_vm._v(\"\\n Dismiss\\n \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { width: \"600\" },\n model: {\n value: _vm.settingsDialog,\n callback: function ($$v) {\n _vm.settingsDialog = $$v\n },\n expression: \"settingsDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [_vm._v(\" Notification settings \")]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\"v-switch\", {\n attrs: { label: \"Show toasts\" },\n model: {\n value: _vm.showToast,\n callback: function ($$v) {\n _vm.showToast = $$v\n },\n expression: \"showToast\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: { click: _vm.toggleSettingsDialog },\n },\n [_vm._v(\"\\n close\\n \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport * as ActionCable from '@rails/actioncable'\n//ActionCable.logger.enabled = true\nActionCable.ConnectionMonitor.staleThreshold = 60\n\nexport default class Cable {\n constructor(url = '/cosmos-api/cable') {\n this._cable = ActionCable.createConsumer(url)\n }\n disconnect() {\n this._cable.disconnect()\n }\n createSubscription(channel, scope, callbacks = {}, additionalOptions = {}) {\n return CosmosAuth.updateToken(CosmosAuth.defaultMinValidity).then(() => {\n return this._cable.subscriptions.create(\n {\n channel,\n scope,\n token: localStorage.cosmosToken,\n ...additionalOptions,\n },\n callbacks\n )\n })\n }\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <v-overlay :value=\"showNotificationPane\" class=\"overlay\" />\n <v-menu\n v-model=\"showNotificationPane\"\n transition=\"slide-y-transition\"\n :close-on-content-click=\"false\"\n :nudge-width=\"340\"\n offset-y\n :nudge-bottom=\"20\"\n >\n <!-- Bell icon -->\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn v-bind=\"attrs\" v-on=\"on\" icon>\n <v-icon v-if=\"unreadCount === 0\" :size=\"size\">\n mdi-bell-outline\n </v-icon>\n <v-badge\n v-else\n left\n offset-x=\"24\"\n offset-y=\"8\"\n :color=\"badgeColor\"\n bordered\n :content=\"unreadCount\"\n >\n <v-icon :size=\"size\" :color=\"badgeColor\"> mdi-bell </v-icon>\n </v-badge>\n </v-btn>\n </template>\n\n <!-- Notifications list -->\n <v-card>\n <v-card-title>\n Notifications\n <v-spacer />\n <v-tooltip top open-delay=\"350\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn\n icon\n v-bind=\"attrs\"\n v-on=\"on\"\n @click=\"clearNotifications\"\n class=\"ml-1\"\n >\n <v-icon> mdi-notification-clear-all </v-icon>\n </v-btn>\n </template>\n <span>Clear all</span>\n </v-tooltip>\n <v-btn icon @click=\"toggleSettingsDialog\" class=\"ml-1\">\n <v-icon> $astro-settings </v-icon>\n </v-btn>\n </v-card-title>\n <v-card-text v-if=\"notifications.length === 0\">\n No notifications\n </v-card-text>\n <v-list\n v-else\n two-line\n width=\"388\"\n max-height=\"80vh\"\n class=\"overflow-y-auto\"\n >\n <template v-for=\"(notification, index) in notificationList\">\n <template v-if=\"notification.header\">\n <v-divider v-if=\"index !== 0\" :key=\"index\" class=\"mb-2\" />\n <v-subheader :key=\"notification.header\">\n {{ notification.header }}\n </v-subheader>\n </template>\n\n <v-list-item\n v-else\n :key=\"`notification-${index}`\"\n @click=\"openDialog(notification)\"\n class=\"pl-2\"\n >\n <v-badge left inline color=\"transparent\">\n <v-list-item-content class=\"pt-0 pb-0\">\n <v-list-item-title\n :class=\"{ 'text--secondary': notification.read }\"\n >\n {{ notification.title }}\n </v-list-item-title>\n <v-list-item-subtitle>\n {{ notification.body }}\n </v-list-item-subtitle>\n </v-list-item-content>\n <v-list-item-action class=\"mt-0\">\n <v-list-item-action-text>\n {{ notification.time | shortDateTime }}\n </v-list-item-action-text>\n <v-spacer />\n </v-list-item-action>\n <template v-slot:badge>\n <astro-status-indicator\n :status=\"notification.severity.toLowerCase()\"\n />\n </template>\n </v-badge>\n </v-list-item>\n </template>\n </v-list>\n </v-card>\n </v-menu>\n\n <!-- Dialog for viewing full notification -->\n <v-dialog v-model=\"notificationDialog\" width=\"600\">\n <v-card>\n <v-card-title>\n {{ selectedNotification.title }}\n <v-spacer />\n <astro-status-indicator\n :status=\"selectedNotification.severity || 'normal'\"\n />\n </v-card-title>\n <v-card-subtitle>\n {{ selectedNotification.time | shortDateTime }}\n </v-card-subtitle>\n <v-card-text>\n {{ selectedNotification.body }}\n </v-card-text>\n <v-divider />\n <v-card-actions>\n <v-btn\n color=\"primary\"\n text\n @click=\"navigate(selectedNotification.url)\"\n >\n Open\n <v-icon right> mdi-open-in-new </v-icon>\n </v-btn>\n <v-btn color=\"primary\" text @click=\"notificationDialog = false\">\n Dismiss\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n\n <!-- Dialog for changing notification settings -->\n <v-dialog v-model=\"settingsDialog\" width=\"600\">\n <v-card>\n <v-card-title> Notification settings </v-card-title>\n <v-card-text>\n <v-switch v-model=\"showToast\" label=\"Show toasts\" />\n </v-card-text>\n <v-divider />\n <v-card-actions>\n <v-btn color=\"primary\" text @click=\"toggleSettingsDialog\">\n close\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n </div>\n</template>\n\n<script>\nimport { formatDistanceToNow } from 'date-fns'\nimport { AstroStatusColors } from '../../../packages/cosmosc2-tool-common/src/components/icons'\nimport {\n highestSeverity,\n orderBySeverity,\n groupBySeverity,\n} from '../util/AstroStatus'\nimport Cable from '../../../packages/cosmosc2-tool-common/src/services/cable.js'\n\nconst NOTIFICATION_HISTORY_MAX_LENGTH = 100\n\nexport default {\n props: {\n size: {\n type: [String, Number],\n default: 26,\n },\n },\n data: function () {\n return {\n AstroStatusColors,\n cable: new Cable(),\n subscription: null,\n notifications: [],\n showNotificationPane: false,\n toastNotification: {},\n notificationDialog: false,\n selectedNotification: {},\n settingsDialog: false,\n showToast: true,\n }\n },\n computed: {\n badgeColor: function () {\n if (!this.unreadCount) {\n return AstroStatusColors['off']\n }\n const severities = this.unreadNotifications\n .map((notification) => notification.severity)\n .filter((val, index, self) => {\n return self.indexOf(val) === index // Unique values\n })\n return AstroStatusColors[highestSeverity(severities)]\n },\n readNotifications: function () {\n return this.notifications\n .filter((notification) => notification.read)\n .sort((a, b) => b.time - a.time)\n },\n unreadNotifications: function () {\n return this.notifications\n .filter((notification) => !notification.read)\n .sort((a, b) => b.time - a.time)\n },\n unreadCount: function () {\n return this.unreadNotifications.length\n },\n notificationList: function () {\n const groups = groupBySeverity(this.unreadNotifications)\n let result = orderBySeverity(Object.keys(groups), (k) => k).flatMap(\n (severity) => {\n const header = {\n header: severity.charAt(0).toUpperCase() + severity.slice(1),\n }\n return [header, ...groups[severity]]\n }\n )\n if (this.readNotifications.length) {\n result = result.concat([{ header: 'Read' }, ...this.readNotifications])\n }\n return result\n },\n },\n watch: {\n showNotificationPane: function (val) {\n if (!val) {\n if (this.selectedNotification.title) {\n this.notificationDialog = false\n this.selectedNotification = {}\n } else {\n this.markAllAsRead()\n }\n }\n },\n showToast: function (val) {\n localStorage.notoast = !val\n },\n },\n created: function () {\n this.showToast = localStorage.notoast === 'false'\n this.subscribe()\n },\n destroyed: function () {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.cable.disconnect()\n },\n methods: {\n markAllAsRead: function () {\n this.notifications.forEach((notification) => {\n notification.read = true\n if (\n !localStorage.lastReadNotification ||\n localStorage.lastReadNotification < notification.msg_id\n ) {\n localStorage.lastReadNotification = notification.msg_id\n }\n })\n },\n clearNotifications: function () {\n this.markAllAsRead()\n this.notifications = []\n localStorage.notificationStreamOffset = localStorage.lastReadNotification\n this.showNotificationPane = false\n },\n toggleNotificationPane: function () {\n this.showNotificationPane = !this.showNotificationPane\n },\n toggleSettingsDialog: function () {\n this.settingsDialog = !this.settingsDialog\n },\n openDialog: function (notification, clearToast = false) {\n notification.read = true\n if (\n !localStorage.lastReadNotification ||\n localStorage.lastReadNotification < notification.msg_id\n ) {\n localStorage.lastReadNotification = notification.msg_id\n }\n this.selectedNotification = notification\n this.notificationDialog = true\n },\n navigate: function (url) {\n window.open(url, '_blank')\n },\n subscribe: function () {\n this.cable\n .createSubscription(\n 'NotificationsChannel',\n localStorage.scope,\n {\n received: (data) => this.received(data),\n },\n {\n start_offset:\n localStorage.notificationStreamOffset ||\n localStorage.lastReadNotification,\n }\n )\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data) {\n const parsed = JSON.parse(data)\n if (parsed.length > NOTIFICATION_HISTORY_MAX_LENGTH) {\n parsed.splice(0, parsed.length - NOTIFICATION_HISTORY_MAX_LENGTH)\n }\n let foundToast = false\n parsed.forEach((notification) => {\n notification.read =\n notification.msg_id <= localStorage.lastReadNotification\n notification.severity = notification.severity || 'normal'\n if (\n !notification.read && // Don't toast read notifications\n (['critical', 'serious'].includes(notification.severity) || // Toast for these statuses\n notification.severity === 'critical') // Ok to override a toast only if this one is 'critical'\n ) {\n foundToast = true\n this.toastNotification = notification\n }\n })\n\n if (this.showToast && foundToast) {\n this.$notify[this.toastNotification.severity]({\n ...this.toastNotification,\n type: 'notification',\n duration:\n this.toastNotification.severity === 'critical' ? null : 5000,\n saveToHistory: false,\n })\n }\n\n if (\n this.notifications.length + parsed.length >\n NOTIFICATION_HISTORY_MAX_LENGTH\n ) {\n this.notifications.splice(\n 0,\n this.notifications.length +\n parsed.length -\n NOTIFICATION_HISTORY_MAX_LENGTH\n )\n }\n this.notifications = this.notifications.concat(parsed)\n },\n },\n filters: {\n shortDateTime: function (nsec) {\n if (!nsec) return ''\n const date = new Date(nsec / 1_000_000)\n return formatDistanceToNow(date, { addSuffix: true })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n height: 28px;\n}\n\n.v-badge {\n width: 100%;\n}\n\n.overlay {\n height: 100vh;\n width: 100vw;\n}\n</style>\n","import distanceInWords from \"../formatDistance/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsToNow ` to `formatDistanceToNow`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n * ```\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if now is earlier or later than the passed date\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistanceToNow(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return distanceInWords(dirtyDate, Date.now(), dirtyOptions);\n}","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=style&index=0&id=43a3e4e8&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=style&index=0&id=43a3e4e8&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Notifications.vue?vue&type=template&id=43a3e4e8&scoped=true&\"\nimport script from \"./Notifications.vue?vue&type=script&lang=js&\"\nexport * from \"./Notifications.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Notifications.vue?vue&type=style&index=0&id=43a3e4e8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"43a3e4e8\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('43a3e4e8')) {\n api.createRecord('43a3e4e8', component.options)\n } else {\n api.reload('43a3e4e8', component.options)\n }\n module.hot.accept(\"./Notifications.vue?vue&type=template&id=43a3e4e8&scoped=true&\", function () {\n api.rerender('43a3e4e8', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/Notifications.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"v-overlay\", {\n staticClass: \"overlay\",\n attrs: { value: _vm.showUserMenu },\n }),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n transition: \"slide-y-transition\",\n \"offset-y\": \"\",\n \"close-on-content-click\": false,\n \"nudge-width\": 120,\n \"nudge-bottom\": 20,\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b({ attrs: { icon: \"\" } }, \"v-btn\", attrs, false),\n on\n ),\n [\n _c(\"v-icon\", { attrs: { size: _vm.size } }, [\n _vm._v(\" mdi-account \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.showUserMenu,\n callback: function ($$v) {\n _vm.showUserMenu = $$v\n },\n expression: \"showUserMenu\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\"v-card-text\", { staticClass: \"text-center\" }, [\n _vm.authenticated\n ? _c(\n \"div\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { block: \"\", color: \"primary\" },\n on: { click: _vm.logout },\n },\n [_vm._v(\" Logout \")]\n ),\n ],\n 1\n )\n : _c(\n \"div\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { block: \"\", color: \"primary\" },\n on: { click: _vm.login },\n },\n [_vm._v(\" Login \")]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n _c(\"v-switch\", {\n attrs: { label: \"Colorblind mode\" },\n model: {\n value: _vm.colorblindMode,\n callback: function ($$v) {\n _vm.colorblindMode = $$v\n },\n expression: \"colorblindMode\",\n },\n }),\n ],\n 1\n ),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <v-overlay :value=\"showUserMenu\" class=\"overlay\" />\n <v-menu\n v-model=\"showUserMenu\"\n transition=\"slide-y-transition\"\n offset-y\n :close-on-content-click=\"false\"\n :nudge-width=\"120\"\n :nudge-bottom=\"20\"\n >\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn v-bind=\"attrs\" v-on=\"on\" icon>\n <v-icon :size=\"size\"> mdi-account </v-icon>\n </v-btn>\n </template>\n\n <v-card>\n <v-card-text class=\"text-center\">\n <div v-if=\"authenticated\">\n <v-btn block @click=\"logout\" color=\"primary\"> Logout </v-btn>\n </div>\n <div v-else>\n <v-btn block @click=\"login\" color=\"primary\"> Login </v-btn>\n </div>\n <div>\n <v-switch label=\"Colorblind mode\" v-model=\"colorblindMode\" />\n </div>\n </v-card-text>\n </v-card>\n </v-menu>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n size: {\n type: [String, Number],\n default: 26,\n },\n },\n data: function () {\n return {\n showUserMenu: false,\n authenticated: !!localStorage.cosmosToken,\n }\n },\n computed: {\n colorblindMode: {\n get: function () {\n return localStorage.colorblindMode === 'true'\n },\n set: function (val) {\n localStorage.colorblindMode = val\n },\n },\n },\n methods: {\n logout: function () {\n CosmosAuth.logout()\n },\n login: function () {\n CosmosAuth.login(location.href)\n },\n },\n}\n</script>\n\n<style scoped>\n.overlay {\n height: 100vh;\n width: 100vw;\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=style&index=0&id=53e47a0c&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=style&index=0&id=53e47a0c&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserMenu.vue?vue&type=template&id=53e47a0c&scoped=true&\"\nimport script from \"./UserMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./UserMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserMenu.vue?vue&type=style&index=0&id=53e47a0c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53e47a0c\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('53e47a0c')) {\n api.createRecord('53e47a0c', component.options)\n } else {\n api.reload('53e47a0c', component.options)\n }\n module.hot.accept(\"./UserMenu.vue?vue&type=template&id=53e47a0c&scoped=true&\", function () {\n api.rerender('53e47a0c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/UserMenu.vue\"\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <v-navigation-drawer v-model=\"drawer\" app id=\"cosmos-nav-drawer\">\n <v-list>\n <v-list-item two-line>\n <v-list-item-icon>\n <img :src=\"logo\" alt=\"COSMOS\" />\n </v-list-item-icon>\n <v-list-item-content>\n <v-list-item-title class=\"font-weight-bold\">\n COSMOS\n </v-list-item-title>\n <!-- v-list-item-subtitle>Enterprise Edition</v-list-item-subtitle -->\n </v-list-item-content>\n </v-list-item>\n <v-list-item class=\"my-0\">\n <v-list-item-content>\n <div v-for=\"(tool, name) in adminTools\" :key=\"name\">\n <v-btn\n block\n small\n :href=\"tool.url\"\n onclick=\"singleSpaNavigate(event)\"\n >\n Admin\n </v-btn>\n </div>\n </v-list-item-content>\n </v-list-item>\n <v-divider />\n <div v-for=\"(tool, name) in shownTools\" :key=\"name\">\n <v-list-item class=\"pr-0\">\n <v-list-item-icon>\n <a :href=\"tool.url\" onclick=\"singleSpaNavigate(event)\">\n <v-icon>{{ tool.icon }}</v-icon>\n </a>\n </v-list-item-icon>\n <v-list-item-content>\n <a :href=\"tool.url\" onclick=\"singleSpaNavigate(event)\">\n <v-list-item-title>{{ name }}</v-list-item-title>\n </a>\n </v-list-item-content>\n <v-divider vertical />\n <v-list-item-icon>\n <a :href=\"tool.url\" target=\"_blank\">\n <v-icon>mdi-open-in-new</v-icon>\n </a>\n </v-list-item-icon>\n </v-list-item>\n </div>\n </v-list>\n </v-navigation-drawer>\n <v-app-bar app color=\"tertiary darken-3\" id=\"cosmos-app-toolbar\">\n <v-app-bar-nav-icon @click=\"drawer = !drawer\" />\n <v-divider vertical class=\"top-bar-divider-full-height\" />\n <span style=\"width: 100%\"><span id=\"cosmos-menu\"></span></span>\n <div class=\"justify-right mr-2 pt-2\"><scope-selector /></div>\n <div class=\"justify-right\"><alert-history /></div>\n <div class=\"justify-right\"><notifications /></div>\n <div class=\"justify-right\"><user-menu /></div>\n </v-app-bar>\n </div>\n</template>\n\n<script>\nimport Api from '../../packages/cosmosc2-tool-common/src/services/api'\nimport logo from '../public/img/logo.png'\nimport { registerApplication, start } from 'single-spa'\nimport ScopeSelector from './components/ScopeSelector.vue'\nimport AlertHistory from './components/AlertHistory.vue'\nimport Notifications from './components/Notifications.vue'\nimport UserMenu from './components/UserMenu.vue'\n\nexport default {\n components: {\n ScopeSelector,\n AlertHistory,\n Notifications,\n UserMenu,\n },\n data() {\n return {\n drawer: true,\n appNav: {},\n adminNav: {},\n checked: [],\n logo: logo,\n }\n },\n computed: {\n // a computed getter\n shownTools: function () {\n let result = {}\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown && this.appNav[key].category !== 'Admin') {\n result[key] = this.appNav[key]\n }\n }\n return result\n },\n adminTools: function () {\n let result = {}\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown && this.appNav[key].category === 'Admin') {\n result[key] = this.appNav[key]\n }\n }\n return result\n },\n },\n created() {\n Api.get('/cosmos-api/tools/all', { params: { scope: 'DEFAULT' } }).then(\n (response) => {\n this.appNav = response.data\n\n // Register apps and start single-spa\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown) {\n let folder_name = this.appNav[key].folder_name\n let name = '@cosmosc2/tool-' + folder_name\n registerApplication({\n name: name,\n app: () => System.import(name),\n activeWhen: ['/tools/' + folder_name],\n })\n }\n }\n start({\n urlRerouteOnly: true,\n })\n\n // Redirect / to the first tool\n if (window.location.pathname == '/') {\n for (var key of Object.keys(this.shownTools)) {\n if (this.appNav[key].shown) {\n history.replaceState(null, '', this.appNav[key].url)\n break\n }\n }\n }\n }\n )\n },\n}\n</script>\n\n<style scoped>\n.v-list-item--two-line .v-list-item__icon {\n margin: 0px;\n}\n.v-list >>> .v-label {\n margin-left: 5px;\n}\n.theme--dark.v-navigation-drawer {\n background-color: var(--v-primary-darken2);\n}\n.v-list-item__icon {\n /* For some reason the default margin-right is huge */\n margin-right: 15px !important;\n}\n.v-list-item__title {\n color: white;\n}\n\n#cosmos-app-toolbar .top-bar-divider-full-height {\n margin: -4px 4px;\n min-height: calc(100% + 8px);\n}\n</style>\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=script&lang=js&\"","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=style&index=0&id=0a95910a&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=style&index=0&id=0a95910a&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppNav.vue?vue&type=template&id=0a95910a&scoped=true&\"\nimport script from \"./AppNav.vue?vue&type=script&lang=js&\"\nexport * from \"./AppNav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppNav.vue?vue&type=style&index=0&id=0a95910a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0a95910a\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('0a95910a')) {\n api.createRecord('0a95910a', component.options)\n } else {\n api.reload('0a95910a', component.options)\n }\n module.hot.accept(\"./AppNav.vue?vue&type=template&id=0a95910a&scoped=true&\", function () {\n api.rerender('0a95910a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/AppNav.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-dialog\",\n {\n attrs: { width: \"500\" },\n model: {\n value: _vm.dialog,\n callback: function ($$v) {\n _vm.dialog = $$v\n },\n expression: \"dialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [_vm._v(\" Clock out of sync \")]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _vm._v(\n \"\\n We've detected that your clock is approximately\\n \" +\n _vm._s(Math.abs(_vm.approximateDiscrepancySec)) +\n \" seconds\\n \" +\n _vm._s(\n _vm.approximateDiscrepancySec > 0 ? \"behind\" : \"ahead of\"\n ) +\n \" server time.\\n This can cause issues and might have unknown side effects.\\n \"\n ),\n _c(\"v-checkbox\", {\n attrs: { label: \"Don't show this again\" },\n model: {\n value: _vm.suppress,\n callback: function ($$v) {\n _vm.suppress = $$v\n },\n expression: \"suppress\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: { click: _vm.dismiss },\n },\n [_vm._v(\" Dismiss \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-dialog v-model=\"dialog\" width=\"500\">\n <v-card>\n <v-card-title> Clock out of sync </v-card-title>\n <v-card-text>\n We've detected that your clock is approximately\n {{ Math.abs(approximateDiscrepancySec) }} seconds\n {{ approximateDiscrepancySec > 0 ? 'behind' : 'ahead of' }} server time.\n This can cause issues and might have unknown side effects.\n <v-checkbox v-model=\"suppress\" label=\"Don't show this again\" />\n </v-card-text>\n <v-divider />\n <v-card-actions>\n <v-btn color=\"primary\" text @click=\"dismiss\"> Dismiss </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\n// Directly use axios since we need no authentication or scope\nimport axios from 'axios'\n\nconst ALLOWABLE_DISCREPANCY_MS = 3000\n\nexport default {\n data: function () {\n return {\n dismissed: false,\n suppress: false,\n discrepancy: 0,\n }\n },\n created: function () {\n this.suppress =\n localStorage['suppresswarning__clock_out_of_sync_with_server'] === 'true'\n if (!this.suppress) {\n axios\n .get('/cosmos-api/time')\n .then((response) => {\n this.discrepancy = response.data.now_nsec / 1_000_000 - Date.now()\n })\n .catch((error) => {\n // Silently fail\n this.dismissed = true\n })\n }\n },\n methods: {\n dismiss: function () {\n localStorage['suppresswarning__clock_out_of_sync_with_server'] =\n this.suppress\n this.dismissed = true\n },\n },\n computed: {\n approximateDiscrepancySec: function () {\n return (this.discrepancy / 1000).toFixed()\n },\n dialog: function () {\n return (\n !this.dismissed &&\n Math.abs(this.discrepancy) >= ALLOWABLE_DISCREPANCY_MS\n )\n },\n },\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeCheck.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeCheck.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TimeCheck.vue?vue&type=template&id=6504bcbb&\"\nimport script from \"./TimeCheck.vue?vue&type=script&lang=js&\"\nexport * from \"./TimeCheck.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('6504bcbb')) {\n api.createRecord('6504bcbb', component.options)\n } else {\n api.reload('6504bcbb', component.options)\n }\n module.hot.accept(\"./TimeCheck.vue?vue&type=template&id=6504bcbb&\", function () {\n api.rerender('6504bcbb', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/TimeCheck.vue\"\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<script>\nimport { CosmosApi } from '../../../packages/cosmosc2-tool-common/src/services/cosmos-api'\n\nexport default {\n data: function () {\n return {\n api: null,\n classification: {\n text: '',\n fontColor: 'white',\n backgroundColor: 'red',\n topHeight: 0,\n bottomHeight: 0,\n },\n }\n },\n computed: {\n classificationStyles: function () {\n // JavaScript can't access CSS psudo-elements (::before and ::after).\n // This string sets these JS values to CSS variables, accessible to\n // the style sheet via the style attribute on #app\n return [\n `--classification-text:\"${this.classification.text}\";`,\n `--classification-font-color:${this.classification.fontColor};`,\n `--classification-background-color:${this.classification.backgroundColor};`,\n `--classification-height-top:${this.classification.topHeight}px;`,\n `--classification-height-bottom:${this.classification.bottomHeight}px;`,\n ].join('')\n },\n },\n created: function () {\n this.api = new CosmosApi()\n this.load()\n },\n methods: {\n load: function () {\n this.api.get_setting('classification_banner').then((response) => {\n if (response) {\n this.classification = JSON.parse(response)\n }\n })\n },\n },\n}\n</script>\n\n<style>\n/* push things up and down to make room for the classification banners */\n#app,\n#cosmos-nav-drawer {\n margin-top: var(--classification-height-top);\n}\n#cosmos-app-toolbar {\n top: var(--classification-height-top);\n}\n#cosmos-nav-drawer .v-navigation-drawer__content {\n height: calc(\n 100% - var(--classification-height-top) -\n var(--classification-height-bottom)\n );\n}\n#footer {\n margin-bottom: var(--classification-height-bottom);\n}\n\n/* make the classification banners */\n#app::before,\n#app::after {\n z-index: 99;\n position: fixed;\n left: 0;\n right: 0;\n text-align: center;\n content: var(--classification-text);\n color: var(--classification-font-color);\n background-color: var(--classification-background-color);\n}\n#app::before {\n top: 0;\n font-size: calc(var(--classification-height-top) * 0.7);\n height: var(--classification-height-top);\n}\n#app::after {\n bottom: 0;\n font-size: calc(var(--classification-height-bottom) * 0.7);\n height: var(--classification-height-bottom);\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=script&lang=js&\"","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=style&index=0&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=style&index=0&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","var render, staticRenderFns\nimport script from \"./ClassificationBanners.vue?vue&type=script&lang=js&\"\nexport * from \"./ClassificationBanners.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ClassificationBanners.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('40f420fe')) {\n api.createRecord('40f420fe', component.options)\n } else {\n api.reload('40f420fe', component.options)\n }\n \n }\n}\ncomponent.options.__file = \"src/components/ClassificationBanners.vue\"\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-app :style=\"classificationStyles\">\n <app-nav class=\"d-print-none\" />\n\n <!-- Sizes your content based upon application components -->\n <v-main>\n <v-container fluid>\n <div id=\"cosmos-tool\"></div>\n <div><router-view /></div>\n </v-container>\n </v-main>\n <app-footer app class=\"d-print-none\" />\n <time-check />\n </v-app>\n</template>\n\n<script>\nimport AppFooter from './AppFooter'\nimport AppNav from './AppNav'\nimport TimeCheck from './components/TimeCheck'\nimport ClassificationBanners from './components/ClassificationBanners'\nexport default {\n components: {\n AppFooter,\n AppNav,\n TimeCheck,\n },\n mixins: [ClassificationBanners],\n}\n</script>\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=7ba5bd90&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('7ba5bd90')) {\n api.createRecord('7ba5bd90', component.options)\n } else {\n api.reload('7ba5bd90', component.options)\n }\n module.hot.accept(\"./App.vue?vue&type=template&id=7ba5bd90&\", function () {\n api.rerender('7ba5bd90', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/App.vue\"\nexport default component.exports","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport Vue from 'vue'\nimport Router from 'vue-router'\n\nVue.use(Router)\n\nexport default new Router({\n mode: 'history',\n base: process.env.BASE_URL,\n routes: [\n {\n path: '/login',\n component: () => import('./components/Login'),\n },\n // TODO: Create NotFoundComponent since we're doing history browser mode\n // See: https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations\n // {\n // path: '*',\n // component: NotFoundComponent\n // }\n ],\n})\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport Vue from 'vue'\nimport Vuex from 'vuex'\n\nVue.use(Vuex)\n\nconst NOTIFY_HISTORY_MAX_LENGTH = 100\n\nif (!window.hasOwnProperty('CosmosStore')) {\n window.CosmosStore = new Vuex.Store({\n state: {\n notifyHistory: [],\n tlmViewerItems: [],\n tlmViewerValues: {},\n },\n getters: {},\n mutations: {\n notifyAddHistory: function (state, notification) {\n if (state.notifyHistory.length >= NOTIFY_HISTORY_MAX_LENGTH) {\n state.notifyHistory.length = NOTIFY_HISTORY_MAX_LENGTH - 1\n }\n state.notifyHistory.unshift(notification)\n },\n notifyClearHistory: function (state) {\n state.notifyHistory = []\n },\n\n tlmViewerUpdateValues: function (state, values) {\n for (let i = 0; i < values.length; i++) {\n Vue.set(state.tlmViewerValues, state.tlmViewerItems[i], values[i])\n }\n },\n tlmViewerAddItem: function (state, item) {\n state.tlmViewerItems.push(item)\n Vue.set(state.tlmViewerValues, item, [null, null])\n },\n tlmViewerDeleteItem: function (state, item) {\n let index = state.tlmViewerItems.indexOf(item)\n state.tlmViewerItems.splice(index, 1)\n delete state.tlmViewerValues[item]\n },\n },\n modules: {},\n })\n}\n\nexport default window.CosmosStore\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport Vue from 'vue'\nimport Vuetify from 'vuetify'\nimport { AstroIconVuetifyValues } from '../../../packages/cosmosc2-tool-common/src/components/icons/index.js'\n\nVue.use(Vuetify)\n\nexport default new Vuetify({\n theme: {\n dark: true,\n options: {\n customProperties: true,\n },\n themes: {\n dark: {\n primary: '#005a8f',\n secondary: '#4dacff',\n tertiary: '#283f58',\n },\n light: {\n primary: '#cce6ff',\n secondary: '#cce6ff',\n },\n },\n },\n icons: {\n values: {\n ...AstroIconVuetifyValues,\n },\n },\n})\n","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-badge\",\n {\n attrs: {\n color: \"transparent\",\n left: \"\",\n inline: _vm.inline,\n \"offset-x\": _vm.offsetX,\n \"offset-y\": _vm.offsetY + 12,\n },\n scopedSlots: _vm._u([\n {\n key: \"badge\",\n fn: function () {\n return [\n _c(\"astro-status-indicator\", {\n attrs: { status: _vm.status, small: \"\" },\n }),\n ]\n },\n proxy: true,\n },\n ]),\n },\n [_vm._v(\" \"), _vm._t(\"default\")],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { style: _vm.iconStyle })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroStatusIndicator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroStatusIndicator.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div :style=\"iconStyle\" />\n</template>\n\n<script>\nimport { AstroStatuses } from '.'\nimport dark from '../../../public/icons/status-dark.png'\nimport light from '../../../public/icons/status-light.png'\n\nexport default {\n props: {\n status: {\n type: String,\n required: true,\n validator: (val) => {\n return AstroStatuses.includes(val)\n },\n },\n large: {\n type: Boolean,\n },\n small: {\n type: Boolean,\n },\n scale: {\n type: Number,\n },\n },\n computed: {\n icons: function () {\n return dark // TODO: check theme\n },\n scaleFactor: function () {\n if (this.scale) {\n return this.scale\n } else if (this.large) {\n return 1\n } else if (this.small) {\n return 0.3\n } else {\n return 0.5\n }\n },\n iconStyle: function () {\n // The original png dimensions are 192x32 px\n const bgWidth = 192 * this.scaleFactor\n const bgHeight = 32 * this.scaleFactor\n const iconWidth = 32 * this.scaleFactor // Each icon in the png is 32px wide with no space in between\n const offset = AstroStatuses.indexOf(this.status)\n return [\n `background-image: url(${this.icons});`,\n `background-position-x: -${offset * iconWidth}px;`,\n `background-size: ${bgWidth}px ${bgHeight}px;`,\n `height: ${iconWidth}px;`,\n `width: ${iconWidth}px;`,\n ].join('')\n },\n },\n}\n</script>\n","import { render, staticRenderFns } from \"./AstroStatusIndicator.vue?vue&type=template&id=4d46e73c&\"\nimport script from \"./AstroStatusIndicator.vue?vue&type=script&lang=js&\"\nexport * from \"./AstroStatusIndicator.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('4d46e73c')) {\n api.createRecord('4d46e73c', component.options)\n } else {\n api.reload('4d46e73c', component.options)\n }\n module.hot.accept(\"./AstroStatusIndicator.vue?vue&type=template&id=4d46e73c&\", function () {\n api.rerender('4d46e73c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator.vue\"\nexport default component.exports","import mod from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroBadge.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroBadge.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-badge\n color=\"transparent\"\n left\n :inline=\"inline\"\n :offset-x=\"offsetX\"\n :offset-y=\"offsetY + 12\"\n >\n <template v-slot:badge>\n <astro-status-indicator :status=\"status\" small />\n </template>\n <slot />\n </v-badge>\n</template>\n\n<script>\nimport AstroStatusIndicator from './AstroStatusIndicator.vue'\nexport default {\n components: {\n AstroStatusIndicator,\n },\n props: {\n status: {\n type: String,\n required: true,\n },\n offsetX: {\n type: [Number, String],\n },\n offsetY: {\n type: [Number, String],\n default: 0,\n },\n inline: {\n type: Boolean,\n },\n },\n}\n</script>\n","import { render, staticRenderFns } from \"./AstroBadge.vue?vue&type=template&id=a5a039f0&\"\nimport script from \"./AstroBadge.vue?vue&type=script&lang=js&\"\nexport * from \"./AstroBadge.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('a5a039f0')) {\n api.createRecord('a5a039f0', component.options)\n } else {\n api.reload('a5a039f0', component.options)\n }\n module.hot.accept(\"./AstroBadge.vue?vue&type=template&id=a5a039f0&\", function () {\n api.rerender('a5a039f0', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/cosmosc2-tool-common/src/components/icons/AstroBadge.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"astro-badge\",\n { attrs: { status: _vm.status } },\n [\n _c(\n \"v-icon\",\n { attrs: { color: _vm.color || _vm.statusColor } },\n [\n _vm.$slots.default\n ? _vm._t(\"default\")\n : [_vm._v(\" \" + _vm._s(_vm.icon) + \" \")],\n ],\n 2\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <astro-badge :status=\"status\">\n <v-icon :color=\"color || statusColor\">\n <slot v-if=\"$slots.default\" />\n <template v-else> {{ icon }} </template>\n </v-icon>\n </astro-badge>\n</template>\n\n<script>\nimport { AstroStatusColors } from '.'\nimport AstroBadge from './AstroBadge.vue'\n\nexport default {\n components: { AstroBadge },\n props: {\n status: {\n type: String,\n required: true,\n },\n icon: {\n type: String,\n },\n color: {\n type: String,\n },\n },\n computed: {\n statusColor: function () {\n return AstroStatusColors[this.status]\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroBadgeIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../cosmosc2-tool-base/node_modules/babel-loader/lib/index.js!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroBadgeIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AstroBadgeIcon.vue?vue&type=template&id=0a0e31be&\"\nimport script from \"./AstroBadgeIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./AstroBadgeIcon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../cosmosc2-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/cosmos/plugins/cosmosc2-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('0a0e31be')) {\n api.createRecord('0a0e31be', component.options)\n } else {\n api.reload('0a0e31be', component.options)\n }\n module.hot.accept(\"./AstroBadgeIcon.vue?vue&type=template&id=0a0e31be&\", function () {\n api.rerender('0a0e31be', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon.vue\"\nexport default component.exports","import Vue from 'vue'\nimport App from './App.vue'\nimport router from './router'\n\nVue.config.productionTip = false\n\nimport store from '../../packages/cosmosc2-tool-common/src/plugins/store'\nimport '../../packages/cosmosc2-tool-common/src/assets/stylesheets/layout/layout.scss'\nimport vuetify from './plugins/vuetify'\n\n// Register these globally so they don't have to be imported every time\nimport AstroBadge from '../../packages/cosmosc2-tool-common/src/components/icons/AstroBadge'\nimport AstroBadgeIcon from '../../packages/cosmosc2-tool-common/src/components/icons/AstroBadgeIcon'\nimport AstroStatusIndicator from '../../packages/cosmosc2-tool-common/src/components/icons/AstroStatusIndicator'\nVue.component('astro-badge', AstroBadge)\nVue.component('astro-badge-icon', AstroBadgeIcon)\nVue.component('astro-status-indicator', AstroStatusIndicator)\n\nconst options = CosmosAuth.getInitOptions()\nCosmosAuth.init(options).then(() => {\n new Vue({\n router,\n store,\n vuetify,\n render: (h) => h(App),\n }).$mount('#cosmos-main')\n})\n"],"names":["inProgress","dataWebpackPrefix","module","exports","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","defaults","Cancel","config","Promise","resolve","reject","onCanceled","requestData","data","requestHeaders","headers","responseType","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","value","err","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","send","bind","Axios","mergeConfig","axios","createInstance","defaultConfig","context","instance","prototype","extend","create","instanceConfig","CancelToken","isCancel","VERSION","all","promises","spread","isAxiosError","message","this","toString","__CANCEL__","executor","TypeError","resolvePromise","promise","token","then","_listeners","i","l","length","onfulfilled","_resolve","reason","throwIfRequested","listener","push","index","splice","source","c","InterceptorManager","dispatchRequest","validator","validators","interceptors","arguments","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","Array","apply","concat","shift","newConfig","onFulfilled","onRejected","error","getUri","replace","handlers","use","options","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","Error","transformData","throwIfCancellationRequested","call","transformRequest","merge","common","adapter","transformResponse","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","Object","keys","configValue","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","args","encode","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","substr","callback","arr","thing","deprecatedWarnings","version","formatMessage","opt","desc","opts","console","warn","schema","allowUnknown","result","getPrototypeOf","isFunction","obj","hasOwnProperty","constructor","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","assignValue","a","b","str","stripBOM","content","charCodeAt","noAuth","noScope","CosmosAuth","updateToken","defaultMinValidity","login","localStorage","cosmosToken","scope","acceptOnlyDefaultHeaders","Accept","fullDefaultHeaders","get","put","post","delete","vueInstance","Vue","axiosInstance","origin","axiosIgnoreResponse","body","exception","class","$notify","serious","title","___CSS_LOADER_EXPORT___","cssWithMappingToString","list","map","item","modules","mediaQuery","dedupe","alreadyImportedModules","_i","_arrayLikeToArray","len","arr2","_item","_arrayWithHoles","Symbol","iterator","_s","_e","_arr","_n","_d","next","_iterableToArrayLimit","o","minLen","n","from","_unsupportedIterableToArray","_nonIterableRest","cssMapping","base64","sourceMapping","sourceURLs","sources","sourceRoot","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","api","domAPI","update","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","memo","insert","style","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","getTarget","appendChild","element","setAttributes","attributes","styleElement","nonce","insertStyleElement","needLayer","styleTagTransform","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","resolveDirectory","rootDirLevel","meta","urlString","rootDirectoryLevel","numDirsProcessed","finalPath","Number","isInteger","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","__esModule","default","locals","listToStyles","parentId","styles","newStyles","part","hasDocument","DEBUG","stylesInDom","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","isOldIE","addStylesClient","_isProduction","_options","addStylesToDom","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleIndex","applyToSingletonTag","applyToTag","textStore","replaceText","replacement","filter","Boolean","cssNode","childNodes","insertBefore","ssrId","adapters","logger","self","WebSocket","log","enabled","_adapters$logger","_len","messages","_key","_typeof","classCallCheck","Constructor","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","getTime","secondsSince","time","ConnectionMonitor","connection","visibilityDidChange","reconnectAttempts","start","isRunning","startedAt","stoppedAt","startPolling","getPollInterval","stop","stopPolling","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","clearTimeout","pollTimeout","_this","reconnectIfStale","_constructor$pollInte","pollInterval","min","max","interval","multiplier","Math","round","clamp","connectionIsStale","staleThreshold","disconnectedRecently","reopen","_this2","visibilityState","isOpen","INTERNAL","message_types","welcome","disconnect","ping","confirmation","rejection","disconnect_reasons","unauthorized","invalid_request","server_restart","default_mount_path","protocols","supportedProtocols","Connection","consumer","subscriptions","monitor","disconnected","webSocket","isActive","getState","uninstallEventHandlers","installEventHandlers","close","allowReconnect","reopenDelay","getProtocol","isState","isProtocolSupported","states","state","eventName","events","handler","event","_JSON$parse","reconnect","reload","confirmSubscription","notify","notifyAll","willAttemptReconnect","object","properties","Subscription","mixin","perform","action","command","SubscriptionGuarantor","pendingSubscriptions","guarantee","subscription","startGuaranteeing","forget","s","stopGuaranteeing","retrySubscribing","retryTimeout","Subscriptions","guarantor","channelName","channel","ensureActiveConnection","findAll","sendCommand","callbackName","_this3","_len2","_key2","_this4","Consumer","_url","connect","createWebSocketURL","getConfig","getAttribute","createConsumer","factory","__WEBPACK_EXTERNAL_MODULE__8645__","__WEBPACK_EXTERNAL_MODULE__4091__","__WEBPACK_EXTERNAL_MODULE__4688__","__WEBPACK_EXTERNAL_MODULE__9731__","__WEBPACK_EXTERNAL_MODULE__9191__","_defineProperty","asyncGeneratorStep","gen","_next","_throw","arg","info","_asyncToGenerator","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","y","__system_context__","getter","d","definition","f","chunkId","reduce","u","script","needAttach","scripts","charset","nc","src","onScriptComplete","prev","onload","doneFns","r","toStringTag","p","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","autoPublicPath","_vm","_h","$createElement","_c","_self","classificationStyles","staticClass","_v","attrs","fluid","app","_withStripped","color","height","logo","alt","width","staticStyle","cosmosVersion","sourceUrl","_g","_b","cursor","on","contextmenu","openMenu","_f","displayLocal","localDate","utcDate","formatString","menuX","menuY","absolute","model","showMenu","$$v","expression","click","toggleDisplayLocal","toggleDisplay24h","display24h","dateMode","setMonthFirst","setDayFirst","setNumber","requiredArgs","required","toDate","argument","argStr","NaN","isValid","dirtyDate","date","isNaN","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","String","defaultWidth","format","formats","full","long","medium","short","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","dirtyOptions","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","ordinalNumber","dirtyNumber","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","pattern","findKey","valueCallback","rest","predicate","array","parsePattern","parseInt","parseResult","any","formatDistance","tokenValue","addSuffix","comparison","formatLong","formatRelative","_date","_baseDate","localize","weekStartsOn","firstWeekContainsDate","toInteger","ceil","floor","addMilliseconds","dirtyAmount","timestamp","amount","subMilliseconds","MILLISECONDS_IN_DAY","startOfUTCISOWeek","getUTCDay","diff","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","startOfUTCWeek","locale","localeWeekStartsOn","defaultWeekStartsOn","RangeError","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","addLeadingZeros","targetLength","sign","output","abs","signedYear","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","pow","G","unit","lightFormatters","Y","signedWeekYear","weekYear","R","Q","q","M","L","w","week","getUTCWeek","I","isoWeek","getUTCISOWeek","D","dayOfYear","setUTCMonth","startOfYearTimestamp","difference","getUTCDayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","hours","B","H","K","k","S","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","t","originalDate","T","offset","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","timeLongFormatter","P","dateTimeFormat","datePattern","timePattern","getTimezoneOffsetInMilliseconds","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","input","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","cleanEscapedString","clock_zone","clock_12h","intervalCount","computed","dateFormat","timeFormat","watch","clock_dateMode","created","setInterval","methods","preventDefault","clientX","clientY","$nextTick","filters","dirtyFormatStr","formatStr","formatterOptions","substring","firstCharacter","longFormatter","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","component","__file","_readOnlyError","_classCallCheck","_defineProperties","_createClass","CosmosApi","kwparams","jsonrpc","keyword_params","json_class","raw","Infinity","POSITIVE_INFINITY","NEGATIVE_INFINITY","exec","interface_name","router_name","packet","log_writer_name","limits_set","target_name","packet_name","value_type","converted","decode_cosmos_type","items","item_name","command_name","parameter_name","param_list","encode_cosmos_type","_cmd","tool","ignored","isSecureContext","arrayBuffer","TextEncoder","crypto","subtle","digest","hashAsArrayBuffer","uint8ViewOfHash","Uint8Array","padStart","components","ClockFooter","getSourceUrl","drawer","_l","adminTools","block","small","onclick","shownTools","icon","vertical","$event","scopes","disabled","label","dense","mixins","showAlertPane","transition","scopedSlots","_u","ref","size","top","clearAlerts","alerts","alert","openDialog","left","inline","severity","proxy","alertDialog","selectedAlert","text","xmlns","viewBox","preserveAspectRatio","focusable","getIcon","library","propscolor","RuxIcon","AstroIconLibrary","includes","AstroIconVuetifyValues","AstroIcon","AstroStatusColors","critical","caution","normal","standby","off","AstroStatuses","iter","_severities","refreshList","$store","notifyHistory","commit","showNotificationPane","unreadCount","badgeColor","bordered","clearNotifications","toggleSettingsDialog","notifications","notificationList","notification","header","notificationDialog","selectedNotification","navigate","right","settingsDialog","showToast","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","differenceInCalendarMonths","yearDiff","monthDiff","endOfDay","setHours","endOfMonth","setFullYear","isLastDayOfMonth","differenceInMonths","setDate","setMonth","isLastMonthNotFull","differenceInMilliseconds","roundingMap","trunc","getRoundingMethod","differenceInSeconds","roundingMethod","cloneObject","dirtyObject","property","MINUTES_IN_DAY","MINUTES_IN_MONTH","dirtyBaseDate","localizeOptions","months","seconds","offsetInSeconds","includeSeconds","days","nearestMonth","monthsSinceStartOfYear","years","ActionCable","Cable","_cable","callbacks","additionalOptions","cable","toastNotification","severities","indeces","_getSeverityIndeces","highestSeverity","readNotifications","unreadNotifications","objects","severityGetter","groups","sort","markAllAsRead","notoast","destroyed","lastReadNotification","msg_id","notificationStreamOffset","toggleNotificationPane","received","NOTIFICATION_HISTORY_MAX_LENGTH","foundToast","duration","saveToHistory","shortDateTime","nsec","formatDistanceToNow","showUserMenu","authenticated","logout","colorblindMode","set","ScopeSelector","AlertHistory","Notifications","UserMenu","appNav","adminNav","checked","activeWhen","folder_name","dialog","approximateDiscrepancySec","suppress","dismiss","dismissed","discrepancy","toFixed","classification","fontColor","backgroundColor","topHeight","bottomHeight","load","get_setting","AppFooter","AppNav","TimeCheck","ClassificationBanners","Router","mode","routes","Vuex","CosmosStore","tlmViewerItems","tlmViewerValues","getters","mutations","notifyAddHistory","NOTIFY_HISTORY_MAX_LENGTH","notifyClearHistory","tlmViewerUpdateValues","tlmViewerAddItem","tlmViewerDeleteItem","Vuetify","theme","dark","customProperties","themes","primary","secondary","tertiary","light","icons","offsetX","offsetY","_t","iconStyle","large","scale","scaleFactor","AstroStatusIndicator","statusColor","$slots","AstroBadge","AstroBadgeIcon","getInitOptions","init","router","store","vuetify","App","$mount"],"sourceRoot":""}