cosmosc2-tool-cmdtlmserver 5.0.2.pre.beta2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2 @@
1
+ (self["webpackChunk_cosmosc2_tool_cmdtlmserver"]=self["webpackChunk_cosmosc2_tool_cmdtlmserver"]||[]).push([[273],{4273:function(n,e,t){"use strict";t.r(e),t.d(e,{default:function(){return u}});var s=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",[t("v-card",{attrs:{flat:""}},[t("v-container",{staticClass:"ma-0 pa-4"},[t("v-row",{attrs:{"no-gutters":""}},[t("v-col",{attrs:{cols:"auto"}},[t("v-select",{attrs:{label:"Limits Set",items:n.limitsSets,"data-test":"limits-set"},model:{value:n.currentLimitsSet,callback:function(e){n.currentLimitsSet=e},expression:"currentLimitsSet"}})],1)],1)],1)],1)],1)},a=[],l=(t(1245),t(1479));function i(){var n="/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue",e="d35935dd4c11b443690b972f96a2ea08a51e4fb6",t=new Function("return this")(),s="__coverage__",a={path:"/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue",statementMap:{0:{start:{line:84,column:4},end:{line:104,column:5}},1:{start:{line:108,column:6},end:{line:108,column:43}},2:{start:{line:112,column:4},end:{line:114,column:6}},3:{start:{line:113,column:6},end:{line:113,column:28}},4:{start:{line:115,column:4},end:{line:115,column:30}},5:{start:{line:116,column:4},end:{line:119,column:5}},6:{start:{line:122,column:4},end:{line:122,column:49}},7:{start:{line:158,column:6},end:{line:160,column:8}},8:{start:{line:159,column:8},end:{line:159,column:38}},9:{start:{line:163,column:6},end:{line:163,column:36}},10:{start:{line:166,column:6},end:{line:170,column:7}},11:{start:{line:167,column:8},end:{line:167,column:44}},12:{start:{line:168,column:13},end:{line:170,column:7}},13:{start:{line:169,column:8},end:{line:169,column:43}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:83,column:2},end:{line:83,column:3}},loc:{start:{line:83,column:9},end:{line:105,column:3}},line:83},1:{name:"(anonymous_1)",decl:{start:{line:107,column:22},end:{line:107,column:23}},loc:{start:{line:107,column:48},end:{line:109,column:5}},line:107},2:{name:"(anonymous_2)",decl:{start:{line:111,column:2},end:{line:111,column:3}},loc:{start:{line:111,column:12},end:{line:120,column:3}},line:111},3:{name:"(anonymous_3)",decl:{start:{line:112,column:36},end:{line:112,column:37}},loc:{start:{line:112,column:46},end:{line:114,column:5}},line:112},4:{name:"(anonymous_4)",decl:{start:{line:121,column:13},end:{line:121,column:14}},loc:{start:{line:121,column:25},end:{line:123,column:3}},line:121},5:{name:"(anonymous_5)",decl:{start:{line:157,column:25},end:{line:157,column:26}},loc:{start:{line:157,column:37},end:{line:161,column:5}},line:157},6:{name:"(anonymous_6)",decl:{start:{line:158,column:37},end:{line:158,column:38}},loc:{start:{line:158,column:49},end:{line:160,column:7}},line:158},7:{name:"(anonymous_7)",decl:{start:{line:162,column:4},end:{line:162,column:5}},loc:{start:{line:162,column:24},end:{line:164,column:5}},line:162},8:{name:"(anonymous_8)",decl:{start:{line:165,column:4},end:{line:165,column:5}},loc:{start:{line:165,column:29},end:{line:171,column:5}},line:165}},branchMap:{0:{loc:{start:{line:108,column:6},end:{line:108,column:43}},type:"binary-expr",locations:[{start:{line:108,column:6},end:{line:108,column:14}},{start:{line:108,column:18},end:{line:108,column:43}}],line:108},1:{loc:{start:{line:166,column:6},end:{line:170,column:7}},type:"if",locations:[{start:{line:166,column:6},end:{line:170,column:7}},{start:{line:168,column:13},end:{line:170,column:7}}],line:166},2:{loc:{start:{line:168,column:13},end:{line:170,column:7}},type:"if",locations:[{start:{line:168,column:13},end:{line:170,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:168}},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},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},b:{0:[0,0],1:[0,0],2:[0,0]},inputSourceMap:{version:3,sources:["StatusTab.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyEA;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;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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n--\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 \x3c!-- TODO: move to admin settings and delete this tab --\x3e\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\n \x3c!-- v-card flat>\n <v-card-title>API Status</v-card-title>\n <v-data-table\n :headers=\"apiHeaders\"\n :items=\"apiStatus\"\n calculate-widths\n disable-pagination\n hide-default-footer\n />\n </v-card>\n\n <v-card flat>\n <v-card-title>Background Tasks</v-card-title>\n <v-data-table\n :headers=\"backgroundHeaders\"\n :items=\"backgroundTasks\"\n calculate-widths\n disable-pagination\n hide-default-footer\n >\n <template v-slot:item.control=\"{ item }\">\n <v-btn\n block\n color=\"primary\"\n @click=\"taskControl(item.name, item.control)\"\n >\n {{ item.control }}\n </v-btn>\n </template>\n </v-data-table>\n </v-card --\x3e\n </div>\n</template>\n\n<script>\n// import Updater from './Updater'\nimport { CosmosApi } from '@cosmosc2/tool-common/src/services/cosmos-api'\n\nexport default {\n // mixins: [Updater],\n props: {\n tabId: Number,\n curTab: Number,\n },\n data() {\n return {\n api: new CosmosApi(),\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 }\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 },\n destroyed: function () {\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n // update() {\n // if (this.tabId != this.curTab) return\n // this.api.get_server_status().then((status) => {\n // this.currentLimitsSet = status[0]\n // this.apiStatus = [\n // {\n // port: status[1],\n // clients: status[2],\n // requests: status[3],\n // avgTime: (Math.round(status[4] * 1000000) / 1000000).toFixed(6),\n // threads: status[5],\n // },\n // ]\n // })\n // this.api.get_background_tasks().then((tasks) => {\n // this.backgroundTasks = []\n // for (let x of tasks) {\n // var control = ''\n // if (x[1] == 'no thread' || x[1] == 'complete') {\n // control = 'Start'\n // } else {\n // control = 'Stop'\n // }\n // this.backgroundTasks.push({\n // name: x[0],\n // state: x[1],\n // status: x[2],\n // control: control,\n // })\n // }\n // })\n // },\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 },\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:"d35935dd4c11b443690b972f96a2ea08a51e4fb6"},l=t[s]||(t[s]={});l[n]&&l[n].hash===e||(l[n]=a);var o=l[n];return i=function(){return o},o}i();var o={props:{tabId:Number,curTab:Number},data:function(){return i().f[0]++,i().s[0]++,{api:new l.J,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}},watch:{currentLimitsSet:function(n,e){i().f[1]++,i().s[1]++,i().b[0][0]++,e&&(i().b[0][1]++,this.limitsChange(n))}},created:function(){var n=this;i().f[2]++,i().s[2]++,this.api.get_limits_sets().then((function(e){i().f[3]++,i().s[3]++,n.limitsSets=e})),i().s[4]++,this.getCurrentLimitsSet(),i().s[5]++,this.currentSetRefreshInterval=setInterval(this.getCurrentLimitsSet,6e4)},destroyed:function(){i().f[4]++,i().s[6]++,clearInterval(this.currentSetRefreshInterval)},methods:{getCurrentLimitsSet:function(){var n=this;i().f[5]++,i().s[7]++,this.api.get_limits_set().then((function(e){i().f[6]++,i().s[8]++,n.currentLimitsSet=e}))},limitsChange:function(n){i().f[7]++,i().s[9]++,this.api.set_limits_set(n)},taskControl:function(n,e){i().f[8]++,i().s[10]++,"Start"==e?(i().b[1][0]++,i().s[11]++,this.api.start_background_task(n)):(i().b[1][1]++,i().s[12]++,"Stop"==e?(i().b[2][0]++,i().s[13]++,this.api.stop_background_task(n)):i().b[2][1]++)}}},r=o,A=(t(5566),t(3287)),c=(0,A.Z)(r,s,a,!1,null,"0daef275",null),u=c.exports},9786:function(n,e,t){"use strict";t.r(e);var s=t(3467),a=t.n(s),l=t(8715),i=t.n(l),o=i()(a());o.push([n.id,".container[data-v-0daef275],.theme--dark.v-card[data-v-0daef275],.theme--dark.v-sheet[data-v-0daef275]{background-color:var(--v-tertiary-darken2)}",""]),e["default"]=o},5566:function(n,e,t){var s=t(9786);s.__esModule&&(s=s.default),"string"===typeof s&&(s=[[n.id,s,""]]),s.locals&&(n.exports=s.locals);var a=t(3514).Z;a("02adaef3",s,!0,{sourceMap:!1,shadowMode:!1})}}]);
2
+ //# sourceMappingURL=273.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/273.js","mappings":"kMAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,KAAK,CAACF,EAAG,cAAc,CAACG,YAAY,aAAa,CAACH,EAAG,QAAQ,CAACE,MAAM,CAAC,aAAa,KAAK,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,SAAS,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,aAAa,MAAQN,EAAIQ,WAAW,YAAY,cAAcC,MAAM,CAACC,MAAOV,EAAoB,iBAAEW,SAAS,SAAUC,GAAMZ,EAAIa,iBAAiBD,GAAKE,WAAW,uBAAuB,IAAI,IAAI,IAAI,IAAI,IACleC,EAAkB,G,wpSC2EtB,OAEEC,MAAO,CACLC,MAAOC,OACPC,OAAQD,QAEVE,KANF,WAOI,OADJ,sBACW,CACLC,IAAK,IAAIA,EAAAA,EACTC,UAAW,GACXC,WAAY,CAClB,CAAQ,KAARC,OAAQ,MAARd,QACA,CAAQ,KAARc,UAAQ,MAARd,WACA,CAAQ,KAARc,WAAQ,MAARd,YACA,CAAQ,KAARc,mBAAQ,MAARd,WACA,CAAQ,KAARc,iBAAQ,MAARd,YAEMe,gBAAiB,GACjBC,kBAAmB,CACzB,CAAQ,KAARF,OAAQ,MAARd,QACA,CAAQ,KAARc,QAAQ,MAARd,SACA,CAAQ,KAARc,SAAQ,MAARd,UACA,CAAQ,KAARc,UAAQ,MAARd,YAEMF,WAAY,GACZK,iBAAkB,GAClBc,0BAA2B,OAG/BC,MAAO,CACLf,iBAAkB,SAAtBA,EAAAA,GAAA,sBACA,wDAGEgB,QAlCF,WAkCA,iCACI5B,KAAKoB,IAAIS,kBAAkBC,MAAK,SAApC,yBACM,EAAN,gBAFA,WAII9B,KAAK+B,sBAJT,WAKI/B,KAAK0B,0BAA4BM,YACrC,yBACA,MAGEC,UAAW,WAAb,sBACIC,cAAclC,KAAK0B,4BAErBS,QAAS,CAiCPJ,oBAAqB,WAAzB,iCACM/B,KAAKoB,IAAIgB,iBAAiBN,MAAK,SAArC,yBACQ,EAAR,uBAGIO,aAtCJ,SAsCA5B,GAAA,sBACMT,KAAKoB,IAAIkB,eAAe7B,IAE1B8B,YAzCJ,SAyCAC,EAAAC,GAAA,uBACmB,SAATA,GAAV,0BACQzC,KAAKoB,IAAIsB,sBAAsBF,KACvC,+DACA,kCADA,kBCvKoY,I,oBCQhYG,GAAY,OACd,EACA7C,EACAgB,GACA,EACA,KACA,WACA,MAIF,EAAe6B,EAAiB,S,mFChB5BC,EAA0B,IAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,qJAAsJ,KAE/L,gB,qBCJA,IAAIC,EAAU,EAAQ,MACnBA,EAAQC,aAAYD,EAAUA,EAAQE,SACnB,kBAAZF,IAAsBA,EAAU,CAAC,CAACF,EAAOC,GAAIC,EAAS,MAC7DA,EAAQG,SAAQL,EAAOM,QAAUJ,EAAQG,QAE5C,IAAIE,EAAM,UACGA,EAAI,WAAYL,GAAS,EAAM,CAAC,WAAY,EAAM,YAAa","sources":["webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?11b6","webpack://@cosmosc2/tool-cmdtlmserver/src/tools/CmdTlmServer/StatusTab.vue","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?044e","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?aded","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/StatusTab.vue?d320"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;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)],1)}\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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <!-- 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 <!-- TODO: move to admin settings and delete this tab -->\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\n <!-- v-card flat>\n <v-card-title>API Status</v-card-title>\n <v-data-table\n :headers=\"apiHeaders\"\n :items=\"apiStatus\"\n calculate-widths\n disable-pagination\n hide-default-footer\n />\n </v-card>\n\n <v-card flat>\n <v-card-title>Background Tasks</v-card-title>\n <v-data-table\n :headers=\"backgroundHeaders\"\n :items=\"backgroundTasks\"\n calculate-widths\n disable-pagination\n hide-default-footer\n >\n <template v-slot:item.control=\"{ item }\">\n <v-btn\n block\n color=\"primary\"\n @click=\"taskControl(item.name, item.control)\"\n >\n {{ item.control }}\n </v-btn>\n </template>\n </v-data-table>\n </v-card -->\n </div>\n</template>\n\n<script>\n// import Updater from './Updater'\nimport { CosmosApi } from '@cosmosc2/tool-common/src/services/cosmos-api'\n\nexport default {\n // mixins: [Updater],\n props: {\n tabId: Number,\n curTab: Number,\n },\n data() {\n return {\n api: new CosmosApi(),\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 }\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 },\n destroyed: function () {\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n // update() {\n // if (this.tabId != this.curTab) return\n // this.api.get_server_status().then((status) => {\n // this.currentLimitsSet = status[0]\n // this.apiStatus = [\n // {\n // port: status[1],\n // clients: status[2],\n // requests: status[3],\n // avgTime: (Math.round(status[4] * 1000000) / 1000000).toFixed(6),\n // threads: status[5],\n // },\n // ]\n // })\n // this.api.get_background_tasks().then((tasks) => {\n // this.backgroundTasks = []\n // for (let x of tasks) {\n // var control = ''\n // if (x[1] == 'no thread' || x[1] == 'complete') {\n // control = 'Start'\n // } else {\n // control = 'Stop'\n // }\n // this.backgroundTasks.push({\n // name: x[0],\n // state: x[1],\n // status: x[2],\n // control: control,\n // })\n // }\n // })\n // },\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 },\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/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../../../../../node_modules/@vue/cli-service/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/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../../../../../node_modules/@vue/cli-service/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=0daef275&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=0daef275&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0daef275\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/@vue/cli-service/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-0daef275],.theme--dark.v-card[data-v-0daef275],.theme--dark.v-sheet[data-v-0daef275]{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/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-12[0].rules[0].use[1]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12[0].rules[0].use[2]!../../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12[0].rules[0].use[3]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StatusTab.vue?vue&type=style&index=0&id=0daef275&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(\"02adaef3\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","staticClass","limitsSets","model","value","callback","$$v","currentLimitsSet","expression","staticRenderFns","props","tabId","Number","curTab","data","api","apiStatus","apiHeaders","text","backgroundTasks","backgroundHeaders","currentSetRefreshInterval","watch","created","get_limits_sets","then","getCurrentLimitsSet","setInterval","destroyed","clearInterval","methods","get_limits_set","limitsChange","set_limits_set","taskControl","name","state","start_background_task","component","___CSS_LOADER_EXPORT___","push","module","id","content","__esModule","default","locals","exports","add"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self["webpackChunk_cosmosc2_tool_cmdtlmserver"]=self["webpackChunk_cosmosc2_tool_cmdtlmserver"]||[]).push([[290],{9290:function(e,n,t){t.r(n),t.d(n,{default:function(){return A}});var a=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("v-card",[t("v-card-title",[e._v(" "+e._s(e.data.length)+" Telemetry Packets "),t("v-spacer"),t("v-text-field",{attrs:{"append-icon":"mdi-magnify",label:"Search","single-line":"","hide-details":""},model:{value:e.search,callback:function(n){e.search=n},expression:"search"}})],1),t("v-data-table",{attrs:{"calculate-widths":"","disable-pagination":"","hide-default-footer":"","multi-sort":"","data-test":"tlm-packets-table",headers:e.headers,items:e.data,search:e.search},scopedSlots:e._u([{key:"item.view_raw",fn:function(n){var a=n.item;return[t("v-btn",{attrs:{block:"",color:"primary",disabled:a.count<1},on:{click:function(n){return e.openViewRaw(a.target_name,a.packet_name)}}},[e._v(" View Raw ")])]}},{key:"item.view_in_pkt_viewer",fn:function(n){var a=n.item;return["UNKNOWN"===a.target_name?t("span",[e._v("N/A")]):e._e(),"UNKNOWN"!=a.target_name?t("v-btn",{attrs:{block:"",color:"primary"},on:{click:function(n){return e.openPktViewer(a.target_name,a.packet_name)}}},[e._v(" View In Packet Viewer "),t("v-icon",{attrs:{right:""}},[e._v(" mdi-open-in-new ")])],1):e._e()]}}])}),t("raw-dialog",{attrs:{type:"Telemetry","target-name":e.target_name,"packet-name":e.packet_name,visible:e.viewRaw},on:{display:e.rawDisplayCallback}})],1)},l=[],i=(t(1245),t(8178),t(3450),t(5799)),o=t(3407);function r(){var e="/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/TlmPacketsTab.vue",n="790d1f8378e8b4e35abfac649e1551ed8f4a1770",t=new Function("return this")(),a="__coverage__",l={path:"/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/TlmPacketsTab.vue",statementMap:{0:{start:{line:90,column:4},end:{line:103,column:5}},1:{start:{line:109,column:6},end:{line:109,column:25}},2:{start:{line:112,column:6},end:{line:112,column:36}},3:{start:{line:113,column:6},end:{line:113,column:36}},4:{start:{line:114,column:6},end:{line:114,column:25}},5:{start:{line:117,column:6},end:{line:117,column:80}},6:{start:{line:120,column:6},end:{line:120,column:43}},7:{start:{line:120,column:37},end:{line:120,column:43}},8:{start:{line:121,column:6},end:{line:125,column:8}},9:{start:{line:122,column:8},end:{line:124,column:10}},10:{start:{line:123,column:10},end:{line:123,column:70}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:89,column:2},end:{line:89,column:3}},loc:{start:{line:89,column:9},end:{line:104,column:3}},line:89},1:{name:"(anonymous_1)",decl:{start:{line:108,column:4},end:{line:108,column:5}},loc:{start:{line:108,column:29},end:{line:110,column:5}},line:108},2:{name:"(anonymous_2)",decl:{start:{line:111,column:4},end:{line:111,column:5}},loc:{start:{line:111,column:42},end:{line:115,column:5}},line:111},3:{name:"(anonymous_3)",decl:{start:{line:116,column:4},end:{line:116,column:5}},loc:{start:{line:116,column:44},end:{line:118,column:5}},line:116},4:{name:"(anonymous_4)",decl:{start:{line:119,column:4},end:{line:119,column:5}},loc:{start:{line:119,column:13},end:{line:126,column:5}},line:119},5:{name:"(anonymous_5)",decl:{start:{line:121,column:39},end:{line:121,column:40}},loc:{start:{line:121,column:49},end:{line:125,column:7}},line:121},6:{name:"(anonymous_6)",decl:{start:{line:122,column:29},end:{line:122,column:30}},loc:{start:{line:122,column:36},end:{line:124,column:9}},line:122}},branchMap:{0:{loc:{start:{line:120,column:6},end:{line:120,column:43}},type:"if",locations:[{start:{line:120,column:6},end:{line:120,column:43}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:120}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0},b:{0:[0,0]},inputSourceMap:{version:3,sources:["TlmPacketsTab.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4EA;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",file:"TlmPacketsTab.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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n--\x3e\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Telemetry Packets\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 calculate-widths\n disable-pagination\n hide-default-footer\n multi-sort\n data-test="tlm-packets-table"\n :headers="headers"\n :items="data"\n :search="search"\n >\n <template v-slot:item.view_raw="{ item }">\n <v-btn\n block\n color="primary"\n :disabled="item.count < 1"\n @click="openViewRaw(item.target_name, item.packet_name)"\n >\n View Raw\n </v-btn>\n </template>\n <template v-slot:item.view_in_pkt_viewer="{ item }">\n <span v-if="item.target_name === \'UNKNOWN\'">N/A</span>\n <v-btn\n v-if="item.target_name != \'UNKNOWN\'"\n block\n color="primary"\n @click="openPktViewer(item.target_name, item.packet_name)"\n >\n View In Packet Viewer\n <v-icon right> mdi-open-in-new </v-icon>\n </v-btn>\n </template>\n </v-data-table>\n <raw-dialog\n type="Telemetry"\n :target-name="target_name"\n :packet-name="packet_name"\n :visible="viewRaw"\n @display="rawDisplayCallback"\n />\n </v-card>\n</template>\n\n<script>\nimport Updater from \'./Updater\'\nimport RawDialog from \'./RawDialog\'\n\nexport default {\n components: {\n RawDialog,\n },\n mixins: [Updater],\n props: {\n tabId: Number,\n curTab: Number,\n },\n data() {\n return {\n search: \'\',\n data: [],\n headers: [\n { text: \'Target Name\', value: \'target_name\' },\n { text: \'Packet Name\', value: \'packet_name\' },\n { text: \'Packet Count\', value: \'count\' },\n { text: \'View Raw\', value: \'view_raw\' },\n { text: \'View In Packet Viewer\', value: \'view_in_pkt_viewer\' },\n ],\n viewRaw: false,\n target_name: null,\n packet_name: null,\n }\n },\n methods: {\n // This method is hooked to the RawDialog as a callback to\n // keep track of whether the dialog is displayed\n rawDisplayCallback(bool) {\n this.viewRaw = bool\n },\n openViewRaw(target_name, packet_name) {\n this.target_name = target_name\n this.packet_name = packet_name\n this.viewRaw = true\n },\n openPktViewer(target_name, packet_name) {\n window.open(`/tools/packetviewer/${target_name}/${packet_name}`, \'_blank\')\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_tlm_info().then((info) => {\n this.data = info.map((x) => {\n return { target_name: x[0], packet_name: x[1], count: x[2] }\n })\n })\n },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"790d1f8378e8b4e35abfac649e1551ed8f4a1770"},i=t[a]||(t[a]={});i[e]&&i[e].hash===n||(i[e]=l);var o=i[e];return r=function(){return o},o}r();var c={components:{RawDialog:o.Z},mixins:[i.Z],props:{tabId:Number,curTab:Number},data:function(){return r().f[0]++,r().s[0]++,{search:"",data:[],headers:[{text:"Target Name",value:"target_name"},{text:"Packet Name",value:"packet_name"},{text:"Packet Count",value:"count"},{text:"View Raw",value:"view_raw"},{text:"View In Packet Viewer",value:"view_in_pkt_viewer"}],viewRaw:!1,target_name:null,packet_name:null}},methods:{rawDisplayCallback:function(e){r().f[1]++,r().s[1]++,this.viewRaw=e},openViewRaw:function(e,n){r().f[2]++,r().s[2]++,this.target_name=e,r().s[3]++,this.packet_name=n,r().s[4]++,this.viewRaw=!0},openPktViewer:function(e,n){r().f[3]++,r().s[5]++,window.open("/tools/packetviewer/".concat(e,"/").concat(n),"_blank")},update:function(){var e=this;if(r().f[4]++,r().s[6]++,this.tabId!=this.curTab)return r().b[0][0]++,void r().s[7]++;r().b[0][1]++,r().s[8]++,this.api.get_all_tlm_info().then((function(n){r().f[5]++,r().s[9]++,e.data=n.map((function(e){return r().f[6]++,r().s[10]++,{target_name:e[0],packet_name:e[1],count:e[2]}}))}))}}},m=c,s=t(3287),u=(0,s.Z)(m,a,l,!1,null,null,null),A=u.exports}}]);
2
+ //# sourceMappingURL=290.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/290.js","mappings":"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","sources":["webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/TlmPacketsTab.vue?b160","webpack://@cosmosc2/tool-cmdtlmserver/src/tools/CmdTlmServer/TlmPacketsTab.vue","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/TlmPacketsTab.vue?dde4","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/TlmPacketsTab.vue"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.data.length)+\" Telemetry Packets \"),_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:{\"calculate-widths\":\"\",\"disable-pagination\":\"\",\"hide-default-footer\":\"\",\"multi-sort\":\"\",\"data-test\":\"tlm-packets-table\",\"headers\":_vm.headers,\"items\":_vm.data,\"search\":_vm.search},scopedSlots:_vm._u([{key:\"item.view_raw\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{attrs:{\"block\":\"\",\"color\":\"primary\",\"disabled\":item.count < 1},on:{\"click\":function($event){return _vm.openViewRaw(item.target_name, item.packet_name)}}},[_vm._v(\" View Raw \")])]}},{key:\"item.view_in_pkt_viewer\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.target_name === 'UNKNOWN')?_c('span',[_vm._v(\"N/A\")]):_vm._e(),(item.target_name != 'UNKNOWN')?_c('v-btn',{attrs:{\"block\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.openPktViewer(item.target_name, item.packet_name)}}},[_vm._v(\" View In Packet Viewer \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-open-in-new \")])],1):_vm._e()]}}])}),_c('raw-dialog',{attrs:{\"type\":\"Telemetry\",\"target-name\":_vm.target_name,\"packet-name\":_vm.packet_name,\"visible\":_vm.viewRaw},on:{\"display\":_vm.rawDisplayCallback}})],1)}\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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Telemetry Packets\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 calculate-widths\n disable-pagination\n hide-default-footer\n multi-sort\n data-test=\"tlm-packets-table\"\n :headers=\"headers\"\n :items=\"data\"\n :search=\"search\"\n >\n <template v-slot:item.view_raw=\"{ item }\">\n <v-btn\n block\n color=\"primary\"\n :disabled=\"item.count < 1\"\n @click=\"openViewRaw(item.target_name, item.packet_name)\"\n >\n View Raw\n </v-btn>\n </template>\n <template v-slot:item.view_in_pkt_viewer=\"{ item }\">\n <span v-if=\"item.target_name === 'UNKNOWN'\">N/A</span>\n <v-btn\n v-if=\"item.target_name != 'UNKNOWN'\"\n block\n color=\"primary\"\n @click=\"openPktViewer(item.target_name, item.packet_name)\"\n >\n View In Packet Viewer\n <v-icon right> mdi-open-in-new </v-icon>\n </v-btn>\n </template>\n </v-data-table>\n <raw-dialog\n type=\"Telemetry\"\n :target-name=\"target_name\"\n :packet-name=\"packet_name\"\n :visible=\"viewRaw\"\n @display=\"rawDisplayCallback\"\n />\n </v-card>\n</template>\n\n<script>\nimport Updater from './Updater'\nimport RawDialog from './RawDialog'\n\nexport default {\n components: {\n RawDialog,\n },\n mixins: [Updater],\n props: {\n tabId: Number,\n curTab: Number,\n },\n data() {\n return {\n search: '',\n data: [],\n headers: [\n { text: 'Target Name', value: 'target_name' },\n { text: 'Packet Name', value: 'packet_name' },\n { text: 'Packet Count', value: 'count' },\n { text: 'View Raw', value: 'view_raw' },\n { text: 'View In Packet Viewer', value: 'view_in_pkt_viewer' },\n ],\n viewRaw: false,\n target_name: null,\n packet_name: null,\n }\n },\n methods: {\n // This method is hooked to the RawDialog as a callback to\n // keep track of whether the dialog is displayed\n rawDisplayCallback(bool) {\n this.viewRaw = bool\n },\n openViewRaw(target_name, packet_name) {\n this.target_name = target_name\n this.packet_name = packet_name\n this.viewRaw = true\n },\n openPktViewer(target_name, packet_name) {\n window.open(`/tools/packetviewer/${target_name}/${packet_name}`, '_blank')\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_tlm_info().then((info) => {\n this.data = info.map((x) => {\n return { target_name: x[0], packet_name: x[1], count: x[2] }\n })\n })\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TlmPacketsTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TlmPacketsTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TlmPacketsTab.vue?vue&type=template&id=7a6e7511&\"\nimport script from \"./TlmPacketsTab.vue?vue&type=script&lang=js&\"\nexport * from \"./TlmPacketsTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/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"],"names":["render","_vm","this","_h","$createElement","_c","_self","_v","_s","data","length","attrs","model","value","callback","$$v","search","expression","headers","scopedSlots","_u","key","fn","ref","item","count","on","$event","openViewRaw","target_name","packet_name","_e","openPktViewer","viewRaw","rawDisplayCallback","staticRenderFns","components","RawDialog","mixins","props","tabId","Number","curTab","text","methods","bool","window","open","update","api","get_all_tlm_info","then","component"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (self["webpackChunk_cosmosc2_tool_cmdtlmserver"]=self["webpackChunk_cosmosc2_tool_cmdtlmserver"]||[]).push([[361],{5563:function(t,n,e){var i,o;(function(){var r=this;(function(){(function(){var t=[].slice;this.ActionCable={INTERNAL:{message_types:{welcome:"welcome",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]},WebSocket:window.WebSocket,logger:window.console,createConsumer:function(t){var n;return null==t&&(t=null!=(n=this.getConfig("url"))?n:this.INTERNAL.default_mount_path),new s.Consumer(this.createWebSocketURL(t))},getConfig:function(t){var n;return n=document.head.querySelector("meta[name='action-cable-"+t+"']"),null!=n?n.getAttribute("content"):void 0},createWebSocketURL:function(t){var n;return t&&!/^wss?:/i.test(t)?(n=document.createElement("a"),n.href=t,n.href=n.href,n.protocol=n.protocol.replace("http","ws"),n.href):t},startDebugging:function(){return this.debugging=!0},stopDebugging:function(){return this.debugging=null},log:function(){var n,e;if(n=1<=arguments.length?t.call(arguments,0):[],this.debugging)return n.push(Date.now()),(e=this.logger).log.apply(e,["[ActionCable]"].concat(t.call(n)))}}}).call(this)}).call(r);var s=r.ActionCable;(function(){(function(){var t=function(t,n){return function(){return t.apply(n,arguments)}};s.ConnectionMonitor=function(){var n,e,i;function o(n){this.connection=n,this.visibilityDidChange=t(this.visibilityDidChange,this),this.reconnectAttempts=0}return o.pollInterval={min:3,max:30},o.staleThreshold=6,o.prototype.start=function(){if(!this.isRunning())return this.startedAt=e(),delete this.stoppedAt,this.startPolling(),document.addEventListener("visibilitychange",this.visibilityDidChange),s.log("ConnectionMonitor started. pollInterval = "+this.getPollInterval()+" ms")},o.prototype.stop=function(){if(this.isRunning())return this.stoppedAt=e(),this.stopPolling(),document.removeEventListener("visibilitychange",this.visibilityDidChange),s.log("ConnectionMonitor stopped")},o.prototype.isRunning=function(){return null!=this.startedAt&&null==this.stoppedAt},o.prototype.recordPing=function(){return this.pingedAt=e()},o.prototype.recordConnect=function(){return this.reconnectAttempts=0,this.recordPing(),delete this.disconnectedAt,s.log("ConnectionMonitor recorded connect")},o.prototype.recordDisconnect=function(){return this.disconnectedAt=e(),s.log("ConnectionMonitor recorded disconnect")},o.prototype.startPolling=function(){return this.stopPolling(),this.poll()},o.prototype.stopPolling=function(){return clearTimeout(this.pollTimeout)},o.prototype.poll=function(){return this.pollTimeout=setTimeout(function(t){return function(){return t.reconnectIfStale(),t.poll()}}(this),this.getPollInterval())},o.prototype.getPollInterval=function(){var t,e,i,o;return o=this.constructor.pollInterval,i=o.min,e=o.max,t=5*Math.log(this.reconnectAttempts+1),Math.round(1e3*n(t,i,e))},o.prototype.reconnectIfStale=function(){if(this.connectionIsStale())return s.log("ConnectionMonitor detected stale connection. reconnectAttempts = "+this.reconnectAttempts+", pollInterval = "+this.getPollInterval()+" ms, time disconnected = "+i(this.disconnectedAt)+" s, stale threshold = "+this.constructor.staleThreshold+" s"),this.reconnectAttempts++,this.disconnectedRecently()?s.log("ConnectionMonitor skipping reopening recent disconnect"):(s.log("ConnectionMonitor reopening"),this.connection.reopen())},o.prototype.connectionIsStale=function(){var t;return i(null!=(t=this.pingedAt)?t:this.startedAt)>this.constructor.staleThreshold},o.prototype.disconnectedRecently=function(){return this.disconnectedAt&&i(this.disconnectedAt)<this.constructor.staleThreshold},o.prototype.visibilityDidChange=function(){if("visible"===document.visibilityState)return setTimeout(function(t){return function(){if(t.connectionIsStale()||!t.connection.isOpen())return s.log("ConnectionMonitor reopening stale connection on visibilitychange. visbilityState = "+document.visibilityState),t.connection.reopen()}}(this),200)},e=function(){return(new Date).getTime()},i=function(t){return(e()-t)/1e3},n=function(t,n,e){return Math.max(n,Math.min(e,t))},o}()}).call(this),function(){var t,n,e,i,o,r=[].slice,c=function(t,n){return function(){return t.apply(n,arguments)}},u=[].indexOf||function(t){for(var n=0,e=this.length;n<e;n++)if(n in this&&this[n]===t)return n;return-1};i=s.INTERNAL,n=i.message_types,e=i.protocols,o=2<=e.length?r.call(e,0,t=e.length-1):(t=0,[]),e[t++],s.Connection=function(){function t(t){this.consumer=t,this.open=c(this.open,this),this.subscriptions=this.consumer.subscriptions,this.monitor=new s.ConnectionMonitor(this),this.disconnected=!0}return t.reopenDelay=500,t.prototype.send=function(t){return!!this.isOpen()&&(this.webSocket.send(JSON.stringify(t)),!0)},t.prototype.open=function(){return this.isActive()?(s.log("Attempted to open WebSocket, but existing socket is "+this.getState()),!1):(s.log("Opening WebSocket, current state is "+this.getState()+", subprotocols: "+e),null!=this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new s.WebSocket(this.consumer.url,e),this.installEventHandlers(),this.monitor.start(),!0)},t.prototype.close=function(t){var n,e;if(n=(null!=t?t:{allowReconnect:!0}).allowReconnect,n||this.monitor.stop(),this.isActive())return null!=(e=this.webSocket)?e.close():void 0},t.prototype.reopen=function(){var t;if(s.log("Reopening WebSocket, current state is "+this.getState()),!this.isActive())return this.open();try{return this.close()}catch(n){return t=n,s.log("Failed to reopen WebSocket",t)}finally{s.log("Reopening WebSocket in "+this.constructor.reopenDelay+"ms"),setTimeout(this.open,this.constructor.reopenDelay)}},t.prototype.getProtocol=function(){var t;return null!=(t=this.webSocket)?t.protocol:void 0},t.prototype.isOpen=function(){return this.isState("open")},t.prototype.isActive=function(){return this.isState("open","connecting")},t.prototype.isProtocolSupported=function(){var t;return t=this.getProtocol(),u.call(o,t)>=0},t.prototype.isState=function(){var t,n;return n=1<=arguments.length?r.call(arguments,0):[],t=this.getState(),u.call(n,t)>=0},t.prototype.getState=function(){var t,n,e;for(n in WebSocket)if(e=WebSocket[n],e===(null!=(t=this.webSocket)?t.readyState:void 0))return n.toLowerCase();return null},t.prototype.installEventHandlers=function(){var t,n;for(t in this.events)n=this.events[t].bind(this),this.webSocket["on"+t]=n},t.prototype.uninstallEventHandlers=function(){var t;for(t in this.events)this.webSocket["on"+t]=function(){}},t.prototype.events={message:function(t){var e,i,o,r;if(this.isProtocolSupported())switch(o=JSON.parse(t.data),e=o.identifier,i=o.message,r=o.type,r){case n.welcome:return this.monitor.recordConnect(),this.subscriptions.reload();case n.ping:return this.monitor.recordPing();case n.confirmation:return this.subscriptions.notify(e,"connected");case n.rejection:return this.subscriptions.reject(e);default:return this.subscriptions.notify(e,"received",i)}},open:function(){if(s.log("WebSocket onopen event, using '"+this.getProtocol()+"' subprotocol"),this.disconnected=!1,!this.isProtocolSupported())return s.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close:function(t){if(s.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error:function(){return s.log("WebSocket onerror event")}},t}()}.call(this),function(){var t=[].slice;s.Subscriptions=function(){function n(t){this.consumer=t,this.subscriptions=[]}return n.prototype.create=function(t,n){var e,i,o;return e=t,i="object"===typeof e?e:{channel:e},o=new s.Subscription(this.consumer,i,n),this.add(o)},n.prototype.add=function(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.sendCommand(t,"subscribe"),t},n.prototype.remove=function(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t},n.prototype.reject=function(t){var n,e,i,o,r;for(i=this.findAll(t),o=[],n=0,e=i.length;n<e;n++)r=i[n],this.forget(r),this.notify(r,"rejected"),o.push(r);return o},n.prototype.forget=function(t){var n;return this.subscriptions=function(){var e,i,o,r;for(o=this.subscriptions,r=[],e=0,i=o.length;e<i;e++)n=o[e],n!==t&&r.push(n);return r}.call(this),t},n.prototype.findAll=function(t){var n,e,i,o,r;for(i=this.subscriptions,o=[],n=0,e=i.length;n<e;n++)r=i[n],r.identifier===t&&o.push(r);return o},n.prototype.reload=function(){var t,n,e,i,o;for(e=this.subscriptions,i=[],t=0,n=e.length;t<n;t++)o=e[t],i.push(this.sendCommand(o,"subscribe"));return i},n.prototype.notifyAll=function(){var n,e,i,o,r,s,c;for(e=arguments[0],n=2<=arguments.length?t.call(arguments,1):[],r=this.subscriptions,s=[],i=0,o=r.length;i<o;i++)c=r[i],s.push(this.notify.apply(this,[c,e].concat(t.call(n))));return s},n.prototype.notify=function(){var n,e,i,o,r,s,c;for(s=arguments[0],e=arguments[1],n=3<=arguments.length?t.call(arguments,2):[],c="string"===typeof s?this.findAll(s):[s],r=[],i=0,o=c.length;i<o;i++)s=c[i],r.push("function"===typeof s[e]?s[e].apply(s,n):void 0);return r},n.prototype.sendCommand=function(t,n){var e;return e=t.identifier,this.consumer.send({command:n,identifier:e})},n}()}.call(this),function(){s.Subscription=function(){var t;function n(n,e,i){this.consumer=n,null==e&&(e={}),this.identifier=JSON.stringify(e),t(this,i)}return n.prototype.perform=function(t,n){return null==n&&(n={}),n.action=t,this.send(n)},n.prototype.send=function(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})},n.prototype.unsubscribe=function(){return this.consumer.subscriptions.remove(this)},t=function(t,n){var e,i;if(null!=n)for(e in n)i=n[e],t[e]=i;return t},n}()}.call(this),function(){s.Consumer=function(){function t(t){this.url=t,this.subscriptions=new s.Subscriptions(this),this.connection=new s.Connection(this)}return t.prototype.send=function(t){return this.connection.send(t)},t.prototype.connect=function(){return this.connection.open()},t.prototype.disconnect=function(){return this.connection.close({allowReconnect:!1})},t.prototype.ensureActiveConnection=function(){if(!this.connection.isActive())return this.connection.open()},t}()}.call(this)}).call(this),t.exports?t.exports=s:(i=s,o="function"===typeof i?i.call(n,e,n,t):i,void 0===o||(t.exports=o))}).call(this)},1639:function(t,n,e){"use strict";var i=e(3103),o=e(9859),r=e(266),s=e(5968),c=e(8885),u=e(6733),l=e(8311),a=e(3326),p=e(5300),h=e(3349),f=e(17),d=e(95),g=e(4231),m=d("replace"),v=o.TypeError,y=s("".indexOf),b=s("".replace),S=s("".slice),w=Math.max,C=function(t,n,e){return e>t.length?-1:""===n?e:y(t,n,e)};i({target:"String",proto:!0},{replaceAll:function(t,n){var e,i,o,s,d,A,D,N,T,k=c(this),I=0,M=0,R="";if(null!=t){if(e=l(t),e&&(i=a(c(h(t))),!~y(i,"g")))throw v("`.replaceAll` does not allow non-global regexes");if(o=p(t,m),o)return r(o,t,k,n);if(g&&e)return b(a(k),t,n)}s=a(k),d=a(t),A=u(n),A||(n=a(n)),D=d.length,N=w(1,D),I=C(s,d,0);while(-1!==I)T=A?a(n(d,I,s)):f(d,s,I,[],void 0,n),R+=S(s,M,I)+T,M=I+D,I=C(s,d,I+N);return M<s.length&&(R+=S(s,M)),R}})},5488:function(t,n,e){"use strict";e.d(n,{Z:function(){return c}});Math.pow(10,8);var i=6e4,o=36e5,r=e(9785),s=e(2765);function c(t,n){(0,r.Z)(1,arguments);var e=n||{},i=null==e.additionalDigits?2:(0,s.Z)(e.additionalDigits);if(2!==i&&1!==i&&0!==i)throw new RangeError("additionalDigits must be 0, 1 or 2");if("string"!==typeof t&&"[object String]"!==Object.prototype.toString.call(t))return new Date(NaN);var o,c=h(t);if(c.date){var u=f(c.date,i);o=d(u.restDateString,u.year)}if(!o||isNaN(o.getTime()))return new Date(NaN);var l,a=o.getTime(),p=0;if(c.time&&(p=m(c.time),isNaN(p)))return new Date(NaN);if(!c.timezone){var g=new Date(a+p),v=new Date(0);return v.setFullYear(g.getUTCFullYear(),g.getUTCMonth(),g.getUTCDate()),v.setHours(g.getUTCHours(),g.getUTCMinutes(),g.getUTCSeconds(),g.getUTCMilliseconds()),v}return l=y(c.timezone),isNaN(l)?new Date(NaN):new Date(a+p+l)}var u={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},l=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,a=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,p=/^([+-])(\d{2})(?::?(\d{2}))?$/;function h(t){var n,e={},i=t.split(u.dateTimeDelimiter);if(i.length>2)return e;if(/:/.test(i[0])?n=i[0]:(e.date=i[0],n=i[1],u.timeZoneDelimiter.test(e.date)&&(e.date=t.split(u.timeZoneDelimiter)[0],n=t.substr(e.date.length,t.length))),n){var o=u.timezone.exec(n);o?(e.time=n.replace(o[1],""),e.timezone=o[1]):e.time=n}return e}function f(t,n){var e=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+n)+"})|(\\d{2}|[+-]\\d{"+(2+n)+"})$)"),i=t.match(e);if(!i)return{year:NaN,restDateString:""};var o=i[1]?parseInt(i[1]):null,r=i[2]?parseInt(i[2]):null;return{year:null===r?o:100*r,restDateString:t.slice((i[1]||i[2]).length)}}function d(t,n){if(null===n)return new Date(NaN);var e=t.match(l);if(!e)return new Date(NaN);var i=!!e[4],o=g(e[1]),r=g(e[2])-1,s=g(e[3]),c=g(e[4]),u=g(e[5])-1;if(i)return D(n,c,u)?b(n,c,u):new Date(NaN);var a=new Date(0);return C(n,r,s)&&A(n,o)?(a.setUTCFullYear(n,r,Math.max(o,s)),a):new Date(NaN)}function g(t){return t?parseInt(t):1}function m(t){var n=t.match(a);if(!n)return NaN;var e=v(n[1]),r=v(n[2]),s=v(n[3]);return N(e,r,s)?e*o+r*i+1e3*s:NaN}function v(t){return t&&parseFloat(t.replace(",","."))||0}function y(t){if("Z"===t)return 0;var n=t.match(p);if(!n)return 0;var e="+"===n[1]?-1:1,r=parseInt(n[2]),s=n[3]&&parseInt(n[3])||0;return T(r,s)?e*(r*o+s*i):NaN}function b(t,n,e){var i=new Date(0);i.setUTCFullYear(t,0,4);var o=i.getUTCDay()||7,r=7*(n-1)+e+1-o;return i.setUTCDate(i.getUTCDate()+r),i}var S=[31,null,31,30,31,30,31,31,30,31,30,31];function w(t){return t%400===0||t%4===0&&t%100!==0}function C(t,n,e){return n>=0&&n<=11&&e>=1&&e<=(S[n]||(w(t)?29:28))}function A(t,n){return n>=1&&n<=(w(t)?366:365)}function D(t,n,e){return n>=1&&n<=53&&e>=0&&e<=6}function N(t,n,e){return 24===t?0===n&&0===e:e>=0&&e<60&&n>=0&&n<60&&t>=0&&t<25}function T(t,n){return n>=0&&n<=59}}}]);
2
+ //# sourceMappingURL=361.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/361.js","mappings":"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","sources":["webpack://@cosmosc2/tool-cmdtlmserver/../../node_modules/actioncable/lib/assets/compiled/action_cable.js","webpack://@cosmosc2/tool-cmdtlmserver/../../node_modules/core-js/modules/es.string.replace-all.js","webpack://@cosmosc2/tool-cmdtlmserver/../../node_modules/date-fns/esm/constants/index.js","webpack://@cosmosc2/tool-cmdtlmserver/../../node_modules/date-fns/esm/parseISO/index.js"],"sourcesContent":["(function() {\n var context = this;\n\n (function() {\n (function() {\n var slice = [].slice;\n\n this.ActionCable = {\n INTERNAL: {\n \"message_types\": {\n \"welcome\": \"welcome\",\n \"ping\": \"ping\",\n \"confirmation\": \"confirm_subscription\",\n \"rejection\": \"reject_subscription\"\n },\n \"default_mount_path\": \"/cable\",\n \"protocols\": [\"actioncable-v1-json\", \"actioncable-unsupported\"]\n },\n WebSocket: window.WebSocket,\n logger: window.console,\n createConsumer: function(url) {\n var ref;\n if (url == null) {\n url = (ref = this.getConfig(\"url\")) != null ? ref : this.INTERNAL.default_mount_path;\n }\n return new ActionCable.Consumer(this.createWebSocketURL(url));\n },\n getConfig: function(name) {\n var element;\n element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n return element != null ? element.getAttribute(\"content\") : void 0;\n },\n createWebSocketURL: function(url) {\n var a;\n if (url && !/^wss?:/i.test(url)) {\n a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n },\n startDebugging: function() {\n return this.debugging = true;\n },\n stopDebugging: function() {\n return this.debugging = null;\n },\n log: function() {\n var messages, ref;\n messages = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n if (this.debugging) {\n messages.push(Date.now());\n return (ref = this.logger).log.apply(ref, [\"[ActionCable]\"].concat(slice.call(messages)));\n }\n }\n };\n\n }).call(this);\n }).call(context);\n\n var ActionCable = context.ActionCable;\n\n (function() {\n (function() {\n var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n ActionCable.ConnectionMonitor = (function() {\n var clamp, now, secondsSince;\n\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30\n };\n\n ConnectionMonitor.staleThreshold = 6;\n\n function ConnectionMonitor(connection) {\n this.connection = connection;\n this.visibilityDidChange = bind(this.visibilityDidChange, this);\n this.reconnectAttempts = 0;\n }\n\n ConnectionMonitor.prototype.start = function() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n document.addEventListener(\"visibilitychange\", this.visibilityDidChange);\n return ActionCable.log(\"ConnectionMonitor started. pollInterval = \" + (this.getPollInterval()) + \" ms\");\n }\n };\n\n ConnectionMonitor.prototype.stop = function() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n document.removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n return ActionCable.log(\"ConnectionMonitor stopped\");\n }\n };\n\n ConnectionMonitor.prototype.isRunning = function() {\n return (this.startedAt != null) && (this.stoppedAt == null);\n };\n\n ConnectionMonitor.prototype.recordPing = function() {\n return this.pingedAt = now();\n };\n\n ConnectionMonitor.prototype.recordConnect = function() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n return ActionCable.log(\"ConnectionMonitor recorded connect\");\n };\n\n ConnectionMonitor.prototype.recordDisconnect = function() {\n this.disconnectedAt = now();\n return ActionCable.log(\"ConnectionMonitor recorded disconnect\");\n };\n\n ConnectionMonitor.prototype.startPolling = function() {\n this.stopPolling();\n return this.poll();\n };\n\n ConnectionMonitor.prototype.stopPolling = function() {\n return clearTimeout(this.pollTimeout);\n };\n\n ConnectionMonitor.prototype.poll = function() {\n return this.pollTimeout = setTimeout((function(_this) {\n return function() {\n _this.reconnectIfStale();\n return _this.poll();\n };\n })(this), this.getPollInterval());\n };\n\n ConnectionMonitor.prototype.getPollInterval = function() {\n var interval, max, min, ref;\n ref = this.constructor.pollInterval, min = ref.min, max = ref.max;\n interval = 5 * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1000);\n };\n\n ConnectionMonitor.prototype.reconnectIfStale = function() {\n if (this.connectionIsStale()) {\n ActionCable.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + (this.getPollInterval()) + \" ms, time disconnected = \" + (secondsSince(this.disconnectedAt)) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n return ActionCable.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n ActionCable.log(\"ConnectionMonitor reopening\");\n return this.connection.reopen();\n }\n }\n };\n\n ConnectionMonitor.prototype.connectionIsStale = function() {\n var ref;\n return secondsSince((ref = this.pingedAt) != null ? ref : this.startedAt) > this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.disconnectedRecently = function() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.visibilityDidChange = function() {\n if (document.visibilityState === \"visible\") {\n return setTimeout((function(_this) {\n return function() {\n if (_this.connectionIsStale() || !_this.connection.isOpen()) {\n ActionCable.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visbilityState = \" + document.visibilityState);\n return _this.connection.reopen();\n }\n };\n })(this), 200);\n }\n };\n\n now = function() {\n return new Date().getTime();\n };\n\n secondsSince = function(time) {\n return (now() - time) / 1000;\n };\n\n clamp = function(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n\n return ConnectionMonitor;\n\n })();\n\n }).call(this);\n (function() {\n var i, message_types, protocols, ref, supportedProtocols, unsupportedProtocol,\n slice = [].slice,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n ref = ActionCable.INTERNAL, message_types = ref.message_types, protocols = ref.protocols;\n\n supportedProtocols = 2 <= protocols.length ? slice.call(protocols, 0, i = protocols.length - 1) : (i = 0, []), unsupportedProtocol = protocols[i++];\n\n ActionCable.Connection = (function() {\n Connection.reopenDelay = 500;\n\n function Connection(consumer) {\n this.consumer = consumer;\n this.open = bind(this.open, this);\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ActionCable.ConnectionMonitor(this);\n this.disconnected = true;\n }\n\n Connection.prototype.send = function(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n\n Connection.prototype.open = function() {\n if (this.isActive()) {\n ActionCable.log(\"Attempted to open WebSocket, but existing socket is \" + (this.getState()));\n return false;\n } else {\n ActionCable.log(\"Opening WebSocket, current state is \" + (this.getState()) + \", subprotocols: \" + protocols);\n if (this.webSocket != null) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new ActionCable.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n\n Connection.prototype.close = function(arg) {\n var allowReconnect, ref1;\n allowReconnect = (arg != null ? arg : {\n allowReconnect: true\n }).allowReconnect;\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isActive()) {\n return (ref1 = this.webSocket) != null ? ref1.close() : void 0;\n }\n };\n\n Connection.prototype.reopen = function() {\n var error;\n ActionCable.log(\"Reopening WebSocket, current state is \" + (this.getState()));\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error1) {\n error = error1;\n return ActionCable.log(\"Failed to reopen WebSocket\", error);\n } finally {\n ActionCable.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n\n Connection.prototype.getProtocol = function() {\n var ref1;\n return (ref1 = this.webSocket) != null ? ref1.protocol : void 0;\n };\n\n Connection.prototype.isOpen = function() {\n return this.isState(\"open\");\n };\n\n Connection.prototype.isActive = function() {\n return this.isState(\"open\", \"connecting\");\n };\n\n Connection.prototype.isProtocolSupported = function() {\n var ref1;\n return ref1 = this.getProtocol(), indexOf.call(supportedProtocols, ref1) >= 0;\n };\n\n Connection.prototype.isState = function() {\n var ref1, states;\n states = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return ref1 = this.getState(), indexOf.call(states, ref1) >= 0;\n };\n\n Connection.prototype.getState = function() {\n var ref1, state, value;\n for (state in WebSocket) {\n value = WebSocket[state];\n if (value === ((ref1 = this.webSocket) != null ? ref1.readyState : void 0)) {\n return state.toLowerCase();\n }\n }\n return null;\n };\n\n Connection.prototype.installEventHandlers = function() {\n var eventName, handler;\n for (eventName in this.events) {\n handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n\n Connection.prototype.uninstallEventHandlers = function() {\n var eventName;\n for (eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function() {};\n }\n };\n\n Connection.prototype.events = {\n message: function(event) {\n var identifier, message, ref1, type;\n if (!this.isProtocolSupported()) {\n return;\n }\n ref1 = JSON.parse(event.data), identifier = ref1.identifier, message = ref1.message, type = ref1.type;\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n case message_types.ping:\n return this.monitor.recordPing();\n case message_types.confirmation:\n return this.subscriptions.notify(identifier, \"connected\");\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function() {\n ActionCable.log(\"WebSocket onopen event, using '\" + (this.getProtocol()) + \"' subprotocol\");\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n ActionCable.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function(event) {\n ActionCable.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function() {\n return ActionCable.log(\"WebSocket onerror event\");\n }\n };\n\n return Connection;\n\n })();\n\n }).call(this);\n (function() {\n var slice = [].slice;\n\n ActionCable.Subscriptions = (function() {\n function Subscriptions(consumer) {\n this.consumer = consumer;\n this.subscriptions = [];\n }\n\n Subscriptions.prototype.create = function(channelName, mixin) {\n var channel, params, subscription;\n channel = channelName;\n params = typeof channel === \"object\" ? channel : {\n channel: channel\n };\n subscription = new ActionCable.Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n\n Subscriptions.prototype.add = function(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.sendCommand(subscription, \"subscribe\");\n return subscription;\n };\n\n Subscriptions.prototype.remove = function(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n };\n\n Subscriptions.prototype.reject = function(identifier) {\n var i, len, ref, results, subscription;\n ref = this.findAll(identifier);\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n subscription = ref[i];\n this.forget(subscription);\n this.notify(subscription, \"rejected\");\n results.push(subscription);\n }\n return results;\n };\n\n Subscriptions.prototype.forget = function(subscription) {\n var s;\n this.subscriptions = (function() {\n var i, len, ref, results;\n ref = this.subscriptions;\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n s = ref[i];\n if (s !== subscription) {\n results.push(s);\n }\n }\n return results;\n }).call(this);\n return subscription;\n };\n\n Subscriptions.prototype.findAll = function(identifier) {\n var i, len, ref, results, s;\n ref = this.subscriptions;\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n s = ref[i];\n if (s.identifier === identifier) {\n results.push(s);\n }\n }\n return results;\n };\n\n Subscriptions.prototype.reload = function() {\n var i, len, ref, results, subscription;\n ref = this.subscriptions;\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n subscription = ref[i];\n results.push(this.sendCommand(subscription, \"subscribe\"));\n }\n return results;\n };\n\n Subscriptions.prototype.notifyAll = function() {\n var args, callbackName, i, len, ref, results, subscription;\n callbackName = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n ref = this.subscriptions;\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n subscription = ref[i];\n results.push(this.notify.apply(this, [subscription, callbackName].concat(slice.call(args))));\n }\n return results;\n };\n\n Subscriptions.prototype.notify = function() {\n var args, callbackName, i, len, results, subscription, subscriptions;\n subscription = arguments[0], callbackName = arguments[1], args = 3 <= arguments.length ? slice.call(arguments, 2) : [];\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [subscription];\n }\n results = [];\n for (i = 0, len = subscriptions.length; i < len; i++) {\n subscription = subscriptions[i];\n results.push(typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : void 0);\n }\n return results;\n };\n\n Subscriptions.prototype.sendCommand = function(subscription, command) {\n var identifier;\n identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n\n return Subscriptions;\n\n })();\n\n }).call(this);\n (function() {\n ActionCable.Subscription = (function() {\n var extend;\n\n function Subscription(consumer, params, mixin) {\n this.consumer = consumer;\n if (params == null) {\n params = {};\n }\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n\n Subscription.prototype.perform = function(action, data) {\n if (data == null) {\n data = {};\n }\n data.action = action;\n return this.send(data);\n };\n\n Subscription.prototype.send = function(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n\n Subscription.prototype.unsubscribe = function() {\n return this.consumer.subscriptions.remove(this);\n };\n\n extend = function(object, properties) {\n var key, value;\n if (properties != null) {\n for (key in properties) {\n value = properties[key];\n object[key] = value;\n }\n }\n return object;\n };\n\n return Subscription;\n\n })();\n\n }).call(this);\n (function() {\n ActionCable.Consumer = (function() {\n function Consumer(url) {\n this.url = url;\n this.subscriptions = new ActionCable.Subscriptions(this);\n this.connection = new ActionCable.Connection(this);\n }\n\n Consumer.prototype.send = function(data) {\n return this.connection.send(data);\n };\n\n Consumer.prototype.connect = function() {\n return this.connection.open();\n };\n\n Consumer.prototype.disconnect = function() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n\n Consumer.prototype.ensureActiveConnection = function() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n\n return Consumer;\n\n })();\n\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = ActionCable;\n } else if (typeof define === \"function\" && define.amd) {\n define(ActionCable);\n }\n}).call(this);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar TypeError = global.TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (searchValue != null) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? 2 : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}"],"names":["context","this","slice","ActionCable","INTERNAL","WebSocket","window","logger","console","createConsumer","url","ref","getConfig","default_mount_path","Consumer","createWebSocketURL","name","element","document","head","querySelector","getAttribute","a","test","createElement","href","protocol","replace","startDebugging","debugging","stopDebugging","log","messages","arguments","length","call","push","Date","now","apply","concat","bind","fn","me","ConnectionMonitor","clamp","secondsSince","connection","visibilityDidChange","reconnectAttempts","pollInterval","min","max","staleThreshold","prototype","start","isRunning","startedAt","stoppedAt","startPolling","addEventListener","getPollInterval","stop","stopPolling","removeEventListener","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","clearTimeout","pollTimeout","setTimeout","_this","reconnectIfStale","interval","constructor","Math","round","connectionIsStale","disconnectedRecently","reopen","visibilityState","isOpen","getTime","time","number","i","message_types","protocols","supportedProtocols","indexOf","item","l","Connection","consumer","open","subscriptions","monitor","disconnected","reopenDelay","send","data","webSocket","JSON","stringify","isActive","getState","uninstallEventHandlers","installEventHandlers","close","arg","allowReconnect","ref1","error","error1","getProtocol","isState","isProtocolSupported","states","state","value","readyState","toLowerCase","eventName","handler","events","message","event","identifier","type","parse","welcome","reload","ping","confirmation","notify","rejection","reject","notifyAll","willAttemptReconnect","Subscriptions","create","channelName","mixin","channel","params","subscription","Subscription","add","ensureActiveConnection","sendCommand","remove","forget","findAll","len","results","s","args","callbackName","command","extend","perform","action","unsubscribe","object","properties","key","connect","disconnect","module","exports","$","global","uncurryThis","requireObjectCoercible","isCallable","isRegExp","toString","getMethod","getRegExpFlags","getSubstitution","wellKnownSymbol","IS_PURE","REPLACE","TypeError","stringSlice","stringIndexOf","string","searchValue","fromIndex","target","proto","replaceAll","replaceValue","IS_REG_EXP","flags","replacer","searchString","functionalReplace","searchLength","advanceBy","replacement","O","position","endOfLastMatch","result","undefined","pow","millisecondsInMinute","millisecondsInHour","parseISO","argument","dirtyOptions","requiredArgs","options","additionalDigits","toInteger","RangeError","Object","NaN","date","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","year","isNaN","offset","timestamp","parseTime","timezone","dirtyDate","setFullYear","getUTCFullYear","getUTCMonth","getUTCDate","setHours","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","parseTimezone","patterns","dateTimeDelimiter","timeZoneDelimiter","dateRegex","timeRegex","timezoneRegex","dateString","timeString","array","split","substr","token","exec","regex","RegExp","captures","match","parseInt","century","isWeekDate","dayOfYear","parseDateUnit","month","day","week","dayOfWeek","validateWeekDate","dayOfISOWeekYear","validateDate","validateDayOfYearDate","setUTCFullYear","hours","parseTimeUnit","minutes","seconds","validateTime","parseFloat","timezoneString","sign","validateTimezone","isoWeekYear","fourthOfJanuaryDay","getUTCDay","diff","setUTCDate","daysInMonths","isLeapYearIndex","_year","_hours"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (self["webpackChunk_cosmosc2_tool_cmdtlmserver"]=self["webpackChunk_cosmosc2_tool_cmdtlmserver"]||[]).push([[407],{5799:function(n,e,t){"use strict";var l=t(1479);function i(){var n="/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/Updater.js",e="f0b5f59be3bc09a142595f4638035cf73a6d3719",t=new Function("return this")(),l="__coverage__",o={path:"/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/Updater.js",statementMap:{0:{start:{line:29,column:4},end:{line:32,column:5}},1:{start:{line:35,column:4},end:{line:35,column:30}},2:{start:{line:38,column:4},end:{line:38,column:24}},3:{start:{line:41,column:4},end:{line:44,column:5}},4:{start:{line:42,column:6},end:{line:42,column:33}},5:{start:{line:43,column:6},end:{line:43,column:25}},6:{start:{line:49,column:6},end:{line:49,column:26}},7:{start:{line:54,column:6},end:{line:57,column:7}},8:{start:{line:55,column:8},end:{line:55,column:35}},9:{start:{line:56,column:8},end:{line:56,column:27}},10:{start:{line:58,column:6},end:{line:60,column:30}},11:{start:{line:59,column:8},end:{line:59,column:21}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:28,column:2},end:{line:28,column:3}},loc:{start:{line:28,column:9},end:{line:33,column:3}},line:28},1:{name:"(anonymous_1)",decl:{start:{line:34,column:2},end:{line:34,column:3}},loc:{start:{line:34,column:12},end:{line:36,column:3}},line:34},2:{name:"(anonymous_2)",decl:{start:{line:37,column:2},end:{line:37,column:3}},loc:{start:{line:37,column:12},end:{line:39,column:3}},line:37},3:{name:"(anonymous_3)",decl:{start:{line:40,column:2},end:{line:40,column:3}},loc:{start:{line:40,column:18},end:{line:45,column:3}},line:40},4:{name:"(anonymous_4)",decl:{start:{line:48,column:21},end:{line:48,column:22}},loc:{start:{line:48,column:47},end:{line:50,column:5}},line:48},5:{name:"(anonymous_5)",decl:{start:{line:53,column:4},end:{line:53,column:5}},loc:{start:{line:53,column:20},end:{line:61,column:5}},line:53},6:{name:"(anonymous_6)",decl:{start:{line:58,column:33},end:{line:58,column:34}},loc:{start:{line:58,column:39},end:{line:60,column:7}},line:58}},branchMap:{0:{loc:{start:{line:41,column:4},end:{line:44,column:5}},type:"if",locations:[{start:{line:41,column:4},end:{line:44,column:5}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:41},1:{loc:{start:{line:54,column:6},end:{line:57,column:7}},type:"if",locations:[{start:{line:54,column:6},end:{line:57,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:54}},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},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0},b:{0:[0,0],1:[0,0]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"f0b5f59be3bc09a142595f4638035cf73a6d3719"},a=t[l]||(t[l]={});a[n]&&a[n].hash===e||(a[n]=o);var c=a[n];return i=function(){return c},c}i(),e["Z"]={props:{refreshInterval:{default:1e3}},data:function(){return i().f[0]++,i().s[0]++,{updater:null,api:null}},created:function(){i().f[1]++,i().s[1]++,this.api=new l.J},mounted:function(){i().f[2]++,i().s[2]++,this.changeUpdater()},beforeDestroy:function(){i().f[3]++,i().s[3]++,null!=this.updater?(i().b[0][0]++,i().s[4]++,clearInterval(this.updater),i().s[5]++,this.updater=null):i().b[0][1]++},watch:{refreshInterval:function(n,e){i().f[4]++,i().s[6]++,this.changeUpdater()}},methods:{changeUpdater:function(){var n=this;i().f[5]++,i().s[7]++,null!=this.updater?(i().b[1][0]++,i().s[8]++,clearInterval(this.updater),i().s[9]++,this.updater=null):i().b[1][1]++,i().s[10]++,this.updater=setInterval((function(){i().f[6]++,i().s[11]++,n.update()}),this.refreshInterval)}}}},3407:function(n,e,t){"use strict";t.d(e,{Z:function(){return d}});var l=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("v-dialog",{attrs:{width:"790px"},on:{keydown:function(e){if(!e.type.indexOf("key")&&n._k(e.keyCode,"esc",27,e.key,["Esc","Escape"]))return null;n.isVisible=!1}},model:{value:n.isVisible,callback:function(e){n.isVisible=e},expression:"isVisible"}},[t("v-card",[t("v-system-bar",[t("v-tooltip",{attrs:{top:""},scopedSlots:n._u([{key:"activator",fn:function(e){var l=e.on,i=e.attrs;return[t("div",n._g(n._b({},"div",i,!1),l),[t("v-icon",{attrs:{"data-test":"copy-icon"},on:{click:n.copyRawData}},[n._v(" mdi-content-copy ")])],1)]}}])},[t("span",[n._v(" Copy ")])]),t("v-spacer"),t("span",[n._v(" "+n._s(n.type)+" ")]),t("v-spacer"),t("v-tooltip",{attrs:{top:""},scopedSlots:n._u([{key:"activator",fn:function(e){var l=e.on,i=e.attrs;return[t("div",n._g(n._b({},"div",i,!1),l),[t("v-icon",{attrs:{"data-test":"download"},on:{click:n.downloadRawData}},[n._v(" mdi-download ")])],1)]}}])},[t("span",[n._v(" Download ")])])],1),t("v-card-title",[t("span",[n._v(" "+n._s(n.header)+" ")]),t("v-spacer"),t("v-tooltip",{attrs:{top:""},scopedSlots:n._u([{key:"activator",fn:function(e){var l=e.on,i=e.attrs;return[t("div",n._g(n._b({},"div",i,!1),l),[t("v-btn",{attrs:{icon:"","data-test":"pause"},on:{click:n.pause}},[t("v-icon",[n._v(" "+n._s(n.buttonIcon)+" ")])],1)],1)]}}])},[t("span",[n._v(" "+n._s(n.buttonLabel)+" ")])])],1),t("v-card-text",[t("v-row",{attrs:{dense:""}},[t("v-col",{attrs:{cols:"4"}},[t("span",[n._v(" Received Time: ")])]),t("v-col",{staticClass:"text-right"},[t("span",[n._v(" "+n._s(n.receivedTime)+" ")])])],1),t("v-row",{attrs:{dense:""}},[t("v-col",{attrs:{cols:"4"}},[t("span",[n._v(" Count: ")])]),t("v-col",{staticClass:"text-right"},[t("span",[n._v(" "+n._s(n.receivedCount)+" ")])])],1),t("v-textarea",{staticClass:"pa-0 ma-0",attrs:{"auto-grow":"",readonly:""},model:{value:n.rawData,callback:function(e){n.rawData=e},expression:"rawData"}})],1)],1)],1)},i=[],o=(t(8178),t(8188),t(8673),t(6886),t(4121),t(523),t(1939),t(7789),t(8233),t(4063)),a=t(5799);function c(){var n="/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/RawDialog.vue",e="de5e971109504e7974868fa6f9f60ce5f9b2b994",t=new Function("return this")(),l="__coverage__",i={path:"/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/RawDialog.vue",statementMap:{0:{start:{line:99,column:4},end:{line:105,column:5}},1:{start:{line:109,column:6},end:{line:113,column:7}},2:{start:{line:110,column:8},end:{line:110,column:23}},3:{start:{line:112,column:8},end:{line:112,column:22}},4:{start:{line:116,column:6},end:{line:120,column:7}},5:{start:{line:117,column:8},end:{line:117,column:25}},6:{start:{line:119,column:8},end:{line:119,column:26}},7:{start:{line:124,column:8},end:{line:124,column:27}},8:{start:{line:128,column:8},end:{line:128,column:24}},9:{start:{line:129,column:8},end:{line:129,column:30}},10:{start:{line:130,column:8},end:{line:130,column:25}},11:{start:{line:131,column:8},end:{line:131,column:31}},12:{start:{line:132,column:8},end:{line:132,column:27}},13:{start:{line:133,column:8},end:{line:133,column:34}},14:{start:{line:134,column:8},end:{line:134,column:35}},15:{start:{line:140,column:6},end:{line:140,column:113}},16:{start:{line:143,column:6},end:{line:143,column:56}},17:{start:{line:146,column:19},end:{line:148,column:8}},18:{start:{line:150,column:19},end:{line:150,column:46}},19:{start:{line:151,column:6},end:{line:151,column:43}},20:{start:{line:152,column:17},end:{line:152,column:58}},21:{start:{line:153,column:6},end:{line:156,column:7}},22:{start:{line:157,column:6},end:{line:157,column:18}},23:{start:{line:160,column:6},end:{line:160,column:32}},24:{start:{line:163,column:6},end:{line:163,column:48}},25:{start:{line:163,column:42},end:{line:163,column:48}},26:{start:{line:164,column:6},end:{line:164,column:84}},27:{start:{line:166,column:6},end:{line:170,column:7}},28:{start:{line:167,column:8},end:{line:167,column:30}},29:{start:{line:169,column:8},end:{line:169,column:28}},30:{start:{line:173,column:6},end:{line:182,column:10}},31:{start:{line:176,column:10},end:{line:176,column:61}},32:{start:{line:177,column:10},end:{line:177,column:52}},33:{start:{line:178,column:10},end:{line:181,column:48}},34:{start:{line:185,column:6},end:{line:194,column:10}},35:{start:{line:188,column:10},end:{line:188,column:61}},36:{start:{line:189,column:10},end:{line:189,column:52}},37:{start:{line:190,column:10},end:{line:193,column:48}},38:{start:{line:198,column:19},end:{line:198,column:21}},39:{start:{line:199,column:18},end:{line:199,column:19}},40:{start:{line:200,column:18},end:{line:200,column:20}},41:{start:{line:201,column:6},end:{line:222,column:8}},42:{start:{line:202,column:8},end:{line:204,column:9}},43:{start:{line:203,column:10},end:{line:203,column:48}},44:{start:{line:205,column:8},end:{line:205,column:35}},45:{start:{line:208,column:8},end:{line:212,column:9}},46:{start:{line:209,column:10},end:{line:209,column:44}},47:{start:{line:211,column:10},end:{line:211,column:22}},48:{start:{line:214,column:8},end:{line:214,column:15}},49:{start:{line:216,column:8},end:{line:221,column:9}},50:{start:{line:217,column:10},end:{line:217,column:39}},51:{start:{line:218,column:10},end:{line:218,column:20}},52:{start:{line:220,column:10},end:{line:220,column:23}},53:{start:{line:227,column:6},end:{line:233,column:7}},54:{start:{line:228,column:30},end:{line:228,column:65}},55:{start:{line:230,column:21},end:{line:230,column:53}},56:{start:{line:231,column:27},end:{line:231,column:56}},57:{start:{line:232,column:8},end:{line:232,column:54}},58:{start:{line:234,column:6},end:{line:234,column:19}},59:{start:{line:237,column:16},end:{line:237,column:32}},60:{start:{line:238,column:6},end:{line:238,column:49}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:98,column:2},end:{line:98,column:3}},loc:{start:{line:98,column:9},end:{line:106,column:3}},line:98},1:{name:"(anonymous_1)",decl:{start:{line:108,column:17},end:{line:108,column:18}},loc:{start:{line:108,column:29},end:{line:114,column:5}},line:108},2:{name:"(anonymous_2)",decl:{start:{line:115,column:16},end:{line:115,column:17}},loc:{start:{line:115,column:28},end:{line:121,column:5}},line:115},3:{name:"(anonymous_3)",decl:{start:{line:123,column:11},end:{line:123,column:12}},loc:{start:{line:123,column:23},end:{line:125,column:7}},line:123},4:{name:"(anonymous_4)",decl:{start:{line:127,column:11},end:{line:127,column:12}},loc:{start:{line:127,column:27},end:{line:135,column:7}},line:127},5:{name:"(anonymous_5)",decl:{start:{line:139,column:18},end:{line:139,column:19}},loc:{start:{line:139,column:30},end:{line:141,column:5}},line:139},6:{name:"(anonymous_6)",decl:{start:{line:142,column:17},end:{line:142,column:18}},loc:{start:{line:142,column:29},end:{line:144,column:5}},line:142},7:{name:"(anonymous_7)",decl:{start:{line:145,column:21},end:{line:145,column:22}},loc:{start:{line:145,column:33},end:{line:158,column:5}},line:145},8:{name:"(anonymous_8)",decl:{start:{line:159,column:11},end:{line:159,column:12}},loc:{start:{line:159,column:23},end:{line:161,column:5}},line:159},9:{name:"(anonymous_9)",decl:{start:{line:162,column:12},end:{line:162,column:13}},loc:{start:{line:162,column:24},end:{line:171,column:5}},line:162},10:{name:"(anonymous_10)",decl:{start:{line:172,column:21},end:{line:172,column:22}},loc:{start:{line:172,column:33},end:{line:183,column:5}},line:172},11:{name:"(anonymous_11)",decl:{start:{line:175,column:14},end:{line:175,column:15}},loc:{start:{line:175,column:26},end:{line:182,column:9}},line:175},12:{name:"(anonymous_12)",decl:{start:{line:184,column:19},end:{line:184,column:20}},loc:{start:{line:184,column:31},end:{line:195,column:5}},line:184},13:{name:"(anonymous_13)",decl:{start:{line:187,column:14},end:{line:187,column:15}},loc:{start:{line:187,column:26},end:{line:194,column:9}},line:187},14:{name:"(anonymous_14)",decl:{start:{line:197,column:18},end:{line:197,column:19}},loc:{start:{line:197,column:36},end:{line:235,column:5}},line:197},15:{name:"(anonymous_15)",decl:{start:{line:201,column:21},end:{line:201,column:22}},loc:{start:{line:201,column:31},end:{line:222,column:7}},line:201},16:{name:"(anonymous_16)",decl:{start:{line:236,column:4},end:{line:236,column:5}},loc:{start:{line:236,column:27},end:{line:239,column:5}},line:236}},branchMap:{0:{loc:{start:{line:109,column:6},end:{line:113,column:7}},type:"if",locations:[{start:{line:109,column:6},end:{line:113,column:7}},{start:{line:111,column:13},end:{line:113,column:7}}],line:109},1:{loc:{start:{line:116,column:6},end:{line:120,column:7}},type:"if",locations:[{start:{line:116,column:6},end:{line:120,column:7}},{start:{line:118,column:13},end:{line:120,column:7}}],line:116},2:{loc:{start:{line:163,column:6},end:{line:163,column:48}},type:"if",locations:[{start:{line:163,column:6},end:{line:163,column:48}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:163},3:{loc:{start:{line:163,column:10},end:{line:163,column:40}},type:"binary-expr",locations:[{start:{line:163,column:10},end:{line:163,column:25}},{start:{line:163,column:29},end:{line:163,column:40}}],line:163},4:{loc:{start:{line:166,column:6},end:{line:170,column:7}},type:"if",locations:[{start:{line:166,column:6},end:{line:170,column:7}},{start:{line:168,column:13},end:{line:170,column:7}}],line:166},5:{loc:{start:{line:202,column:8},end:{line:204,column:9}},type:"if",locations:[{start:{line:202,column:8},end:{line:204,column:9}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:202},6:{loc:{start:{line:208,column:8},end:{line:212,column:9}},type:"if",locations:[{start:{line:208,column:8},end:{line:212,column:9}},{start:{line:210,column:15},end:{line:212,column:9}}],line:208},7:{loc:{start:{line:208,column:12},end:{line:208,column:37}},type:"binary-expr",locations:[{start:{line:208,column:12},end:{line:208,column:22}},{start:{line:208,column:26},end:{line:208,column:37}}],line:208},8:{loc:{start:{line:216,column:8},end:{line:221,column:9}},type:"if",locations:[{start:{line:216,column:8},end:{line:221,column:9}},{start:{line:219,column:15},end:{line:221,column:9}}],line:216},9:{loc:{start:{line:227,column:6},end:{line:233,column:7}},type:"if",locations:[{start:{line:227,column:6},end:{line:233,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:227},10:{loc:{start:{line:236,column:16},end:{line:236,column:25}},type:"default-arg",locations:[{start:{line:236,column:24},end:{line:236,column:25}}],line:236}},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,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0},f:{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},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0],4:[0,0],5:[0,0],6:[0,0],7:[0,0],8:[0,0],9:[0,0],10:[0]},inputSourceMap:{version:3,sources:["RawDialog.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqFA;;AAEA;;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;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"RawDialog.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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n--\x3e\n\n<template>\n <v-dialog v-model=\"isVisible\" @keydown.esc=\"isVisible = false\" width=\"790px\">\n <v-card>\n <v-system-bar>\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-icon data-test=\"copy-icon\" @click=\"copyRawData\">\n mdi-content-copy\n </v-icon>\n </div>\n </template>\n <span> Copy </span>\n </v-tooltip>\n <v-spacer />\n <span> {{ type }} </span>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-icon data-test=\"download\" @click=\"downloadRawData\">\n mdi-download\n </v-icon>\n </div>\n </template>\n <span> Download </span>\n </v-tooltip>\n </v-system-bar>\n <v-card-title>\n <span> {{ header }} </span>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-btn icon data-test=\"pause\" @click=\"pause\">\n <v-icon> {{ buttonIcon }} </v-icon>\n </v-btn>\n </div>\n </template>\n <span> {{ buttonLabel }} </span>\n </v-tooltip>\n </v-card-title>\n <v-card-text>\n <v-row dense>\n <v-col cols=\"4\">\n <span> Received Time: </span>\n </v-col>\n <v-col class=\"text-right\">\n <span> {{ receivedTime }} </span>\n </v-col>\n </v-row>\n <v-row dense>\n <v-col cols=\"4\">\n <span> Count: </span>\n </v-col>\n <v-col class=\"text-right\">\n <span> {{ receivedCount }} </span>\n </v-col>\n </v-row>\n <v-textarea v-model=\"rawData\" class=\"pa-0 ma-0\" auto-grow readonly />\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { format } from 'date-fns'\n\nimport Updater from './Updater'\n\nexport default {\n mixins: [Updater],\n props: {\n type: String,\n visible: Boolean,\n targetName: String,\n packetName: String,\n },\n data() {\n return {\n header: '',\n receivedTime: '',\n rawData: '',\n paused: false,\n receivedCount: '',\n }\n },\n computed: {\n buttonLabel: function () {\n if (this.paused) {\n return 'Resume'\n } else {\n return 'Pause'\n }\n },\n buttonIcon: function () {\n if (this.paused) {\n return 'mdi-play'\n } else {\n return 'mdi-pause'\n }\n },\n isVisible: {\n get: function () {\n return this.visible\n },\n // Reset all the data to defaults\n set: function (bool) {\n this.header = ''\n this.receivedTime = ''\n this.rawData = ''\n this.receivedCount = ''\n this.paused = false\n this.buttonLabel = 'Pause'\n this.$emit('display', bool)\n },\n },\n },\n methods: {\n buildRawData: function () {\n return `${this.header}\\nReceived Time: ${this.receivedTime}\\nCount: ${this.receivedCount}\\n${this.rawData}`\n },\n copyRawData: function () {\n navigator.clipboard.writeText(this.buildRawData())\n },\n downloadRawData: function () {\n const blob = new Blob([this.buildRawData()], {\n type: 'plain/text',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n const dt = format(Date.now(), 'yyyy_MM_dd_HH_mm_ss')\n link.setAttribute(\n 'download',\n `${dt}_${this.targetName}_${this.packetName}.txt`\n )\n link.click()\n },\n pause: function () {\n this.paused = !this.paused\n },\n update: function () {\n if (!this.isVisible || this.paused) return\n this.header = `Raw ${this.type} Packet: ${this.targetName} ${this.packetName}`\n\n if (this.type === 'Telemetry') {\n this.updateTelemetry()\n } else {\n this.updateCommand()\n }\n },\n updateTelemetry: function () {\n this.api\n .get_tlm_buffer(this.targetName, this.packetName)\n .then((result) => {\n this.receivedTime = new Date(result.time / 1000000)\n this.receivedCount = result.received_count\n this.rawData =\n 'Address Data Ascii\\n' +\n '---------------------------------------------------------------------------\\n' +\n this.formatBuffer(result.buffer.raw)\n })\n },\n updateCommand: function () {\n this.api\n .get_cmd_buffer(this.targetName, this.packetName)\n .then((result) => {\n this.receivedTime = new Date(result.time / 1000000)\n this.receivedCount = result.received_count\n this.rawData =\n 'Address Data Ascii\\n' +\n '---------------------------------------------------------------------------\\n' +\n this.formatBuffer(result.buffer.raw)\n })\n },\n // TODO: Perhaps move this to a utility library\n formatBuffer: function (buffer) {\n var string = ''\n var index = 0\n var ascii = ''\n buffer.forEach((byte) => {\n if (index % 16 === 0) {\n string += this.numHex(index, 8) + ': '\n }\n string += this.numHex(byte)\n\n // Create the ASCII representation if printable\n if (byte >= 32 && byte <= 126) {\n ascii += String.fromCharCode(byte)\n } else {\n ascii += ' '\n }\n\n index++\n\n if (index % 16 === 0) {\n string += ' ' + ascii + '\\n'\n ascii = ''\n } else {\n string += ' '\n }\n })\n\n // We're done printing all the bytes. Now check to see if we ended in the\n // middle of a line. If so we have to print out the final ASCII if\n // requested.\n if (index % 16 != 0) {\n var existing_length = (index % 16) - 1 + (index % 16) * 2\n // 47 is (16 * 2) + 15 separator spaces\n var filler = ' '.repeat(47 - existing_length)\n var ascii_filler = ' '.repeat(16 - ascii.length)\n string += filler + ' ' + ascii + ascii_filler\n }\n return string\n },\n numHex(num, width = 2) {\n var hex = num.toString(16)\n return '0'.repeat(width - hex.length) + hex\n },\n },\n}\n<\/script>\n<style scoped>\n.v-textarea >>> textarea {\n margin-top: 10px;\n font-family: 'Courier New', Courier, monospace;\n}\n</style>\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"de5e971109504e7974868fa6f9f60ce5f9b2b994"},o=t[l]||(t[l]={});o[n]&&o[n].hash===e||(o[n]=i);var a=o[n];return c=function(){return a},a}c();var s={mixins:[a.Z],props:{type:String,visible:Boolean,targetName:String,packetName:String},data:function(){return c().f[0]++,c().s[0]++,{header:"",receivedTime:"",rawData:"",paused:!1,receivedCount:""}},computed:{buttonLabel:function(){return c().f[1]++,c().s[1]++,this.paused?(c().b[0][0]++,c().s[2]++,"Resume"):(c().b[0][1]++,c().s[3]++,"Pause")},buttonIcon:function(){return c().f[2]++,c().s[4]++,this.paused?(c().b[1][0]++,c().s[5]++,"mdi-play"):(c().b[1][1]++,c().s[6]++,"mdi-pause")},isVisible:{get:function(){return c().f[3]++,c().s[7]++,this.visible},set:function(n){c().f[4]++,c().s[8]++,this.header="",c().s[9]++,this.receivedTime="",c().s[10]++,this.rawData="",c().s[11]++,this.receivedCount="",c().s[12]++,this.paused=!1,c().s[13]++,this.buttonLabel="Pause",c().s[14]++,this.$emit("display",n)}}},methods:{buildRawData:function(){return c().f[5]++,c().s[15]++,"".concat(this.header,"\nReceived Time: ").concat(this.receivedTime,"\nCount: ").concat(this.receivedCount,"\n").concat(this.rawData)},copyRawData:function(){c().f[6]++,c().s[16]++,navigator.clipboard.writeText(this.buildRawData())},downloadRawData:function(){c().f[7]++;var n=(c().s[17]++,new Blob([this.buildRawData()],{type:"plain/text"})),e=(c().s[18]++,document.createElement("a"));c().s[19]++,e.href=URL.createObjectURL(n);var t=(c().s[20]++,(0,o.Z)(Date.now(),"yyyy_MM_dd_HH_mm_ss"));c().s[21]++,e.setAttribute("download","".concat(t,"_").concat(this.targetName,"_").concat(this.packetName,".txt")),c().s[22]++,e.click()},pause:function(){c().f[8]++,c().s[23]++,this.paused=!this.paused},update:function(){if(c().f[9]++,c().s[24]++,c().b[3][0]++,!this.isVisible||(c().b[3][1]++,this.paused))return c().b[2][0]++,void c().s[25]++;c().b[2][1]++,c().s[26]++,this.header="Raw ".concat(this.type," Packet: ").concat(this.targetName," ").concat(this.packetName),c().s[27]++,"Telemetry"===this.type?(c().b[4][0]++,c().s[28]++,this.updateTelemetry()):(c().b[4][1]++,c().s[29]++,this.updateCommand())},updateTelemetry:function(){var n=this;c().f[10]++,c().s[30]++,this.api.get_tlm_buffer(this.targetName,this.packetName).then((function(e){c().f[11]++,c().s[31]++,n.receivedTime=new Date(e.time/1e6),c().s[32]++,n.receivedCount=e.received_count,c().s[33]++,n.rawData="Address Data Ascii\n---------------------------------------------------------------------------\n"+n.formatBuffer(e.buffer.raw)}))},updateCommand:function(){var n=this;c().f[12]++,c().s[34]++,this.api.get_cmd_buffer(this.targetName,this.packetName).then((function(e){c().f[13]++,c().s[35]++,n.receivedTime=new Date(e.time/1e6),c().s[36]++,n.receivedCount=e.received_count,c().s[37]++,n.rawData="Address Data Ascii\n---------------------------------------------------------------------------\n"+n.formatBuffer(e.buffer.raw)}))},formatBuffer:function(n){var e=this;c().f[14]++;var t=(c().s[38]++,""),l=(c().s[39]++,0),i=(c().s[40]++,"");if(c().s[41]++,n.forEach((function(n){c().f[15]++,c().s[42]++,l%16===0?(c().b[5][0]++,c().s[43]++,t+=e.numHex(l,8)+": "):c().b[5][1]++,c().s[44]++,t+=e.numHex(n),c().s[45]++,c().b[7][0]++,n>=32&&(c().b[7][1]++,n<=126)?(c().b[6][0]++,c().s[46]++,i+=String.fromCharCode(n)):(c().b[6][1]++,c().s[47]++,i+=" "),c().s[48]++,l++,c().s[49]++,l%16===0?(c().b[8][0]++,c().s[50]++,t+=" "+i+"\n",c().s[51]++,i=""):(c().b[8][1]++,c().s[52]++,t+=" ")})),c().s[53]++,l%16!=0){c().b[9][0]++;var o=(c().s[54]++,l%16-1+l%16*2),a=(c().s[55]++," ".repeat(47-o)),s=(c().s[56]++," ".repeat(16-i.length));c().s[57]++,t+=a+" "+i+s}else c().b[9][1]++;return c().s[58]++,t},numHex:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(c().b[10][0]++,2);c().f[16]++;var t=(c().s[59]++,n.toString(16));return c().s[60]++,"0".repeat(e-t.length)+t}}},r=s,u=(t(3203),t(3287)),m=(0,u.Z)(r,l,i,!1,null,"2c506396",null),d=m.exports},4560:function(n,e,t){"use strict";t.r(e);var l=t(3467),i=t.n(l),o=t(8715),a=t.n(o),c=a()(i());c.push([n.id,".v-textarea[data-v-2c506396] textarea{margin-top:10px;font-family:Courier New,Courier,monospace}",""]),e["default"]=c},3203:function(n,e,t){var l=t(4560);l.__esModule&&(l=l.default),"string"===typeof l&&(l=[[n.id,l,""]]),l.locals&&(n.exports=l.locals);var i=t(3514).Z;i("27891669",l,!0,{sourceMap:!1,shadowMode:!1})}}]);
2
+ //# sourceMappingURL=407.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/407.js","mappings":"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","sources":["webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/Updater.js","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?6de8","webpack://@cosmosc2/tool-cmdtlmserver/src/tools/CmdTlmServer/RawDialog.vue","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?8039","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?a976","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?b223"],"sourcesContent":["/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport { CosmosApi } from '@cosmosc2/tool-common/src/services/cosmos-api'\n\nexport default {\n props: {\n refreshInterval: {\n default: 1000,\n },\n },\n data() {\n return {\n updater: null,\n api: null,\n }\n },\n created() {\n this.api = new CosmosApi()\n },\n mounted() {\n this.changeUpdater()\n },\n beforeDestroy() {\n if (this.updater != null) {\n clearInterval(this.updater)\n this.updater = null\n }\n },\n watch: {\n // eslint-disable-next-line no-unused-vars\n refreshInterval: function (newVal, oldVal) {\n this.changeUpdater()\n },\n },\n methods: {\n changeUpdater() {\n if (this.updater != null) {\n clearInterval(this.updater)\n this.updater = null\n }\n this.updater = setInterval(() => {\n this.update()\n }, this.refreshInterval)\n },\n },\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":\"790px\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }_vm.isVisible = false}},model:{value:(_vm.isVisible),callback:function ($$v) {_vm.isVisible=$$v},expression:\"isVisible\"}},[_c('v-card',[_c('v-system-bar',[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{attrs:{\"data-test\":\"copy-icon\"},on:{\"click\":_vm.copyRawData}},[_vm._v(\" mdi-content-copy \")])],1)]}}])},[_c('span',[_vm._v(\" Copy \")])]),_c('v-spacer'),_c('span',[_vm._v(\" \"+_vm._s(_vm.type)+\" \")]),_c('v-spacer'),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{attrs:{\"data-test\":\"download\"},on:{\"click\":_vm.downloadRawData}},[_vm._v(\" mdi-download \")])],1)]}}])},[_c('span',[_vm._v(\" Download \")])])],1),_c('v-card-title',[_c('span',[_vm._v(\" \"+_vm._s(_vm.header)+\" \")]),_c('v-spacer'),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_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)+\" \")])])],1),_c('v-card-text',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('span',[_vm._v(\" Received Time: \")])]),_c('v-col',{staticClass:\"text-right\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.receivedTime)+\" \")])])],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('span',[_vm._v(\" Count: \")])]),_c('v-col',{staticClass:\"text-right\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.receivedCount)+\" \")])])],1),_c('v-textarea',{staticClass:\"pa-0 ma-0\",attrs:{\"auto-grow\":\"\",\"readonly\":\"\"},model:{value:(_vm.rawData),callback:function ($$v) {_vm.rawData=$$v},expression:\"rawData\"}})],1)],1)],1)}\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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-dialog v-model=\"isVisible\" @keydown.esc=\"isVisible = false\" width=\"790px\">\n <v-card>\n <v-system-bar>\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-icon data-test=\"copy-icon\" @click=\"copyRawData\">\n mdi-content-copy\n </v-icon>\n </div>\n </template>\n <span> Copy </span>\n </v-tooltip>\n <v-spacer />\n <span> {{ type }} </span>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-icon data-test=\"download\" @click=\"downloadRawData\">\n mdi-download\n </v-icon>\n </div>\n </template>\n <span> Download </span>\n </v-tooltip>\n </v-system-bar>\n <v-card-title>\n <span> {{ header }} </span>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-btn icon data-test=\"pause\" @click=\"pause\">\n <v-icon> {{ buttonIcon }} </v-icon>\n </v-btn>\n </div>\n </template>\n <span> {{ buttonLabel }} </span>\n </v-tooltip>\n </v-card-title>\n <v-card-text>\n <v-row dense>\n <v-col cols=\"4\">\n <span> Received Time: </span>\n </v-col>\n <v-col class=\"text-right\">\n <span> {{ receivedTime }} </span>\n </v-col>\n </v-row>\n <v-row dense>\n <v-col cols=\"4\">\n <span> Count: </span>\n </v-col>\n <v-col class=\"text-right\">\n <span> {{ receivedCount }} </span>\n </v-col>\n </v-row>\n <v-textarea v-model=\"rawData\" class=\"pa-0 ma-0\" auto-grow readonly />\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { format } from 'date-fns'\n\nimport Updater from './Updater'\n\nexport default {\n mixins: [Updater],\n props: {\n type: String,\n visible: Boolean,\n targetName: String,\n packetName: String,\n },\n data() {\n return {\n header: '',\n receivedTime: '',\n rawData: '',\n paused: false,\n receivedCount: '',\n }\n },\n computed: {\n buttonLabel: function () {\n if (this.paused) {\n return 'Resume'\n } else {\n return 'Pause'\n }\n },\n buttonIcon: function () {\n if (this.paused) {\n return 'mdi-play'\n } else {\n return 'mdi-pause'\n }\n },\n isVisible: {\n get: function () {\n return this.visible\n },\n // Reset all the data to defaults\n set: function (bool) {\n this.header = ''\n this.receivedTime = ''\n this.rawData = ''\n this.receivedCount = ''\n this.paused = false\n this.buttonLabel = 'Pause'\n this.$emit('display', bool)\n },\n },\n },\n methods: {\n buildRawData: function () {\n return `${this.header}\\nReceived Time: ${this.receivedTime}\\nCount: ${this.receivedCount}\\n${this.rawData}`\n },\n copyRawData: function () {\n navigator.clipboard.writeText(this.buildRawData())\n },\n downloadRawData: function () {\n const blob = new Blob([this.buildRawData()], {\n type: 'plain/text',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n const dt = format(Date.now(), 'yyyy_MM_dd_HH_mm_ss')\n link.setAttribute(\n 'download',\n `${dt}_${this.targetName}_${this.packetName}.txt`\n )\n link.click()\n },\n pause: function () {\n this.paused = !this.paused\n },\n update: function () {\n if (!this.isVisible || this.paused) return\n this.header = `Raw ${this.type} Packet: ${this.targetName} ${this.packetName}`\n\n if (this.type === 'Telemetry') {\n this.updateTelemetry()\n } else {\n this.updateCommand()\n }\n },\n updateTelemetry: function () {\n this.api\n .get_tlm_buffer(this.targetName, this.packetName)\n .then((result) => {\n this.receivedTime = new Date(result.time / 1000000)\n this.receivedCount = result.received_count\n this.rawData =\n 'Address Data Ascii\\n' +\n '---------------------------------------------------------------------------\\n' +\n this.formatBuffer(result.buffer.raw)\n })\n },\n updateCommand: function () {\n this.api\n .get_cmd_buffer(this.targetName, this.packetName)\n .then((result) => {\n this.receivedTime = new Date(result.time / 1000000)\n this.receivedCount = result.received_count\n this.rawData =\n 'Address Data Ascii\\n' +\n '---------------------------------------------------------------------------\\n' +\n this.formatBuffer(result.buffer.raw)\n })\n },\n // TODO: Perhaps move this to a utility library\n formatBuffer: function (buffer) {\n var string = ''\n var index = 0\n var ascii = ''\n buffer.forEach((byte) => {\n if (index % 16 === 0) {\n string += this.numHex(index, 8) + ': '\n }\n string += this.numHex(byte)\n\n // Create the ASCII representation if printable\n if (byte >= 32 && byte <= 126) {\n ascii += String.fromCharCode(byte)\n } else {\n ascii += ' '\n }\n\n index++\n\n if (index % 16 === 0) {\n string += ' ' + ascii + '\\n'\n ascii = ''\n } else {\n string += ' '\n }\n })\n\n // We're done printing all the bytes. Now check to see if we ended in the\n // middle of a line. If so we have to print out the final ASCII if\n // requested.\n if (index % 16 != 0) {\n var existing_length = (index % 16) - 1 + (index % 16) * 2\n // 47 is (16 * 2) + 15 separator spaces\n var filler = ' '.repeat(47 - existing_length)\n var ascii_filler = ' '.repeat(16 - ascii.length)\n string += filler + ' ' + ascii + ascii_filler\n }\n return string\n },\n numHex(num, width = 2) {\n var hex = num.toString(16)\n return '0'.repeat(width - hex.length) + hex\n },\n },\n}\n</script>\n<style scoped>\n.v-textarea >>> textarea {\n margin-top: 10px;\n font-family: 'Courier New', Courier, monospace;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RawDialog.vue?vue&type=template&id=2c506396&scoped=true&\"\nimport script from \"./RawDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./RawDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RawDialog.vue?vue&type=style&index=0&id=2c506396&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c506396\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/@vue/cli-service/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-textarea[data-v-2c506396] textarea{margin-top:10px;font-family:Courier New,Courier,monospace}\", \"\"]);\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/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-12[0].rules[0].use[1]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12[0].rules[0].use[2]!../../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12[0].rules[0].use[3]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawDialog.vue?vue&type=style&index=0&id=2c506396&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(\"27891669\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["props","refreshInterval","default","data","updater","api","created","this","CosmosApi","mounted","changeUpdater","beforeDestroy","clearInterval","watch","newVal","oldVal","methods","setInterval","update","render","_vm","_h","$createElement","_c","_self","attrs","on","$event","type","indexOf","_k","keyCode","key","isVisible","model","value","callback","$$v","expression","scopedSlots","_u","fn","ref","_g","_b","copyRawData","_v","_s","downloadRawData","header","pause","buttonIcon","buttonLabel","staticClass","receivedTime","receivedCount","rawData","staticRenderFns","mixins","String","visible","Boolean","targetName","packetName","paused","computed","get","set","$emit","bool","buildRawData","navigator","clipboard","writeText","link","href","URL","createObjectURL","blob","setAttribute","dt","click","updateTelemetry","updateCommand","get_tlm_buffer","then","get_cmd_buffer","formatBuffer","string","index","ascii","buffer","forEach","fromCharCode","byte","existing_length","filler","ascii_filler","numHex","num","hex","repeat","width","length","component","___CSS_LOADER_EXPORT___","push","module","id","content","__esModule","locals","exports","add"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self["webpackChunk_cosmosc2_tool_cmdtlmserver"]=self["webpackChunk_cosmosc2_tool_cmdtlmserver"]||[]).push([[450],{5799:function(n,e,l){var t=l(1479);function o(){var n="/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/Updater.js",e="f0b5f59be3bc09a142595f4638035cf73a6d3719",l=new Function("return this")(),t="__coverage__",c={path:"/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/Updater.js",statementMap:{0:{start:{line:29,column:4},end:{line:32,column:5}},1:{start:{line:35,column:4},end:{line:35,column:30}},2:{start:{line:38,column:4},end:{line:38,column:24}},3:{start:{line:41,column:4},end:{line:44,column:5}},4:{start:{line:42,column:6},end:{line:42,column:33}},5:{start:{line:43,column:6},end:{line:43,column:25}},6:{start:{line:49,column:6},end:{line:49,column:26}},7:{start:{line:54,column:6},end:{line:57,column:7}},8:{start:{line:55,column:8},end:{line:55,column:35}},9:{start:{line:56,column:8},end:{line:56,column:27}},10:{start:{line:58,column:6},end:{line:60,column:30}},11:{start:{line:59,column:8},end:{line:59,column:21}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:28,column:2},end:{line:28,column:3}},loc:{start:{line:28,column:9},end:{line:33,column:3}},line:28},1:{name:"(anonymous_1)",decl:{start:{line:34,column:2},end:{line:34,column:3}},loc:{start:{line:34,column:12},end:{line:36,column:3}},line:34},2:{name:"(anonymous_2)",decl:{start:{line:37,column:2},end:{line:37,column:3}},loc:{start:{line:37,column:12},end:{line:39,column:3}},line:37},3:{name:"(anonymous_3)",decl:{start:{line:40,column:2},end:{line:40,column:3}},loc:{start:{line:40,column:18},end:{line:45,column:3}},line:40},4:{name:"(anonymous_4)",decl:{start:{line:48,column:21},end:{line:48,column:22}},loc:{start:{line:48,column:47},end:{line:50,column:5}},line:48},5:{name:"(anonymous_5)",decl:{start:{line:53,column:4},end:{line:53,column:5}},loc:{start:{line:53,column:20},end:{line:61,column:5}},line:53},6:{name:"(anonymous_6)",decl:{start:{line:58,column:33},end:{line:58,column:34}},loc:{start:{line:58,column:39},end:{line:60,column:7}},line:58}},branchMap:{0:{loc:{start:{line:41,column:4},end:{line:44,column:5}},type:"if",locations:[{start:{line:41,column:4},end:{line:44,column:5}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:41},1:{loc:{start:{line:54,column:6},end:{line:57,column:7}},type:"if",locations:[{start:{line:54,column:6},end:{line:57,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:54}},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},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0},b:{0:[0,0],1:[0,0]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"f0b5f59be3bc09a142595f4638035cf73a6d3719"},i=l[t]||(l[t]={});i[n]&&i[n].hash===e||(i[n]=c);var s=i[n];return o=function(){return s},s}o(),e["Z"]={props:{refreshInterval:{default:1e3}},data:function(){return o().f[0]++,o().s[0]++,{updater:null,api:null}},created:function(){o().f[1]++,o().s[1]++,this.api=new t.J},mounted:function(){o().f[2]++,o().s[2]++,this.changeUpdater()},beforeDestroy:function(){o().f[3]++,o().s[3]++,null!=this.updater?(o().b[0][0]++,o().s[4]++,clearInterval(this.updater),o().s[5]++,this.updater=null):o().b[0][1]++},watch:{refreshInterval:function(n,e){o().f[4]++,o().s[6]++,this.changeUpdater()}},methods:{changeUpdater:function(){var n=this;o().f[5]++,o().s[7]++,null!=this.updater?(o().b[1][0]++,o().s[8]++,clearInterval(this.updater),o().s[9]++,this.updater=null):o().b[1][1]++,o().s[10]++,this.updater=setInterval((function(){o().f[6]++,o().s[11]++,n.update()}),this.refreshInterval)}}}},2450:function(n,e,l){l.r(e),l.d(e,{default:function(){return A}});var t=function(){var n=this,e=n.$createElement,l=n._self._c||e;return l("v-card",[l("v-card-title",[n._v(" "+n._s(n.data.length)+" Interfaces "),l("v-spacer"),l("v-text-field",{attrs:{"append-icon":"mdi-magnify",label:"Search","single-line":"","hide-details":""},model:{value:n.search,callback:function(e){n.search=e},expression:"search"}})],1),l("v-data-table",{attrs:{headers:n.headers,items:n.data,search:n.search,"custom-sort":n.sortTable,"calculate-widths":"","disable-pagination":"","hide-default-footer":"","multi-sort":"","data-test":"interfaces-table"},scopedSlots:n._u([{key:"item.connect",fn:function(e){var t=e.item;return[l("v-btn",{attrs:{block:"",color:"primary",disabled:n.buttonsDisabled},on:{click:function(e){return n.connectDisconnect(t)}}},[n._v(" "+n._s(t.connect)+" ")])]}},{key:"item.connected",fn:function(e){var t=e.item;return[l("span",{style:{color:t.connected_color}},[n._v(" "+n._s(t.connected)+" ")])]}}])})],1)},o=[],c=l(6711),i=(l(1245),l(3430),l(5799));function s(){var n="/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/InterfacesTab.vue",e="faf5c9b673abc53eae1308ae28207db734310dd4",l=new Function("return this")(),t="__coverage__",o={path:"/cosmos/plugins/packages/cosmosc2-tool-cmdtlmserver/src/tools/CmdTlmServer/InterfacesTab.vue",statementMap:{0:{start:{line:73,column:4},end:{line:94,column:5}},1:{start:{line:99,column:6},end:{line:146,column:8}},2:{start:{line:100,column:8},end:{line:145,column:9}},3:{start:{line:100,column:21},end:{line:100,column:22}},4:{start:{line:101,column:23},end:{line:101,column:31}},5:{start:{line:102,column:21},end:{line:102,column:30}},6:{start:{line:104,column:10},end:{line:144,column:11}},7:{start:{line:106,column:12},end:{line:108,column:13}},8:{start:{line:107,column:14},end:{line:107,column:22}},9:{start:{line:109,column:12},end:{line:121,column:13}},10:{start:{line:110,column:14},end:{line:114,column:15}},11:{start:{line:111,column:16},end:{line:111,column:25}},12:{start:{line:113,column:16},end:{line:113,column:24}},13:{start:{line:116,column:14},end:{line:120,column:15}},14:{start:{line:117,column:16},end:{line:117,column:24}},15:{start:{line:119,column:16},end:{line:119,column:25}},16:{start:{line:122,column:17},end:{line:144,column:11}},17:{start:{line:124,column:12},end:{line:126,column:13}},18:{start:{line:125,column:14},end:{line:125,column:22}},19:{start:{line:127,column:12},end:{line:132,column:13}},20:{start:{line:129,column:14},end:{line:129,column:55}},21:{start:{line:131,column:14},end:{line:131,column:55}},22:{start:{line:135,column:12},end:{line:137,column:13}},23:{start:{line:136,column:14},end:{line:136,column:22}},24:{start:{line:138,column:12},end:{line:143,column:13}},25:{start:{line:140,column:14},end:{line:140,column:42}},26:{start:{line:142,column:14},end:{line:142,column:42}},27:{start:{line:147,column:6},end:{line:147,column:18}},28:{start:{line:150,column:6},end:{line:150,column:33}},29:{start:{line:151,column:6},end:{line:155,column:7}},30:{start:{line:152,column:8},end:{line:152,column:45}},31:{start:{line:154,column:8},end:{line:154,column:48}},32:{start:{line:158,column:6},end:{line:158,column:43}},33:{start:{line:158,column:37},end:{line:158,column:43}},34:{start:{line:159,column:6},end:{line:189,column:8}},35:{start:{line:160,column:8},end:{line:160,column:22}},36:{start:{line:161,column:8},end:{line:187,column:9}},37:{start:{line:162,column:24},end:{line:162,column:28}},38:{start:{line:163,column:32},end:{line:163,column:36}},39:{start:{line:164,column:10},end:{line:173,column:11}},40:{start:{line:165,column:12},end:{line:165,column:31}},41:{start:{line:166,column:12},end:{line:166,column:37}},42:{start:{line:167,column:17},end:{line:173,column:11}},43:{start:{line:168,column:12},end:{line:168,column:34}},44:{start:{line:169,column:12},end:{line:169,column:37}},45:{start:{line:171,column:12},end:{line:171,column:30}},46:{start:{line:172,column:12},end:{line:172,column:35}},47:{start:{line:174,column:10},end:{line:186,column:12}},48:{start:{line:188,column:8},end:{line:188,column:36}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:72,column:2},end:{line:72,column:3}},loc:{start:{line:72,column:9},end:{line:95,column:3}},line:72},1:{name:"(anonymous_1)",decl:{start:{line:98,column:4},end:{line:98,column:5}},loc:{start:{line:98,column:36},end:{line:148,column:5}},line:98},2:{name:"(anonymous_2)",decl:{start:{line:99,column:17},end:{line:99,column:18}},loc:{start:{line:99,column:27},end:{line:146,column:7}},line:99},3:{name:"(anonymous_3)",decl:{start:{line:149,column:4},end:{line:149,column:5}},loc:{start:{line:149,column:28},end:{line:156,column:5}},line:149},4:{name:"(anonymous_4)",decl:{start:{line:157,column:4},end:{line:157,column:5}},loc:{start:{line:157,column:13},end:{line:190,column:5}},line:157},5:{name:"(anonymous_5)",decl:{start:{line:159,column:45},end:{line:159,column:46}},loc:{start:{line:159,column:55},end:{line:189,column:7}},line:159}},branchMap:{0:{loc:{start:{line:104,column:10},end:{line:144,column:11}},type:"if",locations:[{start:{line:104,column:10},end:{line:144,column:11}},{start:{line:122,column:17},end:{line:144,column:11}}],line:104},1:{loc:{start:{line:106,column:12},end:{line:108,column:13}},type:"if",locations:[{start:{line:106,column:12},end:{line:108,column:13}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:106},2:{loc:{start:{line:109,column:12},end:{line:121,column:13}},type:"if",locations:[{start:{line:109,column:12},end:{line:121,column:13}},{start:{line:115,column:19},end:{line:121,column:13}}],line:109},3:{loc:{start:{line:110,column:14},end:{line:114,column:15}},type:"if",locations:[{start:{line:110,column:14},end:{line:114,column:15}},{start:{line:112,column:21},end:{line:114,column:15}}],line:110},4:{loc:{start:{line:116,column:14},end:{line:120,column:15}},type:"if",locations:[{start:{line:116,column:14},end:{line:120,column:15}},{start:{line:118,column:21},end:{line:120,column:15}}],line:116},5:{loc:{start:{line:122,column:17},end:{line:144,column:11}},type:"if",locations:[{start:{line:122,column:17},end:{line:144,column:11}},{start:{line:133,column:17},end:{line:144,column:11}}],line:122},6:{loc:{start:{line:124,column:12},end:{line:126,column:13}},type:"if",locations:[{start:{line:124,column:12},end:{line:126,column:13}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:124},7:{loc:{start:{line:127,column:12},end:{line:132,column:13}},type:"if",locations:[{start:{line:127,column:12},end:{line:132,column:13}},{start:{line:130,column:19},end:{line:132,column:13}}],line:127},8:{loc:{start:{line:135,column:12},end:{line:137,column:13}},type:"if",locations:[{start:{line:135,column:12},end:{line:137,column:13}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:135},9:{loc:{start:{line:138,column:12},end:{line:143,column:13}},type:"if",locations:[{start:{line:138,column:12},end:{line:143,column:13}},{start:{line:141,column:19},end:{line:143,column:13}}],line:138},10:{loc:{start:{line:151,column:6},end:{line:155,column:7}},type:"if",locations:[{start:{line:151,column:6},end:{line:155,column:7}},{start:{line:153,column:13},end:{line:155,column:7}}],line:151},11:{loc:{start:{line:158,column:6},end:{line:158,column:43}},type:"if",locations:[{start:{line:158,column:6},end:{line:158,column:43}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:158},12:{loc:{start:{line:164,column:10},end:{line:173,column:11}},type:"if",locations:[{start:{line:164,column:10},end:{line:173,column:11}},{start:{line:167,column:17},end:{line:173,column:11}}],line:164},13:{loc:{start:{line:167,column:17},end:{line:173,column:11}},type:"if",locations:[{start:{line:167,column:17},end:{line:173,column:11}},{start:{line:170,column:17},end:{line:173,column:11}}],line:167}},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,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0},f:{0:0,1:0,2:0,3:0,4:0,5:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0],4:[0,0],5:[0,0],6:[0,0],7:[0,0],8:[0,0],9:[0,0],10:[0,0],11:[0,0],12:[0,0],13:[0,0]},inputSourceMap:{version:3,sources:["InterfacesTab.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA;;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"InterfacesTab.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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n--\x3e\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Interfaces\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 :custom-sort=\"sortTable\"\n calculate-widths\n disable-pagination\n hide-default-footer\n multi-sort\n data-test=\"interfaces-table\"\n >\n <template v-slot:item.connect=\"{ item }\">\n <v-btn\n block\n color=\"primary\"\n :disabled=\"buttonsDisabled\"\n @click=\"connectDisconnect(item)\"\n >\n {{ item.connect }}\n </v-btn>\n </template>\n <template v-slot:item.connected=\"{ item }\">\n <span :style=\"{ color: item.connected_color }\">\n {{ item.connected }}\n </span>\n </template>\n </v-data-table>\n </v-card>\n</template>\n\n<script>\nimport Updater from './Updater'\n\nexport default {\n mixins: [Updater],\n props: {\n tabId: Number,\n curTab: Number,\n },\n data() {\n return {\n search: '',\n data: [],\n buttonsDisabled: false,\n headers: [\n { text: 'Name', value: 'name' },\n {\n text: 'Connect / Disconnect',\n value: 'connect',\n sortable: false,\n filterable: false,\n },\n { text: 'Connected', value: 'connected' },\n { text: 'Clients', value: 'clients' },\n { text: 'Tx Q Size', value: 'tx_q_size' },\n { text: 'Rx Q Size', value: 'rx_q_size' },\n { text: 'Tx Bytes', value: 'tx_bytes' },\n { text: 'Rx Bytes', value: 'rx_bytes' },\n { text: 'Cmd Pkts', value: 'cmd_pkts' },\n { text: 'Tlm Pkts', value: 'tlm_pkts' },\n ],\n }\n },\n methods: {\n // Custom sort algorithm to allow the connected column to be sorted by CONNECTED first\n sortTable(items, index, isDesc) {\n items.sort((a, b) => {\n for (let i = 0; i < index.length; i++) {\n let column = index[i]\n let desc = isDesc[i]\n\n if (column === 'connected') {\n // Items are the same so continue to let subsequent column sorts apply\n if (a[column] === b[column]) {\n continue\n }\n if (!desc) {\n if (a[column] === 'CONNECTED') {\n return -1\n } else {\n return 1\n }\n } else {\n if (a[column] === 'CONNECTED') {\n return 1\n } else {\n return -1\n }\n }\n } else if (column === 'name') {\n // Items are the same so continue to let subsequent column sorts apply\n if (a[column] === b[column]) {\n continue\n }\n if (!desc) {\n // Strings so use localeCompare to sort\n return a[column].localeCompare(b[column])\n } else {\n return b[column].localeCompare(a[column])\n }\n } else {\n // Items are the same so continue to let subsequent column sorts apply\n if (a[column] === b[column]) {\n continue\n }\n if (!desc) {\n // The rest of the columns are numbers so just subtract to sort\n return a[column] - b[column]\n } else {\n return b[column] - a[column]\n }\n }\n }\n })\n return items\n },\n connectDisconnect(item) {\n this.buttonsDisabled = true\n if (item.connected === 'DISCONNECTED') {\n this.api.connect_interface(item.name)\n } else {\n this.api.disconnect_interface(item.name)\n }\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_interface_info().then((info) => {\n this.data = [] // Clear the old data\n for (let int of info) {\n let connect = null\n let connected_color = null\n if (int[1] == 'DISCONNECTED') {\n connect = 'Connect'\n connected_color = 'white'\n } else if (int[1] == 'CONNECTED') {\n connect = 'Disconnect'\n connected_color = 'green'\n } else {\n connect = 'Cancel'\n connected_color = 'red'\n }\n this.data.push({\n name: int[0],\n connect: connect,\n connected_color: connected_color,\n connected: int[1],\n clients: int[2],\n tx_q_size: int[3],\n rx_q_size: int[4],\n tx_bytes: int[5],\n rx_bytes: int[6],\n cmd_pkts: int[7],\n tlm_pkts: int[8],\n })\n }\n this.buttonsDisabled = false\n })\n },\n },\n}\n<\/script>\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"faf5c9b673abc53eae1308ae28207db734310dd4"},c=l[t]||(l[t]={});c[n]&&c[n].hash===e||(c[n]=o);var i=c[n];return s=function(){return i},i}s();var a={mixins:[i.Z],props:{tabId:Number,curTab:Number},data:function(){return s().f[0]++,s().s[0]++,{search:"",data:[],buttonsDisabled:!1,headers:[{text:"Name",value:"name"},{text:"Connect / Disconnect",value:"connect",sortable:!1,filterable:!1},{text:"Connected",value:"connected"},{text:"Clients",value:"clients"},{text:"Tx Q Size",value:"tx_q_size"},{text:"Rx Q Size",value:"rx_q_size"},{text:"Tx Bytes",value:"tx_bytes"},{text:"Rx Bytes",value:"rx_bytes"},{text:"Cmd Pkts",value:"cmd_pkts"},{text:"Tlm Pkts",value:"tlm_pkts"}]}},methods:{sortTable:function(n,e,l){return s().f[1]++,s().s[1]++,n.sort((function(n,t){s().f[2]++,s().s[2]++;for(var o=(s().s[3]++,0);o<e.length;o++){var c=(s().s[4]++,e[o]),i=(s().s[5]++,l[o]);if(s().s[6]++,"connected"===c){if(s().b[0][0]++,s().s[7]++,n[c]===t[c]){s().b[1][0]++,s().s[8]++;continue}return s().b[1][1]++,s().s[9]++,i?(s().b[2][1]++,s().s[13]++,"CONNECTED"===n[c]?(s().b[4][0]++,s().s[14]++,1):(s().b[4][1]++,s().s[15]++,-1)):(s().b[2][0]++,s().s[10]++,"CONNECTED"===n[c]?(s().b[3][0]++,s().s[11]++,-1):(s().b[3][1]++,s().s[12]++,1))}if(s().b[0][1]++,s().s[16]++,"name"===c){if(s().b[5][0]++,s().s[17]++,n[c]===t[c]){s().b[6][0]++,s().s[18]++;continue}return s().b[6][1]++,s().s[19]++,i?(s().b[7][1]++,s().s[21]++,t[c].localeCompare(n[c])):(s().b[7][0]++,s().s[20]++,n[c].localeCompare(t[c]))}if(s().b[5][1]++,s().s[22]++,n[c]!==t[c])return s().b[8][1]++,s().s[24]++,i?(s().b[9][1]++,s().s[26]++,t[c]-n[c]):(s().b[9][0]++,s().s[25]++,n[c]-t[c]);s().b[8][0]++,s().s[23]++}})),s().s[27]++,n},connectDisconnect:function(n){s().f[3]++,s().s[28]++,this.buttonsDisabled=!0,s().s[29]++,"DISCONNECTED"===n.connected?(s().b[10][0]++,s().s[30]++,this.api.connect_interface(n.name)):(s().b[10][1]++,s().s[31]++,this.api.disconnect_interface(n.name))},update:function(){var n=this;if(s().f[4]++,s().s[32]++,this.tabId!=this.curTab)return s().b[11][0]++,void s().s[33]++;s().b[11][1]++,s().s[34]++,this.api.get_all_interface_info().then((function(e){s().f[5]++,s().s[35]++,n.data=[],s().s[36]++;var l,t=(0,c.Z)(e);try{for(t.s();!(l=t.n()).done;){var o=l.value,i=(s().s[37]++,null),a=(s().s[38]++,null);s().s[39]++,"DISCONNECTED"==o[1]?(s().b[12][0]++,s().s[40]++,i="Connect",s().s[41]++,a="white"):(s().b[12][1]++,s().s[42]++,"CONNECTED"==o[1]?(s().b[13][0]++,s().s[43]++,i="Disconnect",s().s[44]++,a="green"):(s().b[13][1]++,s().s[45]++,i="Cancel",s().s[46]++,a="red")),s().s[47]++,n.data.push({name:o[0],connect:i,connected_color:a,connected:o[1],clients:o[2],tx_q_size:o[3],rx_q_size:o[4],tx_bytes:o[5],rx_bytes:o[6],cmd_pkts:o[7],tlm_pkts:o[8]})}}catch(u){t.e(u)}finally{t.f()}s().s[48]++,n.buttonsDisabled=!1}))}}},u=a,r=l(3287),m=(0,r.Z)(u,t,o,!1,null,null,null),A=m.exports},6711:function(n,e,l){l.d(e,{Z:function(){return o}});l(4115),l(634),l(8188),l(796),l(8673),l(6886),l(1372);var t=l(3486);function o(n,e){var l="undefined"!==typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!l){if(Array.isArray(n)||(l=(0,t.Z)(n))||e&&n&&"number"===typeof n.length){l&&(n=l);var o=0,c=function(){};return{s:c,n:function(){return o>=n.length?{done:!0}:{done:!1,value:n[o++]}},e:function(n){throw n},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){l=l.call(n)},n:function(){var n=l.next();return s=n.done,n},e:function(n){a=!0,i=n},f:function(){try{s||null==l["return"]||l["return"]()}finally{if(a)throw i}}}}}}]);
2
+ //# sourceMappingURL=450.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/450.js","mappings":"uyFAqBA,QACEA,MAAO,CACLC,gBAAiB,CACfC,QAAS,MAGbC,KANa,WAOX,OADK,sBACE,CACLC,QAAS,KACTC,IAAK,OAGTC,QAZa,WAYH,sBACRC,KAAKF,IAAM,IAAIG,EAAAA,GAEjBC,QAfa,WAeH,sBACRF,KAAKG,iBAEPC,cAlBa,WAkBG,sBACM,MAAhBJ,KAAKH,SAAiB,yBACxBQ,cAAcL,KAAKH,SADK,WAExBG,KAAKH,QAAU,MAFjB,eAKFS,MAAO,CAELZ,gBAAiB,SAAUa,EAAQC,GAAQ,sBACzCR,KAAKG,kBAGTM,QAAS,CACPN,cADO,WACS,iCACM,MAAhBH,KAAKH,SAAiB,yBACxBQ,cAAcL,KAAKH,SADK,WAExBG,KAAKH,QAAU,MAFjB,cADc,YAKdG,KAAKH,QAAUa,aAAY,WAAM,uBAC/B,EAAKC,WACJX,KAAKN,qB,kEC3Dd,IAAIkB,EAAS,WAAa,IAAIC,EAAIb,KAASc,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACA,EAAG,eAAe,CAACH,EAAIK,GAAG,IAAIL,EAAIM,GAAGN,EAAIjB,KAAKwB,QAAQ,gBAAgBJ,EAAG,YAAYA,EAAG,eAAe,CAACK,MAAM,CAAC,cAAc,cAAc,MAAQ,SAAS,cAAc,GAAG,eAAe,IAAIC,MAAM,CAACC,MAAOV,EAAU,OAAEW,SAAS,SAAUC,GAAMZ,EAAIa,OAAOD,GAAKE,WAAW,aAAa,GAAGX,EAAG,eAAe,CAACK,MAAM,CAAC,QAAUR,EAAIe,QAAQ,MAAQf,EAAIjB,KAAK,OAASiB,EAAIa,OAAO,cAAcb,EAAIgB,UAAU,mBAAmB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,aAAa,GAAG,YAAY,oBAAoBC,YAAYjB,EAAIkB,GAAG,CAAC,CAACC,IAAI,eAAeC,GAAG,SAASC,GACvqB,IAAIC,EAAOD,EAAIC,KACf,MAAO,CAACnB,EAAG,QAAQ,CAACK,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,SAAWR,EAAIuB,iBAAiBC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOzB,EAAI0B,kBAAkBJ,MAAS,CAACtB,EAAIK,GAAG,IAAIL,EAAIM,GAAGgB,EAAKK,SAAS,UAAU,CAACR,IAAI,iBAAiBC,GAAG,SAASC,GACxO,IAAIC,EAAOD,EAAIC,KACf,MAAO,CAACnB,EAAG,OAAO,CAACyB,MAAM,CAAGC,MAAOP,EAAKQ,kBAAoB,CAAC9B,EAAIK,GAAG,IAAIL,EAAIM,GAAGgB,EAAKS,WAAW,eAAe,IAC1GC,EAAkB,G,yzbC4DtB,OACEC,OAAQ,CAACA,EAAAA,GACTrD,MAAO,CACLsD,MAAOC,OACPC,OAAQD,QAEVpD,KANF,WAOI,OADJ,sBACW,CACL8B,OAAQ,GACR9B,KAAM,GACNwC,iBAAiB,EACjBR,QAAS,CACf,CAAQ,KAARsB,OAAQ,MAAR3B,QACA,CACQ,KAAR2B,uBACQ,MAAR3B,UACQ,UAAR4B,EACQ,YAARC,GAEA,CAAQ,KAARF,YAAQ,MAAR3B,aACA,CAAQ,KAAR2B,UAAQ,MAAR3B,WACA,CAAQ,KAAR2B,YAAQ,MAAR3B,aACA,CAAQ,KAAR2B,YAAQ,MAAR3B,aACA,CAAQ,KAAR2B,WAAQ,MAAR3B,YACA,CAAQ,KAAR2B,WAAQ,MAAR3B,YACA,CAAQ,KAAR2B,WAAQ,MAAR3B,YACA,CAAQ,KAAR2B,WAAQ,MAAR3B,eAIEd,QAAS,CAEPoB,UAFJ,SAEAwB,EAAAC,EAAAC,GAiDM,OAjDN,sBACMF,EAAMG,MAAK,SAAjBH,EAAAA,GAAA,sBACQ,IAAK,IAAb,iCACU,IAAV,oBACA,oBAEU,GAJV,WAIyB,cAAXI,EAAwB,CAE1B,GAFZ,yBAEgBC,EAAED,KAAYE,EAAEF,GAAS,CAAzC,yBACc,SAEF,OAHZ,cAFA,WAKiBG,GAMjB,0BACgC,cAAdF,EAAED,IAApB,0BACuB,IACvB,2BACwB,KAVxB,0BACgC,cAAdC,EAAED,IAApB,2BACwB,IACxB,0BACuB,IASvB,yCAEA,GAFA,0BAEA,uCACA,SAEA,OAHA,cAFA,YAKA,GAGA,0BACA,2BAJA,0BAEA,0BAMA,GAFA,0BAEA,YAGA,OAHA,cAFA,YAKA,GAGA,0BACA,YAJA,0BAEA,WALA,8BArCA,YAiDaJ,GAETd,kBArDJ,SAqDAJ,GAAA,uBACMnC,KAAKoC,iBAAkB,EAD7B,YAE6B,iBAAnBD,EAAKS,WAAf,2BACQ5C,KAAKF,IAAI+D,kBAAkB1B,EAAK2B,QACxC,2BACQ9D,KAAKF,IAAIiE,qBAAqB5B,EAAK2B,QAGvCnD,OA7DJ,WA6DA,WACM,GADN,uBACUX,KAAK+C,OAAS/C,KAAKiD,OAA7B,sDADA,YAEMjD,KAAKF,IAAIkE,yBAAyBC,MAAK,SAA7C,0BACQ,EAAR,QADA,4BAEAC,GAFA,IAEA,0CACA,qBACA,qBAFA,YAGA,iDACA1B,EAAAA,UADA,YAEAG,EAAAA,UACA,yEACAH,EAAAA,aADA,YAEAG,EAAAA,UACA,2BACAH,EAAAA,SADA,YAEAG,EAAAA,QAXA,YAaA,aACAmB,KAAAA,EAAAA,GACAtB,QAAAA,EACAG,gBAAAA,EACAC,UAAAA,EAAAA,GACAuB,QAAAA,EAAAA,GACAC,UAAAA,EAAAA,GACAC,UAAAA,EAAAA,GACAC,SAAAA,EAAAA,GACAC,SAAAA,EAAAA,GACAC,SAAAA,EAAAA,GACAC,SAAAA,EAAAA,MA1BA,0CA6BQ,EAAR,yBC3LwY,I,UCOpYC,GAAY,OACd,EACA9D,EACAiC,GACA,EACA,KACA,KACA,MAIF,EAAe6B,EAAiB,S,yHCjBjB,SAASC,EAA2BC,EAAGC,GACpD,IAAIC,EAAuB,qBAAXC,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAElE,IAAKE,EAAI,CACP,GAAIG,MAAMC,QAAQN,KAAOE,GAAKK,EAAAA,EAAAA,GAA2BP,KAAOC,GAAkBD,GAAyB,kBAAbA,EAAExD,OAAqB,CAC/G0D,IAAIF,EAAIE,GACZ,IAAIM,EAAI,EAEJC,EAAI,aAER,MAAO,CACLC,EAAGD,EACHE,EAAG,WACD,OAAIH,GAAKR,EAAExD,OAAe,CACxBoE,MAAM,GAED,CACLA,MAAM,EACNjE,MAAOqD,EAAEQ,OAGbK,EAAG,SAAWC,GACZ,MAAMA,GAERC,EAAGN,GAIP,MAAM,IAAIO,UAAU,yIAGtB,IAEIC,EAFAC,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLT,EAAG,WACDR,EAAKA,EAAGkB,KAAKpB,IAEfW,EAAG,WACD,IAAIU,EAAOnB,EAAGoB,OAEd,OADAJ,EAAmBG,EAAKT,KACjBS,GAETR,EAAG,SAAWU,GACZJ,GAAS,EACTF,EAAMM,GAERR,EAAG,WACD,IACOG,GAAoC,MAAhBhB,EAAG,WAAmBA,EAAG,YADpD,QAGE,GAAIiB,EAAQ,MAAMF","sources":["webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/Updater.js","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/InterfacesTab.vue?bc80","webpack://@cosmosc2/tool-cmdtlmserver/src/tools/CmdTlmServer/InterfacesTab.vue","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/InterfacesTab.vue?ee88","webpack://@cosmosc2/tool-cmdtlmserver/./src/tools/CmdTlmServer/InterfacesTab.vue","webpack://@cosmosc2/tool-cmdtlmserver/../../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js"],"sourcesContent":["/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport { CosmosApi } from '@cosmosc2/tool-common/src/services/cosmos-api'\n\nexport default {\n props: {\n refreshInterval: {\n default: 1000,\n },\n },\n data() {\n return {\n updater: null,\n api: null,\n }\n },\n created() {\n this.api = new CosmosApi()\n },\n mounted() {\n this.changeUpdater()\n },\n beforeDestroy() {\n if (this.updater != null) {\n clearInterval(this.updater)\n this.updater = null\n }\n },\n watch: {\n // eslint-disable-next-line no-unused-vars\n refreshInterval: function (newVal, oldVal) {\n this.changeUpdater()\n },\n },\n methods: {\n changeUpdater() {\n if (this.updater != null) {\n clearInterval(this.updater)\n this.updater = null\n }\n this.updater = setInterval(() => {\n this.update()\n }, this.refreshInterval)\n },\n },\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.data.length)+\" Interfaces \"),_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,\"custom-sort\":_vm.sortTable,\"calculate-widths\":\"\",\"disable-pagination\":\"\",\"hide-default-footer\":\"\",\"multi-sort\":\"\",\"data-test\":\"interfaces-table\"},scopedSlots:_vm._u([{key:\"item.connect\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{attrs:{\"block\":\"\",\"color\":\"primary\",\"disabled\":_vm.buttonsDisabled},on:{\"click\":function($event){return _vm.connectDisconnect(item)}}},[_vm._v(\" \"+_vm._s(item.connect)+\" \")])]}},{key:\"item.connected\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',{style:({ color: item.connected_color })},[_vm._v(\" \"+_vm._s(item.connected)+\" \")])]}}])})],1)}\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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Interfaces\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 :custom-sort=\"sortTable\"\n calculate-widths\n disable-pagination\n hide-default-footer\n multi-sort\n data-test=\"interfaces-table\"\n >\n <template v-slot:item.connect=\"{ item }\">\n <v-btn\n block\n color=\"primary\"\n :disabled=\"buttonsDisabled\"\n @click=\"connectDisconnect(item)\"\n >\n {{ item.connect }}\n </v-btn>\n </template>\n <template v-slot:item.connected=\"{ item }\">\n <span :style=\"{ color: item.connected_color }\">\n {{ item.connected }}\n </span>\n </template>\n </v-data-table>\n </v-card>\n</template>\n\n<script>\nimport Updater from './Updater'\n\nexport default {\n mixins: [Updater],\n props: {\n tabId: Number,\n curTab: Number,\n },\n data() {\n return {\n search: '',\n data: [],\n buttonsDisabled: false,\n headers: [\n { text: 'Name', value: 'name' },\n {\n text: 'Connect / Disconnect',\n value: 'connect',\n sortable: false,\n filterable: false,\n },\n { text: 'Connected', value: 'connected' },\n { text: 'Clients', value: 'clients' },\n { text: 'Tx Q Size', value: 'tx_q_size' },\n { text: 'Rx Q Size', value: 'rx_q_size' },\n { text: 'Tx Bytes', value: 'tx_bytes' },\n { text: 'Rx Bytes', value: 'rx_bytes' },\n { text: 'Cmd Pkts', value: 'cmd_pkts' },\n { text: 'Tlm Pkts', value: 'tlm_pkts' },\n ],\n }\n },\n methods: {\n // Custom sort algorithm to allow the connected column to be sorted by CONNECTED first\n sortTable(items, index, isDesc) {\n items.sort((a, b) => {\n for (let i = 0; i < index.length; i++) {\n let column = index[i]\n let desc = isDesc[i]\n\n if (column === 'connected') {\n // Items are the same so continue to let subsequent column sorts apply\n if (a[column] === b[column]) {\n continue\n }\n if (!desc) {\n if (a[column] === 'CONNECTED') {\n return -1\n } else {\n return 1\n }\n } else {\n if (a[column] === 'CONNECTED') {\n return 1\n } else {\n return -1\n }\n }\n } else if (column === 'name') {\n // Items are the same so continue to let subsequent column sorts apply\n if (a[column] === b[column]) {\n continue\n }\n if (!desc) {\n // Strings so use localeCompare to sort\n return a[column].localeCompare(b[column])\n } else {\n return b[column].localeCompare(a[column])\n }\n } else {\n // Items are the same so continue to let subsequent column sorts apply\n if (a[column] === b[column]) {\n continue\n }\n if (!desc) {\n // The rest of the columns are numbers so just subtract to sort\n return a[column] - b[column]\n } else {\n return b[column] - a[column]\n }\n }\n }\n })\n return items\n },\n connectDisconnect(item) {\n this.buttonsDisabled = true\n if (item.connected === 'DISCONNECTED') {\n this.api.connect_interface(item.name)\n } else {\n this.api.disconnect_interface(item.name)\n }\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_interface_info().then((info) => {\n this.data = [] // Clear the old data\n for (let int of info) {\n let connect = null\n let connected_color = null\n if (int[1] == 'DISCONNECTED') {\n connect = 'Connect'\n connected_color = 'white'\n } else if (int[1] == 'CONNECTED') {\n connect = 'Disconnect'\n connected_color = 'green'\n } else {\n connect = 'Cancel'\n connected_color = 'red'\n }\n this.data.push({\n name: int[0],\n connect: connect,\n connected_color: connected_color,\n connected: int[1],\n clients: int[2],\n tx_q_size: int[3],\n rx_q_size: int[4],\n tx_bytes: int[5],\n rx_bytes: int[6],\n cmd_pkts: int[7],\n tlm_pkts: int[8],\n })\n }\n this.buttonsDisabled = false\n })\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InterfacesTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InterfacesTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InterfacesTab.vue?vue&type=template&id=5775c6ab&\"\nimport script from \"./InterfacesTab.vue?vue&type=script&lang=js&\"\nexport * from \"./InterfacesTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/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","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}"],"names":["props","refreshInterval","default","data","updater","api","created","this","CosmosApi","mounted","changeUpdater","beforeDestroy","clearInterval","watch","newVal","oldVal","methods","setInterval","update","render","_vm","_h","$createElement","_c","_self","_v","_s","length","attrs","model","value","callback","$$v","search","expression","headers","sortTable","scopedSlots","_u","key","fn","ref","item","buttonsDisabled","on","$event","connectDisconnect","connect","style","color","connected_color","connected","staticRenderFns","mixins","tabId","Number","curTab","text","sortable","filterable","items","index","isDesc","sort","column","a","b","desc","connect_interface","name","disconnect_interface","get_all_interface_info","then","info","clients","tx_q_size","rx_q_size","tx_bytes","rx_bytes","cmd_pkts","tlm_pkts","component","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","unsupportedIterableToArray","i","F","s","n","done","e","_e","f","TypeError","err","normalCompletion","didErr","call","step","next","_e2"],"sourceRoot":""}