openc3-tool-admin 5.0.7 → 5.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/tools/admin/js/107.js +2 -0
  3. data/tools/admin/js/107.js.map +1 -0
  4. data/tools/admin/js/113.js +2 -0
  5. data/tools/admin/js/113.js.map +1 -0
  6. data/tools/admin/js/179.js +1 -1
  7. data/tools/admin/js/179.js.map +1 -1
  8. data/tools/admin/js/249.js +2 -0
  9. data/tools/admin/js/249.js.map +1 -0
  10. data/tools/admin/js/262.js +1 -1
  11. data/tools/admin/js/372.js +1 -1
  12. data/tools/admin/js/388.js +2 -0
  13. data/tools/admin/js/388.js.map +1 -0
  14. data/tools/admin/js/400.js +2 -0
  15. data/tools/admin/js/400.js.map +1 -0
  16. data/tools/admin/js/43.js +2 -0
  17. data/tools/admin/js/43.js.map +1 -0
  18. data/tools/admin/js/637.js +2 -0
  19. data/tools/admin/js/637.js.map +1 -0
  20. data/tools/admin/js/758.js +2 -0
  21. data/tools/admin/js/758.js.map +1 -0
  22. data/tools/admin/js/780.js +2 -0
  23. data/tools/admin/js/780.js.map +1 -0
  24. data/tools/admin/js/824.js +2 -0
  25. data/tools/admin/js/824.js.map +1 -0
  26. data/tools/admin/js/851.js +4 -0
  27. data/tools/admin/js/851.js.map +1 -0
  28. data/tools/admin/js/909.js +2 -0
  29. data/tools/admin/js/909.js.map +1 -0
  30. data/tools/admin/js/app.js +1 -1
  31. data/tools/admin/js/app.js.map +1 -1
  32. metadata +26 -28
  33. data/tools/admin/js/108.js +0 -2
  34. data/tools/admin/js/108.js.map +0 -1
  35. data/tools/admin/js/217.js +0 -2
  36. data/tools/admin/js/217.js.map +0 -1
  37. data/tools/admin/js/248.js +0 -2
  38. data/tools/admin/js/248.js.map +0 -1
  39. data/tools/admin/js/251.js +0 -2
  40. data/tools/admin/js/251.js.map +0 -1
  41. data/tools/admin/js/32.js +0 -2
  42. data/tools/admin/js/32.js.map +0 -1
  43. data/tools/admin/js/354.js +0 -2
  44. data/tools/admin/js/354.js.map +0 -1
  45. data/tools/admin/js/37.js +0 -2
  46. data/tools/admin/js/37.js.map +0 -1
  47. data/tools/admin/js/449.js +0 -2
  48. data/tools/admin/js/449.js.map +0 -1
  49. data/tools/admin/js/629.js +0 -2
  50. data/tools/admin/js/629.js.map +0 -1
  51. data/tools/admin/js/699.js +0 -2
  52. data/tools/admin/js/699.js.map +0 -1
  53. data/tools/admin/js/844.js +0 -4
  54. data/tools/admin/js/844.js.map +0 -1
  55. data/tools/admin/js/850.js +0 -2
  56. data/tools/admin/js/850.js.map +0 -1
  57. data/tools/admin/js/957.js +0 -2
  58. data/tools/admin/js/957.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/32.js","mappings":"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","sources":["webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/MicroservicesTab.vue?bcda","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/TextBoxDialog.vue?e522","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/TextBoxDialog.vue","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/TextBoxDialog.vue?cc45","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/TextBoxDialog.vue?3d0e","webpack://@openc3/tool-admin/src/tools/OpenC3Admin/tabs/MicroservicesTab.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/MicroservicesTab.vue?0ba5","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/MicroservicesTab.vue"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-list',{attrs:{\"data-test\":\"microserviceList\"}},_vm._l((_vm.microservices),function(microservice,index){return _c('div',{key:microservice},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(microservice))]),(_vm.microservice_status[microservice])?_c('v-list-item-subtitle',[_vm._v(\" Updated: \"+_vm._s(_vm.microservice_status[microservice].updated_at)+\", State: \"+_vm._s(_vm.microservice_status[microservice].state)+\", Count: \"+_vm._s(_vm.microservice_status[microservice].count)+\" \")]):_vm._e()],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!!_vm.microservice_status[microservice].error),expression:\"!!microservice_status[microservice].error\"}]},[_c('v-list-item-icon',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({on:{\"click\":function($event){return _vm.showMicroserviceError(microservice)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-alert \")])]}}],null,true)},[_c('span',[_vm._v(\"View Error\")])])],1)],1),_c('v-list-item-icon',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({on:{\"click\":function($event){return _vm.showMicroservice(microservice)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-eye \")])]}}],null,true)},[_c('span',[_vm._v(\"Edit Microservice\")])])],1)],1),(index < _vm.microservices.length - 1)?_c('v-divider',{key:index}):_vm._e()],1)}),0),(_vm.showDialog)?_c('edit-dialog',{attrs:{\"content\":_vm.jsonContent,\"title\":(\"Microservice: \" + _vm.dialogTitle),\"readonly\":\"\"},on:{\"submit\":_vm.dialogCallback},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}}):_vm._e(),(_vm.showError)?_c('text-box-dialog',{attrs:{\"text\":_vm.jsonContent,\"title\":_vm.dialogTitle},model:{value:(_vm.showError),callback:function ($$v) {_vm.showError=$$v},expression:\"showError\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":\"600\"},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(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{attrs:{\"data-test\":\"downloadIcon\"},on:{\"click\":_vm.download}},[_vm._v(\" mdi-download \")])],1)]}}])},[_c('span',[_vm._v(\" Download \")])])],1)],1),_c('div',{staticClass:\"pa-2\"},[_c('v-card-text',[_c('v-textarea',{attrs:{\"readonly\":\"\",\"rows\":\"15\",\"data-test\":\"dialogText\"},model:{value:(_vm.dialogText),callback:function ($$v) {_vm.dialogText=$$v},expression:\"dialogText\"}})],1)],1),_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)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"600\">\n <v-card>\n <v-system-bar>\n <v-spacer />\n <span> {{ title }} </span>\n <v-spacer />\n <div class=\"mx-2\">\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-icon data-test=\"downloadIcon\" @click=\"download\">\n mdi-download\n </v-icon>\n </div>\n </template>\n <span> Download </span>\n </v-tooltip>\n </div>\n </v-system-bar>\n <div class=\"pa-2\">\n <v-card-text>\n <v-textarea\n v-model=\"dialogText\"\n readonly\n rows=\"15\"\n data-test=\"dialogText\"\n />\n </v-card-text>\n </div>\n <v-card-actions>\n <v-spacer />\n <v-btn class=\"mx-2\" color=\"primary\" @click=\"show = !show\"> Ok </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nexport default {\n props: {\n value: Boolean, // value is the default prop when using v-model\n text: String,\n title: String,\n },\n computed: {\n dialogText: function () {\n return this.text\n },\n show: {\n get() {\n return this.value\n },\n set(value) {\n this.$emit('input', value) // input is the default event when using v-model\n },\n },\n },\n methods: {\n download: function () {\n const blob = new Blob([this.dialogText], {\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', `${this.title}__error.txt`)\n link.click()\n },\n },\n}\n</script>\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextBoxDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextBoxDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextBoxDialog.vue?vue&type=template&id=8ba29454&\"\nimport script from \"./TextBoxDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./TextBoxDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\n\n<template>\n <div>\n <v-list data-test=\"microserviceList\">\n <div v-for=\"(microservice, index) in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title>{{ microservice }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice]\">\n Updated: {{ microservice_status[microservice].updated_at }},\n State: {{ microservice_status[microservice].state }}, Count:\n {{ microservice_status[microservice].count }}\n </v-list-item-subtitle>\n </v-list-item-content>\n <div v-show=\"!!microservice_status[microservice].error\">\n <v-list-item-icon>\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n @click=\"showMicroserviceError(microservice)\"\n v-bind=\"attrs\"\n v-on=\"on\"\n >\n mdi-alert\n </v-icon>\n </template>\n <span>View Error</span>\n </v-tooltip>\n </v-list-item-icon>\n </div>\n <v-list-item-icon>\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n @click=\"showMicroservice(microservice)\"\n v-bind=\"attrs\"\n v-on=\"on\"\n >\n mdi-eye\n </v-icon>\n </template>\n <span>Edit Microservice</span>\n </v-tooltip>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if=\"index < microservices.length - 1\" :key=\"index\" />\n </div>\n </v-list>\n <edit-dialog\n v-model=\"showDialog\"\n v-if=\"showDialog\"\n :content=\"jsonContent\"\n :title=\"`Microservice: ${dialogTitle}`\"\n readonly\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-model=\"showError\"\n v-if=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport Api from '@openc3/tool-common/src/services/api'\nimport EditDialog from '@/tools/OpenC3Admin/EditDialog'\nimport TextBoxDialog from '@openc3/tool-common/src/components/TextBoxDialog'\n\nexport default {\n components: {\n EditDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n }\n },\n mounted() {\n this.update()\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices').then((response) => {\n this.microservices = response.data\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MicroservicesTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MicroservicesTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MicroservicesTab.vue?vue&type=template&id=5e4ea7bc&\"\nimport script from \"./MicroservicesTab.vue?vue&type=script&lang=js&\"\nexport * from \"./MicroservicesTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","_l","microservice","index","key","_v","_s","microservice_status","updated_at","state","count","_e","directives","name","rawName","value","error","expression","scopedSlots","_u","fn","ref","on","_g","_b","$event","showMicroserviceError","showMicroservice","microservices","length","jsonContent","dialogTitle","dialogCallback","model","callback","$$v","showDialog","showError","staticRenderFns","show","title","staticClass","download","dialogText","props","text","computed","get","set","methods","type","link","component","components","EditDialog","TextBoxDialog","data","microservice_id","mounted","update","Api","method","url","json","then","setTimeout"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self["webpackChunk_openc3_tool_admin"]=self["webpackChunk_openc3_tool_admin"]||[]).push([[354],{8354:function(n,e,l){l.r(e),l.d(e,{default:function(){return d}});var t=function(){var n=this,e=n.$createElement,l=n._self._c||e;return l("div",[l("v-row",{staticStyle:{"padding-left":"10px"},attrs:{"no-gutters":"",align:"center"}},[l("v-col",{attrs:{cols:"3"}},[l("v-btn",{attrs:{block:"",color:"primary","data-test":"toolAdd",disabled:!n.name||!n.url||!n.icon},on:{click:function(e){return n.add()}}},[n._v(" Add "),l("v-icon",{attrs:{right:"",dark:""}},[n._v(n._s(n.icon))])],1)],1),l("v-col",{attrs:{cols:"3"}},[l("v-text-field",{staticClass:"px-2",attrs:{label:"Tool Icon"},model:{value:n.icon,callback:function(e){n.icon=e},expression:"icon"}})],1),l("v-col",{attrs:{cols:"3"}},[l("v-text-field",{staticClass:"px-2",attrs:{label:"Tool Name"},model:{value:n.name,callback:function(e){n.name=e},expression:"name"}})],1),l("v-col",{staticClass:"px-2",attrs:{cols:"3"}},[l("v-text-field",{attrs:{label:"Tool Url"},model:{value:n.url,callback:function(e){n.url=e},expression:"url"}})],1)],1),l("v-alert",{attrs:{type:n.alertType,dismissible:"",transition:"scale-transition"},model:{value:n.showAlert,callback:function(e){n.showAlert=e},expression:"showAlert"}},[n._v(" "+n._s(n.alert)+" ")]),l("v-list",{attrs:{"data-test":"toolList",id:"toollist"}},n._l(n.tools,(function(e,t){return l("div",{key:e},[l("v-list-item",[l("v-list-item-icon",[l("v-icon",[n._v(" mdi-drag-horizontal ")])],1),l("v-list-item-content",[l("v-list-item-title",[n._v(n._s(e))])],1),l("v-list-item-icon",[l("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(t){var o=t.on,i=t.attrs;return[l("v-icon",n._g(n._b({on:{click:function(l){return n.editTool(e)}}},"v-icon",i,!1),o),[n._v(" mdi-pencil ")])]}}],null,!0)},[l("span",[n._v("Edit Tool")])])],1),l("v-list-item-icon",[l("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(t){var o=t.on,i=t.attrs;return[l("v-icon",n._g(n._b({on:{click:function(l){return n.deleteTool(e)}}},"v-icon",i,!1),o),[n._v(" mdi-delete ")])]}}],null,!0)},[l("span",[n._v("Delete Tool")])])],1)],1),t<n.tools.length-1?l("v-divider",{key:t}):n._e()],1)})),0),l("v-alert",{attrs:{type:n.alertType,dismissible:"",transition:"scale-transition"},model:{value:n.showAlert,callback:function(e){n.showAlert=e},expression:"showAlert"}},[n._v(" "+n._s(n.alert)+" ")]),n.showDialog?l("edit-dialog",{attrs:{content:n.jsonContent,title:"Tool: "+n.dialogTitle},on:{submit:n.dialogCallback},model:{value:n.showDialog,callback:function(e){n.showDialog=e},expression:"showDialog"}}):n._e()],1)},o=[],i=(l(6710),l(1261)),s=l(8221),a=l(1921);function c(){var n="/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/ToolsTab.vue",e="15c774598a6c74bafffe6e07ce2dccb02d4a651e",l=new Function("return this")(),t="__coverage__",o={path:"/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/ToolsTab.vue",statementMap:{0:{start:{line:112,column:4},end:{line:124,column:5}},1:{start:{line:127,column:4},end:{line:127,column:17}},2:{start:{line:128,column:13},end:{line:128,column:48}},3:{start:{line:129,column:19},end:{line:129,column:70}},4:{start:{line:133,column:6},end:{line:146,column:8}},5:{start:{line:139,column:8},end:{line:139,column:65}},6:{start:{line:140,column:8},end:{line:140,column:34}},7:{start:{line:141,column:8},end:{line:141,column:29}},8:{start:{line:142,column:8},end:{line:144,column:16}},9:{start:{line:143,column:10},end:{line:143,column:32}},10:{start:{line:145,column:8},end:{line:145,column:21}},11:{start:{line:149,column:6},end:{line:155,column:7}},12:{start:{line:151,column:10},end:{line:151,column:36}},13:{start:{line:152,column:10},end:{line:152,column:24}},14:{start:{line:153,column:10},end:{line:153,column:23}},15:{start:{line:158,column:6},end:{line:177,column:8}},16:{start:{line:170,column:8},end:{line:170,column:46}},17:{start:{line:171,column:8},end:{line:171,column:34}},18:{start:{line:172,column:8},end:{line:172,column:29}},19:{start:{line:173,column:8},end:{line:175,column:16}},20:{start:{line:174,column:10},end:{line:174,column:32}},21:{start:{line:176,column:8},end:{line:176,column:21}},22:{start:{line:180,column:6},end:{line:187,column:8}},23:{start:{line:183,column:8},end:{line:183,column:27}},24:{start:{line:184,column:8},end:{line:184,column:68}},25:{start:{line:185,column:8},end:{line:185,column:31}},26:{start:{line:186,column:8},end:{line:186,column:30}},27:{start:{line:190,column:6},end:{line:190,column:29}},28:{start:{line:191,column:6},end:{line:214,column:7}},29:{start:{line:192,column:21},end:{line:192,column:40}},30:{start:{line:193,column:21},end:{line:193,column:26}},31:{start:{line:194,column:18},end:{line:194,column:53}},32:{start:{line:195,column:8},end:{line:198,column:9}},33:{start:{line:196,column:10},end:{line:196,column:25}},34:{start:{line:197,column:10},end:{line:197,column:35}},35:{start:{line:200,column:8},end:{line:213,column:10}},36:{start:{line:206,column:10},end:{line:206,column:38}},37:{start:{line:207,column:10},end:{line:207,column:36}},38:{start:{line:208,column:10},end:{line:208,column:31}},39:{start:{line:209,column:10},end:{line:211,column:18}},40:{start:{line:210,column:12},end:{line:210,column:34}},41:{start:{line:212,column:10},end:{line:212,column:23}},42:{start:{line:217,column:6},end:{line:235,column:10}},43:{start:{line:223,column:10},end:{line:225,column:12}},44:{start:{line:228,column:10},end:{line:228,column:45}},45:{start:{line:229,column:10},end:{line:229,column:36}},46:{start:{line:230,column:10},end:{line:230,column:31}},47:{start:{line:231,column:10},end:{line:233,column:18}},48:{start:{line:232,column:12},end:{line:232,column:34}},49:{start:{line:234,column:10},end:{line:234,column:23}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:111,column:2},end:{line:111,column:3}},loc:{start:{line:111,column:9},end:{line:125,column:3}},line:111},1:{name:"(anonymous_1)",decl:{start:{line:126,column:2},end:{line:126,column:3}},loc:{start:{line:126,column:12},end:{line:130,column:3}},line:126},2:{name:"(anonymous_2)",decl:{start:{line:132,column:4},end:{line:132,column:5}},loc:{start:{line:132,column:21},end:{line:147,column:5}},line:132},3:{name:"(anonymous_3)",decl:{start:{line:138,column:14},end:{line:138,column:15}},loc:{start:{line:138,column:28},end:{line:146,column:7}},line:138},4:{name:"(anonymous_4)",decl:{start:{line:142,column:19},end:{line:142,column:20}},loc:{start:{line:142,column:25},end:{line:144,column:9}},line:142},5:{name:"(anonymous_5)",decl:{start:{line:148,column:4},end:{line:148,column:5}},loc:{start:{line:148,column:13},end:{line:156,column:5}},line:148},6:{name:"(anonymous_6)",decl:{start:{line:150,column:8},end:{line:150,column:9}},loc:{start:{line:150,column:22},end:{line:154,column:9}},line:150},7:{name:"(anonymous_7)",decl:{start:{line:157,column:4},end:{line:157,column:5}},loc:{start:{line:157,column:10},end:{line:178,column:5}},line:157},8:{name:"(anonymous_8)",decl:{start:{line:169,column:14},end:{line:169,column:15}},loc:{start:{line:169,column:28},end:{line:177,column:7}},line:169},9:{name:"(anonymous_9)",decl:{start:{line:173,column:19},end:{line:173,column:20}},loc:{start:{line:173,column:25},end:{line:175,column:9}},line:173},10:{name:"(anonymous_10)",decl:{start:{line:179,column:4},end:{line:179,column:5}},loc:{start:{line:179,column:19},end:{line:188,column:5}},line:179},11:{name:"(anonymous_11)",decl:{start:{line:182,column:14},end:{line:182,column:15}},loc:{start:{line:182,column:28},end:{line:187,column:7}},line:182},12:{name:"(anonymous_12)",decl:{start:{line:189,column:4},end:{line:189,column:5}},loc:{start:{line:189,column:28},end:{line:215,column:5}},line:189},13:{name:"(anonymous_13)",decl:{start:{line:205,column:16},end:{line:205,column:17}},loc:{start:{line:205,column:30},end:{line:213,column:9}},line:205},14:{name:"(anonymous_14)",decl:{start:{line:209,column:21},end:{line:209,column:22}},loc:{start:{line:209,column:27},end:{line:211,column:11}},line:209},15:{name:"(anonymous_15)",decl:{start:{line:216,column:4},end:{line:216,column:5}},loc:{start:{line:216,column:21},end:{line:236,column:5}},line:216},16:{name:"(anonymous_16)",decl:{start:{line:222,column:14},end:{line:222,column:15}},loc:{start:{line:222,column:32},end:{line:226,column:9}},line:222},17:{name:"(anonymous_17)",decl:{start:{line:227,column:14},end:{line:227,column:15}},loc:{start:{line:227,column:28},end:{line:235,column:9}},line:227},18:{name:"(anonymous_18)",decl:{start:{line:231,column:21},end:{line:231,column:22}},loc:{start:{line:231,column:27},end:{line:233,column:11}},line:231}},branchMap:{0:{loc:{start:{line:191,column:6},end:{line:214,column:7}},type:"if",locations:[{start:{line:191,column:6},end:{line:214,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:191},1:{loc:{start:{line:195,column:8},end:{line:198,column:9}},type:"if",locations:[{start:{line:195,column:8},end:{line:198,column:9}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:195}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0},b:{0:[0,0],1:[0,0]},inputSourceMap:{version:3,sources:["ToolsTab.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"ToolsTab.vue",sourceRoot:"src/tools/OpenC3Admin/tabs",sourcesContent:['\x3c!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n--\x3e\n\n<template>\n <div>\n <v-row no-gutters align="center" style="padding-left: 10px">\n <v-col cols="3">\n <v-btn\n block\n color="primary"\n data-test="toolAdd"\n @click="add()"\n :disabled="!name || !url || !icon"\n >\n Add\n <v-icon right dark>{{ icon }}</v-icon>\n </v-btn>\n </v-col>\n <v-col cols="3">\n <v-text-field v-model="icon" label="Tool Icon" class="px-2" />\n </v-col>\n <v-col cols="3">\n <v-text-field v-model="name" label="Tool Name" class="px-2" />\n </v-col>\n <v-col cols="3" class="px-2">\n <v-text-field v-model="url" label="Tool Url" />\n </v-col>\n </v-row>\n <v-alert\n :type="alertType"\n v-model="showAlert"\n dismissible\n transition="scale-transition"\n >\n {{ alert }}\n </v-alert>\n <v-list data-test="toolList" id="toollist">\n <div v-for="(tool, index) in tools" :key="tool">\n <v-list-item>\n <v-list-item-icon>\n <v-icon> mdi-drag-horizontal </v-icon>\n </v-list-item-icon>\n <v-list-item-content>\n <v-list-item-title>{{ tool }}</v-list-item-title>\n </v-list-item-content>\n <v-list-item-icon>\n <v-tooltip bottom>\n <template v-slot:activator="{ on, attrs }">\n <v-icon @click="editTool(tool)" v-bind="attrs" v-on="on">\n mdi-pencil\n </v-icon>\n </template>\n <span>Edit Tool</span>\n </v-tooltip>\n </v-list-item-icon>\n <v-list-item-icon>\n <v-tooltip bottom>\n <template v-slot:activator="{ on, attrs }">\n <v-icon @click="deleteTool(tool)" v-bind="attrs" v-on="on">\n mdi-delete\n </v-icon>\n </template>\n <span>Delete Tool</span>\n </v-tooltip>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if="index < tools.length - 1" :key="index" />\n </div>\n </v-list>\n <v-alert\n :type="alertType"\n v-model="showAlert"\n dismissible\n transition="scale-transition"\n >\n {{ alert }}\n </v-alert>\n <edit-dialog\n v-model="showDialog"\n v-if="showDialog"\n :content="jsonContent"\n :title="`Tool: ${dialogTitle}`"\n @submit="dialogCallback"\n />\n </div>\n</template>\n\n<script>\nimport Api from \'@openc3/tool-common/src/services/api\'\nimport EditDialog from \'@/tools/OpenC3Admin/EditDialog\'\nimport Sortable from \'sortablejs\'\n\nexport default {\n components: { EditDialog },\n data() {\n return {\n name: null,\n icon: \'$astro-add-small\',\n url: null,\n tools: [],\n alert: \'\',\n alertType: \'success\',\n showAlert: false,\n jsonContent: \'\',\n dialogTitle: \'\',\n showDialog: false,\n tool_id: null,\n }\n },\n mounted() {\n this.update()\n var el = document.getElementById(\'toollist\')\n var sortable = Sortable.create(el, { onUpdate: this.sortChanged })\n },\n methods: {\n sortChanged(evt) {\n Api.post(`/openc3-api/tools/position/${this.tools[evt.oldIndex]}`, {\n data: {\n position: evt.newIndex,\n },\n params: { scope: \'DEFAULT\' },\n }).then((response) => {\n this.alert = `Reordered tool ${this.tools[evt.oldIndex]}`\n this.alertType = \'success\'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n },\n update() {\n Api.get(\'/openc3-api/tools\', { params: { scope: \'DEFAULT\' } }).then(\n (response) => {\n this.tools = response.data\n this.name = \'\'\n this.url = \'\'\n }\n )\n },\n add() {\n Api.post(\'/openc3-api/tools\', {\n data: {\n id: this.name,\n json: JSON.stringify({\n name: this.name,\n icon: this.icon,\n url: this.url,\n window: \'NEW\',\n }),\n },\n params: { scope: \'DEFAULT\' },\n }).then((response) => {\n this.alert = `Added tool ${this.name}`\n this.alertType = \'success\'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n },\n editTool(name) {\n Api.get(`/openc3-api/tools/${name}`, {\n params: { scope: \'DEFAULT\' },\n }).then((response) => {\n this.tool_id = name\n this.jsonContent = JSON.stringify(response.data, null, \'\\t\')\n this.dialogTitle = name\n this.showDialog = true\n })\n },\n dialogCallback(content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = \'put\'\n let url = `/openc3-api/tools/${this.tool_id}`\n if (parsed[\'name\'] !== this.tool_id) {\n method = \'post\'\n url = \'/openc3-api/tools\'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n params: { scope: \'DEFAULT\' },\n }).then((response) => {\n this.alert = \'Modified Tool\'\n this.alertType = \'success\'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n deleteTool(name) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${name}`, {\n okText: \'Delete\',\n cancelText: \'Cancel\',\n })\n .then(function (dialog) {\n return Api.delete(`/openc3-api/tools/${name}`, {\n params: { scope: \'DEFAULT\' },\n })\n })\n .then((response) => {\n this.alert = `Removed tool ${name}`\n this.alertType = \'success\'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"15c774598a6c74bafffe6e07ce2dccb02d4a651e"},i=l[t]||(l[t]={});i[n]&&i[n].hash===e||(i[n]=o);var s=i[n];return c=function(){return s},s}c();var A={components:{EditDialog:s.Z},data:function(){return c().f[0]++,c().s[0]++,{name:null,icon:"$astro-add-small",url:null,tools:[],alert:"",alertType:"success",showAlert:!1,jsonContent:"",dialogTitle:"",showDialog:!1,tool_id:null}},mounted:function(){c().f[1]++,c().s[1]++,this.update();var n=(c().s[2]++,document.getElementById("toollist"));c().s[3]++,a.ZP.create(n,{onUpdate:this.sortChanged})},methods:{sortChanged:function(n){var e=this;c().f[2]++,c().s[4]++,i.Z.post("/openc3-api/tools/position/".concat(this.tools[n.oldIndex]),{data:{position:n.newIndex},params:{scope:"DEFAULT"}}).then((function(l){c().f[3]++,c().s[5]++,e.alert="Reordered tool ".concat(e.tools[n.oldIndex]),c().s[6]++,e.alertType="success",c().s[7]++,e.showAlert=!0,c().s[8]++,setTimeout((function(){c().f[4]++,c().s[9]++,e.showAlert=!1}),5e3),c().s[10]++,e.update()}))},update:function(){var n=this;c().f[5]++,c().s[11]++,i.Z.get("/openc3-api/tools",{params:{scope:"DEFAULT"}}).then((function(e){c().f[6]++,c().s[12]++,n.tools=e.data,c().s[13]++,n.name="",c().s[14]++,n.url=""}))},add:function(){var n=this;c().f[7]++,c().s[15]++,i.Z.post("/openc3-api/tools",{data:{id:this.name,json:JSON.stringify({name:this.name,icon:this.icon,url:this.url,window:"NEW"})},params:{scope:"DEFAULT"}}).then((function(e){c().f[8]++,c().s[16]++,n.alert="Added tool ".concat(n.name),c().s[17]++,n.alertType="success",c().s[18]++,n.showAlert=!0,c().s[19]++,setTimeout((function(){c().f[9]++,c().s[20]++,n.showAlert=!1}),5e3),c().s[21]++,n.update()}))},editTool:function(n){var e=this;c().f[10]++,c().s[22]++,i.Z.get("/openc3-api/tools/".concat(n),{params:{scope:"DEFAULT"}}).then((function(l){c().f[11]++,c().s[23]++,e.tool_id=n,c().s[24]++,e.jsonContent=JSON.stringify(l.data,null,"\t"),c().s[25]++,e.dialogTitle=n,c().s[26]++,e.showDialog=!0}))},dialogCallback:function(n){var e=this;if(c().f[12]++,c().s[27]++,this.showDialog=!1,c().s[28]++,null!==n){c().b[0][0]++;var l=(c().s[29]++,JSON.parse(n)),t=(c().s[30]++,"put"),o=(c().s[31]++,"/openc3-api/tools/".concat(this.tool_id));c().s[32]++,l["name"]!==this.tool_id?(c().b[1][0]++,c().s[33]++,t="post",c().s[34]++,o="/openc3-api/tools"):c().b[1][1]++,c().s[35]++,i.Z[t](o,{data:{json:n},params:{scope:"DEFAULT"}}).then((function(n){c().f[13]++,c().s[36]++,e.alert="Modified Tool",c().s[37]++,e.alertType="success",c().s[38]++,e.showAlert=!0,c().s[39]++,setTimeout((function(){c().f[14]++,c().s[40]++,e.showAlert=!1}),5e3),c().s[41]++,e.update()}))}else c().b[0][1]++},deleteTool:function(n){var e=this;c().f[15]++,c().s[42]++,this.$dialog.confirm("Are you sure you want to remove: ".concat(n),{okText:"Delete",cancelText:"Cancel"}).then((function(e){return c().f[16]++,c().s[43]++,i.Z["delete"]("/openc3-api/tools/".concat(n),{params:{scope:"DEFAULT"}})})).then((function(l){c().f[17]++,c().s[44]++,e.alert="Removed tool ".concat(n),c().s[45]++,e.alertType="success",c().s[46]++,e.showAlert=!0,c().s[47]++,setTimeout((function(){c().f[18]++,c().s[48]++,e.showAlert=!1}),5e3),c().s[49]++,e.update()}))}}},r=A,u=l(3287),m=(0,u.Z)(r,t,o,!1,null,null,null),d=m.exports}}]);
2
- //# sourceMappingURL=354.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/354.js","mappings":"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","sources":["webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/ToolsTab.vue?1cf5","webpack://@openc3/tool-admin/src/tools/OpenC3Admin/tabs/ToolsTab.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/ToolsTab.vue?f32d","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/ToolsTab.vue"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',{staticStyle:{\"padding-left\":\"10px\"},attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-btn',{attrs:{\"block\":\"\",\"color\":\"primary\",\"data-test\":\"toolAdd\",\"disabled\":!_vm.name || !_vm.url || !_vm.icon},on:{\"click\":function($event){return _vm.add()}}},[_vm._v(\" Add \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(_vm._s(_vm.icon))])],1)],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"Tool Icon\"},model:{value:(_vm.icon),callback:function ($$v) {_vm.icon=$$v},expression:\"icon\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"Tool Name\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('v-col',{staticClass:\"px-2\",attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":\"Tool Url\"},model:{value:(_vm.url),callback:function ($$v) {_vm.url=$$v},expression:\"url\"}})],1)],1),_c('v-alert',{attrs:{\"type\":_vm.alertType,\"dismissible\":\"\",\"transition\":\"scale-transition\"},model:{value:(_vm.showAlert),callback:function ($$v) {_vm.showAlert=$$v},expression:\"showAlert\"}},[_vm._v(\" \"+_vm._s(_vm.alert)+\" \")]),_c('v-list',{attrs:{\"data-test\":\"toolList\",\"id\":\"toollist\"}},_vm._l((_vm.tools),function(tool,index){return _c('div',{key:tool},[_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\" mdi-drag-horizontal \")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(tool))])],1),_c('v-list-item-icon',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({on:{\"click\":function($event){return _vm.editTool(tool)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-pencil \")])]}}],null,true)},[_c('span',[_vm._v(\"Edit Tool\")])])],1),_c('v-list-item-icon',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({on:{\"click\":function($event){return _vm.deleteTool(tool)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-delete \")])]}}],null,true)},[_c('span',[_vm._v(\"Delete Tool\")])])],1)],1),(index < _vm.tools.length - 1)?_c('v-divider',{key:index}):_vm._e()],1)}),0),_c('v-alert',{attrs:{\"type\":_vm.alertType,\"dismissible\":\"\",\"transition\":\"scale-transition\"},model:{value:(_vm.showAlert),callback:function ($$v) {_vm.showAlert=$$v},expression:\"showAlert\"}},[_vm._v(\" \"+_vm._s(_vm.alert)+\" \")]),(_vm.showDialog)?_c('edit-dialog',{attrs:{\"content\":_vm.jsonContent,\"title\":(\"Tool: \" + _vm.dialogTitle)},on:{\"submit\":_vm.dialogCallback},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\n\n<template>\n <div>\n <v-row no-gutters align=\"center\" style=\"padding-left: 10px\">\n <v-col cols=\"3\">\n <v-btn\n block\n color=\"primary\"\n data-test=\"toolAdd\"\n @click=\"add()\"\n :disabled=\"!name || !url || !icon\"\n >\n Add\n <v-icon right dark>{{ icon }}</v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"3\">\n <v-text-field v-model=\"icon\" label=\"Tool Icon\" class=\"px-2\" />\n </v-col>\n <v-col cols=\"3\">\n <v-text-field v-model=\"name\" label=\"Tool Name\" class=\"px-2\" />\n </v-col>\n <v-col cols=\"3\" class=\"px-2\">\n <v-text-field v-model=\"url\" label=\"Tool Url\" />\n </v-col>\n </v-row>\n <v-alert\n :type=\"alertType\"\n v-model=\"showAlert\"\n dismissible\n transition=\"scale-transition\"\n >\n {{ alert }}\n </v-alert>\n <v-list data-test=\"toolList\" id=\"toollist\">\n <div v-for=\"(tool, index) in tools\" :key=\"tool\">\n <v-list-item>\n <v-list-item-icon>\n <v-icon> mdi-drag-horizontal </v-icon>\n </v-list-item-icon>\n <v-list-item-content>\n <v-list-item-title>{{ tool }}</v-list-item-title>\n </v-list-item-content>\n <v-list-item-icon>\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon @click=\"editTool(tool)\" v-bind=\"attrs\" v-on=\"on\">\n mdi-pencil\n </v-icon>\n </template>\n <span>Edit Tool</span>\n </v-tooltip>\n </v-list-item-icon>\n <v-list-item-icon>\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon @click=\"deleteTool(tool)\" v-bind=\"attrs\" v-on=\"on\">\n mdi-delete\n </v-icon>\n </template>\n <span>Delete Tool</span>\n </v-tooltip>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if=\"index < tools.length - 1\" :key=\"index\" />\n </div>\n </v-list>\n <v-alert\n :type=\"alertType\"\n v-model=\"showAlert\"\n dismissible\n transition=\"scale-transition\"\n >\n {{ alert }}\n </v-alert>\n <edit-dialog\n v-model=\"showDialog\"\n v-if=\"showDialog\"\n :content=\"jsonContent\"\n :title=\"`Tool: ${dialogTitle}`\"\n @submit=\"dialogCallback\"\n />\n </div>\n</template>\n\n<script>\nimport Api from '@openc3/tool-common/src/services/api'\nimport EditDialog from '@/tools/OpenC3Admin/EditDialog'\nimport Sortable from 'sortablejs'\n\nexport default {\n components: { EditDialog },\n data() {\n return {\n name: null,\n icon: '$astro-add-small',\n url: null,\n tools: [],\n alert: '',\n alertType: 'success',\n showAlert: false,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n tool_id: null,\n }\n },\n mounted() {\n this.update()\n var el = document.getElementById('toollist')\n var sortable = Sortable.create(el, { onUpdate: this.sortChanged })\n },\n methods: {\n sortChanged(evt) {\n Api.post(`/openc3-api/tools/position/${this.tools[evt.oldIndex]}`, {\n data: {\n position: evt.newIndex,\n },\n params: { scope: 'DEFAULT' },\n }).then((response) => {\n this.alert = `Reordered tool ${this.tools[evt.oldIndex]}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n },\n update() {\n Api.get('/openc3-api/tools', { params: { scope: 'DEFAULT' } }).then(\n (response) => {\n this.tools = response.data\n this.name = ''\n this.url = ''\n }\n )\n },\n add() {\n Api.post('/openc3-api/tools', {\n data: {\n id: this.name,\n json: JSON.stringify({\n name: this.name,\n icon: this.icon,\n url: this.url,\n window: 'NEW',\n }),\n },\n params: { scope: 'DEFAULT' },\n }).then((response) => {\n this.alert = `Added tool ${this.name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n },\n editTool(name) {\n Api.get(`/openc3-api/tools/${name}`, {\n params: { scope: 'DEFAULT' },\n }).then((response) => {\n this.tool_id = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.dialogTitle = name\n this.showDialog = true\n })\n },\n dialogCallback(content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/tools/${this.tool_id}`\n if (parsed['name'] !== this.tool_id) {\n method = 'post'\n url = '/openc3-api/tools'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n params: { scope: 'DEFAULT' },\n }).then((response) => {\n this.alert = 'Modified Tool'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n deleteTool(name) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${name}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then(function (dialog) {\n return Api.delete(`/openc3-api/tools/${name}`, {\n params: { scope: 'DEFAULT' },\n })\n })\n .then((response) => {\n this.alert = `Removed tool ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToolsTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToolsTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToolsTab.vue?vue&type=template&id=5d3f7ac6&\"\nimport script from \"./ToolsTab.vue?vue&type=script&lang=js&\"\nexport * from \"./ToolsTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticStyle","attrs","name","url","icon","on","$event","add","_v","_s","staticClass","model","value","callback","$$v","expression","alertType","showAlert","alert","_l","tool","index","key","scopedSlots","_u","fn","ref","_g","_b","editTool","deleteTool","tools","length","_e","jsonContent","dialogTitle","dialogCallback","showDialog","staticRenderFns","components","EditDialog","data","tool_id","mounted","onUpdate","methods","sortChanged","evt","Api","position","params","scope","then","setTimeout","update","id","json","window","content","method","confirm","okText","cancelText","component"],"sourceRoot":""}
data/tools/admin/js/37.js DELETED
@@ -1,2 +0,0 @@
1
- (self["webpackChunk_openc3_tool_admin"]=self["webpackChunk_openc3_tool_admin"]||[]).push([[37],{6037:function(n,e,t){"use strict";t.r(e),t.d(e,{default:function(){return S}});var l=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",[t("v-row",{staticClass:"px-2",attrs:{"no-gutters":"",align:"center"}},[t("v-col",[t("v-file-input",{ref:"fileInput",staticClass:"mx-2",attrs:{"show-size":"",accept:".gem",label:"Click to select plugin .gem file to install"},on:{change:function(e){return n.fileChange()},mousedown:function(e){return n.fileMousedown()}},model:{value:n.file,callback:function(e){n.file=e},expression:"file"}})],1),t("v-col",{attrs:{align:"right"}},[t("v-btn",{staticClass:"mx-2",attrs:{"data-test":"download-plugin",disabled:null!==n.file},on:{click:function(e){n.showDownloadDialog=!0}}},[t("v-icon",{attrs:{left:""}},[n._v("mdi-cloud-download")]),t("span",[n._v(" Download ")])],1)],1)],1),t("v-row",{staticClass:"px-2 pb-2",staticStyle:{"margin-top":"10px"},attrs:{"no-gutters":""}},[t("v-col",[t("v-checkbox",{staticClass:"mt-0",attrs:{label:"Show Default Tools","data-test":"show-default-tools"},model:{value:n.showDefaultTools,callback:function(e){n.showDefaultTools=e},expression:"showDefaultTools"}})],1),t("v-col",{attrs:{align:"right"}},[t("div",[n._v("* indicates a modified plugin")]),t("div",[n._v("Click target link to download modifications")])])],1),t("v-alert",{attrs:{dismissible:"",transition:"scale-transition",type:n.alertType,"data-test":"plugin-alert"},model:{value:n.showAlert,callback:function(e){n.showAlert=e},expression:"showAlert"}},[n._v(n._s(n.alert))]),Object.keys(n.processes).length>0?t("v-list",{attrs:{"data-test":"process-list"}},n._l(n.processes,(function(e){return t("div",{key:e.name},[t("v-list-item",[t("v-list-item-content",[t("v-list-item-title",[t("span",{domProps:{textContent:n._s("Processing "+e.process_type+": "+e.detail+" - "+e.state)}})]),t("v-list-item-subtitle",[t("span",{domProps:{textContent:n._s(" Updated At: "+n.formatDate(e.updated_at))}})])],1),t("v-list-item-icon",["Running"===e.state?t("div",[t("v-progress-circular",{attrs:{indeterminate:"",color:"primary"}})],1):t("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(l){var i=l.on,o=l.attrs;return[t("v-icon",n._g(n._b({attrs:{"data-test":"show-output"},on:{click:function(t){return n.showOutput(e)}}},"v-icon",o,!1),i),[n._v(" mdi-eye ")])]}}],null,!0)},[t("span",[n._v("Show Output")])])],1)],1),t("v-divider")],1)})),0):n._e(),t("v-list",{attrs:{"data-test":"plugin-list"}},n._l(n.shownPlugins,(function(e,l){return t("div",{key:l},[t("v-list-item",[t("v-list-item-content",[t("v-list-item-title",[n.isModified(e)?t("span",[n._v("* ")]):n._e(),n._v(n._s(e))]),0!==n.pluginTargets(e).length?t("v-list-item-subtitle",n._l(n.pluginTargets(e),(function(e,l){return t("span",{key:l},[e.modified?t("a",{on:{click:function(t){return t.preventDefault(),n.downloadTarget(e.name)}}},[n._v(n._s(e.name)+" ")]):t("span",[n._v(n._s(e.name)+" ")])])})),0):n._e()],1),t("v-list-item-icon",[t("div",{staticClass:"mx-3"},[t("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(l){var i=l.on,o=l.attrs;return[t("v-icon",n._g(n._b({attrs:{"data-test":"edit-plugin"},on:{click:function(t){return n.editPlugin(e)}}},"v-icon",o,!1),i),[n._v(" mdi-pencil ")])]}}],null,!0)},[t("span",[n._v("Edit Plugin Details")])])],1),t("div",{staticClass:"mx-3"},[t("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(l){var i=l.on,o=l.attrs;return[t("v-icon",n._g(n._b({attrs:{"data-test":"upgrade-plugin"},on:{click:function(t){return n.upgradePlugin(e)}}},"v-icon",o,!1),i),[n._v(" mdi-update ")])]}}],null,!0)},[t("span",[n._v("Upgrade Plugin")])])],1),t("div",{staticClass:"mx-3"},[t("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(l){var i=l.on,o=l.attrs;return[t("v-icon",n._g(n._b({attrs:{"data-test":"delete-plugin"},on:{click:function(t){return n.deletePrompt(e)}}},"v-icon",o,!1),i),[n._v(" mdi-delete ")])]}}],null,!0)},[t("span",[n._v("Delete Plugin")])])],1)])],1),l<n.plugins.length-1?t("v-divider",{key:l}):n._e()],1)})),0),t("plugin-dialog",{attrs:{pluginName:n.pluginName,variables:n.variables,pluginTxt:n.pluginTxt,existingPluginTxt:n.existingPluginTxt},on:{submit:n.pluginCallback},model:{value:n.showPluginDialog,callback:function(e){n.showPluginDialog=e},expression:"showPluginDialog"}}),n.showModifiedPluginDialog?t("modified-plugin-dialog",{attrs:{pluginName:n.currentPlugin,targets:n.pluginTargets(n.currentPlugin),pluginDelete:n.pluginDelete},on:{submit:n.modifiedSubmit},model:{value:n.showModifiedPluginDialog,callback:function(e){n.showModifiedPluginDialog=e},expression:"showModifiedPluginDialog"}}):n._e(),t("download-dialog",{model:{value:n.showDownloadDialog,callback:function(e){n.showDownloadDialog=e},expression:"showDownloadDialog"}}),t("simple-text-dialog",{attrs:{title:"Process Output",text:n.processOutput},model:{value:n.showProcessOutput,callback:function(e){n.showProcessOutput=e},expression:"showProcessOutput"}})],1)},i=[],o=t(6625),s=t(5627),a=t(1150),u=(t(7950),t(8319),t(2501),t(9529),t(1235),t(4769),t(8995),t(6710),t(4707),t(1497),t(5640),t(1871),t(8188),t(3675),t(4898),t(5825),t(7170),t(8857),t(8329),t(6279),t(427),t(1159),t(2516),t(4349),t(5273),t(6729),t(1801),t(574),t(5787),t(9271),t(3160),t(5688),t(3157),t(1700),t(315),t(556),t(9224),t(6297),t(8882),t(8673),t(6886),t(4121),t(523),t(108)),c=t(6700),r=t(1261),A=t(7354),m=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("v-dialog",{attrs:{persistent:"",width:"600"},model:{value:n.show,callback:function(e){n.show=e},expression:"show"}},[t("v-card",[t("v-card-text",[t("v-row",{staticClass:"mt-3"},[t("v-col",{attrs:{cols:"12"}},[t("h3",[n._v(n._s(n.pluginName))])]),null!==n.existingPluginTxt?t("v-radio-group",{attrs:{mandatory:""},model:{value:n.radioGroup,callback:function(e){n.radioGroup=e},expression:"radioGroup"}},[t("v-radio",{attrs:{label:"Use existing plugin.txt",value:1}}),t("v-radio",{attrs:{label:"Use new plugin.txt",value:0}})],1):n._e()],1),t("v-tabs",{attrs:{"background-color":"primary",dark:""},model:{value:n.tab,callback:function(e){n.tab=e},expression:"tab"}},[t("v-tab",{key:0},[n._v(" Variables ")]),t("v-tab",{key:1},[n._v(" plugin.txt ")]),null!==n.existingPluginTxt?t("v-tab",{key:2},[n._v(" Existing plugin.txt ")]):n._e()],1),t("form",{on:{submit:function(e){return e.preventDefault(),n.submit.apply(null,arguments)}}},[t("v-tabs-items",{model:{value:n.tab,callback:function(e){n.tab=e},expression:"tab"}},[t("v-tab-item",{key:0},[t("v-card-text",[t("div",{staticClass:"pa-3"},[t("v-row",{staticClass:"mt-3"},n._l(n.localVariables,(function(e,l){return t("div",{key:l},[t("v-col",[t("v-text-field",{attrs:{clearable:"",type:"text",label:l},model:{value:n.localVariables[l],callback:function(e){n.$set(n.localVariables,l,e)},expression:"localVariables[name]"}})],1)],1)})),0)],1)])],1),t("v-tab-item",{key:1},[t("v-textarea",{attrs:{rows:"15","data-test":"edit-plugin-txt"},model:{value:n.localPluginTxt,callback:function(e){n.localPluginTxt=e},expression:"localPluginTxt"}})],1),null!==n.existingPluginTxt?t("v-tab-item",{key:2},[t("v-textarea",{attrs:{rows:"15","data-test":"edit-existing-plugin-txt"},model:{value:n.localExistingPluginTxt,callback:function(e){n.localExistingPluginTxt=e},expression:"localExistingPluginTxt"}})],1):n._e()],1),t("v-row",[t("v-spacer"),t("v-btn",{staticClass:"mx-2",attrs:{outlined:"","data-test":"edit-cancel"},on:{click:function(e){return e.preventDefault(),n.close.apply(null,arguments)}}},[n._v(" Cancel ")]),t("v-btn",{staticClass:"mx-2",attrs:{color:"primary",type:"submit","data-test":"edit-submit"}},[n._v(" Install ")])],1)],1)],1)],1)],1)},d=[];function p(){var n="/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/PluginDialog.vue",e="bc4a2a4a54cd4d2a6bf3e531f241a47908efc01f",t=new Function("return this")(),l="__coverage__",i={path:"/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/PluginDialog.vue",statementMap:{0:{start:{line:128,column:4},end:{line:134,column:5}},1:{start:{line:139,column:8},end:{line:139,column:25}},2:{start:{line:142,column:8},end:{line:142,column:34}},3:{start:{line:150,column:8},end:{line:150,column:72}},4:{start:{line:151,column:8},end:{line:151,column:52}},5:{start:{line:152,column:8},end:{line:155,column:9}},6:{start:{line:153,column:10},end:{line:153,column:70}},7:{start:{line:154,column:10},end:{line:154,column:29}},8:{start:{line:161,column:18},end:{line:161,column:20}},9:{start:{line:162,column:6},end:{line:166,column:7}},10:{start:{line:163,column:8},end:{line:163,column:55}},11:{start:{line:165,column:8},end:{line:165,column:47}},12:{start:{line:168,column:23},end:{line:172,column:7}},13:{start:{line:173,column:6},end:{line:173,column:38}},14:{start:{line:176,column:6},end:{line:176,column:28}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:127,column:2},end:{line:127,column:3}},loc:{start:{line:127,column:9},end:{line:135,column:3}},line:127},1:{name:"(anonymous_1)",decl:{start:{line:138,column:6},end:{line:138,column:7}},loc:{start:{line:138,column:12},end:{line:140,column:7}},line:138},2:{name:"(anonymous_2)",decl:{start:{line:141,column:6},end:{line:141,column:7}},loc:{start:{line:141,column:17},end:{line:143,column:7}},line:141},3:{name:"(anonymous_3)",decl:{start:{line:149,column:15},end:{line:149,column:16}},loc:{start:{line:149,column:27},end:{line:156,column:7}},line:149},4:{name:"(anonymous_4)",decl:{start:{line:160,column:12},end:{line:160,column:13}},loc:{start:{line:160,column:24},end:{line:174,column:5}},line:160},5:{name:"(anonymous_5)",decl:{start:{line:175,column:11},end:{line:175,column:12}},loc:{start:{line:175,column:23},end:{line:177,column:5}},line:175}},branchMap:{0:{loc:{start:{line:152,column:8},end:{line:155,column:9}},type:"if",locations:[{start:{line:152,column:8},end:{line:155,column:9}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:152},1:{loc:{start:{line:162,column:6},end:{line:166,column:7}},type:"if",locations:[{start:{line:162,column:6},end:{line:166,column:7}},{start:{line:164,column:13},end:{line:166,column:7}}],line:162},2:{loc:{start:{line:162,column:10},end:{line:162,column:66}},type:"binary-expr",locations:[{start:{line:162,column:10},end:{line:162,column:41}},{start:{line:162,column:45},end:{line:162,column:66}}],line:162}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0},f:{0:0,1:0,2:0,3:0,4:0,5:0},b:{0:[0,0],1:[0,0],2:[0,0]},inputSourceMap:{version:3,sources:["PluginDialog.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"PluginDialog.vue",sourceRoot:"src/tools/OpenC3Admin",sourcesContent:['\x3c!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n--\x3e\n\n<template>\n <v-dialog persistent v-model="show" width="600">\n <v-card>\n <v-card-text>\n <v-row class="mt-3">\n <v-col cols="12">\n <h3>{{ pluginName }}</h3>\n </v-col>\n <v-radio-group\n v-if="existingPluginTxt !== null"\n v-model="radioGroup"\n mandatory\n >\n <v-radio label="Use existing plugin.txt" :value="1"></v-radio>\n <v-radio label="Use new plugin.txt" :value="0"></v-radio>\n </v-radio-group>\n </v-row>\n <v-tabs v-model="tab" background-color="primary" dark>\n <v-tab :key="0"> Variables </v-tab>\n <v-tab :key="1"> plugin.txt </v-tab>\n <v-tab v-if="existingPluginTxt !== null" :key="2">\n Existing plugin.txt\n </v-tab>\n </v-tabs>\n\n <form v-on:submit.prevent="submit">\n <v-tabs-items v-model="tab">\n <v-tab-item :key="0">\n <v-card-text>\n <div class="pa-3">\n <v-row class="mt-3">\n <div v-for="(value, name) in localVariables" :key="name">\n <v-col>\n <v-text-field\n clearable\n type="text"\n :label="name"\n v-model="localVariables[name]"\n />\n </v-col>\n </div>\n </v-row>\n </div>\n </v-card-text>\n </v-tab-item>\n <v-tab-item :key="1">\n <v-textarea\n v-model="localPluginTxt"\n rows="15"\n data-test="edit-plugin-txt"\n />\n </v-tab-item>\n <v-tab-item v-if="existingPluginTxt !== null" :key="2">\n <v-textarea\n v-model="localExistingPluginTxt"\n rows="15"\n data-test="edit-existing-plugin-txt"\n />\n </v-tab-item>\n </v-tabs-items>\n\n <v-row>\n <v-spacer />\n <v-btn\n @click.prevent="close"\n outlined\n class="mx-2"\n data-test="edit-cancel"\n >\n Cancel\n </v-btn>\n <v-btn\n class="mx-2"\n color="primary"\n type="submit"\n data-test="edit-submit"\n >\n Install\n </v-btn>\n </v-row>\n </form>\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nexport default {\n props: {\n pluginName: {\n type: String,\n required: true,\n },\n variables: {\n type: Object,\n required: true,\n },\n pluginTxt: {\n type: String,\n required: true,\n },\n existingPluginTxt: {\n type: String,\n required: false,\n },\n value: Boolean, // value is the default prop when using v-model\n },\n data() {\n return {\n tab: 0,\n localVariables: [],\n localPluginTxt: \'\',\n localExistingPluginTxt: null,\n radioGroup: 1,\n }\n },\n computed: {\n show: {\n get() {\n return this.value\n },\n set(value) {\n this.$emit(\'input\', value) // input is the default event when using v-model\n },\n },\n },\n watch: {\n value: {\n immediate: true,\n handler: function () {\n this.localVariables = JSON.parse(JSON.stringify(this.variables)) // deep copy\n this.localPluginTxt = this.pluginTxt.slice()\n if (this.existingPluginTxt !== null) {\n this.localExistingPluginTxt = this.existingPluginTxt.slice()\n this.radioGroup = 1\n }\n },\n },\n },\n methods: {\n submit: function () {\n let lines = \'\'\n if (this.existingPluginTxt !== null && this.radioGroup === 1) {\n lines = this.localExistingPluginTxt.split(\'\\n\')\n } else {\n lines = this.localPluginTxt.split(\'\\n\')\n }\n\n let pluginHash = {\n name: this.pluginName,\n variables: this.localVariables,\n plugin_txt_lines: lines,\n }\n this.$emit(\'submit\', pluginHash)\n },\n close: function () {\n this.show = !this.show\n },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"bc4a2a4a54cd4d2a6bf3e531f241a47908efc01f"},o=t[l]||(t[l]={});o[n]&&o[n].hash===e||(o[n]=i);var s=o[n];return p=function(){return s},s}p();var g={props:{pluginName:{type:String,required:!0},variables:{type:Object,required:!0},pluginTxt:{type:String,required:!0},existingPluginTxt:{type:String,required:!1},value:Boolean},data:function(){return p().f[0]++,p().s[0]++,{tab:0,localVariables:[],localPluginTxt:"",localExistingPluginTxt:null,radioGroup:1}},computed:{show:{get:function(){return p().f[1]++,p().s[1]++,this.value},set:function(n){p().f[2]++,p().s[2]++,this.$emit("input",n)}}},watch:{value:{immediate:!0,handler:function(){p().f[3]++,p().s[3]++,this.localVariables=JSON.parse(JSON.stringify(this.variables)),p().s[4]++,this.localPluginTxt=this.pluginTxt.slice(),p().s[5]++,null!==this.existingPluginTxt?(p().b[0][0]++,p().s[6]++,this.localExistingPluginTxt=this.existingPluginTxt.slice(),p().s[7]++,this.radioGroup=1):p().b[0][1]++}}},methods:{submit:function(){p().f[4]++;var n=(p().s[8]++,"");p().s[9]++,p().b[2][0]++,null!==this.existingPluginTxt&&(p().b[2][1]++,1===this.radioGroup)?(p().b[1][0]++,p().s[10]++,n=this.localExistingPluginTxt.split("\n")):(p().b[1][1]++,p().s[11]++,n=this.localPluginTxt.split("\n"));var e=(p().s[12]++,{name:this.pluginName,variables:this.localVariables,plugin_txt_lines:n});p().s[13]++,this.$emit("submit",e)},close:function(){p().f[5]++,p().s[14]++,this.show=!this.show}}},f=g,v=t(3287),h=(0,v.Z)(f,m,d,!1,null,null,null),C=h.exports,b=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("v-dialog",{attrs:{width:"600"},model:{value:n.show,callback:function(e){n.show=e},expression:"show"}},[t("v-card",[t("v-system-bar",[t("v-spacer"),t("span",[n._v(" Modified Plugin ")]),t("v-spacer")],1),t("v-card-text",{staticClass:"pa-3"},[t("div",[n._v(" Plugin "+n._s(n.plugin)+" was modified. Would you like to delete the existing modified files? ")]),n._l(n.modifiedTargets,(function(e,l){return t("v-list-item",{key:l,attrs:{"two-line":""}},[t("v-list-item-content",[t("v-list-item-title",[n._v(n._s(e.name))]),n._l(e.files,(function(e,l){return t("v-list-item-subtitle",{key:l},[n._v(n._s(e))])}))],2)],1)})),t("v-checkbox",{attrs:{label:"DELETE MODIFIED! THIS CAN NOT BE UNDONE!!!",color:"error","data-test":"modified-plugin-delete-checkbox"},model:{value:n.deleteModified,callback:function(e){n.deleteModified=e},expression:"deleteModified"}})],2),t("v-card-actions",[t("v-spacer"),t("v-btn",{staticClass:"mx-2",attrs:{outlined:"","data-test":"modified-plugin-cancel"},on:{click:function(e){n.show=!1,n.$emit("cancel")}}},[n._v("Cancel")]),t("v-btn",{staticClass:"mx-2",attrs:{color:"primary","data-test":"modified-plugin-submit"},on:{click:function(e){n.show=!1,n.$emit("submit",n.deleteModified)}}},[n._v(n._s(n.submitButton))])],1)],1)],1)},x=[];function _(){var n="/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/ModifiedPluginDialog.vue",e="24c7d46b610876ca8b1af1e9afd609b76062a845",t=new Function("return this")(),l="__coverage__",i={path:"/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/ModifiedPluginDialog.vue",statementMap:{0:{start:{line:88,column:4},end:{line:91,column:5}},1:{start:{line:96,column:8},end:{line:96,column:25}},2:{start:{line:99,column:8},end:{line:99,column:34}},3:{start:{line:103,column:6},end:{line:107,column:7}},4:{start:{line:104,column:8},end:{line:104,column:23}},5:{start:{line:106,column:8},end:{line:106,column:24}},6:{start:{line:111,column:4},end:{line:123,column:5}},7:{start:{line:112,column:6},end:{line:122,column:7}},8:{start:{line:114,column:10},end:{line:120,column:11}},9:{start:{line:116,column:12},end:{line:119,column:14}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:87,column:2},end:{line:87,column:3}},loc:{start:{line:87,column:9},end:{line:92,column:3}},line:87},1:{name:"(anonymous_1)",decl:{start:{line:95,column:6},end:{line:95,column:7}},loc:{start:{line:95,column:12},end:{line:97,column:7}},line:95},2:{name:"(anonymous_2)",decl:{start:{line:98,column:6},end:{line:98,column:7}},loc:{start:{line:98,column:17},end:{line:100,column:7}},line:98},3:{name:"(anonymous_3)",decl:{start:{line:102,column:18},end:{line:102,column:19}},loc:{start:{line:102,column:30},end:{line:108,column:5}},line:102},4:{name:"(anonymous_4)",decl:{start:{line:110,column:2},end:{line:110,column:3}},loc:{start:{line:110,column:12},end:{line:124,column:3}},line:110},5:{name:"(anonymous_5)",decl:{start:{line:113,column:8},end:{line:113,column:9}},loc:{start:{line:113,column:22},end:{line:121,column:9}},line:113}},branchMap:{0:{loc:{start:{line:103,column:6},end:{line:107,column:7}},type:"if",locations:[{start:{line:103,column:6},end:{line:107,column:7}},{start:{line:105,column:13},end:{line:107,column:7}}],line:103},1:{loc:{start:{line:114,column:10},end:{line:120,column:11}},type:"if",locations:[{start:{line:114,column:10},end:{line:120,column:11}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:114}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0},f:{0:0,1:0,2:0,3:0,4:0,5:0},b:{0:[0,0],1:[0,0]},inputSourceMap:{version:3,sources:["ModifiedPluginDialog.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"ModifiedPluginDialog.vue",sourceRoot:"src/tools/OpenC3Admin",sourcesContent:['\x3c!--\n# Copyright 2022 OpenC3, Inc.\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--\x3e\n\n<template>\n <v-dialog v-model="show" width="600">\n <v-card>\n <v-system-bar>\n <v-spacer />\n <span> Modified Plugin </span>\n <v-spacer />\n </v-system-bar>\n <v-card-text class="pa-3">\n <div>\n Plugin {{ plugin }} was modified. Would you like to delete the\n existing modified files?\n </div>\n <v-list-item\n two-line\n v-for="(target, index) in modifiedTargets"\n :key="index"\n >\n <v-list-item-content>\n <v-list-item-title>{{ target.name }}</v-list-item-title>\n <v-list-item-subtitle\n v-for="(file, itemIndex) in target.files"\n :key="itemIndex"\n >{{ file }}</v-list-item-subtitle\n >\n </v-list-item-content>\n </v-list-item>\n <v-checkbox\n v-model="deleteModified"\n label="DELETE MODIFIED! THIS CAN NOT BE UNDONE!!!"\n color="error"\n data-test="modified-plugin-delete-checkbox"\n />\n </v-card-text>\n <v-card-actions>\n <v-spacer />\n <v-btn\n class="mx-2"\n outlined\n data-test="modified-plugin-cancel"\n @click="\n show = false\n $emit(\'cancel\')\n "\n >Cancel</v-btn\n >\n <v-btn\n class="mx-2"\n color="primary"\n data-test="modified-plugin-submit"\n @click="\n show = false\n $emit(\'submit\', deleteModified)\n "\n >{{ submitButton }}</v-btn\n >\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport Api from \'@openc3/tool-common/src/services/api\'\n\nexport default {\n props: {\n value: Boolean, // value is the default prop when using v-model\n plugin: String,\n targets: Array,\n pluginDelete: Boolean,\n },\n data() {\n return {\n modifiedTargets: [],\n deleteModified: false,\n }\n },\n computed: {\n show: {\n get() {\n return this.value\n },\n set(value) {\n this.$emit(\'input\', value) // input is the default event when using v-model\n },\n },\n submitButton: function () {\n if (this.pluginDelete) {\n return \'Delete\'\n } else {\n return \'Install\'\n }\n },\n },\n created() {\n for (const target of this.targets) {\n Api.get(`/openc3-api/targets/${target.name}/modified_files`).then(\n (response) => {\n if (response.data.length !== 0) {\n // Only push targets which actually have modified files\n this.modifiedTargets.push({\n name: target.name,\n files: response.data,\n })\n }\n }\n )\n }\n },\n}\n<\/script>\n\n<style scoped></style>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"24c7d46b610876ca8b1af1e9afd609b76062a845"},o=t[l]||(t[l]={});o[n]&&o[n].hash===e||(o[n]=i);var s=o[n];return _=function(){return s},s}_();var w={props:{value:Boolean,plugin:String,targets:Array,pluginDelete:Boolean},data:function(){return _().f[0]++,_().s[0]++,{modifiedTargets:[],deleteModified:!1}},computed:{show:{get:function(){return _().f[1]++,_().s[1]++,this.value},set:function(n){_().f[2]++,_().s[2]++,this.$emit("input",n)}},submitButton:function(){return _().f[3]++,_().s[3]++,this.pluginDelete?(_().b[0][0]++,_().s[4]++,"Delete"):(_().b[0][1]++,_().s[5]++,"Install")}},created:function(){var n=this;_().f[4]++,_().s[6]++;var e,t=(0,a.Z)(this.targets);try{var l=function(){var t=e.value;_().s[7]++,r.Z.get("/openc3-api/targets/".concat(t.name,"/modified_files")).then((function(e){_().f[5]++,_().s[8]++,0!==e.data.length?(_().b[1][0]++,_().s[9]++,n.modifiedTargets.push({name:t.name,files:e.data})):_().b[1][1]++}))};for(t.s();!(e=t.n()).done;)l()}catch(i){t.e(i)}finally{t.f()}}},y=w,T=(0,v.Z)(y,b,x,!1,null,"c2a422c2",null),P=T.exports,D=t(669);function E(){var n="/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/PluginsTab.vue",e="c2ed64b2759fbe89b34f097cf1d93a2a82bb172f",t=new Function("return this")(),l="__coverage__",i={path:"/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/PluginsTab.vue",statementMap:{0:{start:{line:221,column:4},end:{line:259,column:5}},1:{start:{line:263,column:19},end:{line:263,column:21}},2:{start:{line:264,column:6},end:{line:275,column:7}},3:{start:{line:265,column:30},end:{line:265,column:51}},4:{start:{line:266,column:30},end:{line:266,column:56}},5:{start:{line:267,column:8},end:{line:267,column:54}},6:{start:{line:268,column:25},end:{line:268,column:50}},7:{start:{line:269,column:8},end:{line:274,column:9}},8:{start:{line:273,column:10},end:{line:273,column:29}},9:{start:{line:276,column:6},end:{line:276,column:19}},10:{start:{line:279,column:6},end:{line:287,column:7}},11:{start:{line:280,column:21},end:{line:280,column:23}},12:{start:{line:281,column:8},end:{line:285,column:9}},13:{start:{line:282,column:10},end:{line:284,column:11}},14:{start:{line:283,column:12},end:{line:283,column:45}},15:{start:{line:286,column:8},end:{line:286,column:21}},16:{start:{line:290,column:6},end:{line:302,column:7}},17:{start:{line:291,column:21},end:{line:291,column:26}},18:{start:{line:292,column:8},end:{line:300,column:9}},19:{start:{line:293,column:10},end:{line:299,column:11}},20:{start:{line:297,column:12},end:{line:297,column:25}},21:{start:{line:298,column:12},end:{line:298,column:17}},22:{start:{line:301,column:8},end:{line:301,column:21}},23:{start:{line:306,column:4},end:{line:306,column:17}},24:{start:{line:307,column:4},end:{line:307,column:26}},25:{start:{line:311,column:6},end:{line:311,column:41}},26:{start:{line:312,column:6},end:{line:312,column:35}},27:{start:{line:315,column:6},end:{line:317,column:8}},28:{start:{line:316,column:8},end:{line:316,column:36}},29:{start:{line:318,column:6},end:{line:320,column:8}},30:{start:{line:319,column:8},end:{line:319,column:36}},31:{start:{line:323,column:6},end:{line:333,column:7}},32:{start:{line:325,column:10},end:{line:325,column:40}},33:{start:{line:326,column:10},end:{line:331,column:11}},34:{start:{line:327,column:12},end:{line:330,column:21}},35:{start:{line:328,column:14},end:{line:328,column:36}},36:{start:{line:329,column:14},end:{line:329,column:27}},37:{start:{line:336,column:6},end:{line:339,column:7}},38:{start:{line:342,column:21},end:{line:342,column:46}},39:{start:{line:343,column:19},end:{line:345,column:31}},40:{start:{line:346,column:23},end:{line:346,column:37}},41:{start:{line:347,column:6},end:{line:347,column:58}},42:{start:{line:348,column:22},end:{line:348,column:59}},43:{start:{line:349,column:6},end:{line:374,column:10}},44:{start:{line:351,column:10},end:{line:351,column:38}},45:{start:{line:352,column:10},end:{line:352,column:36}},46:{start:{line:353,column:10},end:{line:353,column:31}},47:{start:{line:354,column:10},end:{line:356,column:18}},48:{start:{line:355,column:12},end:{line:355,column:34}},49:{start:{line:357,column:10},end:{line:357,column:23}},50:{start:{line:358,column:34},end:{line:358,column:38}},51:{start:{line:359,column:10},end:{line:362,column:11}},52:{start:{line:360,column:12},end:{line:361,column:64}},53:{start:{line:363,column:26},end:{line:363,column:67}},54:{start:{line:364,column:11},end:{line:367,column:56}},55:{start:{line:368,column:10},end:{line:368,column:38}},56:{start:{line:369,column:10},end:{line:369,column:31}},57:{start:{line:372,column:10},end:{line:372,column:35}},58:{start:{line:373,column:10},end:{line:373,column:31}},59:{start:{line:377,column:6},end:{line:377,column:35}},60:{start:{line:378,column:6},end:{line:380,column:7}},61:{start:{line:379,column:8},end:{line:379,column:47}},62:{start:{line:381,column:6},end:{line:381,column:37}},63:{start:{line:382,column:6},end:{line:387,column:7}},64:{start:{line:383,column:8},end:{line:383,column:33}},65:{start:{line:384,column:8},end:{line:384,column:44}},66:{start:{line:386,column:8},end:{line:386,column:28}},67:{start:{line:390,column:6},end:{line:396,column:7}},68:{start:{line:391,column:8},end:{line:395,column:9}},69:{start:{line:392,column:10},end:{line:394,column:11}},70:{start:{line:393,column:12},end:{line:393,column:80}},71:{start:{line:397,column:6},end:{line:401,column:7}},72:{start:{line:398,column:8},end:{line:398,column:45}},73:{start:{line:400,column:8},end:{line:400,column:28}},74:{start:{line:404,column:6},end:{line:422,column:8}},75:{start:{line:409,column:8},end:{line:409,column:71}},76:{start:{line:410,column:8},end:{line:410,column:34}},77:{start:{line:411,column:8},end:{line:411,column:29}},78:{start:{line:412,column:8},end:{line:412,column:33}},79:{start:{line:413,column:8},end:{line:413,column:29}},80:{start:{line:414,column:8},end:{line:414,column:27}},81:{start:{line:415,column:8},end:{line:415,column:27}},82:{start:{line:416,column:8},end:{line:416,column:37}},83:{start:{line:417,column:8},end:{line:420,column:16}},84:{start:{line:418,column:10},end:{line:418,column:32}},85:{start:{line:419,column:10},end:{line:419,column:32}},86:{start:{line:421,column:8},end:{line:421,column:21}},87:{start:{line:425,column:6},end:{line:439,column:8}},88:{start:{line:427,column:28},end:{line:427,column:63}},89:{start:{line:429,column:27},end:{line:429,column:61}},90:{start:{line:431,column:8},end:{line:433,column:9}},91:{start:{line:431,column:21},end:{line:431,column:22}},92:{start:{line:432,column:10},end:{line:432,column:51}},93:{start:{line:434,column:21},end:{line:434,column:72}},94:{start:{line:435,column:21},end:{line:435,column:48}},95:{start:{line:436,column:8},end:{line:436,column:45}},96:{start:{line:437,column:8},end:{line:437,column:61}},97:{start:{line:438,column:8},end:{line:438,column:20}},98:{start:{line:442,column:6},end:{line:453,column:8}},99:{start:{line:443,column:32},end:{line:443,column:36}},100:{start:{line:444,column:8},end:{line:446,column:9}},101:{start:{line:445,column:10},end:{line:445,column:80}},102:{start:{line:447,column:24},end:{line:447,column:65}},103:{start:{line:448,column:9},end:{line:451,column:54}},104:{start:{line:452,column:8},end:{line:452,column:36}},105:{start:{line:456,column:6},end:{line:469,column:10}},106:{start:{line:462,column:10},end:{line:468,column:11}},107:{start:{line:463,column:12},end:{line:463,column:39}},108:{start:{line:464,column:12},end:{line:464,column:36}},109:{start:{line:465,column:12},end:{line:465,column:48}},110:{start:{line:467,column:12},end:{line:467,column:37}},111:{start:{line:472,column:6},end:{line:472,column:50}},112:{start:{line:473,column:6},end:{line:473,column:32}},113:{start:{line:474,column:6},end:{line:474,column:27}},114:{start:{line:475,column:6},end:{line:480,column:8}},115:{start:{line:476,column:8},end:{line:479,column:16}},116:{start:{line:477,column:10},end:{line:477,column:32}},117:{start:{line:478,column:10},end:{line:478,column:32}},118:{start:{line:481,column:6},end:{line:481,column:19}},119:{start:{line:484,column:6},end:{line:484,column:27}},120:{start:{line:485,column:6},end:{line:485,column:33}},121:{start:{line:486,column:6},end:{line:486,column:46}},122:{start:{line:489,column:6},end:{line:489,column:31}},123:{start:{line:492,column:6},end:{line:498,column:7}},124:{start:{line:493,column:8},end:{line:497,column:9}},125:{start:{line:494,column:10},end:{line:494,column:41}},126:{start:{line:496,column:10},end:{line:496,column:23}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:220,column:2},end:{line:220,column:3}},loc:{start:{line:220,column:9},end:{line:260,column:3}},line:220},1:{name:"(anonymous_1)",decl:{start:{line:262,column:4},end:{line:262,column:5}},loc:{start:{line:262,column:19},end:{line:277,column:5}},line:262},2:{name:"(anonymous_2)",decl:{start:{line:278,column:4},end:{line:278,column:5}},loc:{start:{line:278,column:20},end:{line:288,column:5}},line:278},3:{name:"(anonymous_3)",decl:{start:{line:279,column:13},end:{line:279,column:14}},loc:{start:{line:279,column:25},end:{line:287,column:7}},line:279},4:{name:"(anonymous_4)",decl:{start:{line:289,column:4},end:{line:289,column:5}},loc:{start:{line:289,column:17},end:{line:303,column:5}},line:289},5:{name:"(anonymous_5)",decl:{start:{line:290,column:13},end:{line:290,column:14}},loc:{start:{line:290,column:25},end:{line:302,column:7}},line:290},6:{name:"(anonymous_6)",decl:{start:{line:305,column:2},end:{line:305,column:3}},loc:{start:{line:305,column:12},end:{line:308,column:3}},line:305},7:{name:"(anonymous_7)",decl:{start:{line:310,column:16},end:{line:310,column:17}},loc:{start:{line:310,column:35},end:{line:313,column:5}},line:310},8:{name:"(anonymous_8)",decl:{start:{line:314,column:12},end:{line:314,column:13}},loc:{start:{line:314,column:24},end:{line:321,column:5}},line:314},9:{name:"(anonymous_9)",decl:{start:{line:315,column:42},end:{line:315,column:43}},loc:{start:{line:315,column:56},end:{line:317,column:7}},line:315},10:{name:"(anonymous_10)",decl:{start:{line:318,column:51},end:{line:318,column:52}},loc:{start:{line:318,column:65},end:{line:320,column:7}},line:318},11:{name:"(anonymous_11)",decl:{start:{line:322,column:21},end:{line:322,column:22}},loc:{start:{line:322,column:33},end:{line:334,column:5}},line:322},12:{name:"(anonymous_12)",decl:{start:{line:324,column:8},end:{line:324,column:9}},loc:{start:{line:324,column:22},end:{line:332,column:9}},line:324},13:{name:"(anonymous_13)",decl:{start:{line:327,column:23},end:{line:327,column:24}},loc:{start:{line:327,column:29},end:{line:330,column:13}},line:327},14:{name:"(anonymous_14)",decl:{start:{line:335,column:4},end:{line:335,column:5}},loc:{start:{line:335,column:25},end:{line:340,column:5}},line:335},15:{name:"(anonymous_15)",decl:{start:{line:341,column:12},end:{line:341,column:13}},loc:{start:{line:341,column:39},end:{line:375,column:5}},line:341},16:{name:"(anonymous_16)",decl:{start:{line:350,column:14},end:{line:350,column:15}},loc:{start:{line:350,column:28},end:{line:370,column:9}},line:350},17:{name:"(anonymous_17)",decl:{start:{line:354,column:21},end:{line:354,column:22}},loc:{start:{line:354,column:27},end:{line:356,column:11}},line:354},18:{name:"(anonymous_18)",decl:{start:{line:371,column:15},end:{line:371,column:16}},loc:{start:{line:371,column:26},end:{line:374,column:9}},line:371},19:{name:"(anonymous_19)",decl:{start:{line:376,column:20},end:{line:376,column:21}},loc:{start:{line:376,column:42},end:{line:388,column:5}},line:376},20:{name:"(anonymous_20)",decl:{start:{line:389,column:20},end:{line:389,column:21}},loc:{start:{line:389,column:52},end:{line:402,column:5}},line:389},21:{name:"(anonymous_21)",decl:{start:{line:403,column:19},end:{line:403,column:20}},loc:{start:{line:403,column:31},end:{line:423,column:5}},line:403},22:{name:"(anonymous_22)",decl:{start:{line:408,column:14},end:{line:408,column:15}},loc:{start:{line:408,column:28},end:{line:422,column:7}},line:408},23:{name:"(anonymous_23)",decl:{start:{line:417,column:19},end:{line:417,column:20}},loc:{start:{line:417,column:25},end:{line:420,column:9}},line:417},24:{name:"(anonymous_24)",decl:{start:{line:424,column:20},end:{line:424,column:21}},loc:{start:{line:424,column:36},end:{line:440,column:5}},line:424},25:{name:"(anonymous_25)",decl:{start:{line:425,column:60},end:{line:425,column:61}},loc:{start:{line:425,column:74},end:{line:439,column:7}},line:425},26:{name:"(anonymous_26)",decl:{start:{line:441,column:16},end:{line:441,column:17}},loc:{start:{line:441,column:34},end:{line:454,column:5}},line:441},27:{name:"(anonymous_27)",decl:{start:{line:442,column:52},end:{line:442,column:53}},loc:{start:{line:442,column:66},end:{line:453,column:7}},line:442},28:{name:"(anonymous_28)",decl:{start:{line:455,column:18},end:{line:455,column:19}},loc:{start:{line:455,column:36},end:{line:470,column:5}},line:455},29:{name:"(anonymous_29)",decl:{start:{line:461,column:14},end:{line:461,column:15}},loc:{start:{line:461,column:26},end:{line:469,column:9}},line:461},30:{name:"(anonymous_30)",decl:{start:{line:471,column:18},end:{line:471,column:19}},loc:{start:{line:471,column:36},end:{line:482,column:5}},line:471},31:{name:"(anonymous_31)",decl:{start:{line:475,column:55},end:{line:475,column:56}},loc:{start:{line:475,column:69},end:{line:480,column:7}},line:475},32:{name:"(anonymous_32)",decl:{start:{line:476,column:19},end:{line:476,column:20}},loc:{start:{line:476,column:25},end:{line:479,column:9}},line:476},33:{name:"(anonymous_33)",decl:{start:{line:483,column:4},end:{line:483,column:5}},loc:{start:{line:483,column:26},end:{line:487,column:5}},line:483},34:{name:"(anonymous_34)",decl:{start:{line:488,column:4},end:{line:488,column:5}},loc:{start:{line:488,column:20},end:{line:490,column:5}},line:488},35:{name:"(anonymous_35)",decl:{start:{line:491,column:4},end:{line:491,column:5}},loc:{start:{line:491,column:17},end:{line:499,column:5}},line:491}},branchMap:{0:{loc:{start:{line:269,column:8},end:{line:274,column:9}},type:"if",locations:[{start:{line:269,column:8},end:{line:274,column:9}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:269},1:{loc:{start:{line:270,column:10},end:{line:271,column:31}},type:"binary-expr",locations:[{start:{line:270,column:10},end:{line:270,column:51}},{start:{line:271,column:10},end:{line:271,column:31}}],line:270},2:{loc:{start:{line:282,column:10},end:{line:284,column:11}},type:"if",locations:[{start:{line:282,column:10},end:{line:284,column:11}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:282},3:{loc:{start:{line:293,column:10},end:{line:299,column:11}},type:"if",locations:[{start:{line:293,column:10},end:{line:299,column:11}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:293},4:{loc:{start:{line:294,column:12},end:{line:295,column:53}},type:"binary-expr",locations:[{start:{line:294,column:12},end:{line:294,column:53}},{start:{line:295,column:12},end:{line:295,column:53}}],line:294},5:{loc:{start:{line:326,column:10},end:{line:331,column:11}},type:"if",locations:[{start:{line:326,column:10},end:{line:331,column:11}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:326},6:{loc:{start:{line:341,column:22},end:{line:341,column:37}},type:"default-arg",locations:[{start:{line:341,column:33},end:{line:341,column:37}}],line:341},7:{loc:{start:{line:342,column:21},end:{line:342,column:46}},type:"cond-expr",locations:[{start:{line:342,column:32},end:{line:342,column:37}},{start:{line:342,column:40},end:{line:342,column:46}}],line:342},8:{loc:{start:{line:343,column:19},end:{line:345,column:31}},type:"cond-expr",locations:[{start:{line:344,column:10},end:{line:344,column:43}},{start:{line:345,column:10},end:{line:345,column:31}}],line:343},9:{loc:{start:{line:359,column:10},end:{line:362,column:11}},type:"if",locations:[{start:{line:359,column:10},end:{line:362,column:11}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:359},10:{loc:{start:{line:378,column:6},end:{line:380,column:7}},type:"if",locations:[{start:{line:378,column:6},end:{line:380,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:378},11:{loc:{start:{line:382,column:6},end:{line:387,column:7}},type:"if",locations:[{start:{line:382,column:6},end:{line:387,column:7}},{start:{line:385,column:13},end:{line:387,column:7}}],line:382},12:{loc:{start:{line:390,column:6},end:{line:396,column:7}},type:"if",locations:[{start:{line:390,column:6},end:{line:396,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:390},13:{loc:{start:{line:392,column:10},end:{line:394,column:11}},type:"if",locations:[{start:{line:392,column:10},end:{line:394,column:11}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:392},14:{loc:{start:{line:397,column:6},end:{line:401,column:7}},type:"if",locations:[{start:{line:397,column:6},end:{line:401,column:7}},{start:{line:399,column:13},end:{line:401,column:7}}],line:397},15:{loc:{start:{line:444,column:8},end:{line:446,column:9}},type:"if",locations:[{start:{line:444,column:8},end:{line:446,column:9}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:444},16:{loc:{start:{line:462,column:10},end:{line:468,column:11}},type:"if",locations:[{start:{line:462,column:10},end:{line:468,column:11}},{start:{line:466,column:17},end:{line:468,column:11}}],line:462},17:{loc:{start:{line:492,column:6},end:{line:498,column:7}},type:"if",locations:[{start:{line:492,column:6},end:{line:498,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:492},18:{loc:{start:{line:493,column:8},end:{line:497,column:9}},type:"if",locations:[{start:{line:493,column:8},end:{line:497,column:9}},{start:{line:495,column:15},end:{line:497,column:9}}],line:493}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0],4:[0,0],5:[0,0],6:[0],7:[0,0],8:[0,0],9:[0,0],10:[0,0],11:[0,0],12:[0,0],13:[0,0],14:[0,0],15:[0,0],16:[0,0],17:[0,0],18:[0,0]},inputSourceMap:{version:3,sources:["PluginsTab.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6MA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"PluginsTab.vue",sourceRoot:"src/tools/OpenC3Admin/tabs",sourcesContent:['\x3c!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n--\x3e\n\n<template>\n <div>\n <v-row no-gutters align="center" class="px-2">\n <v-col>\n <v-file-input\n v-model="file"\n show-size\n accept=".gem"\n class="mx-2"\n label="Click to select plugin .gem file to install"\n ref="fileInput"\n @change="fileChange()"\n @mousedown="fileMousedown()"\n />\n </v-col>\n <v-col align="right">\n <v-btn\n @click="showDownloadDialog = true"\n class="mx-2"\n data-test="download-plugin"\n :disabled="file !== null"\n >\n <v-icon left>mdi-cloud-download</v-icon>\n <span> Download </span>\n </v-btn>\n </v-col>\n </v-row>\n <v-row no-gutters class="px-2 pb-2" style="margin-top: 10px">\n <v-col>\n <v-checkbox\n v-model="showDefaultTools"\n label="Show Default Tools"\n class="mt-0"\n data-test="show-default-tools"\n />\n </v-col>\n <v-col align="right">\n <div>* indicates a modified plugin</div>\n <div>Click target link to download modifications</div>\n </v-col>\n </v-row>\n \x3c!-- TODO This alert shows both success and failure. Make consistent with rest of OpenC3. --\x3e\n <v-alert\n dismissible\n transition="scale-transition"\n :type="alertType"\n v-model="showAlert"\n data-test="plugin-alert"\n >{{ alert }}</v-alert\n >\n <v-list v-if="Object.keys(processes).length > 0" data-test="process-list">\n <div v-for="process in processes" :key="process.name">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title>\n <span\n v-text="\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n "\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text="\' Updated At: \' + formatDate(process.updated_at)"\n /></v-list-item-subtitle>\n </v-list-item-content>\n <v-list-item-icon>\n <div v-if="process.state === \'Running\'">\n <v-progress-circular indeterminate color="primary" />\n </div>\n <v-tooltip v-else bottom>\n <template v-slot:activator="{ on, attrs }">\n <v-icon\n @click="showOutput(process)"\n v-bind="attrs"\n v-on="on"\n data-test="show-output"\n >\n mdi-eye\n </v-icon>\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </v-list-item-icon>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list data-test="plugin-list">\n <div v-for="(plugin, index) in shownPlugins" :key="index">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title\n ><span v-if="isModified(plugin)">* </span\n >{{ plugin }}</v-list-item-title\n >\n <v-list-item-subtitle v-if="pluginTargets(plugin).length !== 0">\n <span\n v-for="(target, index) in pluginTargets(plugin)"\n :key="index"\n >\n <a\n v-if="target.modified"\n @click.prevent="downloadTarget(target.name)"\n >{{ target.name }}\n </a>\n <span v-else>{{ target.name }} </span>\n </span>\n </v-list-item-subtitle>\n </v-list-item-content>\n <v-list-item-icon>\n <div class="mx-3">\n <v-tooltip bottom>\n <template v-slot:activator="{ on, attrs }">\n <v-icon\n @click="editPlugin(plugin)"\n v-bind="attrs"\n v-on="on"\n data-test="edit-plugin"\n >\n mdi-pencil\n </v-icon>\n </template>\n <span>Edit Plugin Details</span>\n </v-tooltip>\n </div>\n <div class="mx-3">\n <v-tooltip bottom>\n <template v-slot:activator="{ on, attrs }">\n <v-icon\n @click="upgradePlugin(plugin)"\n v-bind="attrs"\n v-on="on"\n data-test="upgrade-plugin"\n >\n mdi-update\n </v-icon>\n </template>\n <span>Upgrade Plugin</span>\n </v-tooltip>\n </div>\n <div class="mx-3">\n <v-tooltip bottom>\n <template v-slot:activator="{ on, attrs }">\n <v-icon\n @click="deletePrompt(plugin)"\n v-bind="attrs"\n v-on="on"\n data-test="delete-plugin"\n >\n mdi-delete\n </v-icon>\n </template>\n <span>Delete Plugin</span>\n </v-tooltip>\n </div>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if="index < plugins.length - 1" :key="index" />\n </div>\n </v-list>\n <plugin-dialog\n v-model="showPluginDialog"\n :pluginName="pluginName"\n :variables="variables"\n :pluginTxt="pluginTxt"\n :existingPluginTxt="existingPluginTxt"\n @submit="pluginCallback"\n />\n <modified-plugin-dialog\n v-if="showModifiedPluginDialog"\n v-model="showModifiedPluginDialog"\n :pluginName="currentPlugin"\n :targets="pluginTargets(currentPlugin)"\n :pluginDelete="pluginDelete"\n @submit="modifiedSubmit"\n />\n <download-dialog v-model="showDownloadDialog" />\n <simple-text-dialog\n v-model="showProcessOutput"\n title="Process Output"\n :text="processOutput"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from \'date-fns\'\nimport Api from \'@openc3/tool-common/src/services/api\'\nimport DownloadDialog from \'@/tools/OpenC3Admin/DownloadDialog\'\nimport PluginDialog from \'@/tools/OpenC3Admin/PluginDialog\'\nimport ModifiedPluginDialog from \'@/tools/OpenC3Admin/ModifiedPluginDialog\'\nimport SimpleTextDialog from \'@openc3/tool-common/src/components/SimpleTextDialog\'\n\nexport default {\n components: {\n DownloadDialog,\n PluginDialog,\n ModifiedPluginDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n file: null,\n currentPlugin: null,\n plugins: [],\n targets: [],\n processes: {},\n alert: \'\',\n alertType: \'success\',\n showAlert: false,\n pluginName: null,\n variables: {},\n pluginTxt: \'\',\n pluginHashTmp: null,\n existingPluginTxt: null,\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: \'\',\n showPluginDialog: false,\n showModifiedPluginDialog: false,\n showDefaultTools: false,\n pluginDelete: false,\n defaultPlugins: [\n \'openc3-tool-admin\',\n \'openc3-tool-autonomic\',\n \'openc3-tool-base\',\n \'openc3-tool-calendar\',\n \'openc3-tool-cmdsender\',\n \'openc3-tool-cmdtlmserver\',\n \'openc3-tool-dataextractor\',\n \'openc3-tool-dataviewer\',\n \'openc3-tool-handbooks\',\n \'openc3-tool-limitsmonitor\',\n \'openc3-tool-packetviewer\',\n \'openc3-tool-scriptrunner\',\n \'openc3-tool-tablemanager\',\n \'openc3-tool-tlmgrapher\',\n \'openc3-tool-tlmviewer\',\n ],\n }\n },\n computed: {\n shownPlugins() {\n let result = []\n for (let plugin of this.plugins) {\n let pluginNameFirst = plugin.split(\'__\')[0]\n let pluginNameSplit = pluginNameFirst.split(\'-\')\n pluginNameSplit = pluginNameSplit.slice(0, -1)\n let pluginName = pluginNameSplit.join(\'-\')\n if (\n !this.defaultPlugins.includes(pluginName) ||\n this.showDefaultTools\n ) {\n result.push(plugin)\n }\n }\n return result\n },\n pluginTargets() {\n return (plugin) => {\n let result = []\n for (const target in this.targets) {\n if (this.targets[target][\'plugin\'] === plugin) {\n result.push(this.targets[target])\n }\n }\n return result\n }\n },\n isModified() {\n return (plugin) => {\n let result = false\n for (const target in this.targets) {\n if (\n this.targets[target][\'plugin\'] === plugin &&\n this.targets[target][\'modified\'] === true\n ) {\n result = true\n break\n }\n }\n return result\n }\n },\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update: function () {\n Api.get(\'/openc3-api/plugins\').then((response) => {\n this.plugins = response.data\n })\n Api.get(\'/openc3-api/targets_modified\').then((response) => {\n this.targets = response.data\n })\n },\n updateProcesses: function () {\n Api.get(\'openc3-api/process_status/plugin_?use_regex=true\').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 10000)\n }\n }\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1_000_000),\n \'yyyy-MM-dd HH:mm:ss.SSS\'\n )\n },\n upload: function (existing = null) {\n const method = existing ? \'put\' : \'post\'\n const path = existing\n ? `/openc3-api/plugins/${existing}`\n : \'/openc3-api/plugins\'\n const formData = new FormData()\n formData.append(\'plugin\', this.file, this.file.name)\n const promise = Api[method](path, { data: formData })\n promise\n .then((response) => {\n this.alert = \'Uploaded file\'\n this.alertType = \'success\'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n let existingPluginTxt = null\n if (response.data.existing_plugin_txt_lines !== undefined) {\n existingPluginTxt =\n response.data.existing_plugin_txt_lines.join(\'\\n\')\n }\n let pluginTxt = response.data.plugin_txt_lines.join(\'\\n\')\n ;(this.pluginName = response.data.name),\n (this.variables = response.data.variables),\n (this.pluginTxt = pluginTxt),\n (this.existingPluginTxt = existingPluginTxt)\n this.showPluginDialog = true\n this.file = undefined\n })\n .catch((error) => {\n this.currentPlugin = null\n this.file = undefined\n })\n },\n pluginCallback: function (pluginHash) {\n this.showPluginDialog = false\n if (this.currentPlugin !== null) {\n pluginHash[\'name\'] = this.currentPlugin\n }\n this.pluginHashTmp = pluginHash\n if (this.isModified(this.currentPlugin)) {\n this.pluginDelete = false\n this.showModifiedPluginDialog = true\n } else {\n this.pluginInstall()\n }\n },\n modifiedSubmit: async function (deleteModified) {\n if (deleteModified === true) {\n for (let target of this.pluginTargets(this.currentPlugin)) {\n if (target.modified == true) {\n await Api.post(`/openc3-api/targets/${target.name}/delete_modified`)\n }\n }\n }\n if (this.pluginDelete) {\n this.deletePlugin(this.currentPlugin)\n } else {\n this.pluginInstall()\n }\n },\n pluginInstall: function () {\n Api.post(`/openc3-api/plugins/install/${this.pluginName}`, {\n data: {\n plugin_hash: JSON.stringify(this.pluginHashTmp),\n },\n }).then((response) => {\n this.alert = `Started installing plugin ${this.pluginName} ...`\n this.alertType = \'success\'\n this.showAlert = true\n this.currentPlugin = null\n this.file = undefined\n this.variables = {}\n this.pluginTxt = \'\'\n this.existingPluginTxt = null\n setTimeout(() => {\n this.showAlert = false\n this.updateProcesses()\n }, 5000)\n this.update()\n })\n },\n downloadTarget: function (name) {\n Api.post(`/openc3-api/targets/${name}/download`).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 const blob = new Blob([uInt8Array], { type: \'application/zip\' })\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 editPlugin: function (plugin) {\n Api.get(`/openc3-api/plugins/${plugin}`).then((response) => {\n let existingPluginTxt = null\n if (response.data.existing_plugin_txt_lines !== undefined) {\n existingPluginTxt = response.data.existing_plugin_txt_lines.join(\'\\n\')\n }\n let pluginTxt = response.data.plugin_txt_lines.join(\'\\n\')\n ;(this.pluginName = response.data.name),\n (this.variables = response.data.variables),\n (this.pluginTxt = pluginTxt),\n (this.existingPluginTxt = existingPluginTxt)\n this.showPluginDialog = true\n })\n },\n deletePrompt: function (plugin) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${plugin}`, {\n okText: \'Delete\',\n cancelText: \'Cancel\',\n })\n .then((dialog) => {\n if (this.isModified(plugin)) {\n this.currentPlugin = plugin\n this.pluginDelete = true\n this.showModifiedPluginDialog = true\n } else {\n this.deletePlugin(plugin)\n }\n })\n },\n deletePlugin: function (plugin) {\n this.alert = `Removing plugin ${plugin} ...`\n this.alertType = \'success\'\n this.showAlert = true\n Api.delete(`/openc3-api/plugins/${plugin}`).then((response) => {\n setTimeout(() => {\n this.showAlert = false\n this.updateProcesses()\n }, 5000)\n })\n this.update()\n },\n upgradePlugin(plugin) {\n this.file = undefined\n this.currentPlugin = plugin\n this.$refs.fileInput.$refs.input.click()\n },\n fileMousedown() {\n this.currentPlugin = null\n },\n fileChange() {\n if (this.file !== undefined) {\n if (this.currentPlugin !== null) {\n this.upload(this.currentPlugin)\n } else {\n this.upload()\n }\n }\n },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"c2ed64b2759fbe89b34f097cf1d93a2a82bb172f"},o=t[l]||(t[l]={});o[n]&&o[n].hash===e||(o[n]=i);var s=o[n];return E=function(){return s},s}E();var k={components:{DownloadDialog:A.Z,PluginDialog:C,ModifiedPluginDialog:P,SimpleTextDialog:D.Z},data:function(){return E().f[0]++,E().s[0]++,{file:null,currentPlugin:null,plugins:[],targets:[],processes:{},alert:"",alertType:"success",showAlert:!1,pluginName:null,variables:{},pluginTxt:"",pluginHashTmp:null,existingPluginTxt:null,showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",showPluginDialog:!1,showModifiedPluginDialog:!1,showDefaultTools:!1,pluginDelete:!1,defaultPlugins:["openc3-tool-admin","openc3-tool-autonomic","openc3-tool-base","openc3-tool-calendar","openc3-tool-cmdsender","openc3-tool-cmdtlmserver","openc3-tool-dataextractor","openc3-tool-dataviewer","openc3-tool-handbooks","openc3-tool-limitsmonitor","openc3-tool-packetviewer","openc3-tool-scriptrunner","openc3-tool-tablemanager","openc3-tool-tlmgrapher","openc3-tool-tlmviewer"]}},computed:{shownPlugins:function(){E().f[1]++;var n=(E().s[1]++,[]);E().s[2]++;var e,t=(0,a.Z)(this.plugins);try{for(t.s();!(e=t.n()).done;){var l=e.value,i=(E().s[3]++,l.split("__")[0]),o=(E().s[4]++,i.split("-"));E().s[5]++,o=o.slice(0,-1);var s=(E().s[6]++,o.join("-"));E().s[7]++,E().b[1][0]++,!this.defaultPlugins.includes(s)||(E().b[1][1]++,this.showDefaultTools)?(E().b[0][0]++,E().s[8]++,n.push(l)):E().b[0][1]++}}catch(u){t.e(u)}finally{t.f()}return E().s[9]++,n},pluginTargets:function(){var n=this;return E().f[2]++,E().s[10]++,function(e){E().f[3]++;var t=(E().s[11]++,[]);for(var l in E().s[12]++,n.targets)E().s[13]++,n.targets[l]["plugin"]===e?(E().b[2][0]++,E().s[14]++,t.push(n.targets[l])):E().b[2][1]++;return E().s[15]++,t}},isModified:function(){var n=this;return E().f[4]++,E().s[16]++,function(e){E().f[5]++;var t=(E().s[17]++,!1);for(var l in E().s[18]++,n.targets){if(E().s[19]++,E().b[4][0]++,n.targets[l]["plugin"]===e&&(E().b[4][1]++,!0===n.targets[l]["modified"])){E().b[3][0]++,E().s[20]++,t=!0,E().s[21]++;break}E().b[3][1]++}return E().s[22]++,t}}},mounted:function(){E().f[6]++,E().s[23]++,this.update(),E().s[24]++,this.updateProcesses()},methods:{showOutput:function(n){E().f[7]++,E().s[25]++,this.processOutput=n.output,E().s[26]++,this.showProcessOutput=!0},update:function(){var n=this;E().f[8]++,E().s[27]++,r.Z.get("/openc3-api/plugins").then((function(e){E().f[9]++,E().s[28]++,n.plugins=e.data})),E().s[29]++,r.Z.get("/openc3-api/targets_modified").then((function(e){E().f[10]++,E().s[30]++,n.targets=e.data}))},updateProcesses:function(){var n=this;E().f[11]++,E().s[31]++,r.Z.get("openc3-api/process_status/plugin_?use_regex=true").then((function(e){E().f[12]++,E().s[32]++,n.processes=e.data,E().s[33]++,Object.keys(n.processes).length>0?(E().b[5][0]++,E().s[34]++,setTimeout((function(){E().f[13]++,E().s[35]++,n.updateProcesses(),E().s[36]++,n.update()}),1e4)):E().b[5][1]++}))},formatDate:function(n){return E().f[14]++,E().s[37]++,(0,u.Z)((0,c.Z)(parseInt(n)/1e6),"yyyy-MM-dd HH:mm:ss.SSS")},upload:function(){var n=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(E().b[6][0]++,null);E().f[15]++;var t=(E().s[38]++,e?(E().b[7][0]++,"put"):(E().b[7][1]++,"post")),l=(E().s[39]++,e?(E().b[8][0]++,"/openc3-api/plugins/".concat(e)):(E().b[8][1]++,"/openc3-api/plugins")),i=(E().s[40]++,new FormData);E().s[41]++,i.append("plugin",this.file,this.file.name);var o=(E().s[42]++,r.Z[t](l,{data:i}));E().s[43]++,o.then((function(e){E().f[16]++,E().s[44]++,n.alert="Uploaded file",E().s[45]++,n.alertType="success",E().s[46]++,n.showAlert=!0,E().s[47]++,setTimeout((function(){E().f[17]++,E().s[48]++,n.showAlert=!1}),5e3),E().s[49]++,n.update();var t=(E().s[50]++,null);E().s[51]++,void 0!==e.data.existing_plugin_txt_lines?(E().b[9][0]++,E().s[52]++,t=e.data.existing_plugin_txt_lines.join("\n")):E().b[9][1]++;var l=(E().s[53]++,e.data.plugin_txt_lines.join("\n"));E().s[54]++,n.pluginName=e.data.name,n.variables=e.data.variables,n.pluginTxt=l,n.existingPluginTxt=t,E().s[55]++,n.showPluginDialog=!0,E().s[56]++,n.file=void 0})).catch((function(e){E().f[18]++,E().s[57]++,n.currentPlugin=null,E().s[58]++,n.file=void 0}))},pluginCallback:function(n){E().f[19]++,E().s[59]++,this.showPluginDialog=!1,E().s[60]++,null!==this.currentPlugin?(E().b[10][0]++,E().s[61]++,n["name"]=this.currentPlugin):E().b[10][1]++,E().s[62]++,this.pluginHashTmp=n,E().s[63]++,this.isModified(this.currentPlugin)?(E().b[11][0]++,E().s[64]++,this.pluginDelete=!1,E().s[65]++,this.showModifiedPluginDialog=!0):(E().b[11][1]++,E().s[66]++,this.pluginInstall())},modifiedSubmit:function(){var n=(0,s.Z)((0,o.Z)().mark((function n(e){var t,l,i;return(0,o.Z)().wrap((function(n){while(1)switch(n.prev=n.next){case 0:if(E().f[20]++,E().s[67]++,!0!==e){n.next=31;break}E().b[12][0]++,E().s[68]++,t=(0,a.Z)(this.pluginTargets(this.currentPlugin)),n.prev=6,t.s();case 8:if((l=t.n()).done){n.next=21;break}if(i=l.value,E().s[69]++,1!=i.modified){n.next=18;break}return E().b[13][0]++,E().s[70]++,n.next=16,r.Z.post("/openc3-api/targets/".concat(i.name,"/delete_modified"));case 16:n.next=19;break;case 18:E().b[13][1]++;case 19:n.next=8;break;case 21:n.next=26;break;case 23:n.prev=23,n.t0=n["catch"](6),t.e(n.t0);case 26:return n.prev=26,t.f(),n.finish(26);case 29:n.next=32;break;case 31:E().b[12][1]++;case 32:E().s[71]++,this.pluginDelete?(E().b[14][0]++,E().s[72]++,this.deletePlugin(this.currentPlugin)):(E().b[14][1]++,E().s[73]++,this.pluginInstall());case 34:case"end":return n.stop()}}),n,this,[[6,23,26,29]])})));function e(e){return n.apply(this,arguments)}return e}(),pluginInstall:function(){var n=this;E().f[21]++,E().s[74]++,r.Z.post("/openc3-api/plugins/install/".concat(this.pluginName),{data:{plugin_hash:JSON.stringify(this.pluginHashTmp)}}).then((function(e){E().f[22]++,E().s[75]++,n.alert="Started installing plugin ".concat(n.pluginName," ..."),E().s[76]++,n.alertType="success",E().s[77]++,n.showAlert=!0,E().s[78]++,n.currentPlugin=null,E().s[79]++,n.file=void 0,E().s[80]++,n.variables={},E().s[81]++,n.pluginTxt="",E().s[82]++,n.existingPluginTxt=null,E().s[83]++,setTimeout((function(){E().f[23]++,E().s[84]++,n.showAlert=!1,E().s[85]++,n.updateProcesses()}),5e3),E().s[86]++,n.update()}))},downloadTarget:function(n){E().f[24]++,E().s[87]++,r.Z.post("/openc3-api/targets/".concat(n,"/download")).then((function(n){E().f[25]++;var e=(E().s[88]++,window.atob(n.data.contents)),t=(E().s[89]++,new Uint8Array(e.length));E().s[90]++;for(var l=(E().s[91]++,0);l<e.length;++l)E().s[92]++,t[l]=e.charCodeAt(l);var i=(E().s[93]++,new Blob([t],{type:"application/zip"})),o=(E().s[94]++,document.createElement("a"));E().s[95]++,o.href=URL.createObjectURL(i),E().s[96]++,o.setAttribute("download",n.data.filename),E().s[97]++,o.click()}))},editPlugin:function(n){var e=this;E().f[26]++,E().s[98]++,r.Z.get("/openc3-api/plugins/".concat(n)).then((function(n){E().f[27]++;var t=(E().s[99]++,null);E().s[100]++,void 0!==n.data.existing_plugin_txt_lines?(E().b[15][0]++,E().s[101]++,t=n.data.existing_plugin_txt_lines.join("\n")):E().b[15][1]++;var l=(E().s[102]++,n.data.plugin_txt_lines.join("\n"));E().s[103]++,e.pluginName=n.data.name,e.variables=n.data.variables,e.pluginTxt=l,e.existingPluginTxt=t,E().s[104]++,e.showPluginDialog=!0}))},deletePrompt:function(n){var e=this;E().f[28]++,E().s[105]++,this.$dialog.confirm("Are you sure you want to remove: ".concat(n),{okText:"Delete",cancelText:"Cancel"}).then((function(t){E().f[29]++,E().s[106]++,e.isModified(n)?(E().b[16][0]++,E().s[107]++,e.currentPlugin=n,E().s[108]++,e.pluginDelete=!0,E().s[109]++,e.showModifiedPluginDialog=!0):(E().b[16][1]++,E().s[110]++,e.deletePlugin(n))}))},deletePlugin:function(n){var e=this;E().f[30]++,E().s[111]++,this.alert="Removing plugin ".concat(n," ..."),E().s[112]++,this.alertType="success",E().s[113]++,this.showAlert=!0,E().s[114]++,r.Z["delete"]("/openc3-api/plugins/".concat(n)).then((function(n){E().f[31]++,E().s[115]++,setTimeout((function(){E().f[32]++,E().s[116]++,e.showAlert=!1,E().s[117]++,e.updateProcesses()}),5e3)})),E().s[118]++,this.update()},upgradePlugin:function(n){E().f[33]++,E().s[119]++,this.file=void 0,E().s[120]++,this.currentPlugin=n,E().s[121]++,this.$refs.fileInput.$refs.input.click()},fileMousedown:function(){E().f[34]++,E().s[122]++,this.currentPlugin=null},fileChange:function(){E().f[35]++,E().s[123]++,void 0!==this.file?(E().b[17][0]++,E().s[124]++,null!==this.currentPlugin?(E().b[18][0]++,E().s[125]++,this.upload(this.currentPlugin)):(E().b[18][1]++,E().s[126]++,this.upload())):E().b[17][1]++}}},R=k,O=(0,v.Z)(R,l,i,!1,null,null,null),S=O.exports},7291:function(n){for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t={},l=0;l<66;l++)t[e.charAt(l)]=l;n.exports={itoc:e,ctoi:t}},7445:function(n){n.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},8864:function(n,e,t){"use strict";var l=t(7400),i=t(4229),o=t(1176),s=t(2391),a=t(635),u=Error.prototype.toString,c=i((function(){if(l){var n=s(Object.defineProperty({},"name",{get:function(){return this===n}}));if("true"!==u.call(n))return!0}return"2: 1"!==u.call({message:1,name:2})||"Error"!==u.call({})}));n.exports=c?function(){var n=o(this),e=a(n.name,"Error"),t=a(n.message);return e?t?e+": "+t:e:t}:u},4165:function(n,e,t){var l=t(8801);n.exports=function(n){try{if(l)return Function('return require("'+n+'")')()}catch(e){}}},4707:function(n,e,t){var l=t(3103),i=t(1333),o=t(5968),s=t(4229),a=t(3326),u=t(8270),c=t(7579),r=t(7291).ctoi,A=/[^\d+/a-z]/i,m=/[\t\n\f\r ]+/g,d=/[=]+$/,p=i("atob"),g=String.fromCharCode,f=o("".charAt),v=o("".replace),h=o(A.exec),C=s((function(){return""!==p(" ")})),b=!s((function(){p("a")})),x=!C&&!b&&!s((function(){p()})),_=!C&&!b&&1!==p.length;l({global:!0,enumerable:!0,forced:C||b||x||_},{atob:function(n){if(c(arguments.length,1),x||_)return p(n);var e,t,l=v(a(n),m,""),o="",s=0,C=0;if(l.length%4==0&&(l=v(l,d,"")),l.length%4==1||h(A,l))throw new(i("DOMException"))("The string is not correctly encoded","InvalidCharacterError");while(e=f(l,s++))u(r,e)&&(t=C%4?64*t+r[e]:r[e],C++%4&&(o+=g(255&t>>(-2*C&6))));return o}})},1497:function(n,e,t){"use strict";var l=t(3103),i=t(4165),o=t(1333),s=t(4229),a=t(2391),u=t(5358),c=t(1787).f,r=t(4768),A=t(6616),m=t(8270),d=t(7728),p=t(1176),g=t(8864),f=t(635),v=t(7445),h=t(1590),C=t(6407),b=t(7400),x=t(4231),_="DOMException",w="DATA_CLONE_ERR",y=o("Error"),T=o(_)||function(){try{var n=o("MessageChannel")||i("worker_threads").MessageChannel;(new n).port1.postMessage(new WeakMap)}catch(e){if(e.name==w&&25==e.code)return e.constructor}}(),P=T&&T.prototype,D=y.prototype,E=C.set,k=C.getterFor(_),R="stack"in y(_),O=function(n){return m(v,n)&&v[n].m?v[n].c:0},S=function(){d(this,N);var n=arguments.length,e=f(n<1?void 0:arguments[0]),t=f(n<2?void 0:arguments[1],"Error"),l=O(t);if(E(this,{type:_,name:t,message:e,code:l}),b||(this.name=t,this.message=e,this.code=l),R){var i=y(e);i.name=_,c(this,"stack",u(1,h(i.stack,1)))}},N=S.prototype=a(D),M=function(n){return{enumerable:!0,configurable:!0,get:n}},I=function(n){return M((function(){return k(this)[n]}))};b&&(A(N,"code",I("code")),A(N,"message",I("message")),A(N,"name",I("name"))),c(N,"constructor",u(1,S));var U=s((function(){return!(new T instanceof y)})),L=U||s((function(){return D.toString!==g||"2: 1"!==String(new T(1,2))})),$=U||s((function(){return 25!==new T(1,"DataCloneError").code})),H=U||25!==T[w]||25!==P[w],F=x?L||$||H:U;l({global:!0,constructor:!0,forced:F},{DOMException:F?S:T});var Z=o(_),G=Z.prototype;for(var B in L&&(x||T===Z)&&r(G,"toString",g),$&&b&&T===Z&&A(G,"code",M((function(){return O(p(this).name)}))),v)if(m(v,B)){var j=v[B],V=j.s,Y=u(6,j.c);m(Z,V)||c(Z,V,Y),m(G,V)||c(G,V,Y)}},5640:function(n,e,t){"use strict";var l=t(3103),i=t(9859),o=t(1333),s=t(5358),a=t(1787).f,u=t(8270),c=t(7728),r=t(835),A=t(635),m=t(7445),d=t(1590),p=t(7400),g=t(4231),f="DOMException",v=o("Error"),h=o(f),C=function(){c(this,b);var n=arguments.length,e=A(n<1?void 0:arguments[0]),t=A(n<2?void 0:arguments[1],"Error"),l=new h(e,t),i=v(e);return i.name=f,a(l,"stack",s(1,d(i.stack,1))),r(l,this,C),l},b=C.prototype=h.prototype,x="stack"in v(f),_="stack"in new h(1,2),w=h&&p&&Object.getOwnPropertyDescriptor(i,f),y=!!w&&!(w.writable&&w.configurable),T=x&&!y&&!_;l({global:!0,constructor:!0,forced:g||T},{DOMException:T?C:h});var P=o(f),D=P.prototype;if(D.constructor!==P)for(var E in g||a(D,"constructor",s(1,P)),m)if(u(m,E)){var k=m[E],R=k.s;u(P,R)||a(P,R,s(6,k.c))}},1871:function(n,e,t){var l=t(1333),i=t(4555),o="DOMException";i(l(o),o)},1150:function(n,e,t){"use strict";t.d(e,{Z:function(){return i}});t(4115),t(634),t(8188),t(796),t(8673),t(6886),t(1372);var l=t(8709);function i(n,e){var t="undefined"!==typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!t){if(Array.isArray(n)||(t=(0,l.Z)(n))||e&&n&&"number"===typeof n.length){t&&(n=t);var i=0,o=function(){};return{s:o,n:function(){return i>=n.length?{done:!0}:{done:!1,value:n[i++]}},e:function(n){throw n},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,u=!1;return{s:function(){t=t.call(n)},n:function(){var n=t.next();return a=n.done,n},e:function(n){u=!0,s=n},f:function(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw s}}}}}}]);
2
- //# sourceMappingURL=37.js.map