openc3-tool-cmdtlmserver 5.0.8 → 5.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"js/575.js","mappings":"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","sources":["webpack://@openc3/tool-cmdtlmserver/../openc3-tool-common/src/services/axios.js","webpack://@openc3/tool-cmdtlmserver/../openc3-tool-common/src/services/openc3-api.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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport axios from 'axios'\nimport Vue from 'vue'\n\nconst vueInstance = new Vue()\n\nconst axiosInstance = axios.create({\n baseURL: location.origin,\n timeout: 60000,\n params: {},\n})\n\naxiosInstance.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity, true)\n }\n // Individual tools can set axiosIgnoreResponse to an error code\n // they potentially expect, e.g. '404', in which case we ignore it\n // Since localStorage only supports strings call toString on the status\n if (\n localStorage.axiosIgnoreResponse === error.response.status.toString()\n ) {\n return Promise.reject(error)\n }\n let body = `HTTP ${error.response.status} - `\n if (error.response?.statusText) {\n body += `${error.response.statusText} `\n }\n if (error.response?.config?.data) {\n body += `${error.response.config.data} `\n }\n if (error.response?.data?.message) {\n body += `${error.response.data.message}`\n } else if (error.response?.data?.exception) {\n body += `${error.response.data.exception}`\n } else if (error.response?.data?.error?.message) {\n if (error.response.data.error.class) {\n body += `${error.response.data.error.class} `\n }\n body += `${error.response.data.error.message}`\n } else {\n body += `${error.response?.data}`\n }\n vueInstance.$notify.serious({\n title: 'Network error',\n body,\n })\n throw error\n } else {\n throw error\n }\n }\n)\n\nexport default axiosInstance\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport axios from './axios.js'\n\nexport class OpenC3Api {\n id = 1\n\n constructor() {}\n\n // This is hacky Json-rpc for now. Should probably use a jsonrpc library.\n async exec(method, params, kwparams = {}) {\n try {\n await OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity)\n } catch (error) {\n OpenC3Auth.login()\n }\n this.id = this.id + 1\n try {\n kwparams['scope'] = localStorage.scope\n const response = await axios.post(\n '/openc3-api/api',\n {\n jsonrpc: '2.0',\n method: method,\n params: params,\n id: this.id,\n keyword_params: kwparams,\n },\n {\n headers: {\n Authorization: localStorage.openc3Token,\n 'Content-Type': 'application/json-rpc',\n },\n }\n )\n // var data = response.data\n // if (data.error) {\n // var err = new Error()\n // err.name = data.error.data.class\n // err.message = data.error.data.message\n // console.log(data.error.data.backtrace.join('\\n'))\n // throw err\n // }\n return response.data.result\n } catch (error) {\n var err = new Error()\n if (error.response) {\n // The request was made and the server responded with a\n // status code that falls out of the range of 2xx\n err.name = error.response.data.error.data.class\n err.message = error.response.data.error.data.message\n } else if (error.request) {\n // The request was made but no response was received, `error.request`\n // is an instance of XMLHttpRequest in the browser and an instance\n // of http.ClientRequest in Node.js\n err.name = 'Request error'\n err.message = 'Request error, no response received'\n } else {\n // Something happened in setting up the request and triggered an Error\n err.name = 'Unknown error'\n }\n //console.log(error)\n throw err\n }\n }\n\n decode_openc3_type(val) {\n if (val !== null && typeof val === 'object') {\n if (val.json_class == 'Float' && val.raw) {\n if (val.raw == 'NaN') {\n return NaN\n } else if (val.raw == 'Infinity') {\n return Infinity\n } else if (val.raw == '-Infinity') {\n return -Infinity\n }\n }\n }\n return null\n }\n\n encode_openc3_type(val) {\n if (Number.isNaN(val)) {\n return { json_class: 'Float', raw: 'NaN' }\n } else if (val == Number.POSITIVE_INFINITY) {\n return { json_class: 'Float', raw: 'Infinity' }\n } else if (val == Number.NEGATIVE_INFINITY) {\n return { json_class: 'Float', raw: '-Infinity' }\n }\n return null\n }\n\n // ***********************************************\n // The following APIs are used by the CmdTlmServer\n // ***********************************************\n get_all_interface_info() {\n return this.exec('get_all_interface_info', [])\n }\n\n connect_interface(interface_name) {\n return this.exec('connect_interface', [interface_name])\n }\n\n disconnect_interface(interface_name) {\n return this.exec('disconnect_interface', [interface_name])\n }\n\n get_all_router_info() {\n return this.exec('get_all_router_info', [])\n }\n\n connect_router(router_name) {\n return this.exec('connect_router', [router_name])\n }\n\n disconnect_router(router_name) {\n return this.exec('disconnect_router', [router_name])\n }\n\n get_all_target_info() {\n return this.exec('get_all_target_info', [])\n }\n\n get_tlm_cnts(target_commands) {\n return this.exec('get_tlm_cnts', [target_commands])\n }\n\n get_item(target, packet, item) {\n return this.exec('get_item', [target, packet, item])\n }\n\n get_parameter(target, packet, item) {\n return this.exec('get_parameter', [target, packet, item])\n }\n\n get_all_packet_logger_info() {\n return this.exec('get_all_packet_logger_info', [])\n }\n\n start_logging() {\n return this.exec('start_logging', [])\n }\n\n stop_logging() {\n return this.exec('stop_logging', [])\n }\n\n start_cmd_log(log_writer_name) {\n return this.exec('start_cmd_log', [log_writer_name])\n }\n\n start_tlm_log(log_writer_name) {\n return this.exec('start_tlm_log', [log_writer_name])\n }\n\n stop_cmd_log(log_writer_name) {\n return this.exec('stop_cmd_log', [log_writer_name])\n }\n\n stop_tlm_log(log_writer_name) {\n return this.exec('stop_tlm_log', [log_writer_name])\n }\n\n get_server_status() {\n return this.exec('get_server_status', [])\n }\n\n get_limits_sets() {\n return this.exec('get_limits_sets', [])\n }\n\n get_limits_set() {\n return this.exec('get_limits_set', [])\n }\n\n set_limits_set(limits_set) {\n return this.exec('set_limits_set', [limits_set])\n }\n\n get_background_tasks() {\n return this.exec('get_background_tasks', [])\n }\n\n start_background_task(name) {\n return this.exec('start_background_task', [name])\n }\n\n stop_background_task(name) {\n return this.exec('stop_background_task', [name])\n }\n\n // ***********************************************\n // End CmdTlmServer APIs\n // ***********************************************\n\n get_oldest_logfile() {\n return this.exec('get_oldest_logfile', [])\n }\n\n get_target(target_name) {\n return this.exec('get_target', [target_name])\n }\n\n get_target_list() {\n return this.exec('get_target_list', [])\n }\n\n get_telemetry(target_name, packet_name) {\n return this.exec('get_telemetry', [target_name, packet_name])\n }\n\n get_all_telemetry(target_name) {\n return this.exec('get_all_telemetry', [target_name])\n }\n\n get_all_telemetry_names(target_name) {\n return this.exec('get_all_telemetry_names', [target_name])\n }\n\n // Called by PacketViewerComponent\n async get_tlm_packet(target_name, packet_name, value_type) {\n const data = await this.exec('get_tlm_packet', [target_name, packet_name], {\n type: value_type,\n })\n // Make sure data isn't null or undefined. Note this is the only valid use of == or !=\n if (data != null) {\n var len = data.length\n var converted = null\n for (var i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[i][1])\n if (converted !== null) {\n data[i][1] = converted\n }\n }\n }\n return data\n }\n\n // Called by PacketViewerComponent\n get_packet_derived_items(target_name, packet_name) {\n return this.exec('get_packet_derived_items', [target_name, packet_name])\n }\n\n // Called by CmdTlmServer Tlm Packets tab\n get_tlm_buffer(target_name, packet_name) {\n return this.exec('get_tlm_buffer', [target_name, packet_name])\n }\n\n // Called by OpenC3ScreenComponent\n async get_tlm_values(items) {\n const data = await this.exec('get_tlm_values', [items])\n var len = data[0].length\n var converted = null\n for (var i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[0][i])\n if (converted !== null) {\n data[0][i] = converted\n }\n }\n return data\n }\n\n // Called by LimitsbarWidget\n get_limits(target_name, packet_name, item_name) {\n return this.exec('get_limits', [target_name, packet_name, item_name])\n }\n\n // Called by LimitsMonitorComponent\n async tlm(target_name, packet_name, item_name) {\n const data = await this.exec('tlm', [target_name, packet_name, item_name])\n var converted = this.decode_openc3_type(data)\n if (converted !== null) {\n data = converted\n }\n return data\n }\n\n get_all_commands(target_name) {\n return this.exec('get_all_commands', [target_name])\n }\n\n get_all_command_names(target_name) {\n return this.exec('get_all_command_names', [target_name])\n }\n\n get_command(target_name, command_name) {\n return this.exec('get_command', [target_name, command_name])\n }\n\n get_cmd_cnts(target_commands) {\n return this.exec('get_cmd_cnts', [target_commands])\n }\n\n get_cmd_value(\n target_name,\n packet_name,\n parameter_name,\n value_type = 'CONVERTED'\n ) {\n return this.exec('get_cmd_value', [\n target_name,\n packet_name,\n parameter_name,\n value_type,\n ])\n }\n\n // Called by CmdTlmServer Cmd Packets tab\n get_cmd_buffer(target_name, packet_name) {\n return this.exec('get_cmd_buffer', [target_name, packet_name])\n }\n\n // Implementation of functionality shared by cmd methods with param_lists.\n _cmd(method, target_name, command_name, param_list) {\n var converted = null\n for (var key in param_list) {\n if (Object.prototype.hasOwnProperty.call(param_list, key)) {\n converted = this.encode_openc3_type(param_list[key])\n if (converted !== null) {\n param_list[key] = converted\n }\n }\n }\n return this.exec(method, [target_name, command_name, param_list])\n }\n\n // Called by CmdSenderComponent\n get_cmd_hazardous(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('get_cmd_hazardous', target_name)\n } else {\n return this._cmd(\n 'get_cmd_hazardous',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd', target_name)\n } else {\n return this._cmd('cmd', target_name, command_name, param_list)\n }\n }\n\n // Called by CmdSenderComponent\n cmd_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_range_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw', target_name)\n } else {\n return this._cmd('cmd_raw', target_name, command_name, param_list)\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_range_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_hazardous_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_checks', target_name)\n } else {\n return this._cmd('cmd_no_checks', target_name, command_name, param_list)\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_hazardous_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n cmd_raw_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_checks', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_checks',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n // Called by CmdSenderComponent\n get_interface_names() {\n return this.exec('get_interface_names', [])\n }\n\n // Called by CmdSenderComponent\n send_raw(interface_name, data) {\n return this.exec('send_raw', [interface_name, data])\n }\n\n list_configs(tool) {\n return this.exec('list_configs', [tool])\n }\n\n load_config(tool, name) {\n return this.exec('load_config', [tool, name])\n }\n\n save_config(tool, name, data) {\n return this.exec('save_config', [tool, name, data])\n }\n\n delete_config(tool, name) {\n return this.exec('delete_config', [tool, name])\n }\n\n get_out_of_limits() {\n return this.exec('get_out_of_limits', [])\n }\n\n get_overall_limits_state(ignored) {\n return this.exec('get_overall_limits_state', [ignored])\n }\n\n list_settings() {\n return this.exec('list_settings', [])\n }\n\n get_all_settings() {\n return this.exec('get_all_settings', [])\n }\n\n get_setting(name) {\n return this.exec('get_setting', [name])\n }\n\n get_settings(array) {\n return this.exec('get_settings', array)\n }\n\n save_setting(name, data) {\n return this.exec('save_setting', [name, data])\n }\n\n // TODO: Currently unused but seemed like a useful function\n async hashString(string) {\n if (window.isSecureContext) {\n // Encode the string as an arrayBuffer which the subtle crypto API uses\n const arrayBuffer = new TextEncoder().encode(string)\n // Use the subtle crypto API to perform a SHA256 Sum of the array buffer\n // The resulting hash is stored in an array buffer\n const hashAsArrayBuffer = await crypto.subtle.digest(\n 'SHA-256',\n arrayBuffer\n )\n // To create a string we will get the hexadecimal value of each byte of the array buffer\n // This gets us an array where each byte of the array buffer becomes one item in the array\n const uint8ViewOfHash = new Uint8Array(hashAsArrayBuffer)\n // We then convert it to a regular array so we can convert each item to hexadecimal strings\n // Where to characters of 0-9 or a-f represent a number between 0 and 16, containing 4 bits of information, so 2 of them is 8 bits (1 byte).\n return Array.from(uint8ViewOfHash)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('')\n }\n // else ?\n }\n}\n"],"names":["vueInstance","Vue","axiosInstance","axios","baseURL","location","origin","timeout","params","interceptors","response","use","error","status","OpenC3Auth","updateToken","defaultMinValidity","localStorage","axiosIgnoreResponse","toString","Promise","reject","body","statusText","config","data","message","exception","class","$notify","serious","title","OpenC3Api","method","kwparams","login","this","id","scope","jsonrpc","keyword_params","headers","Authorization","openc3Token","result","err","Error","name","request","val","json_class","raw","NaN","Infinity","Number","isNaN","POSITIVE_INFINITY","NEGATIVE_INFINITY","exec","interface_name","router_name","target_commands","target","packet","item","log_writer_name","limits_set","target_name","packet_name","value_type","type","len","length","converted","i","decode_openc3_type","items","item_name","command_name","parameter_name","param_list","key","Object","prototype","hasOwnProperty","call","encode_openc3_type","undefined","_cmd","tool","ignored","array","string","window","isSecureContext","arrayBuffer","TextEncoder","encode","crypto","subtle","digest","hashAsArrayBuffer","uint8ViewOfHash","Uint8Array","Array","from","map","b","padStart","join"],"sourceRoot":""}
1
+ {"version":3,"file":"js/575.js","mappings":"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","sources":["webpack://@openc3/tool-cmdtlmserver/../openc3-tool-common/src/services/axios.js","webpack://@openc3/tool-cmdtlmserver/../openc3-tool-common/src/services/openc3-api.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# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport axios from 'axios'\nimport Vue from 'vue'\n\nconst vueInstance = new Vue()\n\nconst axiosInstance = axios.create({\n baseURL: location.origin,\n timeout: 60000,\n params: {},\n})\n\naxiosInstance.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity, true)\n }\n // Individual tools can set 'Ignore-Errors' to an error code\n // they potentially expect, e.g. '500', in which case we ignore it\n // For example in CommandSender.vue:\n // obs = this.api.cmd(targetName, commandName, paramList, {\n // 'Ignore-Errors': '500',\n // })\n if (\n error.response.headers['ignore-errors'] &&\n error.response.headers['ignore-errors'].includes(\n error.response.status.toString()\n )\n ) {\n return Promise.reject(error)\n }\n let body = `HTTP ${error.response.status} - `\n if (error.response?.statusText) {\n body += `${error.response.statusText} `\n }\n if (error.response?.config?.data) {\n body += `${error.response.config.data} `\n }\n if (error.response?.data?.message) {\n body += `${error.response.data.message}`\n } else if (error.response?.data?.exception) {\n body += `${error.response.data.exception}`\n } else if (error.response?.data?.error?.message) {\n if (error.response.data.error.class) {\n body += `${error.response.data.error.class} `\n }\n body += `${error.response.data.error.message}`\n } else {\n body += `${error.response?.data}`\n }\n vueInstance.$notify.serious({\n title: 'Network error',\n body,\n })\n throw error\n } else {\n throw error\n }\n }\n)\n\nexport default axiosInstance\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport axios from './axios.js'\n\nexport class OpenC3Api {\n id = 1\n\n constructor() {}\n\n // This is hacky Json-rpc for now. Should probably use a jsonrpc library.\n async exec(method, params, kwparams = {}, headerOptions = {}) {\n try {\n await OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity)\n } catch (error) {\n OpenC3Auth.login()\n }\n this.id = this.id + 1\n try {\n kwparams['scope'] = window.openc3Scope\n const response = await axios.post(\n '/openc3-api/api',\n {\n jsonrpc: '2.0',\n method: method,\n params: params,\n id: this.id,\n keyword_params: kwparams,\n },\n {\n headers: {\n Authorization: localStorage.openc3Token,\n 'Content-Type': 'application/json-rpc',\n ...headerOptions,\n },\n }\n )\n // var data = response.data\n // if (data.error) {\n // var err = new Error()\n // err.name = data.error.data.class\n // err.message = data.error.data.message\n // console.log(data.error.data.backtrace.join('\\n'))\n // throw err\n // }\n return response.data.result\n } catch (error) {\n var err = new Error()\n if (error.response) {\n // The request was made and the server responded with a\n // status code that falls out of the range of 2xx\n err.name = error.response.data.error.data.class\n err.message = error.response.data.error.data.message\n } else if (error.request) {\n // The request was made but no response was received, `error.request`\n // is an instance of XMLHttpRequest in the browser and an instance\n // of http.ClientRequest in Node.js\n err.name = 'Request error'\n err.message = 'Request error, no response received'\n } else {\n // Something happened in setting up the request and triggered an Error\n err.name = 'Unknown error'\n }\n // console.log(error)\n throw err\n }\n }\n\n decode_openc3_type(val) {\n if (val !== null && typeof val === 'object') {\n if (val.json_class == 'Float' && val.raw) {\n if (val.raw == 'NaN') {\n return NaN\n } else if (val.raw == 'Infinity') {\n return Infinity\n } else if (val.raw == '-Infinity') {\n return -Infinity\n }\n }\n }\n return null\n }\n\n encode_openc3_type(val) {\n if (Number.isNaN(val)) {\n return { json_class: 'Float', raw: 'NaN' }\n } else if (val == Number.POSITIVE_INFINITY) {\n return { json_class: 'Float', raw: 'Infinity' }\n } else if (val == Number.NEGATIVE_INFINITY) {\n return { json_class: 'Float', raw: '-Infinity' }\n }\n return null\n }\n\n // ***********************************************\n // The following APIs are used by the CmdTlmServer\n // ***********************************************\n get_all_interface_info() {\n return this.exec('get_all_interface_info', [])\n }\n\n connect_interface(interface_name) {\n return this.exec('connect_interface', [interface_name])\n }\n\n disconnect_interface(interface_name) {\n return this.exec('disconnect_interface', [interface_name])\n }\n\n get_all_router_info() {\n return this.exec('get_all_router_info', [])\n }\n\n connect_router(router_name) {\n return this.exec('connect_router', [router_name])\n }\n\n disconnect_router(router_name) {\n return this.exec('disconnect_router', [router_name])\n }\n\n get_all_target_info() {\n return this.exec('get_all_target_info', [])\n }\n\n get_tlm_cnts(target_commands) {\n return this.exec('get_tlm_cnts', [target_commands])\n }\n\n get_item(target, packet, item) {\n return this.exec('get_item', [target, packet, item])\n }\n\n get_parameter(target, packet, item) {\n return this.exec('get_parameter', [target, packet, item])\n }\n\n get_all_packet_logger_info() {\n return this.exec('get_all_packet_logger_info', [])\n }\n\n start_logging() {\n return this.exec('start_logging', [])\n }\n\n stop_logging() {\n return this.exec('stop_logging', [])\n }\n\n start_cmd_log(log_writer_name) {\n return this.exec('start_cmd_log', [log_writer_name])\n }\n\n start_tlm_log(log_writer_name) {\n return this.exec('start_tlm_log', [log_writer_name])\n }\n\n stop_cmd_log(log_writer_name) {\n return this.exec('stop_cmd_log', [log_writer_name])\n }\n\n stop_tlm_log(log_writer_name) {\n return this.exec('stop_tlm_log', [log_writer_name])\n }\n\n get_server_status() {\n return this.exec('get_server_status', [])\n }\n\n get_limits_sets() {\n return this.exec('get_limits_sets', [])\n }\n\n get_limits_set() {\n return this.exec('get_limits_set', [])\n }\n\n set_limits_set(limits_set) {\n return this.exec('set_limits_set', [limits_set])\n }\n\n get_background_tasks() {\n return this.exec('get_background_tasks', [])\n }\n\n start_background_task(name) {\n return this.exec('start_background_task', [name])\n }\n\n stop_background_task(name) {\n return this.exec('stop_background_task', [name])\n }\n\n // ***********************************************\n // End CmdTlmServer APIs\n // ***********************************************\n\n get_oldest_logfile() {\n return this.exec('get_oldest_logfile', [])\n }\n\n get_target(target_name) {\n return this.exec('get_target', [target_name])\n }\n\n get_target_list() {\n return this.exec('get_target_list', [])\n }\n\n get_telemetry(target_name, packet_name) {\n return this.exec('get_telemetry', [target_name, packet_name])\n }\n\n get_all_telemetry(target_name) {\n return this.exec('get_all_telemetry', [target_name])\n }\n\n get_all_telemetry_names(target_name) {\n return this.exec('get_all_telemetry_names', [target_name])\n }\n\n async get_tlm_packet(target_name, packet_name, value_type) {\n const data = await this.exec('get_tlm_packet', [target_name, packet_name], {\n type: value_type,\n })\n // Make sure data isn't null or undefined. Note this is the only valid use of == or !=\n if (data != null) {\n var len = data.length\n var converted = null\n for (var i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[i][1])\n if (converted !== null) {\n data[i][1] = converted\n }\n }\n }\n return data\n }\n\n get_packet_derived_items(target_name, packet_name) {\n return this.exec('get_packet_derived_items', [target_name, packet_name])\n }\n\n get_tlm_buffer(target_name, packet_name) {\n return this.exec('get_tlm_buffer', [target_name, packet_name])\n }\n\n async get_tlm_values(items) {\n const data = await this.exec('get_tlm_values', [items])\n var len = data[0].length\n var converted = null\n for (var i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[0][i])\n if (converted !== null) {\n data[0][i] = converted\n }\n }\n return data\n }\n\n get_limits(target_name, packet_name, item_name) {\n return this.exec('get_limits', [target_name, packet_name, item_name])\n }\n\n async tlm(target_name, packet_name, item_name, data_type = 'CONVERTED') {\n let data = null\n // Check for the single string syntax: tlm(\"TGT PKT ITEM\")\n if (packet_name === undefined) {\n data = await this.exec('tlm', [target_name])\n // Check for the single string syntax with type: tlm(\"TGT PKT ITEM\", \"RAW\")\n } else if (item_name === undefined) {\n if (\n ['RAW', 'CONVERTED', 'FORMATTED', 'WITH_UNITS'].includes(packet_name)\n ) {\n data = await this.exec('tlm', [target_name], { type: packet_name })\n } else {\n var err = new Error()\n err.name = 'TypeError'\n err.message = `Invalid data type ${packet_name}. Valid options are RAW, CONVERTED, FORMATTED, and WITH_UNITS.`\n throw err\n }\n } else {\n data = await this.exec('tlm', [target_name, packet_name, item_name], {\n type: data_type,\n })\n }\n var converted = this.decode_openc3_type(data)\n if (converted !== null) {\n data = converted\n }\n return data\n }\n\n get_all_commands(target_name) {\n return this.exec('get_all_commands', [target_name])\n }\n\n get_all_command_names(target_name) {\n return this.exec('get_all_command_names', [target_name])\n }\n\n get_command(target_name, command_name) {\n return this.exec('get_command', [target_name, command_name])\n }\n\n get_cmd_cnts(target_commands) {\n return this.exec('get_cmd_cnts', [target_commands])\n }\n\n get_cmd_value(\n target_name,\n packet_name,\n parameter_name,\n value_type = 'CONVERTED'\n ) {\n return this.exec('get_cmd_value', [\n target_name,\n packet_name,\n parameter_name,\n value_type,\n ])\n }\n\n get_cmd_buffer(target_name, packet_name) {\n return this.exec('get_cmd_buffer', [target_name, packet_name])\n }\n\n // Implementation of functionality shared by cmd methods with param_lists.\n _cmd(method, target_name, command_name, param_list, headerOptions) {\n var converted = null\n for (var key in param_list) {\n if (Object.prototype.hasOwnProperty.call(param_list, key)) {\n converted = this.encode_openc3_type(param_list[key])\n if (converted !== null) {\n param_list[key] = converted\n }\n }\n }\n return this.exec(\n method,\n [target_name, command_name, param_list],\n {},\n headerOptions\n )\n }\n\n get_cmd_hazardous(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('get_cmd_hazardous', target_name)\n } else {\n return this._cmd(\n 'get_cmd_hazardous',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n cmd(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('cmd', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd',\n target_name,\n command_name,\n param_list,\n headerOptions\n )\n }\n }\n\n cmd_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_range_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n cmd_raw(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw', target_name)\n } else {\n return this._cmd('cmd_raw', target_name, command_name, param_list)\n }\n }\n\n cmd_raw_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_range_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n cmd_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_hazardous_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n cmd_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_checks', target_name)\n } else {\n return this._cmd('cmd_no_checks', target_name, command_name, param_list)\n }\n }\n\n cmd_raw_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_hazardous_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n cmd_raw_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_checks', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_checks',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n get_interface_names() {\n return this.exec('get_interface_names', [])\n }\n\n send_raw(interface_name, data) {\n return this.exec('send_raw', [interface_name, data])\n }\n\n list_configs(tool) {\n return this.exec('list_configs', [tool])\n }\n\n load_config(tool, name) {\n return this.exec('load_config', [tool, name])\n }\n\n save_config(tool, name, data) {\n return this.exec('save_config', [tool, name, data])\n }\n\n delete_config(tool, name) {\n return this.exec('delete_config', [tool, name])\n }\n\n get_out_of_limits() {\n return this.exec('get_out_of_limits', [])\n }\n\n get_overall_limits_state(ignored) {\n return this.exec('get_overall_limits_state', [ignored])\n }\n\n list_settings() {\n return this.exec('list_settings', [])\n }\n\n get_all_settings() {\n return this.exec('get_all_settings', [])\n }\n\n get_setting(name) {\n return this.exec('get_setting', [name])\n }\n\n get_settings(array) {\n return this.exec('get_settings', array)\n }\n\n save_setting(name, data) {\n return this.exec('save_setting', [name, data])\n }\n\n // TODO: Currently unused but seemed like a useful function\n async hashString(string) {\n if (window.isSecureContext) {\n // Encode the string as an arrayBuffer which the subtle crypto API uses\n const arrayBuffer = new TextEncoder().encode(string)\n // Use the subtle crypto API to perform a SHA256 Sum of the array buffer\n // The resulting hash is stored in an array buffer\n const hashAsArrayBuffer = await crypto.subtle.digest(\n 'SHA-256',\n arrayBuffer\n )\n // To create a string we will get the hexadecimal value of each byte of the array buffer\n // This gets us an array where each byte of the array buffer becomes one item in the array\n const uint8ViewOfHash = new Uint8Array(hashAsArrayBuffer)\n // We then convert it to a regular array so we can convert each item to hexadecimal strings\n // Where to characters of 0-9 or a-f represent a number between 0 and 16, containing 4 bits of information, so 2 of them is 8 bits (1 byte).\n return Array.from(uint8ViewOfHash)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('')\n }\n // else ?\n }\n}\n"],"names":["vueInstance","Vue","axiosInstance","axios","baseURL","location","origin","timeout","params","interceptors","response","use","error","status","OpenC3Auth","updateToken","defaultMinValidity","headers","includes","toString","Promise","reject","body","statusText","config","data","message","exception","class","$notify","serious","title","OpenC3Api","method","kwparams","headerOptions","login","this","id","window","openc3Scope","jsonrpc","keyword_params","Authorization","localStorage","openc3Token","result","err","Error","name","request","val","json_class","raw","NaN","Infinity","Number","isNaN","POSITIVE_INFINITY","NEGATIVE_INFINITY","exec","interface_name","router_name","target_commands","target","packet","item","log_writer_name","limits_set","target_name","packet_name","value_type","type","len","length","converted","i","decode_openc3_type","items","item_name","data_type","undefined","command_name","parameter_name","param_list","key","Object","prototype","hasOwnProperty","call","encode_openc3_type","_cmd","tool","ignored","array","string","isSecureContext","arrayBuffer","TextEncoder","encode","crypto","subtle","digest","hashAsArrayBuffer","uint8ViewOfHash","Uint8Array","Array","from","map","b","padStart","join"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (self["webpackChunk_openc3_tool_cmdtlmserver"]=self["webpackChunk_openc3_tool_cmdtlmserver"]||[]).push([[776],{5776:function(n,e,l){"use strict";l.r(e),l.d(e,{default:function(){return A}});l(7950),l(4908);function t(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/RoutersTab.vue",e="e68d44bb65e1aac7f2cf4e925a4c99f7c08d1e82",l=new Function("return this")(),o="__coverage__",c={path:"/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/RoutersTab.vue",statementMap:{0:{start:{line:1,column:13},end:{line:2,column:1}},1:{start:{line:1,column:39},end:{line:1,column:43}},2:{start:{line:1,column:47},end:{line:1,column:59}},3:{start:{line:1,column:60},end:{line:1,column:1018}},4:{start:{line:1,column:320},end:{line:1,column:334}},5:{start:{line:1,column:678},end:{line:1,column:873}},6:{start:{line:1,column:795},end:{line:1,column:829}},7:{start:{line:1,column:920},end:{line:1,column:1008}},8:{start:{line:3,column:22},end:{line:3,column:24}}},fnMap:{0:{name:"render",decl:{start:{line:1,column:22},end:{line:1,column:28}},loc:{start:{line:1,column:30},end:{line:2,column:1}},line:1},1:{name:"(anonymous_1)",decl:{start:{line:1,column:304},end:{line:1,column:305}},loc:{start:{line:1,column:319},end:{line:1,column:335}},line:1},2:{name:"(anonymous_2)",decl:{start:{line:1,column:659},end:{line:1,column:660}},loc:{start:{line:1,column:677},end:{line:1,column:874}},line:1},3:{name:"(anonymous_3)",decl:{start:{line:1,column:778},end:{line:1,column:779}},loc:{start:{line:1,column:794},end:{line:1,column:830}},line:1},4:{name:"(anonymous_4)",decl:{start:{line:1,column:901},end:{line:1,column:902}},loc:{start:{line:1,column:919},end:{line:1,column:1009}},line:1}},branchMap:{},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},f:{0:0,1:0,2:0,3:0,4:0},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"e68d44bb65e1aac7f2cf4e925a4c99f7c08d1e82"},i=l[o]||(l[o]={});i[n]&&i[n].hash===e||(i[n]=c);var s=i[n];return t=function(){return s},s}t(),t().s[0]++;var o=function(){t().f[0]++;var n=(t().s[1]++,this),e=(t().s[2]++,n._self._c);return t().s[3]++,e("v-card",[e("v-card-title",[n._v(" "+n._s(n.data.length)+" Routers "),e("v-spacer"),e("v-text-field",{attrs:{"append-icon":"mdi-magnify",label:"Search","single-line":"","hide-details":""},model:{value:n.search,callback:function(e){t().f[1]++,t().s[4]++,n.search=e},expression:"search"}})],1),e("v-data-table",{attrs:{headers:n.headers,items:n.data,search:n.search,"custom-sort":n.sortTable,"items-per-page":10,"footer-props":{itemsPerPageOptions:[10,20,-1]},"calculate-widths":"","multi-sort":"","data-test":"routers-table"},scopedSlots:n._u([{key:"item.connect",fn:function(l){var o=l.item;return t().f[2]++,t().s[5]++,[e("v-btn",{attrs:{block:"",color:"primary",disabled:n.buttonsDisabled},on:{click:function(e){return t().f[3]++,t().s[6]++,n.connectDisconnect(o)}}},[n._v(" "+n._s(o.connect)+" ")])]}},{key:"item.connected",fn:function(l){var o=l.item;return t().f[4]++,t().s[7]++,[e("span",{class:o.connectedClass},[n._v(" "+n._s(o.connected)+" ")])]}}])})],1)},c=(t().s[8]++,[]),i=l(4282),s=(l(1245),l(3430),l(9229));function a(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/RoutersTab.vue",e="cb4550223fcba428bbfc1d20f8658d81f23026ab",l=new Function("return this")(),t="__coverage__",o={path:"/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/RoutersTab.vue",statementMap:{0:{start:{line:11,column:4},end:{line:32,column:5}},1:{start:{line:37,column:6},end:{line:84,column:8}},2:{start:{line:38,column:8},end:{line:83,column:9}},3:{start:{line:38,column:21},end:{line:38,column:22}},4:{start:{line:39,column:23},end:{line:39,column:31}},5:{start:{line:40,column:21},end:{line:40,column:30}},6:{start:{line:42,column:10},end:{line:82,column:11}},7:{start:{line:44,column:12},end:{line:46,column:13}},8:{start:{line:45,column:14},end:{line:45,column:22}},9:{start:{line:47,column:12},end:{line:59,column:13}},10:{start:{line:48,column:14},end:{line:52,column:15}},11:{start:{line:49,column:16},end:{line:49,column:25}},12:{start:{line:51,column:16},end:{line:51,column:24}},13:{start:{line:54,column:14},end:{line:58,column:15}},14:{start:{line:55,column:16},end:{line:55,column:24}},15:{start:{line:57,column:16},end:{line:57,column:25}},16:{start:{line:60,column:17},end:{line:82,column:11}},17:{start:{line:62,column:12},end:{line:64,column:13}},18:{start:{line:63,column:14},end:{line:63,column:22}},19:{start:{line:65,column:12},end:{line:70,column:13}},20:{start:{line:67,column:14},end:{line:67,column:55}},21:{start:{line:69,column:14},end:{line:69,column:55}},22:{start:{line:73,column:12},end:{line:75,column:13}},23:{start:{line:74,column:14},end:{line:74,column:22}},24:{start:{line:76,column:12},end:{line:81,column:13}},25:{start:{line:78,column:14},end:{line:78,column:42}},26:{start:{line:80,column:14},end:{line:80,column:42}},27:{start:{line:85,column:6},end:{line:85,column:18}},28:{start:{line:88,column:6},end:{line:88,column:33}},29:{start:{line:89,column:6},end:{line:93,column:7}},30:{start:{line:90,column:8},end:{line:90,column:42}},31:{start:{line:92,column:8},end:{line:92,column:45}},32:{start:{line:96,column:6},end:{line:96,column:43}},33:{start:{line:96,column:37},end:{line:96,column:43}},34:{start:{line:97,column:6},end:{line:127,column:8}},35:{start:{line:98,column:8},end:{line:98,column:22}},36:{start:{line:99,column:8},end:{line:125,column:9}},37:{start:{line:100,column:24},end:{line:100,column:28}},38:{start:{line:101,column:31},end:{line:101,column:35}},39:{start:{line:102,column:10},end:{line:111,column:11}},40:{start:{line:103,column:12},end:{line:103,column:31}},41:{start:{line:104,column:12},end:{line:104,column:43}},42:{start:{line:105,column:17},end:{line:111,column:11}},43:{start:{line:106,column:12},end:{line:106,column:34}},44:{start:{line:107,column:12},end:{line:107,column:43}},45:{start:{line:109,column:12},end:{line:109,column:30}},46:{start:{line:110,column:12},end:{line:110,column:41}},47:{start:{line:112,column:10},end:{line:124,column:12}},48:{start:{line:126,column:8},end:{line:126,column:36}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:10,column:2},end:{line:10,column:3}},loc:{start:{line:10,column:9},end:{line:33,column:3}},line:10},1:{name:"(anonymous_1)",decl:{start:{line:36,column:4},end:{line:36,column:5}},loc:{start:{line:36,column:36},end:{line:86,column:5}},line:36},2:{name:"(anonymous_2)",decl:{start:{line:37,column:17},end:{line:37,column:18}},loc:{start:{line:37,column:27},end:{line:84,column:7}},line:37},3:{name:"(anonymous_3)",decl:{start:{line:87,column:4},end:{line:87,column:5}},loc:{start:{line:87,column:28},end:{line:94,column:5}},line:87},4:{name:"(anonymous_4)",decl:{start:{line:95,column:4},end:{line:95,column:5}},loc:{start:{line:95,column:13},end:{line:128,column:5}},line:95},5:{name:"(anonymous_5)",decl:{start:{line:97,column:42},end:{line:97,column:43}},loc:{start:{line:97,column:52},end:{line:127,column:7}},line:97}},branchMap:{0:{loc:{start:{line:42,column:10},end:{line:82,column:11}},type:"if",locations:[{start:{line:42,column:10},end:{line:82,column:11}},{start:{line:60,column:17},end:{line:82,column:11}}],line:42},1:{loc:{start:{line:44,column:12},end:{line:46,column:13}},type:"if",locations:[{start:{line:44,column:12},end:{line:46,column:13}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:44},2:{loc:{start:{line:47,column:12},end:{line:59,column:13}},type:"if",locations:[{start:{line:47,column:12},end:{line:59,column:13}},{start:{line:53,column:19},end:{line:59,column:13}}],line:47},3:{loc:{start:{line:48,column:14},end:{line:52,column:15}},type:"if",locations:[{start:{line:48,column:14},end:{line:52,column:15}},{start:{line:50,column:21},end:{line:52,column:15}}],line:48},4:{loc:{start:{line:54,column:14},end:{line:58,column:15}},type:"if",locations:[{start:{line:54,column:14},end:{line:58,column:15}},{start:{line:56,column:21},end:{line:58,column:15}}],line:54},5:{loc:{start:{line:60,column:17},end:{line:82,column:11}},type:"if",locations:[{start:{line:60,column:17},end:{line:82,column:11}},{start:{line:71,column:17},end:{line:82,column:11}}],line:60},6:{loc:{start:{line:62,column:12},end:{line:64,column:13}},type:"if",locations:[{start:{line:62,column:12},end:{line:64,column:13}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:62},7:{loc:{start:{line:65,column:12},end:{line:70,column:13}},type:"if",locations:[{start:{line:65,column:12},end:{line:70,column:13}},{start:{line:68,column:19},end:{line:70,column:13}}],line:65},8:{loc:{start:{line:73,column:12},end:{line:75,column:13}},type:"if",locations:[{start:{line:73,column:12},end:{line:75,column:13}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:73},9:{loc:{start:{line:76,column:12},end:{line:81,column:13}},type:"if",locations:[{start:{line:76,column:12},end:{line:81,column:13}},{start:{line:79,column:19},end:{line:81,column:13}}],line:76},10:{loc:{start:{line:89,column:6},end:{line:93,column:7}},type:"if",locations:[{start:{line:89,column:6},end:{line:93,column:7}},{start:{line:91,column:13},end:{line:93,column:7}}],line:89},11:{loc:{start:{line:96,column:6},end:{line:96,column:43}},type:"if",locations:[{start:{line:96,column:6},end:{line:96,column:43}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:96},12:{loc:{start:{line:102,column:10},end:{line:111,column:11}},type:"if",locations:[{start:{line:102,column:10},end:{line:111,column:11}},{start:{line:105,column:17},end:{line:111,column:11}}],line:102},13:{loc:{start:{line:105,column:17},end:{line:111,column:11}},type:"if",locations:[{start:{line:105,column:17},end:{line:111,column:11}},{start:{line:108,column:17},end:{line:111,column:11}}],line:105}},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:["RoutersTab.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:"RoutersTab.vue",sourceRoot:"src/tools/CmdTlmServer",sourcesContent:["\x3c!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n--\x3e\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Routers\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 :items-per-page=\"10\"\n :footer-props=\"{ itemsPerPageOptions: [10, 20, -1] }\"\n calculate-widths\n multi-sort\n data-test=\"routers-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 :class=\"item.connectedClass\">\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_router(item.name)\n } else {\n this.api.disconnect_router(item.name)\n }\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_router_info().then((info) => {\n this.data = [] // Clear the old data\n for (let int of info) {\n let connect = null\n let connectedClass = null\n if (int[1] == 'DISCONNECTED') {\n connect = 'Connect'\n connectedClass = 'openc3-white'\n } else if (int[1] == 'CONNECTED') {\n connect = 'Disconnect'\n connectedClass = 'openc3-green'\n } else {\n connect = 'Cancel'\n connectedClass = 'openc3-red'\n }\n this.data.push({\n name: int[0],\n connect: connect,\n connectedClass: connectedClass,\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:"cb4550223fcba428bbfc1d20f8658d81f23026ab"},c=l[t]||(l[t]={});c[n]&&c[n].hash===e||(c[n]=o);var i=c[n];return a=function(){return i},i}a();var u={mixins:[s.Z],props:{tabId:Number,curTab:Number},data:function(){return a().f[0]++,a().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 a().f[1]++,a().s[1]++,n.sort((function(n,t){a().f[2]++,a().s[2]++;for(var o=(a().s[3]++,0);o<e.length;o++){var c=(a().s[4]++,e[o]),i=(a().s[5]++,l[o]);if(a().s[6]++,"connected"===c){if(a().b[0][0]++,a().s[7]++,n[c]===t[c]){a().b[1][0]++,a().s[8]++;continue}return a().b[1][1]++,a().s[9]++,i?(a().b[2][1]++,a().s[13]++,"CONNECTED"===n[c]?(a().b[4][0]++,a().s[14]++,1):(a().b[4][1]++,a().s[15]++,-1)):(a().b[2][0]++,a().s[10]++,"CONNECTED"===n[c]?(a().b[3][0]++,a().s[11]++,-1):(a().b[3][1]++,a().s[12]++,1))}if(a().b[0][1]++,a().s[16]++,"name"===c){if(a().b[5][0]++,a().s[17]++,n[c]===t[c]){a().b[6][0]++,a().s[18]++;continue}return a().b[6][1]++,a().s[19]++,i?(a().b[7][1]++,a().s[21]++,t[c].localeCompare(n[c])):(a().b[7][0]++,a().s[20]++,n[c].localeCompare(t[c]))}if(a().b[5][1]++,a().s[22]++,n[c]!==t[c])return a().b[8][1]++,a().s[24]++,i?(a().b[9][1]++,a().s[26]++,t[c]-n[c]):(a().b[9][0]++,a().s[25]++,n[c]-t[c]);a().b[8][0]++,a().s[23]++}})),a().s[27]++,n},connectDisconnect:function(n){a().f[3]++,a().s[28]++,this.buttonsDisabled=!0,a().s[29]++,"DISCONNECTED"===n.connected?(a().b[10][0]++,a().s[30]++,this.api.connect_router(n.name)):(a().b[10][1]++,a().s[31]++,this.api.disconnect_router(n.name))},update:function(){var n=this;if(a().f[4]++,a().s[32]++,this.tabId!=this.curTab)return a().b[11][0]++,void a().s[33]++;a().b[11][1]++,a().s[34]++,this.api.get_all_router_info().then((function(e){a().f[5]++,a().s[35]++,n.data=[],a().s[36]++;var l,t=(0,i.Z)(e);try{for(t.s();!(l=t.n()).done;){var o=l.value,c=(a().s[37]++,null),s=(a().s[38]++,null);a().s[39]++,"DISCONNECTED"==o[1]?(a().b[12][0]++,a().s[40]++,c="Connect",a().s[41]++,s="openc3-white"):(a().b[12][1]++,a().s[42]++,"CONNECTED"==o[1]?(a().b[13][0]++,a().s[43]++,c="Disconnect",a().s[44]++,s="openc3-green"):(a().b[13][1]++,a().s[45]++,c="Cancel",a().s[46]++,s="openc3-red")),a().s[47]++,n.data.push({name:o[0],connect:c,connectedClass:s,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()}a().s[48]++,n.buttonsDisabled=!1}))}}},r=u,m=l(3483),d=(0,m.Z)(r,o,c,!1,null,null,null),A=d.exports},2101:function(n){n.exports=Object.is||function(n,e){return n===e?0!==n||1/n===1/e:n!=n&&e!=e}},4908:function(n,e,l){"use strict";var t=l(266),o=l(4954),c=l(1176),i=l(8885),s=l(2101),a=l(3326),u=l(5300),r=l(8115);o("search",(function(n,e,l){return[function(e){var l=i(this),o=void 0==e?void 0:u(e,n);return o?t(o,e,l):new RegExp(e)[n](a(l))},function(n){var t=c(this),o=a(n),i=l(e,t,o);if(i.done)return i.value;var u=t.lastIndex;s(u,0)||(t.lastIndex=0);var m=r(t,o);return s(t.lastIndex,u)||(t.lastIndex=u),null===m?-1:m.index}]}))},9229:function(n,e,l){"use strict";var t=l(575);function o(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/Updater.js",e="8ca17c03f396bd33b473a0b159dc210a869d62ab",l=new Function("return this")(),t="__coverage__",c={path:"/openc3/plugins/packages/openc3-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:"8ca17c03f396bd33b473a0b159dc210a869d62ab"},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.k},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)}}}},4282:function(n,e,l){"use strict";l.d(e,{Z:function(){return o}});l(4115),l(634),l(8188),l(796),l(8673),l(6886),l(1372);var t=l(7756);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}}}}}}]);
1
+ (self["webpackChunk_openc3_tool_cmdtlmserver"]=self["webpackChunk_openc3_tool_cmdtlmserver"]||[]).push([[776],{5776:function(n,e,l){"use strict";l.r(e),l.d(e,{default:function(){return A}});l(7950),l(4908);function t(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/RoutersTab.vue",e="e68d44bb65e1aac7f2cf4e925a4c99f7c08d1e82",l=new Function("return this")(),o="__coverage__",c={path:"/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/RoutersTab.vue",statementMap:{0:{start:{line:1,column:13},end:{line:2,column:1}},1:{start:{line:1,column:39},end:{line:1,column:43}},2:{start:{line:1,column:47},end:{line:1,column:59}},3:{start:{line:1,column:60},end:{line:1,column:1018}},4:{start:{line:1,column:320},end:{line:1,column:334}},5:{start:{line:1,column:678},end:{line:1,column:873}},6:{start:{line:1,column:795},end:{line:1,column:829}},7:{start:{line:1,column:920},end:{line:1,column:1008}},8:{start:{line:3,column:22},end:{line:3,column:24}}},fnMap:{0:{name:"render",decl:{start:{line:1,column:22},end:{line:1,column:28}},loc:{start:{line:1,column:30},end:{line:2,column:1}},line:1},1:{name:"(anonymous_1)",decl:{start:{line:1,column:304},end:{line:1,column:305}},loc:{start:{line:1,column:319},end:{line:1,column:335}},line:1},2:{name:"(anonymous_2)",decl:{start:{line:1,column:659},end:{line:1,column:660}},loc:{start:{line:1,column:677},end:{line:1,column:874}},line:1},3:{name:"(anonymous_3)",decl:{start:{line:1,column:778},end:{line:1,column:779}},loc:{start:{line:1,column:794},end:{line:1,column:830}},line:1},4:{name:"(anonymous_4)",decl:{start:{line:1,column:901},end:{line:1,column:902}},loc:{start:{line:1,column:919},end:{line:1,column:1009}},line:1}},branchMap:{},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},f:{0:0,1:0,2:0,3:0,4:0},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"e68d44bb65e1aac7f2cf4e925a4c99f7c08d1e82"},i=l[o]||(l[o]={});i[n]&&i[n].hash===e||(i[n]=c);var s=i[n];return t=function(){return s},s}t(),t().s[0]++;var o=function(){t().f[0]++;var n=(t().s[1]++,this),e=(t().s[2]++,n._self._c);return t().s[3]++,e("v-card",[e("v-card-title",[n._v(" "+n._s(n.data.length)+" Routers "),e("v-spacer"),e("v-text-field",{attrs:{"append-icon":"mdi-magnify",label:"Search","single-line":"","hide-details":""},model:{value:n.search,callback:function(e){t().f[1]++,t().s[4]++,n.search=e},expression:"search"}})],1),e("v-data-table",{attrs:{headers:n.headers,items:n.data,search:n.search,"custom-sort":n.sortTable,"items-per-page":10,"footer-props":{itemsPerPageOptions:[10,20,-1]},"calculate-widths":"","multi-sort":"","data-test":"routers-table"},scopedSlots:n._u([{key:"item.connect",fn:function(l){var o=l.item;return t().f[2]++,t().s[5]++,[e("v-btn",{attrs:{block:"",color:"primary",disabled:n.buttonsDisabled},on:{click:function(e){return t().f[3]++,t().s[6]++,n.connectDisconnect(o)}}},[n._v(" "+n._s(o.connect)+" ")])]}},{key:"item.connected",fn:function(l){var o=l.item;return t().f[4]++,t().s[7]++,[e("span",{class:o.connectedClass},[n._v(" "+n._s(o.connected)+" ")])]}}])})],1)},c=(t().s[8]++,[]),i=l(4282),s=(l(1245),l(3430),l(9229));function a(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/RoutersTab.vue",e="cb4550223fcba428bbfc1d20f8658d81f23026ab",l=new Function("return this")(),t="__coverage__",o={path:"/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/RoutersTab.vue",statementMap:{0:{start:{line:11,column:4},end:{line:32,column:5}},1:{start:{line:37,column:6},end:{line:84,column:8}},2:{start:{line:38,column:8},end:{line:83,column:9}},3:{start:{line:38,column:21},end:{line:38,column:22}},4:{start:{line:39,column:23},end:{line:39,column:31}},5:{start:{line:40,column:21},end:{line:40,column:30}},6:{start:{line:42,column:10},end:{line:82,column:11}},7:{start:{line:44,column:12},end:{line:46,column:13}},8:{start:{line:45,column:14},end:{line:45,column:22}},9:{start:{line:47,column:12},end:{line:59,column:13}},10:{start:{line:48,column:14},end:{line:52,column:15}},11:{start:{line:49,column:16},end:{line:49,column:25}},12:{start:{line:51,column:16},end:{line:51,column:24}},13:{start:{line:54,column:14},end:{line:58,column:15}},14:{start:{line:55,column:16},end:{line:55,column:24}},15:{start:{line:57,column:16},end:{line:57,column:25}},16:{start:{line:60,column:17},end:{line:82,column:11}},17:{start:{line:62,column:12},end:{line:64,column:13}},18:{start:{line:63,column:14},end:{line:63,column:22}},19:{start:{line:65,column:12},end:{line:70,column:13}},20:{start:{line:67,column:14},end:{line:67,column:55}},21:{start:{line:69,column:14},end:{line:69,column:55}},22:{start:{line:73,column:12},end:{line:75,column:13}},23:{start:{line:74,column:14},end:{line:74,column:22}},24:{start:{line:76,column:12},end:{line:81,column:13}},25:{start:{line:78,column:14},end:{line:78,column:42}},26:{start:{line:80,column:14},end:{line:80,column:42}},27:{start:{line:85,column:6},end:{line:85,column:18}},28:{start:{line:88,column:6},end:{line:88,column:33}},29:{start:{line:89,column:6},end:{line:93,column:7}},30:{start:{line:90,column:8},end:{line:90,column:42}},31:{start:{line:92,column:8},end:{line:92,column:45}},32:{start:{line:96,column:6},end:{line:96,column:43}},33:{start:{line:96,column:37},end:{line:96,column:43}},34:{start:{line:97,column:6},end:{line:127,column:8}},35:{start:{line:98,column:8},end:{line:98,column:22}},36:{start:{line:99,column:8},end:{line:125,column:9}},37:{start:{line:100,column:24},end:{line:100,column:28}},38:{start:{line:101,column:31},end:{line:101,column:35}},39:{start:{line:102,column:10},end:{line:111,column:11}},40:{start:{line:103,column:12},end:{line:103,column:31}},41:{start:{line:104,column:12},end:{line:104,column:43}},42:{start:{line:105,column:17},end:{line:111,column:11}},43:{start:{line:106,column:12},end:{line:106,column:34}},44:{start:{line:107,column:12},end:{line:107,column:43}},45:{start:{line:109,column:12},end:{line:109,column:30}},46:{start:{line:110,column:12},end:{line:110,column:41}},47:{start:{line:112,column:10},end:{line:124,column:12}},48:{start:{line:126,column:8},end:{line:126,column:36}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:10,column:2},end:{line:10,column:3}},loc:{start:{line:10,column:9},end:{line:33,column:3}},line:10},1:{name:"(anonymous_1)",decl:{start:{line:36,column:4},end:{line:36,column:5}},loc:{start:{line:36,column:36},end:{line:86,column:5}},line:36},2:{name:"(anonymous_2)",decl:{start:{line:37,column:17},end:{line:37,column:18}},loc:{start:{line:37,column:27},end:{line:84,column:7}},line:37},3:{name:"(anonymous_3)",decl:{start:{line:87,column:4},end:{line:87,column:5}},loc:{start:{line:87,column:28},end:{line:94,column:5}},line:87},4:{name:"(anonymous_4)",decl:{start:{line:95,column:4},end:{line:95,column:5}},loc:{start:{line:95,column:13},end:{line:128,column:5}},line:95},5:{name:"(anonymous_5)",decl:{start:{line:97,column:42},end:{line:97,column:43}},loc:{start:{line:97,column:52},end:{line:127,column:7}},line:97}},branchMap:{0:{loc:{start:{line:42,column:10},end:{line:82,column:11}},type:"if",locations:[{start:{line:42,column:10},end:{line:82,column:11}},{start:{line:60,column:17},end:{line:82,column:11}}],line:42},1:{loc:{start:{line:44,column:12},end:{line:46,column:13}},type:"if",locations:[{start:{line:44,column:12},end:{line:46,column:13}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:44},2:{loc:{start:{line:47,column:12},end:{line:59,column:13}},type:"if",locations:[{start:{line:47,column:12},end:{line:59,column:13}},{start:{line:53,column:19},end:{line:59,column:13}}],line:47},3:{loc:{start:{line:48,column:14},end:{line:52,column:15}},type:"if",locations:[{start:{line:48,column:14},end:{line:52,column:15}},{start:{line:50,column:21},end:{line:52,column:15}}],line:48},4:{loc:{start:{line:54,column:14},end:{line:58,column:15}},type:"if",locations:[{start:{line:54,column:14},end:{line:58,column:15}},{start:{line:56,column:21},end:{line:58,column:15}}],line:54},5:{loc:{start:{line:60,column:17},end:{line:82,column:11}},type:"if",locations:[{start:{line:60,column:17},end:{line:82,column:11}},{start:{line:71,column:17},end:{line:82,column:11}}],line:60},6:{loc:{start:{line:62,column:12},end:{line:64,column:13}},type:"if",locations:[{start:{line:62,column:12},end:{line:64,column:13}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:62},7:{loc:{start:{line:65,column:12},end:{line:70,column:13}},type:"if",locations:[{start:{line:65,column:12},end:{line:70,column:13}},{start:{line:68,column:19},end:{line:70,column:13}}],line:65},8:{loc:{start:{line:73,column:12},end:{line:75,column:13}},type:"if",locations:[{start:{line:73,column:12},end:{line:75,column:13}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:73},9:{loc:{start:{line:76,column:12},end:{line:81,column:13}},type:"if",locations:[{start:{line:76,column:12},end:{line:81,column:13}},{start:{line:79,column:19},end:{line:81,column:13}}],line:76},10:{loc:{start:{line:89,column:6},end:{line:93,column:7}},type:"if",locations:[{start:{line:89,column:6},end:{line:93,column:7}},{start:{line:91,column:13},end:{line:93,column:7}}],line:89},11:{loc:{start:{line:96,column:6},end:{line:96,column:43}},type:"if",locations:[{start:{line:96,column:6},end:{line:96,column:43}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:96},12:{loc:{start:{line:102,column:10},end:{line:111,column:11}},type:"if",locations:[{start:{line:102,column:10},end:{line:111,column:11}},{start:{line:105,column:17},end:{line:111,column:11}}],line:102},13:{loc:{start:{line:105,column:17},end:{line:111,column:11}},type:"if",locations:[{start:{line:105,column:17},end:{line:111,column:11}},{start:{line:108,column:17},end:{line:111,column:11}}],line:105}},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:["RoutersTab.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:"RoutersTab.vue",sourceRoot:"src/tools/CmdTlmServer",sourcesContent:["\x3c!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n--\x3e\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Routers\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 :items-per-page=\"10\"\n :footer-props=\"{ itemsPerPageOptions: [10, 20, -1] }\"\n calculate-widths\n multi-sort\n data-test=\"routers-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 :class=\"item.connectedClass\">\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_router(item.name)\n } else {\n this.api.disconnect_router(item.name)\n }\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_router_info().then((info) => {\n this.data = [] // Clear the old data\n for (let int of info) {\n let connect = null\n let connectedClass = null\n if (int[1] == 'DISCONNECTED') {\n connect = 'Connect'\n connectedClass = 'openc3-white'\n } else if (int[1] == 'CONNECTED') {\n connect = 'Disconnect'\n connectedClass = 'openc3-green'\n } else {\n connect = 'Cancel'\n connectedClass = 'openc3-red'\n }\n this.data.push({\n name: int[0],\n connect: connect,\n connectedClass: connectedClass,\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:"cb4550223fcba428bbfc1d20f8658d81f23026ab"},c=l[t]||(l[t]={});c[n]&&c[n].hash===e||(c[n]=o);var i=c[n];return a=function(){return i},i}a();var u={mixins:[s.Z],props:{tabId:Number,curTab:Number},data:function(){return a().f[0]++,a().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 a().f[1]++,a().s[1]++,n.sort((function(n,t){a().f[2]++,a().s[2]++;for(var o=(a().s[3]++,0);o<e.length;o++){var c=(a().s[4]++,e[o]),i=(a().s[5]++,l[o]);if(a().s[6]++,"connected"===c){if(a().b[0][0]++,a().s[7]++,n[c]===t[c]){a().b[1][0]++,a().s[8]++;continue}return a().b[1][1]++,a().s[9]++,i?(a().b[2][1]++,a().s[13]++,"CONNECTED"===n[c]?(a().b[4][0]++,a().s[14]++,1):(a().b[4][1]++,a().s[15]++,-1)):(a().b[2][0]++,a().s[10]++,"CONNECTED"===n[c]?(a().b[3][0]++,a().s[11]++,-1):(a().b[3][1]++,a().s[12]++,1))}if(a().b[0][1]++,a().s[16]++,"name"===c){if(a().b[5][0]++,a().s[17]++,n[c]===t[c]){a().b[6][0]++,a().s[18]++;continue}return a().b[6][1]++,a().s[19]++,i?(a().b[7][1]++,a().s[21]++,t[c].localeCompare(n[c])):(a().b[7][0]++,a().s[20]++,n[c].localeCompare(t[c]))}if(a().b[5][1]++,a().s[22]++,n[c]!==t[c])return a().b[8][1]++,a().s[24]++,i?(a().b[9][1]++,a().s[26]++,t[c]-n[c]):(a().b[9][0]++,a().s[25]++,n[c]-t[c]);a().b[8][0]++,a().s[23]++}})),a().s[27]++,n},connectDisconnect:function(n){a().f[3]++,a().s[28]++,this.buttonsDisabled=!0,a().s[29]++,"DISCONNECTED"===n.connected?(a().b[10][0]++,a().s[30]++,this.api.connect_router(n.name)):(a().b[10][1]++,a().s[31]++,this.api.disconnect_router(n.name))},update:function(){var n=this;if(a().f[4]++,a().s[32]++,this.tabId!=this.curTab)return a().b[11][0]++,void a().s[33]++;a().b[11][1]++,a().s[34]++,this.api.get_all_router_info().then((function(e){a().f[5]++,a().s[35]++,n.data=[],a().s[36]++;var l,t=(0,i.Z)(e);try{for(t.s();!(l=t.n()).done;){var o=l.value,c=(a().s[37]++,null),s=(a().s[38]++,null);a().s[39]++,"DISCONNECTED"==o[1]?(a().b[12][0]++,a().s[40]++,c="Connect",a().s[41]++,s="openc3-white"):(a().b[12][1]++,a().s[42]++,"CONNECTED"==o[1]?(a().b[13][0]++,a().s[43]++,c="Disconnect",a().s[44]++,s="openc3-green"):(a().b[13][1]++,a().s[45]++,c="Cancel",a().s[46]++,s="openc3-red")),a().s[47]++,n.data.push({name:o[0],connect:c,connectedClass:s,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()}a().s[48]++,n.buttonsDisabled=!1}))}}},r=u,m=l(3483),d=(0,m.Z)(r,o,c,!1,null,null,null),A=d.exports},2101:function(n){n.exports=Object.is||function(n,e){return n===e?0!==n||1/n===1/e:n!=n&&e!=e}},4908:function(n,e,l){"use strict";var t=l(266),o=l(4954),c=l(1176),i=l(9650),s=l(8885),a=l(2101),u=l(3326),r=l(5300),m=l(8115);o("search",(function(n,e,l){return[function(e){var l=s(this),o=i(e)?void 0:r(e,n);return o?t(o,e,l):new RegExp(e)[n](u(l))},function(n){var t=c(this),o=u(n),i=l(e,t,o);if(i.done)return i.value;var s=t.lastIndex;a(s,0)||(t.lastIndex=0);var r=m(t,o);return a(t.lastIndex,s)||(t.lastIndex=s),null===r?-1:r.index}]}))},9229:function(n,e,l){"use strict";var t=l(575);function o(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/Updater.js",e="8ca17c03f396bd33b473a0b159dc210a869d62ab",l=new Function("return this")(),t="__coverage__",c={path:"/openc3/plugins/packages/openc3-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:"8ca17c03f396bd33b473a0b159dc210a869d62ab"},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.k},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)}}}},4282:function(n,e,l){"use strict";l.d(e,{Z:function(){return o}});l(4115),l(634),l(8188),l(796),l(8673),l(6886),l(1372);var t=l(7756);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
2
  //# sourceMappingURL=776.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"js/776.js","mappings":"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","sources":["webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/RoutersTab.vue","webpack://@openc3/tool-cmdtlmserver/src/tools/CmdTlmServer/RoutersTab.vue","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/RoutersTab.vue?a653","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/RoutersTab.vue?a9bb","webpack://@openc3/tool-cmdtlmserver/../../node_modules/core-js/internals/same-value.js","webpack://@openc3/tool-cmdtlmserver/../../node_modules/core-js/modules/es.string.search.js","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/Updater.js","webpack://@openc3/tool-cmdtlmserver/../../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.data.length)+\" Routers \"),_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,\"items-per-page\":10,\"footer-props\":{ itemsPerPageOptions: [10, 20, -1] },\"calculate-widths\":\"\",\"multi-sort\":\"\",\"data-test\":\"routers-table\"},scopedSlots:_vm._u([{key:\"item.connect\",fn:function({ item }){return [_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({ item }){return [_c('span',{class:item.connectedClass},[_vm._v(\" \"+_vm._s(item.connected)+\" \")])]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Routers\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 :items-per-page=\"10\"\n :footer-props=\"{ itemsPerPageOptions: [10, 20, -1] }\"\n calculate-widths\n multi-sort\n data-test=\"routers-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 :class=\"item.connectedClass\">\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_router(item.name)\n } else {\n this.api.disconnect_router(item.name)\n }\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_router_info().then((info) => {\n this.data = [] // Clear the old data\n for (let int of info) {\n let connect = null\n let connectedClass = null\n if (int[1] == 'DISCONNECTED') {\n connect = 'Connect'\n connectedClass = 'openc3-white'\n } else if (int[1] == 'CONNECTED') {\n connect = 'Disconnect'\n connectedClass = 'openc3-green'\n } else {\n connect = 'Cancel'\n connectedClass = 'openc3-red'\n }\n this.data.push({\n name: int[0],\n connect: connect,\n connectedClass: connectedClass,\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/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoutersTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoutersTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoutersTab.vue?vue&type=template&id=1b755185&\"\nimport script from \"./RoutersTab.vue?vue&type=script&lang=js&\"\nexport * from \"./RoutersTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es-x/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-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 OpenC3Api()\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","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":["render","_vm","this","_c","_self","_v","_s","data","length","attrs","model","value","search","callback","$$v","expression","headers","sortTable","itemsPerPageOptions","scopedSlots","_u","key","fn","item","buttonsDisabled","on","$event","connectDisconnect","connect","class","connectedClass","connected","staticRenderFns","mixins","props","tabId","curTab","text","sortable","filterable","methods","items","index","isDesc","update","info","name","clients","tx_q_size","rx_q_size","tx_bytes","rx_bytes","cmd_pkts","tlm_pkts","component","module","exports","Object","is","x","y","call","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","toString","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","undefined","RegExp","string","rx","S","res","done","previousLastIndex","lastIndex","result","refreshInterval","default","updater","api","created","OpenC3Api","mounted","changeUpdater","beforeDestroy","clearInterval","watch","newVal","oldVal","setInterval","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","unsupportedIterableToArray","i","F","s","n","e","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2"],"sourceRoot":""}
1
+ {"version":3,"file":"js/776.js","mappings":"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","sources":["webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/RoutersTab.vue","webpack://@openc3/tool-cmdtlmserver/src/tools/CmdTlmServer/RoutersTab.vue","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/RoutersTab.vue?a653","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/RoutersTab.vue?a9bb","webpack://@openc3/tool-cmdtlmserver/../../node_modules/core-js/internals/same-value.js","webpack://@openc3/tool-cmdtlmserver/../../node_modules/core-js/modules/es.string.search.js","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/Updater.js","webpack://@openc3/tool-cmdtlmserver/../../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.data.length)+\" Routers \"),_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,\"items-per-page\":10,\"footer-props\":{ itemsPerPageOptions: [10, 20, -1] },\"calculate-widths\":\"\",\"multi-sort\":\"\",\"data-test\":\"routers-table\"},scopedSlots:_vm._u([{key:\"item.connect\",fn:function({ item }){return [_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({ item }){return [_c('span',{class:item.connectedClass},[_vm._v(\" \"+_vm._s(item.connected)+\" \")])]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Routers\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 :items-per-page=\"10\"\n :footer-props=\"{ itemsPerPageOptions: [10, 20, -1] }\"\n calculate-widths\n multi-sort\n data-test=\"routers-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 :class=\"item.connectedClass\">\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_router(item.name)\n } else {\n this.api.disconnect_router(item.name)\n }\n },\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_router_info().then((info) => {\n this.data = [] // Clear the old data\n for (let int of info) {\n let connect = null\n let connectedClass = null\n if (int[1] == 'DISCONNECTED') {\n connect = 'Connect'\n connectedClass = 'openc3-white'\n } else if (int[1] == 'CONNECTED') {\n connect = 'Disconnect'\n connectedClass = 'openc3-green'\n } else {\n connect = 'Cancel'\n connectedClass = 'openc3-red'\n }\n this.data.push({\n name: int[0],\n connect: connect,\n connectedClass: connectedClass,\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/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoutersTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoutersTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoutersTab.vue?vue&type=template&id=1b755185&\"\nimport script from \"./RoutersTab.vue?vue&type=script&lang=js&\"\nexport * from \"./RoutersTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es-x/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-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 OpenC3Api()\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","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":["render","_vm","this","_c","_self","_v","_s","data","length","attrs","model","value","search","callback","$$v","expression","headers","sortTable","itemsPerPageOptions","scopedSlots","_u","key","fn","item","buttonsDisabled","on","$event","connectDisconnect","connect","class","connectedClass","connected","staticRenderFns","mixins","props","tabId","curTab","text","sortable","filterable","methods","items","index","isDesc","update","info","name","clients","tx_q_size","rx_q_size","tx_bytes","rx_bytes","cmd_pkts","tlm_pkts","component","module","exports","Object","is","x","y","call","fixRegExpWellKnownSymbolLogic","anObject","isNullOrUndefined","requireObjectCoercible","sameValue","toString","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","undefined","RegExp","string","rx","S","res","done","previousLastIndex","lastIndex","result","refreshInterval","default","updater","api","created","OpenC3Api","mounted","changeUpdater","beforeDestroy","clearInterval","watch","newVal","oldVal","setInterval","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","unsupportedIterableToArray","i","F","s","n","e","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (self["webpackChunk_openc3_tool_cmdtlmserver"]=self["webpackChunk_openc3_tool_cmdtlmserver"]||[]).push([[856],{1856:function(n,e,t){"use strict";t.r(e),t.d(e,{default:function(){return f}});t(7950),t(4908);function l(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/TargetsTab.vue",e="3a3b2d2ad80c32d2a5928942587ba6e3db26304a",t=new Function("return this")(),a="__coverage__",o={path:"/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/TargetsTab.vue",statementMap:{0:{start:{line:1,column:13},end:{line:2,column:1}},1:{start:{line:1,column:39},end:{line:1,column:43}},2:{start:{line:1,column:47},end:{line:1,column:59}},3:{start:{line:1,column:60},end:{line:1,column:593}},4:{start:{line:1,column:320},end:{line:1,column:334}},5:{start:{line:3,column:22},end:{line:3,column:24}}},fnMap:{0:{name:"render",decl:{start:{line:1,column:22},end:{line:1,column:28}},loc:{start:{line:1,column:30},end:{line:2,column:1}},line:1},1:{name:"(anonymous_1)",decl:{start:{line:1,column:304},end:{line:1,column:305}},loc:{start:{line:1,column:319},end:{line:1,column:335}},line:1}},branchMap:{},s:{0:0,1:0,2:0,3:0,4:0,5:0},f:{0:0,1:0},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"3a3b2d2ad80c32d2a5928942587ba6e3db26304a"},r=t[a]||(t[a]={});r[n]&&r[n].hash===e||(r[n]=o);var i=r[n];return l=function(){return i},i}l(),l().s[0]++;var a=function(){l().f[0]++;var n=(l().s[1]++,this),e=(l().s[2]++,n._self._c);return l().s[3]++,e("v-card",[e("v-card-title",[n._v(" "+n._s(n.data.length)+" Targets "),e("v-spacer"),e("v-text-field",{attrs:{"append-icon":"mdi-magnify",label:"Search","single-line":"","hide-details":""},model:{value:n.search,callback:function(e){l().f[1]++,l().s[4]++,n.search=e},expression:"search"}})],1),e("v-data-table",{attrs:{headers:n.headers,items:n.data,search:n.search,"items-per-page":10,"footer-props":{itemsPerPageOptions:[10,20,-1]},"calculate-widths":"","multi-sort":"","data-test":"targets-table"}})],1)},o=(l().s[5]++,[]),r=t(4282),i=(t(1245),t(9229));function c(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/TargetsTab.vue",e="126a3f3240ef4d7de0259149b28a50d3da015394",t=new Function("return this")(),l="__coverage__",a={path:"/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/TargetsTab.vue",statementMap:{0:{start:{line:11,column:4},end:{line:20,column:5}},1:{start:{line:24,column:6},end:{line:24,column:43}},2:{start:{line:24,column:37},end:{line:24,column:43}},3:{start:{line:25,column:6},end:{line:35,column:8}},4:{start:{line:26,column:8},end:{line:26,column:22}},5:{start:{line:27,column:8},end:{line:34,column:9}},6:{start:{line:28,column:10},end:{line:33,column:12}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:10,column:2},end:{line:10,column:3}},loc:{start:{line:10,column:9},end:{line:21,column:3}},line:10},1:{name:"(anonymous_1)",decl:{start:{line:23,column:4},end:{line:23,column:5}},loc:{start:{line:23,column:13},end:{line:36,column:5}},line:23},2:{name:"(anonymous_2)",decl:{start:{line:25,column:42},end:{line:25,column:43}},loc:{start:{line:25,column:52},end:{line:35,column:7}},line:25}},branchMap:{0:{loc:{start:{line:24,column:6},end:{line:24,column:43}},type:"if",locations:[{start:{line:24,column:6},end:{line:24,column:43}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:24}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0},f:{0:0,1:0,2:0},b:{0:[0,0]},inputSourceMap:{version:3,sources:["TargetsTab.vue"],names:[],mappings:";AA8CA;;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",file:"TargetsTab.vue",sourceRoot:"src/tools/CmdTlmServer",sourcesContent:["\x3c!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n--\x3e\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Targets\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n append-icon=\"mdi-magnify\"\n label=\"Search\"\n single-line\n hide-details\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"data\"\n :search=\"search\"\n :items-per-page=\"10\"\n :footer-props=\"{ itemsPerPageOptions: [10, 20, -1] }\"\n calculate-widths\n multi-sort\n data-test=\"targets-table\"\n />\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 headers: [\n { text: 'Target Name', value: 'name' },\n { text: 'Interface', value: 'interface' },\n { text: 'Command Count', value: 'cmd_count' },\n { text: 'Telemetry Count', value: 'tlm_count' },\n ],\n }\n },\n methods: {\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_target_info().then((info) => {\n this.data = []\n for (let x of info) {\n this.data.push({\n name: x[0],\n interface: x[1],\n cmd_count: x[2],\n tlm_count: x[3],\n })\n }\n })\n },\n },\n}\n<\/script>\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"126a3f3240ef4d7de0259149b28a50d3da015394"},o=t[l]||(t[l]={});o[n]&&o[n].hash===e||(o[n]=a);var r=o[n];return c=function(){return r},r}c();var s={mixins:[i.Z],props:{tabId:Number,curTab:Number},data:function(){return c().f[0]++,c().s[0]++,{search:"",data:[],headers:[{text:"Target Name",value:"name"},{text:"Interface",value:"interface"},{text:"Command Count",value:"cmd_count"},{text:"Telemetry Count",value:"tlm_count"}]}},methods:{update:function(){var n=this;if(c().f[1]++,c().s[1]++,this.tabId!=this.curTab)return c().b[0][0]++,void c().s[2]++;c().b[0][1]++,c().s[3]++,this.api.get_all_target_info().then((function(e){c().f[2]++,c().s[4]++,n.data=[],c().s[5]++;var t,l=(0,r.Z)(e);try{for(l.s();!(t=l.n()).done;){var a=t.value;c().s[6]++,n.data.push({name:a[0],interface:a[1],cmd_count:a[2],tlm_count:a[3]})}}catch(o){l.e(o)}finally{l.f()}}))}}},u=s,d=t(3483),m=(0,d.Z)(u,a,o,!1,null,null,null),f=m.exports},2101:function(n){n.exports=Object.is||function(n,e){return n===e?0!==n||1/n===1/e:n!=n&&e!=e}},4908:function(n,e,t){"use strict";var l=t(266),a=t(4954),o=t(1176),r=t(8885),i=t(2101),c=t(3326),s=t(5300),u=t(8115);a("search",(function(n,e,t){return[function(e){var t=r(this),a=void 0==e?void 0:s(e,n);return a?l(a,e,t):new RegExp(e)[n](c(t))},function(n){var l=o(this),a=c(n),r=t(e,l,a);if(r.done)return r.value;var s=l.lastIndex;i(s,0)||(l.lastIndex=0);var d=u(l,a);return i(l.lastIndex,s)||(l.lastIndex=s),null===d?-1:d.index}]}))},9229:function(n,e,t){"use strict";var l=t(575);function a(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/Updater.js",e="8ca17c03f396bd33b473a0b159dc210a869d62ab",t=new Function("return this")(),l="__coverage__",o={path:"/openc3/plugins/packages/openc3-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:"8ca17c03f396bd33b473a0b159dc210a869d62ab"},r=t[l]||(t[l]={});r[n]&&r[n].hash===e||(r[n]=o);var i=r[n];return a=function(){return i},i}a(),e["Z"]={props:{refreshInterval:{default:1e3}},data:function(){return a().f[0]++,a().s[0]++,{updater:null,api:null}},created:function(){a().f[1]++,a().s[1]++,this.api=new l.k},mounted:function(){a().f[2]++,a().s[2]++,this.changeUpdater()},beforeDestroy:function(){a().f[3]++,a().s[3]++,null!=this.updater?(a().b[0][0]++,a().s[4]++,clearInterval(this.updater),a().s[5]++,this.updater=null):a().b[0][1]++},watch:{refreshInterval:function(n,e){a().f[4]++,a().s[6]++,this.changeUpdater()}},methods:{changeUpdater:function(){var n=this;a().f[5]++,a().s[7]++,null!=this.updater?(a().b[1][0]++,a().s[8]++,clearInterval(this.updater),a().s[9]++,this.updater=null):a().b[1][1]++,a().s[10]++,this.updater=setInterval((function(){a().f[6]++,a().s[11]++,n.update()}),this.refreshInterval)}}}},4282:function(n,e,t){"use strict";t.d(e,{Z:function(){return a}});t(4115),t(634),t(8188),t(796),t(8673),t(6886),t(1372);var l=t(7756);function a(n,e){var t="undefined"!==typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!t){if(Array.isArray(n)||(t=(0,l.Z)(n))||e&&n&&"number"===typeof n.length){t&&(n=t);var a=0,o=function(){};return{s:o,n:function(){return a>=n.length?{done:!0}:{done:!1,value:n[a++]}},e:function(n){throw n},f:o}}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 r,i=!0,c=!1;return{s:function(){t=t.call(n)},n:function(){var n=t.next();return i=n.done,n},e:function(n){c=!0,r=n},f:function(){try{i||null==t["return"]||t["return"]()}finally{if(c)throw r}}}}}}]);
1
+ (self["webpackChunk_openc3_tool_cmdtlmserver"]=self["webpackChunk_openc3_tool_cmdtlmserver"]||[]).push([[856],{1856:function(n,e,t){"use strict";t.r(e),t.d(e,{default:function(){return f}});t(7950),t(4908);function l(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/TargetsTab.vue",e="3a3b2d2ad80c32d2a5928942587ba6e3db26304a",t=new Function("return this")(),a="__coverage__",o={path:"/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/TargetsTab.vue",statementMap:{0:{start:{line:1,column:13},end:{line:2,column:1}},1:{start:{line:1,column:39},end:{line:1,column:43}},2:{start:{line:1,column:47},end:{line:1,column:59}},3:{start:{line:1,column:60},end:{line:1,column:593}},4:{start:{line:1,column:320},end:{line:1,column:334}},5:{start:{line:3,column:22},end:{line:3,column:24}}},fnMap:{0:{name:"render",decl:{start:{line:1,column:22},end:{line:1,column:28}},loc:{start:{line:1,column:30},end:{line:2,column:1}},line:1},1:{name:"(anonymous_1)",decl:{start:{line:1,column:304},end:{line:1,column:305}},loc:{start:{line:1,column:319},end:{line:1,column:335}},line:1}},branchMap:{},s:{0:0,1:0,2:0,3:0,4:0,5:0},f:{0:0,1:0},b:{},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"3a3b2d2ad80c32d2a5928942587ba6e3db26304a"},r=t[a]||(t[a]={});r[n]&&r[n].hash===e||(r[n]=o);var c=r[n];return l=function(){return c},c}l(),l().s[0]++;var a=function(){l().f[0]++;var n=(l().s[1]++,this),e=(l().s[2]++,n._self._c);return l().s[3]++,e("v-card",[e("v-card-title",[n._v(" "+n._s(n.data.length)+" Targets "),e("v-spacer"),e("v-text-field",{attrs:{"append-icon":"mdi-magnify",label:"Search","single-line":"","hide-details":""},model:{value:n.search,callback:function(e){l().f[1]++,l().s[4]++,n.search=e},expression:"search"}})],1),e("v-data-table",{attrs:{headers:n.headers,items:n.data,search:n.search,"items-per-page":10,"footer-props":{itemsPerPageOptions:[10,20,-1]},"calculate-widths":"","multi-sort":"","data-test":"targets-table"}})],1)},o=(l().s[5]++,[]),r=t(4282),c=(t(1245),t(9229));function i(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/TargetsTab.vue",e="126a3f3240ef4d7de0259149b28a50d3da015394",t=new Function("return this")(),l="__coverage__",a={path:"/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/TargetsTab.vue",statementMap:{0:{start:{line:11,column:4},end:{line:20,column:5}},1:{start:{line:24,column:6},end:{line:24,column:43}},2:{start:{line:24,column:37},end:{line:24,column:43}},3:{start:{line:25,column:6},end:{line:35,column:8}},4:{start:{line:26,column:8},end:{line:26,column:22}},5:{start:{line:27,column:8},end:{line:34,column:9}},6:{start:{line:28,column:10},end:{line:33,column:12}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:10,column:2},end:{line:10,column:3}},loc:{start:{line:10,column:9},end:{line:21,column:3}},line:10},1:{name:"(anonymous_1)",decl:{start:{line:23,column:4},end:{line:23,column:5}},loc:{start:{line:23,column:13},end:{line:36,column:5}},line:23},2:{name:"(anonymous_2)",decl:{start:{line:25,column:42},end:{line:25,column:43}},loc:{start:{line:25,column:52},end:{line:35,column:7}},line:25}},branchMap:{0:{loc:{start:{line:24,column:6},end:{line:24,column:43}},type:"if",locations:[{start:{line:24,column:6},end:{line:24,column:43}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:24}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0},f:{0:0,1:0,2:0},b:{0:[0,0]},inputSourceMap:{version:3,sources:["TargetsTab.vue"],names:[],mappings:";AA8CA;;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",file:"TargetsTab.vue",sourceRoot:"src/tools/CmdTlmServer",sourcesContent:["\x3c!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n--\x3e\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Targets\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n append-icon=\"mdi-magnify\"\n label=\"Search\"\n single-line\n hide-details\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"data\"\n :search=\"search\"\n :items-per-page=\"10\"\n :footer-props=\"{ itemsPerPageOptions: [10, 20, -1] }\"\n calculate-widths\n multi-sort\n data-test=\"targets-table\"\n />\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 headers: [\n { text: 'Target Name', value: 'name' },\n { text: 'Interface', value: 'interface' },\n { text: 'Command Count', value: 'cmd_count' },\n { text: 'Telemetry Count', value: 'tlm_count' },\n ],\n }\n },\n methods: {\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_target_info().then((info) => {\n this.data = []\n for (let x of info) {\n this.data.push({\n name: x[0],\n interface: x[1],\n cmd_count: x[2],\n tlm_count: x[3],\n })\n }\n })\n },\n },\n}\n<\/script>\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"126a3f3240ef4d7de0259149b28a50d3da015394"},o=t[l]||(t[l]={});o[n]&&o[n].hash===e||(o[n]=a);var r=o[n];return i=function(){return r},r}i();var s={mixins:[c.Z],props:{tabId:Number,curTab:Number},data:function(){return i().f[0]++,i().s[0]++,{search:"",data:[],headers:[{text:"Target Name",value:"name"},{text:"Interface",value:"interface"},{text:"Command Count",value:"cmd_count"},{text:"Telemetry Count",value:"tlm_count"}]}},methods:{update:function(){var n=this;if(i().f[1]++,i().s[1]++,this.tabId!=this.curTab)return i().b[0][0]++,void i().s[2]++;i().b[0][1]++,i().s[3]++,this.api.get_all_target_info().then((function(e){i().f[2]++,i().s[4]++,n.data=[],i().s[5]++;var t,l=(0,r.Z)(e);try{for(l.s();!(t=l.n()).done;){var a=t.value;i().s[6]++,n.data.push({name:a[0],interface:a[1],cmd_count:a[2],tlm_count:a[3]})}}catch(o){l.e(o)}finally{l.f()}}))}}},u=s,d=t(3483),m=(0,d.Z)(u,a,o,!1,null,null,null),f=m.exports},2101:function(n){n.exports=Object.is||function(n,e){return n===e?0!==n||1/n===1/e:n!=n&&e!=e}},4908:function(n,e,t){"use strict";var l=t(266),a=t(4954),o=t(1176),r=t(9650),c=t(8885),i=t(2101),s=t(3326),u=t(5300),d=t(8115);a("search",(function(n,e,t){return[function(e){var t=c(this),a=r(e)?void 0:u(e,n);return a?l(a,e,t):new RegExp(e)[n](s(t))},function(n){var l=o(this),a=s(n),r=t(e,l,a);if(r.done)return r.value;var c=l.lastIndex;i(c,0)||(l.lastIndex=0);var u=d(l,a);return i(l.lastIndex,c)||(l.lastIndex=c),null===u?-1:u.index}]}))},9229:function(n,e,t){"use strict";var l=t(575);function a(){var n="/openc3/plugins/packages/openc3-tool-cmdtlmserver/src/tools/CmdTlmServer/Updater.js",e="8ca17c03f396bd33b473a0b159dc210a869d62ab",t=new Function("return this")(),l="__coverage__",o={path:"/openc3/plugins/packages/openc3-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:"8ca17c03f396bd33b473a0b159dc210a869d62ab"},r=t[l]||(t[l]={});r[n]&&r[n].hash===e||(r[n]=o);var c=r[n];return a=function(){return c},c}a(),e["Z"]={props:{refreshInterval:{default:1e3}},data:function(){return a().f[0]++,a().s[0]++,{updater:null,api:null}},created:function(){a().f[1]++,a().s[1]++,this.api=new l.k},mounted:function(){a().f[2]++,a().s[2]++,this.changeUpdater()},beforeDestroy:function(){a().f[3]++,a().s[3]++,null!=this.updater?(a().b[0][0]++,a().s[4]++,clearInterval(this.updater),a().s[5]++,this.updater=null):a().b[0][1]++},watch:{refreshInterval:function(n,e){a().f[4]++,a().s[6]++,this.changeUpdater()}},methods:{changeUpdater:function(){var n=this;a().f[5]++,a().s[7]++,null!=this.updater?(a().b[1][0]++,a().s[8]++,clearInterval(this.updater),a().s[9]++,this.updater=null):a().b[1][1]++,a().s[10]++,this.updater=setInterval((function(){a().f[6]++,a().s[11]++,n.update()}),this.refreshInterval)}}}},4282:function(n,e,t){"use strict";t.d(e,{Z:function(){return a}});t(4115),t(634),t(8188),t(796),t(8673),t(6886),t(1372);var l=t(7756);function a(n,e){var t="undefined"!==typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!t){if(Array.isArray(n)||(t=(0,l.Z)(n))||e&&n&&"number"===typeof n.length){t&&(n=t);var a=0,o=function(){};return{s:o,n:function(){return a>=n.length?{done:!0}:{done:!1,value:n[a++]}},e:function(n){throw n},f:o}}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 r,c=!0,i=!1;return{s:function(){t=t.call(n)},n:function(){var n=t.next();return c=n.done,n},e:function(n){i=!0,r=n},f:function(){try{c||null==t["return"]||t["return"]()}finally{if(i)throw r}}}}}}]);
2
2
  //# sourceMappingURL=856.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"js/856.js","mappings":"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","sources":["webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/TargetsTab.vue","webpack://@openc3/tool-cmdtlmserver/src/tools/CmdTlmServer/TargetsTab.vue","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/TargetsTab.vue?ed66","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/TargetsTab.vue?3388","webpack://@openc3/tool-cmdtlmserver/../../node_modules/core-js/internals/same-value.js","webpack://@openc3/tool-cmdtlmserver/../../node_modules/core-js/modules/es.string.search.js","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/Updater.js","webpack://@openc3/tool-cmdtlmserver/../../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.data.length)+\" Targets \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"mdi-magnify\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.data,\"search\":_vm.search,\"items-per-page\":10,\"footer-props\":{ itemsPerPageOptions: [10, 20, -1] },\"calculate-widths\":\"\",\"multi-sort\":\"\",\"data-test\":\"targets-table\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Targets\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n append-icon=\"mdi-magnify\"\n label=\"Search\"\n single-line\n hide-details\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"data\"\n :search=\"search\"\n :items-per-page=\"10\"\n :footer-props=\"{ itemsPerPageOptions: [10, 20, -1] }\"\n calculate-widths\n multi-sort\n data-test=\"targets-table\"\n />\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 headers: [\n { text: 'Target Name', value: 'name' },\n { text: 'Interface', value: 'interface' },\n { text: 'Command Count', value: 'cmd_count' },\n { text: 'Telemetry Count', value: 'tlm_count' },\n ],\n }\n },\n methods: {\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_target_info().then((info) => {\n this.data = []\n for (let x of info) {\n this.data.push({\n name: x[0],\n interface: x[1],\n cmd_count: x[2],\n tlm_count: x[3],\n })\n }\n })\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TargetsTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TargetsTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TargetsTab.vue?vue&type=template&id=3045d39a&\"\nimport script from \"./TargetsTab.vue?vue&type=script&lang=js&\"\nexport * from \"./TargetsTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es-x/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-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 OpenC3Api()\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","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":["render","_vm","this","_c","_self","_v","_s","data","length","attrs","model","value","search","callback","$$v","expression","headers","itemsPerPageOptions","staticRenderFns","mixins","props","tabId","curTab","text","methods","update","info","name","interface","cmd_count","tlm_count","component","module","exports","Object","is","x","y","call","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","toString","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","undefined","RegExp","string","rx","S","res","done","previousLastIndex","lastIndex","result","index","refreshInterval","default","updater","api","created","OpenC3Api","mounted","changeUpdater","beforeDestroy","clearInterval","watch","newVal","oldVal","setInterval","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","unsupportedIterableToArray","i","F","s","n","e","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2"],"sourceRoot":""}
1
+ {"version":3,"file":"js/856.js","mappings":"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","sources":["webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/TargetsTab.vue","webpack://@openc3/tool-cmdtlmserver/src/tools/CmdTlmServer/TargetsTab.vue","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/TargetsTab.vue?ed66","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/TargetsTab.vue?3388","webpack://@openc3/tool-cmdtlmserver/../../node_modules/core-js/internals/same-value.js","webpack://@openc3/tool-cmdtlmserver/../../node_modules/core-js/modules/es.string.search.js","webpack://@openc3/tool-cmdtlmserver/./src/tools/CmdTlmServer/Updater.js","webpack://@openc3/tool-cmdtlmserver/../../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.data.length)+\" Targets \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"mdi-magnify\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.data,\"search\":_vm.search,\"items-per-page\":10,\"footer-props\":{ itemsPerPageOptions: [10, 20, -1] },\"calculate-widths\":\"\",\"multi-sort\":\"\",\"data-test\":\"targets-table\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\n\n<template>\n <v-card>\n <v-card-title>\n {{ data.length }} Targets\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n append-icon=\"mdi-magnify\"\n label=\"Search\"\n single-line\n hide-details\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"data\"\n :search=\"search\"\n :items-per-page=\"10\"\n :footer-props=\"{ itemsPerPageOptions: [10, 20, -1] }\"\n calculate-widths\n multi-sort\n data-test=\"targets-table\"\n />\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 headers: [\n { text: 'Target Name', value: 'name' },\n { text: 'Interface', value: 'interface' },\n { text: 'Command Count', value: 'cmd_count' },\n { text: 'Telemetry Count', value: 'tlm_count' },\n ],\n }\n },\n methods: {\n update() {\n if (this.tabId != this.curTab) return\n this.api.get_all_target_info().then((info) => {\n this.data = []\n for (let x of info) {\n this.data.push({\n name: x[0],\n interface: x[1],\n cmd_count: x[2],\n tlm_count: x[3],\n })\n }\n })\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TargetsTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TargetsTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TargetsTab.vue?vue&type=template&id=3045d39a&\"\nimport script from \"./TargetsTab.vue?vue&type=script&lang=js&\"\nexport * from \"./TargetsTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es-x/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-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 OpenC3Api()\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","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":["render","_vm","this","_c","_self","_v","_s","data","length","attrs","model","value","search","callback","$$v","expression","headers","itemsPerPageOptions","staticRenderFns","mixins","props","tabId","curTab","text","methods","update","info","name","interface","cmd_count","tlm_count","component","module","exports","Object","is","x","y","call","fixRegExpWellKnownSymbolLogic","anObject","isNullOrUndefined","requireObjectCoercible","sameValue","toString","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","undefined","RegExp","string","rx","S","res","done","previousLastIndex","lastIndex","result","index","refreshInterval","default","updater","api","created","OpenC3Api","mounted","changeUpdater","beforeDestroy","clearInterval","watch","newVal","oldVal","setInterval","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","unsupportedIterableToArray","i","F","s","n","e","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2"],"sourceRoot":""}