openc3-cosmos-tool-cmdtlmserver 5.4.3.pre.beta0.20230214173507 → 5.5.0.pre.beta0.20230217010436

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 46cdbd6ce7fe80567788a7dd69abaeae31117c5c4a70a1b1b07e1d0b763202e1
4
- data.tar.gz: 2d03de70fee425aa3d55b242d3c9a5277747841edd9bd4d40aff5a485390b05d
3
+ metadata.gz: fbf8cf5fb64f5ff8245e0798f709ec57dc575b098b21ffead5d77d161434d3cd
4
+ data.tar.gz: dfa5aec5cf1cd2eb2edb4599ad04ba72b920f5b724f6a256ade4f2145c9da5b0
5
5
  SHA512:
6
- metadata.gz: 6c6d8a21588e97211720ef054a4baf98ed1f9dc24d6412ce6d42271c7321be3b1cbb93a49e724496e382efc1c57eef3db6d784f0741eca52752d9de92894f89e
7
- data.tar.gz: f1e4bb28ba20ddd0916ca2088eb51cb0d5a6374e26e1d3c270fe1b7fff67d6d1597faebb66db82affab0088b2adada7771bfc664bf70dae97b27d4098b099dcc
6
+ metadata.gz: ebcbea0f5cd95c8f85d02d8f4080b3f66f92783330b5289ca245f4ebead6114416b255fb86cf26c871f494468cd5105182bcaddcd298a808e163b05567e34cfa
7
+ data.tar.gz: 00654e399c31832cfac2c4406d2287aea7af847229015f268d50408213d355297d0d2f3f8427d09fe5d7c0e9e6f4dcb12fc0569080fb56a020c6282d52ea941c
@@ -0,0 +1,2 @@
1
+ (self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]=self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]||[]).push([[839],{8096:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return v}});t(7950),t(4908);function l(){var e="/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue",n="499ccaa71f2374dfb0f29948928f4b2dcaabd0c9",t=new Function("return this")(),a="__coverage__",s={path:"/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue",statementMap:{0:{start:{line:1,column:13},end:{line:5,column:1}},1:{start:{line:1,column:39},end:{line:1,column:43}},2:{start:{line:1,column:47},end:{line:1,column:59}},3:{start:{line:1,column:60},end:{line:4,column:84}},4:{start:{line:1,column:381},end:{line:1,column:405}},5:{start:{line:1,column:709},end:{line:1,column:723}},6:{start:{line:6,column:22},end:{line:6,column:24}}},fnMap:{0:{name:"render",decl:{start:{line:1,column:22},end:{line:1,column:28}},loc:{start:{line:1,column:30},end:{line:5,column:1}},line:1},1:{name:"(anonymous_1)",decl:{start:{line:1,column:365},end:{line:1,column:366}},loc:{start:{line:1,column:380},end:{line:1,column:406}},line:1},2:{name:"(anonymous_2)",decl:{start:{line:1,column:693},end:{line:1,column:694}},loc:{start:{line:1,column:708},end:{line:1,column:724}},line:1}},branchMap:{},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0},f:{0:0,1:0,2:0},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"499ccaa71f2374dfb0f29948928f4b2dcaabd0c9"},i=t[a]||(t[a]={});i[e]&&i[e].hash===n||(i[e]=s);var o=i[e];return l=function(){return o},o}l(),l().s[0]++;var a=function(){l().f[0]++;var e=(l().s[1]++,this),n=(l().s[2]++,e._self._c);return l().s[3]++,n("div",[n("v-card",{attrs:{flat:""}},[n("v-container",{staticClass:"ma-0 pa-4"},[n("v-row",{attrs:{"no-gutters":""}},[n("v-col",{attrs:{cols:"auto"}},[n("v-select",{attrs:{label:"Limits Set",items:e.limitsSets,"data-test":"limits-set"},model:{value:e.currentLimitsSet,callback:function(n){l().f[1]++,l().s[4]++,e.currentLimitsSet=n},expression:"currentLimitsSet"}})],1)],1)],1)],1),n("v-card",[n("v-card-title",[e._v(" "+e._s(e.data.length)+" Metrics "),n("v-spacer"),n("v-text-field",{attrs:{"append-icon":"mdi-magnify",label:"Search","single-line":"","hide-details":""},model:{value:e.search,callback:function(n){l().f[2]++,l().s[5]++,e.search=n},expression:"search"}})],1),n("v-data-table",{attrs:{headers:e.headers,items:e.data,search:e.search,"items-per-page":10,"footer-props":{itemsPerPageOptions:[10,20,50,100,1e3],showFirstLastPage:!0},"calculate-widths":"","multi-sort":"","data-test":"metrics-table"}})],1)],1)},s=(l().s[6]++,[]),i=t(7302),o=(t(1245),t(5883),t(6728),t(4872)),r=t(8123);function c(){var e="/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue",n="e6bdaf4eb9b5505be83df8a2ff546e208ae0939e",t=new Function("return this")(),l="__coverage__",a={path:"/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue",statementMap:{0:{start:{line:12,column:4},end:{line:38,column:5}},1:{start:{line:42,column:6},end:{line:42,column:43}},2:{start:{line:46,column:4},end:{line:48,column:6}},3:{start:{line:47,column:6},end:{line:47,column:28}},4:{start:{line:49,column:4},end:{line:49,column:30}},5:{start:{line:50,column:4},end:{line:53,column:5}},6:{start:{line:54,column:4},end:{line:54,column:17}},7:{start:{line:57,column:4},end:{line:57,column:49}},8:{start:{line:61,column:6},end:{line:63,column:8}},9:{start:{line:62,column:8},end:{line:62,column:38}},10:{start:{line:66,column:6},end:{line:66,column:36}},11:{start:{line:69,column:6},end:{line:73,column:7}},12:{start:{line:70,column:8},end:{line:70,column:44}},13:{start:{line:71,column:13},end:{line:73,column:7}},14:{start:{line:72,column:8},end:{line:72,column:43}},15:{start:{line:76,column:6},end:{line:76,column:43}},16:{start:{line:76,column:37},end:{line:76,column:43}},17:{start:{line:77,column:6},end:{line:82,column:8}},18:{start:{line:78,column:8},end:{line:78,column:22}},19:{start:{line:79,column:8},end:{line:81,column:9}},20:{start:{line:80,column:10},end:{line:80,column:60}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:11,column:2},end:{line:11,column:3}},loc:{start:{line:11,column:9},end:{line:39,column:3}},line:11},1:{name:"(anonymous_1)",decl:{start:{line:41,column:22},end:{line:41,column:23}},loc:{start:{line:41,column:48},end:{line:43,column:5}},line:41},2:{name:"(anonymous_2)",decl:{start:{line:45,column:2},end:{line:45,column:3}},loc:{start:{line:45,column:12},end:{line:55,column:3}},line:45},3:{name:"(anonymous_3)",decl:{start:{line:46,column:36},end:{line:46,column:37}},loc:{start:{line:46,column:46},end:{line:48,column:5}},line:46},4:{name:"(anonymous_4)",decl:{start:{line:56,column:13},end:{line:56,column:14}},loc:{start:{line:56,column:25},end:{line:58,column:3}},line:56},5:{name:"(anonymous_5)",decl:{start:{line:60,column:25},end:{line:60,column:26}},loc:{start:{line:60,column:37},end:{line:64,column:5}},line:60},6:{name:"(anonymous_6)",decl:{start:{line:61,column:37},end:{line:61,column:38}},loc:{start:{line:61,column:49},end:{line:63,column:7}},line:61},7:{name:"(anonymous_7)",decl:{start:{line:65,column:4},end:{line:65,column:5}},loc:{start:{line:65,column:24},end:{line:67,column:5}},line:65},8:{name:"(anonymous_8)",decl:{start:{line:68,column:4},end:{line:68,column:5}},loc:{start:{line:68,column:29},end:{line:74,column:5}},line:68},9:{name:"(anonymous_9)",decl:{start:{line:75,column:4},end:{line:75,column:5}},loc:{start:{line:75,column:13},end:{line:83,column:5}},line:75},10:{name:"(anonymous_10)",decl:{start:{line:77,column:34},end:{line:77,column:35}},loc:{start:{line:77,column:47},end:{line:82,column:7}},line:77}},branchMap:{0:{loc:{start:{line:42,column:6},end:{line:42,column:43}},type:"binary-expr",locations:[{start:{line:42,column:6},end:{line:42,column:14}},{start:{line:42,column:18},end:{line:42,column:43}}],line:42},1:{loc:{start:{line:69,column:6},end:{line:73,column:7}},type:"if",locations:[{start:{line:69,column:6},end:{line:73,column:7}},{start:{line:71,column:13},end:{line:73,column:7}}],line:69},2:{loc:{start:{line:71,column:13},end:{line:73,column:7}},type:"if",locations:[{start:{line:71,column:13},end:{line:73,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:71},3:{loc:{start:{line:76,column:6},end:{line:76,column:43}},type:"if",locations:[{start:{line:76,column:6},end:{line:76,column:43}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:76}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0]},inputSourceMap:{version:3,sources:["StatusTab.vue"],names:[],mappings:";AAsEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"StatusTab.vue",sourceRoot:"src/tools/CmdTlmServer",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 \x3c!-- Use a container here so we can do cols=\"auto\" to resize v-select --\x3e\n <v-card flat>\n <v-container class=\"ma-0 pa-4\">\n <v-row no-gutters>\n <v-col cols=\"auto\">\n <v-select\n label=\"Limits Set\"\n :items=\"limitsSets\"\n v-model=\"currentLimitsSet\"\n data-test=\"limits-set\"\n />\n </v-col>\n </v-row>\n </v-container>\n </v-card>\n <v-card>\n <v-card-title>\n {{ data.length }} Metrics\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n append-icon=\"mdi-magnify\"\n label=\"Search\"\n single-line\n hide-details\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"data\"\n :search=\"search\"\n :items-per-page=\"10\"\n :footer-props=\"{\n itemsPerPageOptions: [10, 20, 50, 100, 1000],\n showFirstLastPage: true,\n }\"\n calculate-widths\n multi-sort\n data-test=\"metrics-table\"\n >\n </v-data-table>\n </v-card>\n </div>\n</template>\n\n<script>\nimport Updater from './Updater'\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\n\nexport default {\n mixins: [Updater],\n props: {\n tabId: Number,\n curTab: Number,\n },\n data() {\n return {\n api: new OpenC3Api(),\n apiStatus: [],\n apiHeaders: [\n { text: 'Port', value: 'port' },\n { text: 'Clients', value: 'clients' },\n { text: 'Requests', value: 'requests' },\n { text: 'Avg Request Time', value: 'avgTime' },\n { text: 'Server Threads', value: 'threads' },\n ],\n backgroundTasks: [],\n backgroundHeaders: [\n { text: 'Name', value: 'name' },\n { text: 'State', value: 'state' },\n { text: 'Status', value: 'status' },\n { text: 'Control', value: 'control' },\n ],\n limitsSets: [],\n currentLimitsSet: '',\n currentSetRefreshInterval: null,\n search: '',\n data: [],\n headers: [\n { text: 'Metric', value: 'metric_name' },\n { text: 'Value', value: 'value' },\n ],\n }\n },\n watch: {\n currentLimitsSet: function (newVal, oldVal) {\n !!oldVal && this.limitsChange(newVal)\n },\n },\n created() {\n this.api.get_limits_sets().then((sets) => {\n this.limitsSets = sets\n })\n this.getCurrentLimitsSet()\n this.currentSetRefreshInterval = setInterval(\n this.getCurrentLimitsSet,\n 60 * 1000\n )\n this.update()\n },\n destroyed: function () {\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n getCurrentLimitsSet: function () {\n this.api.get_limits_set().then((result) => {\n this.currentLimitsSet = result\n })\n },\n limitsChange(value) {\n this.api.set_limits_set(value)\n },\n taskControl(name, state) {\n if (state == 'Start') {\n this.api.start_background_task(name)\n } else if (state == 'Stop') {\n this.api.stop_background_task(name)\n }\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_metrics().then((metrics) => {\n this.data = []\n for (const [key, value] of Object.entries(metrics)) {\n this.data.push({ metric_name: key, value: value })\n }\n })\n },\n },\n}\n<\/script>\n\n<style scoped>\n.container,\n.theme--dark.v-card,\n.theme--dark.v-sheet {\n background-color: var(--v-tertiary-darken2);\n}\n</style>\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"e6bdaf4eb9b5505be83df8a2ff546e208ae0939e"},s=t[l]||(t[l]={});s[e]&&s[e].hash===n||(s[e]=a);var i=s[e];return c=function(){return i},i}c();var u={mixins:[o.Z],props:{tabId:Number,curTab:Number},data:function(){return c().f[0]++,c().s[0]++,{api:new r.k,apiStatus:[],apiHeaders:[{text:"Port",value:"port"},{text:"Clients",value:"clients"},{text:"Requests",value:"requests"},{text:"Avg Request Time",value:"avgTime"},{text:"Server Threads",value:"threads"}],backgroundTasks:[],backgroundHeaders:[{text:"Name",value:"name"},{text:"State",value:"state"},{text:"Status",value:"status"},{text:"Control",value:"control"}],limitsSets:[],currentLimitsSet:"",currentSetRefreshInterval:null,search:"",data:[],headers:[{text:"Metric",value:"metric_name"},{text:"Value",value:"value"}]}},watch:{currentLimitsSet:function(e,n){c().f[1]++,c().s[1]++,c().b[0][0]++,n&&(c().b[0][1]++,this.limitsChange(e))}},created:function(){var e=this;c().f[2]++,c().s[2]++,this.api.get_limits_sets().then((function(n){c().f[3]++,c().s[3]++,e.limitsSets=n})),c().s[4]++,this.getCurrentLimitsSet(),c().s[5]++,this.currentSetRefreshInterval=setInterval(this.getCurrentLimitsSet,6e4),c().s[6]++,this.update()},destroyed:function(){c().f[4]++,c().s[7]++,clearInterval(this.currentSetRefreshInterval)},methods:{getCurrentLimitsSet:function(){var e=this;c().f[5]++,c().s[8]++,this.api.get_limits_set().then((function(n){c().f[6]++,c().s[9]++,e.currentLimitsSet=n}))},limitsChange:function(e){c().f[7]++,c().s[10]++,this.api.set_limits_set(e)},taskControl:function(e,n){c().f[8]++,c().s[11]++,"Start"==n?(c().b[1][0]++,c().s[12]++,this.api.start_background_task(e)):(c().b[1][1]++,c().s[13]++,"Stop"==n?(c().b[2][0]++,c().s[14]++,this.api.stop_background_task(e)):c().b[2][1]++)},update:function(){var e=this;if(c().f[9]++,c().s[15]++,this.tabId!=this.curTab)return c().b[3][0]++,void c().s[16]++;c().b[3][1]++,c().s[17]++,this.api.get_metrics().then((function(n){c().f[10]++,c().s[18]++,e.data=[],c().s[19]++;for(var t=0,l=Object.entries(n);t<l.length;t++){var a=(0,i.Z)(l[t],2),s=a[0],o=a[1];c().s[20]++,e.data.push({metric_name:s,value:o})}}))}}},m=u,A=(t(9282),t(3483)),d=(0,A.Z)(m,a,s,!1,null,"9e4aa408",null),v=d.exports},5883:function(e,n,t){var l=t(3103),a=t(7664).entries;l({target:"Object",stat:!0},{entries:function(e){return a(e)}})},6008:function(e,n,t){"use strict";t.r(n);var l=t(9601),a=t.n(l),s=t(2609),i=t.n(s),o=i()(a());o.push([e.id,".container[data-v-9e4aa408],.theme--dark.v-card[data-v-9e4aa408],.theme--dark.v-sheet[data-v-9e4aa408]{background-color:var(--v-tertiary-darken2)}",""]),n["default"]=o},9282:function(e,n,t){var l=t(6008);l.__esModule&&(l=l.default),"string"===typeof l&&(l=[[e.id,l,""]]),l.locals&&(e.exports=l.locals);var a=t(3514).Z;a("6e799460",l,!0,{sourceMap:!1,shadowMode:!1})}}]);
2
+ //# sourceMappingURL=839.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/839.js","mappings":"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","sources":["webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?0c8b","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?7de2","webpack://@openc3/cosmos-tool-cmdtlmserver/../../node_modules/core-js/modules/es.object.entries.js","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?e332","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?fab5"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-container',{staticClass:\"ma-0 pa-4\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-select',{attrs:{\"label\":\"Limits Set\",\"items\":_vm.limitsSets,\"data-test\":\"limits-set\"},model:{value:(_vm.currentLimitsSet),callback:function ($$v) {_vm.currentLimitsSet=$$v},expression:\"currentLimitsSet\"}})],1)],1)],1)],1),_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.data.length)+\" Metrics \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"mdi-magnify\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.data,\"search\":_vm.search,\"items-per-page\":10,\"footer-props\":{\n itemsPerPageOptions: [10, 20, 50, 100, 1000],\n showFirstLastPage: true,\n },\"calculate-widths\":\"\",\"multi-sort\":\"\",\"data-test\":\"metrics-table\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# 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-->\n\n<template>\n <div>\n <!-- Use a container here so we can do cols=\"auto\" to resize v-select -->\n <v-card flat>\n <v-container class=\"ma-0 pa-4\">\n <v-row no-gutters>\n <v-col cols=\"auto\">\n <v-select\n label=\"Limits Set\"\n :items=\"limitsSets\"\n v-model=\"currentLimitsSet\"\n data-test=\"limits-set\"\n />\n </v-col>\n </v-row>\n </v-container>\n </v-card>\n <v-card>\n <v-card-title>\n {{ data.length }} Metrics\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n append-icon=\"mdi-magnify\"\n label=\"Search\"\n single-line\n hide-details\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"data\"\n :search=\"search\"\n :items-per-page=\"10\"\n :footer-props=\"{\n itemsPerPageOptions: [10, 20, 50, 100, 1000],\n showFirstLastPage: true,\n }\"\n calculate-widths\n multi-sort\n data-test=\"metrics-table\"\n >\n </v-data-table>\n </v-card>\n </div>\n</template>\n\n<script>\nimport Updater from './Updater'\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\n\nexport default {\n mixins: [Updater],\n props: {\n tabId: Number,\n curTab: Number,\n },\n data() {\n return {\n api: new OpenC3Api(),\n apiStatus: [],\n apiHeaders: [\n { text: 'Port', value: 'port' },\n { text: 'Clients', value: 'clients' },\n { text: 'Requests', value: 'requests' },\n { text: 'Avg Request Time', value: 'avgTime' },\n { text: 'Server Threads', value: 'threads' },\n ],\n backgroundTasks: [],\n backgroundHeaders: [\n { text: 'Name', value: 'name' },\n { text: 'State', value: 'state' },\n { text: 'Status', value: 'status' },\n { text: 'Control', value: 'control' },\n ],\n limitsSets: [],\n currentLimitsSet: '',\n currentSetRefreshInterval: null,\n search: '',\n data: [],\n headers: [\n { text: 'Metric', value: 'metric_name' },\n { text: 'Value', value: 'value' },\n ],\n }\n },\n watch: {\n currentLimitsSet: function (newVal, oldVal) {\n !!oldVal && this.limitsChange(newVal)\n },\n },\n created() {\n this.api.get_limits_sets().then((sets) => {\n this.limitsSets = sets\n })\n this.getCurrentLimitsSet()\n this.currentSetRefreshInterval = setInterval(\n this.getCurrentLimitsSet,\n 60 * 1000\n )\n this.update()\n },\n destroyed: function () {\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n getCurrentLimitsSet: function () {\n this.api.get_limits_set().then((result) => {\n this.currentLimitsSet = result\n })\n },\n limitsChange(value) {\n this.api.set_limits_set(value)\n },\n taskControl(name, state) {\n if (state == 'Start') {\n this.api.start_background_task(name)\n } else if (state == 'Stop') {\n this.api.stop_background_task(name)\n }\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_metrics().then((metrics) => {\n this.data = []\n for (const [key, value] of Object.entries(metrics)) {\n this.data.push({ metric_name: key, value: value })\n }\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.container,\n.theme--dark.v-card,\n.theme--dark.v-sheet {\n background-color: var(--v-tertiary-darken2);\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StatusTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StatusTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StatusTab.vue?vue&type=template&id=9e4aa408&scoped=true&\"\nimport script from \"./StatusTab.vue?vue&type=script&lang=js&\"\nexport * from \"./StatusTab.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StatusTab.vue?vue&type=style&index=0&id=9e4aa408&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9e4aa408\",\n null\n \n)\n\nexport default component.exports","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".container[data-v-9e4aa408],.theme--dark.v-card[data-v-9e4aa408],.theme--dark.v-sheet[data-v-9e4aa408]{background-color:var(--v-tertiary-darken2)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StatusTab.vue?vue&type=style&index=0&id=9e4aa408&prod&scoped=true&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6e799460\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["render","_vm","this","_c","_self","attrs","staticClass","limitsSets","model","value","currentLimitsSet","callback","$$v","expression","_v","_s","data","length","search","headers","itemsPerPageOptions","showFirstLastPage","staticRenderFns","mixins","props","tabId","curTab","api","apiStatus","apiHeaders","text","backgroundTasks","backgroundHeaders","currentSetRefreshInterval","watch","created","destroyed","clearInterval","methods","getCurrentLimitsSet","limitsChange","taskControl","update","key","metric_name","component","$","$entries","target","stat","entries","O","___CSS_LOADER_EXPORT___","push","module","id","content","__esModule","default","locals","exports","add"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]=self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]||[]).push([[96],{8096:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return v}});t(7950),t(4908);function l(){var e="/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue",n="499ccaa71f2374dfb0f29948928f4b2dcaabd0c9",t=new Function("return this")(),a="__coverage__",s={path:"/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue",statementMap:{0:{start:{line:1,column:13},end:{line:5,column:1}},1:{start:{line:1,column:39},end:{line:1,column:43}},2:{start:{line:1,column:47},end:{line:1,column:59}},3:{start:{line:1,column:60},end:{line:4,column:84}},4:{start:{line:1,column:381},end:{line:1,column:405}},5:{start:{line:1,column:709},end:{line:1,column:723}},6:{start:{line:6,column:22},end:{line:6,column:24}}},fnMap:{0:{name:"render",decl:{start:{line:1,column:22},end:{line:1,column:28}},loc:{start:{line:1,column:30},end:{line:5,column:1}},line:1},1:{name:"(anonymous_1)",decl:{start:{line:1,column:365},end:{line:1,column:366}},loc:{start:{line:1,column:380},end:{line:1,column:406}},line:1},2:{name:"(anonymous_2)",decl:{start:{line:1,column:693},end:{line:1,column:694}},loc:{start:{line:1,column:708},end:{line:1,column:724}},line:1}},branchMap:{},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0},f:{0:0,1:0,2:0},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"499ccaa71f2374dfb0f29948928f4b2dcaabd0c9"},i=t[a]||(t[a]={});i[e]&&i[e].hash===n||(i[e]=s);var o=i[e];return l=function(){return o},o}l(),l().s[0]++;var a=function(){l().f[0]++;var e=(l().s[1]++,this),n=(l().s[2]++,e._self._c);return l().s[3]++,n("div",[n("v-card",{attrs:{flat:""}},[n("v-container",{staticClass:"ma-0 pa-4"},[n("v-row",{attrs:{"no-gutters":""}},[n("v-col",{attrs:{cols:"auto"}},[n("v-select",{attrs:{label:"Limits Set",items:e.limitsSets,"data-test":"limits-set"},model:{value:e.currentLimitsSet,callback:function(n){l().f[1]++,l().s[4]++,e.currentLimitsSet=n},expression:"currentLimitsSet"}})],1)],1)],1)],1),n("v-card",[n("v-card-title",[e._v(" "+e._s(e.data.length)+" Metrics "),n("v-spacer"),n("v-text-field",{attrs:{"append-icon":"mdi-magnify",label:"Search","single-line":"","hide-details":""},model:{value:e.search,callback:function(n){l().f[2]++,l().s[5]++,e.search=n},expression:"search"}})],1),n("v-data-table",{attrs:{headers:e.headers,items:e.data,search:e.search,"items-per-page":10,"footer-props":{itemsPerPageOptions:[10,20,50,100,1e3],showFirstLastPage:!0},"calculate-widths":"","multi-sort":"","data-test":"metrics-table"}})],1)],1)},s=(l().s[6]++,[]),i=t(7302),o=(t(1245),t(5883),t(6728),t(4872)),r=t(8123);function c(){var e="/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue",n="e6bdaf4eb9b5505be83df8a2ff546e208ae0939e",t=new Function("return this")(),l="__coverage__",a={path:"/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue",statementMap:{0:{start:{line:12,column:4},end:{line:38,column:5}},1:{start:{line:42,column:6},end:{line:42,column:43}},2:{start:{line:46,column:4},end:{line:48,column:6}},3:{start:{line:47,column:6},end:{line:47,column:28}},4:{start:{line:49,column:4},end:{line:49,column:30}},5:{start:{line:50,column:4},end:{line:53,column:5}},6:{start:{line:54,column:4},end:{line:54,column:17}},7:{start:{line:57,column:4},end:{line:57,column:49}},8:{start:{line:61,column:6},end:{line:63,column:8}},9:{start:{line:62,column:8},end:{line:62,column:38}},10:{start:{line:66,column:6},end:{line:66,column:36}},11:{start:{line:69,column:6},end:{line:73,column:7}},12:{start:{line:70,column:8},end:{line:70,column:44}},13:{start:{line:71,column:13},end:{line:73,column:7}},14:{start:{line:72,column:8},end:{line:72,column:43}},15:{start:{line:76,column:6},end:{line:76,column:43}},16:{start:{line:76,column:37},end:{line:76,column:43}},17:{start:{line:77,column:6},end:{line:82,column:8}},18:{start:{line:78,column:8},end:{line:78,column:22}},19:{start:{line:79,column:8},end:{line:81,column:9}},20:{start:{line:80,column:10},end:{line:80,column:60}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:11,column:2},end:{line:11,column:3}},loc:{start:{line:11,column:9},end:{line:39,column:3}},line:11},1:{name:"(anonymous_1)",decl:{start:{line:41,column:22},end:{line:41,column:23}},loc:{start:{line:41,column:48},end:{line:43,column:5}},line:41},2:{name:"(anonymous_2)",decl:{start:{line:45,column:2},end:{line:45,column:3}},loc:{start:{line:45,column:12},end:{line:55,column:3}},line:45},3:{name:"(anonymous_3)",decl:{start:{line:46,column:36},end:{line:46,column:37}},loc:{start:{line:46,column:46},end:{line:48,column:5}},line:46},4:{name:"(anonymous_4)",decl:{start:{line:56,column:13},end:{line:56,column:14}},loc:{start:{line:56,column:25},end:{line:58,column:3}},line:56},5:{name:"(anonymous_5)",decl:{start:{line:60,column:25},end:{line:60,column:26}},loc:{start:{line:60,column:37},end:{line:64,column:5}},line:60},6:{name:"(anonymous_6)",decl:{start:{line:61,column:37},end:{line:61,column:38}},loc:{start:{line:61,column:49},end:{line:63,column:7}},line:61},7:{name:"(anonymous_7)",decl:{start:{line:65,column:4},end:{line:65,column:5}},loc:{start:{line:65,column:24},end:{line:67,column:5}},line:65},8:{name:"(anonymous_8)",decl:{start:{line:68,column:4},end:{line:68,column:5}},loc:{start:{line:68,column:29},end:{line:74,column:5}},line:68},9:{name:"(anonymous_9)",decl:{start:{line:75,column:4},end:{line:75,column:5}},loc:{start:{line:75,column:13},end:{line:83,column:5}},line:75},10:{name:"(anonymous_10)",decl:{start:{line:77,column:34},end:{line:77,column:35}},loc:{start:{line:77,column:47},end:{line:82,column:7}},line:77}},branchMap:{0:{loc:{start:{line:42,column:6},end:{line:42,column:43}},type:"binary-expr",locations:[{start:{line:42,column:6},end:{line:42,column:14}},{start:{line:42,column:18},end:{line:42,column:43}}],line:42},1:{loc:{start:{line:69,column:6},end:{line:73,column:7}},type:"if",locations:[{start:{line:69,column:6},end:{line:73,column:7}},{start:{line:71,column:13},end:{line:73,column:7}}],line:69},2:{loc:{start:{line:71,column:13},end:{line:73,column:7}},type:"if",locations:[{start:{line:71,column:13},end:{line:73,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:71},3:{loc:{start:{line:76,column:6},end:{line:76,column:43}},type:"if",locations:[{start:{line:76,column:6},end:{line:76,column:43}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:76}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0]},inputSourceMap:{version:3,sources:["StatusTab.vue"],names:[],mappings:";AAsEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"StatusTab.vue",sourceRoot:"src/tools/CmdTlmServer",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 \x3c!-- Use a container here so we can do cols=\"auto\" to resize v-select --\x3e\n <v-card flat>\n <v-container class=\"ma-0 pa-4\">\n <v-row no-gutters>\n <v-col cols=\"auto\">\n <v-select\n label=\"Limits Set\"\n :items=\"limitsSets\"\n v-model=\"currentLimitsSet\"\n data-test=\"limits-set\"\n />\n </v-col>\n </v-row>\n </v-container>\n </v-card>\n <v-card>\n <v-card-title>\n {{ data.length }} Metrics\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n append-icon=\"mdi-magnify\"\n label=\"Search\"\n single-line\n hide-details\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"data\"\n :search=\"search\"\n :items-per-page=\"10\"\n :footer-props=\"{\n itemsPerPageOptions: [10, 20, 50, 100, 1000],\n showFirstLastPage: true,\n }\"\n calculate-widths\n multi-sort\n data-test=\"metrics-table\"\n >\n </v-data-table>\n </v-card>\n </div>\n</template>\n\n<script>\nimport Updater from './Updater'\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\n\nexport default {\n mixins: [Updater],\n props: {\n tabId: Number,\n curTab: Number,\n },\n data() {\n return {\n api: new OpenC3Api(),\n apiStatus: [],\n apiHeaders: [\n { text: 'Port', value: 'port' },\n { text: 'Clients', value: 'clients' },\n { text: 'Requests', value: 'requests' },\n { text: 'Avg Request Time', value: 'avgTime' },\n { text: 'Server Threads', value: 'threads' },\n ],\n backgroundTasks: [],\n backgroundHeaders: [\n { text: 'Name', value: 'name' },\n { text: 'State', value: 'state' },\n { text: 'Status', value: 'status' },\n { text: 'Control', value: 'control' },\n ],\n limitsSets: [],\n currentLimitsSet: '',\n currentSetRefreshInterval: null,\n search: '',\n data: [],\n headers: [\n { text: 'Metric', value: 'metric_name' },\n { text: 'Value', value: 'value' },\n ],\n }\n },\n watch: {\n currentLimitsSet: function (newVal, oldVal) {\n !!oldVal && this.limitsChange(newVal)\n },\n },\n created() {\n this.api.get_limits_sets().then((sets) => {\n this.limitsSets = sets\n })\n this.getCurrentLimitsSet()\n this.currentSetRefreshInterval = setInterval(\n this.getCurrentLimitsSet,\n 60 * 1000\n )\n this.update()\n },\n destroyed: function () {\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n getCurrentLimitsSet: function () {\n this.api.get_limits_set().then((result) => {\n this.currentLimitsSet = result\n })\n },\n limitsChange(value) {\n this.api.set_limits_set(value)\n },\n taskControl(name, state) {\n if (state == 'Start') {\n this.api.start_background_task(name)\n } else if (state == 'Stop') {\n this.api.stop_background_task(name)\n }\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_metrics().then((metrics) => {\n this.data = []\n for (const [key, value] of Object.entries(metrics)) {\n this.data.push({ metric_name: key, value: value })\n }\n })\n },\n },\n}\n<\/script>\n\n<style scoped>\n.container,\n.theme--dark.v-card,\n.theme--dark.v-sheet {\n background-color: var(--v-tertiary-darken2);\n}\n</style>\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"e6bdaf4eb9b5505be83df8a2ff546e208ae0939e"},s=t[l]||(t[l]={});s[e]&&s[e].hash===n||(s[e]=a);var i=s[e];return c=function(){return i},i}c();var u={mixins:[o.Z],props:{tabId:Number,curTab:Number},data:function(){return c().f[0]++,c().s[0]++,{api:new r.k,apiStatus:[],apiHeaders:[{text:"Port",value:"port"},{text:"Clients",value:"clients"},{text:"Requests",value:"requests"},{text:"Avg Request Time",value:"avgTime"},{text:"Server Threads",value:"threads"}],backgroundTasks:[],backgroundHeaders:[{text:"Name",value:"name"},{text:"State",value:"state"},{text:"Status",value:"status"},{text:"Control",value:"control"}],limitsSets:[],currentLimitsSet:"",currentSetRefreshInterval:null,search:"",data:[],headers:[{text:"Metric",value:"metric_name"},{text:"Value",value:"value"}]}},watch:{currentLimitsSet:function(e,n){c().f[1]++,c().s[1]++,c().b[0][0]++,n&&(c().b[0][1]++,this.limitsChange(e))}},created:function(){var e=this;c().f[2]++,c().s[2]++,this.api.get_limits_sets().then((function(n){c().f[3]++,c().s[3]++,e.limitsSets=n})),c().s[4]++,this.getCurrentLimitsSet(),c().s[5]++,this.currentSetRefreshInterval=setInterval(this.getCurrentLimitsSet,6e4),c().s[6]++,this.update()},destroyed:function(){c().f[4]++,c().s[7]++,clearInterval(this.currentSetRefreshInterval)},methods:{getCurrentLimitsSet:function(){var e=this;c().f[5]++,c().s[8]++,this.api.get_limits_set().then((function(n){c().f[6]++,c().s[9]++,e.currentLimitsSet=n}))},limitsChange:function(e){c().f[7]++,c().s[10]++,this.api.set_limits_set(e)},taskControl:function(e,n){c().f[8]++,c().s[11]++,"Start"==n?(c().b[1][0]++,c().s[12]++,this.api.start_background_task(e)):(c().b[1][1]++,c().s[13]++,"Stop"==n?(c().b[2][0]++,c().s[14]++,this.api.stop_background_task(e)):c().b[2][1]++)},update:function(){var e=this;if(c().f[9]++,c().s[15]++,this.tabId!=this.curTab)return c().b[3][0]++,void c().s[16]++;c().b[3][1]++,c().s[17]++,this.api.get_metrics().then((function(n){c().f[10]++,c().s[18]++,e.data=[],c().s[19]++;for(var t=0,l=Object.entries(n);t<l.length;t++){var a=(0,i.Z)(l[t],2),s=a[0],o=a[1];c().s[20]++,e.data.push({metric_name:s,value:o})}}))}}},m=u,A=(t(9282),t(3483)),d=(0,A.Z)(m,a,s,!1,null,"9e4aa408",null),v=d.exports},5883:function(e,n,t){var l=t(3103),a=t(7664).entries;l({target:"Object",stat:!0},{entries:function(e){return a(e)}})},6008:function(e,n,t){"use strict";t.r(n);var l=t(9601),a=t.n(l),s=t(2609),i=t.n(s),o=i()(a());o.push([e.id,".container[data-v-9e4aa408],.theme--dark.v-card[data-v-9e4aa408],.theme--dark.v-sheet[data-v-9e4aa408]{background-color:var(--v-tertiary-darken2)}",""]),n["default"]=o},9282:function(e,n,t){var l=t(6008);l.__esModule&&(l=l.default),"string"===typeof l&&(l=[[e.id,l,""]]),l.locals&&(e.exports=l.locals);var a=t(3514).Z;a("6e799460",l,!0,{sourceMap:!1,shadowMode:!1})}}]);
1
+ (self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]=self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]||[]).push([[96],{6096:function(e,t,n){"use strict";function a(){var e="/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/CmdTlmServer.vue",t="75253cfc4e562133211ca6266a4e61567fc5954d",n=new Function("return this")(),s="__coverage__",l={path:"/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/CmdTlmServer.vue",statementMap:{0:{start:{line:1,column:13},end:{line:2,column:1}},1:{start:{line:1,column:39},end:{line:1,column:43}},2:{start:{line:1,column:47},end:{line:1,column:59}},3:{start:{line:1,column:60},end:{line:1,column:1036}},4:{start:{line:1,column:238},end:{line:1,column:252}},5:{start:{line:1,column:314},end:{line:1,column:400}},6:{start:{line:1,column:572},end:{line:1,column:593}},7:{start:{line:1,column:923},end:{line:1,column:951}},8:{start:{line:3,column:22},end:{line:3,column:24}}},fnMap:{0:{name:"render",decl:{start:{line:1,column:22},end:{line:1,column:28}},loc:{start:{line:1,column:30},end:{line:2,column:1}},line:1},1:{name:"(anonymous_1)",decl:{start:{line:1,column:222},end:{line:1,column:223}},loc:{start:{line:1,column:237},end:{line:1,column:253}},line:1},2:{name:"(anonymous_2)",decl:{start:{line:1,column:294},end:{line:1,column:295}},loc:{start:{line:1,column:313},end:{line:1,column:401}},line:1},3:{name:"(anonymous_3)",decl:{start:{line:1,column:556},end:{line:1,column:557}},loc:{start:{line:1,column:571},end:{line:1,column:594}},line:1},4:{name:"(anonymous_4)",decl:{start:{line:1,column:906},end:{line:1,column:907}},loc:{start:{line:1,column:922},end:{line:1,column:952}},line:1}},branchMap:{},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},f:{0:0,1:0,2:0,3:0,4:0},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"75253cfc4e562133211ca6266a4e61567fc5954d"},o=n[s]||(n[s]={});o[e]&&o[e].hash===t||(o[e]=l);var r=o[e];return a=function(){return r},r}n.r(t),n.d(t,{default:function(){return O}}),a(),a().s[0]++;var s=function(){a().f[0]++;var e=(a().s[1]++,this),t=(a().s[2]++,e._self._c);return a().s[3]++,t("div",[t("top-bar",{attrs:{menus:e.menus,title:e.title}}),t("v-card",[t("v-tabs",{attrs:{"fixed-tabs":""},model:{value:e.curTab,callback:function(t){a().f[1]++,a().s[4]++,e.curTab=t},expression:"curTab"}},e._l(e.tabs,(function(n,s){return a().f[2]++,a().s[5]++,t("v-tab",{key:s,attrs:{to:n.url}},[e._v(" "+e._s(n.name)+" ")])})),1),t("router-view",{attrs:{"refresh-interval":e.refreshInterval}}),t("v-dialog",{attrs:{"max-width":"300"},model:{value:e.optionsDialog,callback:function(t){a().f[3]++,a().s[6]++,e.optionsDialog=t},expression:"optionsDialog"}},[t("v-card",[t("v-system-bar",[t("v-spacer"),t("span",[e._v("Options")]),t("v-spacer")],1),t("div",{staticClass:"pa-3"},[t("v-text-field",{attrs:{min:"0",max:"10000",step:"100",type:"number",label:"Refresh Interval (ms)",value:e.refreshInterval},on:{change:function(t){a().f[4]++,a().s[7]++,e.refreshInterval=t}}})],1)],1)],1)],1),t("div",{staticStyle:{height:"20px"}}),t("log-messages")],1)},l=(a().s[8]++,[]),o=(n(7950),n(4908),function(){var e=this,t=e._self._c;return t("v-card",[t("v-card-title",[e._v(" Log Messages "),t("v-tooltip",{attrs:{top:""},scopedSlots:e._u([{key:"activator",fn:function(n){var a=n.on,s=n.attrs;return[t("div",e._g(e._b({},"div",s,!1),a),[t("v-btn",{attrs:{icon:"","data-test":"pause"},on:{click:e.pause}},[t("v-icon",[e._v(" "+e._s(e.buttonIcon)+" ")])],1)],1)]}}])},[t("span",[e._v(" "+e._s(e.buttonLabel)+" ")])]),t("v-spacer"),t("v-select",{staticClass:"mr-2",attrs:{label:"Filter by Severity","hide-details":"",items:e.logLevels,"data-test":"log-messages-level"},model:{value:e.logLevel,callback:function(t){e.logLevel=t},expression:"logLevel"}}),t("v-spacer"),t("v-text-field",{attrs:{"append-icon":"mdi-magnify",label:"Search","single-line":"","hide-details":"","data-test":"search-log-messages"},model:{value:e.search,callback:function(t){e.search=t},expression:"search"}})],1),t("v-data-table",{attrs:{headers:e.headers,items:e.shownData,search:e.search,"calculate-widths":"","disable-pagination":"","hide-default-footer":"","multi-sort":"",dense:"",height:"45vh","data-test":"log-messages"},scopedSlots:e._u([{key:"item.timestamp",fn:function(n){var a=n.item;return[t("time",{attrs:{title:a.timestamp,datetime:a.timestamp}},[e._v(" "+e._s(a.timestamp)+" ")])]}},{key:"item.severity",fn:function(n){var a=n.item;return[t("span",{class:e.getColorClass(a.severity)},[e._v(e._s(a.severity))])]}},{key:"item.log",fn:function(n){var a=n.item;return[t("div",{staticStyle:{"white-space":"pre-wrap"}},[e._v(e._s(a.log))])]}}])})],1)}),r=[],i=(n(1245),n(9805),n(5342),n(8188),n(3450),n(8233),n(5940),n(1639),n(8178),n(9413)),c=n(5488),u=n(6964),m=n(426),d=n(7871),v=n(7146);v.ju.staleThreshold=10;var p=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/openc3-api/cable";(0,m.Z)(this,e),this._cable=null,this._url=t}return(0,d.Z)(e,[{key:"disconnect",value:function(){this._cable.disconnect()}},{key:"createSubscription",value:function(e,t){var n=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then((function(){if(null==n._cable){var t=n._url+"?scope="+window.openc3Scope+"&authorization="+localStorage.openc3Token;n._cable=v.zD(t)}return n._cable.subscriptions.create((0,u.Z)({channel:e},s),a)}))}},{key:"recordPing",value:function(){this._cable.connection.monitor.recordPing()}}]),e}(),A={props:{history_count:{type:Number,default:200}},data:function(){return{data:[],shownData:[],logLevels:["DEBUG","INFO","WARN","ERROR","FATAL"],logLevel:"INFO",search:"",headers:[{text:"Time",value:"timestamp",width:200},{text:"Severity",value:"severity"},{text:"Source",value:"microservice_name"},{text:"Message",value:"log"}],cable:new p,subscription:null,paused:!1}},computed:{buttonLabel:function(){return this.paused?"Resume":"Pause"},buttonIcon:function(){return this.paused?"mdi-play":"mdi-pause"}},watch:{logLevel:function(e,t){this.createSubscription()}},created:function(){this.createSubscription()},destroyed:function(){this.subscription&&this.subscription.unsubscribe(),this.cable.disconnect()},methods:{pause:function(){this.paused=!this.paused},createSubscription:function(){var e=this;this.subscription&&(this.subscription.unsubscribe(),this.data=[],this.shownData=this.data),this.cable.createSubscription("MessagesChannel",window.openc3Scope,{received:function(t){e.cable.recordPing(),t.length>e.history_count&&t.splice(0,t.length-e.history_count),t=t.filter((function(t){switch(e.logLevel){case"DEBUG":return!0;case"INFO":if("DEBUG"!==t.severity)return!0;break;case"WARN":if("DEBUG"!==t.severity&&"INFO"!==t.severity)return!0;break;case"ERROR":if("DEBUG"!==t.severity&&"INFO"!==t.severity&&"WARN"!==t.severity)return!0;break;case"FATAL":if("DEBUG"!==t.severity&&"INFO"!==t.severity&&"WARN"!==t.severity&&"ERROR"!==t.severity)return!0;break}return!1})),t.map((function(t){if(t.timestamp=e.formatDate(t["@timestamp"]),t.log.raw&&"String"===t.log.json_class){for(var n="0x",a=0;a<t.log.raw.length;a++){var s=t.log.raw[a].toString(16).toUpperCase();s.length<2&&(s="0"+s),n+=s}t.log=n}else t.log=t.log.replaceAll("\\n","\n")})),e.data=t.reverse().concat(e.data),e.data.length>e.history_count&&(e.data.length=e.history_count),e.paused||(e.shownData=e.data)}},{history_count:this.history_count}).then((function(t){e.subscription=t}))},formatDate:function(e){return(0,i.Z)((0,c.Z)(e),"yyyy-MM-dd HH:mm:ss.SSS")},getColorClass:function(e){return"INFO"===e?"openc3-green":"WARN"===e?"openc3-yellow":"ERROR"===e||"FATAL"===e?"openc3-red":this.$vuetify.theme.dark?"openc3-white":"openc3-black"}}},f=A,h=n(3483),b=(0,h.Z)(f,o,r,!1,null,null,null),g=b.exports,_=function(){var e=this,t=e._self._c;return t("mounting-portal",{attrs:{"mount-to":"#openc3-menu",append:""}},[t("div",{staticClass:"v-toolbar__content"},[e._l(e.menus,(function(n,a){return t("v-menu",{key:a,attrs:{"offset-y":""},scopedSlots:e._u([{key:"activator",fn:function(a){var s=a.on,l=a.attrs;return[t("v-btn",e._g(e._b({staticClass:"mx-1",attrs:{outlined:"","data-test":e.formatDT("".concat(e.title," ").concat(n.label))}},"v-btn",l,!1),s),[t("span",{domProps:{textContent:e._s(n.label)}}),t("v-icon",{attrs:{right:""}},[e._v(" mdi-menu-down ")])],1)]}}],null,!0)},[t("v-list",[t("v-radio-group",{staticClass:"ma-0 pa-0",attrs:{value:n.radioGroup,"hide-details":"",dense:""}},[e._l(n.items,(function(a,s){return[a.divider?t("v-divider"):t("v-list-item",{key:s,attrs:{disabled:a.disabled,"data-test":e.formatDT("".concat(e.title," ").concat(n.label," ").concat(a.label))},on:{click:function(e){return a.command(a)}}},[a.radio?t("v-list-item-action",[t("v-radio",{attrs:{color:"secondary",label:a.label,value:a.label}})],1):e._e(),a.checkbox?t("v-list-item-action",[t("v-checkbox",{attrs:{color:"secondary",label:a.label},model:{value:a.checked,callback:function(t){e.$set(a,"checked",t)},expression:"option.checked"}})],1):e._e(),a.icon?t("v-list-item-icon",[t("v-icon",{attrs:{disabled:a.disabled}},[e._v(e._s(a.icon))])],1):e._e(),a.radio||a.checkbox?e._e():t("v-list-item-title",{style:"cursor: pointer;"+(a.disabled?"opacity: 0.2":"")},[e._v(e._s(a.label))])],1)]}))],2)],1)],1)})),t("v-spacer"),t("v-toolbar-title",[e._v(e._s(e.title))]),t("v-spacer")],2)])},C=[],y={props:{menus:{type:Array,default:function(){return[]}},title:{type:String,default:""}},methods:{formatDT:function(e){return e.replaceAll(" ","-").toLowerCase()}},mounted:function(){"COSMOS "===this.title.substring(0,7)?document.title=this.title.substring(7):document.title=this.title}},S=y,k=(n(4888),(0,h.Z)(S,_,C,!1,null,"2eb37f67",null)),T=k.exports;function x(){var e="/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/CmdTlmServer.vue",t="d9b7390842e35bfa96bb69f8f3bd732a80b4a478",n=new Function("return this")(),a="__coverage__",s={path:"/openc3/plugins/packages/openc3-cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/CmdTlmServer.vue",statementMap:{0:{start:{line:10,column:4},end:{line:55,column:5}},1:{start:{line:49,column:16},end:{line:49,column:41}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:9,column:2},end:{line:9,column:3}},loc:{start:{line:9,column:9},end:{line:56,column:3}},line:9},1:{name:"(anonymous_1)",decl:{start:{line:48,column:23},end:{line:48,column:24}},loc:{start:{line:48,column:29},end:{line:50,column:15}},line:48}},branchMap:{},s:{0:0,1:0},f:{0:0,1:0},b:{},inputSourceMap:{version:3,sources:["CmdTlmServer.vue"],names:[],mappings:";AA2DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"CmdTlmServer.vue",sourceRoot:"src/tools/CmdTlmServer",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 <top-bar :menus="menus" :title="title" />\n <v-card>\n <v-tabs v-model="curTab" fixed-tabs>\n <v-tab v-for="(tab, index) in tabs" :key="index" :to="tab.url">\n {{ tab.name }}\n </v-tab>\n </v-tabs>\n <router-view :refresh-interval="refreshInterval" />\n <v-dialog v-model="optionsDialog" max-width="300">\n <v-card>\n <v-system-bar>\n <v-spacer />\n <span>Options</span>\n <v-spacer />\n </v-system-bar>\n <div class="pa-3">\n <v-text-field\n min="0"\n max="10000"\n step="100"\n type="number"\n label="Refresh Interval (ms)"\n :value="refreshInterval"\n @change="refreshInterval = $event"\n />\n </div>\n </v-card>\n </v-dialog>\n </v-card>\n <div style="height: 20px" />\n <log-messages />\n </div>\n</template>\n\n<script>\nimport LogMessages from \'@openc3/tool-common/src/components/LogMessages\'\nimport TopBar from \'@openc3/tool-common/src/components/TopBar\'\nexport default {\n components: {\n LogMessages,\n TopBar,\n },\n data() {\n return {\n title: \'COSMOS CmdTlmServer\',\n curTab: null,\n tabs: [\n {\n name: \'Interfaces\',\n url: \'/interfaces\',\n },\n {\n name: \'Targets\',\n url: \'/targets\',\n },\n {\n name: \'Cmd Packets\',\n url: \'/cmd-packets\',\n },\n {\n name: \'Tlm Packets\',\n url: \'/tlm-packets\',\n },\n {\n name: \'Routers\',\n url: \'/routers\',\n },\n {\n name: \'Status\',\n url: \'/status\',\n },\n ],\n updater: null,\n refreshInterval: 1000,\n optionsDialog: false,\n menus: [\n {\n label: \'File\',\n items: [\n {\n label: \'Options\',\n command: () => {\n this.optionsDialog = true\n },\n },\n ],\n },\n ],\n }\n },\n}\n<\/script>\n\n<style scoped>\n.v-list :deep(.v-label) {\n margin-left: 5px;\n}\n.v-list-item__icon {\n /* For some reason the default margin-right is huge */\n margin-right: 15px !important;\n}\n.v-list-item__title {\n color: white;\n}\n</style>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"d9b7390842e35bfa96bb69f8f3bd732a80b4a478"},l=n[a]||(n[a]={});l[e]&&l[e].hash===t||(l[e]=s);var o=l[e];return x=function(){return o},o}x();var w={components:{LogMessages:g,TopBar:T},data:function(){var e=this;return x().f[0]++,x().s[0]++,{title:"COSMOS CmdTlmServer",curTab:null,tabs:[{name:"Interfaces",url:"/interfaces"},{name:"Targets",url:"/targets"},{name:"Cmd Packets",url:"/cmd-packets"},{name:"Tlm Packets",url:"/tlm-packets"},{name:"Routers",url:"/routers"},{name:"Status",url:"/status"}],updater:null,refreshInterval:1e3,optionsDialog:!1,menus:[{label:"File",items:[{label:"Options",command:function(){x().f[1]++,x().s[1]++,e.optionsDialog=!0}}]}]}}},R=w,I=(n(4907),(0,h.Z)(R,s,l,!1,null,"435cb5a8",null)),O=I.exports},3618:function(e,t,n){"use strict";n.r(t);var a=n(9601),s=n.n(a),l=n(2609),o=n.n(l),r=o()(s());r.push([e.id,".v-list[data-v-435cb5a8] .v-label{margin-left:5px}.v-list-item__icon[data-v-435cb5a8]{margin-right:15px!important}.v-list-item__title[data-v-435cb5a8]{color:#fff}",""]),t["default"]=r},6294:function(e,t,n){"use strict";n.r(t);var a=n(9601),s=n.n(a),l=n(2609),o=n.n(l),r=o()(s());r.push([e.id,".v-list[data-v-2eb37f67] .v-label{margin-left:5px}.v-list-item__icon[data-v-2eb37f67]{margin-right:15px!important}.v-list-item__title[data-v-2eb37f67]{color:#fff}",""]),t["default"]=r},4907:function(e,t,n){var a=n(3618);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(3514).Z;s("52afc085",a,!0,{sourceMap:!1,shadowMode:!1})},4888:function(e,t,n){var a=n(6294);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var s=n(3514).Z;s("706a3f6d",a,!0,{sourceMap:!1,shadowMode:!1})}}]);
2
2
  //# sourceMappingURL=96.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"js/96.js","mappings":"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","sources":["webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?0c8b","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?7de2","webpack://@openc3/cosmos-tool-cmdtlmserver/../../node_modules/core-js/modules/es.object.entries.js","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?e332","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?fab5"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-container',{staticClass:\"ma-0 pa-4\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-select',{attrs:{\"label\":\"Limits Set\",\"items\":_vm.limitsSets,\"data-test\":\"limits-set\"},model:{value:(_vm.currentLimitsSet),callback:function ($$v) {_vm.currentLimitsSet=$$v},expression:\"currentLimitsSet\"}})],1)],1)],1)],1),_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.data.length)+\" Metrics \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"mdi-magnify\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.data,\"search\":_vm.search,\"items-per-page\":10,\"footer-props\":{\n itemsPerPageOptions: [10, 20, 50, 100, 1000],\n showFirstLastPage: true,\n },\"calculate-widths\":\"\",\"multi-sort\":\"\",\"data-test\":\"metrics-table\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# 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-->\n\n<template>\n <div>\n <!-- Use a container here so we can do cols=\"auto\" to resize v-select -->\n <v-card flat>\n <v-container class=\"ma-0 pa-4\">\n <v-row no-gutters>\n <v-col cols=\"auto\">\n <v-select\n label=\"Limits Set\"\n :items=\"limitsSets\"\n v-model=\"currentLimitsSet\"\n data-test=\"limits-set\"\n />\n </v-col>\n </v-row>\n </v-container>\n </v-card>\n <v-card>\n <v-card-title>\n {{ data.length }} Metrics\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n append-icon=\"mdi-magnify\"\n label=\"Search\"\n single-line\n hide-details\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"data\"\n :search=\"search\"\n :items-per-page=\"10\"\n :footer-props=\"{\n itemsPerPageOptions: [10, 20, 50, 100, 1000],\n showFirstLastPage: true,\n }\"\n calculate-widths\n multi-sort\n data-test=\"metrics-table\"\n >\n </v-data-table>\n </v-card>\n </div>\n</template>\n\n<script>\nimport Updater from './Updater'\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\n\nexport default {\n mixins: [Updater],\n props: {\n tabId: Number,\n curTab: Number,\n },\n data() {\n return {\n api: new OpenC3Api(),\n apiStatus: [],\n apiHeaders: [\n { text: 'Port', value: 'port' },\n { text: 'Clients', value: 'clients' },\n { text: 'Requests', value: 'requests' },\n { text: 'Avg Request Time', value: 'avgTime' },\n { text: 'Server Threads', value: 'threads' },\n ],\n backgroundTasks: [],\n backgroundHeaders: [\n { text: 'Name', value: 'name' },\n { text: 'State', value: 'state' },\n { text: 'Status', value: 'status' },\n { text: 'Control', value: 'control' },\n ],\n limitsSets: [],\n currentLimitsSet: '',\n currentSetRefreshInterval: null,\n search: '',\n data: [],\n headers: [\n { text: 'Metric', value: 'metric_name' },\n { text: 'Value', value: 'value' },\n ],\n }\n },\n watch: {\n currentLimitsSet: function (newVal, oldVal) {\n !!oldVal && this.limitsChange(newVal)\n },\n },\n created() {\n this.api.get_limits_sets().then((sets) => {\n this.limitsSets = sets\n })\n this.getCurrentLimitsSet()\n this.currentSetRefreshInterval = setInterval(\n this.getCurrentLimitsSet,\n 60 * 1000\n )\n this.update()\n },\n destroyed: function () {\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n getCurrentLimitsSet: function () {\n this.api.get_limits_set().then((result) => {\n this.currentLimitsSet = result\n })\n },\n limitsChange(value) {\n this.api.set_limits_set(value)\n },\n taskControl(name, state) {\n if (state == 'Start') {\n this.api.start_background_task(name)\n } else if (state == 'Stop') {\n this.api.stop_background_task(name)\n }\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_metrics().then((metrics) => {\n this.data = []\n for (const [key, value] of Object.entries(metrics)) {\n this.data.push({ metric_name: key, value: value })\n }\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.container,\n.theme--dark.v-card,\n.theme--dark.v-sheet {\n background-color: var(--v-tertiary-darken2);\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StatusTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StatusTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StatusTab.vue?vue&type=template&id=9e4aa408&scoped=true&\"\nimport script from \"./StatusTab.vue?vue&type=script&lang=js&\"\nexport * from \"./StatusTab.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StatusTab.vue?vue&type=style&index=0&id=9e4aa408&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9e4aa408\",\n null\n \n)\n\nexport default component.exports","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".container[data-v-9e4aa408],.theme--dark.v-card[data-v-9e4aa408],.theme--dark.v-sheet[data-v-9e4aa408]{background-color:var(--v-tertiary-darken2)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StatusTab.vue?vue&type=style&index=0&id=9e4aa408&prod&scoped=true&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6e799460\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["render","_vm","this","_c","_self","attrs","staticClass","limitsSets","model","value","currentLimitsSet","callback","$$v","expression","_v","_s","data","length","search","headers","itemsPerPageOptions","showFirstLastPage","staticRenderFns","mixins","props","tabId","curTab","api","apiStatus","apiHeaders","text","backgroundTasks","backgroundHeaders","currentSetRefreshInterval","watch","created","destroyed","clearInterval","methods","getCurrentLimitsSet","limitsChange","taskControl","update","key","metric_name","component","$","$entries","target","stat","entries","O","___CSS_LOADER_EXPORT___","push","module","id","content","__esModule","default","locals","exports","add"],"sourceRoot":""}
1
+ {"version":3,"file":"js/96.js","mappings":"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","sources":["webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/CmdTlmServer.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/../openc3-tool-common/src/components/LogMessages.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/../openc3-tool-common/src/services/cable.js","webpack://@openc3/cosmos-tool-cmdtlmserver/../openc3-tool-common/src/components/LogMessages.vue?867b","webpack://@openc3/cosmos-tool-cmdtlmserver/../openc3-tool-common/src/components/LogMessages.vue?971e","webpack://@openc3/cosmos-tool-cmdtlmserver/../openc3-tool-common/src/components/TopBar.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/../openc3-tool-common/src/components/TopBar.vue?95da","webpack://@openc3/cosmos-tool-cmdtlmserver/../openc3-tool-common/src/components/TopBar.vue?a437","webpack://@openc3/cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/CmdTlmServer.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/CmdTlmServer.vue?9b8c","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/CmdTlmServer.vue?2c2b","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/CmdTlmServer.vue?e9c6","webpack://@openc3/cosmos-tool-cmdtlmserver/../openc3-tool-common/src/components/TopBar.vue?386c","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/CmdTlmServer.vue?7215","webpack://@openc3/cosmos-tool-cmdtlmserver/../openc3-tool-common/src/components/TopBar.vue?9efc"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('top-bar',{attrs:{\"menus\":_vm.menus,\"title\":_vm.title}}),_c('v-card',[_c('v-tabs',{attrs:{\"fixed-tabs\":\"\"},model:{value:(_vm.curTab),callback:function ($$v) {_vm.curTab=$$v},expression:\"curTab\"}},_vm._l((_vm.tabs),function(tab,index){return _c('v-tab',{key:index,attrs:{\"to\":tab.url}},[_vm._v(\" \"+_vm._s(tab.name)+\" \")])}),1),_c('router-view',{attrs:{\"refresh-interval\":_vm.refreshInterval}}),_c('v-dialog',{attrs:{\"max-width\":\"300\"},model:{value:(_vm.optionsDialog),callback:function ($$v) {_vm.optionsDialog=$$v},expression:\"optionsDialog\"}},[_c('v-card',[_c('v-system-bar',[_c('v-spacer'),_c('span',[_vm._v(\"Options\")]),_c('v-spacer')],1),_c('div',{staticClass:\"pa-3\"},[_c('v-text-field',{attrs:{\"min\":\"0\",\"max\":\"10000\",\"step\":\"100\",\"type\":\"number\",\"label\":\"Refresh Interval (ms)\",\"value\":_vm.refreshInterval},on:{\"change\":function($event){_vm.refreshInterval = $event}}})],1)],1)],1)],1),_c('div',{staticStyle:{\"height\":\"20px\"}}),_c('log-messages')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-card-title',[_vm._v(\" Log Messages \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-btn',{attrs:{\"icon\":\"\",\"data-test\":\"pause\"},on:{\"click\":_vm.pause}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.buttonIcon)+\" \")])],1)],1)]}}])},[_c('span',[_vm._v(\" \"+_vm._s(_vm.buttonLabel)+\" \")])]),_c('v-spacer'),_c('v-select',{staticClass:\"mr-2\",attrs:{\"label\":\"Filter by Severity\",\"hide-details\":\"\",\"items\":_vm.logLevels,\"data-test\":\"log-messages-level\"},model:{value:(_vm.logLevel),callback:function ($$v) {_vm.logLevel=$$v},expression:\"logLevel\"}}),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"mdi-magnify\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\",\"data-test\":\"search-log-messages\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.shownData,\"search\":_vm.search,\"calculate-widths\":\"\",\"disable-pagination\":\"\",\"hide-default-footer\":\"\",\"multi-sort\":\"\",\"dense\":\"\",\"height\":\"45vh\",\"data-test\":\"log-messages\"},scopedSlots:_vm._u([{key:\"item.timestamp\",fn:function({ item }){return [_c('time',{attrs:{\"title\":item.timestamp,\"datetime\":item.timestamp}},[_vm._v(\" \"+_vm._s(item.timestamp)+\" \")])]}},{key:\"item.severity\",fn:function({ item }){return [_c('span',{class:_vm.getColorClass(item.severity)},[_vm._v(_vm._s(item.severity))])]}},{key:\"item.log\",fn:function({ item }){return [_c('div',{staticStyle:{\"white-space\":\"pre-wrap\"}},[_vm._v(_vm._s(item.log))])]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# 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*/\n\nimport * as ActionCable from '@rails/actioncable'\n//ActionCable.logger.enabled = true\nActionCable.ConnectionMonitor.staleThreshold = 10\n\nexport default class Cable {\n constructor(url = '/openc3-api/cable') {\n this._cable = null\n this._url = url\n }\n disconnect() {\n this._cable.disconnect()\n }\n createSubscription(channel, scope, callbacks = {}, additionalOptions = {}) {\n return OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(() => {\n if (this._cable == null) {\n let final_url =\n this._url +\n '?scope=' +\n window.openc3Scope +\n '&authorization=' +\n localStorage.openc3Token\n this._cable = ActionCable.createConsumer(final_url)\n }\n return this._cable.subscriptions.create(\n {\n channel,\n ...additionalOptions,\n },\n callbacks\n )\n })\n }\n recordPing() {\n this._cable.connection.monitor.recordPing()\n }\n}\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LogMessages.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LogMessages.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LogMessages.vue?vue&type=template&id=b883cffc&\"\nimport script from \"./LogMessages.vue?vue&type=script&lang=js&\"\nexport * from \"./LogMessages.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('mounting-portal',{attrs:{\"mount-to\":\"#openc3-menu\",\"append\":\"\"}},[_c('div',{staticClass:\"v-toolbar__content\"},[_vm._l((_vm.menus),function(menu,i){return _c('v-menu',{key:i,attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mx-1\",attrs:{\"outlined\":\"\",\"data-test\":_vm.formatDT(`${_vm.title} ${menu.label}`)}},'v-btn',attrs,false),on),[_c('span',{domProps:{\"textContent\":_vm._s(menu.label)}}),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-menu-down \")])],1)]}}],null,true)},[_c('v-list',[_c('v-radio-group',{staticClass:\"ma-0 pa-0\",attrs:{\"value\":menu.radioGroup,\"hide-details\":\"\",\"dense\":\"\"}},[_vm._l((menu.items),function(option,j){return [(option.divider)?_c('v-divider'):_c('v-list-item',{key:j,attrs:{\"disabled\":option.disabled,\"data-test\":_vm.formatDT(`${_vm.title} ${menu.label} ${option.label}`)},on:{\"click\":function($event){return option.command(option)}}},[(option.radio)?_c('v-list-item-action',[_c('v-radio',{attrs:{\"color\":\"secondary\",\"label\":option.label,\"value\":option.label}})],1):_vm._e(),(option.checkbox)?_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"color\":\"secondary\",\"label\":option.label},model:{value:(option.checked),callback:function ($$v) {_vm.$set(option, \"checked\", $$v)},expression:\"option.checked\"}})],1):_vm._e(),(option.icon)?_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":option.disabled}},[_vm._v(_vm._s(option.icon))])],1):_vm._e(),(!option.radio && !option.checkbox)?_c('v-list-item-title',{style:('cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : ''))},[_vm._v(_vm._s(option.label))]):_vm._e()],1)]})],2)],1)],1)}),_c('v-spacer'),_c('v-toolbar-title',[_vm._v(_vm._s(_vm.title))]),_c('v-spacer')],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TopBar.vue?vue&type=template&id=2eb37f67&scoped=true&\"\nimport script from \"./TopBar.vue?vue&type=script&lang=js&\"\nexport * from \"./TopBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TopBar.vue?vue&type=style&index=0&id=2eb37f67&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2eb37f67\",\n null\n \n)\n\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# 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-->\n\n<template>\n <div>\n <top-bar :menus=\"menus\" :title=\"title\" />\n <v-card>\n <v-tabs v-model=\"curTab\" fixed-tabs>\n <v-tab v-for=\"(tab, index) in tabs\" :key=\"index\" :to=\"tab.url\">\n {{ tab.name }}\n </v-tab>\n </v-tabs>\n <router-view :refresh-interval=\"refreshInterval\" />\n <v-dialog v-model=\"optionsDialog\" max-width=\"300\">\n <v-card>\n <v-system-bar>\n <v-spacer />\n <span>Options</span>\n <v-spacer />\n </v-system-bar>\n <div class=\"pa-3\">\n <v-text-field\n min=\"0\"\n max=\"10000\"\n step=\"100\"\n type=\"number\"\n label=\"Refresh Interval (ms)\"\n :value=\"refreshInterval\"\n @change=\"refreshInterval = $event\"\n />\n </div>\n </v-card>\n </v-dialog>\n </v-card>\n <div style=\"height: 20px\" />\n <log-messages />\n </div>\n</template>\n\n<script>\nimport LogMessages from '@openc3/tool-common/src/components/LogMessages'\nimport TopBar from '@openc3/tool-common/src/components/TopBar'\nexport default {\n components: {\n LogMessages,\n TopBar,\n },\n data() {\n return {\n title: 'COSMOS CmdTlmServer',\n curTab: null,\n tabs: [\n {\n name: 'Interfaces',\n url: '/interfaces',\n },\n {\n name: 'Targets',\n url: '/targets',\n },\n {\n name: 'Cmd Packets',\n url: '/cmd-packets',\n },\n {\n name: 'Tlm Packets',\n url: '/tlm-packets',\n },\n {\n name: 'Routers',\n url: '/routers',\n },\n {\n name: 'Status',\n url: '/status',\n },\n ],\n updater: null,\n refreshInterval: 1000,\n optionsDialog: false,\n menus: [\n {\n label: 'File',\n items: [\n {\n label: 'Options',\n command: () => {\n this.optionsDialog = true\n },\n },\n ],\n },\n ],\n }\n },\n}\n</script>\n\n<style scoped>\n.v-list :deep(.v-label) {\n margin-left: 5px;\n}\n.v-list-item__icon {\n /* For some reason the default margin-right is huge */\n margin-right: 15px !important;\n}\n.v-list-item__title {\n color: white;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CmdTlmServer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CmdTlmServer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CmdTlmServer.vue?vue&type=template&id=435cb5a8&scoped=true&\"\nimport script from \"./CmdTlmServer.vue?vue&type=script&lang=js&\"\nexport * from \"./CmdTlmServer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CmdTlmServer.vue?vue&type=style&index=0&id=435cb5a8&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"435cb5a8\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".v-list[data-v-435cb5a8] .v-label{margin-left:5px}.v-list-item__icon[data-v-435cb5a8]{margin-right:15px!important}.v-list-item__title[data-v-435cb5a8]{color:#fff}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".v-list[data-v-2eb37f67] .v-label{margin-left:5px}.v-list-item__icon[data-v-2eb37f67]{margin-right:15px!important}.v-list-item__title[data-v-2eb37f67]{color:#fff}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CmdTlmServer.vue?vue&type=style&index=0&id=435cb5a8&prod&scoped=true&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"52afc085\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=style&index=0&id=2eb37f67&prod&scoped=true&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"706a3f6d\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["render","_vm","this","_c","_self","attrs","menus","title","model","value","curTab","callback","$$v","expression","_l","tabs","tab","index","key","url","_v","_s","name","refreshInterval","optionsDialog","staticClass","on","$event","staticStyle","staticRenderFns","scopedSlots","_u","fn","_g","_b","pause","buttonIcon","buttonLabel","logLevels","logLevel","search","headers","shownData","item","timestamp","class","getColorClass","severity","log","ActionCable","Cable","_cable","_url","disconnect","channel","scope","callbacks","additionalOptions","OpenC3Auth","updateToken","defaultMinValidity","then","final_url","window","openc3Scope","localStorage","openc3Token","subscriptions","create","connection","monitor","recordPing","props","history_count","type","default","data","text","width","cable","subscription","paused","computed","watch","created","destroyed","methods","createSubscription","received","messages","message","nibble","result","formatDate","component","menu","i","formatDT","label","domProps","radioGroup","items","option","j","divider","disabled","command","radio","_e","checkbox","checked","$set","icon","style","mounted","document","components","LogMessages","TopBar","updater","___CSS_LOADER_EXPORT___","push","module","id","content","__esModule","locals","exports","add"],"sourceRoot":""}