openc3-cosmos-tool-tablemanager 5.4.2 → 5.4.3.pre.beta0.20230214173559
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/tools/tablemanager/js/435.js +1 -1
- data/tools/tablemanager/js/435.js.map +1 -1
- data/tools/tablemanager/js/496.js +4 -0
- data/tools/tablemanager/js/496.js.map +1 -0
- data/tools/tablemanager/js/app.js +1 -1
- data/tools/tablemanager/js/app.js.map +1 -1
- metadata +6 -6
- data/tools/tablemanager/js/807.js +0 -4
- data/tools/tablemanager/js/807.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"js/435.js","mappings":"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","sources":["webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableManager.vue","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/services/axios.js","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/services/api.js","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/services/openc3-api.js","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/TopBar.vue","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/TopBar.vue?95da","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/TopBar.vue?a437","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableRow.vue","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableItem.vue","webpack://@openc3/cosmos-tool-tablemanager/src/tools/TableManager/TableItem.vue","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableItem.vue?6242","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableItem.vue?f5aa","webpack://@openc3/cosmos-tool-tablemanager/src/tools/TableManager/TableRow.vue","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableRow.vue?890d","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableRow.vue?1698","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/FileOpenSaveDialog.vue","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/FileOpenSaveDialog.vue?14dd","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/FileOpenSaveDialog.vue?07a6","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/SimpleTextDialog.vue","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/SimpleTextDialog.vue?e067","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/SimpleTextDialog.vue?5fff","webpack://@openc3/cosmos-tool-tablemanager/src/tools/TableManager/TableManager.vue","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableManager.vue?c671","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableManager.vue?b261","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/TopBar.vue?386c","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/TopBar.vue?9efc"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('top-bar',{attrs:{\"menus\":_vm.menus,\"title\":_vm.title}}),_c('v-snackbar',{attrs:{\"top\":\"\",\"timeout\":-1,\"color\":\"orange\"},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"text\":\"\",\"color\":\"danger\",\"data-test\":\"unlock-button\"},on:{\"click\":_vm.confirmLocalUnlock}},'v-btn',attrs,false),[_vm._v(\" Unlock \")]),_c('v-btn',_vm._b({attrs:{\"text\":\"\"},on:{\"click\":() => {\n _vm.showReadOnlyToast = false\n }}},'v-btn',attrs,false),[_vm._v(\" dismiss \")])]}}]),model:{value:(_vm.showReadOnlyToast),callback:function ($$v) {_vm.showReadOnlyToast=$$v},expression:\"showReadOnlyToast\"}},[_c('v-icon',[_vm._v(\" mdi-pencil-off \")]),_vm._v(\" \"+_vm._s(_vm.lockedBy)+\" is editing this script. Editor is in read-only mode \")],1),_c('v-file-input',{ref:\"fileInput\",staticStyle:{\"position\":\"fixed\",\"top\":\"-100%\"},attrs:{\"show-size\":\"\",\"accept\":\".bin\",\"data-test\":\"file-input\"},model:{value:(_vm.fileInput),callback:function ($$v) {_vm.fileInput=$$v},expression:\"fileInput\"}}),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Filename\",\"id\":\"filename\",\"data-test\":\"filename\"},model:{value:(_vm.fullFilename),callback:function ($$v) {_vm.fullFilename=$$v},expression:\"fullFilename\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Definition\",\"id\":\"definition-filename\",\"data-test\":\"definition-filename\"},model:{value:(_vm.definitionFilename),callback:function ($$v) {_vm.definitionFilename=$$v},expression:\"definitionFilename\"}})],1)],1),_c('v-row',{staticClass:\"mb-1\",attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"mr-auto\",attrs:{\"cols\":\"auto\"}},[_c('span',{staticClass:\"text-body-1 ma-2\"},[_vm._v(\"File Download:\")]),_c('v-btn',{staticClass:\"mr-3\",attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-file-binary\"},on:{\"click\":function($event){return _vm.downloadBinary(null)}}},[_vm._v(\" Binary \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-code \")])],1),_c('v-btn',{staticClass:\"mr-3\",attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-file-definition\"},on:{\"click\":function($event){return _vm.downloadDefinition(null)}}},[_vm._v(\" Definition \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-document-edit \")])],1),_c('v-btn',{attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-file-report\"},on:{\"click\":function($event){return _vm.downloadReport(null)}}},[_vm._v(\" Report \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-document \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":!_vm.uploadScript,\"data-test\":\"upload-file\"},on:{\"click\":function($event){return _vm.upload()}}},[_vm._v(\" Upload \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-upload \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":!_vm.downloadScript,\"data-test\":\"download-file\"},on:{\"click\":function($event){return _vm.download()}}},[_vm._v(\" Download \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-download \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('span',_vm._g(_vm._b({},'span',attrs,false),on),[_c('v-checkbox',{staticClass:\"shrink mt-0\",attrs:{\"label\":\"B/G\",\"data-test\":\"upload-background\"},model:{value:(_vm.scriptBackground),callback:function ($$v) {_vm.scriptBackground=$$v},expression:\"scriptBackground\"}})],1)]}}])},[_c('span',[_vm._v(\"Run upload download scripts in the background\")])])],1)],1),_c('v-card',[_c('v-card-title',[_vm._v(\" Items \"),_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-tabs',{model:{value:(_vm.curTab),callback:function ($$v) {_vm.curTab=$$v},expression:\"curTab\"}},_vm._l((_vm.tables),function(table,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(table.name)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.curTab),callback:function ($$v) {_vm.curTab=$$v},expression:\"curTab\"}},_vm._l((_vm.tables),function(table,index){return _c('v-tab-item',{key:`${_vm.filename}${index}`},[_c('v-data-table',{attrs:{\"headers\":table.headers,\"items\":table.rows,\"search\":_vm.search,\"items-per-page\":20,\"footer-props\":{\n itemsPerPageOptions: [10, 20, 50, 100, -1],\n },\"calculate-widths\":\"\",\"multi-sort\":\"\",\"dense\":\"\",\"data-test\":table.name},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_c('table-row',{key:item[0].name,attrs:{\"items\":item},on:{\"change\":function($event){return _vm.onChange(item, $event)}}})]}},(_vm.tables.length > 1)?{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"ma-3\",staticStyle:{\"position\":\"absolute\"}},[_c('span',{staticClass:\"text-body-1 mr-3\"},[_vm._v(\"Table Download:\")]),_c('v-btn',{staticClass:\"mr-3\",attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-table-binary\"},on:{\"click\":function($event){return _vm.downloadBinary(table.name)}}},[_vm._v(\" Binary \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-code \")])],1),_c('v-btn',{staticClass:\"mr-3\",attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-table-definition\"},on:{\"click\":function($event){return _vm.downloadDefinition(table.name)}}},[_vm._v(\" Definition \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-document-edit \")])],1),_c('v-btn',{attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-table-report\"},on:{\"click\":function($event){return _vm.downloadReport(table.name)}}},[_vm._v(\" Report \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-document \")])],1)],1)]},proxy:true}:null],null,true)})],1)}),1)],1),(_vm.fileOpen)?_c('file-open-save-dialog',{attrs:{\"type\":\"open\",\"api-url\":\"/openc3-api/tables\"},on:{\"file\":function($event){return _vm.setFile($event)},\"error\":function($event){return _vm.setError($event)}},model:{value:(_vm.fileOpen),callback:function ($$v) {_vm.fileOpen=$$v},expression:\"fileOpen\"}}):_vm._e(),(_vm.showSaveAs)?_c('file-open-save-dialog',{attrs:{\"type\":\"save\",\"require-target-parent-dir\":\"\",\"api-url\":\"/openc3-api/tables\",\"input-filename\":_vm.filename},on:{\"filename\":function($event){return _vm.saveAsFilename($event)},\"error\":function($event){return _vm.setError($event)}},model:{value:(_vm.showSaveAs),callback:function ($$v) {_vm.showSaveAs=$$v},expression:\"showSaveAs\"}}):_vm._e(),_c('simple-text-dialog',{attrs:{\"title\":_vm.errorTitle,\"text\":_vm.errorText},model:{value:(_vm.showError),callback:function ($$v) {_vm.showError=$$v},expression:\"showError\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n*/\n\nimport 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 if (vueInstance.$notify) {\n vueInstance.$notify.serious({\n title: 'Network error',\n body,\n })\n }\n throw error\n } else {\n throw error\n }\n }\n)\n\nexport default axiosInstance\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n*/\n\nimport axios from './axios.js'\n\nconst request = async function (\n method,\n url,\n { data, params = {}, headers, noAuth = false, noScope = false } = {}\n) {\n if (!noAuth) {\n try {\n await OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity)\n } catch (error) {\n OpenC3Auth.login()\n }\n headers['Authorization'] = localStorage.openc3Token\n }\n if (!noScope && !params['scope']) {\n params['scope'] = window.openc3Scope\n }\n return axios({\n method,\n url,\n data,\n params,\n headers,\n })\n}\n\nconst acceptOnlyDefaultHeaders = {\n Accept: 'application/json',\n}\n\nconst fullDefaultHeaders = {\n ...acceptOnlyDefaultHeaders,\n 'Content-Type': 'application/json',\n}\n\nexport default {\n get: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('get', path, { params, headers, noScope, noAuth })\n },\n\n put: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('put', path, { data, params, headers, noScope, noAuth })\n },\n\n post: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('post', path, { data, params, headers, noScope, noAuth })\n },\n\n delete: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('delete', path, { params, headers, noScope, noAuth })\n },\n}\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport 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 ensure_offline_access() {\n this.offline_access_needed().then((needed) => {\n if (needed) {\n if (localStorage.openc3OfflineToken) {\n this.set_offline_access(localStorage.openc3OfflineToken).then(() => {\n delete localStorage.openc3OfflineToken\n })\n } else {\n OpenC3Auth.getOfflineAccess()\n }\n }\n })\n }\n\n // ***********************************************\n // The following APIs are used by the CmdTlmServer\n // ***********************************************\n\n offline_access_needed() {\n return this.exec('offline_access_needed', [])\n }\n\n set_offline_access(offline_access_token) {\n return this.exec('set_offline_access', [offline_access_token])\n }\n\n get_all_interface_info() {\n return this.exec('get_all_interface_info', [])\n }\n\n map_target_to_interface(target_name, interface_name) {\n return this.exec('map_target_to_interface', [target_name, interface_name])\n }\n\n connect_interface(interface_name, ...interface_params) {\n if (interface_params.length > 0) {\n return this.exec('connect_interface', [interface_name, interface_params])\n } else {\n return this.exec('connect_interface', [interface_name])\n }\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_target_interfaces() {\n return this.exec('get_target_interfaces', [])\n }\n\n // DEPRECATED\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_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, stale_time = 30) {\n const data = await this.exec('get_tlm_packet', [target_name, packet_name], {\n type: value_type,\n stale_time: stale_time,\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, stale_time = 30) {\n const data = await this.exec('get_tlm_values', [items], {\n stale_time: stale_time,\n })\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, value_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: value_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 async inject_tlm(\n target_name,\n packet_name,\n item_hash = null,\n value_type = 'CONVERTED'\n ) {\n data = await this.exec(\n 'inject_tlm',\n [target_name, packet_name, item_hash],\n {\n type: value_type,\n }\n )\n }\n\n set_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('set_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n override_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('override_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n get_overrides() {\n return this.exec('get_overrides')\n }\n\n normalize_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('normalize_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\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 enable_limits(target, packet, item) {\n return this.exec('enable_limits', [target, packet, item])\n }\n\n disable_limits(target, packet, item) {\n return this.exec('disable_limits', [target, packet, item])\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 get_metrics() {\n return this.exec('get_metrics', [])\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('mounting-portal',{attrs:{\"mount-to\":\"#openc3-menu\",\"append\":\"\"}},[_c('div',{staticClass:\"v-toolbar__content\"},[_vm._l((_vm.menus),function(menu,i){return _c('v-menu',{key:i,attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mx-1\",attrs:{\"outlined\":\"\",\"data-test\":_vm.formatDT(`${_vm.title} ${menu.label}`)}},'v-btn',attrs,false),on),[_c('span',{domProps:{\"textContent\":_vm._s(menu.label)}}),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-menu-down \")])],1)]}}],null,true)},[_c('v-list',[_c('v-radio-group',{staticClass:\"ma-0 pa-0\",attrs:{\"value\":menu.radioGroup,\"hide-details\":\"\",\"dense\":\"\"}},[_vm._l((menu.items),function(option,j){return [(option.divider)?_c('v-divider'):_c('v-list-item',{key:j,attrs:{\"disabled\":option.disabled,\"data-test\":_vm.formatDT(`${_vm.title} ${menu.label} ${option.label}`)},on:{\"click\":function($event){return option.command(option)}}},[(option.radio)?_c('v-list-item-action',[_c('v-radio',{attrs:{\"color\":\"secondary\",\"label\":option.label,\"value\":option.label}})],1):_vm._e(),(option.checkbox)?_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"color\":\"secondary\",\"label\":option.label},model:{value:(option.checked),callback:function ($$v) {_vm.$set(option, \"checked\", $$v)},expression:\"option.checked\"}})],1):_vm._e(),(option.icon)?_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":option.disabled}},[_vm._v(_vm._s(option.icon))])],1):_vm._e(),(!option.radio && !option.checkbox)?_c('v-list-item-title',{style:('cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : ''))},[_vm._v(_vm._s(option.label))]):_vm._e()],1)]})],2)],1)],1)}),_c('v-spacer'),_c('v-toolbar-title',[_vm._v(_vm._s(_vm.title))]),_c('v-spacer')],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TopBar.vue?vue&type=template&id=2eb37f67&scoped=true&\"\nimport script from \"./TopBar.vue?vue&type=script&lang=js&\"\nexport * from \"./TopBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TopBar.vue?vue&type=style&index=0&id=2eb37f67&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2eb37f67\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',[_c('td',{staticClass:\"text-start\"},[_vm._v(_vm._s(_vm.dataItems[0].index))]),(_vm.oneDimensional)?_c('td',{staticClass:\"text-start\"},[_vm._v(_vm._s(_vm.dataItems[0].name))]):_vm._e(),_vm._l((_vm.dataItems),function(item,index){return _c('table-item',{key:item.name,attrs:{\"item\":item},on:{\"change\":function($event){return _vm.onChange(item, index, $event)}}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('td',[(_vm.isCheckbox)?_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.dataItem.editable,\"data-test\":\"table-item-checkbox\"},on:{\"change\":_vm.checkboxChange},model:{value:(_vm.checkValue),callback:function ($$v) {_vm.checkValue=$$v},expression:\"checkValue\"}}):(_vm.dataItem.states)?_c('v-select',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"items\":_vm.itemStates,\"disabled\":!_vm.dataItem.editable,\"data-test\":\"table-item-select\"},on:{\"change\":_vm.stateChange},model:{value:(_vm.stateValue),callback:function ($$v) {_vm.stateValue=$$v},expression:\"stateValue\"}}):_c('v-text-field',{attrs:{\"solo\":\"\",\"dense\":\"\",\"single-line\":\"\",\"hide-no-data\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.dataItem.editable,\"data-test\":\"table-item-text-field\"},on:{\"change\":_vm.textChange},model:{value:(_vm.dataItem.value),callback:function ($$v) {_vm.$set(_vm.dataItem, \"value\", $$v)},expression:\"dataItem.value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <td>\n <v-checkbox\n v-if=\"isCheckbox\"\n dense\n hide-details\n v-model=\"checkValue\"\n @change=\"checkboxChange\"\n :disabled=\"!dataItem.editable\"\n data-test=\"table-item-checkbox\"\n />\n <v-select\n v-else-if=\"dataItem.states\"\n dense\n hide-details\n v-model=\"stateValue\"\n :items=\"itemStates\"\n @change=\"stateChange\"\n :disabled=\"!dataItem.editable\"\n data-test=\"table-item-select\"\n />\n <v-text-field\n v-else\n solo\n dense\n single-line\n hide-no-data\n hide-details\n v-model=\"dataItem.value\"\n @change=\"textChange\"\n :disabled=\"!dataItem.editable\"\n data-test=\"table-item-text-field\"\n />\n </td>\n</template>\n\n<script>\nexport default {\n props: {\n item: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n dataItem: this.item,\n stateValue: null,\n checkValue: false,\n }\n },\n created() {\n if (this.dataItem.states) {\n this.stateValue = this.dataItem.states[this.dataItem.value]\n }\n if (this.isCheckbox) {\n this.checkValue = this.stateValue === 1\n }\n },\n computed: {\n isCheckbox: function () {\n let result = true\n if (this.dataItem.states) {\n for (const state of Object.keys(this.dataItem.states)) {\n if (state !== 'CHECKED' && state !== 'UNCHECKED') {\n result = false\n }\n }\n } else {\n result = false\n }\n return result\n },\n itemStates: function () {\n let result = []\n for (const [text, value] of Object.entries(this.dataItem.states)) {\n result.push({ text: text, value: value })\n }\n return result\n },\n },\n methods: {\n checkboxChange: function () {\n if (this.checkValue) {\n this.$emit('change', 'CHECKED')\n } else {\n this.$emit('change', 'UNCHECKED')\n }\n },\n stateChange: function () {\n // Lookup the state key that corresponds to the value\n let state = Object.keys(this.dataItem.states).find(\n (key) => this.dataItem.states[key] === this.stateValue\n )\n this.$emit('change', state)\n },\n textChange: function () {\n this.$emit('change', this.dataItem.value)\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableItem.vue?vue&type=template&id=3a1fc24d&\"\nimport script from \"./TableItem.vue?vue&type=script&lang=js&\"\nexport * from \"./TableItem.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","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <tr>\n <td class=\"text-start\">{{ dataItems[0].index }}</td>\n <td class=\"text-start\" v-if=\"oneDimensional\">{{ dataItems[0].name }}</td>\n <table-item\n v-for=\"(item, index) in dataItems\"\n :key=\"item.name\"\n :item=\"item\"\n @change=\"onChange(item, index, $event)\"\n />\n </tr>\n</template>\n\n<script>\nimport TableItem from '@/tools/TableManager/TableItem'\n\nexport default {\n components: {\n TableItem,\n },\n props: {\n items: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n dataItems: this.items,\n }\n },\n computed: {\n oneDimensional() {\n if (this.dataItems.length === 1) {\n return true\n } else {\n return false\n }\n },\n },\n methods: {\n onChange: function (item, index, event) {\n this.$emit('change', { index: index, event: event })\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableRow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableRow.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableRow.vue?vue&type=template&id=0cf65978&\"\nimport script from \"./TableRow.vue?vue&type=script&lang=js&\"\nexport * from \"./TableRow.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"width\":\"600\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.success()}},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-card',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.success.apply(null, arguments)}}},[_c('v-system-bar',[_c('v-spacer'),_c('span',[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('v-spacer')],1),_c('v-card-text',[_c('div',{staticClass:\"pa-3\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-text-field',{attrs:{\"flat\":\"\",\"autofocus\":\"\",\"solo-inverted\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"label\":\"Search\",\"data-test\":\"file-open-save-search\"},on:{\"input\":_vm.handleSearch},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-row',{staticClass:\"mt-2\",attrs:{\"dense\":\"\"}},[_c('v-treeview',{ref:\"tree\",staticStyle:{\"width\":\"100%\"},attrs:{\"dense\":\"\",\"activatable\":\"\",\"return-object\":\"\",\"items\":_vm.items,\"search\":_vm.search,\"open-on-click\":_vm.type === 'open'},on:{\"update:active\":_vm.activeFile},scopedSlots:_vm._u([{key:\"prepend\",fn:function({ item, open }){return [(!item.file)?_c('v-icon',[_vm._v(\" \"+_vm._s(open ? 'mdi-folder-open' : 'mdi-folder')+\" \")]):_c('v-icon',[_vm._v(\" \"+_vm._s('mdi-language-ruby')+\" \")])]}},{key:\"append\",fn:function({ item }){return [(item.name === '__TEMP__')?_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.deleteTemp}},[_c('v-icon',[_vm._v(\" mdi-delete \")])],1):_vm._e()]}}]),model:{value:(_vm.tree),callback:function ($$v) {_vm.tree=$$v},expression:\"tree\"}})],1),_c('v-row',{staticClass:\"my-2\"},[_c('v-text-field',{attrs:{\"hide-details\":\"\",\"label\":\"Filename\",\"data-test\":\"file-open-save-filename\",\"disabled\":_vm.type === 'open'},model:{value:(_vm.selectedFile),callback:function ($$v) {_vm.selectedFile=$$v},expression:\"selectedFile\"}})],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.error),expression:\"error\"}],staticClass:\"my-2 red--text\",domProps:{\"textContent\":_vm._s(_vm.error)}})]),_c('v-row',{staticClass:\"mt-2\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"outlined\":\"\",\"data-test\":\"file-open-save-cancel-btn\",\"disabled\":_vm.disableButtons},on:{\"click\":function($event){_vm.show = false}}},[_vm._v(\" Cancel \")]),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"type\":\"submit\",\"color\":\"primary\",\"data-test\":\"file-open-save-submit-btn\",\"disabled\":_vm.disableButtons || !!_vm.error},on:{\"click\":function($event){$event.preventDefault();return _vm.success.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.submit)+\" \")])],1)],1)])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileOpenSaveDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileOpenSaveDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileOpenSaveDialog.vue?vue&type=template&id=010c078b&\"\nimport script from \"./FileOpenSaveDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./FileOpenSaveDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"width\":_vm.width},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-card',[_c('v-system-bar',[_c('v-spacer'),_c('span',[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('v-spacer'),_c('div',{staticClass:\"mx-2\"},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{attrs:{\"data-test\":\"downloadIcon\"},on:{\"click\":_vm.download}},[_vm._v(\" mdi-download \")])],1)]}}])},[_c('span',[_vm._v(\" Download \")])])],1)],1),_c('v-card-text',[_c('div',{staticClass:\"pa-3\"},[_c('span',{staticStyle:{\"white-space\":\"pre-wrap\"}},[_vm._v(_vm._s(_vm.text))])])]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.show = !_vm.show}}},[_vm._v(\" Ok \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SimpleTextDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SimpleTextDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SimpleTextDialog.vue?vue&type=template&id=4cd697cc&\"\nimport script from \"./SimpleTextDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SimpleTextDialog.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","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <top-bar :menus=\"menus\" :title=\"title\" />\n <v-snackbar v-model=\"showReadOnlyToast\" top :timeout=\"-1\" color=\"orange\">\n <v-icon> mdi-pencil-off </v-icon>\n {{ lockedBy }} is editing this script. Editor is in read-only mode\n <template v-slot:action=\"{ attrs }\">\n <v-btn\n text\n v-bind=\"attrs\"\n color=\"danger\"\n @click=\"confirmLocalUnlock\"\n data-test=\"unlock-button\"\n >\n Unlock\n </v-btn>\n <v-btn\n text\n v-bind=\"attrs\"\n @click=\"\n () => {\n showReadOnlyToast = false\n }\n \"\n >\n dismiss\n </v-btn>\n </template>\n </v-snackbar>\n <v-file-input\n show-size\n v-model=\"fileInput\"\n ref=\"fileInput\"\n accept=\".bin\"\n data-test=\"file-input\"\n style=\"position: fixed; top: -100%\"\n />\n <v-row dense>\n <v-col cols=\"6\">\n <v-text-field\n outlined\n dense\n readonly\n hide-details\n label=\"Filename\"\n v-model=\"fullFilename\"\n id=\"filename\"\n data-test=\"filename\"\n />\n </v-col>\n <v-col cols=\"6\">\n <v-text-field\n outlined\n dense\n readonly\n hide-details\n label=\"Definition\"\n v-model=\"definitionFilename\"\n id=\"definition-filename\"\n data-test=\"definition-filename\"\n />\n </v-col>\n </v-row>\n <v-row dense class=\"mb-1\">\n <v-col cols=\"auto\" class=\"mr-auto\">\n <span class=\"text-body-1 ma-2\">File Download:</span>\n <v-btn\n dense\n color=\"primary\"\n class=\"mr-3\"\n @click=\"downloadBinary(null)\"\n :disabled=\"filename == ''\"\n data-test=\"download-file-binary\"\n >\n Binary\n <v-icon right dark> mdi-file-code </v-icon>\n </v-btn>\n <v-btn\n dense\n color=\"primary\"\n class=\"mr-3\"\n @click=\"downloadDefinition(null)\"\n :disabled=\"filename == ''\"\n data-test=\"download-file-definition\"\n >\n Definition\n <v-icon right dark> mdi-file-document-edit </v-icon>\n </v-btn>\n <v-btn\n dense\n color=\"primary\"\n @click=\"downloadReport(null)\"\n :disabled=\"filename == ''\"\n data-test=\"download-file-report\"\n >\n Report\n <v-icon right dark> mdi-file-document </v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"auto\">\n <v-btn\n dense\n color=\"primary\"\n @click=\"upload()\"\n :disabled=\"!uploadScript\"\n data-test=\"upload-file\"\n >\n Upload\n <v-icon right dark> mdi-file-upload </v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"auto\">\n <v-btn\n dense\n color=\"primary\"\n @click=\"download()\"\n :disabled=\"!downloadScript\"\n data-test=\"download-file\"\n >\n Download\n <v-icon right dark> mdi-file-download </v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"auto\">\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <span v-bind=\"attrs\" v-on=\"on\">\n <v-checkbox\n v-model=\"scriptBackground\"\n label=\"B/G\"\n class=\"shrink mt-0\"\n data-test=\"upload-background\"\n />\n </span>\n </template>\n <span>Run upload download scripts in the background</span>\n </v-tooltip>\n </v-col>\n </v-row>\n <v-card>\n <v-card-title>\n Items\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-tabs v-model=\"curTab\">\n <v-tab v-for=\"(table, index) in tables\" :key=\"index\">\n {{ table.name }}\n </v-tab>\n </v-tabs>\n <v-tabs-items v-model=\"curTab\">\n <v-tab-item\n v-for=\"(table, index) in tables\"\n :key=\"`${filename}${index}`\"\n >\n <v-data-table\n :headers=\"table.headers\"\n :items=\"table.rows\"\n :search=\"search\"\n :items-per-page=\"20\"\n :footer-props=\"{\n itemsPerPageOptions: [10, 20, 50, 100, -1],\n }\"\n calculate-widths\n multi-sort\n dense\n :data-test=\"table.name\"\n >\n <template v-slot:item=\"{ item }\">\n <table-row\n :items=\"item\"\n :key=\"item[0].name\"\n @change=\"onChange(item, $event)\"\n />\n </template>\n <template v-slot:footer v-if=\"tables.length > 1\">\n <div style=\"position: absolute\" class=\"ma-3\">\n <span class=\"text-body-1 mr-3\">Table Download:</span>\n <v-btn\n dense\n color=\"primary\"\n class=\"mr-3\"\n @click=\"downloadBinary(table.name)\"\n :disabled=\"filename == ''\"\n data-test=\"download-table-binary\"\n >\n Binary\n <v-icon right dark> mdi-file-code </v-icon>\n </v-btn>\n <v-btn\n dense\n color=\"primary\"\n class=\"mr-3\"\n @click=\"downloadDefinition(table.name)\"\n :disabled=\"filename == ''\"\n data-test=\"download-table-definition\"\n >\n Definition\n <v-icon right dark> mdi-file-document-edit </v-icon>\n </v-btn>\n <v-btn\n dense\n color=\"primary\"\n @click=\"downloadReport(table.name)\"\n :disabled=\"filename == ''\"\n data-test=\"download-table-report\"\n >\n Report\n <v-icon right dark> mdi-file-document </v-icon>\n </v-btn>\n </div>\n </template>\n </v-data-table>\n </v-tab-item>\n </v-tabs-items>\n </v-card>\n <file-open-save-dialog\n v-if=\"fileOpen\"\n v-model=\"fileOpen\"\n type=\"open\"\n api-url=\"/openc3-api/tables\"\n @file=\"setFile($event)\"\n @error=\"setError($event)\"\n />\n <file-open-save-dialog\n v-if=\"showSaveAs\"\n v-model=\"showSaveAs\"\n type=\"save\"\n require-target-parent-dir\n api-url=\"/openc3-api/tables\"\n :input-filename=\"filename\"\n @filename=\"saveAsFilename($event)\"\n @error=\"setError($event)\"\n />\n <simple-text-dialog\n v-model=\"showError\"\n :title=\"errorTitle\"\n :text=\"errorText\"\n />\n </div>\n</template>\n\n<script>\nimport Api from '@openc3/tool-common/src/services/api'\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\nimport TopBar from '@openc3/tool-common/src/components/TopBar'\nimport TableRow from '@/tools/TableManager/TableRow'\nimport FileOpenSaveDialog from '@openc3/tool-common/src/components/FileOpenSaveDialog'\nimport SimpleTextDialog from '@openc3/tool-common/src/components/SimpleTextDialog'\n\nexport default {\n components: {\n TopBar,\n TableRow,\n FileOpenSaveDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n title: 'COSMOS Table Manager',\n search: '',\n curTab: null,\n tables: [],\n api: null,\n definition: null,\n fileInput: '',\n definitionFilename: '',\n fileNew: false,\n filename: '',\n fileModified: '',\n lockedBy: null,\n fileOpen: false,\n showSave: false,\n showSaveAs: false,\n showError: false,\n errorTitle: '',\n errorText: '',\n uploadScript: false,\n downloadScript: false,\n scriptBackground: true,\n }\n },\n computed: {\n readOnly: function () {\n return !!this.lockedBy\n },\n fullFilename() {\n return `${this.filename} ${this.fileModified}`.trim()\n },\n menus: function () {\n return [\n {\n label: 'File',\n items: [\n {\n label: 'New File',\n icon: 'mdi-file-plus',\n command: () => {\n this.newFile()\n },\n },\n {\n label: 'Open File',\n icon: 'mdi-folder-open',\n command: () => {\n this.openFile()\n },\n },\n {\n divider: true,\n },\n {\n label: 'Save File',\n icon: 'mdi-content-save',\n command: () => {\n this.saveFile()\n },\n },\n {\n label: 'Save As...',\n icon: 'mdi-content-save',\n command: () => {\n this.saveAs()\n },\n },\n {\n divider: true,\n },\n // {\n // label: 'Load Binary',\n // icon: 'mdi-cloud-upload',\n // command: () => {\n // this.loadBinary()\n // },\n // },\n // {\n // divider: true,\n // },\n {\n label: 'Delete File',\n icon: 'mdi-delete',\n command: () => {\n this.delete()\n },\n },\n ],\n },\n ]\n },\n },\n watch: {\n // Everytime the filename changes we figure out if there is an associated upload & download script\n filename: function (val) {\n let upload =\n this.filename.split('/').slice(0, 2).join('/') + '/procedures/upload.rb'\n let download =\n this.filename.split('/').slice(0, 2).join('/') +\n '/procedures/download.rb'\n Api.get(`/openc3-api/tables/${upload}`, {\n headers: {\n Accept: 'application/json',\n // Since we're just checking for existance, 404 is possible so ignore it\n 'Ignore-Errors': '404',\n },\n })\n .then((response) => {\n this.uploadScript = true\n })\n .catch((error) => {\n this.uploadScript = false\n })\n Api.get(`/openc3-api/tables/${download}`, {\n headers: {\n Accept: 'application/json',\n // Since we're just checking for existance, 404 is possible so ignore it\n 'Ignore-Errors': '404',\n },\n })\n .then((response) => {\n this.downloadScript = true\n })\n .catch((error) => {\n this.downloadScript = false\n })\n },\n },\n created() {\n // Ensure Offline Access Is Setup For the Current User\n this.api = new OpenC3Api()\n this.api.ensure_offline_access()\n },\n methods: {\n // File menu actions\n newFile: function () {\n this.fileModified = ''\n this.fileNew = true\n this.fileOpen = true\n },\n openFile: function () {\n this.fileOpen = true\n },\n // Called by the FileOpenDialog to set the file contents\n setFile: function ({ file, locked }) {\n // They opened a definition file so create a new binary\n if (file.name.includes('.txt')) {\n if (this.fileNew) {\n this.buildNewBinary(file.name)\n this.fileNew = false\n } else {\n this.getDefinition(file.name)\n }\n } else {\n this.unlockFile() // first unlock what was just being edited\n // Split off the ' *' which indicates a file is modified on the server\n this.filename = file.name.split('*')[0]\n this.fileModified = ''\n this.lockedBy = locked\n this.getDefinition()\n }\n },\n // Called by the FileOpenSaveDialog on error\n setError(event) {\n this.errorTitle = 'Error'\n this.errorText = `Error: ${event}`\n this.errorText = response.data.message\n this.showError = true\n },\n saveFile: function () {\n // Save a file by posting the new contents\n this.showSave = true\n\n const formData = new FormData()\n formData.append('binary', this.filename)\n formData.append('definition', this.definitionFilename)\n formData.append('tables', JSON.stringify(this.tables))\n Api.post(`/openc3-api/tables/${this.filename}`, {\n data: formData,\n })\n .then((response) => {\n this.fileModified = ''\n setTimeout(() => {\n this.showSave = false\n }, 2000)\n })\n .catch(({ response }) => {\n this.showSave = false\n this.errorTitle = 'Save Error'\n this.errorText = response.data.message\n this.showError = true\n })\n this.lockFile() // Ensure this file is locked for editing\n },\n saveAs: function () {\n this.showSaveAs = true\n },\n saveAsFilename: function (filename) {\n Api.put(`/openc3-api/tables/${this.filename}/save-as/${filename}`).then(\n (response) => {\n this.filename = filename\n this.getDefinition(this.definitionFilename)\n }\n )\n },\n delete: function () {\n if (this.filename !== '') {\n this.$dialog\n .confirm(`Permanently delete file: ${this.filename}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/tables/${this.filename}`, {\n data: {},\n })\n })\n .then((response) => {\n this.newFile()\n })\n .catch((error) => {\n if (error) {\n this.$notify.caution({\n title: 'Error',\n body: `Error deleting file: ${error}`,\n })\n }\n })\n }\n },\n downloadBinary: function (tableName = null) {\n const formData = new FormData()\n formData.append('binary', this.filename)\n formData.append('definition', this.definitionFilename)\n if (tableName !== null) {\n formData.append('table', tableName)\n }\n Api.post(`/openc3-api/tables/binary`, {\n data: formData,\n }).then((response) => {\n // Decode Base64 string\n const decodedData = window.atob(response.data.contents)\n // Create UNIT8ARRAY of size same as row data length\n const uInt8Array = new Uint8Array(decodedData.length)\n // Insert all character code into uInt8Array\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i)\n }\n // Return BLOB image after conversion\n const blob = new Blob([uInt8Array], {\n type: 'application/octet-stream',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n downloadDefinition: function (tableName = null) {\n const formData = new FormData()\n formData.append('definition', this.definitionFilename)\n if (tableName !== null) {\n formData.append('table', tableName)\n }\n Api.post(`/openc3-api/tables/definition`, {\n data: formData,\n }).then((response) => {\n const blob = new Blob([response.data.contents], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n downloadReport: function (tableName = null) {\n const formData = new FormData()\n formData.append('binary', this.filename)\n formData.append('definition', this.definitionFilename)\n if (tableName !== null) {\n formData.append('table', tableName)\n }\n Api.post(`/openc3-api/tables/report`, {\n data: formData,\n }).then((response) => {\n const header =\n `Binary: ${this.filename}\\n` +\n `Definition: ${this.definitionFilename}\\n\\n`\n const blob = new Blob([header, response.data.contents], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n upload() {\n let upload =\n this.filename.split('/').slice(0, 2).join('/') + '/procedures/upload.rb'\n Api.post(`/script-api/scripts/${upload}/run`, {\n data: {\n environment: [{ key: 'TBL_FILENAME', value: this.filename }],\n },\n }).then((response) => {\n if (this.scriptBackground !== true) {\n window.open(`/tools/scriptrunner/${response.data}`, '_blank')\n }\n })\n },\n download() {\n this.$dialog\n .confirm(\n `Are you sure you want to overwrite ${this.filename}? ` +\n 'You can Save As to create a new file and then Download to preserve the existing file. ' +\n 'Note: Once the download completes you will need to re-open the file to see changes.',\n {\n okText: 'Download (Overwrite!)',\n cancelText: 'Cancel',\n }\n )\n .then(() => {\n let download =\n this.filename.split('/').slice(0, 2).join('/') +\n '/procedures/download.rb'\n Api.post(`/script-api/scripts/${download}/run`, {\n data: {\n environment: [{ key: 'TBL_FILENAME', value: this.filename }],\n },\n }).then((response) => {\n if (this.scriptBackground !== true) {\n window.open(`/tools/scriptrunner/${response.data}`, '_blank')\n }\n })\n })\n .catch((error) => {}) // Cancel, do nothing\n },\n // TODO: Need to load to tmp dir or something before we can saveAs to rename\n // async loadBinary() {\n // this.fileInput = ''\n // this.$refs.fileInput.$refs.input.click()\n // // Wait for the file to be set by the dialog so upload works\n // while (this.fileInput === '') {\n // await new Promise((resolve) => setTimeout(resolve, 500))\n // }\n // this.filename = this.fileInput.name\n // this.saveAs()\n // },\n confirmLocalUnlock: function () {\n this.$dialog\n .confirm(\n 'Are you sure you want to unlock this file for editing? ' +\n 'If another user is editing this file, your changes might conflict with each other.',\n {\n okText: 'Force Unlock',\n cancelText: 'Cancel',\n }\n )\n .then(() => {\n this.lockedBy = null\n return this.lockFile() // Re-lock it as this user so it's locked for anyone else who opens it\n })\n },\n lockFile: function () {\n return Api.post(`/openc3-api/tables/${this.filename}/lock`)\n },\n unlockFile: function () {\n if (this.filename !== '' && !this.readOnly) {\n Api.post(`/openc3-api/tables/${this.filename}/unlock`)\n }\n },\n getDefinition: function (definitionFilename = null) {\n if (!definitionFilename) {\n definitionFilename = this.filename\n .replace('/bin/', '/config/')\n .replace('.bin', '_def.txt')\n }\n this.tables = [] // Clear so table is re-rendered\n const formData = new FormData()\n formData.append('binary', this.filename)\n formData.append('definition', definitionFilename)\n Api.post(`/openc3-api/tables/load`, {\n data: formData,\n })\n .then((response) => {\n this.definitionFilename = definitionFilename\n this.tables = response.data.tables.map((table) => {\n return {\n ...table,\n // Build up the headers for proper searching\n headers: table.headers.map((text, i) => {\n const header = {\n text,\n filterable: text !== 'INDEX',\n }\n if (table.numColumns === 1) {\n // In the 1D table the searchable value is the first value in the row\n // Note the names in 1D are INDEX, NAME, VALUE\n return {\n ...header,\n value: `[0].${text.toLowerCase()}`,\n }\n } else {\n // In the 2D table the searchable value is always in the value attribute\n // of the current column item\n return {\n ...header,\n value: `[${i}].value`,\n }\n }\n }),\n }\n })\n\n if (response.data['errors']) {\n this.$notify.caution({\n title: 'Warning',\n body: response.data['errors'],\n })\n }\n })\n .catch((error) => {\n if (error.response.status == 404) {\n this.$notify.normal({\n title: 'Definition File Not Found',\n body: `Definition file ${definitionFilename} not found. Please select definition file.`,\n })\n this.fileOpen = true\n } else {\n this.$notify.serious({\n title: 'Error',\n body: `Error loading due to ${error.response.statusText}. Status: ${error.response.status}`,\n })\n }\n })\n },\n buildNewBinary: function (filename) {\n const formData = new FormData()\n formData.append('definition', filename)\n Api.post(`/openc3-api/tables/generate`, {\n data: formData,\n }).then((response) => {\n this.filename = response.data.filename\n this.getDefinition(filename)\n })\n },\n onChange: function (item, { index, event }) {\n this.fileModified = '*'\n item[index].value = event\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableManager.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableManager.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableManager.vue?vue&type=template&id=a476528e&\"\nimport script from \"./TableManager.vue?vue&type=script&lang=js&\"\nexport * from \"./TableManager.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","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".v-list[data-v-2eb37f67] .v-label{margin-left:5px}.v-list-item__icon[data-v-2eb37f67]{margin-right:15px!important}.v-list-item__title[data-v-2eb37f67]{color:#fff}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=style&index=0&id=2eb37f67&prod&scoped=true&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"706a3f6d\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["render","_vm","this","_c","_self","attrs","menus","title","scopedSlots","_u","key","fn","_b","on","confirmLocalUnlock","_v","showReadOnlyToast","model","value","callback","$$v","expression","_s","lockedBy","ref","staticStyle","fileInput","fullFilename","definitionFilename","staticClass","filename","$event","downloadBinary","downloadDefinition","downloadReport","uploadScript","upload","downloadScript","download","_g","scriptBackground","search","curTab","_l","tables","table","index","name","headers","rows","itemsPerPageOptions","item","onChange","length","proxy","fileOpen","setFile","setError","_e","showSaveAs","saveAsFilename","errorTitle","errorText","showError","staticRenderFns","vueInstance","Vue","axiosInstance","axios","baseURL","location","origin","timeout","params","interceptors","response","use","error","status","OpenC3Auth","updateToken","defaultMinValidity","includes","toString","Promise","reject","body","statusText","config","data","message","exception","class","$notify","serious","request","method","url","noAuth","noScope","login","localStorage","openc3Token","window","openc3Scope","acceptOnlyDefaultHeaders","Accept","fullDefaultHeaders","get","path","put","post","delete","OpenC3Api","kwparams","headerOptions","id","jsonrpc","keyword_params","Authorization","result","err","Error","val","json_class","raw","NaN","Infinity","Number","isNaN","POSITIVE_INFINITY","NEGATIVE_INFINITY","offline_access_needed","then","needed","openc3OfflineToken","set_offline_access","getOfflineAccess","exec","offline_access_token","target_name","interface_name","interface_params","router_name","target_commands","target","packet","log_writer_name","limits_set","packet_name","value_type","stale_time","type","len","converted","i","decode_openc3_type","items","item_name","undefined","item_hash","command_name","parameter_name","param_list","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","menu","formatDT","label","domProps","radioGroup","option","j","divider","disabled","command","radio","checkbox","checked","$set","icon","style","props","default","methods","mounted","document","component","dataItems","oneDimensional","isCheckbox","dataItem","editable","checkboxChange","checkValue","states","itemStates","stateChange","stateValue","textChange","required","created","computed","text","components","TableItem","event","indexOf","_k","keyCode","success","show","preventDefault","apply","arguments","handleSearch","activeFile","open","file","deleteTemp","tree","selectedFile","directives","rawName","disableButtons","submit","validator","apiUrl","requireTargetParentDir","inputFilename","targets","set","validFilenameRegex","Api","loadFiles","catch","clear","exists","root","found","confirm","okText","cancelText","openSuccess","contents","locked","breakpoints","saveSuccess","insertFile","children","level","parts","width","link","TopBar","TableRow","FileOpenSaveDialog","SimpleTextDialog","api","definition","fileNew","fileModified","showSave","readOnly","watch","newFile","openFile","saveFile","formData","setTimeout","saveAs","uInt8Array","environment","lockFile","unlockFile","getDefinition","replace","filterable","header","buildNewBinary","___CSS_LOADER_EXPORT___","push","module","content","__esModule","locals","exports","add"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"js/435.js","mappings":"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","sources":["webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableManager.vue","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/services/axios.js","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/services/api.js","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/services/openc3-api.js","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/TopBar.vue","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/TopBar.vue?95da","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/TopBar.vue?a437","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableRow.vue","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableItem.vue","webpack://@openc3/cosmos-tool-tablemanager/src/tools/TableManager/TableItem.vue","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableItem.vue?6242","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableItem.vue?f5aa","webpack://@openc3/cosmos-tool-tablemanager/src/tools/TableManager/TableRow.vue","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableRow.vue?890d","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableRow.vue?1698","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/FileOpenSaveDialog.vue","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/FileOpenSaveDialog.vue?14dd","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/FileOpenSaveDialog.vue?07a6","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/SimpleTextDialog.vue","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/SimpleTextDialog.vue?e067","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/SimpleTextDialog.vue?5fff","webpack://@openc3/cosmos-tool-tablemanager/src/tools/TableManager/TableManager.vue","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableManager.vue?c671","webpack://@openc3/cosmos-tool-tablemanager/./src/tools/TableManager/TableManager.vue?b261","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/TopBar.vue?386c","webpack://@openc3/cosmos-tool-tablemanager/../openc3-tool-common/src/components/TopBar.vue?9efc"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('top-bar',{attrs:{\"menus\":_vm.menus,\"title\":_vm.title}}),_c('v-snackbar',{attrs:{\"top\":\"\",\"timeout\":-1,\"color\":\"orange\"},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"text\":\"\",\"color\":\"danger\",\"data-test\":\"unlock-button\"},on:{\"click\":_vm.confirmLocalUnlock}},'v-btn',attrs,false),[_vm._v(\" Unlock \")]),_c('v-btn',_vm._b({attrs:{\"text\":\"\"},on:{\"click\":() => {\n _vm.showReadOnlyToast = false\n }}},'v-btn',attrs,false),[_vm._v(\" dismiss \")])]}}]),model:{value:(_vm.showReadOnlyToast),callback:function ($$v) {_vm.showReadOnlyToast=$$v},expression:\"showReadOnlyToast\"}},[_c('v-icon',[_vm._v(\" mdi-pencil-off \")]),_vm._v(\" \"+_vm._s(_vm.lockedBy)+\" is editing this script. Editor is in read-only mode \")],1),_c('v-file-input',{ref:\"fileInput\",staticStyle:{\"position\":\"fixed\",\"top\":\"-100%\"},attrs:{\"show-size\":\"\",\"accept\":\".bin\",\"data-test\":\"file-input\"},model:{value:(_vm.fileInput),callback:function ($$v) {_vm.fileInput=$$v},expression:\"fileInput\"}}),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Filename\",\"id\":\"filename\",\"data-test\":\"filename\"},model:{value:(_vm.fullFilename),callback:function ($$v) {_vm.fullFilename=$$v},expression:\"fullFilename\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"readonly\":\"\",\"hide-details\":\"\",\"label\":\"Definition\",\"id\":\"definition-filename\",\"data-test\":\"definition-filename\"},model:{value:(_vm.definitionFilename),callback:function ($$v) {_vm.definitionFilename=$$v},expression:\"definitionFilename\"}})],1)],1),_c('v-row',{staticClass:\"mb-1\",attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"mr-auto\",attrs:{\"cols\":\"auto\"}},[_c('span',{staticClass:\"text-body-1 ma-2\"},[_vm._v(\"File Download:\")]),_c('v-btn',{staticClass:\"mr-3\",attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-file-binary\"},on:{\"click\":function($event){return _vm.downloadBinary(null)}}},[_vm._v(\" Binary \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-code \")])],1),_c('v-btn',{staticClass:\"mr-3\",attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-file-definition\"},on:{\"click\":function($event){return _vm.downloadDefinition(null)}}},[_vm._v(\" Definition \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-document-edit \")])],1),_c('v-btn',{attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-file-report\"},on:{\"click\":function($event){return _vm.downloadReport(null)}}},[_vm._v(\" Report \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-document \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":!_vm.uploadScript,\"data-test\":\"upload-file\"},on:{\"click\":function($event){return _vm.upload()}}},[_vm._v(\" Upload \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-upload \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":!_vm.downloadScript,\"data-test\":\"download-file\"},on:{\"click\":function($event){return _vm.download()}}},[_vm._v(\" Download \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-download \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('span',_vm._g(_vm._b({},'span',attrs,false),on),[_c('v-checkbox',{staticClass:\"shrink mt-0\",attrs:{\"label\":\"B/G\",\"data-test\":\"upload-background\"},model:{value:(_vm.scriptBackground),callback:function ($$v) {_vm.scriptBackground=$$v},expression:\"scriptBackground\"}})],1)]}}])},[_c('span',[_vm._v(\"Run upload download scripts in the background\")])])],1)],1),_c('v-card',[_c('v-card-title',[_vm._v(\" Items \"),_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-tabs',{model:{value:(_vm.curTab),callback:function ($$v) {_vm.curTab=$$v},expression:\"curTab\"}},_vm._l((_vm.tables),function(table,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(table.name)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.curTab),callback:function ($$v) {_vm.curTab=$$v},expression:\"curTab\"}},_vm._l((_vm.tables),function(table,index){return _c('v-tab-item',{key:`${_vm.filename}${index}`},[_c('v-data-table',{attrs:{\"headers\":table.headers,\"items\":table.rows,\"search\":_vm.search,\"items-per-page\":20,\"footer-props\":{\n itemsPerPageOptions: [10, 20, 50, 100, -1],\n },\"calculate-widths\":\"\",\"multi-sort\":\"\",\"dense\":\"\",\"data-test\":table.name},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_c('table-row',{key:item[0].name,attrs:{\"items\":item},on:{\"change\":function($event){return _vm.onChange(item, $event)}}})]}},(_vm.tables.length > 1)?{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"ma-3\",staticStyle:{\"position\":\"absolute\"}},[_c('span',{staticClass:\"text-body-1 mr-3\"},[_vm._v(\"Table Download:\")]),_c('v-btn',{staticClass:\"mr-3\",attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-table-binary\"},on:{\"click\":function($event){return _vm.downloadBinary(table.name)}}},[_vm._v(\" Binary \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-code \")])],1),_c('v-btn',{staticClass:\"mr-3\",attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-table-definition\"},on:{\"click\":function($event){return _vm.downloadDefinition(table.name)}}},[_vm._v(\" Definition \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-document-edit \")])],1),_c('v-btn',{attrs:{\"dense\":\"\",\"color\":\"primary\",\"disabled\":_vm.filename == '',\"data-test\":\"download-table-report\"},on:{\"click\":function($event){return _vm.downloadReport(table.name)}}},[_vm._v(\" Report \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-file-document \")])],1)],1)]},proxy:true}:null],null,true)})],1)}),1)],1),(_vm.fileOpen)?_c('file-open-save-dialog',{attrs:{\"type\":\"open\",\"api-url\":\"/openc3-api/tables\"},on:{\"file\":function($event){return _vm.setFile($event)},\"error\":function($event){return _vm.setError($event)}},model:{value:(_vm.fileOpen),callback:function ($$v) {_vm.fileOpen=$$v},expression:\"fileOpen\"}}):_vm._e(),(_vm.showSaveAs)?_c('file-open-save-dialog',{attrs:{\"type\":\"save\",\"require-target-parent-dir\":\"\",\"api-url\":\"/openc3-api/tables\",\"input-filename\":_vm.filename},on:{\"filename\":function($event){return _vm.saveAsFilename($event)},\"error\":function($event){return _vm.setError($event)}},model:{value:(_vm.showSaveAs),callback:function ($$v) {_vm.showSaveAs=$$v},expression:\"showSaveAs\"}}):_vm._e(),_c('simple-text-dialog',{attrs:{\"title\":_vm.errorTitle,\"text\":_vm.errorText},model:{value:(_vm.showError),callback:function ($$v) {_vm.showError=$$v},expression:\"showError\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n*/\n\nimport 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 if (vueInstance.$notify) {\n vueInstance.$notify.serious({\n title: 'Network error',\n body,\n })\n }\n throw error\n } else {\n throw error\n }\n }\n)\n\nexport default axiosInstance\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n*/\n\nimport axios from './axios.js'\n\nconst request = async function (\n method,\n url,\n { data, params = {}, headers, noAuth = false, noScope = false } = {}\n) {\n if (!noAuth) {\n try {\n await OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity)\n } catch (error) {\n OpenC3Auth.login()\n }\n headers['Authorization'] = localStorage.openc3Token\n }\n if (!noScope && !params['scope']) {\n params['scope'] = window.openc3Scope\n }\n return axios({\n method,\n url,\n data,\n params,\n headers,\n })\n}\n\nconst acceptOnlyDefaultHeaders = {\n Accept: 'application/json',\n}\n\nconst fullDefaultHeaders = {\n ...acceptOnlyDefaultHeaders,\n 'Content-Type': 'application/json',\n}\n\nexport default {\n get: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('get', path, { params, headers, noScope, noAuth })\n },\n\n put: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('put', path, { data, params, headers, noScope, noAuth })\n },\n\n post: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('post', path, { data, params, headers, noScope, noAuth })\n },\n\n delete: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('delete', path, { params, headers, noScope, noAuth })\n },\n}\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport 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 ensure_offline_access() {\n this.offline_access_needed().then((needed) => {\n if (needed) {\n if (localStorage.openc3OfflineToken) {\n this.set_offline_access(localStorage.openc3OfflineToken).then(() => {\n delete localStorage.openc3OfflineToken\n })\n } else {\n OpenC3Auth.getOfflineAccess()\n }\n }\n })\n }\n\n // ***********************************************\n // The following APIs are used by the CmdTlmServer\n // ***********************************************\n\n offline_access_needed() {\n return this.exec('offline_access_needed', [])\n }\n\n set_offline_access(offline_access_token) {\n return this.exec('set_offline_access', [offline_access_token])\n }\n\n get_all_interface_info() {\n return this.exec('get_all_interface_info', [])\n }\n\n map_target_to_interface(target_name, interface_name) {\n return this.exec('map_target_to_interface', [target_name, interface_name])\n }\n\n connect_interface(interface_name, ...interface_params) {\n if (interface_params.length > 0) {\n return this.exec('connect_interface', [interface_name, interface_params])\n } else {\n return this.exec('connect_interface', [interface_name])\n }\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_target_interfaces() {\n return this.exec('get_target_interfaces', [])\n }\n\n // DEPRECATED\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_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, stale_time = 30) {\n const data = await this.exec('get_tlm_packet', [target_name, packet_name], {\n type: value_type,\n stale_time: stale_time,\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, stale_time = 30) {\n const data = await this.exec('get_tlm_values', [items], {\n stale_time: stale_time,\n })\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, value_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: value_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 async inject_tlm(\n target_name,\n packet_name,\n item_hash = null,\n value_type = 'CONVERTED'\n ) {\n data = await this.exec(\n 'inject_tlm',\n [target_name, packet_name, item_hash],\n {\n type: value_type,\n }\n )\n }\n\n set_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('set_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n override_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('override_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n get_overrides() {\n return this.exec('get_overrides')\n }\n\n normalize_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('normalize_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\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 enable_limits(target, packet, item) {\n return this.exec('enable_limits', [target, packet, item])\n }\n\n disable_limits(target, packet, item) {\n return this.exec('disable_limits', [target, packet, item])\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 get_metrics() {\n return this.exec('get_metrics', [])\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('mounting-portal',{attrs:{\"mount-to\":\"#openc3-menu\",\"append\":\"\"}},[_c('div',{staticClass:\"v-toolbar__content\"},[_vm._l((_vm.menus),function(menu,i){return _c('v-menu',{key:i,attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mx-1\",attrs:{\"outlined\":\"\",\"data-test\":_vm.formatDT(`${_vm.title} ${menu.label}`)}},'v-btn',attrs,false),on),[_c('span',{domProps:{\"textContent\":_vm._s(menu.label)}}),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-menu-down \")])],1)]}}],null,true)},[_c('v-list',[_c('v-radio-group',{staticClass:\"ma-0 pa-0\",attrs:{\"value\":menu.radioGroup,\"hide-details\":\"\",\"dense\":\"\"}},[_vm._l((menu.items),function(option,j){return [(option.divider)?_c('v-divider'):_c('v-list-item',{key:j,attrs:{\"disabled\":option.disabled,\"data-test\":_vm.formatDT(`${_vm.title} ${menu.label} ${option.label}`)},on:{\"click\":function($event){return option.command(option)}}},[(option.radio)?_c('v-list-item-action',[_c('v-radio',{attrs:{\"color\":\"secondary\",\"label\":option.label,\"value\":option.label}})],1):_vm._e(),(option.checkbox)?_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"color\":\"secondary\",\"label\":option.label},model:{value:(option.checked),callback:function ($$v) {_vm.$set(option, \"checked\", $$v)},expression:\"option.checked\"}})],1):_vm._e(),(option.icon)?_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":option.disabled}},[_vm._v(_vm._s(option.icon))])],1):_vm._e(),(!option.radio && !option.checkbox)?_c('v-list-item-title',{style:('cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : ''))},[_vm._v(_vm._s(option.label))]):_vm._e()],1)]})],2)],1)],1)}),_c('v-spacer'),_c('v-toolbar-title',[_vm._v(_vm._s(_vm.title))]),_c('v-spacer')],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TopBar.vue?vue&type=template&id=2eb37f67&scoped=true&\"\nimport script from \"./TopBar.vue?vue&type=script&lang=js&\"\nexport * from \"./TopBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TopBar.vue?vue&type=style&index=0&id=2eb37f67&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2eb37f67\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',[_c('td',{staticClass:\"text-start\"},[_vm._v(_vm._s(_vm.dataItems[0].index))]),(_vm.oneDimensional)?_c('td',{staticClass:\"text-start\"},[_vm._v(_vm._s(_vm.dataItems[0].name))]):_vm._e(),_vm._l((_vm.dataItems),function(item,index){return _c('table-item',{key:item.name,attrs:{\"item\":item},on:{\"change\":function($event){return _vm.onChange(item, index, $event)}}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('td',[(_vm.isCheckbox)?_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.dataItem.editable,\"data-test\":\"table-item-checkbox\"},on:{\"change\":_vm.checkboxChange},model:{value:(_vm.checkValue),callback:function ($$v) {_vm.checkValue=$$v},expression:\"checkValue\"}}):(_vm.dataItem.states)?_c('v-select',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"items\":_vm.itemStates,\"disabled\":!_vm.dataItem.editable,\"data-test\":\"table-item-select\"},on:{\"change\":_vm.stateChange},model:{value:(_vm.stateValue),callback:function ($$v) {_vm.stateValue=$$v},expression:\"stateValue\"}}):_c('v-text-field',{attrs:{\"solo\":\"\",\"dense\":\"\",\"single-line\":\"\",\"hide-no-data\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.dataItem.editable,\"data-test\":\"table-item-text-field\"},on:{\"change\":_vm.textChange},model:{value:(_vm.dataItem.value),callback:function ($$v) {_vm.$set(_vm.dataItem, \"value\", $$v)},expression:\"dataItem.value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <td>\n <v-checkbox\n v-if=\"isCheckbox\"\n dense\n hide-details\n v-model=\"checkValue\"\n @change=\"checkboxChange\"\n :disabled=\"!dataItem.editable\"\n data-test=\"table-item-checkbox\"\n />\n <v-select\n v-else-if=\"dataItem.states\"\n dense\n hide-details\n v-model=\"stateValue\"\n :items=\"itemStates\"\n @change=\"stateChange\"\n :disabled=\"!dataItem.editable\"\n data-test=\"table-item-select\"\n />\n <v-text-field\n v-else\n solo\n dense\n single-line\n hide-no-data\n hide-details\n v-model=\"dataItem.value\"\n @change=\"textChange\"\n :disabled=\"!dataItem.editable\"\n data-test=\"table-item-text-field\"\n />\n </td>\n</template>\n\n<script>\nexport default {\n props: {\n item: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n dataItem: this.item,\n stateValue: null,\n checkValue: false,\n }\n },\n created() {\n if (this.dataItem.states) {\n this.stateValue = this.dataItem.states[this.dataItem.value]\n }\n if (this.isCheckbox) {\n this.checkValue = this.stateValue === 1\n }\n },\n computed: {\n isCheckbox: function () {\n let result = true\n if (this.dataItem.states) {\n for (const state of Object.keys(this.dataItem.states)) {\n if (state !== 'CHECKED' && state !== 'UNCHECKED') {\n result = false\n }\n }\n } else {\n result = false\n }\n return result\n },\n itemStates: function () {\n let result = []\n for (const [text, value] of Object.entries(this.dataItem.states)) {\n result.push({ text: text, value: value })\n }\n return result\n },\n },\n methods: {\n checkboxChange: function () {\n if (this.checkValue) {\n this.$emit('change', 'CHECKED')\n } else {\n this.$emit('change', 'UNCHECKED')\n }\n },\n stateChange: function () {\n // Lookup the state key that corresponds to the value\n let state = Object.keys(this.dataItem.states).find(\n (key) => this.dataItem.states[key] === this.stateValue\n )\n this.$emit('change', state)\n },\n textChange: function () {\n this.$emit('change', this.dataItem.value)\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableItem.vue?vue&type=template&id=3a1fc24d&\"\nimport script from \"./TableItem.vue?vue&type=script&lang=js&\"\nexport * from \"./TableItem.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","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <tr>\n <td class=\"text-start\">{{ dataItems[0].index }}</td>\n <td class=\"text-start\" v-if=\"oneDimensional\">{{ dataItems[0].name }}</td>\n <table-item\n v-for=\"(item, index) in dataItems\"\n :key=\"item.name\"\n :item=\"item\"\n @change=\"onChange(item, index, $event)\"\n />\n </tr>\n</template>\n\n<script>\nimport TableItem from '@/tools/TableManager/TableItem'\n\nexport default {\n components: {\n TableItem,\n },\n props: {\n items: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n dataItems: this.items,\n }\n },\n computed: {\n oneDimensional() {\n if (this.dataItems.length === 1) {\n return true\n } else {\n return false\n }\n },\n },\n methods: {\n onChange: function (item, index, event) {\n this.$emit('change', { index: index, event: event })\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableRow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableRow.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableRow.vue?vue&type=template&id=0cf65978&\"\nimport script from \"./TableRow.vue?vue&type=script&lang=js&\"\nexport * from \"./TableRow.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"width\":\"600\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.success()}},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-card',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.success.apply(null, arguments)}}},[_c('v-system-bar',[_c('v-spacer'),_c('span',[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('v-spacer')],1),_c('v-card-text',[_c('div',{staticClass:\"pa-3\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-text-field',{attrs:{\"flat\":\"\",\"autofocus\":\"\",\"solo-inverted\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"label\":\"Search\",\"data-test\":\"file-open-save-search\"},on:{\"input\":_vm.handleSearch},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-row',{staticClass:\"mt-2\",attrs:{\"dense\":\"\"}},[_c('v-treeview',{ref:\"tree\",staticStyle:{\"width\":\"100%\"},attrs:{\"dense\":\"\",\"activatable\":\"\",\"return-object\":\"\",\"items\":_vm.items,\"search\":_vm.search,\"open-on-click\":_vm.type === 'open'},on:{\"update:active\":_vm.activeFile},scopedSlots:_vm._u([{key:\"prepend\",fn:function({ item, open }){return [(!item.file)?_c('v-icon',[_vm._v(\" \"+_vm._s(open ? 'mdi-folder-open' : 'mdi-folder')+\" \")]):_c('v-icon',[_vm._v(\" \"+_vm._s('mdi-language-ruby')+\" \")])]}},{key:\"append\",fn:function({ item }){return [(item.name === '__TEMP__')?_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.deleteTemp}},[_c('v-icon',[_vm._v(\" mdi-delete \")])],1):_vm._e()]}}]),model:{value:(_vm.tree),callback:function ($$v) {_vm.tree=$$v},expression:\"tree\"}})],1),_c('v-row',{staticClass:\"my-2\"},[_c('v-text-field',{attrs:{\"hide-details\":\"\",\"label\":\"Filename\",\"data-test\":\"file-open-save-filename\",\"disabled\":_vm.type === 'open'},model:{value:(_vm.selectedFile),callback:function ($$v) {_vm.selectedFile=$$v},expression:\"selectedFile\"}})],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.error),expression:\"error\"}],staticClass:\"my-2 red--text\",domProps:{\"textContent\":_vm._s(_vm.error)}})]),_c('v-row',{staticClass:\"mt-2\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"outlined\":\"\",\"data-test\":\"file-open-save-cancel-btn\",\"disabled\":_vm.disableButtons},on:{\"click\":function($event){_vm.show = false}}},[_vm._v(\" Cancel \")]),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"type\":\"submit\",\"color\":\"primary\",\"data-test\":\"file-open-save-submit-btn\",\"disabled\":_vm.disableButtons || !!_vm.error},on:{\"click\":function($event){$event.preventDefault();return _vm.success.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.submit)+\" \")])],1)],1)])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileOpenSaveDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FileOpenSaveDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileOpenSaveDialog.vue?vue&type=template&id=010c078b&\"\nimport script from \"./FileOpenSaveDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./FileOpenSaveDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"width\":_vm.width},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-card',[_c('v-system-bar',[_c('v-spacer'),_c('span',[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('v-spacer'),_c('div',{staticClass:\"mx-2\"},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{attrs:{\"data-test\":\"downloadIcon\"},on:{\"click\":_vm.download}},[_vm._v(\" mdi-download \")])],1)]}}])},[_c('span',[_vm._v(\" Download \")])])],1)],1),_c('v-card-text',[_c('div',{staticClass:\"pa-3\"},[_c('span',{staticStyle:{\"white-space\":\"pre-wrap\"}},[_vm._v(_vm._s(_vm.text))])])]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.show = !_vm.show}}},[_vm._v(\" Ok \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SimpleTextDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SimpleTextDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SimpleTextDialog.vue?vue&type=template&id=4cd697cc&\"\nimport script from \"./SimpleTextDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SimpleTextDialog.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","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <top-bar :menus=\"menus\" :title=\"title\" />\n <v-snackbar v-model=\"showReadOnlyToast\" top :timeout=\"-1\" color=\"orange\">\n <v-icon> mdi-pencil-off </v-icon>\n {{ lockedBy }} is editing this script. Editor is in read-only mode\n <template v-slot:action=\"{ attrs }\">\n <v-btn\n text\n v-bind=\"attrs\"\n color=\"danger\"\n @click=\"confirmLocalUnlock\"\n data-test=\"unlock-button\"\n >\n Unlock\n </v-btn>\n <v-btn\n text\n v-bind=\"attrs\"\n @click=\"\n () => {\n showReadOnlyToast = false\n }\n \"\n >\n dismiss\n </v-btn>\n </template>\n </v-snackbar>\n <v-file-input\n show-size\n v-model=\"fileInput\"\n ref=\"fileInput\"\n accept=\".bin\"\n data-test=\"file-input\"\n style=\"position: fixed; top: -100%\"\n />\n <v-row dense>\n <v-col cols=\"6\">\n <v-text-field\n outlined\n dense\n readonly\n hide-details\n label=\"Filename\"\n v-model=\"fullFilename\"\n id=\"filename\"\n data-test=\"filename\"\n />\n </v-col>\n <v-col cols=\"6\">\n <v-text-field\n outlined\n dense\n readonly\n hide-details\n label=\"Definition\"\n v-model=\"definitionFilename\"\n id=\"definition-filename\"\n data-test=\"definition-filename\"\n />\n </v-col>\n </v-row>\n <v-row dense class=\"mb-1\">\n <v-col cols=\"auto\" class=\"mr-auto\">\n <span class=\"text-body-1 ma-2\">File Download:</span>\n <v-btn\n dense\n color=\"primary\"\n class=\"mr-3\"\n @click=\"downloadBinary(null)\"\n :disabled=\"filename == ''\"\n data-test=\"download-file-binary\"\n >\n Binary\n <v-icon right dark> mdi-file-code </v-icon>\n </v-btn>\n <v-btn\n dense\n color=\"primary\"\n class=\"mr-3\"\n @click=\"downloadDefinition(null)\"\n :disabled=\"filename == ''\"\n data-test=\"download-file-definition\"\n >\n Definition\n <v-icon right dark> mdi-file-document-edit </v-icon>\n </v-btn>\n <v-btn\n dense\n color=\"primary\"\n @click=\"downloadReport(null)\"\n :disabled=\"filename == ''\"\n data-test=\"download-file-report\"\n >\n Report\n <v-icon right dark> mdi-file-document </v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"auto\">\n <v-btn\n dense\n color=\"primary\"\n @click=\"upload()\"\n :disabled=\"!uploadScript\"\n data-test=\"upload-file\"\n >\n Upload\n <v-icon right dark> mdi-file-upload </v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"auto\">\n <v-btn\n dense\n color=\"primary\"\n @click=\"download()\"\n :disabled=\"!downloadScript\"\n data-test=\"download-file\"\n >\n Download\n <v-icon right dark> mdi-file-download </v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"auto\">\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <span v-bind=\"attrs\" v-on=\"on\">\n <v-checkbox\n v-model=\"scriptBackground\"\n label=\"B/G\"\n class=\"shrink mt-0\"\n data-test=\"upload-background\"\n />\n </span>\n </template>\n <span>Run upload download scripts in the background</span>\n </v-tooltip>\n </v-col>\n </v-row>\n <v-card>\n <v-card-title>\n Items\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-tabs v-model=\"curTab\">\n <v-tab v-for=\"(table, index) in tables\" :key=\"index\">\n {{ table.name }}\n </v-tab>\n </v-tabs>\n <v-tabs-items v-model=\"curTab\">\n <v-tab-item\n v-for=\"(table, index) in tables\"\n :key=\"`${filename}${index}`\"\n >\n <v-data-table\n :headers=\"table.headers\"\n :items=\"table.rows\"\n :search=\"search\"\n :items-per-page=\"20\"\n :footer-props=\"{\n itemsPerPageOptions: [10, 20, 50, 100, -1],\n }\"\n calculate-widths\n multi-sort\n dense\n :data-test=\"table.name\"\n >\n <template v-slot:item=\"{ item }\">\n <table-row\n :items=\"item\"\n :key=\"item[0].name\"\n @change=\"onChange(item, $event)\"\n />\n </template>\n <template v-slot:footer v-if=\"tables.length > 1\">\n <div style=\"position: absolute\" class=\"ma-3\">\n <span class=\"text-body-1 mr-3\">Table Download:</span>\n <v-btn\n dense\n color=\"primary\"\n class=\"mr-3\"\n @click=\"downloadBinary(table.name)\"\n :disabled=\"filename == ''\"\n data-test=\"download-table-binary\"\n >\n Binary\n <v-icon right dark> mdi-file-code </v-icon>\n </v-btn>\n <v-btn\n dense\n color=\"primary\"\n class=\"mr-3\"\n @click=\"downloadDefinition(table.name)\"\n :disabled=\"filename == ''\"\n data-test=\"download-table-definition\"\n >\n Definition\n <v-icon right dark> mdi-file-document-edit </v-icon>\n </v-btn>\n <v-btn\n dense\n color=\"primary\"\n @click=\"downloadReport(table.name)\"\n :disabled=\"filename == ''\"\n data-test=\"download-table-report\"\n >\n Report\n <v-icon right dark> mdi-file-document </v-icon>\n </v-btn>\n </div>\n </template>\n </v-data-table>\n </v-tab-item>\n </v-tabs-items>\n </v-card>\n <file-open-save-dialog\n v-if=\"fileOpen\"\n v-model=\"fileOpen\"\n type=\"open\"\n api-url=\"/openc3-api/tables\"\n @file=\"setFile($event)\"\n @error=\"setError($event)\"\n />\n <file-open-save-dialog\n v-if=\"showSaveAs\"\n v-model=\"showSaveAs\"\n type=\"save\"\n require-target-parent-dir\n api-url=\"/openc3-api/tables\"\n :input-filename=\"filename\"\n @filename=\"saveAsFilename($event)\"\n @error=\"setError($event)\"\n />\n <simple-text-dialog\n v-model=\"showError\"\n :title=\"errorTitle\"\n :text=\"errorText\"\n />\n </div>\n</template>\n\n<script>\nimport Api from '@openc3/tool-common/src/services/api'\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\nimport TopBar from '@openc3/tool-common/src/components/TopBar'\nimport TableRow from '@/tools/TableManager/TableRow'\nimport FileOpenSaveDialog from '@openc3/tool-common/src/components/FileOpenSaveDialog'\nimport SimpleTextDialog from '@openc3/tool-common/src/components/SimpleTextDialog'\n\nexport default {\n components: {\n TopBar,\n TableRow,\n FileOpenSaveDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n title: 'COSMOS Table Manager',\n search: '',\n curTab: null,\n tables: [],\n api: null,\n definition: null,\n fileInput: '',\n definitionFilename: '',\n fileNew: false,\n filename: '',\n fileModified: '',\n lockedBy: null,\n fileOpen: false,\n showSave: false,\n showSaveAs: false,\n showError: false,\n errorTitle: '',\n errorText: '',\n uploadScript: false,\n downloadScript: false,\n scriptBackground: true,\n }\n },\n computed: {\n readOnly: function () {\n return !!this.lockedBy\n },\n fullFilename() {\n return `${this.filename} ${this.fileModified}`.trim()\n },\n menus: function () {\n return [\n {\n label: 'File',\n items: [\n {\n label: 'New File',\n icon: 'mdi-file-plus',\n command: () => {\n this.newFile()\n },\n },\n {\n label: 'Open File',\n icon: 'mdi-folder-open',\n command: () => {\n this.openFile()\n },\n },\n {\n divider: true,\n },\n {\n label: 'Save File',\n icon: 'mdi-content-save',\n command: () => {\n this.saveFile()\n },\n },\n {\n label: 'Save As...',\n icon: 'mdi-content-save',\n command: () => {\n this.saveAs()\n },\n },\n {\n divider: true,\n },\n // {\n // label: 'Load Binary',\n // icon: 'mdi-cloud-upload',\n // command: () => {\n // this.loadBinary()\n // },\n // },\n // {\n // divider: true,\n // },\n {\n label: 'Delete File',\n icon: 'mdi-delete',\n command: () => {\n this.delete()\n },\n },\n ],\n },\n ]\n },\n },\n watch: {\n // Everytime the filename changes we figure out if there is an associated upload & download script\n filename: function (val) {\n let upload =\n this.filename.split('/').slice(0, 2).join('/') + '/procedures/upload.rb'\n let download =\n this.filename.split('/').slice(0, 2).join('/') +\n '/procedures/download.rb'\n Api.get(`/openc3-api/tables/${upload}`, {\n headers: {\n Accept: 'application/json',\n // Since we're just checking for existance, 404 is possible so ignore it\n 'Ignore-Errors': '404',\n },\n })\n .then((response) => {\n this.uploadScript = true\n })\n .catch((error) => {\n this.uploadScript = false\n })\n Api.get(`/openc3-api/tables/${download}`, {\n headers: {\n Accept: 'application/json',\n // Since we're just checking for existance, 404 is possible so ignore it\n 'Ignore-Errors': '404',\n },\n })\n .then((response) => {\n this.downloadScript = true\n })\n .catch((error) => {\n this.downloadScript = false\n })\n },\n },\n created() {\n // Ensure Offline Access Is Setup For the Current User\n this.api = new OpenC3Api()\n this.api.ensure_offline_access()\n },\n methods: {\n // File menu actions\n newFile: function () {\n this.fileModified = ''\n this.fileNew = true\n this.fileOpen = true\n },\n openFile: function () {\n this.fileOpen = true\n },\n // Called by the FileOpenDialog to set the file contents\n setFile: function ({ file, locked }) {\n // They opened a definition file so create a new binary\n if (file.name.includes('.txt')) {\n if (this.fileNew) {\n this.buildNewBinary(file.name)\n this.fileNew = false\n } else {\n this.getDefinition(file.name)\n }\n } else {\n this.unlockFile() // first unlock what was just being edited\n // Split off the ' *' which indicates a file is modified on the server\n this.filename = file.name.split('*')[0]\n this.fileModified = ''\n this.lockedBy = locked\n this.getDefinition()\n }\n },\n // Called by the FileOpenSaveDialog on error\n setError(event) {\n this.errorTitle = 'Error'\n this.errorText = `Error: ${event}`\n this.errorText = response.data.message\n this.showError = true\n },\n saveFile: function () {\n // Save a file by posting the new contents\n this.showSave = true\n\n const formData = new FormData()\n formData.append('binary', this.filename)\n formData.append('definition', this.definitionFilename)\n formData.append('tables', JSON.stringify(this.tables))\n Api.post(`/openc3-api/tables/${this.filename}`, {\n data: formData,\n })\n .then((response) => {\n this.fileModified = ''\n setTimeout(() => {\n this.showSave = false\n }, 2000)\n })\n .catch(({ response }) => {\n this.showSave = false\n this.errorTitle = 'Save Error'\n this.errorText = response.data.message\n this.showError = true\n })\n this.lockFile() // Ensure this file is locked for editing\n },\n saveAs: function () {\n this.showSaveAs = true\n },\n saveAsFilename: function (filename) {\n Api.put(`/openc3-api/tables/${this.filename}/save-as/${filename}`).then(\n (response) => {\n this.filename = filename\n this.getDefinition(this.definitionFilename)\n }\n )\n },\n delete: function () {\n if (this.filename !== '') {\n this.$dialog\n .confirm(`Permanently delete file: ${this.filename}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/tables/${this.filename}`, {\n data: {},\n })\n })\n .then((response) => {\n this.newFile()\n })\n .catch((error) => {\n if (error) {\n this.$notify.caution({\n title: 'Error',\n body: `Error deleting file: ${error}`,\n })\n }\n })\n }\n },\n downloadBinary: function (tableName = null) {\n const formData = new FormData()\n formData.append('binary', this.filename)\n formData.append('definition', this.definitionFilename)\n if (tableName !== null) {\n formData.append('table', tableName)\n }\n Api.post(`/openc3-api/tables/binary`, {\n data: formData,\n }).then((response) => {\n // Decode Base64 string\n const decodedData = window.atob(response.data.contents)\n // Create UNIT8ARRAY of size same as row data length\n const uInt8Array = new Uint8Array(decodedData.length)\n // Insert all character code into uInt8Array\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i)\n }\n // Return BLOB image after conversion\n const blob = new Blob([uInt8Array], {\n type: 'application/octet-stream',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n downloadDefinition: function (tableName = null) {\n const formData = new FormData()\n formData.append('definition', this.definitionFilename)\n if (tableName !== null) {\n formData.append('table', tableName)\n }\n Api.post(`/openc3-api/tables/definition`, {\n data: formData,\n }).then((response) => {\n const blob = new Blob([response.data.contents], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n downloadReport: function (tableName = null) {\n const formData = new FormData()\n formData.append('binary', this.filename)\n formData.append('definition', this.definitionFilename)\n if (tableName !== null) {\n formData.append('table', tableName)\n }\n Api.post(`/openc3-api/tables/report`, {\n data: formData,\n }).then((response) => {\n const header =\n `Binary: ${this.filename}\\n` +\n `Definition: ${this.definitionFilename}\\n\\n`\n const blob = new Blob([header, response.data.contents], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n upload() {\n let upload =\n this.filename.split('/').slice(0, 2).join('/') + '/procedures/upload.rb'\n Api.post(`/script-api/scripts/${upload}/run`, {\n data: {\n environment: [{ key: 'TBL_FILENAME', value: this.filename }],\n },\n }).then((response) => {\n if (this.scriptBackground !== true) {\n window.open(`/tools/scriptrunner/${response.data}`, '_blank')\n }\n })\n },\n download() {\n this.$dialog\n .confirm(\n `Are you sure you want to overwrite ${this.filename}? ` +\n 'You can Save As to create a new file and then Download to preserve the existing file. ' +\n 'Note: Once the download completes you will need to re-open the file to see changes.',\n {\n okText: 'Download (Overwrite!)',\n cancelText: 'Cancel',\n }\n )\n .then(() => {\n let download =\n this.filename.split('/').slice(0, 2).join('/') +\n '/procedures/download.rb'\n Api.post(`/script-api/scripts/${download}/run`, {\n data: {\n environment: [{ key: 'TBL_FILENAME', value: this.filename }],\n },\n }).then((response) => {\n if (this.scriptBackground !== true) {\n window.open(`/tools/scriptrunner/${response.data}`, '_blank')\n }\n })\n })\n .catch((error) => {}) // Cancel, do nothing\n },\n // TODO: Need to load to tmp dir or something before we can saveAs to rename\n // async loadBinary() {\n // this.fileInput = ''\n // this.$refs.fileInput.$refs.input.click()\n // // Wait for the file to be set by the dialog so upload works\n // while (this.fileInput === '') {\n // await new Promise((resolve) => setTimeout(resolve, 500))\n // }\n // this.filename = this.fileInput.name\n // this.saveAs()\n // },\n confirmLocalUnlock: function () {\n this.$dialog\n .confirm(\n 'Are you sure you want to unlock this file for editing? ' +\n 'If another user is editing this file, your changes might conflict with each other.',\n {\n okText: 'Force Unlock',\n cancelText: 'Cancel',\n }\n )\n .then(() => {\n this.lockedBy = null\n return this.lockFile() // Re-lock it as this user so it's locked for anyone else who opens it\n })\n },\n lockFile: function () {\n return Api.post(`/openc3-api/tables/${this.filename}/lock`)\n },\n unlockFile: function () {\n if (this.filename !== '' && !this.readOnly) {\n Api.post(`/openc3-api/tables/${this.filename}/unlock`)\n }\n },\n getDefinition: function (definitionFilename = null) {\n if (!definitionFilename) {\n definitionFilename = this.filename\n .replace('/bin/', '/config/')\n .replace('.bin', '_def.txt')\n }\n this.tables = [] // Clear so table is re-rendered\n const formData = new FormData()\n formData.append('binary', this.filename)\n formData.append('definition', definitionFilename)\n Api.post(`/openc3-api/tables/load`, {\n data: formData,\n })\n .then((response) => {\n this.definitionFilename = definitionFilename\n this.tables = response.data.tables.map((table) => {\n return {\n ...table,\n // Build up the headers for proper searching\n headers: table.headers.map((text, i) => {\n const header = {\n text,\n filterable: text !== 'INDEX',\n }\n if (table.numColumns === 1) {\n // In the 1D table the searchable value is the first value in the row\n // Note the names in 1D are INDEX, NAME, VALUE\n return {\n ...header,\n value: `[0].${text.toLowerCase()}`,\n }\n } else {\n // In the 2D table the searchable value is always in the value attribute\n // of the current column item\n return {\n ...header,\n value: `[${i}].value`,\n }\n }\n }),\n }\n })\n\n if (response.data['errors']) {\n this.$notify.caution({\n title: 'Warning',\n body: response.data['errors'],\n })\n }\n })\n .catch((error) => {\n if (error.response.status == 404) {\n this.$notify.normal({\n title: 'Definition File Not Found',\n body: `Definition file ${definitionFilename} not found. Please select definition file.`,\n })\n this.fileOpen = true\n } else {\n this.$notify.serious({\n title: 'Error',\n body: `Error loading due to ${error.response.statusText}. Status: ${error.response.status}`,\n })\n }\n })\n },\n buildNewBinary: function (filename) {\n const formData = new FormData()\n formData.append('definition', filename)\n Api.post(`/openc3-api/tables/generate`, {\n data: formData,\n }).then((response) => {\n this.filename = response.data.filename\n this.getDefinition(filename)\n })\n },\n onChange: function (item, { index, event }) {\n this.fileModified = '*'\n item[index].value = event\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableManager.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableManager.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableManager.vue?vue&type=template&id=a476528e&\"\nimport script from \"./TableManager.vue?vue&type=script&lang=js&\"\nexport * from \"./TableManager.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","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".v-list[data-v-2eb37f67] .v-label{margin-left:5px}.v-list-item__icon[data-v-2eb37f67]{margin-right:15px!important}.v-list-item__title[data-v-2eb37f67]{color:#fff}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=style&index=0&id=2eb37f67&prod&scoped=true&lang=css&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"706a3f6d\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["render","_vm","this","_c","_self","attrs","menus","title","scopedSlots","_u","key","fn","_b","on","confirmLocalUnlock","_v","showReadOnlyToast","model","value","callback","$$v","expression","_s","lockedBy","ref","staticStyle","fileInput","fullFilename","definitionFilename","staticClass","filename","$event","downloadBinary","downloadDefinition","downloadReport","uploadScript","upload","downloadScript","download","_g","scriptBackground","search","curTab","_l","tables","table","index","name","headers","rows","itemsPerPageOptions","item","onChange","length","proxy","fileOpen","setFile","setError","_e","showSaveAs","saveAsFilename","errorTitle","errorText","showError","staticRenderFns","vueInstance","Vue","axiosInstance","axios","baseURL","location","origin","timeout","params","interceptors","response","use","error","status","OpenC3Auth","updateToken","defaultMinValidity","includes","toString","Promise","reject","body","statusText","config","data","message","exception","class","$notify","serious","request","method","url","noAuth","noScope","login","localStorage","openc3Token","window","openc3Scope","acceptOnlyDefaultHeaders","Accept","fullDefaultHeaders","get","path","put","post","delete","OpenC3Api","kwparams","headerOptions","id","jsonrpc","keyword_params","Authorization","result","err","Error","val","json_class","raw","NaN","Infinity","Number","isNaN","POSITIVE_INFINITY","NEGATIVE_INFINITY","offline_access_needed","then","needed","openc3OfflineToken","set_offline_access","getOfflineAccess","exec","offline_access_token","target_name","interface_name","interface_params","router_name","target_commands","target","packet","log_writer_name","limits_set","packet_name","value_type","stale_time","type","len","converted","i","decode_openc3_type","items","item_name","undefined","item_hash","command_name","parameter_name","param_list","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","menu","formatDT","label","domProps","radioGroup","option","j","divider","disabled","command","radio","checkbox","checked","$set","icon","style","props","default","methods","mounted","document","component","dataItems","oneDimensional","isCheckbox","dataItem","editable","checkboxChange","checkValue","states","itemStates","stateChange","stateValue","textChange","required","created","computed","text","components","TableItem","event","indexOf","_k","keyCode","success","show","preventDefault","apply","arguments","handleSearch","activeFile","open","file","deleteTemp","tree","selectedFile","directives","rawName","disableButtons","submit","validator","apiUrl","requireTargetParentDir","inputFilename","targets","set","validFilenameRegex","Api","loadFiles","catch","clear","exists","root","found","confirm","okText","cancelText","openSuccess","contents","locked","breakpoints","saveSuccess","insertFile","children","level","parts","width","link","TopBar","TableRow","FileOpenSaveDialog","SimpleTextDialog","api","definition","fileNew","fileModified","showSave","readOnly","watch","newFile","openFile","saveFile","formData","setTimeout","saveAs","uInt8Array","environment","lockFile","unlockFile","getDefinition","replace","filterable","header","buildNewBinary","___CSS_LOADER_EXPORT___","push","module","content","__esModule","locals","exports","add"],"sourceRoot":""}
|