openc3-tool-base 5.8.1 → 5.9.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,2 +1,2 @@
1
- System.register(["vue","single-spa","vue-router","vuex","vuetify"],(function(t,n){var e={},o={},i={},r={},a={};return{setters:[function(t){e.default=t.default},function(t){o.registerApplication=t.registerApplication,o.start=t.start},function(t){i.default=t.default},function(t){r.default=t.default},function(t){a.default=t.default}],execute:function(){t(function(){var t,s,l={4206:function(t,n,e){t.exports=e(8057)},4387:function(t,n,e){"use strict";var o=e(7485),i=e(4570),r=e(2940),a=e(581),s=e(574),l=e(3845),c=e(8338),u=e(4832),d=e(7354),p=e(8870),f=e(4906);t.exports=function(t){return new Promise((function(n,e){var A,h=t.data,m=t.headers,g=t.responseType;function v(){t.cancelToken&&t.cancelToken.unsubscribe(A),t.signal&&t.signal.removeEventListener("abort",A)}o.isFormData(h)&&o.isStandardBrowserEnv()&&delete m["Content-Type"];var b=new XMLHttpRequest;if(t.auth){var y=t.auth.username||"",C=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";m.Authorization="Basic "+btoa(y+":"+C)}var w=s(t.baseURL,t.url);function k(){if(b){var o="getAllResponseHeaders"in b?l(b.getAllResponseHeaders()):null,r={data:g&&"text"!==g&&"json"!==g?b.response:b.responseText,status:b.status,statusText:b.statusText,headers:o,config:t,request:b};i((function(t){n(t),v()}),(function(t){e(t),v()}),r),b=null}}if(b.open(t.method.toUpperCase(),a(w,t.params,t.paramsSerializer),!0),b.timeout=t.timeout,"onloadend"in b?b.onloadend=k:b.onreadystatechange=function(){b&&4===b.readyState&&(0!==b.status||b.responseURL&&0===b.responseURL.indexOf("file:"))&&setTimeout(k)},b.onabort=function(){b&&(e(new d("Request aborted",d.ECONNABORTED,t,b)),b=null)},b.onerror=function(){e(new d("Network Error",d.ERR_NETWORK,t,b,b)),b=null},b.ontimeout=function(){var n=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",o=t.transitional||u;t.timeoutErrorMessage&&(n=t.timeoutErrorMessage),e(new d(n,o.clarifyTimeoutError?d.ETIMEDOUT:d.ECONNABORTED,t,b)),b=null},o.isStandardBrowserEnv()){var x=(t.withCredentials||c(w))&&t.xsrfCookieName?r.read(t.xsrfCookieName):void 0;x&&(m[t.xsrfHeaderName]=x)}"setRequestHeader"in b&&o.forEach(m,(function(t,n){void 0===h&&"content-type"===n.toLowerCase()?delete m[n]:b.setRequestHeader(n,t)})),o.isUndefined(t.withCredentials)||(b.withCredentials=!!t.withCredentials),g&&"json"!==g&&(b.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&b.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&b.upload&&b.upload.addEventListener("progress",t.onUploadProgress),(t.cancelToken||t.signal)&&(A=function(t){b&&(e(!t||t&&t.type?new p:t),b.abort(),b=null)},t.cancelToken&&t.cancelToken.subscribe(A),t.signal&&(t.signal.aborted?A():t.signal.addEventListener("abort",A))),h||(h=null);var _=f(w);_&&-1===["http","https","file"].indexOf(_)?e(new d("Unsupported protocol "+_+":",d.ERR_BAD_REQUEST,t)):b.send(h)}))}},8057:function(t,n,e){"use strict";var o=e(7485),i=e(875),r=e(5029),a=e(4941),s=function t(n){var e=new r(n),s=i(r.prototype.request,e);return o.extend(s,r.prototype,e),o.extend(s,e),s.create=function(e){return t(a(n,e))},s}(e(8396));s.Axios=r,s.CanceledError=e(8870),s.CancelToken=e(4603),s.isCancel=e(1475),s.VERSION=e(3345).version,s.toFormData=e(1020),s.AxiosError=e(7354),s.Cancel=s.CanceledError,s.all=function(t){return Promise.all(t)},s.spread=e(5739),s.isAxiosError=e(5835),t.exports=s,t.exports.default=s},4603:function(t,n,e){"use strict";var o=e(8870);function i(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var n;this.promise=new Promise((function(t){n=t}));var e=this;this.promise.then((function(t){if(e._listeners){var n,o=e._listeners.length;for(n=0;n<o;n++)e._listeners[n](t);e._listeners=null}})),this.promise.then=function(t){var n,o=new Promise((function(t){e.subscribe(t),n=t})).then(t);return o.cancel=function(){e.unsubscribe(n)},o},t((function(t){e.reason||(e.reason=new o(t),n(e.reason))}))}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.prototype.subscribe=function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]},i.prototype.unsubscribe=function(t){if(this._listeners){var n=this._listeners.indexOf(t);-1!==n&&this._listeners.splice(n,1)}},i.source=function(){var t;return{token:new i((function(n){t=n})),cancel:t}},t.exports=i},8870:function(t,n,e){"use strict";var o=e(7354);function i(t){o.call(this,null==t?"canceled":t,o.ERR_CANCELED),this.name="CanceledError"}e(7485).inherits(i,o,{__CANCEL__:!0}),t.exports=i},1475:function(t){"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},5029:function(t,n,e){"use strict";var o=e(7485),i=e(581),r=e(8096),a=e(5009),s=e(4941),l=e(574),c=e(6144),u=c.validators;function d(t){this.defaults=t,this.interceptors={request:new r,response:new r}}d.prototype.request=function(t,n){"string"==typeof t?(n=n||{}).url=t:n=t||{},(n=s(this.defaults,n)).method?n.method=n.method.toLowerCase():this.defaults.method?n.method=this.defaults.method.toLowerCase():n.method="get";var e=n.transitional;void 0!==e&&c.assertOptions(e,{silentJSONParsing:u.transitional(u.boolean),forcedJSONParsing:u.transitional(u.boolean),clarifyTimeoutError:u.transitional(u.boolean)},!1);var o=[],i=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(n)||(i=i&&t.synchronous,o.unshift(t.fulfilled,t.rejected))}));var r,l=[];if(this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)})),!i){var d=[a,void 0];for(Array.prototype.unshift.apply(d,o),d=d.concat(l),r=Promise.resolve(n);d.length;)r=r.then(d.shift(),d.shift());return r}for(var p=n;o.length;){var f=o.shift(),A=o.shift();try{p=f(p)}catch(t){A(t);break}}try{r=a(p)}catch(t){return Promise.reject(t)}for(;l.length;)r=r.then(l.shift(),l.shift());return r},d.prototype.getUri=function(t){t=s(this.defaults,t);var n=l(t.baseURL,t.url);return i(n,t.params,t.paramsSerializer)},o.forEach(["delete","get","head","options"],(function(t){d.prototype[t]=function(n,e){return this.request(s(e||{},{method:t,url:n,data:(e||{}).data}))}})),o.forEach(["post","put","patch"],(function(t){function n(n){return function(e,o,i){return this.request(s(i||{},{method:t,headers:n?{"Content-Type":"multipart/form-data"}:{},url:e,data:o}))}}d.prototype[t]=n(),d.prototype[t+"Form"]=n(!0)})),t.exports=d},7354:function(t,n,e){"use strict";var o=e(7485);function i(t,n,e,o,i){Error.call(this),this.message=t,this.name="AxiosError",n&&(this.code=n),e&&(this.config=e),o&&(this.request=o),i&&(this.response=i)}o.inherits(i,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var r=i.prototype,a={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED"].forEach((function(t){a[t]={value:t}})),Object.defineProperties(i,a),Object.defineProperty(r,"isAxiosError",{value:!0}),i.from=function(t,n,e,a,s,l){var c=Object.create(r);return o.toFlatObject(t,c,(function(t){return t!==Error.prototype})),i.call(c,t.message,n,e,a,s),c.name=t.name,l&&Object.assign(c,l),c},t.exports=i},8096:function(t,n,e){"use strict";var o=e(7485);function i(){this.handlers=[]}i.prototype.use=function(t,n,e){return this.handlers.push({fulfilled:t,rejected:n,synchronous:!!e&&e.synchronous,runWhen:e?e.runWhen:null}),this.handlers.length-1},i.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},i.prototype.forEach=function(t){o.forEach(this.handlers,(function(n){null!==n&&t(n)}))},t.exports=i},574:function(t,n,e){"use strict";var o=e(2642),i=e(2288);t.exports=function(t,n){return t&&!o(n)?i(t,n):n}},5009:function(t,n,e){"use strict";var o=e(7485),i=e(9212),r=e(1475),a=e(8396),s=e(8870);function l(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new s}t.exports=function(t){return l(t),t.headers=t.headers||{},t.data=i.call(t,t.data,t.headers,t.transformRequest),t.headers=o.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),o.forEach(["delete","get","head","post","put","patch","common"],(function(n){delete t.headers[n]})),(t.adapter||a.adapter)(t).then((function(n){return l(t),n.data=i.call(t,n.data,n.headers,t.transformResponse),n}),(function(n){return r(n)||(l(t),n&&n.response&&(n.response.data=i.call(t,n.response.data,n.response.headers,t.transformResponse))),Promise.reject(n)}))}},4941:function(t,n,e){"use strict";var o=e(7485);t.exports=function(t,n){n=n||{};var e={};function i(t,n){return o.isPlainObject(t)&&o.isPlainObject(n)?o.merge(t,n):o.isPlainObject(n)?o.merge({},n):o.isArray(n)?n.slice():n}function r(e){return o.isUndefined(n[e])?o.isUndefined(t[e])?void 0:i(void 0,t[e]):i(t[e],n[e])}function a(t){if(!o.isUndefined(n[t]))return i(void 0,n[t])}function s(e){return o.isUndefined(n[e])?o.isUndefined(t[e])?void 0:i(void 0,t[e]):i(void 0,n[e])}function l(e){return e in n?i(t[e],n[e]):e in t?i(void 0,t[e]):void 0}var c={url:a,method:a,data:a,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:l};return o.forEach(Object.keys(t).concat(Object.keys(n)),(function(t){var n=c[t]||r,i=n(t);o.isUndefined(i)&&n!==l||(e[t]=i)})),e}},4570:function(t,n,e){"use strict";var o=e(7354);t.exports=function(t,n,e){var i=e.config.validateStatus;e.status&&i&&!i(e.status)?n(new o("Request failed with status code "+e.status,[o.ERR_BAD_REQUEST,o.ERR_BAD_RESPONSE][Math.floor(e.status/100)-4],e.config,e.request,e)):t(e)}},9212:function(t,n,e){"use strict";var o=e(7485),i=e(8396);t.exports=function(t,n,e){var r=this||i;return o.forEach(e,(function(e){t=e.call(r,t,n)})),t}},8396:function(t,n,e){"use strict";var o=e(7485),i=e(1446),r=e(7354),a=e(4832),s=e(1020),l={"Content-Type":"application/x-www-form-urlencoded"};function c(t,n){!o.isUndefined(t)&&o.isUndefined(t["Content-Type"])&&(t["Content-Type"]=n)}var u,d={transitional:a,adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(u=e(4387)),u),transformRequest:[function(t,n){if(i(n,"Accept"),i(n,"Content-Type"),o.isFormData(t)||o.isArrayBuffer(t)||o.isBuffer(t)||o.isStream(t)||o.isFile(t)||o.isBlob(t))return t;if(o.isArrayBufferView(t))return t.buffer;if(o.isURLSearchParams(t))return c(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString();var e,r=o.isObject(t),a=n&&n["Content-Type"];if((e=o.isFileList(t))||r&&"multipart/form-data"===a){var l=this.env&&this.env.FormData;return s(e?{"files[]":t}:t,l&&new l)}return r||"application/json"===a?(c(n,"application/json"),function(t,n,e){if(o.isString(t))try{return(0,JSON.parse)(t),o.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var n=this.transitional||d.transitional,e=n&&n.silentJSONParsing,i=n&&n.forcedJSONParsing,a=!e&&"json"===this.responseType;if(a||i&&o.isString(t)&&t.length)try{return JSON.parse(t)}catch(t){if(a){if("SyntaxError"===t.name)throw r.from(t,r.ERR_BAD_RESPONSE,this,null,this.response);throw t}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:e(8750)},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};o.forEach(["delete","get","head"],(function(t){d.headers[t]={}})),o.forEach(["post","put","patch"],(function(t){d.headers[t]=o.merge(l)})),t.exports=d},4832:function(t){"use strict";t.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}},3345:function(t){t.exports={version:"0.27.2"}},875:function(t){"use strict";t.exports=function(t,n){return function(){for(var e=new Array(arguments.length),o=0;o<e.length;o++)e[o]=arguments[o];return t.apply(n,e)}}},581:function(t,n,e){"use strict";var o=e(7485);function i(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,n,e){if(!n)return t;var r;if(e)r=e(n);else if(o.isURLSearchParams(n))r=n.toString();else{var a=[];o.forEach(n,(function(t,n){null!=t&&(o.isArray(t)?n+="[]":t=[t],o.forEach(t,(function(t){o.isDate(t)?t=t.toISOString():o.isObject(t)&&(t=JSON.stringify(t)),a.push(i(n)+"="+i(t))})))})),r=a.join("&")}if(r){var s=t.indexOf("#");-1!==s&&(t=t.slice(0,s)),t+=(-1===t.indexOf("?")?"?":"&")+r}return t}},2288:function(t){"use strict";t.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}},2940:function(t,n,e){"use strict";var o=e(7485);t.exports=o.isStandardBrowserEnv()?{write:function(t,n,e,i,r,a){var s=[];s.push(t+"="+encodeURIComponent(n)),o.isNumber(e)&&s.push("expires="+new Date(e).toGMTString()),o.isString(i)&&s.push("path="+i),o.isString(r)&&s.push("domain="+r),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(t){var n=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},2642:function(t){"use strict";t.exports=function(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}},5835:function(t,n,e){"use strict";var o=e(7485);t.exports=function(t){return o.isObject(t)&&!0===t.isAxiosError}},8338:function(t,n,e){"use strict";var o=e(7485);t.exports=o.isStandardBrowserEnv()?function(){var t,n=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");function i(t){var o=t;return n&&(e.setAttribute("href",o),o=e.href),e.setAttribute("href",o),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return t=i(window.location.href),function(n){var e=o.isString(n)?i(n):n;return e.protocol===t.protocol&&e.host===t.host}}():function(){return!0}},1446:function(t,n,e){"use strict";var o=e(7485);t.exports=function(t,n){o.forEach(t,(function(e,o){o!==n&&o.toUpperCase()===n.toUpperCase()&&(t[n]=e,delete t[o])}))}},8750:function(t){t.exports=null},3845:function(t,n,e){"use strict";var o=e(7485),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var n,e,r,a={};return t?(o.forEach(t.split("\n"),(function(t){if(r=t.indexOf(":"),n=o.trim(t.substr(0,r)).toLowerCase(),e=o.trim(t.substr(r+1)),n){if(a[n]&&i.indexOf(n)>=0)return;a[n]="set-cookie"===n?(a[n]?a[n]:[]).concat([e]):a[n]?a[n]+", "+e:e}})),a):a}},4906:function(t){"use strict";t.exports=function(t){var n=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return n&&n[1]||""}},5739:function(t){"use strict";t.exports=function(t){return function(n){return t.apply(null,n)}}},1020:function(t,n,e){"use strict";var o=e(7485);t.exports=function(t,n){n=n||new FormData;var e=[];function i(t){return null===t?"":o.isDate(t)?t.toISOString():o.isArrayBuffer(t)||o.isTypedArray(t)?"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}return function t(r,a){if(o.isPlainObject(r)||o.isArray(r)){if(-1!==e.indexOf(r))throw Error("Circular reference detected in "+a);e.push(r),o.forEach(r,(function(e,r){if(!o.isUndefined(e)){var s,l=a?a+"."+r:r;if(e&&!a&&"object"==typeof e)if(o.endsWith(r,"{}"))e=JSON.stringify(e);else if(o.endsWith(r,"[]")&&(s=o.toArray(e)))return void s.forEach((function(t){!o.isUndefined(t)&&n.append(l,i(t))}));t(e,l)}})),e.pop()}else n.append(a,i(r))}(t),n}},6144:function(t,n,e){"use strict";var o=e(3345).version,i=e(7354),r={};["object","boolean","number","function","string","symbol"].forEach((function(t,n){r[t]=function(e){return typeof e===t||"a"+(n<1?"n ":" ")+t}}));var a={};r.transitional=function(t,n,e){function r(t,n){return"[Axios v"+o+"] Transitional option '"+t+"'"+n+(e?". "+e:"")}return function(e,o,s){if(!1===t)throw new i(r(o," has been removed"+(n?" in "+n:"")),i.ERR_DEPRECATED);return n&&!a[o]&&(a[o]=!0,console.warn(r(o," has been deprecated since v"+n+" and will be removed in the near future"))),!t||t(e,o,s)}},t.exports={assertOptions:function(t,n,e){if("object"!=typeof t)throw new i("options must be an object",i.ERR_BAD_OPTION_VALUE);for(var o=Object.keys(t),r=o.length;r-- >0;){var a=o[r],s=n[a];if(s){var l=t[a],c=void 0===l||s(l,a,t);if(!0!==c)throw new i("option "+a+" must be "+c,i.ERR_BAD_OPTION_VALUE)}else if(!0!==e)throw new i("Unknown option "+a,i.ERR_BAD_OPTION)}},validators:r}},7485:function(t,n,e){"use strict";var o,i=e(875),r=Object.prototype.toString,a=(o=Object.create(null),function(t){var n=r.call(t);return o[n]||(o[n]=n.slice(8,-1).toLowerCase())});function s(t){return t=t.toLowerCase(),function(n){return a(n)===t}}function l(t){return Array.isArray(t)}function c(t){return void 0===t}var u=s("ArrayBuffer");function d(t){return null!==t&&"object"==typeof t}function p(t){if("object"!==a(t))return!1;var n=Object.getPrototypeOf(t);return null===n||n===Object.prototype}var f=s("Date"),A=s("File"),h=s("Blob"),m=s("FileList");function g(t){return"[object Function]"===r.call(t)}var v=s("URLSearchParams");function b(t,n){if(null!=t)if("object"!=typeof t&&(t=[t]),l(t))for(var e=0,o=t.length;e<o;e++)n.call(null,t[e],e,t);else for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&n.call(null,t[i],i,t)}var y,C=(y="undefined"!=typeof Uint8Array&&Object.getPrototypeOf(Uint8Array),function(t){return y&&t instanceof y});t.exports={isArray:l,isArrayBuffer:u,isBuffer:function(t){return null!==t&&!c(t)&&null!==t.constructor&&!c(t.constructor)&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)},isFormData:function(t){var n="[object FormData]";return t&&("function"==typeof FormData&&t instanceof FormData||r.call(t)===n||g(t.toString)&&t.toString()===n)},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&u(t.buffer)},isString:function(t){return"string"==typeof t},isNumber:function(t){return"number"==typeof t},isObject:d,isPlainObject:p,isUndefined:c,isDate:f,isFile:A,isBlob:h,isFunction:g,isStream:function(t){return d(t)&&g(t.pipe)},isURLSearchParams:v,isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:b,merge:function t(){var n={};function e(e,o){p(n[o])&&p(e)?n[o]=t(n[o],e):p(e)?n[o]=t({},e):l(e)?n[o]=e.slice():n[o]=e}for(var o=0,i=arguments.length;o<i;o++)b(arguments[o],e);return n},extend:function(t,n,e){return b(n,(function(n,o){t[o]=e&&"function"==typeof n?i(n,e):n})),t},trim:function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,n,e,o){t.prototype=Object.create(n.prototype,o),t.prototype.constructor=t,e&&Object.assign(t.prototype,e)},toFlatObject:function(t,n,e){var o,i,r,a={};n=n||{};do{for(i=(o=Object.getOwnPropertyNames(t)).length;i-- >0;)a[r=o[i]]||(n[r]=t[r],a[r]=!0);t=Object.getPrototypeOf(t)}while(t&&(!e||e(t,n))&&t!==Object.prototype);return n},kindOf:a,kindOfTest:s,endsWith:function(t,n,e){t=String(t),(void 0===e||e>t.length)&&(e=t.length),e-=n.length;var o=t.indexOf(n,e);return-1!==o&&o===e},toArray:function(t){if(!t)return null;var n=t.length;if(c(n))return null;for(var e=new Array(n);n-- >0;)e[n]=t[n];return e},isTypedArray:C,isFileList:m}},9554:function(t,n,e){"use strict";var o=e(4649),i=e(7791),r=e(6966);function a(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}function s(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?a(Object(e),!0).forEach((function(n){(0,o.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):a(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}var l=function(){var t=(0,i.Z)(regeneratorRuntime.mark((function t(n,e){var o,i,a,s,l,c,u,d,p,f=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=(o=f.length>2&&void 0!==f[2]?f[2]:{}).data,a=o.params,s=void 0===a?{}:a,l=o.headers,c=o.noAuth,u=void 0!==c&&c,d=o.noScope,p=void 0!==d&&d,u){t.next=13;break}return t.prev=2,t.next=5,OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity);case 5:t.sent&&OpenC3Auth.setTokens(),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(2),OpenC3Auth.login();case 12:l.Authorization=localStorage.openc3Token;case 13:return p||s.scope||(s.scope=window.openc3Scope),t.abrupt("return",(0,r.Z)({method:n,url:e,data:i,params:s,headers:l}));case 15:case"end":return t.stop()}}),t,null,[[2,9]])})));return function(n,e){return t.apply(this,arguments)}}(),c={Accept:"application/json"},u=s(s({},c),{},{"Content-Type":"application/json"});n.Z={get:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=n.params,o=n.headers,i=void 0===o?c:o,r=n.noScope,a=n.noAuth;return l("get",t,{params:e,headers:i,noScope:r,noAuth:a})},put:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=n.data,o=n.params,i=n.headers,r=void 0===i?u:i,a=n.noScope,s=n.noAuth;return l("put",t,{data:e,params:o,headers:r,noScope:a,noAuth:s})},post:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=n.data,o=n.params,i=n.headers,r=void 0===i?u:i,a=n.noScope,s=n.noAuth;return l("post",t,{data:e,params:o,headers:r,noScope:a,noAuth:s})},delete:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=n.params,o=n.headers,i=void 0===o?c:o,r=n.noScope,a=n.noAuth;return l("delete",t,{params:e,headers:i,noScope:r,noAuth:a})}}},6966:function(t,n,e){"use strict";var o=e(4206),i=e.n(o),r=new(e(4091).default),a=i().create({baseURL:location.origin,timeout:6e4,params:{}});a.interceptors.response.use((function(t){return t}),(function(t){if(t.response){var n,e,o,i,a,s,l,c,u,d;if(401===t.response.status&&OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity,!0).then((function(t){t&&OpenC3Auth.setTokens()})),t.response.headers["ignore-errors"]&&t.response.headers["ignore-errors"].includes(t.response.status.toString()))return Promise.reject(t);var p="HTTP ".concat(t.response.status," - ");if(null!==(n=t.response)&&void 0!==n&&n.statusText&&(p+="".concat(t.response.statusText," ")),null!==(e=t.response)&&void 0!==e&&null!==(o=e.config)&&void 0!==o&&o.data&&(p+="".concat(t.response.config.data," ")),null!==(i=t.response)&&void 0!==i&&null!==(a=i.data)&&void 0!==a&&a.message)p+="".concat(t.response.data.message);else if(null!==(s=t.response)&&void 0!==s&&null!==(l=s.data)&&void 0!==l&&l.exception)p+="".concat(t.response.data.exception);else if(null!==(c=t.response)&&void 0!==c&&null!==(u=c.data)&&void 0!==u&&null!==(d=u.error)&&void 0!==d&&d.message)t.response.data.error.class&&(p+="".concat(t.response.data.error.class," ")),p+="".concat(t.response.data.error.message);else{var f;p+="".concat(null===(f=t.response)||void 0===f?void 0:f.data)}throw r.$notify&&r.$notify.serious({title:"Network error",body:p}),t}throw t})),n.Z=a},143:function(t,n,e){"use strict";e.r(n);var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,'.splash-screen{width:100%;height:100%;position:fixed;background:#001724;background:-moz-linear-gradient(left, #001724 0%, #001724 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, #001724), color-stop(100%, #001724));background:-webkit-linear-gradient(left, #001724 0%, #001724 100%);background:-o-linear-gradient(left, #001724 0%, #001724 100%);background:-ms-linear-gradient(left, #001724 0%, #001724 100%);background:linear-gradient(to right, #001724 0%, #001724 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, #001724 0%, #001724 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, #001724), color-stop(100%, #001724));background:-webkit-linear-gradient(left, #001724 0%, #001724 100%);background:-o-linear-gradient(left, #001724 0%, #001724 100%);background:-ms-linear-gradient(left, #001724 0%, #001724 100%);background:linear-gradient(to right, #001724 0%, #001724 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:transparent;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, #001724 0%, #003656 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #001724), color-stop(100%, #003656));background:-webkit-linear-gradient(top, #001724 0%, #003656 100%);background:-o-linear-gradient(top, #001724 0%, #003656 100%);background:-ms-linear-gradient(top, #001724 0%, #003656 100%);background:linear-gradient(to bottom, #001724 0%, #003656 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:transparent;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}.openc3-green{color:#00c800 !important}.openc3-yellow{color:#ffdc00 !important}.openc3-red{color:#ff2d2d !important}.openc3-blue{color:#09f !important}.openc3-purple{color:#c800c8 !important}.openc3-black{color:#000 !important}.openc3-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;caret-color:auto}.imo-modal-container input{color:#000}',"",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/layout.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_splash.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/_variables.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_mixins.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_main.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_topbar.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_sidebar.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_profile.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_menu.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_content.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_footer.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_responsive.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_utils.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_dashboard.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/_overrides.scss"],names:[],mappings:"AAAA,eCAA,UACI,CAAA,WACA,CAAA,cACA,CAAA,kBCiCgB,CAAA,+DC2BhB,CAAA,4GACA,CAAA,kEACA,CAAA,6DACA,CAAA,8DACA,CAAA,8DACA,CAAA,2GACA,CAAA,iCF/DA,UACI,CAAA,WACA,CAAA,eACA,CAAA,iBACA,CAAA,QACA,CAAA,OACA,CAAA,iBACA,CAAA,gBACA,CAAA,4EAIJ,UACI,CAAA,WACA,CAAA,iBACA,CAAA,qBCmBU,CAAA,UDjBV,CAAA,iBACA,CAAA,KACA,CAAA,MACA,CAAA,uDAEA,CAAA,+CACA,CAAA,sCAGJ,2BACI,CAAA,mBACA,CAAA,iCAGJ,QACI,0BAAA,CAAA,IACA,0BAAA,CAAA,CAAA,yBAGJ,QACI,kBACI,CAAA,0BACA,CAAA,IACF,kBACI,CAAA,0BACA,CAAA,CAAA,EGhDd,qBACE,CAAA,KAGF,WACE,CAAA,KAGF,mDACE,CAAA,cFRS,CAAA,UAEC,CAAA,QEUV,CAAA,SACA,CAAA,eACA,CAAA,kCACA,CAAA,iCACA,CAAA,EAGF,oBACE,CAAA,gBAGF,SACE,CAAA,qBAKF,uBACE,CAAA,eC/BF,cACE,CAAA,WACA,CAAA,4BACA,CAAA,UACA,CAAA,WACA,CAAA,OACA,CAAA,kBH8BkB,CAAA,+DC2BhB,CAAA,4GACA,CAAA,kEACA,CAAA,6DACA,CAAA,8DACA,CAAA,8DACA,CAAA,2GACA,CAAA,wBE5DF,CAAA,sBAAA,CAAA,2BAAA,CAAA,mBAAA,CAAA,qBFqHE,UACI,CAAA,aACA,CAAA,UACA,CAAA,oCEtHN,WACE,CAAA,aACA,CAAA,2BACA,CAAA,8BACA,CAAA,sBACA,CAAA,2CAEA,iBACE,CAAA,UHqBY,CAAA,gBGnBZ,CAAA,oBACA,CAAA,oBACA,CAAA,yBACA,CAAA,uBAAA,CAAA,4BAAA,CAAA,oBAAA,CAAA,iDAEA,aHeiB,CAAA,iDGXjB,cFoFF,CAAA,gBACA,CAAA,6BACA,CAAA,mEEjFI,aACE,CAAA,wEAGF,cACE,CAAA,YACA,CAAA,oEAGF,iBACE,CAAA,cACA,CAAA,UACA,CAAA,QACA,CAAA,UACA,CAAA,WACA,CAAA,iBACA,CAAA,gBACA,CAAA,UHba,CAAA,wBADE,CAAA,sBGiBQ,CAAA,yBAAA,CAAA,iBAAA,CAAA,0DAK7B,SACE,CAAA,iBACA,CAAA,oBACA,CAAA,QACA,CAAA,gEAEA,oBACE,CAAA,aACA,CAAA,cHnEG,CAAA,sBGqEH,CAAA,4BACA,CAAA,cACA,CAAA,uBACA,CAAA,eACA,CAAA,UH/BiB,CAAA,WGiCjB,CAAA,wBACA,CAAA,UACA,CAAA,sBACuB,CAAA,yBAAA,CAAA,iBAAA,CAAA,2FAEvB,UHtCiB,CAAA,UGwCf,CAAA,2BACA,CAAA,yBAAA,CAAA,8BAAA,CAAA,sBAAA,CAAA,iFAEF,UH3CiB,CAAA,UG6Cf,CAAA,2BACA,CAAA,yBAAA,CAAA,8BAAA,CAAA,sBAAA,CAAA,kFAEF,UHhDiB,CAAA,UGkDf,CAAA,2BACA,CAAA,yBAAA,CAAA,8BAAA,CAAA,sBAAA,CAAA,sFAEF,UHrDiB,CAAA,UGuDf,CAAA,2BACA,CAAA,yBAAA,CAAA,8BAAA,CAAA,sBAAA,CAAA,qFAIJ,cACE,CAAA,iBACA,CAAA,QACA,CAAA,SACA,CAAA,sEAIA,2BHtEe,CAAA,iGGwEb,SACE,CAAA,uFAEF,SACE,CAAA,wFAEF,SACE,CAAA,4FAEF,SACE,CAAA,2FAIJ,aHtFe,CAAA,mCG6FrB,cACE,CAAA,oBACA,CAAA,oBACA,CAAA,UHjGc,CAAA,yBGmGd,CAAA,uBAAA,CAAA,4BAAA,CAAA,oBAAA,CAAA,wCAEA,aACE,CAAA,yCAGF,aHxGmB,CAAA,sBG6GrB,cACE,CAAA,gBCvJJ,cACI,CAAA,WACA,CAAA,WACA,CAAA,WACA,CAAA,eACA,CAAA,gBACA,CAAA,qBACA,CAAA,wBACA,CAAA,6BACA,CAAA,2BAAA,CAAA,gCAAA,CAAA,wBAAA,CAAA,4CACgB,CAAA,yCAAA,CAAA,oCAAA,CAAA,6EAEhB,2BAEI,CAAA,6BAGJ,iBACI,CAAA,eACA,CAAA,gCAGJ,oBACI,CAAA,eACA,CAAA,cACA,CAAA,UACA,CAAA,WACA,CAAA,gBACA,CAAA,iBACA,CAAA,UJhBa,CAAA,wBADE,CAAA,sBIoBQ,CAAA,yBAAA,CAAA,iBAAA,CAAA,gBChC/B,iBACE,CAAA,qBACA,CAAA,oBAEA,UACE,CAAA,WACA,CAAA,qCAGF,cACE,CAAA,oBACA,CAAA,mBACA,CAAA,yBACA,CAAA,uBAAA,CAAA,4BAAA,CAAA,oBAAA,CAAA,uCAEA,oBACE,CAAA,cACA,CAAA,qBACA,CAAA,mBAIJ,oBACE,CAAA,SACA,CAAA,QACA,CAAA,6BAGE,UACE,CAAA,WACA,CAAA,aACA,CAAA,eACA,CAAA,cACA,CAAA,yBACA,CAAA,uBAAA,CAAA,4BAAA,CAAA,oBAAA,CAAA,mCAEA,aLfa,CAAA,kCKmBb,iBACE,CAAA,qBACA,CAAA,+BAGF,qBACE,CAAA,mGAKN,YAEE,CAAA,mGAGF,iBAEE,CAAA,uDAGF,eACE,CAAA,mDACA,CAAA,uDAGF,eACE,CAAA,oCACA,CAAA,2DAOF,aLvDY,CAAA,iEK0DV,aLzDe,CAAA,yCK8DjB,qBL5DoB,CAAA,mDKgEhB,aLnEQ,CAAA,yDKsEN,aLrEW,CAAA,0DKgFjB,ULxEgB,CAAA,gEK2Ed,aL1EmB,CAAA,wCK+ErB,wBL7EwB,CAAA,kDKiFpB,ULpFY,CAAA,wDKuFV,aLtFe,CAAA,uBM9BzB,oBACI,CAAA,aAGJ,oBACI,CAAA,QACA,CAAA,SACA,CAAA,kBAGI,cACI,CAAA,iBACA,CAAA,oBACA,CAAA,aACA,CAAA,yBACA,CAAA,uBAAA,CAAA,4BAAA,CAAA,oBAAA,CAAA,oBAEA,cACI,CAAA,qBACA,CAAA,uBAGJ,iBACI,CAAA,qBACA,CAAA,gBACA,CAAA,oBACA,CAAA,wCAGJ,iBACI,CAAA,OACA,CAAA,SACA,CAAA,eACA,CAAA,qCAGJ,eACI,CAAA,wBAGJ,cLgFR,CAAA,gBACA,CAAA,mCACA,CAAA,+DAxHA,WK8CuC,CAAA,kBAOnC,WACI,CAAA,uBAEA,cNzDD,CAAA,6BM+DC,4CACI,CAAA,mBAIR,oBACI,CAAA,QACA,CAAA,SACA,CAAA,kBACA,CAAA,wBAGI,cACI,CAAA,iBACA,CAAA,iBACA,CAAA,6BAEA,cNnEF,CAAA,iCMwEF,kBACI,CAAA,mGAIR,YAEI,CAAA,mGAGJ,iBAEI,CAAA,uDAGJ,eACI,CAAA,mDACA,CAAA,uDAGJ,eACI,CAAA,oCACA,CAAA,sBAMhB,kBNhGmB,CAAA,8DCkCf,CAAA,8GACA,CAAA,iEACA,CAAA,4DACA,CAAA,6DACA,CAAA,+DACA,CAAA,kHACA,CAAA,wCK6DQ,yCACI,CAAA,mDAIA,4CACI,CAAA,yCAIR,qBN1GY,CAAA,wCMgHZ,aNnHI,CAAA,2DMsHA,aN3HW,CAAA,8CM+HX,aNzHK,CAAA,wDM+HL,qBN7HQ,CAAA,aADF,CAAA,qBMuItB,kBNlIuB,CAAA,8DCyBnB,CAAA,8GACA,CAAA,iEACA,CAAA,4DACA,CAAA,6DACA,CAAA,+DACA,CAAA,kHACA,CAAA,uCKwGQ,sCACI,CAAA,kDAIA,yCACI,CAAA,wCAIR,wBN5IgB,CAAA,uCMkJhB,UNrJQ,CAAA,0DMwJJ,aNtKW,CAAA,6CM0KX,aN3JS,CAAA,uDMiKT,wBN/JY,CAAA,aADF,CAAA,aO/B1B,+BACE,CAAA,6BAAA,CAAA,kCAAA,CAAA,0BAAA,CAAA,2BACA,CAAA,eCFF,+BACI,CAAA,6BAAA,CAAA,kCAAA,CAAA,0BAAA,CAAA,wBR6CY,CAAA,eQ3CZ,CAAA,mBAEA,qBACI,CAAA,4BAGJ,qBACI,CAAA,0BCVR,8CAGY,MACI,CAAA,0FAGJ,aACI,CAAA,6EAIA,MACI,CAAA,4EAGJ,UACI,CAAA,6CAMR,UACI,CAAA,wFAGJ,iBACI,CAAA,4EAIA,MACI,CAAA,sJAGJ,aACI,CAAA,CAAA,0BAOpB,+BAEQ,MACI,CAAA,4DAGJ,aACI,CAAA,gCAGJ,wBACI,CAAA,sBAAA,CAAA,2BAAA,CAAA,mBAAA,CAAA,WACA,CAAA,eACA,CAAA,6BAGJ,YACI,CAAA,cACA,CAAA,UACA,CAAA,WACA,CAAA,QACA,CAAA,MACA,CAAA,WACA,CAAA,wBT3DE,CAAA,US6De,CAAA,wBRmCzB,CAAA,6DQ/BQ,MACI,CAAA,0DAGJ,aACI,CAAA,sBAKZ,eACI,CAAA,CAAA,GCnFR,kBACI,CAAA,QACA,CAAA,cACA,CAAA,GAGJ,cACI,CAAA,kBACA,CAAA,QACA,CAAA,MAGJ,qBACI,CAAA,WACA,CAAA,kBACA,CAAA,sBVXW,CAAA,yBAAA,CAAA,iBAAA,CAAA,mBUcX,kBACI,CAAA,SAGJ,mBACI,CAAA,+BACA,CAAA,YACA,CAAA,cACA,CAAA,qBAEA,iBACI,CAAA,4BAOR,oBACI,CAAA,sBACA,CAAA,gBACA,CAAA,iCAEA,kBACI,CAAA,eACA,CAAA,cACA,CAAA,oBC1CR,iBACI,CAAA,2BAEA,cACI,CAAA,4BAGJ,aXNa,CAAA,aWQT,CAAA,eACA,CAAA,2BAGJ,UACI,CAAA,iBACA,CAAA,QACA,CAAA,UACA,CAAA,cACA,CAAA,gBACA,CAAA,sBXjBG,CAAA,yBAAA,CAAA,iBAAA,CAAA,oCWoBH,wBACI,CAAA,qCAGJ,wBACI,CAAA,mCAGJ,wBACI,CAAA,0BAKZ,YACI,CAAA,gCVsFJ,UACI,CAAA,aACA,CAAA,UACA,CAAA,oCUtFA,WACI,CAAA,UACA,CAAA,SACA,CAAA,iBACA,CAAA,WACA,CAAA,yCAEA,cACI,CAAA,6CAIR,WACI,CAAA,qBACA,CAAA,UACA,CAAA,SACA,CAAA,WACA,CAAA,+CAEA,cACI,CAAA,qBACA,CAAA,kBACA,CAAA,oDAGJ,aXhES,CAAA,cWkEL,CAAA,aACA,CAAA,sBAKZ,oBACI,CAAA,QACA,CAAA,SACA,CAAA,yBAEA,kBACI,CAAA,+BACA,CAAA,+BV2CR,UACI,CAAA,aACA,CAAA,UACA,CAAA,kCU1CA,qBACI,CAAA,iBACA,CAAA,iCAGJ,qBACI,CAAA,wBAGJ,WACI,CAAA,cACA,CAAA,aX9FS,CAAA,uCWkGb,gBACI,CAAA,0CAKJ,gBACI,CAAA,wBAMJ,oBACI,CAAA,SACA,CAAA,QACA,CAAA,2BAEA,+BACI,CAAA,kCAEA,WACI,CAAA,UACA,CAAA,qBACA,CAAA,oBACA,CAAA,iBACA,CAAA,aACA,CAAA,sBACuB,CAAA,yBAAA,CAAA,iBAAA,CAAA,oCACvB,CAAA,kCAAA,CAAA,uCAAA,CAAA,+BAAA,CAAA,wCAEA,iBACI,CAAA,UACA,CAAA,QACA,CAAA,cACA,CAAA,yCAGJ,iBACI,CAAA,UACA,CAAA,QACA,CAAA,cACA,CAAA,aX5IH,CAAA,wCWgJD,cACI,CAAA,qBACA,CAAA,sCAIR,QACI,CAAA,sCAKZ,gBACI,CAAA,0BAIR,oBACI,CAAA,SACA,CAAA,QACA,CAAA,6BAEA,+BACI,CAAA,gBACA,CAAA,oCAEA,cACI,CAAA,UACA,CAAA,wBACA,CAAA,eACA,CAAA,oBACA,CAAA,kBACA,CAAA,sBX/KD,CAAA,yBAAA,CAAA,iBAAA,CAAA,yCWmLH,4BACI,CAAA,wCAGJ,QACI,CAAA,kDAGJ,cACI,CAAA,qBACA,CAAA,iDAGJ,gBACI,CAAA,aXlMK,CAAA,cYCrB,wBACE,CAAA,eAEF,wBACE,CAAA,YAEF,wBACE,CAAA,aAEF,qBACE,CAAA,eAEF,wBACE,CAAA,cAEF,qBACE,CAAA,cAEF,qBACE,CAAA,0BAIF,iDACE,CAAA,iCAEF,mDACE,CAAA,2EAEF,kDAIE,CAAA,yEAIF,oDAGE,CAAA,4QAEF,qDAUE,CAAA,MAGF,iBAEE,CAAA,gBAEA,CAAA,2BAIF,UACE",sourcesContent:['.splash-screen{width:100%;height:100%;position:fixed;background:#001724;background:-moz-linear-gradient(left, #001724 0%, #001724 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, #001724), color-stop(100%, #001724));background:-webkit-linear-gradient(left, #001724 0%, #001724 100%);background:-o-linear-gradient(left, #001724 0%, #001724 100%);background:-ms-linear-gradient(left, #001724 0%, #001724 100%);background:linear-gradient(to right, #001724 0%, #001724 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, #001724 0%, #001724 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, #001724), color-stop(100%, #001724));background:-webkit-linear-gradient(left, #001724 0%, #001724 100%);background:-o-linear-gradient(left, #001724 0%, #001724 100%);background:-ms-linear-gradient(left, #001724 0%, #001724 100%);background:linear-gradient(to right, #001724 0%, #001724 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:transparent;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, #001724 0%, #003656 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #001724), color-stop(100%, #003656));background:-webkit-linear-gradient(top, #001724 0%, #003656 100%);background:-o-linear-gradient(top, #001724 0%, #003656 100%);background:-ms-linear-gradient(top, #001724 0%, #003656 100%);background:linear-gradient(to bottom, #001724 0%, #003656 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:transparent;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}.openc3-green{color:#00c800 !important}.openc3-yellow{color:#ffdc00 !important}.openc3-red{color:#ff2d2d !important}.openc3-blue{color:#09f !important}.openc3-purple{color:#c800c8 !important}.openc3-black{color:#000 !important}.openc3-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;caret-color:auto}.imo-modal-container input{color:#000}',".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.openc3-green {\n color: rgb(0, 200, 0) !important;\n}\n.openc3-yellow {\n color: rgb(255, 220, 0) !important;\n}\n.openc3-red {\n color: rgb(255, 45, 45) !important;\n}\n.openc3-blue {\n color: rgb(0, 153, 255) !important;\n}\n.openc3-purple {\n color: rgb(200, 0, 200) !important;\n}\n.openc3-black {\n color: black !important;\n}\n.openc3-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 // Make the caret color be white instead of a dark blue\n caret-color: auto;\n}\n\n// Fix the single spa debug panel so the text is readable\n.imo-modal-container input {\n color: black;\n}\n"],sourceRoot:""}]),n.default=a},3838:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\n.astro-icon[data-v-b942113a] {\n fill: currentColor;\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/components/icons/AstroIcon.vue"],names:[],mappings:";AAgDA;EACA,kBAAA;AACA",sourcesContent:["\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n--\x3e\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.Z=a},4829:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\n#footer[data-v-1f2e2c8b] {\n z-index: 1000; /* On TOP! */\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/AppFooter.vue"],names:[],mappings:";AAoFA;EACA,aAAA,EAAA,YAAA;AACA",sourcesContent:["\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n--\x3e\n\n<template>\n <v-footer id=\"footer\" app color=\"tertiary darken-3\" height=\"33\">\n <img :src=\"icon\" alt=\"OpenC3\" />\n <span class=\"footer-text\" style=\"margin-left: 5px\">\n OpenC3 {{ edition }} {{ openc3Version }} &copy; 2023 - License:\n {{ license }}\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 { OpenC3Api } from '../../services/openc3-api'\nimport icon from '../../../public/img/icon.png'\n\nexport default {\n components: {\n ClockFooter,\n },\n props: {\n edition: {\n type: String,\n default: '',\n },\n license: {\n type: String,\n default: '',\n },\n },\n data() {\n return {\n icon: icon,\n sourceUrl: '',\n openc3Version: '',\n }\n },\n created: function () {\n this.getSourceUrl()\n },\n methods: {\n getSourceUrl: function () {\n new OpenC3Api()\n .get_settings(['source_url', 'version'])\n .then((response) => {\n this.sourceUrl = response[0]\n this.openc3Version = `(${response[1]})`\n })\n .catch(() => {\n this.openc3Version = 'Unknown'\n })\n },\n },\n}\n<\/script>\n\n<style scoped>\n#footer {\n z-index: 1000; /* On TOP! */\n}\n</style>\n"],sourceRoot:""}]),n.Z=a},6509:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\ndiv a[data-v-00ae1763] {\n color: white;\n font-size: 16px;\n display: block;\n height: 100%;\n width: 100%;\n}\na.fixcenter[data-v-00ae1763] {\n display: flex;\n}\n.theme--dark.v-navigation-drawer[data-v-00ae1763] {\n background-color: var(--v-primary-darken2);\n}\n#openc3-app-toolbar .top-bar-divider-full-height[data-v-00ae1763] {\n margin: -4px 4px;\n min-height: calc(100% + 8px);\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/AppNav.vue"],names:[],mappings:";AA8PA;EACA,YAAA;EACA,eAAA;EACA,cAAA;EACA,YAAA;EACA,WAAA;AACA;AACA;EACA,aAAA;AACA;AACA;EACA,0CAAA;AACA;AACA;EACA,gBAAA;EACA,4BAAA;AACA",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n--\x3e\n\n<template>\n <div>\n <v-navigation-drawer v-model="drawer" app id="openc3-nav-drawer">\n <v-list>\n <v-list-item>\n <v-list-item-icon\n style="\n margin-right: auto !important;\n margin-left: auto;\n margin-top: 0px;\n margin-bottom: 0px;\n "\n >\n <img :src="logo" alt="OpenC3" />\n </v-list-item-icon>\n </v-list-item>\n <div style="text-align: center; font-size: 18pt">{{ edition }}</div>\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 class="fixcenter"\n >\n Admin\n </v-btn>\n </div>\n </v-list-item-content>\n </v-list-item>\n <v-divider />\n <v-treeview\n :items="items"\n :open="initiallyOpen"\n item-key="name"\n dense\n open-on-click\n expand-icon=""\n >\n <template v-slot:prepend="{ item, open }">\n <v-icon v-if="!item.icon">\n {{ open ? \'mdi-chevron-down\' : \'mdi-chevron-right\' }}\n </v-icon>\n <a v-else :href="item.url" onclick="singleSpaNavigate(event)">\n <v-icon> {{ item.icon }} </v-icon>\n </a>\n </template>\n <template v-slot:label="{ item }">\n <a :href="item.url" onclick="singleSpaNavigate(event)">\n {{ item.name }}\n </a>\n </template>\n <template v-slot:append="{ item }">\n <a v-if="item.icon" :href="newTabUrl(item)" target="_blank">\n <v-icon>mdi-open-in-new</v-icon>\n </a>\n </template>\n </v-treeview>\n </v-list>\n </v-navigation-drawer>\n <v-app-bar app color="tertiary darken-3" id="openc3-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="openc3-menu"></span></span>\n <div class="justify-right mr-2 pt-2"><scope-selector /></div>\n <div class="justify-right" data-test="alert-history">\n <alert-history />\n </div>\n <div class="justify-right" data-test="notifications">\n <notifications />\n </div>\n <div class="justify-right" data-test="user-menu"><user-menu /></div>\n </v-app-bar>\n </div>\n</template>\n\n<script>\nimport Api from \'../../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 props: {\n edition: {\n type: String,\n default: \'\',\n },\n },\n data() {\n return {\n items: [],\n drawer: true,\n appNav: {},\n logo: logo,\n initiallyOpen: [],\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(\'/openc3-api/tools/all\', { params: { scope: \'DEFAULT\' } }).then(\n (response) => {\n this.appNav = response.data\n\n let id = 1\n // Register apps and start single-spa\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown) {\n if (\n this.appNav[key].category &&\n this.appNav[key].category !== \'Admin\'\n ) {\n // TODO: Make this initiallyOpen configurable like with a CATEGORY parameter?\n this.initiallyOpen.push(this.appNav[key].category)\n const result = this.items.filter(\n (item) => item.name === this.appNav[key].category\n )\n if (result.length === 0) {\n this.items.push({\n id: id,\n name: this.appNav[key].category,\n children: [\n {\n id: id + 1,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n },\n ],\n })\n id++\n } else {\n result[0].children.push({\n id: id,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n })\n }\n } else if (!this.appNav[key].category) {\n this.items.push({\n id: id,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n })\n }\n id++\n\n if (this.appNav[key].folder_name) {\n let folder_name = this.appNav[key].folder_name\n let name = \'@openc3/tool-\' + folder_name\n registerApplication({\n name: name,\n app: () => System.import(name),\n activeWhen: [\'/tools/\' + folder_name],\n })\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 // Check every minute if we need to update our token\n setInterval(() => {\n OpenC3Auth.updateToken(120).then(function (refreshed) {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n })\n }, 60000)\n }\n )\n },\n methods: {\n newTabUrl(tool) {\n let url = null\n if (tool.url[0] == \'/\' && tool.url[1] != \'/\') {\n url = new URL(tool.url, window.location.origin)\n } else {\n url = new URL(tool.url)\n }\n url.searchParams.set(\'scope\', window.openc3Scope)\n return url.href\n },\n },\n}\n<\/script>\n\n<style scoped>\ndiv a {\n color: white;\n font-size: 16px;\n display: block;\n height: 100%;\n width: 100%;\n}\na.fixcenter {\n display: flex;\n}\n.theme--dark.v-navigation-drawer {\n background-color: var(--v-primary-darken2);\n}\n#openc3-app-toolbar .top-bar-divider-full-height {\n margin: -4px 4px;\n min-height: calc(100% + 8px);\n}\n</style>\n<style>\n/* Remove the padding on root level nodes since we removed the expand icon */\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__level {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__toggle {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview-node__children\n div.v-treeview-node__level:nth-child(1) {\n width: 0px;\n}\n</style>\n'],sourceRoot:""}]),n.Z=a},6716:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.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\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\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\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\n\n\n\n\n\n\n\n\n/* Remove the padding on root level nodes since we removed the expand icon */\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__level {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__toggle {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview-node__children\n div.v-treeview-node__level:nth-child(1) {\n width: 0px;\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/AppNav.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiRA,4EAAA;AACA;;;;;EAKA,UAAA;AACA;AACA;;;;;EAKA,UAAA;AACA;AACA;;;EAGA,UAAA;AACA",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n--\x3e\n\n<template>\n <div>\n <v-navigation-drawer v-model="drawer" app id="openc3-nav-drawer">\n <v-list>\n <v-list-item>\n <v-list-item-icon\n style="\n margin-right: auto !important;\n margin-left: auto;\n margin-top: 0px;\n margin-bottom: 0px;\n "\n >\n <img :src="logo" alt="OpenC3" />\n </v-list-item-icon>\n </v-list-item>\n <div style="text-align: center; font-size: 18pt">{{ edition }}</div>\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 class="fixcenter"\n >\n Admin\n </v-btn>\n </div>\n </v-list-item-content>\n </v-list-item>\n <v-divider />\n <v-treeview\n :items="items"\n :open="initiallyOpen"\n item-key="name"\n dense\n open-on-click\n expand-icon=""\n >\n <template v-slot:prepend="{ item, open }">\n <v-icon v-if="!item.icon">\n {{ open ? \'mdi-chevron-down\' : \'mdi-chevron-right\' }}\n </v-icon>\n <a v-else :href="item.url" onclick="singleSpaNavigate(event)">\n <v-icon> {{ item.icon }} </v-icon>\n </a>\n </template>\n <template v-slot:label="{ item }">\n <a :href="item.url" onclick="singleSpaNavigate(event)">\n {{ item.name }}\n </a>\n </template>\n <template v-slot:append="{ item }">\n <a v-if="item.icon" :href="newTabUrl(item)" target="_blank">\n <v-icon>mdi-open-in-new</v-icon>\n </a>\n </template>\n </v-treeview>\n </v-list>\n </v-navigation-drawer>\n <v-app-bar app color="tertiary darken-3" id="openc3-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="openc3-menu"></span></span>\n <div class="justify-right mr-2 pt-2"><scope-selector /></div>\n <div class="justify-right" data-test="alert-history">\n <alert-history />\n </div>\n <div class="justify-right" data-test="notifications">\n <notifications />\n </div>\n <div class="justify-right" data-test="user-menu"><user-menu /></div>\n </v-app-bar>\n </div>\n</template>\n\n<script>\nimport Api from \'../../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 props: {\n edition: {\n type: String,\n default: \'\',\n },\n },\n data() {\n return {\n items: [],\n drawer: true,\n appNav: {},\n logo: logo,\n initiallyOpen: [],\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(\'/openc3-api/tools/all\', { params: { scope: \'DEFAULT\' } }).then(\n (response) => {\n this.appNav = response.data\n\n let id = 1\n // Register apps and start single-spa\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown) {\n if (\n this.appNav[key].category &&\n this.appNav[key].category !== \'Admin\'\n ) {\n // TODO: Make this initiallyOpen configurable like with a CATEGORY parameter?\n this.initiallyOpen.push(this.appNav[key].category)\n const result = this.items.filter(\n (item) => item.name === this.appNav[key].category\n )\n if (result.length === 0) {\n this.items.push({\n id: id,\n name: this.appNav[key].category,\n children: [\n {\n id: id + 1,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n },\n ],\n })\n id++\n } else {\n result[0].children.push({\n id: id,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n })\n }\n } else if (!this.appNav[key].category) {\n this.items.push({\n id: id,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n })\n }\n id++\n\n if (this.appNav[key].folder_name) {\n let folder_name = this.appNav[key].folder_name\n let name = \'@openc3/tool-\' + folder_name\n registerApplication({\n name: name,\n app: () => System.import(name),\n activeWhen: [\'/tools/\' + folder_name],\n })\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 // Check every minute if we need to update our token\n setInterval(() => {\n OpenC3Auth.updateToken(120).then(function (refreshed) {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n })\n }, 60000)\n }\n )\n },\n methods: {\n newTabUrl(tool) {\n let url = null\n if (tool.url[0] == \'/\' && tool.url[1] != \'/\') {\n url = new URL(tool.url, window.location.origin)\n } else {\n url = new URL(tool.url)\n }\n url.searchParams.set(\'scope\', window.openc3Scope)\n return url.href\n },\n },\n}\n<\/script>\n\n<style scoped>\ndiv a {\n color: white;\n font-size: 16px;\n display: block;\n height: 100%;\n width: 100%;\n}\na.fixcenter {\n display: flex;\n}\n.theme--dark.v-navigation-drawer {\n background-color: var(--v-primary-darken2);\n}\n#openc3-app-toolbar .top-bar-divider-full-height {\n margin: -4px 4px;\n min-height: calc(100% + 8px);\n}\n</style>\n<style>\n/* Remove the padding on root level nodes since we removed the expand icon */\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__level {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__toggle {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview-node__children\n div.v-treeview-node__level:nth-child(1) {\n width: 0px;\n}\n</style>\n'],sourceRoot:""}]),n.Z=a},2003:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\n.v-subheader[data-v-3d0e2e40] {\n height: 28px;\n}\n.v-badge[data-v-3d0e2e40] {\n width: 100%;\n}\n.overlay[data-v-3d0e2e40] {\n height: 100vh;\n width: 100vw;\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/components/AlertHistory.vue"],names:[],mappings:";AA4KA;EACA,YAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;EACA,aAAA;EACA,YAAA;AACA",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n--\x3e\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 \x3c!-- Alert box icon --\x3e\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 \x3c!-- Alerts list --\x3e\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 @click="openDialog(alert)"\n :key="`alert-${index}`"\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 \x3c!-- Dialog for viewing full alert --\x3e\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 \'../../../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.Z=a},7650:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.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\n\n\n\n\n\n\n\n/* push things up and down to make room for the classification banners */\n#app,\n#openc3-nav-drawer {\n margin-top: var(--classification-height-top);\n}\n#openc3-app-toolbar {\n top: var(--classification-height-top);\n}\n#openc3-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://./../packages/openc3-tool-common/src/tools/base/components/ClassificationBanners.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EA,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:["\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n--\x3e\n\n<script>\nimport { OpenC3Api } from '../../../services/openc3-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 OpenC3Api()\n this.load()\n },\n methods: {\n load: function () {\n this.api\n .get_setting('classification_banner')\n .then((response) => {\n if (response) {\n this.classification = JSON.parse(response)\n }\n })\n .catch((error) => {\n // Do nothing\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#openc3-nav-drawer {\n margin-top: var(--classification-height-top);\n}\n#openc3-app-toolbar {\n top: var(--classification-height-top);\n}\n#openc3-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.Z=a},1840:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\n.v-subheader[data-v-eda8ca60] {\n height: 28px;\n}\n.v-badge[data-v-eda8ca60] {\n width: 100%;\n}\n.overlay[data-v-eda8ca60] {\n height: 100vh;\n width: 100vw;\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/components/Notifications.vue"],names:[],mappings:";AA0YA;EACA,YAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;EACA,aAAA;EACA,YAAA;AACA",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n--\x3e\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 \x3c!-- Bell icon --\x3e\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 \x3c!-- Notifications list --\x3e\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 \x3c!-- Dialog for viewing full notification --\x3e\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 \x3c!-- Dialog for changing notification settings --\x3e\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 \'../../../components/icons\'\nimport {\n highestSeverity,\n orderBySeverity,\n groupBySeverity,\n} from \'../util/AstroStatus\'\nimport Cable from \'../../../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 let result = this.unreadNotifications.length\n if (result >= NOTIFICATION_HISTORY_MAX_LENGTH) {\n result += \'+\' // Indicate there are more\n }\n return result\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 window.openc3Scope,\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 (parsed) {\n this.cable.recordPing()\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.Z=a},6793:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\n.overlay[data-v-26b5fc12] {\n height: 100vh;\n width: 100vw;\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/components/UserMenu.vue"],names:[],mappings:";AA+FA;EACA,aAAA;EACA,YAAA;AACA",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n--\x3e\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 style="text-align: center; margin: 5px">{{ username }}</div>\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 let user = OpenC3Auth.user()\n return {\n showUserMenu: false,\n authenticated: !!localStorage.openc3Token,\n username: user[\'name\'],\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 OpenC3Auth.logout()\n },\n login: function () {\n OpenC3Auth.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.Z=a},3645:function(t){"use strict";t.exports=function(t){var n=[];return n.toString=function(){return this.map((function(n){var e=t(n);return n[2]?"@media ".concat(n[2]," {").concat(e,"}"):e})).join("")},n.i=function(t,e,o){"string"==typeof t&&(t=[[null,t,""]]);var i={};if(o)for(var r=0;r<this.length;r++){var a=this[r][0];null!=a&&(i[a]=!0)}for(var s=0;s<t.length;s++){var l=[].concat(t[s]);o&&i[l[0]]||(e&&(l[2]?l[2]="".concat(e," and ").concat(l[2]):l[2]=e),n.push(l))}},n}},4015:function(t){"use strict";function n(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}t.exports=function(t){var e,o,i=(o=4,function(t){if(Array.isArray(t))return t}(e=t)||function(t,n){var e=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null!=e){var o,i,r=[],a=!0,s=!1;try{for(e=e.call(t);!(a=(o=e.next()).done)&&(r.push(o.value),!n||r.length!==n);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==e.return||e.return()}finally{if(s)throw i}}return r}}(e,o)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?n(t,e):void 0}}(e,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=i[1],a=i[3];if(!a)return r;if("function"==typeof btoa){var s=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),c="/*# ".concat(l," */"),u=a.sources.map((function(t){return"/*# sourceURL=".concat(a.sourceRoot||"").concat(t," */")}));return[r].concat(u).concat([c]).join("\n")}return[r].join("\n")}},3379:function(t){"use strict";var n=[];function e(t){for(var e=-1,o=0;o<n.length;o++)if(n[o].identifier===t){e=o;break}return e}function o(t,o){for(var r={},a=[],s=0;s<t.length;s++){var l=t[s],c=o.base?l[0]+o.base:l[0],u=r[c]||0,d="".concat(c," ").concat(u);r[c]=u+1;var p=e(d),f={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==p)n[p].references++,n[p].updater(f);else{var A=i(f,o);o.byIndex=s,n.splice(s,0,{identifier:d,updater:A,references:1})}a.push(d)}return a}function i(t,n){var e=n.domAPI(n);return e.update(t),function(n){if(n){if(n.css===t.css&&n.media===t.media&&n.sourceMap===t.sourceMap&&n.supports===t.supports&&n.layer===t.layer)return;e.update(t=n)}else e.remove()}}t.exports=function(t,i){var r=o(t=t||[],i=i||{});return function(t){t=t||[];for(var a=0;a<r.length;a++){var s=e(r[a]);n[s].references--}for(var l=o(t,i),c=0;c<r.length;c++){var u=e(r[c]);0===n[u].references&&(n[u].updater(),n.splice(u,1))}r=l}}},569:function(t){"use strict";var n={};t.exports=function(t,e){var o=function(t){if(void 0===n[t]){var e=document.querySelector(t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(t){e=null}n[t]=e}return n[t]}(t);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(e)}},9216:function(t){"use strict";t.exports=function(t){var n=document.createElement("style");return t.setAttributes(n,t.attributes),t.insert(n,t.options),n}},3565:function(t,n,e){"use strict";t.exports=function(t){var n=e.nc;n&&t.setAttribute("nonce",n)}},7795:function(t){"use strict";t.exports=function(t){var n=t.insertStyleElement(t);return{update:function(e){!function(t,n,e){var o="";e.supports&&(o+="@supports (".concat(e.supports,") {")),e.media&&(o+="@media ".concat(e.media," {"));var i=void 0!==e.layer;i&&(o+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),o+=e.css,i&&(o+="}"),e.media&&(o+="}"),e.supports&&(o+="}");var r=e.sourceMap;r&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),n.styleTagTransform(o,t,n.options)}(n,t,e)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)}}}},4589:function(t){"use strict";t.exports=function(t,n){if(n.styleSheet)n.styleSheet.cssText=t;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t))}}},2722:function(t,n,e){const o=e(3905).R;n.s=function(t){if(t||(t=1),!e.y.meta||!e.y.meta.url)throw console.error("__system_context__",e.y),Error("systemjs-webpack-interop was provided an unknown SystemJS context. Expected context.meta.url, but none was provided");e.p=o(e.y.meta.url,t)}},3905:function(t,n,e){n.R=function(t,n){var e=document.createElement("a");e.href=t;for(var o="/"===e.pathname[0]?e.pathname:"/"+e.pathname,i=0,r=o.length;i!==n&&r>=0;)"/"===o[--r]&&i++;if(i!==n)throw Error("systemjs-webpack-interop: rootDirectoryLevel ("+n+") is greater than the number of directories ("+i+") in the URL path "+t);var a=o.slice(0,r+1);return e.protocol+"//"+e.host+a};Number.isInteger},1900:function(t,n,e){"use strict";function o(t,n,e,o,i,r,a,s){var l,c="function"==typeof t?t.options:t;if(n&&(c.render=n,c.staticRenderFns=e,c._compiled=!0),o&&(c.functional=!0),r&&(c._scopeId="data-v-"+r),a?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=l):i&&(l=s?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,n){return l.call(n),u(t,n)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:c}}e.d(n,{Z:function(){return o}})},7861:function(t,n,e){var o=e(143);o.__esModule&&(o=o.default),"string"==typeof o&&(o=[[t.id,o,""]]),o.locals&&(t.exports=o.locals),(0,e(5346).Z)("2eb15b17",o,!1,{})},5346:function(t,n,e){"use strict";function o(t,n){for(var e=[],o={},i=0;i<n.length;i++){var r=n[i],a=r[0],s={id:t+":"+i,css:r[1],media:r[2],sourceMap:r[3]};o[a]?o[a].parts.push(s):e.push(o[a]={id:a,parts:[s]})}return e}e.d(n,{Z:function(){return A}});var i="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!i)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var r={},a=i&&(document.head||document.getElementsByTagName("head")[0]),s=null,l=0,c=!1,u=function(){},d=null,p="data-vue-ssr-id",f="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function A(t,n,e,i){c=e,d=i||{};var a=o(t,n);return h(a),function(n){for(var e=[],i=0;i<a.length;i++){var s=a[i];(l=r[s.id]).refs--,e.push(l)}for(n?h(a=o(t,n)):a=[],i=0;i<e.length;i++){var l;if(0===(l=e[i]).refs){for(var c=0;c<l.parts.length;c++)l.parts[c]();delete r[l.id]}}}}function h(t){for(var n=0;n<t.length;n++){var e=t[n],o=r[e.id];if(o){o.refs++;for(var i=0;i<o.parts.length;i++)o.parts[i](e.parts[i]);for(;i<e.parts.length;i++)o.parts.push(g(e.parts[i]));o.parts.length>e.parts.length&&(o.parts.length=e.parts.length)}else{var a=[];for(i=0;i<e.parts.length;i++)a.push(g(e.parts[i]));r[e.id]={id:e.id,refs:1,parts:a}}}}function m(){var t=document.createElement("style");return t.type="text/css",a.appendChild(t),t}function g(t){var n,e,o=document.querySelector("style["+p+'~="'+t.id+'"]');if(o){if(c)return u;o.parentNode.removeChild(o)}if(f){var i=l++;o=s||(s=m()),n=y.bind(null,o,i,!1),e=y.bind(null,o,i,!0)}else o=m(),n=C.bind(null,o),e=function(){o.parentNode.removeChild(o)};return n(t),function(o){if(o){if(o.css===t.css&&o.media===t.media&&o.sourceMap===t.sourceMap)return;n(t=o)}else e()}}var v,b=(v=[],function(t,n){return v[t]=n,v.filter(Boolean).join("\n")});function y(t,n,e,o){var i=e?"":o.css;if(t.styleSheet)t.styleSheet.cssText=b(n,i);else{var r=document.createTextNode(i),a=t.childNodes;a[n]&&t.removeChild(a[n]),a.length?t.insertBefore(r,a[n]):t.appendChild(r)}}function C(t,n){var e=n.css,o=n.media,i=n.sourceMap;if(o&&t.setAttribute("media",o),d.ssrId&&t.setAttribute(p,n.id),i&&(e+="\n/*# sourceURL="+i.sources[0]+" */",e+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */"),t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},8645:function(t){"use strict";t.exports=o},4091:function(t){"use strict";t.exports=e},4688:function(t){"use strict";t.exports=i},9731:function(t){"use strict";t.exports=a},9191:function(t){"use strict";t.exports=r},7791:function(t,n,e){"use strict";function o(t,n,e,o,i,r,a){try{var s=t[r](a),l=s.value}catch(t){return void e(t)}s.done?n(l):Promise.resolve(l).then(o,i)}function i(t){return function(){var n=this,e=arguments;return new Promise((function(i,r){var a=t.apply(n,e);function s(t){o(a,i,r,s,l,"next",t)}function l(t){o(a,i,r,s,l,"throw",t)}s(void 0)}))}}e.d(n,{Z:function(){return i}})},4649:function(t,n,e){"use strict";e.d(n,{Z:function(){return i}});var o=e(5217);function i(t,n,e){return(n=(0,o.Z)(n))in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}},5217:function(t,n,e){"use strict";e.d(n,{Z:function(){return i}});var o=e(3940);function i(t){var n=function(t,n){if("object"!==(0,o.Z)(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,"string");if("object"!==(0,o.Z)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===(0,o.Z)(n)?n:String(n)}},3940:function(t,n,e){"use strict";function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}e.d(n,{Z:function(){return o}})}},c={};function u(t){var n=c[t];if(void 0!==n)return n.exports;var e=c[t]={id:t,exports:{}};return l[t](e,e.exports,u),e.exports}u.m=l,u.y=n,u.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return u.d(n,{a:n}),n},u.d=function(t,n){for(var e in n)u.o(n,e)&&!u.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},u.f={},u.e=function(t){return Promise.all(Object.keys(u.f).reduce((function(n,e){return u.f[e](t,n),n}),[]))},u.u=function(t){return t+".openc3-tool-base.js"},u.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},t={},s="tool-base:",u.l=function(n,e,o,i){if(t[n])t[n].push(e);else{var r,a;if(void 0!==o)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var d=l[c];if(d.getAttribute("src")==n||d.getAttribute("data-webpack")==s+o){r=d;break}}r||(a=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,u.nc&&r.setAttribute("nonce",u.nc),r.setAttribute("data-webpack",s+o),r.src=n),t[n]=[e];var p=function(e,o){r.onerror=r.onload=null,clearTimeout(f);var i=t[n];if(delete t[n],r.parentNode&&r.parentNode.removeChild(r),i&&i.forEach((function(t){return t(o)})),e)return e(o)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=p.bind(null,r.onerror),r.onload=p.bind(null,r.onload),a&&document.head.appendChild(r)}},u.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},u.p="",function(){var t={179:0};u.f.j=function(n,e){var o=u.o(t,n)?t[n]:void 0;if(0!==o)if(o)e.push(o[2]);else{var i=new Promise((function(e,i){o=t[n]=[e,i]}));e.push(o[2]=i);var r=u.p+u.u(n),a=new Error;u.l(r,(function(e){if(u.o(t,n)&&(0!==(o=t[n])&&(t[n]=void 0),o)){var i=e&&("load"===e.type?"missing":e.type),r=e&&e.target&&e.target.src;a.message="Loading chunk "+n+" failed.\n("+i+": "+r+")",a.name="ChunkLoadError",a.type=i,a.request=r,o[1](a)}}),"chunk-"+n,n)}};var n=function(n,e){var o,i,r=e[0],a=e[1],s=e[2],l=0;if(r.some((function(n){return 0!==t[n]}))){for(o in a)u.o(a,o)&&(u.m[o]=a[o]);s&&s(u)}for(n&&n(e);l<r.length;l++)i=r[l],u.o(t,i)&&t[i]&&t[i][0](),t[i]=0},e=self.webpackChunktool_base=self.webpackChunktool_base||[];e.forEach(n.bind(null,0)),e.push=n.bind(null,e.push.bind(e))}(),u.nc=void 0;var d={};return(0,u(2722).s)(1),function(){"use strict";u.r(d);var t=u(4091),n=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("v-app",{style:t.classificationStyles},[e("app-nav",{staticClass:"d-print-none",attrs:{edition:"COSMOS"}}),t._v(" "),e("v-main",[e("v-container",{attrs:{fluid:""}},[e("div",{attrs:{id:"openc3-tool"}}),t._v(" "),e("div",[e("router-view")],1)])],1),t._v(" "),e("app-footer",{staticClass:"d-print-none",attrs:{app:"",edition:"COSMOS",license:"AGPLv3"}}),t._v(" "),e("time-check")],1)};n._withStripped=!0;var e=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("v-footer",{attrs:{id:"footer",app:"",color:"tertiary darken-3",height:"33"}},[e("img",{attrs:{src:t.icon,alt:"OpenC3"}}),t._v(" "),e("span",{staticClass:"footer-text",staticStyle:{"margin-left":"5px"}},[t._v("\n OpenC3 "+t._s(t.edition)+" "+t._s(t.openc3Version)+" © 2023 - License:\n "+t._s(t.license)+"\n ")]),t._v(" "),e("v-spacer"),t._v(" "),e("a",{staticClass:"white--text text-decoration-underline",attrs:{href:t.sourceUrl}},[t._v("\n Source\n ")]),t._v(" "),e("v-spacer"),t._v(" "),e("div",{staticClass:"justify-right"},[e("clock-footer")],1)],1)};e._withStripped=!0;var o=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("span",t._g(t._b({staticClass:"font-weight-bold",staticStyle:{cursor:"context-menu"},on:{contextmenu:t.openMenu}},"span",t.attrs,!1),t.on),[t._v("\n "+t._s(t._f("date")(t.displayLocal?t.localDate:t.utcDate,t.formatString))+"\n ("+t._s(t.displayLocal?"local":"UTC")+")\n ")]),t._v(" "),e("v-menu",{attrs:{"position-x":t.menuX,"position-y":t.menuY,absolute:"","offset-y":""},model:{value:t.showMenu,callback:function(n){t.showMenu=n},expression:"showMenu"}},[e("v-list",[e("v-list-item",[e("v-list-item-title",{staticStyle:{cursor:"pointer"},on:{click:t.toggleDisplayLocal}},[t._v("\n Display "+t._s(t.displayLocal?"UTC":"local time")+"\n ")])],1),t._v(" "),e("v-divider"),t._v(" "),e("v-list-item",[e("v-list-item-title",{staticStyle:{cursor:"pointer"},on:{click:t.toggleDisplay24h}},[t._v("\n Display "+t._s(t.display24h?12:24)+" hour clock\n ")])],1),t._v(" "),e("v-divider"),t._v(" "),"monthFirst"!==t.dateMode?e("v-list-item",[e("v-list-item-title",{staticStyle:{cursor:"pointer"},on:{click:t.setMonthFirst}},[t._v("\n Display mm/dd/yyyy\n ")])],1):t._e(),t._v(" "),"dayFirst"!==t.dateMode?e("v-list-item",[e("v-list-item-title",{staticStyle:{cursor:"pointer"},on:{click:t.setDayFirst}},[t._v("\n Display dd/mm/yyyy\n ")])],1):t._e(),t._v(" "),"number"!==t.dateMode?e("v-list-item",[e("v-list-item-title",{staticStyle:{cursor:"pointer"},on:{click:t.setNumber}},[t._v("\n Display day of year\n ")])],1):t._e()],1)],1)],1)};o._withStripped=!0;var i=u(3940);function r(t,n){if(n.length<t)throw new TypeError(t+" argument"+(t>1?"s":"")+" required, but only "+n.length+" present")}function a(t){r(1,arguments);var n=Object.prototype.toString.call(t);return t instanceof Date||"object"===(0,i.Z)(t)&&"[object Date]"===n?new Date(t.getTime()):"number"==typeof t||"[object Number]"===n?new Date(t):("string"!=typeof t&&"[object String]"!==n||"undefined"==typeof console||(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://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function s(t){if(null===t||!0===t||!1===t)return NaN;var n=Number(t);return isNaN(n)?n:n<0?Math.ceil(n):Math.floor(n)}function l(t){r(1,arguments);var n=a(t),e=n.getUTCDay(),o=(e<1?7:0)+e-1;return n.setUTCDate(n.getUTCDate()-o),n.setUTCHours(0,0,0,0),n}function c(t){r(1,arguments);var n=a(t),e=n.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(e+1,0,4),o.setUTCHours(0,0,0,0);var i=l(o),s=new Date(0);s.setUTCFullYear(e,0,4),s.setUTCHours(0,0,0,0);var c=l(s);return n.getTime()>=i.getTime()?e+1:n.getTime()>=c.getTime()?e:e-1}var p={};function f(){return p}function A(t,n){var e,o,i,l,c,u,d,p;r(1,arguments);var A=f(),h=s(null!==(e=null!==(o=null!==(i=null!==(l=null==n?void 0:n.weekStartsOn)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==i?i:A.weekStartsOn)&&void 0!==o?o:null===(d=A.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.weekStartsOn)&&void 0!==e?e:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=a(t),g=m.getUTCDay(),v=(g<h?7:0)+g-h;return m.setUTCDate(m.getUTCDate()-v),m.setUTCHours(0,0,0,0),m}function h(t,n){var e,o,i,l,c,u,d,p;r(1,arguments);var h=a(t),m=h.getUTCFullYear(),g=f(),v=s(null!==(e=null!==(o=null!==(i=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==i?i:g.firstWeekContainsDate)&&void 0!==o?o:null===(d=g.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.firstWeekContainsDate)&&void 0!==e?e:1);if(!(v>=1&&v<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var b=new Date(0);b.setUTCFullYear(m+1,0,v),b.setUTCHours(0,0,0,0);var y=A(b,n),C=new Date(0);C.setUTCFullYear(m,0,v),C.setUTCHours(0,0,0,0);var w=A(C,n);return h.getTime()>=y.getTime()?m+1:h.getTime()>=w.getTime()?m:m-1}function m(t,n){for(var e=t<0?"-":"",o=Math.abs(t).toString();o.length<n;)o="0"+o;return e+o}var g=function(t,n){var e=t.getUTCFullYear(),o=e>0?e:1-e;return m("yy"===n?o%100:o,n.length)},v=function(t,n){var e=t.getUTCMonth();return"M"===n?String(e+1):m(e+1,2)},b=function(t,n){return m(t.getUTCDate(),n.length)},y=function(t,n){return m(t.getUTCHours()%12||12,n.length)},C=function(t,n){return m(t.getUTCHours(),n.length)},w=function(t,n){return m(t.getUTCMinutes(),n.length)},k=function(t,n){return m(t.getUTCSeconds(),n.length)},x=function(t,n){var e=n.length,o=t.getUTCMilliseconds();return m(Math.floor(o*Math.pow(10,e-3)),n.length)},_={G:function(t,n,e){var o=t.getUTCFullYear()>0?1:0;switch(n){case"G":case"GG":case"GGG":return e.era(o,{width:"abbreviated"});case"GGGGG":return e.era(o,{width:"narrow"});default:return e.era(o,{width:"wide"})}},y:function(t,n,e){if("yo"===n){var o=t.getUTCFullYear(),i=o>0?o:1-o;return e.ordinalNumber(i,{unit:"year"})}return g(t,n)},Y:function(t,n,e,o){var i=h(t,o),r=i>0?i:1-i;return"YY"===n?m(r%100,2):"Yo"===n?e.ordinalNumber(r,{unit:"year"}):m(r,n.length)},R:function(t,n){return m(c(t),n.length)},u:function(t,n){return m(t.getUTCFullYear(),n.length)},Q:function(t,n,e){var o=Math.ceil((t.getUTCMonth()+1)/3);switch(n){case"Q":return String(o);case"QQ":return m(o,2);case"Qo":return e.ordinalNumber(o,{unit:"quarter"});case"QQQ":return e.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return e.quarter(o,{width:"narrow",context:"formatting"});default:return e.quarter(o,{width:"wide",context:"formatting"})}},q:function(t,n,e){var o=Math.ceil((t.getUTCMonth()+1)/3);switch(n){case"q":return String(o);case"qq":return m(o,2);case"qo":return e.ordinalNumber(o,{unit:"quarter"});case"qqq":return e.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return e.quarter(o,{width:"narrow",context:"standalone"});default:return e.quarter(o,{width:"wide",context:"standalone"})}},M:function(t,n,e){var o=t.getUTCMonth();switch(n){case"M":case"MM":return v(t,n);case"Mo":return e.ordinalNumber(o+1,{unit:"month"});case"MMM":return e.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return e.month(o,{width:"narrow",context:"formatting"});default:return e.month(o,{width:"wide",context:"formatting"})}},L:function(t,n,e){var o=t.getUTCMonth();switch(n){case"L":return String(o+1);case"LL":return m(o+1,2);case"Lo":return e.ordinalNumber(o+1,{unit:"month"});case"LLL":return e.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return e.month(o,{width:"narrow",context:"standalone"});default:return e.month(o,{width:"wide",context:"standalone"})}},w:function(t,n,e,o){var i=function(t,n){r(1,arguments);var e=a(t),o=A(e,n).getTime()-function(t,n){var e,o,i,a,l,c,u,d;r(1,arguments);var p=f(),m=s(null!==(e=null!==(o=null!==(i=null!==(a=null==n?void 0:n.firstWeekContainsDate)&&void 0!==a?a:null==n||null===(l=n.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==i?i:p.firstWeekContainsDate)&&void 0!==o?o:null===(u=p.locale)||void 0===u||null===(d=u.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==e?e:1),g=h(t,n),v=new Date(0);return v.setUTCFullYear(g,0,m),v.setUTCHours(0,0,0,0),A(v,n)}(e,n).getTime();return Math.round(o/6048e5)+1}(t,o);return"wo"===n?e.ordinalNumber(i,{unit:"week"}):m(i,n.length)},I:function(t,n,e){var o=function(t){r(1,arguments);var n=a(t),e=l(n).getTime()-function(t){r(1,arguments);var n=c(t),e=new Date(0);return e.setUTCFullYear(n,0,4),e.setUTCHours(0,0,0,0),l(e)}(n).getTime();return Math.round(e/6048e5)+1}(t);return"Io"===n?e.ordinalNumber(o,{unit:"week"}):m(o,n.length)},d:function(t,n,e){return"do"===n?e.ordinalNumber(t.getUTCDate(),{unit:"date"}):b(t,n)},D:function(t,n,e){var o=function(t){r(1,arguments);var n=a(t),e=n.getTime();n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0);var o=e-n.getTime();return Math.floor(o/864e5)+1}(t);return"Do"===n?e.ordinalNumber(o,{unit:"dayOfYear"}):m(o,n.length)},E:function(t,n,e){var o=t.getUTCDay();switch(n){case"E":case"EE":case"EEE":return e.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return e.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return e.day(o,{width:"short",context:"formatting"});default:return e.day(o,{width:"wide",context:"formatting"})}},e:function(t,n,e,o){var i=t.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(n){case"e":return String(r);case"ee":return m(r,2);case"eo":return e.ordinalNumber(r,{unit:"day"});case"eee":return e.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return e.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return e.day(i,{width:"short",context:"formatting"});default:return e.day(i,{width:"wide",context:"formatting"})}},c:function(t,n,e,o){var i=t.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(n){case"c":return String(r);case"cc":return m(r,n.length);case"co":return e.ordinalNumber(r,{unit:"day"});case"ccc":return e.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return e.day(i,{width:"narrow",context:"standalone"});case"cccccc":return e.day(i,{width:"short",context:"standalone"});default:return e.day(i,{width:"wide",context:"standalone"})}},i:function(t,n,e){var o=t.getUTCDay(),i=0===o?7:o;switch(n){case"i":return String(i);case"ii":return m(i,n.length);case"io":return e.ordinalNumber(i,{unit:"day"});case"iii":return e.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return e.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return e.day(o,{width:"short",context:"formatting"});default:return e.day(o,{width:"wide",context:"formatting"})}},a:function(t,n,e){var o=t.getUTCHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":return e.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return e.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return e.dayPeriod(o,{width:"narrow",context:"formatting"});default:return e.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(t,n,e){var o,i=t.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",n){case"b":case"bb":return e.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return e.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return e.dayPeriod(o,{width:"narrow",context:"formatting"});default:return e.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(t,n,e){var o,i=t.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",n){case"B":case"BB":case"BBB":return e.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return e.dayPeriod(o,{width:"narrow",context:"formatting"});default:return e.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(t,n,e){if("ho"===n){var o=t.getUTCHours()%12;return 0===o&&(o=12),e.ordinalNumber(o,{unit:"hour"})}return y(t,n)},H:function(t,n,e){return"Ho"===n?e.ordinalNumber(t.getUTCHours(),{unit:"hour"}):C(t,n)},K:function(t,n,e){var o=t.getUTCHours()%12;return"Ko"===n?e.ordinalNumber(o,{unit:"hour"}):m(o,n.length)},k:function(t,n,e){var o=t.getUTCHours();return 0===o&&(o=24),"ko"===n?e.ordinalNumber(o,{unit:"hour"}):m(o,n.length)},m:function(t,n,e){return"mo"===n?e.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):w(t,n)},s:function(t,n,e){return"so"===n?e.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):k(t,n)},S:function(t,n){return x(t,n)},X:function(t,n,e,o){var i=(o._originalDate||t).getTimezoneOffset();if(0===i)return"Z";switch(n){case"X":return E(i);case"XXXX":case"XX":return T(i);default:return T(i,":")}},x:function(t,n,e,o){var i=(o._originalDate||t).getTimezoneOffset();switch(n){case"x":return E(i);case"xxxx":case"xx":return T(i);default:return T(i,":")}},O:function(t,n,e,o){var i=(o._originalDate||t).getTimezoneOffset();switch(n){case"O":case"OO":case"OOO":return"GMT"+S(i,":");default:return"GMT"+T(i,":")}},z:function(t,n,e,o){var i=(o._originalDate||t).getTimezoneOffset();switch(n){case"z":case"zz":case"zzz":return"GMT"+S(i,":");default:return"GMT"+T(i,":")}},t:function(t,n,e,o){var i=o._originalDate||t;return m(Math.floor(i.getTime()/1e3),n.length)},T:function(t,n,e,o){return m((o._originalDate||t).getTime(),n.length)}};function S(t,n){var e=t>0?"-":"+",o=Math.abs(t),i=Math.floor(o/60),r=o%60;if(0===r)return e+String(i);var a=n||"";return e+String(i)+a+m(r,2)}function E(t,n){return t%60==0?(t>0?"-":"+")+m(Math.abs(t)/60,2):T(t,n)}function T(t,n){var e=n||"",o=t>0?"-":"+",i=Math.abs(t);return o+m(Math.floor(i/60),2)+e+m(i%60,2)}var B=_,O=function(t,n){switch(t){case"P":return n.date({width:"short"});case"PP":return n.date({width:"medium"});case"PPP":return n.date({width:"long"});default:return n.date({width:"full"})}},N=function(t,n){switch(t){case"p":return n.time({width:"short"});case"pp":return n.time({width:"medium"});case"ppp":return n.time({width:"long"});default:return n.time({width:"full"})}},D={p:N,P:function(t,n){var e,o=t.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return O(t,n);switch(i){case"P":e=n.dateTime({width:"short"});break;case"PP":e=n.dateTime({width:"medium"});break;case"PPP":e=n.dateTime({width:"long"});break;default:e=n.dateTime({width:"full"})}return e.replace("{{date}}",O(i,n)).replace("{{time}}",N(r,n))}};function I(t){var n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),t.getTime()-n.getTime()}var R=["D","DD"],M=["YY","YYYY"];function $(t,n,e){if("YYYY"===t)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(n,"`) for formatting years to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===t)throw new RangeError("Use `yy` instead of `YY` (in `".concat(n,"`) for formatting years to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===t)throw new RangeError("Use `d` instead of `D` (in `".concat(n,"`) for formatting days of the month to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===t)throw new RangeError("Use `dd` instead of `DD` (in `".concat(n,"`) for formatting days of the month to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var z={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function P(t){return function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=n.width?String(n.width):t.defaultWidth;return t.formats[e]||t.formats[t.defaultWidth]}}var U={date:P({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:P({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:P({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},j={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function F(t){return function(n,e){var o;if("formatting"===(null!=e&&e.context?String(e.context):"standalone")&&t.formattingValues){var i=t.defaultFormattingWidth||t.defaultWidth,r=null!=e&&e.width?String(e.width):i;o=t.formattingValues[r]||t.formattingValues[i]}else{var a=t.defaultWidth,s=null!=e&&e.width?String(e.width):t.defaultWidth;o=t.values[s]||t.values[a]}return o[t.argumentCallback?t.argumentCallback(n):n]}}var L={ordinalNumber:function(t,n){var e=Number(t),o=e%100;if(o>20||o<10)switch(o%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"},era:F({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:F({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:F({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:F({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:F({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function G(t){return function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=e.width,i=o&&t.matchPatterns[o]||t.matchPatterns[t.defaultMatchWidth],r=n.match(i);if(!r)return null;var a,s=r[0],l=o&&t.parsePatterns[o]||t.parsePatterns[t.defaultParseWidth],c=Array.isArray(l)?function(t,n){for(var e=0;e<t.length;e++)if(t[e].test(s))return e}(l):function(t,n){for(var e in t)if(t.hasOwnProperty(e)&&t[e].test(s))return e}(l);return a=t.valueCallback?t.valueCallback(c):c,{value:a=e.valueCallback?e.valueCallback(a):a,rest:n.slice(s.length)}}}var H,W={ordinalNumber:(H={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(t){return parseInt(t,10)}},function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=t.match(H.matchPattern);if(!e)return null;var o=e[0],i=t.match(H.parsePattern);if(!i)return null;var r=H.valueCallback?H.valueCallback(i[0]):i[0];return{value:r=n.valueCallback?n.valueCallback(r):r,rest:t.slice(o.length)}}),era:G({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:G({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:G({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{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],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]},defaultParseWidth:"any"}),day:G({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:G({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},Y={code:"en-US",formatDistance:function(t,n,e){var o,i=z[t];return o="string"==typeof i?i:1===n?i.one:i.other.replace("{{count}}",n.toString()),null!=e&&e.addSuffix?e.comparison&&e.comparison>0?"in "+o:o+" ago":o},formatLong:U,formatRelative:function(t,n,e,o){return j[t]},localize:L,match:W,options:{weekStartsOn:0,firstWeekContainsDate:1}},q=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Z=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,J=/^'([^]*?)'?$/,X=/''/g,Q=/[a-zA-Z]/;function V(t,n,e){var o,l,c,u,d,p,A,h,m,g,v,b,y,C,w,k,x,_;r(2,arguments);var S=String(n),E=f(),T=null!==(o=null!==(l=null==e?void 0:e.locale)&&void 0!==l?l:E.locale)&&void 0!==o?o:Y,O=s(null!==(c=null!==(u=null!==(d=null!==(p=null==e?void 0:e.firstWeekContainsDate)&&void 0!==p?p:null==e||null===(A=e.locale)||void 0===A||null===(h=A.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==d?d:E.firstWeekContainsDate)&&void 0!==u?u:null===(m=E.locale)||void 0===m||null===(g=m.options)||void 0===g?void 0:g.firstWeekContainsDate)&&void 0!==c?c:1);if(!(O>=1&&O<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var N=s(null!==(v=null!==(b=null!==(y=null!==(C=null==e?void 0:e.weekStartsOn)&&void 0!==C?C:null==e||null===(w=e.locale)||void 0===w||null===(k=w.options)||void 0===k?void 0:k.weekStartsOn)&&void 0!==y?y:E.weekStartsOn)&&void 0!==b?b:null===(x=E.locale)||void 0===x||null===(_=x.options)||void 0===_?void 0:_.weekStartsOn)&&void 0!==v?v:0);if(!(N>=0&&N<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!T.localize)throw new RangeError("locale must contain localize property");if(!T.formatLong)throw new RangeError("locale must contain formatLong property");var z=a(t);if(!function(t){if(r(1,arguments),!function(t){return r(1,arguments),t instanceof Date||"object"===(0,i.Z)(t)&&"[object Date]"===Object.prototype.toString.call(t)}(t)&&"number"!=typeof t)return!1;var n=a(t);return!isNaN(Number(n))}(z))throw new RangeError("Invalid time value");var P=function(t,n){return r(2,arguments),function(t,n){r(2,arguments);var e=a(t).getTime(),o=s(n);return new Date(e+o)}(t,-s(n))}(z,I(z)),U={firstWeekContainsDate:O,weekStartsOn:N,locale:T,_originalDate:z};return S.match(Z).map((function(t){var n=t[0];return"p"===n||"P"===n?(0,D[n])(t,T.formatLong):t})).join("").match(q).map((function(o){if("''"===o)return"'";var i,r,a=o[0];if("'"===a)return(r=(i=o).match(J))?r[1].replace(X,"'"):i;var s,l=B[a];if(l)return null!=e&&e.useAdditionalWeekYearTokens||(s=o,-1===M.indexOf(s))||$(o,n,String(t)),null!=e&&e.useAdditionalDayOfYearTokens||!function(t){return-1!==R.indexOf(t)}(o)||$(o,n,String(t)),l(P,o,T.localize,U);if(a.match(Q))throw new RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");return o})).join("")}var K={data:function(){return{localDate:new Date,displayLocal:"local"===localStorage.clock_zone,display24h:!localStorage.clock_12h,dateMode:localStorage.clock_dateMode||"monthFirst",intervalCount:0,showMenu:!1,menuX:0,menuY:0}},computed:{utcDate:function(){return new Date(this.localDate.getTime()+6e4*this.localDate.getTimezoneOffset())},formatString:function(){var t,n;switch(this.dateMode){case"monthFirst":t="LL/dd/yyy";break;case"dayFirst":t="dd/LL/yyy";break;case"number":t="D"}return n=this.display24h?"HH:mm:ss":"hh:mm:ss a","".concat(t," ").concat(n)}},watch:{displayLocal:function(t){localStorage.clock_zone=t?"local":"utc"},display24h:function(t){t?delete localStorage.clock_12h:localStorage.clock_12h=!0},dateMode:function(t){t.match(/^monthFirst$|^dayFirst$|^number$/)&&(localStorage.clock_dateMode=t)}},created:function(){var t=this;setInterval((function(){t.intervalCount++,t.localDate=new Date}),this.intervalCount<10?100:1e3)},methods:{openMenu:function(t){var n=this;t.preventDefault(),this.showMenu=!1,this.menuX=t.clientX,this.menuY=t.clientY,this.$nextTick((function(){n.showMenu=!0}))},toggleDisplayLocal:function(){this.displayLocal=!this.displayLocal},toggleDisplay24h:function(){this.display24h=!this.display24h},setMonthFirst:function(){this.dateMode="monthFirst"},setDayFirst:function(){this.dateMode="dayFirst"},setNumber:function(){this.dateMode="number"}},filters:{date:function(t,n){return V(t,n,{useAdditionalDayOfYearTokens:!0})}}},tt=u(1900),nt=(0,tt.Z)(K,o,[],!1,null,null,null);nt.options.__file="packages/openc3-tool-common/src/tools/base/components/ClockFooter.vue";var et=nt.exports,ot=u(7791);function it(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}var rt=u(5217);function at(t,n){for(var e=0;e<n.length;e++){var o=n[e];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,(0,rt.Z)(o.key),o)}}function st(t,n,e){return n&&at(t.prototype,n),e&&at(t,e),Object.defineProperty(t,"prototype",{writable:!1}),t}var lt=u(4649),ct=u(6966);function ut(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}function dt(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?ut(Object(e),!0).forEach((function(n){(0,lt.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):ut(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}var pt=function(){function t(){it(this,t),(0,lt.Z)(this,"id",1)}var n,e,o,r,a,s;return st(t,[{key:"exec",value:(s=(0,ot.Z)(regeneratorRuntime.mark((function t(n,e){var o,i,r,a,s=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=s.length>2&&void 0!==s[2]?s[2]:{},i=s.length>3&&void 0!==s[3]?s[3]:{},t.prev=2,t.next=5,OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity);case 5:t.sent&&OpenC3Auth.setTokens(),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(2),OpenC3Auth.login();case 12:return this.id=this.id+1,t.prev=13,o.scope=window.openc3Scope,t.next=17,ct.Z.post("/openc3-api/api",{jsonrpc:"2.0",method:n,params:e,id:this.id,keyword_params:o},{headers:dt({Authorization:localStorage.openc3Token,"Content-Type":"application/json-rpc"},i)});case 17:return r=t.sent,t.abrupt("return",r.data.result);case 21:throw t.prev=21,t.t1=t.catch(13),a=new Error,t.t1.response?(a.name=t.t1.response.data.error.data.class,a.message=t.t1.response.data.error.data.message):t.t1.request?(a.name="Request error",a.message="Request error, no response received"):a.name="Unknown error",a;case 26:case"end":return t.stop()}}),t,this,[[2,9],[13,21]])}))),function(t,n){return s.apply(this,arguments)})},{key:"decode_openc3_type",value:function(t){if(null!==t&&"object"===(0,i.Z)(t)&&"Float"==t.json_class&&t.raw){if("NaN"==t.raw)return NaN;if("Infinity"==t.raw)return 1/0;if("-Infinity"==t.raw)return-1/0}return null}},{key:"encode_openc3_type",value:function(t){return Number.isNaN(t)?{json_class:"Float",raw:"NaN"}:t==Number.POSITIVE_INFINITY?{json_class:"Float",raw:"Infinity"}:t==Number.NEGATIVE_INFINITY?{json_class:"Float",raw:"-Infinity"}:null}},{key:"ensure_offline_access",value:function(){var t=this;this.offline_access_needed().then((function(n){n&&(localStorage.openc3OfflineToken?t.set_offline_access(localStorage.openc3OfflineToken).then((function(){delete localStorage.openc3OfflineToken})):OpenC3Auth.getOfflineAccess())}))}},{key:"offline_access_needed",value:function(){return this.exec("offline_access_needed",[])}},{key:"set_offline_access",value:function(t){return this.exec("set_offline_access",[t])}},{key:"get_all_interface_info",value:function(){return this.exec("get_all_interface_info",[])}},{key:"map_target_to_interface",value:function(t,n){return this.exec("map_target_to_interface",[t,n])}},{key:"connect_interface",value:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),o=1;o<n;o++)e[o-1]=arguments[o];return e.length>0?this.exec("connect_interface",[t].concat(e)):this.exec("connect_interface",[t])}},{key:"disconnect_interface",value:function(t){return this.exec("disconnect_interface",[t])}},{key:"get_all_router_info",value:function(){return this.exec("get_all_router_info",[])}},{key:"connect_router",value:function(t){return this.exec("connect_router",[t])}},{key:"disconnect_router",value:function(t){return this.exec("disconnect_router",[t])}},{key:"get_target_interfaces",value:function(){return this.exec("get_target_interfaces",[])}},{key:"get_all_target_info",value:function(){return this.exec("get_all_target_info",[])}},{key:"get_tlm_cnts",value:function(t){return this.exec("get_tlm_cnts",[t])}},{key:"get_item",value:function(t,n,e){return this.exec("get_item",[t,n,e])}},{key:"get_parameter",value:function(t,n,e){return this.exec("get_parameter",[t,n,e])}},{key:"get_all_packet_logger_info",value:function(){return this.exec("get_all_packet_logger_info",[])}},{key:"start_logging",value:function(){return this.exec("start_logging",[])}},{key:"stop_logging",value:function(){return this.exec("stop_logging",[])}},{key:"start_cmd_log",value:function(t){return this.exec("start_cmd_log",[t])}},{key:"start_tlm_log",value:function(t){return this.exec("start_tlm_log",[t])}},{key:"stop_cmd_log",value:function(t){return this.exec("stop_cmd_log",[t])}},{key:"stop_tlm_log",value:function(t){return this.exec("stop_tlm_log",[t])}},{key:"get_server_status",value:function(){return this.exec("get_server_status",[])}},{key:"get_limits_sets",value:function(){return this.exec("get_limits_sets",[])}},{key:"get_limits_set",value:function(){return this.exec("get_limits_set",[])}},{key:"set_limits_set",value:function(t){return this.exec("set_limits_set",[t])}},{key:"get_background_tasks",value:function(){return this.exec("get_background_tasks",[])}},{key:"start_background_task",value:function(t){return this.exec("start_background_task",[t])}},{key:"stop_background_task",value:function(t){return this.exec("stop_background_task",[t])}},{key:"get_target",value:function(t){return this.exec("get_target",[t])}},{key:"get_target_list",value:function(){return this.exec("get_target_list",[])}},{key:"get_telemetry",value:function(t,n){return this.exec("get_telemetry",[t,n])}},{key:"get_all_telemetry",value:function(t){return this.exec("get_all_telemetry",[t])}},{key:"get_all_telemetry_names",value:function(t){return this.exec("get_all_telemetry_names",[t])}},{key:"get_tlm_packet",value:(a=(0,ot.Z)(regeneratorRuntime.mark((function t(n,e,o){var i,r,a,s,l,c=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=c.length>3&&void 0!==c[3]?c[3]:30,t.next=3,this.exec("get_tlm_packet",[n,e],{type:o,stale_time:i});case 3:if(null!=(r=t.sent))for(a=r.length,s=null,l=0;l<a;l++)null!==(s=this.decode_openc3_type(r[l][1]))&&(r[l][1]=s);return t.abrupt("return",r);case 6:case"end":return t.stop()}}),t,this)}))),function(t,n,e){return a.apply(this,arguments)})},{key:"get_packet_derived_items",value:function(t,n){return this.exec("get_packet_derived_items",[t,n])}},{key:"get_tlm_buffer",value:function(t,n){return this.exec("get_tlm_buffer",[t,n])}},{key:"get_tlm_values",value:(r=(0,ot.Z)(regeneratorRuntime.mark((function t(n){var e,o,i,r,a,s=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=s.length>1&&void 0!==s[1]?s[1]:30,t.next=3,this.exec("get_tlm_values",[n],{stale_time:e});case 3:for(o=t.sent,i=o[0].length,r=null,a=0;a<i;a++)null!==(r=this.decode_openc3_type(o[0][a]))&&(o[0][a]=r);return t.abrupt("return",o);case 8:case"end":return t.stop()}}),t,this)}))),function(t){return r.apply(this,arguments)})},{key:"get_limits",value:function(t,n,e){return this.exec("get_limits",[t,n,e])}},{key:"tlm",value:(o=(0,ot.Z)(regeneratorRuntime.mark((function t(n,e,o){var i,r,a,s,l=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=l.length>3&&void 0!==l[3]?l[3]:"CONVERTED",r=null,void 0!==e){t.next=8;break}return t.next=5,this.exec("tlm",[n]);case 5:r=t.sent,t.next=24;break;case 8:if(void 0!==o){t.next=21;break}if(!["RAW","CONVERTED","FORMATTED","WITH_UNITS"].includes(e)){t.next=15;break}return t.next=12,this.exec("tlm",[n],{type:e});case 12:r=t.sent,t.next=19;break;case 15:throw(a=new Error).name="TypeError",a.message="Invalid data type ".concat(e,". Valid options are RAW, CONVERTED, FORMATTED, and WITH_UNITS."),a;case 19:t.next=24;break;case 21:return t.next=23,this.exec("tlm",[n,e,o],{type:i});case 23:r=t.sent;case 24:return null!==(s=this.decode_openc3_type(r))&&(r=s),t.abrupt("return",r);case 27:case"end":return t.stop()}}),t,this)}))),function(t,n,e){return o.apply(this,arguments)})},{key:"inject_tlm",value:(e=(0,ot.Z)(regeneratorRuntime.mark((function t(n,e){var o,i,r=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=r.length>2&&void 0!==r[2]?r[2]:null,i=r.length>3&&void 0!==r[3]?r[3]:"CONVERTED",t.next=4,this.exec("inject_tlm",[n,e,o],{type:i});case 4:data=t.sent;case 5:case"end":return t.stop()}}),t,this)}))),function(t,n){return e.apply(this,arguments)})},{key:"set_tlm",value:function(t,n,e,o){return this.exec("set_tlm",[t,n,e],{type:o})}},{key:"override_tlm",value:function(t,n,e,o){return this.exec("override_tlm",[t,n,e],{type:o})}},{key:"get_overrides",value:function(){return this.exec("get_overrides")}},{key:"normalize_tlm",value:function(t,n,e,o){return this.exec("normalize_tlm",[t,n,e],{type:o})}},{key:"get_all_commands",value:function(t){return this.exec("get_all_commands",[t])}},{key:"get_all_command_names",value:function(t){return this.exec("get_all_command_names",[t])}},{key:"get_command",value:function(t,n){return this.exec("get_command",[t,n])}},{key:"get_cmd_cnts",value:function(t){return this.exec("get_cmd_cnts",[t])}},{key:"get_cmd_value",value:function(t,n,e){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"CONVERTED";return this.exec("get_cmd_value",[t,n,e,o])}},{key:"get_cmd_buffer",value:function(t,n){return this.exec("get_cmd_buffer",[t,n])}},{key:"_cmd",value:function(t,n,e,o,i){var r=null;for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&null!==(r=this.encode_openc3_type(o[a]))&&(o[a]=r);return this.exec(t,[n,e,o],{},i)}},{key:"get_cmd_hazardous",value:function(t,n,e){return void 0===n?this.exec("get_cmd_hazardous",t):this._cmd("get_cmd_hazardous",t,n,e)}},{key:"cmd",value:function(t,n,e){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return void 0===n?this.exec("cmd",t,{},o):this._cmd("cmd",t,n,e,o)}},{key:"cmd_no_range_check",value:function(t,n,e){return void 0===n?this.exec("cmd_no_range_check",t):this._cmd("cmd_no_range_check",t,n,e)}},{key:"cmd_raw",value:function(t,n,e){return void 0===n?this.exec("cmd_raw",t):this._cmd("cmd_raw",t,n,e)}},{key:"cmd_raw_no_range_check",value:function(t,n,e){return void 0===n?this.exec("cmd_raw_no_range_check",t):this._cmd("cmd_raw_no_range_check",t,n,e)}},{key:"cmd_no_hazardous_check",value:function(t,n,e){return void 0===n?this.exec("cmd_no_hazardous_check",t):this._cmd("cmd_no_hazardous_check",t,n,e)}},{key:"cmd_no_checks",value:function(t,n,e){return void 0===n?this.exec("cmd_no_checks",t):this._cmd("cmd_no_checks",t,n,e)}},{key:"cmd_raw_no_hazardous_check",value:function(t,n,e){return void 0===n?this.exec("cmd_raw_no_hazardous_check",t):this._cmd("cmd_raw_no_hazardous_check",t,n,e)}},{key:"cmd_raw_no_checks",value:function(t,n,e){return void 0===n?this.exec("cmd_raw_no_checks",t):this._cmd("cmd_raw_no_checks",t,n,e)}},{key:"build_command",value:function(t,n,e){return void 0===n?this.exec("build_command",t):this._cmd("build_command",t,n,e)}},{key:"get_interface_names",value:function(){return this.exec("get_interface_names",[])}},{key:"send_raw",value:function(t,n){return this.exec("send_raw",[t,n])}},{key:"list_configs",value:function(t){return this.exec("list_configs",[t])}},{key:"load_config",value:function(t,n){return this.exec("load_config",[t,n])}},{key:"save_config",value:function(t,n,e){return this.exec("save_config",[t,n,e])}},{key:"delete_config",value:function(t,n){return this.exec("delete_config",[t,n])}},{key:"enable_limits",value:function(t,n,e){return this.exec("enable_limits",[t,n,e])}},{key:"disable_limits",value:function(t,n,e){return this.exec("disable_limits",[t,n,e])}},{key:"get_out_of_limits",value:function(){return this.exec("get_out_of_limits",[])}},{key:"get_overall_limits_state",value:function(t){return this.exec("get_overall_limits_state",[t])}},{key:"list_settings",value:function(){return this.exec("list_settings",[])}},{key:"get_all_settings",value:function(){return this.exec("get_all_settings",[])}},{key:"get_setting",value:function(t){return this.exec("get_setting",[t])}},{key:"get_settings",value:function(t){return this.exec("get_settings",t)}},{key:"save_setting",value:function(t,n){return this.exec("save_setting",[t,n])}},{key:"get_metrics",value:function(){return this.exec("get_metrics",[])}},{key:"hashString",value:(n=(0,ot.Z)(regeneratorRuntime.mark((function t(n){var e,o,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!window.isSecureContext){t.next=7;break}return e=(new TextEncoder).encode(n),t.next=4,crypto.subtle.digest("SHA-256",e);case 4:return o=t.sent,i=new Uint8Array(o),t.abrupt("return",Array.from(i).map((function(t){return t.toString(16).padStart(2,"0")})).join(""));case 7:case"end":return t.stop()}}),t)}))),function(t){return n.apply(this,arguments)})}]),t}(),ft=u.p+"a0696a4fd430262c8adb.png",At={components:{ClockFooter:et},props:{edition:{type:String,default:""},license:{type:String,default:""}},data:function(){return{icon:ft,sourceUrl:"",openc3Version:""}},created:function(){this.getSourceUrl()},methods:{getSourceUrl:function(){var t=this;(new pt).get_settings(["source_url","version"]).then((function(n){t.sourceUrl=n[0],t.openc3Version="(".concat(n[1],")")})).catch((function(){t.openc3Version="Unknown"}))}}},ht=u(3379),mt=u.n(ht),gt=u(7795),vt=u.n(gt),bt=u(569),yt=u.n(bt),Ct=u(3565),wt=u.n(Ct),kt=u(9216),xt=u.n(kt),_t=u(4589),St=u.n(_t),Et=u(4829),Tt={};Tt.styleTagTransform=St(),Tt.setAttributes=wt(),Tt.insert=yt().bind(null,"head"),Tt.domAPI=vt(),Tt.insertStyleElement=xt(),mt()(Et.Z,Tt),Et.Z&&Et.Z.locals&&Et.Z.locals;var Bt=(0,tt.Z)(At,e,[],!1,null,"1f2e2c8b",null);Bt.options.__file="packages/openc3-tool-common/src/tools/base/AppFooter.vue";var Ot=Bt.exports,Nt=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("v-navigation-drawer",{attrs:{app:"",id:"openc3-nav-drawer"},model:{value:t.drawer,callback:function(n){t.drawer=n},expression:"drawer"}},[e("v-list",[e("v-list-item",[e("v-list-item-icon",{staticStyle:{"margin-right":"auto !important","margin-left":"auto","margin-top":"0px","margin-bottom":"0px"}},[e("img",{attrs:{src:t.logo,alt:"OpenC3"}})])],1),t._v(" "),e("div",{staticStyle:{"text-align":"center","font-size":"18pt"}},[t._v(t._s(t.edition))]),t._v(" "),e("v-list-item",{staticClass:"my-0"},[e("v-list-item-content",t._l(t.adminTools,(function(n,o){return e("div",{key:o},[e("v-btn",{staticClass:"fixcenter",attrs:{block:"",small:"",href:n.url,onclick:"singleSpaNavigate(event)"}},[t._v("\n Admin\n ")])],1)})),0)],1),t._v(" "),e("v-divider"),t._v(" "),e("v-treeview",{attrs:{items:t.items,open:t.initiallyOpen,"item-key":"name",dense:"","open-on-click":"","expand-icon":""},scopedSlots:t._u([{key:"prepend",fn:function(n){var o=n.item,i=n.open;return[o.icon?e("a",{attrs:{href:o.url,onclick:"singleSpaNavigate(event)"}},[e("v-icon",[t._v(" "+t._s(o.icon)+" ")])],1):e("v-icon",[t._v("\n "+t._s(i?"mdi-chevron-down":"mdi-chevron-right")+"\n ")])]}},{key:"label",fn:function(n){var o=n.item;return[e("a",{attrs:{href:o.url,onclick:"singleSpaNavigate(event)"}},[t._v("\n "+t._s(o.name)+"\n ")])]}},{key:"append",fn:function(n){var o=n.item;return[o.icon?e("a",{attrs:{href:t.newTabUrl(o),target:"_blank"}},[e("v-icon",[t._v("mdi-open-in-new")])],1):t._e()]}}])})],1)],1),t._v(" "),e("v-app-bar",{attrs:{app:"",color:"tertiary darken-3",id:"openc3-app-toolbar"}},[e("v-app-bar-nav-icon",{on:{click:function(n){t.drawer=!t.drawer}}}),t._v(" "),e("v-divider",{staticClass:"top-bar-divider-full-height",attrs:{vertical:""}}),t._v(" "),e("span",{staticStyle:{width:"100%"}},[e("span",{attrs:{id:"openc3-menu"}})]),t._v(" "),e("div",{staticClass:"justify-right mr-2 pt-2"},[e("scope-selector")],1),t._v(" "),e("div",{staticClass:"justify-right",attrs:{"data-test":"alert-history"}},[e("alert-history")],1),t._v(" "),e("div",{staticClass:"justify-right",attrs:{"data-test":"notifications"}},[e("notifications")],1),t._v(" "),e("div",{staticClass:"justify-right",attrs:{"data-test":"user-menu"}},[e("user-menu")],1)],1)],1)};Nt._withStripped=!0;var Dt=u(9554),It=u.p+"772bd60446e0b68b2dcb.png",Rt=u(8645),Mt=function(){var t=this,n=t.$createElement;return(t._self._c||n)("v-select",{attrs:{items:t.scopes,disabled:t.scopes.length<=1,label:"Scope",dense:"","hide-details":""},model:{value:t.scope,callback:function(n){t.scope=n},expression:"scope"}})};Mt._withStripped=!0;var $t=(0,tt.Z)({data:function(){return{scopes:["DEFAULT"],scope:"DEFAULT"}}},Mt,[],!1,null,null,null);$t.options.__file="packages/openc3-tool-common/src/tools/base/components/ScopeSelector.vue";var zt=$t.exports,Pt=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("v-overlay",{staticClass:"overlay",attrs:{value:t.showAlertPane}}),t._v(" "),e("v-menu",{attrs:{transition:"slide-y-transition","close-on-content-click":!1,"nudge-width":340,"offset-y":"","nudge-bottom":20},scopedSlots:t._u([{key:"activator",fn:function(n){var o=n.on,i=n.attrs;return[e("v-btn",t._g(t._b({attrs:{icon:""}},"v-btn",i,!1),o),[e("v-icon",{attrs:{size:t.size}},[t._v(" mdi-alert-box-outline ")])],1)]}}]),model:{value:t.showAlertPane,callback:function(n){t.showAlertPane=n},expression:"showAlertPane"}},[t._v(" "),e("v-card",[e("v-card-title",[t._v("\n Alerts\n "),e("v-spacer"),t._v(" "),e("v-tooltip",{attrs:{top:"","open-delay":"350"},scopedSlots:t._u([{key:"activator",fn:function(n){var o=n.on,i=n.attrs;return[e("v-btn",t._g(t._b({staticClass:"ml-1",attrs:{icon:""},on:{click:t.clearAlerts}},"v-btn",i,!1),o),[e("v-icon",[t._v(" mdi-notification-clear-all ")])],1)]}}])},[t._v(" "),e("span",[t._v("Clear all")])])],1),t._v(" "),0===t.alerts.length?e("v-card-text",[t._v(" No alerts ")]):e("v-list",{staticClass:"overflow-y-auto",attrs:{"two-line":"",width:"388","max-height":"80vh"}},[t._l(t.alerts,(function(n,o){return[e("v-list-item",{key:"alert-"+o,staticClass:"pl-2",on:{click:function(e){return t.openDialog(n)}}},[e("v-badge",{attrs:{left:"",inline:"",color:"transparent"},scopedSlots:t._u([{key:"badge",fn:function(){return[e("astro-status-indicator",{attrs:{status:n.severity.toLowerCase()}})]},proxy:!0}],null,!0)},[e("v-list-item-content",{staticClass:"pt-0 pb-0"},[e("v-list-item-title",[t._v("\n "+t._s(n.title)+"\n ")]),t._v(" "),e("v-list-item-subtitle",[t._v("\n "+t._s(n.body)+"\n ")])],1)],1)],1)]}))],2)],1)],1),t._v(" "),e("v-dialog",{attrs:{width:"600"},model:{value:t.alertDialog,callback:function(n){t.alertDialog=n},expression:"alertDialog"}},[e("v-card",[e("v-card-title",[t._v("\n "+t._s(t.selectedAlert.title)+"\n "),e("v-spacer"),t._v(" "),e("astro-status-indicator",{attrs:{status:t.selectedAlert.severity||"normal"}})],1),t._v(" "),e("v-card-text",[t._v("\n "+t._s(t.selectedAlert.body)+"\n ")]),t._v(" "),e("v-divider"),t._v(" "),e("v-card-actions",[e("v-btn",{attrs:{color:"primary",text:""},on:{click:function(n){t.alertDialog=!1}}},[t._v("\n Dismiss\n ")])],1)],1)],1)],1)};Pt._withStripped=!0;var Ut=function(){var t=this,n=t.$createElement;return(t._self._c||n)("rux-icon",{staticClass:"astro-icon",attrs:{icon:t.icon}})};Ut._withStripped=!0;var jt=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("span",{style:t.style,attrs:{id:"rux-icon",title:t.label,size:t.size}},[e("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",preserveAspectRatio:"xMidYMid meet",focusable:"false"}},[e("use",{attrs:{href:t.getIcon(this.library,this.icon)}})])])};jt._withStripped=!0;var Ft={props:{icon:{type:String},size:{type:String,default:"extra-small"},color:{type:String},library:{type:String,default:"/icons/astro.svg"},label:{type:String,default:"icon"}},computed:{style:function(){return"--iconColor="+this.propscolor}},methods:{getIcon:function(){return this.library+"#"+this.icon}}},Lt=(0,tt.Z)(Ft,jt,[],!1,null,null,null);Lt.options.__file="packages/openc3-tool-common/src/components/icons/RuxIcon.vue";var Gt={components:{RuxIcon:Lt.exports},props:{icon:{type:String,required:!0,validator:function(t){return Jt.includes(t)}}}},Ht=u(3838),Wt={};Wt.styleTagTransform=St(),Wt.setAttributes=wt(),Wt.insert=yt().bind(null,"head"),Wt.domAPI=vt(),Wt.insertStyleElement=xt(),mt()(Ht.Z,Wt),Ht.Z&&Ht.Z.locals&&Ht.Z.locals;var Yt=(0,tt.Z)(Gt,Ut,[],!1,null,"b942113a",null);Yt.options.__file="packages/openc3-tool-common/src/components/icons/AstroIcon.vue";var qt=Yt.exports;function Zt(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}var Jt=["altitude","antenna","antenna-off","antenna-receive","antenna-transmit","equipment","mission","payload","processor","processor-alt","netcom","propulsion-power","thermal","satellite-off","satellite-receive","satellite-transmit","add-large","add-small","close-large","close-small","collapse","expand","lock","unlock","search","caution","maintenance","notifications","settings"],Xt=Jt.reduce((function(t,n){return function(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?Zt(Object(e),!0).forEach((function(n){(0,lt.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Zt(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}((0,lt.Z)({},"astro-".concat(n),{component:qt,props:{icon:n}}),t)}),{}),Qt={critical:"#ff3838",serious:"#ffb302",caution:"#fce83a",normal:"#56f000",standby:"#2dccff",off:"#9ea7ad"},Vt=Object.keys(Qt),Kt={props:{size:{type:[String,Number],default:26}},data:function(){return{AstroStatusColors:Qt,alerts:[],alertDialog:!1,showAlertPane:!1,selectedAlert:{}}},watch:{showAlertPane:function(t){t&&this.refreshList(),!t&&this.selectedAlert.title&&(this.alertDialog=!1,this.selectedAlert={})}},methods:{refreshList:function(){this.alerts=this.$store.state.notifyHistory},clearAlerts:function(){this.$store.commit("notifyClearHistory"),this.refreshList(),this.showAlertPane=!1},openDialog:function(t){this.selectedAlert=t,this.alertDialog=!0}}},tn=u(2003),nn={};nn.styleTagTransform=St(),nn.setAttributes=wt(),nn.insert=yt().bind(null,"head"),nn.domAPI=vt(),nn.insertStyleElement=xt(),mt()(tn.Z,nn),tn.Z&&tn.Z.locals&&tn.Z.locals;var en=(0,tt.Z)(Kt,Pt,[],!1,null,"3d0e2e40",null);en.options.__file="packages/openc3-tool-common/src/tools/base/components/AlertHistory.vue";var on=en.exports,rn=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("v-overlay",{staticClass:"overlay",attrs:{value:t.showNotificationPane}}),t._v(" "),e("v-menu",{attrs:{transition:"slide-y-transition","close-on-content-click":!1,"nudge-width":340,"offset-y":"","nudge-bottom":20},scopedSlots:t._u([{key:"activator",fn:function(n){var o=n.on,i=n.attrs;return[e("v-btn",t._g(t._b({attrs:{icon:""}},"v-btn",i,!1),o),[0===t.unreadCount?e("v-icon",{attrs:{size:t.size}},[t._v("\n mdi-bell-outline\n ")]):e("v-badge",{attrs:{left:"","offset-x":"24","offset-y":"8",color:t.badgeColor,bordered:"",content:t.unreadCount}},[e("v-icon",{attrs:{size:t.size,color:t.badgeColor}},[t._v(" mdi-bell ")])],1)],1)]}}]),model:{value:t.showNotificationPane,callback:function(n){t.showNotificationPane=n},expression:"showNotificationPane"}},[t._v(" "),e("v-card",[e("v-card-title",[t._v("\n Notifications\n "),e("v-spacer"),t._v(" "),e("v-tooltip",{attrs:{top:"","open-delay":"350"},scopedSlots:t._u([{key:"activator",fn:function(n){var o=n.on,i=n.attrs;return[e("v-btn",t._g(t._b({staticClass:"ml-1",attrs:{icon:""},on:{click:t.clearNotifications}},"v-btn",i,!1),o),[e("v-icon",[t._v(" mdi-notification-clear-all ")])],1)]}}])},[t._v(" "),e("span",[t._v("Clear all")])]),t._v(" "),e("v-btn",{staticClass:"ml-1",attrs:{icon:""},on:{click:t.toggleSettingsDialog}},[e("v-icon",[t._v(" $astro-settings ")])],1)],1),t._v(" "),0===t.notifications.length?e("v-card-text",[t._v("\n No notifications\n ")]):e("v-list",{staticClass:"overflow-y-auto",attrs:{"two-line":"",width:"388","max-height":"80vh"}},[t._l(t.notificationList,(function(n,o){return[n.header?[0!==o?e("v-divider",{key:o,staticClass:"mb-2"}):t._e(),t._v(" "),e("v-subheader",{key:n.header},[t._v("\n "+t._s(n.header)+"\n ")])]:e("v-list-item",{key:"notification-"+o,staticClass:"pl-2",on:{click:function(e){return t.openDialog(n)}}},[e("v-badge",{attrs:{left:"",inline:"",color:"transparent"},scopedSlots:t._u([{key:"badge",fn:function(){return[e("astro-status-indicator",{attrs:{status:n.severity.toLowerCase()}})]},proxy:!0}],null,!0)},[e("v-list-item-content",{staticClass:"pt-0 pb-0"},[e("v-list-item-title",{class:{"text--secondary":n.read}},[t._v("\n "+t._s(n.title)+"\n ")]),t._v(" "),e("v-list-item-subtitle",[t._v("\n "+t._s(n.body)+"\n ")])],1),t._v(" "),e("v-list-item-action",{staticClass:"mt-0"},[e("v-list-item-action-text",[t._v("\n "+t._s(t._f("shortDateTime")(n.time))+"\n ")]),t._v(" "),e("v-spacer")],1)],1)],1)]}))],2)],1)],1),t._v(" "),e("v-dialog",{attrs:{width:"600"},model:{value:t.notificationDialog,callback:function(n){t.notificationDialog=n},expression:"notificationDialog"}},[e("v-card",[e("v-card-title",[t._v("\n "+t._s(t.selectedNotification.title)+"\n "),e("v-spacer"),t._v(" "),e("astro-status-indicator",{attrs:{status:t.selectedNotification.severity||"normal"}})],1),t._v(" "),e("v-card-subtitle",[t._v("\n "+t._s(t._f("shortDateTime")(t.selectedNotification.time))+"\n ")]),t._v(" "),e("v-card-text",[t._v("\n "+t._s(t.selectedNotification.body)+"\n ")]),t._v(" "),e("v-divider"),t._v(" "),e("v-card-actions",[e("v-btn",{attrs:{color:"primary",text:""},on:{click:function(n){return t.navigate(t.selectedNotification.url)}}},[t._v("\n Open\n "),e("v-icon",{attrs:{right:""}},[t._v(" mdi-open-in-new ")])],1),t._v(" "),e("v-btn",{attrs:{color:"primary",text:""},on:{click:function(n){t.notificationDialog=!1}}},[t._v("\n Dismiss\n ")])],1)],1)],1),t._v(" "),e("v-dialog",{attrs:{width:"600"},model:{value:t.settingsDialog,callback:function(n){t.settingsDialog=n},expression:"settingsDialog"}},[e("v-card",[e("v-card-title",[t._v(" Notification settings ")]),t._v(" "),e("v-card-text",[e("v-switch",{attrs:{label:"Show toasts"},model:{value:t.showToast,callback:function(n){t.showToast=n},expression:"showToast"}})],1),t._v(" "),e("v-divider"),t._v(" "),e("v-card-actions",[e("v-btn",{attrs:{color:"primary",text:""},on:{click:t.toggleSettingsDialog}},[t._v("\n close\n ")])],1)],1)],1)],1)};function an(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}function sn(t){return function(t){if(Array.isArray(t))return an(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,n){if(t){if("string"==typeof t)return an(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?an(t,n):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ln(t,n){r(2,arguments);var e=a(t),o=a(n),i=e.getTime()-o.getTime();return i<0?-1:i>0?1:i}function cn(t,n){r(2,arguments);var e,o=a(t),i=a(n),s=ln(o,i),l=Math.abs(function(t,n){r(2,arguments);var e=a(t),o=a(n);return 12*(e.getFullYear()-o.getFullYear())+(e.getMonth()-o.getMonth())}(o,i));if(l<1)e=0;else{1===o.getMonth()&&o.getDate()>27&&o.setDate(30),o.setMonth(o.getMonth()-s*l);var c=ln(o,i)===-s;(function(t){r(1,arguments);var n=a(t);return function(t){r(1,arguments);var n=a(t);return n.setHours(23,59,59,999),n}(n).getTime()===function(t){r(1,arguments);var n=a(t),e=n.getMonth();return n.setFullYear(n.getFullYear(),e+1,0),n.setHours(23,59,59,999),n}(n).getTime()})(a(t))&&1===l&&1===ln(t,i)&&(c=!1),e=s*(l-Number(c))}return 0===e?0:e}rn._withStripped=!0;var un={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(t){return t<0?Math.ceil(t):Math.floor(t)}},dn="trunc";function pn(t,n){if(null==t)throw new TypeError("assign requires that input parameter not be null or undefined");for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e]);return t}var fn=43200;function An(t,n,e){var o,i;r(2,arguments);var s=f(),l=null!==(o=null!==(i=null==e?void 0:e.locale)&&void 0!==i?i:s.locale)&&void 0!==o?o:Y;if(!l.formatDistance)throw new RangeError("locale must contain formatDistance property");var c=ln(t,n);if(isNaN(c))throw new RangeError("Invalid time value");var u,d,p=pn(pn({},e),{addSuffix:Boolean(null==e?void 0:e.addSuffix),comparison:c});c>0?(u=a(n),d=a(t)):(u=a(t),d=a(n));var A,h=function(t,n,e){r(2,arguments);var o,i=function(t,n){return r(2,arguments),a(t).getTime()-a(n).getTime()}(t,n)/1e3;return((o=null==e?void 0:e.roundingMethod)?un[o]:un[dn])(i)}(d,u),m=(I(d)-I(u))/1e3,g=Math.round((h-m)/60);if(g<2)return null!=e&&e.includeSeconds?h<5?l.formatDistance("lessThanXSeconds",5,p):h<10?l.formatDistance("lessThanXSeconds",10,p):h<20?l.formatDistance("lessThanXSeconds",20,p):h<40?l.formatDistance("halfAMinute",0,p):h<60?l.formatDistance("lessThanXMinutes",1,p):l.formatDistance("xMinutes",1,p):0===g?l.formatDistance("lessThanXMinutes",1,p):l.formatDistance("xMinutes",g,p);if(g<45)return l.formatDistance("xMinutes",g,p);if(g<90)return l.formatDistance("aboutXHours",1,p);if(g<1440){var v=Math.round(g/60);return l.formatDistance("aboutXHours",v,p)}if(g<2520)return l.formatDistance("xDays",1,p);if(g<fn){var b=Math.round(g/1440);return l.formatDistance("xDays",b,p)}if(g<86400)return A=Math.round(g/fn),l.formatDistance("aboutXMonths",A,p);if((A=cn(d,u))<12){var y=Math.round(g/fn);return l.formatDistance("xMonths",y,p)}var C=A%12,w=Math.floor(A/12);return C<3?l.formatDistance("aboutXYears",w,p):C<9?l.formatDistance("overXYears",w,p):l.formatDistance("almostXYears",w+1,p)}var hn=["critical","serious","caution","normal","standby","off"],mn={logger:self.console,WebSocket:self.WebSocket},gn={log(...t){this.enabled&&(t.push(Date.now()),mn.logger.log("[ActionCable]",...t))}};const vn=()=>(new Date).getTime(),bn=t=>(vn()-t)/1e3;class yn{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=vn(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),gn.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=vn(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),gn.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordPing(){this.pingedAt=vn()}recordConnect(){this.reconnectAttempts=0,this.recordPing(),delete this.disconnectedAt,gn.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=vn(),gn.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){const{staleThreshold:t,reconnectionBackoffRate:n}=this.constructor;return 1e3*t*Math.pow(1+n,Math.min(this.reconnectAttempts,10))*(1+(0===this.reconnectAttempts?1:n)*Math.random())}reconnectIfStale(){this.connectionIsStale()&&(gn.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${bn(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?gn.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${bn(this.disconnectedAt)} s`):(gn.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return bn(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&bn(this.disconnectedAt)<this.constructor.staleThreshold}visibilityDidChange(){"visible"===document.visibilityState&&setTimeout((()=>{!this.connectionIsStale()&&this.connection.isOpen()||(gn.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}}yn.staleThreshold=6,yn.reconnectionBackoffRate=.15;var Cn={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]};const{message_types:wn,protocols:kn}=Cn,xn=kn.slice(0,kn.length-1),_n=[].indexOf;class Sn{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new yn(this),this.disconnected=!0}send(t){return!!this.isOpen()&&(this.webSocket.send(JSON.stringify(t)),!0)}open(){return this.isActive()?(gn.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1):(gn.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${kn}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new mn.WebSocket(this.consumer.url,kn),this.installEventHandlers(),this.monitor.start(),!0)}close({allowReconnect:t}={allowReconnect:!0}){if(t||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if(gn.log(`Reopening WebSocket, current state is ${this.getState()}`),!this.isActive())return this.open();try{return this.close()}catch(t){gn.log("Failed to reopen WebSocket",t)}finally{gn.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}isProtocolSupported(){return _n.call(xn,this.getProtocol())>=0}isState(...t){return _n.call(t,this.getState())>=0}getState(){if(this.webSocket)for(let t in mn.WebSocket)if(mn.WebSocket[t]===this.webSocket.readyState)return t.toLowerCase();return null}installEventHandlers(){for(let t in this.events){const n=this.events[t].bind(this);this.webSocket[`on${t}`]=n}}uninstallEventHandlers(){for(let t in this.events)this.webSocket[`on${t}`]=function(){}}}Sn.reopenDelay=500,Sn.prototype.events={message(t){if(!this.isProtocolSupported())return;const{identifier:n,message:e,reason:o,reconnect:i,type:r}=JSON.parse(t.data);switch(r){case wn.welcome:return this.monitor.recordConnect(),this.subscriptions.reload();case wn.disconnect:return gn.log(`Disconnecting. Reason: ${o}`),this.close({allowReconnect:i});case wn.ping:return this.monitor.recordPing();case wn.confirmation:return this.subscriptions.confirmSubscription(n),this.subscriptions.notify(n,"connected");case wn.rejection:return this.subscriptions.reject(n);default:return this.subscriptions.notify(n,"received",e)}},open(){if(gn.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return gn.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(t){if(gn.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){gn.log("WebSocket onerror event")}};class En{constructor(t,n={},e){this.consumer=t,this.identifier=JSON.stringify(n),function(t,n){if(null!=n)for(let e in n){const o=n[e];t[e]=o}}(this,e)}perform(t,n={}){return n.action=t,this.send(n)}send(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}}class Tn{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){-1==this.pendingSubscriptions.indexOf(t)?(gn.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):gn.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){gn.log(`SubscriptionGuarantor forgetting ${t.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter((n=>n!==t))}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout((()=>{this.subscriptions&&"function"==typeof this.subscriptions.subscribe&&this.pendingSubscriptions.map((t=>{gn.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}}class Bn{constructor(t){this.consumer=t,this.guarantor=new Tn(this),this.subscriptions=[]}create(t,n){const e="object"==typeof t?t:{channel:t},o=new En(this.consumer,e,n);return this.add(o)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map((t=>(this.forget(t),this.notify(t,"rejected"),t)))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter((n=>n!==t)),t}findAll(t){return this.subscriptions.filter((n=>n.identifier===t))}reload(){return this.subscriptions.map((t=>this.subscribe(t)))}notifyAll(t,...n){return this.subscriptions.map((e=>this.notify(e,t,...n)))}notify(t,n,...e){let o;return o="string"==typeof t?this.findAll(t):[t],o.map((t=>"function"==typeof t[n]?t[n](...e):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){gn.log(`Subscription confirmed ${t}`),this.findAll(t).map((t=>this.guarantor.forget(t)))}sendCommand(t,n){const{identifier:e}=t;return this.consumer.send({command:n,identifier:e})}}class On{constructor(t){this._url=t,this.subscriptions=new Bn(this),this.connection=new Sn(this)}get url(){return function(t){if("function"==typeof t&&(t=t()),t&&!/^wss?:/i.test(t)){const n=document.createElement("a");return n.href=t,n.href=n.href,n.protocol=n.protocol.replace("http","ws"),n.href}return t}(this._url)}send(t){return this.connection.send(t)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}}function Nn(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}yn.staleThreshold=10;var Dn=function(){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/openc3-api/cable";it(this,t),this._cable=null,this._url=n}return st(t,[{key:"disconnect",value:function(){this._cable.disconnect()}},{key:"createSubscription",value:function(t,n){var e=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then((function(n){if(n&&OpenC3Auth.setTokens(),null==e._cable){var r=e._url+"?scope="+window.openc3Scope+"&authorization="+localStorage.openc3Token;e._cable=function(t=function(t){const n=document.head.querySelector("meta[name='action-cable-url']");if(n)return n.getAttribute("content")}()||Cn.default_mount_path){return new On(t)}(r)}return e._cable.subscriptions.create(function(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?Nn(Object(e),!0).forEach((function(n){(0,lt.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Nn(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}({channel:t},i),o)}))}},{key:"recordPing",value:function(){this._cable.connection.monitor.recordPing()}}]),t}();function In(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}function Rn(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?In(Object(e),!0).forEach((function(n){(0,lt.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):In(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}var Mn=100,$n={props:{size:{type:[String,Number],default:26}},data:function(){return{AstroStatusColors:Qt,cable:new Dn,subscription:null,notifications:[],showNotificationPane:!1,toastNotification:{},notificationDialog:!1,selectedNotification:{},settingsDialog:!1,showToast:!0}},computed:{badgeColor:function(){if(!this.unreadCount)return Qt.off;var t=this.unreadNotifications.map((function(t){return t.severity})).filter((function(t,n,e){return e.indexOf(t)===n}));return Qt[function(t){var n=function(t){return t.map((function(t){return hn.indexOf(t.toLowerCase())}))}(t),e=Math.min.apply(Math,sn(n));return hn[e]}(t)]},readNotifications:function(){return this.notifications.filter((function(t){return t.read})).sort((function(t,n){return n.time-t.time}))},unreadNotifications:function(){return this.notifications.filter((function(t){return!t.read})).sort((function(t,n){return n.time-t.time}))},unreadCount:function(){var t=this.unreadNotifications.length;return t>=Mn&&(t+="+"),t},notificationList:function(){var t=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t){return t.severity};return t.reduce((function(t,e){var o=n(e);return t[o]||(t[o]=[]),t[o].push(e),t}),{})}(this.unreadNotifications),n=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t){return t.severity};return t.sort((function(t,e){return hn.indexOf(n(t))-hn.indexOf(n(e))}))}(Object.keys(t),(function(t){return t})).flatMap((function(n){return[{header:n.charAt(0).toUpperCase()+n.slice(1)}].concat(sn(t[n]))}));return this.readNotifications.length&&(n=n.concat([{header:"Read"}].concat(sn(this.readNotifications)))),n}},watch:{showNotificationPane:function(t){t||(this.selectedNotification.title?(this.notificationDialog=!1,this.selectedNotification={}):this.markAllAsRead())},showToast:function(t){localStorage.notoast=!t}},created:function(){this.showToast="false"===localStorage.notoast,this.subscribe()},destroyed:function(){this.subscription&&this.subscription.unsubscribe(),this.cable.disconnect()},methods:{markAllAsRead:function(){this.notifications.forEach((function(t){t.read=!0,(!localStorage.lastReadNotification||localStorage.lastReadNotification<t.msg_id)&&(localStorage.lastReadNotification=t.msg_id)}))},clearNotifications:function(){this.markAllAsRead(),this.notifications=[],localStorage.notificationStreamOffset=localStorage.lastReadNotification,this.showNotificationPane=!1},toggleNotificationPane:function(){this.showNotificationPane=!this.showNotificationPane},toggleSettingsDialog:function(){this.settingsDialog=!this.settingsDialog},openDialog:function(t){t.read=!0,(!localStorage.lastReadNotification||localStorage.lastReadNotification<t.msg_id)&&(localStorage.lastReadNotification=t.msg_id),this.selectedNotification=t,this.notificationDialog=!0},navigate:function(t){window.open(t,"_blank")},subscribe:function(){var t=this;this.cable.createSubscription("NotificationsChannel",window.openc3Scope,{received:function(n){return t.received(n)}},{start_offset:localStorage.notificationStreamOffset||localStorage.lastReadNotification}).then((function(n){t.subscription=n}))},received:function(t){var n=this;this.cable.recordPing(),t.length>Mn&&t.splice(0,t.length-Mn);var e=!1;t.forEach((function(t){t.read=t.msg_id<=localStorage.lastReadNotification,t.severity=t.severity||"normal",t.read||!["critical","serious"].includes(t.severity)&&"critical"!==t.severity||(e=!0,n.toastNotification=t)})),this.showToast&&e&&this.$notify[this.toastNotification.severity](Rn(Rn({},this.toastNotification),{},{type:"notification",duration:"critical"===this.toastNotification.severity?null:5e3,saveToHistory:!1})),this.notifications.length+t.length>Mn&&this.notifications.splice(0,this.notifications.length+t.length-Mn),this.notifications=this.notifications.concat(t)}},filters:{shortDateTime:function(t){return t?function(t,n){return r(1,arguments),An(t,Date.now(),n)}(new Date(t/1e6),{addSuffix:!0}):""}}},zn=$n,Pn=u(1840),Un={};Un.styleTagTransform=St(),Un.setAttributes=wt(),Un.insert=yt().bind(null,"head"),Un.domAPI=vt(),Un.insertStyleElement=xt(),mt()(Pn.Z,Un),Pn.Z&&Pn.Z.locals&&Pn.Z.locals;var jn=(0,tt.Z)(zn,rn,[],!1,null,"eda8ca60",null);jn.options.__file="packages/openc3-tool-common/src/tools/base/components/Notifications.vue";var Fn=jn.exports,Ln=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("v-overlay",{staticClass:"overlay",attrs:{value:t.showUserMenu}}),t._v(" "),e("v-menu",{attrs:{transition:"slide-y-transition","offset-y":"","close-on-content-click":!1,"nudge-width":120,"nudge-bottom":20},scopedSlots:t._u([{key:"activator",fn:function(n){var o=n.on,i=n.attrs;return[e("v-btn",t._g(t._b({attrs:{icon:""}},"v-btn",i,!1),o),[e("v-icon",{attrs:{size:t.size}},[t._v(" mdi-account ")])],1)]}}]),model:{value:t.showUserMenu,callback:function(n){t.showUserMenu=n},expression:"showUserMenu"}},[t._v(" "),e("v-card",[e("v-card-text",{staticClass:"text-center"},[e("div",{staticStyle:{"text-align":"center",margin:"5px"}},[t._v(t._s(t.username))]),t._v(" "),t.authenticated?e("div",[e("v-btn",{attrs:{block:"",color:"primary"},on:{click:t.logout}},[t._v(" Logout ")])],1):e("div",[e("v-btn",{attrs:{block:"",color:"primary"},on:{click:t.login}},[t._v(" Login ")])],1),t._v(" "),e("div",[e("v-switch",{attrs:{label:"Colorblind mode"},model:{value:t.colorblindMode,callback:function(n){t.colorblindMode=n},expression:"colorblindMode"}})],1)])],1)],1)],1)};Ln._withStripped=!0;var Gn={props:{size:{type:[String,Number],default:26}},data:function(){var t=OpenC3Auth.user();return{showUserMenu:!1,authenticated:!!localStorage.openc3Token,username:t.name}},computed:{colorblindMode:{get:function(){return"true"===localStorage.colorblindMode},set:function(t){localStorage.colorblindMode=t}}},methods:{logout:function(){OpenC3Auth.logout()},login:function(){OpenC3Auth.login(location.href)}}},Hn=u(6793),Wn={};Wn.styleTagTransform=St(),Wn.setAttributes=wt(),Wn.insert=yt().bind(null,"head"),Wn.domAPI=vt(),Wn.insertStyleElement=xt(),mt()(Hn.Z,Wn),Hn.Z&&Hn.Z.locals&&Hn.Z.locals;var Yn=(0,tt.Z)(Gn,Ln,[],!1,null,"26b5fc12",null);Yn.options.__file="packages/openc3-tool-common/src/tools/base/components/UserMenu.vue";var qn={components:{ScopeSelector:zt,AlertHistory:on,Notifications:Fn,UserMenu:Yn.exports},props:{edition:{type:String,default:""}},data:function(){return{items:[],drawer:!0,appNav:{},logo:It,initiallyOpen:[]}},computed:{shownTools:function(){for(var t={},n=0,e=Object.keys(this.appNav);n<e.length;n++){var o=e[n];this.appNav[o].shown&&"Admin"!==this.appNav[o].category&&(t[o]=this.appNav[o])}return t},adminTools:function(){for(var t={},n=0,e=Object.keys(this.appNav);n<e.length;n++){var o=e[n];this.appNav[o].shown&&"Admin"===this.appNav[o].category&&(t[o]=this.appNav[o])}return t}},created:function(){var t=this;Dt.Z.get("/openc3-api/tools/all",{params:{scope:"DEFAULT"}}).then((function(n){t.appNav=n.data;for(var e=1,o=function(){if(l=r[i],t.appNav[l].shown){if(t.appNav[l].category&&"Admin"!==t.appNav[l].category){t.initiallyOpen.push(t.appNav[l].category);var n=t.items.filter((function(n){return n.name===t.appNav[l].category}));0===n.length?(t.items.push({id:e,name:t.appNav[l].category,children:[{id:e+1,name:t.appNav[l].name,icon:t.appNav[l].icon,url:t.appNav[l].url}]}),e++):n[0].children.push({id:e,name:t.appNav[l].name,icon:t.appNav[l].icon,url:t.appNav[l].url})}else t.appNav[l].category||t.items.push({id:e,name:t.appNav[l].name,icon:t.appNav[l].icon,url:t.appNav[l].url});if(e++,t.appNav[l].folder_name){var o=t.appNav[l].folder_name,a="@openc3/tool-"+o;(0,Rt.registerApplication)({name:a,app:function(){return System.import(a)},activeWhen:["/tools/"+o]})}}},i=0,r=Object.keys(t.appNav);i<r.length;i++)o();if((0,Rt.start)({urlRerouteOnly:!0}),"/"==window.location.pathname)for(var a=0,s=Object.keys(t.shownTools);a<s.length;a++){var l=s[a];if(t.appNav[l].shown){history.replaceState(null,"",t.appNav[l].url);break}}setInterval((function(){OpenC3Auth.updateToken(120).then((function(t){t&&OpenC3Auth.setTokens()}))}),6e4)}))},methods:{newTabUrl:function(t){var n=null;return(n="/"==t.url[0]&&"/"!=t.url[1]?new URL(t.url,window.location.origin):new URL(t.url)).searchParams.set("scope",window.openc3Scope),n.href}}},Zn=u(6509),Jn={};Jn.styleTagTransform=St(),Jn.setAttributes=wt(),Jn.insert=yt().bind(null,"head"),Jn.domAPI=vt(),Jn.insertStyleElement=xt(),mt()(Zn.Z,Jn),Zn.Z&&Zn.Z.locals&&Zn.Z.locals;var Xn=u(6716),Qn={};Qn.styleTagTransform=St(),Qn.setAttributes=wt(),Qn.insert=yt().bind(null,"head"),Qn.domAPI=vt(),Qn.insertStyleElement=xt(),mt()(Xn.Z,Qn),Xn.Z&&Xn.Z.locals&&Xn.Z.locals;var Vn=(0,tt.Z)(qn,Nt,[],!1,null,"00ae1763",null);Vn.options.__file="packages/openc3-tool-common/src/tools/base/AppNav.vue";var Kn=Vn.exports,te=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("v-dialog",{attrs:{width:"500"},model:{value:t.dialog,callback:function(n){t.dialog=n},expression:"dialog"}},[e("v-card",[e("v-card-title",[t._v(" Clock out of sync ")]),t._v(" "),e("v-card-text",[t._v("\n We've detected that your clock is approximately\n "+t._s(Math.abs(t.approximateDiscrepancySec))+" seconds\n "+t._s(t.approximateDiscrepancySec>0?"behind":"ahead of")+" server time.\n This can cause issues and might have unknown side effects.\n "),e("v-checkbox",{attrs:{label:"Don't show this again"},model:{value:t.suppress,callback:function(n){t.suppress=n},expression:"suppress"}})],1),t._v(" "),e("v-divider"),t._v(" "),e("v-card-actions",[e("v-btn",{attrs:{color:"primary",text:""},on:{click:t.dismiss}},[t._v(" Dismiss ")])],1)],1)],1)};te._withStripped=!0;var ne=u(4206),ee=u.n(ne),oe={data:function(){return{dismissed:!1,suppress:!1,discrepancy:0}},created:function(){var t=this;this.suppress="true"===localStorage.suppresswarning__clock_out_of_sync_with_server,this.suppress||ee().get("/openc3-api/time").then((function(n){t.discrepancy=n.data.now_nsec/1e6-Date.now()})).catch((function(n){t.dismissed=!0}))},methods:{dismiss:function(){localStorage.suppresswarning__clock_out_of_sync_with_server=this.suppress,this.dismissed=!0}},computed:{approximateDiscrepancySec:function(){return(this.discrepancy/1e3).toFixed()},dialog:function(){return!this.dismissed&&Math.abs(this.discrepancy)>=3e3}}},ie=(0,tt.Z)(oe,te,[],!1,null,null,null);ie.options.__file="packages/openc3-tool-common/src/tools/base/components/TimeCheck.vue";var re=ie.exports,ae={data:function(){return{api:null,classification:{text:"",fontColor:"white",backgroundColor:"red",topHeight:0,bottomHeight:0}}},computed:{classificationStyles:function(){return['--classification-text:"'.concat(this.classification.text,'";'),"--classification-font-color:".concat(this.classification.fontColor,";"),"--classification-background-color:".concat(this.classification.backgroundColor,";"),"--classification-height-top:".concat(this.classification.topHeight,"px;"),"--classification-height-bottom:".concat(this.classification.bottomHeight,"px;")].join("")}},created:function(){this.api=new pt,this.load()},methods:{load:function(){var t=this;this.api.get_setting("classification_banner").then((function(n){n&&(t.classification=JSON.parse(n))})).catch((function(t){}))}}},se=u(7650),le={};le.styleTagTransform=St(),le.setAttributes=wt(),le.insert=yt().bind(null,"head"),le.domAPI=vt(),le.insertStyleElement=xt(),mt()(se.Z,le),se.Z&&se.Z.locals&&se.Z.locals;var ce=(0,tt.Z)(ae,void 0,void 0,!1,null,null,null);ce.options.__file="packages/openc3-tool-common/src/tools/base/components/ClassificationBanners.vue";var ue=ce.exports;function de(){var t="/openc3/plugins/openc3-tool-base/src/App.vue",n=new Function("return this")(),e="__coverage__",o=n[e]||(n[e]={});o[t]&&"fa8bcfd5c2e5371a527d487a92b17e6567b8f15b"===o[t].hash||(o[t]={path:"/openc3/plugins/openc3-tool-base/src/App.vue",statementMap:{},fnMap:{},branchMap:{},s:{},f:{},b:{},inputSourceMap:{version:3,sources:["App.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"App.vue",sourceRoot:"src",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n--\x3e\n\n<template>\n <v-app :style="classificationStyles">\n <app-nav class="d-print-none" edition="COSMOS" />\n\n \x3c!-- Sizes your content based upon application components --\x3e\n <v-main>\n <v-container fluid>\n <div id="openc3-tool"></div>\n <div><router-view /></div>\n </v-container>\n </v-main>\n <app-footer app class="d-print-none" edition="COSMOS" license="AGPLv3" />\n <time-check />\n </v-app>\n</template>\n\n<script>\nimport AppFooter from \'../../packages/openc3-tool-common/src/tools/base/AppFooter\'\nimport AppNav from \'../../packages/openc3-tool-common/src/tools/base/AppNav\'\nimport TimeCheck from \'../../packages/openc3-tool-common/src/tools/base/components/TimeCheck\'\nimport ClassificationBanners from \'../../packages/openc3-tool-common/src/tools/base/components/ClassificationBanners\'\nexport default {\n components: {\n AppFooter,\n AppNav,\n TimeCheck,\n },\n mixins: [ClassificationBanners],\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"fa8bcfd5c2e5371a527d487a92b17e6567b8f15b"});var i=o[t];return de=function(){return i},i}de();var pe={components:{AppFooter:Ot,AppNav:Kn,TimeCheck:re},mixins:[ue]},fe=(0,tt.Z)(pe,n,[],!1,null,null,null);fe.options.__file="src/App.vue";var Ae=fe.exports,he=u(4688);function me(){var t="/openc3/plugins/openc3-tool-base/src/router.js",n=new Function("return this")(),e="__coverage__",o=n[e]||(n[e]={});o[t]&&"e101526ffb6011351bc3361af83ec7eb3ebf07b8"===o[t].hash||(o[t]={path:"/openc3/plugins/openc3-tool-base/src/router.js",statementMap:{0:{start:{line:26,column:0},end:{line:26,column:15}},1:{start:{line:35,column:8},end:{line:37,column:9}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:34,column:17},end:{line:34,column:18}},loc:{start:{line:35,column:8},end:{line:37,column:9}},line:35}},branchMap:{},s:{0:0,1:0},f:{0:0},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"e101526ffb6011351bc3361af83ec7eb3ebf07b8"});var i=o[t];return me=function(){return i},i}me(),me().s[0]++,t.default.use(he.default);var ge=new he.default({mode:"history",base:void 0,routes:[{path:"/login",component:function(){return me().f[0]++,me().s[1]++,u.e(543).then(u.bind(u,1543))}}]}),ve=u(9191);t.default.use(ve.default),window.hasOwnProperty("OpenC3Store")||(window.OpenC3Store=new ve.default.Store({state:{notifyHistory:[]},getters:{},mutations:{notifyAddHistory:function(t,n){t.notifyHistory.length>=100&&(t.notifyHistory.length=99),t.notifyHistory.unshift(n)},notifyClearHistory:function(t){t.notifyHistory=[]}},modules:{}}));var be=window.OpenC3Store;function ye(t){return ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ye(t)}function Ce(t,n,e){return(n=function(t){var n=function(t,n){if("object"!==ye(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var o=e.call(t,"string");if("object"!==ye(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===ye(n)?n:String(n)}(n))in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}u(7861);var we=u(9731);function ke(){var t="/openc3/plugins/openc3-tool-base/src/plugins/vuetify.js",n=new Function("return this")(),e="__coverage__",o=n[e]||(n[e]={});o[t]&&"1e74846ce649fd5e77c4a4792c7d1620be397d94"===o[t].hash||(o[t]={path:"/openc3/plugins/openc3-tool-base/src/plugins/vuetify.js",statementMap:{0:{start:{line:24,column:0},end:{line:24,column:16}}},fnMap:{},branchMap:{},s:{0:0},f:{},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"1e74846ce649fd5e77c4a4792c7d1620be397d94"});var i=o[t];return ke=function(){return i},i}function xe(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}ke(),ke().s[0]++,t.default.use(we.default);var _e=new we.default({theme:{dark:!0,options:{customProperties:!0},themes:{dark:{primary:"#005a8f",secondary:"#4dacff",tertiary:"#283f58"},light:{primary:"#cce6ff",secondary:"#cce6ff"}}},icons:{values:function(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?xe(Object(e),!0).forEach((function(n){Ce(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):xe(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}({},Xt)}}),Se=function(){var t=this,n=t.$createElement;return(t._self._c||n)("div",{style:t.iconStyle})};Se._withStripped=!0;var Ee=u.p+"be1eae38c4af82057c4d.png",Te=(u.p,{props:{status:{type:String,required:!0,validator:function(t){return Vt.includes(t)}},large:{type:Boolean},small:{type:Boolean},scale:{type:Number}},computed:{icons:function(){return Ee},scaleFactor:function(){return this.scale?this.scale:this.large?1:this.small?.3:.5},iconStyle:function(){var t=192*this.scaleFactor,n=32*this.scaleFactor,e=32*this.scaleFactor,o=Vt.indexOf(this.status);return["background-image: url(".concat(this.icons,");"),"background-position-x: -".concat(o*e,"px;"),"background-size: ".concat(t,"px ").concat(n,"px;"),"height: ".concat(e,"px;"),"width: ".concat(e,"px;")].join("")}}}),Be=(0,tt.Z)(Te,Se,[],!1,null,null,null);Be.options.__file="packages/openc3-tool-common/src/components/icons/AstroStatusIndicator.vue";var Oe=Be.exports;function Ne(){var t="/openc3/plugins/openc3-tool-base/src/openc3-tool-base.js",n=new Function("return this")(),e="__coverage__",o=n[e]||(n[e]={});o[t]&&"948bc4bd7769e8307c1a0a84e62fb1c3692a0fbd"===o[t].hash||(o[t]={path:"/openc3/plugins/openc3-tool-base/src/openc3-tool-base.js",statementMap:{0:{start:{line:5,column:0},end:{line:5,column:32}},1:{start:{line:12,column:0},end:{line:12,column:61}},2:{start:{line:14,column:16},end:{line:14,column:43}},3:{start:{line:15,column:0},end:{line:26,column:2}},4:{start:{line:18,column:2},end:{line:18,column:32}},5:{start:{line:20,column:2},end:{line:25,column:27}},6:{start:{line:24,column:19},end:{line:24,column:25}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:15,column:30},end:{line:15,column:31}},loc:{start:{line:15,column:36},end:{line:26,column:1}},line:15},1:{name:"(anonymous_1)",decl:{start:{line:24,column:12},end:{line:24,column:13}},loc:{start:{line:24,column:19},end:{line:24,column:25}},line:24}},branchMap:{},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0},f:{0:0,1:0},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"948bc4bd7769e8307c1a0a84e62fb1c3692a0fbd"});var i=o[t];return Ne=function(){return i},i}Ne(),Ne().s[0]++,t.default.config.productionTip=!1,Ne().s[1]++,t.default.component("astro-status-indicator",Oe);var De=(Ne().s[2]++,OpenC3Auth.getInitOptions());Ne().s[3]++,OpenC3Auth.init(De).then((function(){Ne().f[0]++,Ne().s[4]++,window.openc3Scope="DEFAULT",Ne().s[5]++,new t.default({router:ge,store:be,vuetify:_e,render:function(t){return Ne().f[1]++,Ne().s[6]++,t(Ae)}}).$mount("#openc3-main")}))}(),d}())}}}));
1
+ System.register(["vue","single-spa","vue-router","vuex","vuetify"],(function(t,n){var e={},o={},i={},r={},a={};return{setters:[function(t){e.default=t.default},function(t){o.registerApplication=t.registerApplication,o.start=t.start},function(t){i.default=t.default},function(t){r.default=t.default},function(t){a.default=t.default}],execute:function(){t(function(){var t,s,l={4206:function(t,n,e){t.exports=e(8057)},4387:function(t,n,e){"use strict";var o=e(7485),i=e(4570),r=e(2940),a=e(581),s=e(574),l=e(3845),c=e(8338),u=e(4832),d=e(7354),p=e(8870),f=e(4906);t.exports=function(t){return new Promise((function(n,e){var A,h=t.data,m=t.headers,g=t.responseType;function v(){t.cancelToken&&t.cancelToken.unsubscribe(A),t.signal&&t.signal.removeEventListener("abort",A)}o.isFormData(h)&&o.isStandardBrowserEnv()&&delete m["Content-Type"];var b=new XMLHttpRequest;if(t.auth){var y=t.auth.username||"",C=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";m.Authorization="Basic "+btoa(y+":"+C)}var w=s(t.baseURL,t.url);function k(){if(b){var o="getAllResponseHeaders"in b?l(b.getAllResponseHeaders()):null,r={data:g&&"text"!==g&&"json"!==g?b.response:b.responseText,status:b.status,statusText:b.statusText,headers:o,config:t,request:b};i((function(t){n(t),v()}),(function(t){e(t),v()}),r),b=null}}if(b.open(t.method.toUpperCase(),a(w,t.params,t.paramsSerializer),!0),b.timeout=t.timeout,"onloadend"in b?b.onloadend=k:b.onreadystatechange=function(){b&&4===b.readyState&&(0!==b.status||b.responseURL&&0===b.responseURL.indexOf("file:"))&&setTimeout(k)},b.onabort=function(){b&&(e(new d("Request aborted",d.ECONNABORTED,t,b)),b=null)},b.onerror=function(){e(new d("Network Error",d.ERR_NETWORK,t,b,b)),b=null},b.ontimeout=function(){var n=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",o=t.transitional||u;t.timeoutErrorMessage&&(n=t.timeoutErrorMessage),e(new d(n,o.clarifyTimeoutError?d.ETIMEDOUT:d.ECONNABORTED,t,b)),b=null},o.isStandardBrowserEnv()){var x=(t.withCredentials||c(w))&&t.xsrfCookieName?r.read(t.xsrfCookieName):void 0;x&&(m[t.xsrfHeaderName]=x)}"setRequestHeader"in b&&o.forEach(m,(function(t,n){void 0===h&&"content-type"===n.toLowerCase()?delete m[n]:b.setRequestHeader(n,t)})),o.isUndefined(t.withCredentials)||(b.withCredentials=!!t.withCredentials),g&&"json"!==g&&(b.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&b.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&b.upload&&b.upload.addEventListener("progress",t.onUploadProgress),(t.cancelToken||t.signal)&&(A=function(t){b&&(e(!t||t&&t.type?new p:t),b.abort(),b=null)},t.cancelToken&&t.cancelToken.subscribe(A),t.signal&&(t.signal.aborted?A():t.signal.addEventListener("abort",A))),h||(h=null);var _=f(w);_&&-1===["http","https","file"].indexOf(_)?e(new d("Unsupported protocol "+_+":",d.ERR_BAD_REQUEST,t)):b.send(h)}))}},8057:function(t,n,e){"use strict";var o=e(7485),i=e(875),r=e(5029),a=e(4941),s=function t(n){var e=new r(n),s=i(r.prototype.request,e);return o.extend(s,r.prototype,e),o.extend(s,e),s.create=function(e){return t(a(n,e))},s}(e(8396));s.Axios=r,s.CanceledError=e(8870),s.CancelToken=e(4603),s.isCancel=e(1475),s.VERSION=e(3345).version,s.toFormData=e(1020),s.AxiosError=e(7354),s.Cancel=s.CanceledError,s.all=function(t){return Promise.all(t)},s.spread=e(5739),s.isAxiosError=e(5835),t.exports=s,t.exports.default=s},4603:function(t,n,e){"use strict";var o=e(8870);function i(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var n;this.promise=new Promise((function(t){n=t}));var e=this;this.promise.then((function(t){if(e._listeners){var n,o=e._listeners.length;for(n=0;n<o;n++)e._listeners[n](t);e._listeners=null}})),this.promise.then=function(t){var n,o=new Promise((function(t){e.subscribe(t),n=t})).then(t);return o.cancel=function(){e.unsubscribe(n)},o},t((function(t){e.reason||(e.reason=new o(t),n(e.reason))}))}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.prototype.subscribe=function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]},i.prototype.unsubscribe=function(t){if(this._listeners){var n=this._listeners.indexOf(t);-1!==n&&this._listeners.splice(n,1)}},i.source=function(){var t;return{token:new i((function(n){t=n})),cancel:t}},t.exports=i},8870:function(t,n,e){"use strict";var o=e(7354);function i(t){o.call(this,null==t?"canceled":t,o.ERR_CANCELED),this.name="CanceledError"}e(7485).inherits(i,o,{__CANCEL__:!0}),t.exports=i},1475:function(t){"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},5029:function(t,n,e){"use strict";var o=e(7485),i=e(581),r=e(8096),a=e(5009),s=e(4941),l=e(574),c=e(6144),u=c.validators;function d(t){this.defaults=t,this.interceptors={request:new r,response:new r}}d.prototype.request=function(t,n){"string"==typeof t?(n=n||{}).url=t:n=t||{},(n=s(this.defaults,n)).method?n.method=n.method.toLowerCase():this.defaults.method?n.method=this.defaults.method.toLowerCase():n.method="get";var e=n.transitional;void 0!==e&&c.assertOptions(e,{silentJSONParsing:u.transitional(u.boolean),forcedJSONParsing:u.transitional(u.boolean),clarifyTimeoutError:u.transitional(u.boolean)},!1);var o=[],i=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(n)||(i=i&&t.synchronous,o.unshift(t.fulfilled,t.rejected))}));var r,l=[];if(this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)})),!i){var d=[a,void 0];for(Array.prototype.unshift.apply(d,o),d=d.concat(l),r=Promise.resolve(n);d.length;)r=r.then(d.shift(),d.shift());return r}for(var p=n;o.length;){var f=o.shift(),A=o.shift();try{p=f(p)}catch(t){A(t);break}}try{r=a(p)}catch(t){return Promise.reject(t)}for(;l.length;)r=r.then(l.shift(),l.shift());return r},d.prototype.getUri=function(t){t=s(this.defaults,t);var n=l(t.baseURL,t.url);return i(n,t.params,t.paramsSerializer)},o.forEach(["delete","get","head","options"],(function(t){d.prototype[t]=function(n,e){return this.request(s(e||{},{method:t,url:n,data:(e||{}).data}))}})),o.forEach(["post","put","patch"],(function(t){function n(n){return function(e,o,i){return this.request(s(i||{},{method:t,headers:n?{"Content-Type":"multipart/form-data"}:{},url:e,data:o}))}}d.prototype[t]=n(),d.prototype[t+"Form"]=n(!0)})),t.exports=d},7354:function(t,n,e){"use strict";var o=e(7485);function i(t,n,e,o,i){Error.call(this),this.message=t,this.name="AxiosError",n&&(this.code=n),e&&(this.config=e),o&&(this.request=o),i&&(this.response=i)}o.inherits(i,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var r=i.prototype,a={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED"].forEach((function(t){a[t]={value:t}})),Object.defineProperties(i,a),Object.defineProperty(r,"isAxiosError",{value:!0}),i.from=function(t,n,e,a,s,l){var c=Object.create(r);return o.toFlatObject(t,c,(function(t){return t!==Error.prototype})),i.call(c,t.message,n,e,a,s),c.name=t.name,l&&Object.assign(c,l),c},t.exports=i},8096:function(t,n,e){"use strict";var o=e(7485);function i(){this.handlers=[]}i.prototype.use=function(t,n,e){return this.handlers.push({fulfilled:t,rejected:n,synchronous:!!e&&e.synchronous,runWhen:e?e.runWhen:null}),this.handlers.length-1},i.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},i.prototype.forEach=function(t){o.forEach(this.handlers,(function(n){null!==n&&t(n)}))},t.exports=i},574:function(t,n,e){"use strict";var o=e(2642),i=e(2288);t.exports=function(t,n){return t&&!o(n)?i(t,n):n}},5009:function(t,n,e){"use strict";var o=e(7485),i=e(9212),r=e(1475),a=e(8396),s=e(8870);function l(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new s}t.exports=function(t){return l(t),t.headers=t.headers||{},t.data=i.call(t,t.data,t.headers,t.transformRequest),t.headers=o.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),o.forEach(["delete","get","head","post","put","patch","common"],(function(n){delete t.headers[n]})),(t.adapter||a.adapter)(t).then((function(n){return l(t),n.data=i.call(t,n.data,n.headers,t.transformResponse),n}),(function(n){return r(n)||(l(t),n&&n.response&&(n.response.data=i.call(t,n.response.data,n.response.headers,t.transformResponse))),Promise.reject(n)}))}},4941:function(t,n,e){"use strict";var o=e(7485);t.exports=function(t,n){n=n||{};var e={};function i(t,n){return o.isPlainObject(t)&&o.isPlainObject(n)?o.merge(t,n):o.isPlainObject(n)?o.merge({},n):o.isArray(n)?n.slice():n}function r(e){return o.isUndefined(n[e])?o.isUndefined(t[e])?void 0:i(void 0,t[e]):i(t[e],n[e])}function a(t){if(!o.isUndefined(n[t]))return i(void 0,n[t])}function s(e){return o.isUndefined(n[e])?o.isUndefined(t[e])?void 0:i(void 0,t[e]):i(void 0,n[e])}function l(e){return e in n?i(t[e],n[e]):e in t?i(void 0,t[e]):void 0}var c={url:a,method:a,data:a,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:l};return o.forEach(Object.keys(t).concat(Object.keys(n)),(function(t){var n=c[t]||r,i=n(t);o.isUndefined(i)&&n!==l||(e[t]=i)})),e}},4570:function(t,n,e){"use strict";var o=e(7354);t.exports=function(t,n,e){var i=e.config.validateStatus;e.status&&i&&!i(e.status)?n(new o("Request failed with status code "+e.status,[o.ERR_BAD_REQUEST,o.ERR_BAD_RESPONSE][Math.floor(e.status/100)-4],e.config,e.request,e)):t(e)}},9212:function(t,n,e){"use strict";var o=e(7485),i=e(8396);t.exports=function(t,n,e){var r=this||i;return o.forEach(e,(function(e){t=e.call(r,t,n)})),t}},8396:function(t,n,e){"use strict";var o=e(7485),i=e(1446),r=e(7354),a=e(4832),s=e(1020),l={"Content-Type":"application/x-www-form-urlencoded"};function c(t,n){!o.isUndefined(t)&&o.isUndefined(t["Content-Type"])&&(t["Content-Type"]=n)}var u,d={transitional:a,adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(u=e(4387)),u),transformRequest:[function(t,n){if(i(n,"Accept"),i(n,"Content-Type"),o.isFormData(t)||o.isArrayBuffer(t)||o.isBuffer(t)||o.isStream(t)||o.isFile(t)||o.isBlob(t))return t;if(o.isArrayBufferView(t))return t.buffer;if(o.isURLSearchParams(t))return c(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString();var e,r=o.isObject(t),a=n&&n["Content-Type"];if((e=o.isFileList(t))||r&&"multipart/form-data"===a){var l=this.env&&this.env.FormData;return s(e?{"files[]":t}:t,l&&new l)}return r||"application/json"===a?(c(n,"application/json"),function(t,n,e){if(o.isString(t))try{return(0,JSON.parse)(t),o.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var n=this.transitional||d.transitional,e=n&&n.silentJSONParsing,i=n&&n.forcedJSONParsing,a=!e&&"json"===this.responseType;if(a||i&&o.isString(t)&&t.length)try{return JSON.parse(t)}catch(t){if(a){if("SyntaxError"===t.name)throw r.from(t,r.ERR_BAD_RESPONSE,this,null,this.response);throw t}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:e(8750)},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};o.forEach(["delete","get","head"],(function(t){d.headers[t]={}})),o.forEach(["post","put","patch"],(function(t){d.headers[t]=o.merge(l)})),t.exports=d},4832:function(t){"use strict";t.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}},3345:function(t){t.exports={version:"0.27.2"}},875:function(t){"use strict";t.exports=function(t,n){return function(){for(var e=new Array(arguments.length),o=0;o<e.length;o++)e[o]=arguments[o];return t.apply(n,e)}}},581:function(t,n,e){"use strict";var o=e(7485);function i(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,n,e){if(!n)return t;var r;if(e)r=e(n);else if(o.isURLSearchParams(n))r=n.toString();else{var a=[];o.forEach(n,(function(t,n){null!=t&&(o.isArray(t)?n+="[]":t=[t],o.forEach(t,(function(t){o.isDate(t)?t=t.toISOString():o.isObject(t)&&(t=JSON.stringify(t)),a.push(i(n)+"="+i(t))})))})),r=a.join("&")}if(r){var s=t.indexOf("#");-1!==s&&(t=t.slice(0,s)),t+=(-1===t.indexOf("?")?"?":"&")+r}return t}},2288:function(t){"use strict";t.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}},2940:function(t,n,e){"use strict";var o=e(7485);t.exports=o.isStandardBrowserEnv()?{write:function(t,n,e,i,r,a){var s=[];s.push(t+"="+encodeURIComponent(n)),o.isNumber(e)&&s.push("expires="+new Date(e).toGMTString()),o.isString(i)&&s.push("path="+i),o.isString(r)&&s.push("domain="+r),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(t){var n=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},2642:function(t){"use strict";t.exports=function(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}},5835:function(t,n,e){"use strict";var o=e(7485);t.exports=function(t){return o.isObject(t)&&!0===t.isAxiosError}},8338:function(t,n,e){"use strict";var o=e(7485);t.exports=o.isStandardBrowserEnv()?function(){var t,n=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");function i(t){var o=t;return n&&(e.setAttribute("href",o),o=e.href),e.setAttribute("href",o),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return t=i(window.location.href),function(n){var e=o.isString(n)?i(n):n;return e.protocol===t.protocol&&e.host===t.host}}():function(){return!0}},1446:function(t,n,e){"use strict";var o=e(7485);t.exports=function(t,n){o.forEach(t,(function(e,o){o!==n&&o.toUpperCase()===n.toUpperCase()&&(t[n]=e,delete t[o])}))}},8750:function(t){t.exports=null},3845:function(t,n,e){"use strict";var o=e(7485),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var n,e,r,a={};return t?(o.forEach(t.split("\n"),(function(t){if(r=t.indexOf(":"),n=o.trim(t.substr(0,r)).toLowerCase(),e=o.trim(t.substr(r+1)),n){if(a[n]&&i.indexOf(n)>=0)return;a[n]="set-cookie"===n?(a[n]?a[n]:[]).concat([e]):a[n]?a[n]+", "+e:e}})),a):a}},4906:function(t){"use strict";t.exports=function(t){var n=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return n&&n[1]||""}},5739:function(t){"use strict";t.exports=function(t){return function(n){return t.apply(null,n)}}},1020:function(t,n,e){"use strict";var o=e(7485);t.exports=function(t,n){n=n||new FormData;var e=[];function i(t){return null===t?"":o.isDate(t)?t.toISOString():o.isArrayBuffer(t)||o.isTypedArray(t)?"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}return function t(r,a){if(o.isPlainObject(r)||o.isArray(r)){if(-1!==e.indexOf(r))throw Error("Circular reference detected in "+a);e.push(r),o.forEach(r,(function(e,r){if(!o.isUndefined(e)){var s,l=a?a+"."+r:r;if(e&&!a&&"object"==typeof e)if(o.endsWith(r,"{}"))e=JSON.stringify(e);else if(o.endsWith(r,"[]")&&(s=o.toArray(e)))return void s.forEach((function(t){!o.isUndefined(t)&&n.append(l,i(t))}));t(e,l)}})),e.pop()}else n.append(a,i(r))}(t),n}},6144:function(t,n,e){"use strict";var o=e(3345).version,i=e(7354),r={};["object","boolean","number","function","string","symbol"].forEach((function(t,n){r[t]=function(e){return typeof e===t||"a"+(n<1?"n ":" ")+t}}));var a={};r.transitional=function(t,n,e){function r(t,n){return"[Axios v"+o+"] Transitional option '"+t+"'"+n+(e?". "+e:"")}return function(e,o,s){if(!1===t)throw new i(r(o," has been removed"+(n?" in "+n:"")),i.ERR_DEPRECATED);return n&&!a[o]&&(a[o]=!0,console.warn(r(o," has been deprecated since v"+n+" and will be removed in the near future"))),!t||t(e,o,s)}},t.exports={assertOptions:function(t,n,e){if("object"!=typeof t)throw new i("options must be an object",i.ERR_BAD_OPTION_VALUE);for(var o=Object.keys(t),r=o.length;r-- >0;){var a=o[r],s=n[a];if(s){var l=t[a],c=void 0===l||s(l,a,t);if(!0!==c)throw new i("option "+a+" must be "+c,i.ERR_BAD_OPTION_VALUE)}else if(!0!==e)throw new i("Unknown option "+a,i.ERR_BAD_OPTION)}},validators:r}},7485:function(t,n,e){"use strict";var o,i=e(875),r=Object.prototype.toString,a=(o=Object.create(null),function(t){var n=r.call(t);return o[n]||(o[n]=n.slice(8,-1).toLowerCase())});function s(t){return t=t.toLowerCase(),function(n){return a(n)===t}}function l(t){return Array.isArray(t)}function c(t){return void 0===t}var u=s("ArrayBuffer");function d(t){return null!==t&&"object"==typeof t}function p(t){if("object"!==a(t))return!1;var n=Object.getPrototypeOf(t);return null===n||n===Object.prototype}var f=s("Date"),A=s("File"),h=s("Blob"),m=s("FileList");function g(t){return"[object Function]"===r.call(t)}var v=s("URLSearchParams");function b(t,n){if(null!=t)if("object"!=typeof t&&(t=[t]),l(t))for(var e=0,o=t.length;e<o;e++)n.call(null,t[e],e,t);else for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&n.call(null,t[i],i,t)}var y,C=(y="undefined"!=typeof Uint8Array&&Object.getPrototypeOf(Uint8Array),function(t){return y&&t instanceof y});t.exports={isArray:l,isArrayBuffer:u,isBuffer:function(t){return null!==t&&!c(t)&&null!==t.constructor&&!c(t.constructor)&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)},isFormData:function(t){var n="[object FormData]";return t&&("function"==typeof FormData&&t instanceof FormData||r.call(t)===n||g(t.toString)&&t.toString()===n)},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&u(t.buffer)},isString:function(t){return"string"==typeof t},isNumber:function(t){return"number"==typeof t},isObject:d,isPlainObject:p,isUndefined:c,isDate:f,isFile:A,isBlob:h,isFunction:g,isStream:function(t){return d(t)&&g(t.pipe)},isURLSearchParams:v,isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:b,merge:function t(){var n={};function e(e,o){p(n[o])&&p(e)?n[o]=t(n[o],e):p(e)?n[o]=t({},e):l(e)?n[o]=e.slice():n[o]=e}for(var o=0,i=arguments.length;o<i;o++)b(arguments[o],e);return n},extend:function(t,n,e){return b(n,(function(n,o){t[o]=e&&"function"==typeof n?i(n,e):n})),t},trim:function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,n,e,o){t.prototype=Object.create(n.prototype,o),t.prototype.constructor=t,e&&Object.assign(t.prototype,e)},toFlatObject:function(t,n,e){var o,i,r,a={};n=n||{};do{for(i=(o=Object.getOwnPropertyNames(t)).length;i-- >0;)a[r=o[i]]||(n[r]=t[r],a[r]=!0);t=Object.getPrototypeOf(t)}while(t&&(!e||e(t,n))&&t!==Object.prototype);return n},kindOf:a,kindOfTest:s,endsWith:function(t,n,e){t=String(t),(void 0===e||e>t.length)&&(e=t.length),e-=n.length;var o=t.indexOf(n,e);return-1!==o&&o===e},toArray:function(t){if(!t)return null;var n=t.length;if(c(n))return null;for(var e=new Array(n);n-- >0;)e[n]=t[n];return e},isTypedArray:C,isFileList:m}},9554:function(t,n,e){"use strict";var o=e(4649),i=e(7791),r=e(6966);function a(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}function s(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?a(Object(e),!0).forEach((function(n){(0,o.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):a(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}var l=function(){var t=(0,i.Z)(regeneratorRuntime.mark((function t(n,e){var o,i,a,s,l,c,u,d,p,f=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=(o=f.length>2&&void 0!==f[2]?f[2]:{}).data,a=o.params,s=void 0===a?{}:a,l=o.headers,c=o.noAuth,u=void 0!==c&&c,d=o.noScope,p=void 0!==d&&d,u){t.next=13;break}return t.prev=2,t.next=5,OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity);case 5:t.sent&&OpenC3Auth.setTokens(),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(2),OpenC3Auth.login();case 12:l.Authorization=localStorage.openc3Token;case 13:return p||s.scope||(s.scope=window.openc3Scope),t.abrupt("return",(0,r.Z)({method:n,url:e,data:i,params:s,headers:l}));case 15:case"end":return t.stop()}}),t,null,[[2,9]])})));return function(n,e){return t.apply(this,arguments)}}(),c={Accept:"application/json"},u=s(s({},c),{},{"Content-Type":"application/json"});n.Z={get:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=n.params,o=n.headers,i=void 0===o?c:o,r=n.noScope,a=n.noAuth;return l("get",t,{params:e,headers:i,noScope:r,noAuth:a})},put:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=n.data,o=n.params,i=n.headers,r=void 0===i?u:i,a=n.noScope,s=n.noAuth;return l("put",t,{data:e,params:o,headers:r,noScope:a,noAuth:s})},post:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=n.data,o=n.params,i=n.headers,r=void 0===i?u:i,a=n.noScope,s=n.noAuth;return l("post",t,{data:e,params:o,headers:r,noScope:a,noAuth:s})},delete:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=n.params,o=n.headers,i=void 0===o?c:o,r=n.noScope,a=n.noAuth;return l("delete",t,{params:e,headers:i,noScope:r,noAuth:a})}}},6966:function(t,n,e){"use strict";var o=e(4206),i=e.n(o),r=new(e(4091).default),a=i().create({baseURL:location.origin,timeout:6e4,params:{}});a.interceptors.response.use((function(t){return t}),(function(t){if(t.response){var n,e,o,i,a,s,l,c,u,d;if(401===t.response.status&&OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity,!0).then((function(t){t&&OpenC3Auth.setTokens()})),t.response.headers["ignore-errors"]&&t.response.headers["ignore-errors"].includes(t.response.status.toString()))return Promise.reject(t);var p="HTTP ".concat(t.response.status," - ");if(null!==(n=t.response)&&void 0!==n&&n.statusText&&(p+="".concat(t.response.statusText," ")),null!==(e=t.response)&&void 0!==e&&null!==(o=e.config)&&void 0!==o&&o.data&&(p+="".concat(t.response.config.data," ")),null!==(i=t.response)&&void 0!==i&&null!==(a=i.data)&&void 0!==a&&a.message)p+="".concat(t.response.data.message);else if(null!==(s=t.response)&&void 0!==s&&null!==(l=s.data)&&void 0!==l&&l.exception)p+="".concat(t.response.data.exception);else if(null!==(c=t.response)&&void 0!==c&&null!==(u=c.data)&&void 0!==u&&null!==(d=u.error)&&void 0!==d&&d.message)t.response.data.error.class&&(p+="".concat(t.response.data.error.class," ")),p+="".concat(t.response.data.error.message);else{var f;p+="".concat(null===(f=t.response)||void 0===f?void 0:f.data)}throw r.$notify&&r.$notify.serious({title:"Network error",body:p}),t}throw t})),n.Z=a},143:function(t,n,e){"use strict";e.r(n);var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,'.splash-screen{width:100%;height:100%;position:fixed;background:#001724;background:-moz-linear-gradient(left, #001724 0%, #001724 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, #001724), color-stop(100%, #001724));background:-webkit-linear-gradient(left, #001724 0%, #001724 100%);background:-o-linear-gradient(left, #001724 0%, #001724 100%);background:-ms-linear-gradient(left, #001724 0%, #001724 100%);background:linear-gradient(to right, #001724 0%, #001724 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, #001724 0%, #001724 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, #001724), color-stop(100%, #001724));background:-webkit-linear-gradient(left, #001724 0%, #001724 100%);background:-o-linear-gradient(left, #001724 0%, #001724 100%);background:-ms-linear-gradient(left, #001724 0%, #001724 100%);background:linear-gradient(to right, #001724 0%, #001724 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:transparent;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, #001724 0%, #003656 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #001724), color-stop(100%, #003656));background:-webkit-linear-gradient(top, #001724 0%, #003656 100%);background:-o-linear-gradient(top, #001724 0%, #003656 100%);background:-ms-linear-gradient(top, #001724 0%, #003656 100%);background:linear-gradient(to bottom, #001724 0%, #003656 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:transparent;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}.openc3-green{color:#00c800 !important}.openc3-yellow{color:#ffdc00 !important}.openc3-red{color:#ff2d2d !important}.openc3-blue{color:#09f !important}.openc3-purple{color:#c800c8 !important}.openc3-black{color:#000 !important}.openc3-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;caret-color:auto}.imo-modal-container input{color:#000}',"",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/layout.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_splash.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/_variables.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_mixins.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_main.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_topbar.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_sidebar.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_profile.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_menu.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_content.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_footer.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_responsive.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_utils.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_dashboard.scss","webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/_overrides.scss"],names:[],mappings:"AAAA,eCAA,UACI,CAAA,WACA,CAAA,cACA,CAAA,kBCiCgB,CAAA,+DC2BhB,CAAA,4GACA,CAAA,kEACA,CAAA,6DACA,CAAA,8DACA,CAAA,8DACA,CAAA,2GACA,CAAA,iCF/DA,UACI,CAAA,WACA,CAAA,eACA,CAAA,iBACA,CAAA,QACA,CAAA,OACA,CAAA,iBACA,CAAA,gBACA,CAAA,4EAIJ,UACI,CAAA,WACA,CAAA,iBACA,CAAA,qBCmBU,CAAA,UDjBV,CAAA,iBACA,CAAA,KACA,CAAA,MACA,CAAA,uDAEA,CAAA,+CACA,CAAA,sCAGJ,2BACI,CAAA,mBACA,CAAA,iCAGJ,QACI,0BAAA,CAAA,IACA,0BAAA,CAAA,CAAA,yBAGJ,QACI,kBACI,CAAA,0BACA,CAAA,IACF,kBACI,CAAA,0BACA,CAAA,CAAA,EGhDd,qBACE,CAAA,KAGF,WACE,CAAA,KAGF,mDACE,CAAA,cFRS,CAAA,UAEC,CAAA,QEUV,CAAA,SACA,CAAA,eACA,CAAA,kCACA,CAAA,iCACA,CAAA,EAGF,oBACE,CAAA,gBAGF,SACE,CAAA,qBAKF,uBACE,CAAA,eC/BF,cACE,CAAA,WACA,CAAA,4BACA,CAAA,UACA,CAAA,WACA,CAAA,OACA,CAAA,kBH8BkB,CAAA,+DC2BhB,CAAA,4GACA,CAAA,kEACA,CAAA,6DACA,CAAA,8DACA,CAAA,8DACA,CAAA,2GACA,CAAA,wBE5DF,CAAA,sBAAA,CAAA,2BAAA,CAAA,mBAAA,CAAA,qBFqHE,UACI,CAAA,aACA,CAAA,UACA,CAAA,oCEtHN,WACE,CAAA,aACA,CAAA,2BACA,CAAA,8BACA,CAAA,sBACA,CAAA,2CAEA,iBACE,CAAA,UHqBY,CAAA,gBGnBZ,CAAA,oBACA,CAAA,oBACA,CAAA,yBACA,CAAA,uBAAA,CAAA,4BAAA,CAAA,oBAAA,CAAA,iDAEA,aHeiB,CAAA,iDGXjB,cFoFF,CAAA,gBACA,CAAA,6BACA,CAAA,mEEjFI,aACE,CAAA,wEAGF,cACE,CAAA,YACA,CAAA,oEAGF,iBACE,CAAA,cACA,CAAA,UACA,CAAA,QACA,CAAA,UACA,CAAA,WACA,CAAA,iBACA,CAAA,gBACA,CAAA,UHba,CAAA,wBADE,CAAA,sBGiBQ,CAAA,yBAAA,CAAA,iBAAA,CAAA,0DAK7B,SACE,CAAA,iBACA,CAAA,oBACA,CAAA,QACA,CAAA,gEAEA,oBACE,CAAA,aACA,CAAA,cHnEG,CAAA,sBGqEH,CAAA,4BACA,CAAA,cACA,CAAA,uBACA,CAAA,eACA,CAAA,UH/BiB,CAAA,WGiCjB,CAAA,wBACA,CAAA,UACA,CAAA,sBACuB,CAAA,yBAAA,CAAA,iBAAA,CAAA,2FAEvB,UHtCiB,CAAA,UGwCf,CAAA,2BACA,CAAA,yBAAA,CAAA,8BAAA,CAAA,sBAAA,CAAA,iFAEF,UH3CiB,CAAA,UG6Cf,CAAA,2BACA,CAAA,yBAAA,CAAA,8BAAA,CAAA,sBAAA,CAAA,kFAEF,UHhDiB,CAAA,UGkDf,CAAA,2BACA,CAAA,yBAAA,CAAA,8BAAA,CAAA,sBAAA,CAAA,sFAEF,UHrDiB,CAAA,UGuDf,CAAA,2BACA,CAAA,yBAAA,CAAA,8BAAA,CAAA,sBAAA,CAAA,qFAIJ,cACE,CAAA,iBACA,CAAA,QACA,CAAA,SACA,CAAA,sEAIA,2BHtEe,CAAA,iGGwEb,SACE,CAAA,uFAEF,SACE,CAAA,wFAEF,SACE,CAAA,4FAEF,SACE,CAAA,2FAIJ,aHtFe,CAAA,mCG6FrB,cACE,CAAA,oBACA,CAAA,oBACA,CAAA,UHjGc,CAAA,yBGmGd,CAAA,uBAAA,CAAA,4BAAA,CAAA,oBAAA,CAAA,wCAEA,aACE,CAAA,yCAGF,aHxGmB,CAAA,sBG6GrB,cACE,CAAA,gBCvJJ,cACI,CAAA,WACA,CAAA,WACA,CAAA,WACA,CAAA,eACA,CAAA,gBACA,CAAA,qBACA,CAAA,wBACA,CAAA,6BACA,CAAA,2BAAA,CAAA,gCAAA,CAAA,wBAAA,CAAA,4CACgB,CAAA,yCAAA,CAAA,oCAAA,CAAA,6EAEhB,2BAEI,CAAA,6BAGJ,iBACI,CAAA,eACA,CAAA,gCAGJ,oBACI,CAAA,eACA,CAAA,cACA,CAAA,UACA,CAAA,WACA,CAAA,gBACA,CAAA,iBACA,CAAA,UJhBa,CAAA,wBADE,CAAA,sBIoBQ,CAAA,yBAAA,CAAA,iBAAA,CAAA,gBChC/B,iBACE,CAAA,qBACA,CAAA,oBAEA,UACE,CAAA,WACA,CAAA,qCAGF,cACE,CAAA,oBACA,CAAA,mBACA,CAAA,yBACA,CAAA,uBAAA,CAAA,4BAAA,CAAA,oBAAA,CAAA,uCAEA,oBACE,CAAA,cACA,CAAA,qBACA,CAAA,mBAIJ,oBACE,CAAA,SACA,CAAA,QACA,CAAA,6BAGE,UACE,CAAA,WACA,CAAA,aACA,CAAA,eACA,CAAA,cACA,CAAA,yBACA,CAAA,uBAAA,CAAA,4BAAA,CAAA,oBAAA,CAAA,mCAEA,aLfa,CAAA,kCKmBb,iBACE,CAAA,qBACA,CAAA,+BAGF,qBACE,CAAA,mGAKN,YAEE,CAAA,mGAGF,iBAEE,CAAA,uDAGF,eACE,CAAA,mDACA,CAAA,uDAGF,eACE,CAAA,oCACA,CAAA,2DAOF,aLvDY,CAAA,iEK0DV,aLzDe,CAAA,yCK8DjB,qBL5DoB,CAAA,mDKgEhB,aLnEQ,CAAA,yDKsEN,aLrEW,CAAA,0DKgFjB,ULxEgB,CAAA,gEK2Ed,aL1EmB,CAAA,wCK+ErB,wBL7EwB,CAAA,kDKiFpB,ULpFY,CAAA,wDKuFV,aLtFe,CAAA,uBM9BzB,oBACI,CAAA,aAGJ,oBACI,CAAA,QACA,CAAA,SACA,CAAA,kBAGI,cACI,CAAA,iBACA,CAAA,oBACA,CAAA,aACA,CAAA,yBACA,CAAA,uBAAA,CAAA,4BAAA,CAAA,oBAAA,CAAA,oBAEA,cACI,CAAA,qBACA,CAAA,uBAGJ,iBACI,CAAA,qBACA,CAAA,gBACA,CAAA,oBACA,CAAA,wCAGJ,iBACI,CAAA,OACA,CAAA,SACA,CAAA,eACA,CAAA,qCAGJ,eACI,CAAA,wBAGJ,cLgFR,CAAA,gBACA,CAAA,mCACA,CAAA,+DAxHA,WK8CuC,CAAA,kBAOnC,WACI,CAAA,uBAEA,cNzDD,CAAA,6BM+DC,4CACI,CAAA,mBAIR,oBACI,CAAA,QACA,CAAA,SACA,CAAA,kBACA,CAAA,wBAGI,cACI,CAAA,iBACA,CAAA,iBACA,CAAA,6BAEA,cNnEF,CAAA,iCMwEF,kBACI,CAAA,mGAIR,YAEI,CAAA,mGAGJ,iBAEI,CAAA,uDAGJ,eACI,CAAA,mDACA,CAAA,uDAGJ,eACI,CAAA,oCACA,CAAA,sBAMhB,kBNhGmB,CAAA,8DCkCf,CAAA,8GACA,CAAA,iEACA,CAAA,4DACA,CAAA,6DACA,CAAA,+DACA,CAAA,kHACA,CAAA,wCK6DQ,yCACI,CAAA,mDAIA,4CACI,CAAA,yCAIR,qBN1GY,CAAA,wCMgHZ,aNnHI,CAAA,2DMsHA,aN3HW,CAAA,8CM+HX,aNzHK,CAAA,wDM+HL,qBN7HQ,CAAA,aADF,CAAA,qBMuItB,kBNlIuB,CAAA,8DCyBnB,CAAA,8GACA,CAAA,iEACA,CAAA,4DACA,CAAA,6DACA,CAAA,+DACA,CAAA,kHACA,CAAA,uCKwGQ,sCACI,CAAA,kDAIA,yCACI,CAAA,wCAIR,wBN5IgB,CAAA,uCMkJhB,UNrJQ,CAAA,0DMwJJ,aNtKW,CAAA,6CM0KX,aN3JS,CAAA,uDMiKT,wBN/JY,CAAA,aADF,CAAA,aO/B1B,+BACE,CAAA,6BAAA,CAAA,kCAAA,CAAA,0BAAA,CAAA,2BACA,CAAA,eCFF,+BACI,CAAA,6BAAA,CAAA,kCAAA,CAAA,0BAAA,CAAA,wBR6CY,CAAA,eQ3CZ,CAAA,mBAEA,qBACI,CAAA,4BAGJ,qBACI,CAAA,0BCVR,8CAGY,MACI,CAAA,0FAGJ,aACI,CAAA,6EAIA,MACI,CAAA,4EAGJ,UACI,CAAA,6CAMR,UACI,CAAA,wFAGJ,iBACI,CAAA,4EAIA,MACI,CAAA,sJAGJ,aACI,CAAA,CAAA,0BAOpB,+BAEQ,MACI,CAAA,4DAGJ,aACI,CAAA,gCAGJ,wBACI,CAAA,sBAAA,CAAA,2BAAA,CAAA,mBAAA,CAAA,WACA,CAAA,eACA,CAAA,6BAGJ,YACI,CAAA,cACA,CAAA,UACA,CAAA,WACA,CAAA,QACA,CAAA,MACA,CAAA,WACA,CAAA,wBT3DE,CAAA,US6De,CAAA,wBRmCzB,CAAA,6DQ/BQ,MACI,CAAA,0DAGJ,aACI,CAAA,sBAKZ,eACI,CAAA,CAAA,GCnFR,kBACI,CAAA,QACA,CAAA,cACA,CAAA,GAGJ,cACI,CAAA,kBACA,CAAA,QACA,CAAA,MAGJ,qBACI,CAAA,WACA,CAAA,kBACA,CAAA,sBVXW,CAAA,yBAAA,CAAA,iBAAA,CAAA,mBUcX,kBACI,CAAA,SAGJ,mBACI,CAAA,+BACA,CAAA,YACA,CAAA,cACA,CAAA,qBAEA,iBACI,CAAA,4BAOR,oBACI,CAAA,sBACA,CAAA,gBACA,CAAA,iCAEA,kBACI,CAAA,eACA,CAAA,cACA,CAAA,oBC1CR,iBACI,CAAA,2BAEA,cACI,CAAA,4BAGJ,aXNa,CAAA,aWQT,CAAA,eACA,CAAA,2BAGJ,UACI,CAAA,iBACA,CAAA,QACA,CAAA,UACA,CAAA,cACA,CAAA,gBACA,CAAA,sBXjBG,CAAA,yBAAA,CAAA,iBAAA,CAAA,oCWoBH,wBACI,CAAA,qCAGJ,wBACI,CAAA,mCAGJ,wBACI,CAAA,0BAKZ,YACI,CAAA,gCVsFJ,UACI,CAAA,aACA,CAAA,UACA,CAAA,oCUtFA,WACI,CAAA,UACA,CAAA,SACA,CAAA,iBACA,CAAA,WACA,CAAA,yCAEA,cACI,CAAA,6CAIR,WACI,CAAA,qBACA,CAAA,UACA,CAAA,SACA,CAAA,WACA,CAAA,+CAEA,cACI,CAAA,qBACA,CAAA,kBACA,CAAA,oDAGJ,aXhES,CAAA,cWkEL,CAAA,aACA,CAAA,sBAKZ,oBACI,CAAA,QACA,CAAA,SACA,CAAA,yBAEA,kBACI,CAAA,+BACA,CAAA,+BV2CR,UACI,CAAA,aACA,CAAA,UACA,CAAA,kCU1CA,qBACI,CAAA,iBACA,CAAA,iCAGJ,qBACI,CAAA,wBAGJ,WACI,CAAA,cACA,CAAA,aX9FS,CAAA,uCWkGb,gBACI,CAAA,0CAKJ,gBACI,CAAA,wBAMJ,oBACI,CAAA,SACA,CAAA,QACA,CAAA,2BAEA,+BACI,CAAA,kCAEA,WACI,CAAA,UACA,CAAA,qBACA,CAAA,oBACA,CAAA,iBACA,CAAA,aACA,CAAA,sBACuB,CAAA,yBAAA,CAAA,iBAAA,CAAA,oCACvB,CAAA,kCAAA,CAAA,uCAAA,CAAA,+BAAA,CAAA,wCAEA,iBACI,CAAA,UACA,CAAA,QACA,CAAA,cACA,CAAA,yCAGJ,iBACI,CAAA,UACA,CAAA,QACA,CAAA,cACA,CAAA,aX5IH,CAAA,wCWgJD,cACI,CAAA,qBACA,CAAA,sCAIR,QACI,CAAA,sCAKZ,gBACI,CAAA,0BAIR,oBACI,CAAA,SACA,CAAA,QACA,CAAA,6BAEA,+BACI,CAAA,gBACA,CAAA,oCAEA,cACI,CAAA,UACA,CAAA,wBACA,CAAA,eACA,CAAA,oBACA,CAAA,kBACA,CAAA,sBX/KD,CAAA,yBAAA,CAAA,iBAAA,CAAA,yCWmLH,4BACI,CAAA,wCAGJ,QACI,CAAA,kDAGJ,cACI,CAAA,qBACA,CAAA,iDAGJ,gBACI,CAAA,aXlMK,CAAA,cYCrB,wBACE,CAAA,eAEF,wBACE,CAAA,YAEF,wBACE,CAAA,aAEF,qBACE,CAAA,eAEF,wBACE,CAAA,cAEF,qBACE,CAAA,cAEF,qBACE,CAAA,0BAIF,iDACE,CAAA,iCAEF,mDACE,CAAA,2EAEF,kDAIE,CAAA,yEAIF,oDAGE,CAAA,4QAEF,qDAUE,CAAA,MAGF,iBAEE,CAAA,gBAEA,CAAA,2BAIF,UACE",sourcesContent:['.splash-screen{width:100%;height:100%;position:fixed;background:#001724;background:-moz-linear-gradient(left, #001724 0%, #001724 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, #001724), color-stop(100%, #001724));background:-webkit-linear-gradient(left, #001724 0%, #001724 100%);background:-o-linear-gradient(left, #001724 0%, #001724 100%);background:-ms-linear-gradient(left, #001724 0%, #001724 100%);background:linear-gradient(to right, #001724 0%, #001724 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, #001724 0%, #001724 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, #001724), color-stop(100%, #001724));background:-webkit-linear-gradient(left, #001724 0%, #001724 100%);background:-o-linear-gradient(left, #001724 0%, #001724 100%);background:-ms-linear-gradient(left, #001724 0%, #001724 100%);background:linear-gradient(to right, #001724 0%, #001724 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:transparent;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, #001724 0%, #003656 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #001724), color-stop(100%, #003656));background:-webkit-linear-gradient(top, #001724 0%, #003656 100%);background:-o-linear-gradient(top, #001724 0%, #003656 100%);background:-ms-linear-gradient(top, #001724 0%, #003656 100%);background:linear-gradient(to bottom, #001724 0%, #003656 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:transparent;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}.openc3-green{color:#00c800 !important}.openc3-yellow{color:#ffdc00 !important}.openc3-red{color:#ff2d2d !important}.openc3-blue{color:#09f !important}.openc3-purple{color:#c800c8 !important}.openc3-black{color:#000 !important}.openc3-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;caret-color:auto}.imo-modal-container input{color:#000}',".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.openc3-green {\n color: rgb(0, 200, 0) !important;\n}\n.openc3-yellow {\n color: rgb(255, 220, 0) !important;\n}\n.openc3-red {\n color: rgb(255, 45, 45) !important;\n}\n.openc3-blue {\n color: rgb(0, 153, 255) !important;\n}\n.openc3-purple {\n color: rgb(200, 0, 200) !important;\n}\n.openc3-black {\n color: black !important;\n}\n.openc3-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 // Make the caret color be white instead of a dark blue\n caret-color: auto;\n}\n\n// Fix the single spa debug panel so the text is readable\n.imo-modal-container input {\n color: black;\n}\n"],sourceRoot:""}]),n.default=a},3838:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\n.astro-icon[data-v-b942113a] {\n fill: currentColor;\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/components/icons/AstroIcon.vue"],names:[],mappings:";AAgDA;EACA,kBAAA;AACA",sourcesContent:["\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n--\x3e\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.Z=a},4829:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\n#footer[data-v-1f2e2c8b] {\n z-index: 1000; /* On TOP! */\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/AppFooter.vue"],names:[],mappings:";AAoFA;EACA,aAAA,EAAA,YAAA;AACA",sourcesContent:["\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n--\x3e\n\n<template>\n <v-footer id=\"footer\" app color=\"tertiary darken-3\" height=\"33\">\n <img :src=\"icon\" alt=\"OpenC3\" />\n <span class=\"footer-text\" style=\"margin-left: 5px\">\n OpenC3 {{ edition }} {{ openc3Version }} &copy; 2023 - License:\n {{ license }}\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 { OpenC3Api } from '../../services/openc3-api'\nimport icon from '../../../public/img/icon.png'\n\nexport default {\n components: {\n ClockFooter,\n },\n props: {\n edition: {\n type: String,\n default: '',\n },\n license: {\n type: String,\n default: '',\n },\n },\n data() {\n return {\n icon: icon,\n sourceUrl: '',\n openc3Version: '',\n }\n },\n created: function () {\n this.getSourceUrl()\n },\n methods: {\n getSourceUrl: function () {\n new OpenC3Api()\n .get_settings(['source_url', 'version'])\n .then((response) => {\n this.sourceUrl = response[0]\n this.openc3Version = `(${response[1]})`\n })\n .catch(() => {\n this.openc3Version = 'Unknown'\n })\n },\n },\n}\n<\/script>\n\n<style scoped>\n#footer {\n z-index: 1000; /* On TOP! */\n}\n</style>\n"],sourceRoot:""}]),n.Z=a},6509:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\ndiv a[data-v-00ae1763] {\n color: white;\n font-size: 16px;\n display: block;\n height: 100%;\n width: 100%;\n}\na.fixcenter[data-v-00ae1763] {\n display: flex;\n}\n.theme--dark.v-navigation-drawer[data-v-00ae1763] {\n background-color: var(--v-primary-darken2);\n}\n#openc3-app-toolbar .top-bar-divider-full-height[data-v-00ae1763] {\n margin: -4px 4px;\n min-height: calc(100% + 8px);\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/AppNav.vue"],names:[],mappings:";AAkQA;EACA,YAAA;EACA,eAAA;EACA,cAAA;EACA,YAAA;EACA,WAAA;AACA;AACA;EACA,aAAA;AACA;AACA;EACA,0CAAA;AACA;AACA;EACA,gBAAA;EACA,4BAAA;AACA",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n--\x3e\n\n<template>\n <div>\n <v-navigation-drawer v-model="drawer" app id="openc3-nav-drawer">\n <v-list>\n <v-list-item>\n <v-list-item-icon\n style="\n margin-right: auto !important;\n margin-left: auto;\n margin-top: 0px;\n margin-bottom: 0px;\n "\n >\n <img :src="logo" alt="OpenC3" />\n </v-list-item-icon>\n </v-list-item>\n <div style="text-align: center; font-size: 18pt">{{ edition }}</div>\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 class="fixcenter"\n >\n Admin\n </v-btn>\n </div>\n </v-list-item-content>\n </v-list-item>\n <v-divider />\n <v-treeview\n :items="items"\n :open="initiallyOpen"\n item-key="name"\n dense\n open-on-click\n expand-icon=""\n >\n <template v-slot:prepend="{ item, open }">\n <v-icon v-if="!item.icon">\n {{ open ? \'mdi-chevron-down\' : \'mdi-chevron-right\' }}\n </v-icon>\n <a v-else :href="item.url" onclick="singleSpaNavigate(event)">\n <v-icon> {{ item.icon }} </v-icon>\n </a>\n </template>\n <template v-slot:label="{ item }">\n <a :href="item.url" onclick="singleSpaNavigate(event)">\n {{ item.name }}\n </a>\n </template>\n <template v-slot:append="{ item }">\n <a v-if="item.icon" :href="newTabUrl(item)" target="_blank">\n <v-icon>mdi-open-in-new</v-icon>\n </a>\n </template>\n </v-treeview>\n </v-list>\n </v-navigation-drawer>\n <v-app-bar app color="tertiary darken-3" id="openc3-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="openc3-menu"></span></span>\n <div class="justify-right mr-2 pt-2"><scope-selector /></div>\n <div class="justify-right" data-test="alert-history">\n <alert-history />\n </div>\n <div class="justify-right" data-test="notifications">\n <notifications />\n </div>\n <div class="justify-right" data-test="user-menu"><user-menu /></div>\n </v-app-bar>\n </div>\n</template>\n\n<script>\nimport Api from \'../../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 props: {\n edition: {\n type: String,\n default: \'\',\n },\n },\n data() {\n return {\n items: [],\n drawer: true,\n appNav: {},\n logo: logo,\n initiallyOpen: [],\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(\'/openc3-api/tools/all\', { params: { scope: \'DEFAULT\' } }).then(\n (response) => {\n this.appNav = response.data\n\n let id = 1\n // Register apps and start single-spa\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown) {\n if (\n this.appNav[key].category &&\n this.appNav[key].category !== \'Admin\'\n ) {\n // TODO: Make this initiallyOpen configurable like with a CATEGORY parameter?\n this.initiallyOpen.push(this.appNav[key].category)\n const result = this.items.filter(\n (item) => item.name === this.appNav[key].category\n )\n if (result.length === 0) {\n this.items.push({\n id: id,\n name: this.appNav[key].category,\n children: [\n {\n id: id + 1,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n },\n ],\n })\n id++\n } else {\n result[0].children.push({\n id: id,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n })\n }\n } else if (!this.appNav[key].category) {\n this.items.push({\n id: id,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n })\n }\n id++\n\n if (this.appNav[key].folder_name) {\n let folder_name = this.appNav[key].folder_name\n let name = \'@openc3/tool-\' + folder_name\n registerApplication({\n name: name,\n app: () => System.import(name),\n activeWhen: [\'/tools/\' + folder_name],\n })\n }\n }\n }\n start({\n urlRerouteOnly: true,\n })\n\n // Redirect some base paths to the first tool\n if (\n window.location.pathname == \'/\' ||\n window.location.pathname == \'/tools\' ||\n window.location.pathname == \'/tools/\'\n ) {\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 // Check every minute if we need to update our token\n setInterval(() => {\n OpenC3Auth.updateToken(120).then(function (refreshed) {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n })\n }, 60000)\n }\n )\n },\n methods: {\n newTabUrl(tool) {\n let url = null\n if (tool.url[0] == \'/\' && tool.url[1] != \'/\') {\n url = new URL(tool.url, window.location.origin)\n } else {\n url = new URL(tool.url)\n }\n url.searchParams.set(\'scope\', window.openc3Scope)\n return url.href\n },\n },\n}\n<\/script>\n\n<style scoped>\ndiv a {\n color: white;\n font-size: 16px;\n display: block;\n height: 100%;\n width: 100%;\n}\na.fixcenter {\n display: flex;\n}\n.theme--dark.v-navigation-drawer {\n background-color: var(--v-primary-darken2);\n}\n#openc3-app-toolbar .top-bar-divider-full-height {\n margin: -4px 4px;\n min-height: calc(100% + 8px);\n}\n</style>\n<style>\n/* Remove the padding on root level nodes since we removed the expand icon */\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__level {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__toggle {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview-node__children\n div.v-treeview-node__level:nth-child(1) {\n width: 0px;\n}\n</style>\n'],sourceRoot:""}]),n.Z=a},6716:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.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\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\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\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\n\n\n\n\n\n\n\n\n\n\n\n\n/* Remove the padding on root level nodes since we removed the expand icon */\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__level {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__toggle {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview-node__children\n div.v-treeview-node__level:nth-child(1) {\n width: 0px;\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/AppNav.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqRA,4EAAA;AACA;;;;;EAKA,UAAA;AACA;AACA;;;;;EAKA,UAAA;AACA;AACA;;;EAGA,UAAA;AACA",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n--\x3e\n\n<template>\n <div>\n <v-navigation-drawer v-model="drawer" app id="openc3-nav-drawer">\n <v-list>\n <v-list-item>\n <v-list-item-icon\n style="\n margin-right: auto !important;\n margin-left: auto;\n margin-top: 0px;\n margin-bottom: 0px;\n "\n >\n <img :src="logo" alt="OpenC3" />\n </v-list-item-icon>\n </v-list-item>\n <div style="text-align: center; font-size: 18pt">{{ edition }}</div>\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 class="fixcenter"\n >\n Admin\n </v-btn>\n </div>\n </v-list-item-content>\n </v-list-item>\n <v-divider />\n <v-treeview\n :items="items"\n :open="initiallyOpen"\n item-key="name"\n dense\n open-on-click\n expand-icon=""\n >\n <template v-slot:prepend="{ item, open }">\n <v-icon v-if="!item.icon">\n {{ open ? \'mdi-chevron-down\' : \'mdi-chevron-right\' }}\n </v-icon>\n <a v-else :href="item.url" onclick="singleSpaNavigate(event)">\n <v-icon> {{ item.icon }} </v-icon>\n </a>\n </template>\n <template v-slot:label="{ item }">\n <a :href="item.url" onclick="singleSpaNavigate(event)">\n {{ item.name }}\n </a>\n </template>\n <template v-slot:append="{ item }">\n <a v-if="item.icon" :href="newTabUrl(item)" target="_blank">\n <v-icon>mdi-open-in-new</v-icon>\n </a>\n </template>\n </v-treeview>\n </v-list>\n </v-navigation-drawer>\n <v-app-bar app color="tertiary darken-3" id="openc3-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="openc3-menu"></span></span>\n <div class="justify-right mr-2 pt-2"><scope-selector /></div>\n <div class="justify-right" data-test="alert-history">\n <alert-history />\n </div>\n <div class="justify-right" data-test="notifications">\n <notifications />\n </div>\n <div class="justify-right" data-test="user-menu"><user-menu /></div>\n </v-app-bar>\n </div>\n</template>\n\n<script>\nimport Api from \'../../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 props: {\n edition: {\n type: String,\n default: \'\',\n },\n },\n data() {\n return {\n items: [],\n drawer: true,\n appNav: {},\n logo: logo,\n initiallyOpen: [],\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(\'/openc3-api/tools/all\', { params: { scope: \'DEFAULT\' } }).then(\n (response) => {\n this.appNav = response.data\n\n let id = 1\n // Register apps and start single-spa\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown) {\n if (\n this.appNav[key].category &&\n this.appNav[key].category !== \'Admin\'\n ) {\n // TODO: Make this initiallyOpen configurable like with a CATEGORY parameter?\n this.initiallyOpen.push(this.appNav[key].category)\n const result = this.items.filter(\n (item) => item.name === this.appNav[key].category\n )\n if (result.length === 0) {\n this.items.push({\n id: id,\n name: this.appNav[key].category,\n children: [\n {\n id: id + 1,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n },\n ],\n })\n id++\n } else {\n result[0].children.push({\n id: id,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n })\n }\n } else if (!this.appNav[key].category) {\n this.items.push({\n id: id,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n })\n }\n id++\n\n if (this.appNav[key].folder_name) {\n let folder_name = this.appNav[key].folder_name\n let name = \'@openc3/tool-\' + folder_name\n registerApplication({\n name: name,\n app: () => System.import(name),\n activeWhen: [\'/tools/\' + folder_name],\n })\n }\n }\n }\n start({\n urlRerouteOnly: true,\n })\n\n // Redirect some base paths to the first tool\n if (\n window.location.pathname == \'/\' ||\n window.location.pathname == \'/tools\' ||\n window.location.pathname == \'/tools/\'\n ) {\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 // Check every minute if we need to update our token\n setInterval(() => {\n OpenC3Auth.updateToken(120).then(function (refreshed) {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n })\n }, 60000)\n }\n )\n },\n methods: {\n newTabUrl(tool) {\n let url = null\n if (tool.url[0] == \'/\' && tool.url[1] != \'/\') {\n url = new URL(tool.url, window.location.origin)\n } else {\n url = new URL(tool.url)\n }\n url.searchParams.set(\'scope\', window.openc3Scope)\n return url.href\n },\n },\n}\n<\/script>\n\n<style scoped>\ndiv a {\n color: white;\n font-size: 16px;\n display: block;\n height: 100%;\n width: 100%;\n}\na.fixcenter {\n display: flex;\n}\n.theme--dark.v-navigation-drawer {\n background-color: var(--v-primary-darken2);\n}\n#openc3-app-toolbar .top-bar-divider-full-height {\n margin: -4px 4px;\n min-height: calc(100% + 8px);\n}\n</style>\n<style>\n/* Remove the padding on root level nodes since we removed the expand icon */\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__level {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__toggle {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview-node__children\n div.v-treeview-node__level:nth-child(1) {\n width: 0px;\n}\n</style>\n'],sourceRoot:""}]),n.Z=a},2003:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\n.v-subheader[data-v-3d0e2e40] {\n height: 28px;\n}\n.v-badge[data-v-3d0e2e40] {\n width: 100%;\n}\n.overlay[data-v-3d0e2e40] {\n height: 100vh;\n width: 100vw;\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/components/AlertHistory.vue"],names:[],mappings:";AA4KA;EACA,YAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;EACA,aAAA;EACA,YAAA;AACA",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n--\x3e\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 \x3c!-- Alert box icon --\x3e\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 \x3c!-- Alerts list --\x3e\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 @click="openDialog(alert)"\n :key="`alert-${index}`"\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 \x3c!-- Dialog for viewing full alert --\x3e\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 \'../../../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.Z=a},7650:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.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\n\n\n\n\n\n\n\n/* push things up and down to make room for the classification banners */\n#app,\n#openc3-nav-drawer {\n margin-top: var(--classification-height-top);\n}\n#openc3-app-toolbar {\n top: var(--classification-height-top);\n}\n#openc3-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://./../packages/openc3-tool-common/src/tools/base/components/ClassificationBanners.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EA,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:["\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n--\x3e\n\n<script>\nimport { OpenC3Api } from '../../../services/openc3-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 OpenC3Api()\n this.load()\n },\n methods: {\n load: function () {\n this.api\n .get_setting('classification_banner')\n .then((response) => {\n if (response) {\n this.classification = JSON.parse(response)\n }\n })\n .catch((error) => {\n // Do nothing\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#openc3-nav-drawer {\n margin-top: var(--classification-height-top);\n}\n#openc3-app-toolbar {\n top: var(--classification-height-top);\n}\n#openc3-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.Z=a},1840:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\n.v-subheader[data-v-eda8ca60] {\n height: 28px;\n}\n.v-badge[data-v-eda8ca60] {\n width: 100%;\n}\n.overlay[data-v-eda8ca60] {\n height: 100vh;\n width: 100vw;\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/components/Notifications.vue"],names:[],mappings:";AAiZA;EACA,YAAA;AACA;AAEA;EACA,WAAA;AACA;AAEA;EACA,aAAA;EACA,YAAA;AACA",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n--\x3e\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 \x3c!-- Bell icon --\x3e\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 \x3c!-- Notifications list --\x3e\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 class="ml-1"\n @click="clearNotifications"\n data-test="clear-notifications"\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\n icon\n @click="toggleSettingsDialog"\n class="ml-1"\n data-test="notification-settings"\n >\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 data-test="notification-list"\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 \x3c!-- Dialog for viewing full notification --\x3e\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 \x3c!-- Dialog for changing notification settings --\x3e\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 \'../../../components/icons\'\nimport {\n highestSeverity,\n orderBySeverity,\n groupBySeverity,\n} from \'../util/AstroStatus\'\nimport Cable from \'../../../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 let result = this.unreadNotifications.length\n if (result >= NOTIFICATION_HISTORY_MAX_LENGTH) {\n result += \'+\' // Indicate there are more\n }\n return result\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 window.openc3Scope,\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 (parsed) {\n this.cable.recordPing()\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.Z=a},6793:function(t,n,e){"use strict";var o=e(4015),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,"\n.overlay[data-v-26b5fc12] {\n height: 100vh;\n width: 100vw;\n}\n","",{version:3,sources:["webpack://./../packages/openc3-tool-common/src/tools/base/components/UserMenu.vue"],names:[],mappings:";AA+FA;EACA,aAAA;EACA,YAAA;AACA",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n--\x3e\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 style="text-align: center; margin: 5px">{{ username }}</div>\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 let user = OpenC3Auth.user()\n return {\n showUserMenu: false,\n authenticated: !!localStorage.openc3Token,\n username: user[\'name\'],\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 OpenC3Auth.logout()\n },\n login: function () {\n OpenC3Auth.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.Z=a},3645:function(t){"use strict";t.exports=function(t){var n=[];return n.toString=function(){return this.map((function(n){var e=t(n);return n[2]?"@media ".concat(n[2]," {").concat(e,"}"):e})).join("")},n.i=function(t,e,o){"string"==typeof t&&(t=[[null,t,""]]);var i={};if(o)for(var r=0;r<this.length;r++){var a=this[r][0];null!=a&&(i[a]=!0)}for(var s=0;s<t.length;s++){var l=[].concat(t[s]);o&&i[l[0]]||(e&&(l[2]?l[2]="".concat(e," and ").concat(l[2]):l[2]=e),n.push(l))}},n}},4015:function(t){"use strict";function n(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}t.exports=function(t){var e,o,i=(o=4,function(t){if(Array.isArray(t))return t}(e=t)||function(t,n){var e=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null!=e){var o,i,r=[],a=!0,s=!1;try{for(e=e.call(t);!(a=(o=e.next()).done)&&(r.push(o.value),!n||r.length!==n);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==e.return||e.return()}finally{if(s)throw i}}return r}}(e,o)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?n(t,e):void 0}}(e,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=i[1],a=i[3];if(!a)return r;if("function"==typeof btoa){var s=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),c="/*# ".concat(l," */"),u=a.sources.map((function(t){return"/*# sourceURL=".concat(a.sourceRoot||"").concat(t," */")}));return[r].concat(u).concat([c]).join("\n")}return[r].join("\n")}},3379:function(t){"use strict";var n=[];function e(t){for(var e=-1,o=0;o<n.length;o++)if(n[o].identifier===t){e=o;break}return e}function o(t,o){for(var r={},a=[],s=0;s<t.length;s++){var l=t[s],c=o.base?l[0]+o.base:l[0],u=r[c]||0,d="".concat(c," ").concat(u);r[c]=u+1;var p=e(d),f={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==p)n[p].references++,n[p].updater(f);else{var A=i(f,o);o.byIndex=s,n.splice(s,0,{identifier:d,updater:A,references:1})}a.push(d)}return a}function i(t,n){var e=n.domAPI(n);return e.update(t),function(n){if(n){if(n.css===t.css&&n.media===t.media&&n.sourceMap===t.sourceMap&&n.supports===t.supports&&n.layer===t.layer)return;e.update(t=n)}else e.remove()}}t.exports=function(t,i){var r=o(t=t||[],i=i||{});return function(t){t=t||[];for(var a=0;a<r.length;a++){var s=e(r[a]);n[s].references--}for(var l=o(t,i),c=0;c<r.length;c++){var u=e(r[c]);0===n[u].references&&(n[u].updater(),n.splice(u,1))}r=l}}},569:function(t){"use strict";var n={};t.exports=function(t,e){var o=function(t){if(void 0===n[t]){var e=document.querySelector(t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(t){e=null}n[t]=e}return n[t]}(t);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(e)}},9216:function(t){"use strict";t.exports=function(t){var n=document.createElement("style");return t.setAttributes(n,t.attributes),t.insert(n,t.options),n}},3565:function(t,n,e){"use strict";t.exports=function(t){var n=e.nc;n&&t.setAttribute("nonce",n)}},7795:function(t){"use strict";t.exports=function(t){var n=t.insertStyleElement(t);return{update:function(e){!function(t,n,e){var o="";e.supports&&(o+="@supports (".concat(e.supports,") {")),e.media&&(o+="@media ".concat(e.media," {"));var i=void 0!==e.layer;i&&(o+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),o+=e.css,i&&(o+="}"),e.media&&(o+="}"),e.supports&&(o+="}");var r=e.sourceMap;r&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),n.styleTagTransform(o,t,n.options)}(n,t,e)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)}}}},4589:function(t){"use strict";t.exports=function(t,n){if(n.styleSheet)n.styleSheet.cssText=t;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t))}}},2722:function(t,n,e){const o=e(3905).R;n.s=function(t){if(t||(t=1),!e.y.meta||!e.y.meta.url)throw console.error("__system_context__",e.y),Error("systemjs-webpack-interop was provided an unknown SystemJS context. Expected context.meta.url, but none was provided");e.p=o(e.y.meta.url,t)}},3905:function(t,n,e){n.R=function(t,n){var e=document.createElement("a");e.href=t;for(var o="/"===e.pathname[0]?e.pathname:"/"+e.pathname,i=0,r=o.length;i!==n&&r>=0;)"/"===o[--r]&&i++;if(i!==n)throw Error("systemjs-webpack-interop: rootDirectoryLevel ("+n+") is greater than the number of directories ("+i+") in the URL path "+t);var a=o.slice(0,r+1);return e.protocol+"//"+e.host+a};Number.isInteger},1900:function(t,n,e){"use strict";function o(t,n,e,o,i,r,a,s){var l,c="function"==typeof t?t.options:t;if(n&&(c.render=n,c.staticRenderFns=e,c._compiled=!0),o&&(c.functional=!0),r&&(c._scopeId="data-v-"+r),a?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=l):i&&(l=s?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,n){return l.call(n),u(t,n)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:c}}e.d(n,{Z:function(){return o}})},7861:function(t,n,e){var o=e(143);o.__esModule&&(o=o.default),"string"==typeof o&&(o=[[t.id,o,""]]),o.locals&&(t.exports=o.locals),(0,e(5346).Z)("2eb15b17",o,!1,{})},5346:function(t,n,e){"use strict";function o(t,n){for(var e=[],o={},i=0;i<n.length;i++){var r=n[i],a=r[0],s={id:t+":"+i,css:r[1],media:r[2],sourceMap:r[3]};o[a]?o[a].parts.push(s):e.push(o[a]={id:a,parts:[s]})}return e}e.d(n,{Z:function(){return A}});var i="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!i)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var r={},a=i&&(document.head||document.getElementsByTagName("head")[0]),s=null,l=0,c=!1,u=function(){},d=null,p="data-vue-ssr-id",f="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function A(t,n,e,i){c=e,d=i||{};var a=o(t,n);return h(a),function(n){for(var e=[],i=0;i<a.length;i++){var s=a[i];(l=r[s.id]).refs--,e.push(l)}for(n?h(a=o(t,n)):a=[],i=0;i<e.length;i++){var l;if(0===(l=e[i]).refs){for(var c=0;c<l.parts.length;c++)l.parts[c]();delete r[l.id]}}}}function h(t){for(var n=0;n<t.length;n++){var e=t[n],o=r[e.id];if(o){o.refs++;for(var i=0;i<o.parts.length;i++)o.parts[i](e.parts[i]);for(;i<e.parts.length;i++)o.parts.push(g(e.parts[i]));o.parts.length>e.parts.length&&(o.parts.length=e.parts.length)}else{var a=[];for(i=0;i<e.parts.length;i++)a.push(g(e.parts[i]));r[e.id]={id:e.id,refs:1,parts:a}}}}function m(){var t=document.createElement("style");return t.type="text/css",a.appendChild(t),t}function g(t){var n,e,o=document.querySelector("style["+p+'~="'+t.id+'"]');if(o){if(c)return u;o.parentNode.removeChild(o)}if(f){var i=l++;o=s||(s=m()),n=y.bind(null,o,i,!1),e=y.bind(null,o,i,!0)}else o=m(),n=C.bind(null,o),e=function(){o.parentNode.removeChild(o)};return n(t),function(o){if(o){if(o.css===t.css&&o.media===t.media&&o.sourceMap===t.sourceMap)return;n(t=o)}else e()}}var v,b=(v=[],function(t,n){return v[t]=n,v.filter(Boolean).join("\n")});function y(t,n,e,o){var i=e?"":o.css;if(t.styleSheet)t.styleSheet.cssText=b(n,i);else{var r=document.createTextNode(i),a=t.childNodes;a[n]&&t.removeChild(a[n]),a.length?t.insertBefore(r,a[n]):t.appendChild(r)}}function C(t,n){var e=n.css,o=n.media,i=n.sourceMap;if(o&&t.setAttribute("media",o),d.ssrId&&t.setAttribute(p,n.id),i&&(e+="\n/*# sourceURL="+i.sources[0]+" */",e+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */"),t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},8645:function(t){"use strict";t.exports=o},4091:function(t){"use strict";t.exports=e},4688:function(t){"use strict";t.exports=i},9731:function(t){"use strict";t.exports=a},9191:function(t){"use strict";t.exports=r},7791:function(t,n,e){"use strict";function o(t,n,e,o,i,r,a){try{var s=t[r](a),l=s.value}catch(t){return void e(t)}s.done?n(l):Promise.resolve(l).then(o,i)}function i(t){return function(){var n=this,e=arguments;return new Promise((function(i,r){var a=t.apply(n,e);function s(t){o(a,i,r,s,l,"next",t)}function l(t){o(a,i,r,s,l,"throw",t)}s(void 0)}))}}e.d(n,{Z:function(){return i}})},4649:function(t,n,e){"use strict";e.d(n,{Z:function(){return i}});var o=e(5217);function i(t,n,e){return(n=(0,o.Z)(n))in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}},5217:function(t,n,e){"use strict";e.d(n,{Z:function(){return i}});var o=e(3940);function i(t){var n=function(t,n){if("object"!==(0,o.Z)(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,"string");if("object"!==(0,o.Z)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===(0,o.Z)(n)?n:String(n)}},3940:function(t,n,e){"use strict";function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}e.d(n,{Z:function(){return o}})}},c={};function u(t){var n=c[t];if(void 0!==n)return n.exports;var e=c[t]={id:t,exports:{}};return l[t](e,e.exports,u),e.exports}u.m=l,u.y=n,u.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return u.d(n,{a:n}),n},u.d=function(t,n){for(var e in n)u.o(n,e)&&!u.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},u.f={},u.e=function(t){return Promise.all(Object.keys(u.f).reduce((function(n,e){return u.f[e](t,n),n}),[]))},u.u=function(t){return t+".openc3-tool-base.js"},u.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},t={},s="tool-base:",u.l=function(n,e,o,i){if(t[n])t[n].push(e);else{var r,a;if(void 0!==o)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var d=l[c];if(d.getAttribute("src")==n||d.getAttribute("data-webpack")==s+o){r=d;break}}r||(a=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,u.nc&&r.setAttribute("nonce",u.nc),r.setAttribute("data-webpack",s+o),r.src=n),t[n]=[e];var p=function(e,o){r.onerror=r.onload=null,clearTimeout(f);var i=t[n];if(delete t[n],r.parentNode&&r.parentNode.removeChild(r),i&&i.forEach((function(t){return t(o)})),e)return e(o)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=p.bind(null,r.onerror),r.onload=p.bind(null,r.onload),a&&document.head.appendChild(r)}},u.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},u.p="",function(){var t={179:0};u.f.j=function(n,e){var o=u.o(t,n)?t[n]:void 0;if(0!==o)if(o)e.push(o[2]);else{var i=new Promise((function(e,i){o=t[n]=[e,i]}));e.push(o[2]=i);var r=u.p+u.u(n),a=new Error;u.l(r,(function(e){if(u.o(t,n)&&(0!==(o=t[n])&&(t[n]=void 0),o)){var i=e&&("load"===e.type?"missing":e.type),r=e&&e.target&&e.target.src;a.message="Loading chunk "+n+" failed.\n("+i+": "+r+")",a.name="ChunkLoadError",a.type=i,a.request=r,o[1](a)}}),"chunk-"+n,n)}};var n=function(n,e){var o,i,r=e[0],a=e[1],s=e[2],l=0;if(r.some((function(n){return 0!==t[n]}))){for(o in a)u.o(a,o)&&(u.m[o]=a[o]);s&&s(u)}for(n&&n(e);l<r.length;l++)i=r[l],u.o(t,i)&&t[i]&&t[i][0](),t[i]=0},e=self.webpackChunktool_base=self.webpackChunktool_base||[];e.forEach(n.bind(null,0)),e.push=n.bind(null,e.push.bind(e))}(),u.nc=void 0;var d={};return(0,u(2722).s)(1),function(){"use strict";u.r(d);var t=u(4091),n=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("v-app",{style:t.classificationStyles},[e("app-nav",{staticClass:"d-print-none",attrs:{edition:"COSMOS"}}),t._v(" "),e("v-main",[e("v-container",{attrs:{fluid:""}},[e("div",{attrs:{id:"openc3-tool"}}),t._v(" "),e("div",[e("router-view")],1)])],1),t._v(" "),e("app-footer",{staticClass:"d-print-none",attrs:{app:"",edition:"COSMOS",license:"AGPLv3"}}),t._v(" "),e("time-check")],1)};n._withStripped=!0;var e=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("v-footer",{attrs:{id:"footer",app:"",color:"tertiary darken-3",height:"33"}},[e("img",{attrs:{src:t.icon,alt:"OpenC3"}}),t._v(" "),e("span",{staticClass:"footer-text",staticStyle:{"margin-left":"5px"}},[t._v("\n OpenC3 "+t._s(t.edition)+" "+t._s(t.openc3Version)+" © 2023 - License:\n "+t._s(t.license)+"\n ")]),t._v(" "),e("v-spacer"),t._v(" "),e("a",{staticClass:"white--text text-decoration-underline",attrs:{href:t.sourceUrl}},[t._v("\n Source\n ")]),t._v(" "),e("v-spacer"),t._v(" "),e("div",{staticClass:"justify-right"},[e("clock-footer")],1)],1)};e._withStripped=!0;var o=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("span",t._g(t._b({staticClass:"font-weight-bold",staticStyle:{cursor:"context-menu"},on:{contextmenu:t.openMenu}},"span",t.attrs,!1),t.on),[t._v("\n "+t._s(t._f("date")(t.displayLocal?t.localDate:t.utcDate,t.formatString))+"\n ("+t._s(t.displayLocal?"local":"UTC")+")\n ")]),t._v(" "),e("v-menu",{attrs:{"position-x":t.menuX,"position-y":t.menuY,absolute:"","offset-y":""},model:{value:t.showMenu,callback:function(n){t.showMenu=n},expression:"showMenu"}},[e("v-list",[e("v-list-item",[e("v-list-item-title",{staticStyle:{cursor:"pointer"},on:{click:t.toggleDisplayLocal}},[t._v("\n Display "+t._s(t.displayLocal?"UTC":"local time")+"\n ")])],1),t._v(" "),e("v-divider"),t._v(" "),e("v-list-item",[e("v-list-item-title",{staticStyle:{cursor:"pointer"},on:{click:t.toggleDisplay24h}},[t._v("\n Display "+t._s(t.display24h?12:24)+" hour clock\n ")])],1),t._v(" "),e("v-divider"),t._v(" "),"monthFirst"!==t.dateMode?e("v-list-item",[e("v-list-item-title",{staticStyle:{cursor:"pointer"},on:{click:t.setMonthFirst}},[t._v("\n Display mm/dd/yyyy\n ")])],1):t._e(),t._v(" "),"dayFirst"!==t.dateMode?e("v-list-item",[e("v-list-item-title",{staticStyle:{cursor:"pointer"},on:{click:t.setDayFirst}},[t._v("\n Display dd/mm/yyyy\n ")])],1):t._e(),t._v(" "),"number"!==t.dateMode?e("v-list-item",[e("v-list-item-title",{staticStyle:{cursor:"pointer"},on:{click:t.setNumber}},[t._v("\n Display day of year\n ")])],1):t._e()],1)],1)],1)};o._withStripped=!0;var i=u(3940);function r(t,n){if(n.length<t)throw new TypeError(t+" argument"+(t>1?"s":"")+" required, but only "+n.length+" present")}function a(t){r(1,arguments);var n=Object.prototype.toString.call(t);return t instanceof Date||"object"===(0,i.Z)(t)&&"[object Date]"===n?new Date(t.getTime()):"number"==typeof t||"[object Number]"===n?new Date(t):("string"!=typeof t&&"[object String]"!==n||"undefined"==typeof console||(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://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function s(t){if(null===t||!0===t||!1===t)return NaN;var n=Number(t);return isNaN(n)?n:n<0?Math.ceil(n):Math.floor(n)}function l(t){r(1,arguments);var n=a(t),e=n.getUTCDay(),o=(e<1?7:0)+e-1;return n.setUTCDate(n.getUTCDate()-o),n.setUTCHours(0,0,0,0),n}function c(t){r(1,arguments);var n=a(t),e=n.getUTCFullYear(),o=new Date(0);o.setUTCFullYear(e+1,0,4),o.setUTCHours(0,0,0,0);var i=l(o),s=new Date(0);s.setUTCFullYear(e,0,4),s.setUTCHours(0,0,0,0);var c=l(s);return n.getTime()>=i.getTime()?e+1:n.getTime()>=c.getTime()?e:e-1}var p={};function f(){return p}function A(t,n){var e,o,i,l,c,u,d,p;r(1,arguments);var A=f(),h=s(null!==(e=null!==(o=null!==(i=null!==(l=null==n?void 0:n.weekStartsOn)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==i?i:A.weekStartsOn)&&void 0!==o?o:null===(d=A.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.weekStartsOn)&&void 0!==e?e:0);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=a(t),g=m.getUTCDay(),v=(g<h?7:0)+g-h;return m.setUTCDate(m.getUTCDate()-v),m.setUTCHours(0,0,0,0),m}function h(t,n){var e,o,i,l,c,u,d,p;r(1,arguments);var h=a(t),m=h.getUTCFullYear(),g=f(),v=s(null!==(e=null!==(o=null!==(i=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(c=n.locale)||void 0===c||null===(u=c.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==i?i:g.firstWeekContainsDate)&&void 0!==o?o:null===(d=g.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.firstWeekContainsDate)&&void 0!==e?e:1);if(!(v>=1&&v<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var b=new Date(0);b.setUTCFullYear(m+1,0,v),b.setUTCHours(0,0,0,0);var y=A(b,n),C=new Date(0);C.setUTCFullYear(m,0,v),C.setUTCHours(0,0,0,0);var w=A(C,n);return h.getTime()>=y.getTime()?m+1:h.getTime()>=w.getTime()?m:m-1}function m(t,n){for(var e=t<0?"-":"",o=Math.abs(t).toString();o.length<n;)o="0"+o;return e+o}var g=function(t,n){var e=t.getUTCFullYear(),o=e>0?e:1-e;return m("yy"===n?o%100:o,n.length)},v=function(t,n){var e=t.getUTCMonth();return"M"===n?String(e+1):m(e+1,2)},b=function(t,n){return m(t.getUTCDate(),n.length)},y=function(t,n){return m(t.getUTCHours()%12||12,n.length)},C=function(t,n){return m(t.getUTCHours(),n.length)},w=function(t,n){return m(t.getUTCMinutes(),n.length)},k=function(t,n){return m(t.getUTCSeconds(),n.length)},x=function(t,n){var e=n.length,o=t.getUTCMilliseconds();return m(Math.floor(o*Math.pow(10,e-3)),n.length)},_={G:function(t,n,e){var o=t.getUTCFullYear()>0?1:0;switch(n){case"G":case"GG":case"GGG":return e.era(o,{width:"abbreviated"});case"GGGGG":return e.era(o,{width:"narrow"});default:return e.era(o,{width:"wide"})}},y:function(t,n,e){if("yo"===n){var o=t.getUTCFullYear(),i=o>0?o:1-o;return e.ordinalNumber(i,{unit:"year"})}return g(t,n)},Y:function(t,n,e,o){var i=h(t,o),r=i>0?i:1-i;return"YY"===n?m(r%100,2):"Yo"===n?e.ordinalNumber(r,{unit:"year"}):m(r,n.length)},R:function(t,n){return m(c(t),n.length)},u:function(t,n){return m(t.getUTCFullYear(),n.length)},Q:function(t,n,e){var o=Math.ceil((t.getUTCMonth()+1)/3);switch(n){case"Q":return String(o);case"QQ":return m(o,2);case"Qo":return e.ordinalNumber(o,{unit:"quarter"});case"QQQ":return e.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return e.quarter(o,{width:"narrow",context:"formatting"});default:return e.quarter(o,{width:"wide",context:"formatting"})}},q:function(t,n,e){var o=Math.ceil((t.getUTCMonth()+1)/3);switch(n){case"q":return String(o);case"qq":return m(o,2);case"qo":return e.ordinalNumber(o,{unit:"quarter"});case"qqq":return e.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return e.quarter(o,{width:"narrow",context:"standalone"});default:return e.quarter(o,{width:"wide",context:"standalone"})}},M:function(t,n,e){var o=t.getUTCMonth();switch(n){case"M":case"MM":return v(t,n);case"Mo":return e.ordinalNumber(o+1,{unit:"month"});case"MMM":return e.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return e.month(o,{width:"narrow",context:"formatting"});default:return e.month(o,{width:"wide",context:"formatting"})}},L:function(t,n,e){var o=t.getUTCMonth();switch(n){case"L":return String(o+1);case"LL":return m(o+1,2);case"Lo":return e.ordinalNumber(o+1,{unit:"month"});case"LLL":return e.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return e.month(o,{width:"narrow",context:"standalone"});default:return e.month(o,{width:"wide",context:"standalone"})}},w:function(t,n,e,o){var i=function(t,n){r(1,arguments);var e=a(t),o=A(e,n).getTime()-function(t,n){var e,o,i,a,l,c,u,d;r(1,arguments);var p=f(),m=s(null!==(e=null!==(o=null!==(i=null!==(a=null==n?void 0:n.firstWeekContainsDate)&&void 0!==a?a:null==n||null===(l=n.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==i?i:p.firstWeekContainsDate)&&void 0!==o?o:null===(u=p.locale)||void 0===u||null===(d=u.options)||void 0===d?void 0:d.firstWeekContainsDate)&&void 0!==e?e:1),g=h(t,n),v=new Date(0);return v.setUTCFullYear(g,0,m),v.setUTCHours(0,0,0,0),A(v,n)}(e,n).getTime();return Math.round(o/6048e5)+1}(t,o);return"wo"===n?e.ordinalNumber(i,{unit:"week"}):m(i,n.length)},I:function(t,n,e){var o=function(t){r(1,arguments);var n=a(t),e=l(n).getTime()-function(t){r(1,arguments);var n=c(t),e=new Date(0);return e.setUTCFullYear(n,0,4),e.setUTCHours(0,0,0,0),l(e)}(n).getTime();return Math.round(e/6048e5)+1}(t);return"Io"===n?e.ordinalNumber(o,{unit:"week"}):m(o,n.length)},d:function(t,n,e){return"do"===n?e.ordinalNumber(t.getUTCDate(),{unit:"date"}):b(t,n)},D:function(t,n,e){var o=function(t){r(1,arguments);var n=a(t),e=n.getTime();n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0);var o=e-n.getTime();return Math.floor(o/864e5)+1}(t);return"Do"===n?e.ordinalNumber(o,{unit:"dayOfYear"}):m(o,n.length)},E:function(t,n,e){var o=t.getUTCDay();switch(n){case"E":case"EE":case"EEE":return e.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return e.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return e.day(o,{width:"short",context:"formatting"});default:return e.day(o,{width:"wide",context:"formatting"})}},e:function(t,n,e,o){var i=t.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(n){case"e":return String(r);case"ee":return m(r,2);case"eo":return e.ordinalNumber(r,{unit:"day"});case"eee":return e.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return e.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return e.day(i,{width:"short",context:"formatting"});default:return e.day(i,{width:"wide",context:"formatting"})}},c:function(t,n,e,o){var i=t.getUTCDay(),r=(i-o.weekStartsOn+8)%7||7;switch(n){case"c":return String(r);case"cc":return m(r,n.length);case"co":return e.ordinalNumber(r,{unit:"day"});case"ccc":return e.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return e.day(i,{width:"narrow",context:"standalone"});case"cccccc":return e.day(i,{width:"short",context:"standalone"});default:return e.day(i,{width:"wide",context:"standalone"})}},i:function(t,n,e){var o=t.getUTCDay(),i=0===o?7:o;switch(n){case"i":return String(i);case"ii":return m(i,n.length);case"io":return e.ordinalNumber(i,{unit:"day"});case"iii":return e.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return e.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return e.day(o,{width:"short",context:"formatting"});default:return e.day(o,{width:"wide",context:"formatting"})}},a:function(t,n,e){var o=t.getUTCHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":return e.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return e.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return e.dayPeriod(o,{width:"narrow",context:"formatting"});default:return e.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(t,n,e){var o,i=t.getUTCHours();switch(o=12===i?"noon":0===i?"midnight":i/12>=1?"pm":"am",n){case"b":case"bb":return e.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return e.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return e.dayPeriod(o,{width:"narrow",context:"formatting"});default:return e.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(t,n,e){var o,i=t.getUTCHours();switch(o=i>=17?"evening":i>=12?"afternoon":i>=4?"morning":"night",n){case"B":case"BB":case"BBB":return e.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return e.dayPeriod(o,{width:"narrow",context:"formatting"});default:return e.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(t,n,e){if("ho"===n){var o=t.getUTCHours()%12;return 0===o&&(o=12),e.ordinalNumber(o,{unit:"hour"})}return y(t,n)},H:function(t,n,e){return"Ho"===n?e.ordinalNumber(t.getUTCHours(),{unit:"hour"}):C(t,n)},K:function(t,n,e){var o=t.getUTCHours()%12;return"Ko"===n?e.ordinalNumber(o,{unit:"hour"}):m(o,n.length)},k:function(t,n,e){var o=t.getUTCHours();return 0===o&&(o=24),"ko"===n?e.ordinalNumber(o,{unit:"hour"}):m(o,n.length)},m:function(t,n,e){return"mo"===n?e.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):w(t,n)},s:function(t,n,e){return"so"===n?e.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):k(t,n)},S:function(t,n){return x(t,n)},X:function(t,n,e,o){var i=(o._originalDate||t).getTimezoneOffset();if(0===i)return"Z";switch(n){case"X":return E(i);case"XXXX":case"XX":return T(i);default:return T(i,":")}},x:function(t,n,e,o){var i=(o._originalDate||t).getTimezoneOffset();switch(n){case"x":return E(i);case"xxxx":case"xx":return T(i);default:return T(i,":")}},O:function(t,n,e,o){var i=(o._originalDate||t).getTimezoneOffset();switch(n){case"O":case"OO":case"OOO":return"GMT"+S(i,":");default:return"GMT"+T(i,":")}},z:function(t,n,e,o){var i=(o._originalDate||t).getTimezoneOffset();switch(n){case"z":case"zz":case"zzz":return"GMT"+S(i,":");default:return"GMT"+T(i,":")}},t:function(t,n,e,o){var i=o._originalDate||t;return m(Math.floor(i.getTime()/1e3),n.length)},T:function(t,n,e,o){return m((o._originalDate||t).getTime(),n.length)}};function S(t,n){var e=t>0?"-":"+",o=Math.abs(t),i=Math.floor(o/60),r=o%60;if(0===r)return e+String(i);var a=n||"";return e+String(i)+a+m(r,2)}function E(t,n){return t%60==0?(t>0?"-":"+")+m(Math.abs(t)/60,2):T(t,n)}function T(t,n){var e=n||"",o=t>0?"-":"+",i=Math.abs(t);return o+m(Math.floor(i/60),2)+e+m(i%60,2)}var B=_,O=function(t,n){switch(t){case"P":return n.date({width:"short"});case"PP":return n.date({width:"medium"});case"PPP":return n.date({width:"long"});default:return n.date({width:"full"})}},N=function(t,n){switch(t){case"p":return n.time({width:"short"});case"pp":return n.time({width:"medium"});case"ppp":return n.time({width:"long"});default:return n.time({width:"full"})}},D={p:N,P:function(t,n){var e,o=t.match(/(P+)(p+)?/)||[],i=o[1],r=o[2];if(!r)return O(t,n);switch(i){case"P":e=n.dateTime({width:"short"});break;case"PP":e=n.dateTime({width:"medium"});break;case"PPP":e=n.dateTime({width:"long"});break;default:e=n.dateTime({width:"full"})}return e.replace("{{date}}",O(i,n)).replace("{{time}}",N(r,n))}};function I(t){var n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),t.getTime()-n.getTime()}var R=["D","DD"],M=["YY","YYYY"];function $(t,n,e){if("YYYY"===t)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(n,"`) for formatting years to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===t)throw new RangeError("Use `yy` instead of `YY` (in `".concat(n,"`) for formatting years to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===t)throw new RangeError("Use `d` instead of `D` (in `".concat(n,"`) for formatting days of the month to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===t)throw new RangeError("Use `dd` instead of `DD` (in `".concat(n,"`) for formatting days of the month to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var z={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function P(t){return function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=n.width?String(n.width):t.defaultWidth;return t.formats[e]||t.formats[t.defaultWidth]}}var U={date:P({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:P({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:P({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},j={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function F(t){return function(n,e){var o;if("formatting"===(null!=e&&e.context?String(e.context):"standalone")&&t.formattingValues){var i=t.defaultFormattingWidth||t.defaultWidth,r=null!=e&&e.width?String(e.width):i;o=t.formattingValues[r]||t.formattingValues[i]}else{var a=t.defaultWidth,s=null!=e&&e.width?String(e.width):t.defaultWidth;o=t.values[s]||t.values[a]}return o[t.argumentCallback?t.argumentCallback(n):n]}}var L={ordinalNumber:function(t,n){var e=Number(t),o=e%100;if(o>20||o<10)switch(o%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"},era:F({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:F({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:F({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:F({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:F({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function G(t){return function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=e.width,i=o&&t.matchPatterns[o]||t.matchPatterns[t.defaultMatchWidth],r=n.match(i);if(!r)return null;var a,s=r[0],l=o&&t.parsePatterns[o]||t.parsePatterns[t.defaultParseWidth],c=Array.isArray(l)?function(t,n){for(var e=0;e<t.length;e++)if(t[e].test(s))return e}(l):function(t,n){for(var e in t)if(t.hasOwnProperty(e)&&t[e].test(s))return e}(l);return a=t.valueCallback?t.valueCallback(c):c,{value:a=e.valueCallback?e.valueCallback(a):a,rest:n.slice(s.length)}}}var H,W={ordinalNumber:(H={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(t){return parseInt(t,10)}},function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=t.match(H.matchPattern);if(!e)return null;var o=e[0],i=t.match(H.parsePattern);if(!i)return null;var r=H.valueCallback?H.valueCallback(i[0]):i[0];return{value:r=n.valueCallback?n.valueCallback(r):r,rest:t.slice(o.length)}}),era:G({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:G({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:G({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{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],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]},defaultParseWidth:"any"}),day:G({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:G({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},Y={code:"en-US",formatDistance:function(t,n,e){var o,i=z[t];return o="string"==typeof i?i:1===n?i.one:i.other.replace("{{count}}",n.toString()),null!=e&&e.addSuffix?e.comparison&&e.comparison>0?"in "+o:o+" ago":o},formatLong:U,formatRelative:function(t,n,e,o){return j[t]},localize:L,match:W,options:{weekStartsOn:0,firstWeekContainsDate:1}},q=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Z=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,J=/^'([^]*?)'?$/,X=/''/g,Q=/[a-zA-Z]/;function V(t,n,e){var o,l,c,u,d,p,A,h,m,g,v,b,y,C,w,k,x,_;r(2,arguments);var S=String(n),E=f(),T=null!==(o=null!==(l=null==e?void 0:e.locale)&&void 0!==l?l:E.locale)&&void 0!==o?o:Y,O=s(null!==(c=null!==(u=null!==(d=null!==(p=null==e?void 0:e.firstWeekContainsDate)&&void 0!==p?p:null==e||null===(A=e.locale)||void 0===A||null===(h=A.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==d?d:E.firstWeekContainsDate)&&void 0!==u?u:null===(m=E.locale)||void 0===m||null===(g=m.options)||void 0===g?void 0:g.firstWeekContainsDate)&&void 0!==c?c:1);if(!(O>=1&&O<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var N=s(null!==(v=null!==(b=null!==(y=null!==(C=null==e?void 0:e.weekStartsOn)&&void 0!==C?C:null==e||null===(w=e.locale)||void 0===w||null===(k=w.options)||void 0===k?void 0:k.weekStartsOn)&&void 0!==y?y:E.weekStartsOn)&&void 0!==b?b:null===(x=E.locale)||void 0===x||null===(_=x.options)||void 0===_?void 0:_.weekStartsOn)&&void 0!==v?v:0);if(!(N>=0&&N<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!T.localize)throw new RangeError("locale must contain localize property");if(!T.formatLong)throw new RangeError("locale must contain formatLong property");var z=a(t);if(!function(t){if(r(1,arguments),!function(t){return r(1,arguments),t instanceof Date||"object"===(0,i.Z)(t)&&"[object Date]"===Object.prototype.toString.call(t)}(t)&&"number"!=typeof t)return!1;var n=a(t);return!isNaN(Number(n))}(z))throw new RangeError("Invalid time value");var P=function(t,n){return r(2,arguments),function(t,n){r(2,arguments);var e=a(t).getTime(),o=s(n);return new Date(e+o)}(t,-s(n))}(z,I(z)),U={firstWeekContainsDate:O,weekStartsOn:N,locale:T,_originalDate:z};return S.match(Z).map((function(t){var n=t[0];return"p"===n||"P"===n?(0,D[n])(t,T.formatLong):t})).join("").match(q).map((function(o){if("''"===o)return"'";var i,r,a=o[0];if("'"===a)return(r=(i=o).match(J))?r[1].replace(X,"'"):i;var s,l=B[a];if(l)return null!=e&&e.useAdditionalWeekYearTokens||(s=o,-1===M.indexOf(s))||$(o,n,String(t)),null!=e&&e.useAdditionalDayOfYearTokens||!function(t){return-1!==R.indexOf(t)}(o)||$(o,n,String(t)),l(P,o,T.localize,U);if(a.match(Q))throw new RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");return o})).join("")}var K={data:function(){return{localDate:new Date,displayLocal:"local"===localStorage.clock_zone,display24h:!localStorage.clock_12h,dateMode:localStorage.clock_dateMode||"monthFirst",intervalCount:0,showMenu:!1,menuX:0,menuY:0}},computed:{utcDate:function(){return new Date(this.localDate.getTime()+6e4*this.localDate.getTimezoneOffset())},formatString:function(){var t,n;switch(this.dateMode){case"monthFirst":t="LL/dd/yyy";break;case"dayFirst":t="dd/LL/yyy";break;case"number":t="D"}return n=this.display24h?"HH:mm:ss":"hh:mm:ss a","".concat(t," ").concat(n)}},watch:{displayLocal:function(t){localStorage.clock_zone=t?"local":"utc"},display24h:function(t){t?delete localStorage.clock_12h:localStorage.clock_12h=!0},dateMode:function(t){t.match(/^monthFirst$|^dayFirst$|^number$/)&&(localStorage.clock_dateMode=t)}},created:function(){var t=this;setInterval((function(){t.intervalCount++,t.localDate=new Date}),this.intervalCount<10?100:1e3)},methods:{openMenu:function(t){var n=this;t.preventDefault(),this.showMenu=!1,this.menuX=t.clientX,this.menuY=t.clientY,this.$nextTick((function(){n.showMenu=!0}))},toggleDisplayLocal:function(){this.displayLocal=!this.displayLocal},toggleDisplay24h:function(){this.display24h=!this.display24h},setMonthFirst:function(){this.dateMode="monthFirst"},setDayFirst:function(){this.dateMode="dayFirst"},setNumber:function(){this.dateMode="number"}},filters:{date:function(t,n){return V(t,n,{useAdditionalDayOfYearTokens:!0})}}},tt=u(1900),nt=(0,tt.Z)(K,o,[],!1,null,null,null);nt.options.__file="packages/openc3-tool-common/src/tools/base/components/ClockFooter.vue";var et=nt.exports,ot=u(7791);function it(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}var rt=u(5217);function at(t,n){for(var e=0;e<n.length;e++){var o=n[e];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,(0,rt.Z)(o.key),o)}}function st(t,n,e){return n&&at(t.prototype,n),e&&at(t,e),Object.defineProperty(t,"prototype",{writable:!1}),t}var lt=u(4649),ct=u(6966);function ut(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}function dt(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?ut(Object(e),!0).forEach((function(n){(0,lt.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):ut(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}var pt=function(){function t(){it(this,t),(0,lt.Z)(this,"id",1)}var n,e,o,r,a,s;return st(t,[{key:"exec",value:(s=(0,ot.Z)(regeneratorRuntime.mark((function t(n,e){var o,i,r,a,s,l=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=l.length>2&&void 0!==l[2]?l[2]:{},i=l.length>3&&void 0!==l[3]?l[3]:{},r=l.length>4&&void 0!==l[4]?l[4]:6e4,t.prev=3,t.next=6,OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity);case 6:t.sent&&OpenC3Auth.setTokens(),t.next=13;break;case 10:t.prev=10,t.t0=t.catch(3),OpenC3Auth.login();case 13:return this.id=this.id+1,t.prev=14,o.scope=window.openc3Scope,t.next=18,ct.Z.post("/openc3-api/api",{jsonrpc:"2.0",method:n,params:e,id:this.id,keyword_params:o},{headers:dt({Authorization:localStorage.openc3Token,"Content-Type":"application/json-rpc"},i),timeout:r});case 18:return a=t.sent,t.abrupt("return",a.data.result);case 22:throw t.prev=22,t.t1=t.catch(14),s=new Error,t.t1.response?(s.name=t.t1.response.data.error.data.class,s.message=t.t1.response.data.error.data.message):t.t1.request?(s.name="Request error",s.message="Request error, no response received"):s.name="Unknown error",s;case 27:case"end":return t.stop()}}),t,this,[[3,10],[14,22]])}))),function(t,n){return s.apply(this,arguments)})},{key:"decode_openc3_type",value:function(t){if(null!==t&&"object"===(0,i.Z)(t)&&"Float"==t.json_class&&t.raw){if("NaN"==t.raw)return NaN;if("Infinity"==t.raw)return 1/0;if("-Infinity"==t.raw)return-1/0}return null}},{key:"encode_openc3_type",value:function(t){return Number.isNaN(t)?{json_class:"Float",raw:"NaN"}:t==Number.POSITIVE_INFINITY?{json_class:"Float",raw:"Infinity"}:t==Number.NEGATIVE_INFINITY?{json_class:"Float",raw:"-Infinity"}:null}},{key:"ensure_offline_access",value:function(){var t=this;this.offline_access_needed().then((function(n){n&&(localStorage.openc3OfflineToken?t.set_offline_access(localStorage.openc3OfflineToken).then((function(){delete localStorage.openc3OfflineToken})):OpenC3Auth.getOfflineAccess())}))}},{key:"offline_access_needed",value:function(){return this.exec("offline_access_needed",[])}},{key:"set_offline_access",value:function(t){return this.exec("set_offline_access",[t])}},{key:"get_all_interface_info",value:function(){return this.exec("get_all_interface_info",[])}},{key:"map_target_to_interface",value:function(t,n){return this.exec("map_target_to_interface",[t,n])}},{key:"connect_interface",value:function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),o=1;o<n;o++)e[o-1]=arguments[o];return e.length>0?this.exec("connect_interface",[t].concat(e)):this.exec("connect_interface",[t])}},{key:"disconnect_interface",value:function(t){return this.exec("disconnect_interface",[t])}},{key:"get_all_router_info",value:function(){return this.exec("get_all_router_info",[])}},{key:"connect_router",value:function(t){return this.exec("connect_router",[t])}},{key:"disconnect_router",value:function(t){return this.exec("disconnect_router",[t])}},{key:"get_target_interfaces",value:function(){return this.exec("get_target_interfaces",[])}},{key:"get_all_target_info",value:function(){return this.exec("get_all_target_info",[])}},{key:"get_tlm_cnts",value:function(t){return this.exec("get_tlm_cnts",[t])}},{key:"get_item",value:function(t,n,e){return this.exec("get_item",[t,n,e])}},{key:"get_parameter",value:function(t,n,e){return this.exec("get_parameter",[t,n,e])}},{key:"get_all_packet_logger_info",value:function(){return this.exec("get_all_packet_logger_info",[])}},{key:"start_logging",value:function(){return this.exec("start_logging",[])}},{key:"stop_logging",value:function(){return this.exec("stop_logging",[])}},{key:"start_cmd_log",value:function(t){return this.exec("start_cmd_log",[t])}},{key:"start_tlm_log",value:function(t){return this.exec("start_tlm_log",[t])}},{key:"stop_cmd_log",value:function(t){return this.exec("stop_cmd_log",[t])}},{key:"stop_tlm_log",value:function(t){return this.exec("stop_tlm_log",[t])}},{key:"get_server_status",value:function(){return this.exec("get_server_status",[])}},{key:"get_limits_sets",value:function(){return this.exec("get_limits_sets",[])}},{key:"get_limits_set",value:function(){return this.exec("get_limits_set",[])}},{key:"set_limits_set",value:function(t){return this.exec("set_limits_set",[t])}},{key:"get_background_tasks",value:function(){return this.exec("get_background_tasks",[])}},{key:"start_background_task",value:function(t){return this.exec("start_background_task",[t])}},{key:"stop_background_task",value:function(t){return this.exec("stop_background_task",[t])}},{key:"get_target",value:function(t){return this.exec("get_target",[t])}},{key:"get_target_list",value:function(){return this.exec("get_target_list",[])}},{key:"get_target_names",value:function(){return this.exec("get_target_names",[])}},{key:"get_telemetry",value:function(t,n){return this.exec("get_telemetry",[t,n])}},{key:"get_all_telemetry",value:function(t){return this.exec("get_all_telemetry",[t])}},{key:"get_all_telemetry_names",value:function(t){return this.exec("get_all_telemetry_names",[t])}},{key:"get_tlm_packet",value:(a=(0,ot.Z)(regeneratorRuntime.mark((function t(n,e,o){var i,r,a,s,l,c=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=c.length>3&&void 0!==c[3]?c[3]:30,t.next=3,this.exec("get_tlm_packet",[n,e],{type:o,stale_time:i});case 3:if(null!=(r=t.sent))for(a=r.length,s=null,l=0;l<a;l++)null!==(s=this.decode_openc3_type(r[l][1]))&&(r[l][1]=s);return t.abrupt("return",r);case 6:case"end":return t.stop()}}),t,this)}))),function(t,n,e){return a.apply(this,arguments)})},{key:"get_packet_derived_items",value:function(t,n){return this.exec("get_packet_derived_items",[t,n])}},{key:"get_tlm_buffer",value:function(t,n){return this.exec("get_tlm_buffer",[t,n])}},{key:"get_tlm_values",value:(r=(0,ot.Z)(regeneratorRuntime.mark((function t(n){var e,o,i,r,a,s=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=s.length>1&&void 0!==s[1]?s[1]:30,t.next=3,this.exec("get_tlm_values",[n],{stale_time:e},{},1e4);case 3:for(o=t.sent,i=o[0].length,r=null,a=0;a<i;a++)null!==(r=this.decode_openc3_type(o[0][a]))&&(o[0][a]=r);return t.abrupt("return",o);case 8:case"end":return t.stop()}}),t,this)}))),function(t){return r.apply(this,arguments)})},{key:"get_limits",value:function(t,n,e){return this.exec("get_limits",[t,n,e])}},{key:"tlm",value:(o=(0,ot.Z)(regeneratorRuntime.mark((function t(n,e,o){var i,r,a,s,l=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=l.length>3&&void 0!==l[3]?l[3]:"CONVERTED",r=null,void 0!==e){t.next=8;break}return t.next=5,this.exec("tlm",[n]);case 5:r=t.sent,t.next=24;break;case 8:if(void 0!==o){t.next=21;break}if(!["RAW","CONVERTED","FORMATTED","WITH_UNITS"].includes(e)){t.next=15;break}return t.next=12,this.exec("tlm",[n],{type:e});case 12:r=t.sent,t.next=19;break;case 15:throw(a=new Error).name="TypeError",a.message="Invalid data type ".concat(e,". Valid options are RAW, CONVERTED, FORMATTED, and WITH_UNITS."),a;case 19:t.next=24;break;case 21:return t.next=23,this.exec("tlm",[n,e,o],{type:i});case 23:r=t.sent;case 24:return null!==(s=this.decode_openc3_type(r))&&(r=s),t.abrupt("return",r);case 27:case"end":return t.stop()}}),t,this)}))),function(t,n,e){return o.apply(this,arguments)})},{key:"inject_tlm",value:(e=(0,ot.Z)(regeneratorRuntime.mark((function t(n,e){var o,i,r=arguments;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=r.length>2&&void 0!==r[2]?r[2]:null,i=r.length>3&&void 0!==r[3]?r[3]:"CONVERTED",t.next=4,this.exec("inject_tlm",[n,e,o],{type:i});case 4:data=t.sent;case 5:case"end":return t.stop()}}),t,this)}))),function(t,n){return e.apply(this,arguments)})},{key:"set_tlm",value:function(t,n,e,o){return this.exec("set_tlm",[t,n,e],{type:o})}},{key:"override_tlm",value:function(t,n,e,o){return this.exec("override_tlm",[t,n,e],{type:o})}},{key:"get_overrides",value:function(){return this.exec("get_overrides")}},{key:"normalize_tlm",value:function(t,n,e,o){return this.exec("normalize_tlm",[t,n,e],{type:o})}},{key:"get_all_commands",value:function(t){return this.exec("get_all_commands",[t])}},{key:"get_all_command_names",value:function(t){return this.exec("get_all_command_names",[t])}},{key:"get_command",value:function(t,n){return this.exec("get_command",[t,n])}},{key:"get_cmd_cnts",value:function(t){return this.exec("get_cmd_cnts",[t])}},{key:"get_cmd_value",value:function(t,n,e){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"CONVERTED";return this.exec("get_cmd_value",[t,n,e,o])}},{key:"get_cmd_buffer",value:function(t,n){return this.exec("get_cmd_buffer",[t,n])}},{key:"_cmd",value:function(t,n,e,o,i){var r=null;for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&null!==(r=this.encode_openc3_type(o[a]))&&(o[a]=r);return this.exec(t,[n,e,o],{},i)}},{key:"get_cmd_hazardous",value:function(t,n,e){return void 0===n?this.exec("get_cmd_hazardous",t):this._cmd("get_cmd_hazardous",t,n,e)}},{key:"cmd",value:function(t,n,e){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return void 0===n?this.exec("cmd",t,{},o):this._cmd("cmd",t,n,e,o)}},{key:"cmd_no_range_check",value:function(t,n,e){return void 0===n?this.exec("cmd_no_range_check",t):this._cmd("cmd_no_range_check",t,n,e)}},{key:"cmd_raw",value:function(t,n,e){return void 0===n?this.exec("cmd_raw",t):this._cmd("cmd_raw",t,n,e)}},{key:"cmd_raw_no_range_check",value:function(t,n,e){return void 0===n?this.exec("cmd_raw_no_range_check",t):this._cmd("cmd_raw_no_range_check",t,n,e)}},{key:"cmd_no_hazardous_check",value:function(t,n,e){return void 0===n?this.exec("cmd_no_hazardous_check",t):this._cmd("cmd_no_hazardous_check",t,n,e)}},{key:"cmd_no_checks",value:function(t,n,e){return void 0===n?this.exec("cmd_no_checks",t):this._cmd("cmd_no_checks",t,n,e)}},{key:"cmd_raw_no_hazardous_check",value:function(t,n,e){return void 0===n?this.exec("cmd_raw_no_hazardous_check",t):this._cmd("cmd_raw_no_hazardous_check",t,n,e)}},{key:"cmd_raw_no_checks",value:function(t,n,e){return void 0===n?this.exec("cmd_raw_no_checks",t):this._cmd("cmd_raw_no_checks",t,n,e)}},{key:"build_command",value:function(t,n,e){return void 0===n?this.exec("build_command",t):this._cmd("build_command",t,n,e)}},{key:"get_interface_names",value:function(){return this.exec("get_interface_names",[])}},{key:"send_raw",value:function(t,n){return this.exec("send_raw",[t,n])}},{key:"list_configs",value:function(t){return this.exec("list_configs",[t])}},{key:"load_config",value:function(t,n){return this.exec("load_config",[t,n])}},{key:"save_config",value:function(t,n,e){return this.exec("save_config",[t,n,e])}},{key:"delete_config",value:function(t,n){return this.exec("delete_config",[t,n])}},{key:"enable_limits",value:function(t,n,e){return this.exec("enable_limits",[t,n,e])}},{key:"disable_limits",value:function(t,n,e){return this.exec("disable_limits",[t,n,e])}},{key:"get_out_of_limits",value:function(){return this.exec("get_out_of_limits",[])}},{key:"get_overall_limits_state",value:function(t){return this.exec("get_overall_limits_state",[t])}},{key:"list_settings",value:function(){return this.exec("list_settings",[])}},{key:"get_all_settings",value:function(){return this.exec("get_all_settings",[])}},{key:"get_setting",value:function(t){return this.exec("get_setting",[t])}},{key:"get_settings",value:function(t){return this.exec("get_settings",t)}},{key:"save_setting",value:function(t,n){return this.exec("save_setting",[t,n])}},{key:"get_metrics",value:function(){return this.exec("get_metrics",[])}},{key:"hashString",value:(n=(0,ot.Z)(regeneratorRuntime.mark((function t(n){var e,o,i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!window.isSecureContext){t.next=7;break}return e=(new TextEncoder).encode(n),t.next=4,crypto.subtle.digest("SHA-256",e);case 4:return o=t.sent,i=new Uint8Array(o),t.abrupt("return",Array.from(i).map((function(t){return t.toString(16).padStart(2,"0")})).join(""));case 7:case"end":return t.stop()}}),t)}))),function(t){return n.apply(this,arguments)})}]),t}(),ft=u.p+"a0696a4fd430262c8adb.png",At={components:{ClockFooter:et},props:{edition:{type:String,default:""},license:{type:String,default:""}},data:function(){return{icon:ft,sourceUrl:"",openc3Version:""}},created:function(){this.getSourceUrl()},methods:{getSourceUrl:function(){var t=this;(new pt).get_settings(["source_url","version"]).then((function(n){t.sourceUrl=n[0],t.openc3Version="(".concat(n[1],")")})).catch((function(){t.openc3Version="Unknown"}))}}},ht=u(3379),mt=u.n(ht),gt=u(7795),vt=u.n(gt),bt=u(569),yt=u.n(bt),Ct=u(3565),wt=u.n(Ct),kt=u(9216),xt=u.n(kt),_t=u(4589),St=u.n(_t),Et=u(4829),Tt={};Tt.styleTagTransform=St(),Tt.setAttributes=wt(),Tt.insert=yt().bind(null,"head"),Tt.domAPI=vt(),Tt.insertStyleElement=xt(),mt()(Et.Z,Tt),Et.Z&&Et.Z.locals&&Et.Z.locals;var Bt=(0,tt.Z)(At,e,[],!1,null,"1f2e2c8b",null);Bt.options.__file="packages/openc3-tool-common/src/tools/base/AppFooter.vue";var Ot=Bt.exports,Nt=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("v-navigation-drawer",{attrs:{app:"",id:"openc3-nav-drawer"},model:{value:t.drawer,callback:function(n){t.drawer=n},expression:"drawer"}},[e("v-list",[e("v-list-item",[e("v-list-item-icon",{staticStyle:{"margin-right":"auto !important","margin-left":"auto","margin-top":"0px","margin-bottom":"0px"}},[e("img",{attrs:{src:t.logo,alt:"OpenC3"}})])],1),t._v(" "),e("div",{staticStyle:{"text-align":"center","font-size":"18pt"}},[t._v(t._s(t.edition))]),t._v(" "),e("v-list-item",{staticClass:"my-0"},[e("v-list-item-content",t._l(t.adminTools,(function(n,o){return e("div",{key:o},[e("v-btn",{staticClass:"fixcenter",attrs:{block:"",small:"",href:n.url,onclick:"singleSpaNavigate(event)"}},[t._v("\n Admin\n ")])],1)})),0)],1),t._v(" "),e("v-divider"),t._v(" "),e("v-treeview",{attrs:{items:t.items,open:t.initiallyOpen,"item-key":"name",dense:"","open-on-click":"","expand-icon":""},scopedSlots:t._u([{key:"prepend",fn:function(n){var o=n.item,i=n.open;return[o.icon?e("a",{attrs:{href:o.url,onclick:"singleSpaNavigate(event)"}},[e("v-icon",[t._v(" "+t._s(o.icon)+" ")])],1):e("v-icon",[t._v("\n "+t._s(i?"mdi-chevron-down":"mdi-chevron-right")+"\n ")])]}},{key:"label",fn:function(n){var o=n.item;return[e("a",{attrs:{href:o.url,onclick:"singleSpaNavigate(event)"}},[t._v("\n "+t._s(o.name)+"\n ")])]}},{key:"append",fn:function(n){var o=n.item;return[o.icon?e("a",{attrs:{href:t.newTabUrl(o),target:"_blank"}},[e("v-icon",[t._v("mdi-open-in-new")])],1):t._e()]}}])})],1)],1),t._v(" "),e("v-app-bar",{attrs:{app:"",color:"tertiary darken-3",id:"openc3-app-toolbar"}},[e("v-app-bar-nav-icon",{on:{click:function(n){t.drawer=!t.drawer}}}),t._v(" "),e("v-divider",{staticClass:"top-bar-divider-full-height",attrs:{vertical:""}}),t._v(" "),e("span",{staticStyle:{width:"100%"}},[e("span",{attrs:{id:"openc3-menu"}})]),t._v(" "),e("div",{staticClass:"justify-right mr-2 pt-2"},[e("scope-selector")],1),t._v(" "),e("div",{staticClass:"justify-right",attrs:{"data-test":"alert-history"}},[e("alert-history")],1),t._v(" "),e("div",{staticClass:"justify-right",attrs:{"data-test":"notifications"}},[e("notifications")],1),t._v(" "),e("div",{staticClass:"justify-right",attrs:{"data-test":"user-menu"}},[e("user-menu")],1)],1)],1)};Nt._withStripped=!0;var Dt=u(9554),It=u.p+"772bd60446e0b68b2dcb.png",Rt=u(8645),Mt=function(){var t=this,n=t.$createElement;return(t._self._c||n)("v-select",{attrs:{items:t.scopes,disabled:t.scopes.length<=1,label:"Scope",dense:"","hide-details":""},model:{value:t.scope,callback:function(n){t.scope=n},expression:"scope"}})};Mt._withStripped=!0;var $t=(0,tt.Z)({data:function(){return{scopes:["DEFAULT"],scope:"DEFAULT"}}},Mt,[],!1,null,null,null);$t.options.__file="packages/openc3-tool-common/src/tools/base/components/ScopeSelector.vue";var zt=$t.exports,Pt=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("v-overlay",{staticClass:"overlay",attrs:{value:t.showAlertPane}}),t._v(" "),e("v-menu",{attrs:{transition:"slide-y-transition","close-on-content-click":!1,"nudge-width":340,"offset-y":"","nudge-bottom":20},scopedSlots:t._u([{key:"activator",fn:function(n){var o=n.on,i=n.attrs;return[e("v-btn",t._g(t._b({attrs:{icon:""}},"v-btn",i,!1),o),[e("v-icon",{attrs:{size:t.size}},[t._v(" mdi-alert-box-outline ")])],1)]}}]),model:{value:t.showAlertPane,callback:function(n){t.showAlertPane=n},expression:"showAlertPane"}},[t._v(" "),e("v-card",[e("v-card-title",[t._v("\n Alerts\n "),e("v-spacer"),t._v(" "),e("v-tooltip",{attrs:{top:"","open-delay":"350"},scopedSlots:t._u([{key:"activator",fn:function(n){var o=n.on,i=n.attrs;return[e("v-btn",t._g(t._b({staticClass:"ml-1",attrs:{icon:""},on:{click:t.clearAlerts}},"v-btn",i,!1),o),[e("v-icon",[t._v(" mdi-notification-clear-all ")])],1)]}}])},[t._v(" "),e("span",[t._v("Clear all")])])],1),t._v(" "),0===t.alerts.length?e("v-card-text",[t._v(" No alerts ")]):e("v-list",{staticClass:"overflow-y-auto",attrs:{"two-line":"",width:"388","max-height":"80vh"}},[t._l(t.alerts,(function(n,o){return[e("v-list-item",{key:"alert-"+o,staticClass:"pl-2",on:{click:function(e){return t.openDialog(n)}}},[e("v-badge",{attrs:{left:"",inline:"",color:"transparent"},scopedSlots:t._u([{key:"badge",fn:function(){return[e("astro-status-indicator",{attrs:{status:n.severity.toLowerCase()}})]},proxy:!0}],null,!0)},[e("v-list-item-content",{staticClass:"pt-0 pb-0"},[e("v-list-item-title",[t._v("\n "+t._s(n.title)+"\n ")]),t._v(" "),e("v-list-item-subtitle",[t._v("\n "+t._s(n.body)+"\n ")])],1)],1)],1)]}))],2)],1)],1),t._v(" "),e("v-dialog",{attrs:{width:"600"},model:{value:t.alertDialog,callback:function(n){t.alertDialog=n},expression:"alertDialog"}},[e("v-card",[e("v-card-title",[t._v("\n "+t._s(t.selectedAlert.title)+"\n "),e("v-spacer"),t._v(" "),e("astro-status-indicator",{attrs:{status:t.selectedAlert.severity||"normal"}})],1),t._v(" "),e("v-card-text",[t._v("\n "+t._s(t.selectedAlert.body)+"\n ")]),t._v(" "),e("v-divider"),t._v(" "),e("v-card-actions",[e("v-btn",{attrs:{color:"primary",text:""},on:{click:function(n){t.alertDialog=!1}}},[t._v("\n Dismiss\n ")])],1)],1)],1)],1)};Pt._withStripped=!0;var Ut=function(){var t=this,n=t.$createElement;return(t._self._c||n)("rux-icon",{staticClass:"astro-icon",attrs:{icon:t.icon}})};Ut._withStripped=!0;var jt=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("span",{style:t.style,attrs:{id:"rux-icon",title:t.label,size:t.size}},[e("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",preserveAspectRatio:"xMidYMid meet",focusable:"false"}},[e("use",{attrs:{href:t.getIcon(this.library,this.icon)}})])])};jt._withStripped=!0;var Ft={props:{icon:{type:String},size:{type:String,default:"extra-small"},color:{type:String},library:{type:String,default:"/icons/astro.svg"},label:{type:String,default:"icon"}},computed:{style:function(){return"--iconColor="+this.propscolor}},methods:{getIcon:function(){return this.library+"#"+this.icon}}},Lt=(0,tt.Z)(Ft,jt,[],!1,null,null,null);Lt.options.__file="packages/openc3-tool-common/src/components/icons/RuxIcon.vue";var Gt={components:{RuxIcon:Lt.exports},props:{icon:{type:String,required:!0,validator:function(t){return Jt.includes(t)}}}},Ht=u(3838),Wt={};Wt.styleTagTransform=St(),Wt.setAttributes=wt(),Wt.insert=yt().bind(null,"head"),Wt.domAPI=vt(),Wt.insertStyleElement=xt(),mt()(Ht.Z,Wt),Ht.Z&&Ht.Z.locals&&Ht.Z.locals;var Yt=(0,tt.Z)(Gt,Ut,[],!1,null,"b942113a",null);Yt.options.__file="packages/openc3-tool-common/src/components/icons/AstroIcon.vue";var qt=Yt.exports;function Zt(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}var Jt=["altitude","antenna","antenna-off","antenna-receive","antenna-transmit","equipment","mission","payload","processor","processor-alt","netcom","propulsion-power","thermal","satellite-off","satellite-receive","satellite-transmit","add-large","add-small","close-large","close-small","collapse","expand","lock","unlock","search","caution","maintenance","notifications","settings"],Xt=Jt.reduce((function(t,n){return function(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?Zt(Object(e),!0).forEach((function(n){(0,lt.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Zt(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}((0,lt.Z)({},"astro-".concat(n),{component:qt,props:{icon:n}}),t)}),{}),Qt={fatal:"#ff69B4",critical:"#ff3838",serious:"#ffb302",caution:"#fce83a",normal:"#56f000",standby:"#2dccff",off:"#9ea7ad"},Vt=Object.keys(Qt),Kt={props:{size:{type:[String,Number],default:26}},data:function(){return{AstroStatusColors:Qt,alerts:[],alertDialog:!1,showAlertPane:!1,selectedAlert:{}}},watch:{showAlertPane:function(t){t&&this.refreshList(),!t&&this.selectedAlert.title&&(this.alertDialog=!1,this.selectedAlert={})}},methods:{refreshList:function(){this.alerts=this.$store.state.notifyHistory},clearAlerts:function(){this.$store.commit("notifyClearHistory"),this.refreshList(),this.showAlertPane=!1},openDialog:function(t){this.selectedAlert=t,this.alertDialog=!0}}},tn=u(2003),nn={};nn.styleTagTransform=St(),nn.setAttributes=wt(),nn.insert=yt().bind(null,"head"),nn.domAPI=vt(),nn.insertStyleElement=xt(),mt()(tn.Z,nn),tn.Z&&tn.Z.locals&&tn.Z.locals;var en=(0,tt.Z)(Kt,Pt,[],!1,null,"3d0e2e40",null);en.options.__file="packages/openc3-tool-common/src/tools/base/components/AlertHistory.vue";var on=en.exports,rn=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("v-overlay",{staticClass:"overlay",attrs:{value:t.showNotificationPane}}),t._v(" "),e("v-menu",{attrs:{transition:"slide-y-transition","close-on-content-click":!1,"nudge-width":340,"offset-y":"","nudge-bottom":20},scopedSlots:t._u([{key:"activator",fn:function(n){var o=n.on,i=n.attrs;return[e("v-btn",t._g(t._b({attrs:{icon:""}},"v-btn",i,!1),o),[0===t.unreadCount?e("v-icon",{attrs:{size:t.size}},[t._v("\n mdi-bell-outline\n ")]):e("v-badge",{attrs:{left:"","offset-x":"24","offset-y":"8",color:t.badgeColor,bordered:"",content:t.unreadCount}},[e("v-icon",{attrs:{size:t.size,color:t.badgeColor}},[t._v(" mdi-bell ")])],1)],1)]}}]),model:{value:t.showNotificationPane,callback:function(n){t.showNotificationPane=n},expression:"showNotificationPane"}},[t._v(" "),e("v-card",[e("v-card-title",[t._v("\n Notifications\n "),e("v-spacer"),t._v(" "),e("v-tooltip",{attrs:{top:"","open-delay":"350"},scopedSlots:t._u([{key:"activator",fn:function(n){var o=n.on,i=n.attrs;return[e("v-btn",t._g(t._b({staticClass:"ml-1",attrs:{icon:"","data-test":"clear-notifications"},on:{click:t.clearNotifications}},"v-btn",i,!1),o),[e("v-icon",[t._v(" mdi-notification-clear-all ")])],1)]}}])},[t._v(" "),e("span",[t._v("Clear all")])]),t._v(" "),e("v-btn",{staticClass:"ml-1",attrs:{icon:"","data-test":"notification-settings"},on:{click:t.toggleSettingsDialog}},[e("v-icon",[t._v(" $astro-settings ")])],1)],1),t._v(" "),0===t.notifications.length?e("v-card-text",[t._v("\n No notifications\n ")]):e("v-list",{staticClass:"overflow-y-auto",attrs:{"two-line":"",width:"388","max-height":"80vh","data-test":"notification-list"}},[t._l(t.notificationList,(function(n,o){return[n.header?[0!==o?e("v-divider",{key:o,staticClass:"mb-2"}):t._e(),t._v(" "),e("v-subheader",{key:n.header},[t._v("\n "+t._s(n.header)+"\n ")])]:e("v-list-item",{key:"notification-"+o,staticClass:"pl-2",on:{click:function(e){return t.openDialog(n)}}},[e("v-badge",{attrs:{left:"",inline:"",color:"transparent"},scopedSlots:t._u([{key:"badge",fn:function(){return[e("astro-status-indicator",{attrs:{status:n.severity.toLowerCase()}})]},proxy:!0}],null,!0)},[e("v-list-item-content",{staticClass:"pt-0 pb-0"},[e("v-list-item-title",{class:{"text--secondary":n.read}},[t._v("\n "+t._s(n.title)+"\n ")]),t._v(" "),e("v-list-item-subtitle",[t._v("\n "+t._s(n.body)+"\n ")])],1),t._v(" "),e("v-list-item-action",{staticClass:"mt-0"},[e("v-list-item-action-text",[t._v("\n "+t._s(t._f("shortDateTime")(n.time))+"\n ")]),t._v(" "),e("v-spacer")],1)],1)],1)]}))],2)],1)],1),t._v(" "),e("v-dialog",{attrs:{width:"600"},model:{value:t.notificationDialog,callback:function(n){t.notificationDialog=n},expression:"notificationDialog"}},[e("v-card",[e("v-card-title",[t._v("\n "+t._s(t.selectedNotification.title)+"\n "),e("v-spacer"),t._v(" "),e("astro-status-indicator",{attrs:{status:t.selectedNotification.severity||"normal"}})],1),t._v(" "),e("v-card-subtitle",[t._v("\n "+t._s(t._f("shortDateTime")(t.selectedNotification.time))+"\n ")]),t._v(" "),e("v-card-text",[t._v("\n "+t._s(t.selectedNotification.body)+"\n ")]),t._v(" "),e("v-divider"),t._v(" "),e("v-card-actions",[e("v-btn",{attrs:{color:"primary",text:""},on:{click:function(n){return t.navigate(t.selectedNotification.url)}}},[t._v("\n Open\n "),e("v-icon",{attrs:{right:""}},[t._v(" mdi-open-in-new ")])],1),t._v(" "),e("v-btn",{attrs:{color:"primary",text:""},on:{click:function(n){t.notificationDialog=!1}}},[t._v("\n Dismiss\n ")])],1)],1)],1),t._v(" "),e("v-dialog",{attrs:{width:"600"},model:{value:t.settingsDialog,callback:function(n){t.settingsDialog=n},expression:"settingsDialog"}},[e("v-card",[e("v-card-title",[t._v(" Notification settings ")]),t._v(" "),e("v-card-text",[e("v-switch",{attrs:{label:"Show toasts"},model:{value:t.showToast,callback:function(n){t.showToast=n},expression:"showToast"}})],1),t._v(" "),e("v-divider"),t._v(" "),e("v-card-actions",[e("v-btn",{attrs:{color:"primary",text:""},on:{click:t.toggleSettingsDialog}},[t._v("\n close\n ")])],1)],1)],1)],1)};function an(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}function sn(t){return function(t){if(Array.isArray(t))return an(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,n){if(t){if("string"==typeof t)return an(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?an(t,n):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ln(t,n){r(2,arguments);var e=a(t),o=a(n),i=e.getTime()-o.getTime();return i<0?-1:i>0?1:i}function cn(t,n){r(2,arguments);var e,o=a(t),i=a(n),s=ln(o,i),l=Math.abs(function(t,n){r(2,arguments);var e=a(t),o=a(n);return 12*(e.getFullYear()-o.getFullYear())+(e.getMonth()-o.getMonth())}(o,i));if(l<1)e=0;else{1===o.getMonth()&&o.getDate()>27&&o.setDate(30),o.setMonth(o.getMonth()-s*l);var c=ln(o,i)===-s;(function(t){r(1,arguments);var n=a(t);return function(t){r(1,arguments);var n=a(t);return n.setHours(23,59,59,999),n}(n).getTime()===function(t){r(1,arguments);var n=a(t),e=n.getMonth();return n.setFullYear(n.getFullYear(),e+1,0),n.setHours(23,59,59,999),n}(n).getTime()})(a(t))&&1===l&&1===ln(t,i)&&(c=!1),e=s*(l-Number(c))}return 0===e?0:e}rn._withStripped=!0;var un={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(t){return t<0?Math.ceil(t):Math.floor(t)}},dn="trunc";function pn(t,n){if(null==t)throw new TypeError("assign requires that input parameter not be null or undefined");for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e]);return t}var fn=43200;function An(t,n,e){var o,i;r(2,arguments);var s=f(),l=null!==(o=null!==(i=null==e?void 0:e.locale)&&void 0!==i?i:s.locale)&&void 0!==o?o:Y;if(!l.formatDistance)throw new RangeError("locale must contain formatDistance property");var c=ln(t,n);if(isNaN(c))throw new RangeError("Invalid time value");var u,d,p=pn(pn({},e),{addSuffix:Boolean(null==e?void 0:e.addSuffix),comparison:c});c>0?(u=a(n),d=a(t)):(u=a(t),d=a(n));var A,h=function(t,n,e){r(2,arguments);var o,i=function(t,n){return r(2,arguments),a(t).getTime()-a(n).getTime()}(t,n)/1e3;return((o=null==e?void 0:e.roundingMethod)?un[o]:un[dn])(i)}(d,u),m=(I(d)-I(u))/1e3,g=Math.round((h-m)/60);if(g<2)return null!=e&&e.includeSeconds?h<5?l.formatDistance("lessThanXSeconds",5,p):h<10?l.formatDistance("lessThanXSeconds",10,p):h<20?l.formatDistance("lessThanXSeconds",20,p):h<40?l.formatDistance("halfAMinute",0,p):h<60?l.formatDistance("lessThanXMinutes",1,p):l.formatDistance("xMinutes",1,p):0===g?l.formatDistance("lessThanXMinutes",1,p):l.formatDistance("xMinutes",g,p);if(g<45)return l.formatDistance("xMinutes",g,p);if(g<90)return l.formatDistance("aboutXHours",1,p);if(g<1440){var v=Math.round(g/60);return l.formatDistance("aboutXHours",v,p)}if(g<2520)return l.formatDistance("xDays",1,p);if(g<fn){var b=Math.round(g/1440);return l.formatDistance("xDays",b,p)}if(g<86400)return A=Math.round(g/fn),l.formatDistance("aboutXMonths",A,p);if((A=cn(d,u))<12){var y=Math.round(g/fn);return l.formatDistance("xMonths",y,p)}var C=A%12,w=Math.floor(A/12);return C<3?l.formatDistance("aboutXYears",w,p):C<9?l.formatDistance("overXYears",w,p):l.formatDistance("almostXYears",w+1,p)}var hn=["fatal","critical","serious","caution","normal","standby","off"],mn={logger:self.console,WebSocket:self.WebSocket},gn={log(...t){this.enabled&&(t.push(Date.now()),mn.logger.log("[ActionCable]",...t))}};const vn=()=>(new Date).getTime(),bn=t=>(vn()-t)/1e3;class yn{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=vn(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),gn.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=vn(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),gn.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordPing(){this.pingedAt=vn()}recordConnect(){this.reconnectAttempts=0,this.recordPing(),delete this.disconnectedAt,gn.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=vn(),gn.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){const{staleThreshold:t,reconnectionBackoffRate:n}=this.constructor;return 1e3*t*Math.pow(1+n,Math.min(this.reconnectAttempts,10))*(1+(0===this.reconnectAttempts?1:n)*Math.random())}reconnectIfStale(){this.connectionIsStale()&&(gn.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${bn(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?gn.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${bn(this.disconnectedAt)} s`):(gn.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return bn(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&bn(this.disconnectedAt)<this.constructor.staleThreshold}visibilityDidChange(){"visible"===document.visibilityState&&setTimeout((()=>{!this.connectionIsStale()&&this.connection.isOpen()||(gn.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}}yn.staleThreshold=6,yn.reconnectionBackoffRate=.15;var Cn={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]};const{message_types:wn,protocols:kn}=Cn,xn=kn.slice(0,kn.length-1),_n=[].indexOf;class Sn{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new yn(this),this.disconnected=!0}send(t){return!!this.isOpen()&&(this.webSocket.send(JSON.stringify(t)),!0)}open(){return this.isActive()?(gn.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1):(gn.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${kn}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new mn.WebSocket(this.consumer.url,kn),this.installEventHandlers(),this.monitor.start(),!0)}close({allowReconnect:t}={allowReconnect:!0}){if(t||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if(gn.log(`Reopening WebSocket, current state is ${this.getState()}`),!this.isActive())return this.open();try{return this.close()}catch(t){gn.log("Failed to reopen WebSocket",t)}finally{gn.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}isProtocolSupported(){return _n.call(xn,this.getProtocol())>=0}isState(...t){return _n.call(t,this.getState())>=0}getState(){if(this.webSocket)for(let t in mn.WebSocket)if(mn.WebSocket[t]===this.webSocket.readyState)return t.toLowerCase();return null}installEventHandlers(){for(let t in this.events){const n=this.events[t].bind(this);this.webSocket[`on${t}`]=n}}uninstallEventHandlers(){for(let t in this.events)this.webSocket[`on${t}`]=function(){}}}Sn.reopenDelay=500,Sn.prototype.events={message(t){if(!this.isProtocolSupported())return;const{identifier:n,message:e,reason:o,reconnect:i,type:r}=JSON.parse(t.data);switch(r){case wn.welcome:return this.monitor.recordConnect(),this.subscriptions.reload();case wn.disconnect:return gn.log(`Disconnecting. Reason: ${o}`),this.close({allowReconnect:i});case wn.ping:return this.monitor.recordPing();case wn.confirmation:return this.subscriptions.confirmSubscription(n),this.subscriptions.notify(n,"connected");case wn.rejection:return this.subscriptions.reject(n);default:return this.subscriptions.notify(n,"received",e)}},open(){if(gn.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return gn.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(t){if(gn.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){gn.log("WebSocket onerror event")}};class En{constructor(t,n={},e){this.consumer=t,this.identifier=JSON.stringify(n),function(t,n){if(null!=n)for(let e in n){const o=n[e];t[e]=o}}(this,e)}perform(t,n={}){return n.action=t,this.send(n)}send(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}}class Tn{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){-1==this.pendingSubscriptions.indexOf(t)?(gn.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):gn.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){gn.log(`SubscriptionGuarantor forgetting ${t.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter((n=>n!==t))}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout((()=>{this.subscriptions&&"function"==typeof this.subscriptions.subscribe&&this.pendingSubscriptions.map((t=>{gn.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}}class Bn{constructor(t){this.consumer=t,this.guarantor=new Tn(this),this.subscriptions=[]}create(t,n){const e="object"==typeof t?t:{channel:t},o=new En(this.consumer,e,n);return this.add(o)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map((t=>(this.forget(t),this.notify(t,"rejected"),t)))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter((n=>n!==t)),t}findAll(t){return this.subscriptions.filter((n=>n.identifier===t))}reload(){return this.subscriptions.map((t=>this.subscribe(t)))}notifyAll(t,...n){return this.subscriptions.map((e=>this.notify(e,t,...n)))}notify(t,n,...e){let o;return o="string"==typeof t?this.findAll(t):[t],o.map((t=>"function"==typeof t[n]?t[n](...e):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){gn.log(`Subscription confirmed ${t}`),this.findAll(t).map((t=>this.guarantor.forget(t)))}sendCommand(t,n){const{identifier:e}=t;return this.consumer.send({command:n,identifier:e})}}class On{constructor(t){this._url=t,this.subscriptions=new Bn(this),this.connection=new Sn(this)}get url(){return function(t){if("function"==typeof t&&(t=t()),t&&!/^wss?:/i.test(t)){const n=document.createElement("a");return n.href=t,n.href=n.href,n.protocol=n.protocol.replace("http","ws"),n.href}return t}(this._url)}send(t){return this.connection.send(t)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}}function Nn(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}yn.staleThreshold=10;var Dn=function(){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/openc3-api/cable";it(this,t),this._cable=null,this._url=n}return st(t,[{key:"disconnect",value:function(){this._cable&&this._cable.disconnect()}},{key:"createSubscription",value:function(t,n){var e=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then((function(n){if(n&&OpenC3Auth.setTokens(),null==e._cable){var r=e._url+"?scope="+window.openc3Scope+"&authorization="+localStorage.openc3Token;e._cable=function(t=function(t){const n=document.head.querySelector("meta[name='action-cable-url']");if(n)return n.getAttribute("content")}()||Cn.default_mount_path){return new On(t)}(r)}return e._cable.subscriptions.create(function(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?Nn(Object(e),!0).forEach((function(n){(0,lt.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Nn(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}({channel:t},i),o)}))}},{key:"recordPing",value:function(){this._cable.connection.monitor.recordPing()}}]),t}();function In(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}function Rn(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?In(Object(e),!0).forEach((function(n){(0,lt.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):In(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}var Mn=100,$n={props:{size:{type:[String,Number],default:26}},data:function(){return{AstroStatusColors:Qt,cable:new Dn,subscription:null,notifications:[],showNotificationPane:!1,toastNotification:{},notificationDialog:!1,selectedNotification:{},settingsDialog:!1,showToast:!0}},computed:{badgeColor:function(){if(!this.unreadCount)return Qt.off;var t=this.unreadNotifications.map((function(t){return t.severity})).filter((function(t,n,e){return e.indexOf(t)===n}));return Qt[function(t){var n=function(t){return t.map((function(t){return hn.indexOf(t.toLowerCase())}))}(t),e=Math.min.apply(Math,sn(n));return hn[e]}(t)]},readNotifications:function(){return this.notifications.filter((function(t){return t.read})).sort((function(t,n){return n.time-t.time}))},unreadNotifications:function(){return this.notifications.filter((function(t){return!t.read})).sort((function(t,n){return n.time-t.time}))},unreadCount:function(){var t=this.unreadNotifications.length;return t>=Mn&&(t+="+"),t},notificationList:function(){var t=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t){return t.severity};return t.reduce((function(t,e){var o=n(e);return t[o]||(t[o]=[]),t[o].push(e),t}),{})}(this.unreadNotifications),n=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t){return t.severity};return t.sort((function(t,e){return hn.indexOf(n(t))-hn.indexOf(n(e))}))}(Object.keys(t),(function(t){return t})).flatMap((function(n){return[{header:n.charAt(0).toUpperCase()+n.slice(1)}].concat(sn(t[n]))}));return this.readNotifications.length&&(n=n.concat([{header:"Read"}].concat(sn(this.readNotifications)))),n}},watch:{showNotificationPane:function(t){t||(this.selectedNotification.title?(this.notificationDialog=!1,this.selectedNotification={}):this.markAllAsRead())},showToast:function(t){localStorage.notoast=!t}},created:function(){this.showToast="false"===localStorage.notoast,this.subscribe()},destroyed:function(){this.subscription&&this.subscription.unsubscribe(),this.cable.disconnect()},methods:{markAllAsRead:function(){this.notifications.forEach((function(t){t.read=!0,(!localStorage.lastReadNotification||localStorage.lastReadNotification<t.msg_id)&&(localStorage.lastReadNotification=t.msg_id)}))},clearNotifications:function(){this.markAllAsRead(),this.notifications=[],localStorage.notificationStreamOffset=localStorage.lastReadNotification,this.showNotificationPane=!1},toggleNotificationPane:function(){this.showNotificationPane=!this.showNotificationPane},toggleSettingsDialog:function(){this.settingsDialog=!this.settingsDialog},openDialog:function(t){t.read=!0,(!localStorage.lastReadNotification||localStorage.lastReadNotification<t.msg_id)&&(localStorage.lastReadNotification=t.msg_id),this.selectedNotification=t,this.notificationDialog=!0},navigate:function(t){window.open(t,"_blank")},subscribe:function(){var t=this;this.cable.createSubscription("NotificationsChannel",window.openc3Scope,{received:function(n){return t.received(n)}},{start_offset:localStorage.notificationStreamOffset||localStorage.lastReadNotification}).then((function(n){t.subscription=n}))},received:function(t){var n=this;this.cable.recordPing(),t.length>Mn&&t.splice(0,t.length-Mn);var e=!1;t.forEach((function(t){t.read=t.msg_id<=localStorage.lastReadNotification,t.severity=t.severity||"normal",t.read||!["critical","serious"].includes(t.severity)&&"critical"!==t.severity||(e=!0,n.toastNotification=t)})),this.showToast&&e&&this.$notify[this.toastNotification.severity](Rn(Rn({},this.toastNotification),{},{type:"notification",duration:"critical"===this.toastNotification.severity?null:5e3,saveToHistory:!1})),this.notifications.length+t.length>Mn&&this.notifications.splice(0,this.notifications.length+t.length-Mn),this.notifications=this.notifications.concat(t)}},filters:{shortDateTime:function(t){return t?function(t,n){return r(1,arguments),An(t,Date.now(),n)}(new Date(t/1e6),{addSuffix:!0}):""}}},zn=$n,Pn=u(1840),Un={};Un.styleTagTransform=St(),Un.setAttributes=wt(),Un.insert=yt().bind(null,"head"),Un.domAPI=vt(),Un.insertStyleElement=xt(),mt()(Pn.Z,Un),Pn.Z&&Pn.Z.locals&&Pn.Z.locals;var jn=(0,tt.Z)(zn,rn,[],!1,null,"eda8ca60",null);jn.options.__file="packages/openc3-tool-common/src/tools/base/components/Notifications.vue";var Fn=jn.exports,Ln=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("v-overlay",{staticClass:"overlay",attrs:{value:t.showUserMenu}}),t._v(" "),e("v-menu",{attrs:{transition:"slide-y-transition","offset-y":"","close-on-content-click":!1,"nudge-width":120,"nudge-bottom":20},scopedSlots:t._u([{key:"activator",fn:function(n){var o=n.on,i=n.attrs;return[e("v-btn",t._g(t._b({attrs:{icon:""}},"v-btn",i,!1),o),[e("v-icon",{attrs:{size:t.size}},[t._v(" mdi-account ")])],1)]}}]),model:{value:t.showUserMenu,callback:function(n){t.showUserMenu=n},expression:"showUserMenu"}},[t._v(" "),e("v-card",[e("v-card-text",{staticClass:"text-center"},[e("div",{staticStyle:{"text-align":"center",margin:"5px"}},[t._v(t._s(t.username))]),t._v(" "),t.authenticated?e("div",[e("v-btn",{attrs:{block:"",color:"primary"},on:{click:t.logout}},[t._v(" Logout ")])],1):e("div",[e("v-btn",{attrs:{block:"",color:"primary"},on:{click:t.login}},[t._v(" Login ")])],1),t._v(" "),e("div",[e("v-switch",{attrs:{label:"Colorblind mode"},model:{value:t.colorblindMode,callback:function(n){t.colorblindMode=n},expression:"colorblindMode"}})],1)])],1)],1)],1)};Ln._withStripped=!0;var Gn={props:{size:{type:[String,Number],default:26}},data:function(){var t=OpenC3Auth.user();return{showUserMenu:!1,authenticated:!!localStorage.openc3Token,username:t.name}},computed:{colorblindMode:{get:function(){return"true"===localStorage.colorblindMode},set:function(t){localStorage.colorblindMode=t}}},methods:{logout:function(){OpenC3Auth.logout()},login:function(){OpenC3Auth.login(location.href)}}},Hn=u(6793),Wn={};Wn.styleTagTransform=St(),Wn.setAttributes=wt(),Wn.insert=yt().bind(null,"head"),Wn.domAPI=vt(),Wn.insertStyleElement=xt(),mt()(Hn.Z,Wn),Hn.Z&&Hn.Z.locals&&Hn.Z.locals;var Yn=(0,tt.Z)(Gn,Ln,[],!1,null,"26b5fc12",null);Yn.options.__file="packages/openc3-tool-common/src/tools/base/components/UserMenu.vue";var qn={components:{ScopeSelector:zt,AlertHistory:on,Notifications:Fn,UserMenu:Yn.exports},props:{edition:{type:String,default:""}},data:function(){return{items:[],drawer:!0,appNav:{},logo:It,initiallyOpen:[]}},computed:{shownTools:function(){for(var t={},n=0,e=Object.keys(this.appNav);n<e.length;n++){var o=e[n];this.appNav[o].shown&&"Admin"!==this.appNav[o].category&&(t[o]=this.appNav[o])}return t},adminTools:function(){for(var t={},n=0,e=Object.keys(this.appNav);n<e.length;n++){var o=e[n];this.appNav[o].shown&&"Admin"===this.appNav[o].category&&(t[o]=this.appNav[o])}return t}},created:function(){var t=this;Dt.Z.get("/openc3-api/tools/all",{params:{scope:"DEFAULT"}}).then((function(n){t.appNav=n.data;for(var e=1,o=function(){if(l=r[i],t.appNav[l].shown){if(t.appNav[l].category&&"Admin"!==t.appNav[l].category){t.initiallyOpen.push(t.appNav[l].category);var n=t.items.filter((function(n){return n.name===t.appNav[l].category}));0===n.length?(t.items.push({id:e,name:t.appNav[l].category,children:[{id:e+1,name:t.appNav[l].name,icon:t.appNav[l].icon,url:t.appNav[l].url}]}),e++):n[0].children.push({id:e,name:t.appNav[l].name,icon:t.appNav[l].icon,url:t.appNav[l].url})}else t.appNav[l].category||t.items.push({id:e,name:t.appNav[l].name,icon:t.appNav[l].icon,url:t.appNav[l].url});if(e++,t.appNav[l].folder_name){var o=t.appNav[l].folder_name,a="@openc3/tool-"+o;(0,Rt.registerApplication)({name:a,app:function(){return System.import(a)},activeWhen:["/tools/"+o]})}}},i=0,r=Object.keys(t.appNav);i<r.length;i++)o();if((0,Rt.start)({urlRerouteOnly:!0}),"/"==window.location.pathname||"/tools"==window.location.pathname||"/tools/"==window.location.pathname)for(var a=0,s=Object.keys(t.shownTools);a<s.length;a++){var l=s[a];if(t.appNav[l].shown){history.replaceState(null,"",t.appNav[l].url);break}}setInterval((function(){OpenC3Auth.updateToken(120).then((function(t){t&&OpenC3Auth.setTokens()}))}),6e4)}))},methods:{newTabUrl:function(t){var n=null;return(n="/"==t.url[0]&&"/"!=t.url[1]?new URL(t.url,window.location.origin):new URL(t.url)).searchParams.set("scope",window.openc3Scope),n.href}}},Zn=u(6509),Jn={};Jn.styleTagTransform=St(),Jn.setAttributes=wt(),Jn.insert=yt().bind(null,"head"),Jn.domAPI=vt(),Jn.insertStyleElement=xt(),mt()(Zn.Z,Jn),Zn.Z&&Zn.Z.locals&&Zn.Z.locals;var Xn=u(6716),Qn={};Qn.styleTagTransform=St(),Qn.setAttributes=wt(),Qn.insert=yt().bind(null,"head"),Qn.domAPI=vt(),Qn.insertStyleElement=xt(),mt()(Xn.Z,Qn),Xn.Z&&Xn.Z.locals&&Xn.Z.locals;var Vn=(0,tt.Z)(qn,Nt,[],!1,null,"00ae1763",null);Vn.options.__file="packages/openc3-tool-common/src/tools/base/AppNav.vue";var Kn=Vn.exports,te=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("v-dialog",{attrs:{width:"500"},model:{value:t.dialog,callback:function(n){t.dialog=n},expression:"dialog"}},[e("v-card",[e("v-card-title",[t._v(" Clock out of sync ")]),t._v(" "),e("v-card-text",[t._v("\n We've detected that your clock is approximately\n "+t._s(Math.abs(t.approximateDiscrepancySec))+" seconds\n "+t._s(t.approximateDiscrepancySec>0?"behind":"ahead of")+" server time.\n This can cause issues and might have unknown side effects.\n "),e("v-checkbox",{attrs:{label:"Don't show this again"},model:{value:t.suppress,callback:function(n){t.suppress=n},expression:"suppress"}})],1),t._v(" "),e("v-divider"),t._v(" "),e("v-card-actions",[e("v-btn",{attrs:{color:"primary",text:""},on:{click:t.dismiss}},[t._v(" Dismiss ")])],1)],1)],1)};te._withStripped=!0;var ne=u(4206),ee=u.n(ne),oe={data:function(){return{dismissed:!1,suppress:!1,discrepancy:0}},created:function(){var t=this;this.suppress="true"===localStorage.suppresswarning__clock_out_of_sync_with_server,this.suppress||ee().get("/openc3-api/time").then((function(n){t.discrepancy=n.data.now_nsec/1e6-Date.now()})).catch((function(n){t.dismissed=!0}))},methods:{dismiss:function(){localStorage.suppresswarning__clock_out_of_sync_with_server=this.suppress,this.dismissed=!0}},computed:{approximateDiscrepancySec:function(){return(this.discrepancy/1e3).toFixed()},dialog:function(){return!this.dismissed&&Math.abs(this.discrepancy)>=3e3}}},ie=(0,tt.Z)(oe,te,[],!1,null,null,null);ie.options.__file="packages/openc3-tool-common/src/tools/base/components/TimeCheck.vue";var re=ie.exports,ae={data:function(){return{api:null,classification:{text:"",fontColor:"white",backgroundColor:"red",topHeight:0,bottomHeight:0}}},computed:{classificationStyles:function(){return['--classification-text:"'.concat(this.classification.text,'";'),"--classification-font-color:".concat(this.classification.fontColor,";"),"--classification-background-color:".concat(this.classification.backgroundColor,";"),"--classification-height-top:".concat(this.classification.topHeight,"px;"),"--classification-height-bottom:".concat(this.classification.bottomHeight,"px;")].join("")}},created:function(){this.api=new pt,this.load()},methods:{load:function(){var t=this;this.api.get_setting("classification_banner").then((function(n){n&&(t.classification=JSON.parse(n))})).catch((function(t){}))}}},se=u(7650),le={};le.styleTagTransform=St(),le.setAttributes=wt(),le.insert=yt().bind(null,"head"),le.domAPI=vt(),le.insertStyleElement=xt(),mt()(se.Z,le),se.Z&&se.Z.locals&&se.Z.locals;var ce=(0,tt.Z)(ae,void 0,void 0,!1,null,null,null);ce.options.__file="packages/openc3-tool-common/src/tools/base/components/ClassificationBanners.vue";var ue=ce.exports;function de(){var t="/openc3/plugins/openc3-tool-base/src/App.vue",n=new Function("return this")(),e="__coverage__",o=n[e]||(n[e]={});o[t]&&"fa8bcfd5c2e5371a527d487a92b17e6567b8f15b"===o[t].hash||(o[t]={path:"/openc3/plugins/openc3-tool-base/src/App.vue",statementMap:{},fnMap:{},branchMap:{},s:{},f:{},b:{},inputSourceMap:{version:3,sources:["App.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"App.vue",sourceRoot:"src",sourcesContent:['\x3c!--\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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n--\x3e\n\n<template>\n <v-app :style="classificationStyles">\n <app-nav class="d-print-none" edition="COSMOS" />\n\n \x3c!-- Sizes your content based upon application components --\x3e\n <v-main>\n <v-container fluid>\n <div id="openc3-tool"></div>\n <div><router-view /></div>\n </v-container>\n </v-main>\n <app-footer app class="d-print-none" edition="COSMOS" license="AGPLv3" />\n <time-check />\n </v-app>\n</template>\n\n<script>\nimport AppFooter from \'../../packages/openc3-tool-common/src/tools/base/AppFooter\'\nimport AppNav from \'../../packages/openc3-tool-common/src/tools/base/AppNav\'\nimport TimeCheck from \'../../packages/openc3-tool-common/src/tools/base/components/TimeCheck\'\nimport ClassificationBanners from \'../../packages/openc3-tool-common/src/tools/base/components/ClassificationBanners\'\nexport default {\n components: {\n AppFooter,\n AppNav,\n TimeCheck,\n },\n mixins: [ClassificationBanners],\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"fa8bcfd5c2e5371a527d487a92b17e6567b8f15b"});var i=o[t];return de=function(){return i},i}de();var pe={components:{AppFooter:Ot,AppNav:Kn,TimeCheck:re},mixins:[ue]},fe=(0,tt.Z)(pe,n,[],!1,null,null,null);fe.options.__file="src/App.vue";var Ae=fe.exports,he=u(4688);function me(){var t="/openc3/plugins/openc3-tool-base/src/router.js",n=new Function("return this")(),e="__coverage__",o=n[e]||(n[e]={});o[t]&&"e884ed9d4d0f1b2f1d582e44c67785b854c9d24b"===o[t].hash||(o[t]={path:"/openc3/plugins/openc3-tool-base/src/router.js",statementMap:{0:{start:{line:26,column:0},end:{line:26,column:15}},1:{start:{line:36,column:8},end:{line:38,column:9}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:35,column:17},end:{line:35,column:18}},loc:{start:{line:36,column:8},end:{line:38,column:9}},line:36}},branchMap:{},s:{0:0,1:0},f:{0:0},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"e884ed9d4d0f1b2f1d582e44c67785b854c9d24b"});var i=o[t];return me=function(){return i},i}me(),me().s[0]++,t.default.use(he.default);var ge=new he.default({mode:"history",base:void 0,routes:[{path:"/login",name:"Login",component:function(){return me().f[0]++,me().s[1]++,u.e(543).then(u.bind(u,1543))}}]}),ve=u(9191);t.default.use(ve.default),window.hasOwnProperty("OpenC3Store")||(window.OpenC3Store=new ve.default.Store({state:{notifyHistory:[]},getters:{},mutations:{notifyAddHistory:function(t,n){t.notifyHistory.length>=100&&(t.notifyHistory.length=99),t.notifyHistory.unshift(n)},notifyClearHistory:function(t){t.notifyHistory=[]}},modules:{}}));var be=window.OpenC3Store;function ye(t){return ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ye(t)}function Ce(t,n,e){return(n=function(t){var n=function(t,n){if("object"!==ye(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var o=e.call(t,"string");if("object"!==ye(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===ye(n)?n:String(n)}(n))in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}u(7861);var we=u(9731);function ke(){var t="/openc3/plugins/openc3-tool-base/src/plugins/vuetify.js",n=new Function("return this")(),e="__coverage__",o=n[e]||(n[e]={});o[t]&&"1e74846ce649fd5e77c4a4792c7d1620be397d94"===o[t].hash||(o[t]={path:"/openc3/plugins/openc3-tool-base/src/plugins/vuetify.js",statementMap:{0:{start:{line:24,column:0},end:{line:24,column:16}}},fnMap:{},branchMap:{},s:{0:0},f:{},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"1e74846ce649fd5e77c4a4792c7d1620be397d94"});var i=o[t];return ke=function(){return i},i}function xe(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}ke(),ke().s[0]++,t.default.use(we.default);var _e=new we.default({theme:{dark:!0,options:{customProperties:!0},themes:{dark:{primary:"#005a8f",secondary:"#4dacff",tertiary:"#283f58"},light:{primary:"#cce6ff",secondary:"#cce6ff"}}},icons:{values:function(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?xe(Object(e),!0).forEach((function(n){Ce(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):xe(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}({},Xt)}}),Se=function(){var t=this,n=t.$createElement;return(t._self._c||n)("div",{style:t.iconStyle})};Se._withStripped=!0;var Ee=u.p+"91e6b78a8fe72c6a5cc5.png",Te=(u.p,{props:{status:{type:String,required:!0,validator:function(t){return Vt.includes(t)}},large:{type:Boolean},small:{type:Boolean},scale:{type:Number}},computed:{icons:function(){return Ee},scaleFactor:function(){return this.scale?this.scale:this.large?1:this.small?.3:.5},iconStyle:function(){var t=224*this.scaleFactor,n=32*this.scaleFactor,e=32*this.scaleFactor,o=Vt.indexOf(this.status);return["background-image: url(".concat(this.icons,");"),"background-position-x: -".concat(o*e,"px;"),"background-size: ".concat(t,"px ").concat(n,"px;"),"height: ".concat(e,"px;"),"width: ".concat(e,"px;")].join("")}}}),Be=(0,tt.Z)(Te,Se,[],!1,null,null,null);Be.options.__file="packages/openc3-tool-common/src/components/icons/AstroStatusIndicator.vue";var Oe=Be.exports;function Ne(){var t="/openc3/plugins/openc3-tool-base/src/openc3-tool-base.js",n=new Function("return this")(),e="__coverage__",o=n[e]||(n[e]={});o[t]&&"948bc4bd7769e8307c1a0a84e62fb1c3692a0fbd"===o[t].hash||(o[t]={path:"/openc3/plugins/openc3-tool-base/src/openc3-tool-base.js",statementMap:{0:{start:{line:5,column:0},end:{line:5,column:32}},1:{start:{line:12,column:0},end:{line:12,column:61}},2:{start:{line:14,column:16},end:{line:14,column:43}},3:{start:{line:15,column:0},end:{line:26,column:2}},4:{start:{line:18,column:2},end:{line:18,column:32}},5:{start:{line:20,column:2},end:{line:25,column:27}},6:{start:{line:24,column:19},end:{line:24,column:25}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:15,column:30},end:{line:15,column:31}},loc:{start:{line:15,column:36},end:{line:26,column:1}},line:15},1:{name:"(anonymous_1)",decl:{start:{line:24,column:12},end:{line:24,column:13}},loc:{start:{line:24,column:19},end:{line:24,column:25}},line:24}},branchMap:{},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0},f:{0:0,1:0},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"948bc4bd7769e8307c1a0a84e62fb1c3692a0fbd"});var i=o[t];return Ne=function(){return i},i}Ne(),Ne().s[0]++,t.default.config.productionTip=!1,Ne().s[1]++,t.default.component("astro-status-indicator",Oe);var De=(Ne().s[2]++,OpenC3Auth.getInitOptions());Ne().s[3]++,OpenC3Auth.init(De).then((function(){Ne().f[0]++,Ne().s[4]++,window.openc3Scope="DEFAULT",Ne().s[5]++,new t.default({router:ge,store:be,vuetify:_e,render:function(t){return Ne().f[1]++,Ne().s[6]++,t(Ae)}}).$mount("#openc3-main")}))}(),d}())}}}));
2
2
  //# sourceMappingURL=openc3-tool-base.js.map