openc3-tool-admin 5.0.7 → 5.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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/37.js","mappings":"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","sources":["webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/PluginsTab.vue?7ce1","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/PluginDialog.vue?2483","webpack://@openc3/tool-admin/src/tools/OpenC3Admin/PluginDialog.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/PluginDialog.vue?2e2c","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/PluginDialog.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/ModifiedPluginDialog.vue?59c3","webpack://@openc3/tool-admin/src/tools/OpenC3Admin/ModifiedPluginDialog.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/ModifiedPluginDialog.vue?2654","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/ModifiedPluginDialog.vue","webpack://@openc3/tool-admin/src/tools/OpenC3Admin/tabs/PluginsTab.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/PluginsTab.vue?94ec","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/PluginsTab.vue","webpack://@openc3/tool-admin/../../node_modules/core-js/internals/base64-map.js","webpack://@openc3/tool-admin/../../node_modules/core-js/internals/dom-exception-constants.js","webpack://@openc3/tool-admin/../../node_modules/core-js/internals/error-to-string.js","webpack://@openc3/tool-admin/../../node_modules/core-js/internals/try-node-require.js","webpack://@openc3/tool-admin/../../node_modules/core-js/modules/web.atob.js","webpack://@openc3/tool-admin/../../node_modules/core-js/modules/web.dom-exception.constructor.js","webpack://@openc3/tool-admin/../../node_modules/core-js/modules/web.dom-exception.stack.js","webpack://@openc3/tool-admin/../../node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack://@openc3/tool-admin/../../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',{staticClass:\"px-2\",attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',[_c('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($event){return _vm.fileChange()},\"mousedown\":function($event){return _vm.fileMousedown()}},model:{value:(_vm.file),callback:function ($$v) {_vm.file=$$v},expression:\"file\"}})],1),_c('v-col',{attrs:{\"align\":\"right\"}},[_c('v-btn',{staticClass:\"mx-2\",attrs:{\"data-test\":\"download-plugin\",\"disabled\":_vm.file !== null},on:{\"click\":function($event){_vm.showDownloadDialog = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-cloud-download\")]),_c('span',[_vm._v(\" Download \")])],1)],1)],1),_c('v-row',{staticClass:\"px-2 pb-2\",staticStyle:{\"margin-top\":\"10px\"},attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":\"Show Default Tools\",\"data-test\":\"show-default-tools\"},model:{value:(_vm.showDefaultTools),callback:function ($$v) {_vm.showDefaultTools=$$v},expression:\"showDefaultTools\"}})],1),_c('v-col',{attrs:{\"align\":\"right\"}},[_c('div',[_vm._v(\"* indicates a modified plugin\")]),_c('div',[_vm._v(\"Click target link to download modifications\")])])],1),_c('v-alert',{attrs:{\"dismissible\":\"\",\"transition\":\"scale-transition\",\"type\":_vm.alertType,\"data-test\":\"plugin-alert\"},model:{value:(_vm.showAlert),callback:function ($$v) {_vm.showAlert=$$v},expression:\"showAlert\"}},[_vm._v(_vm._s(_vm.alert))]),(Object.keys(_vm.processes).length > 0)?_c('v-list',{attrs:{\"data-test\":\"process-list\"}},_vm._l((_vm.processes),function(process){return _c('div',{key:process.name},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_c('span',{domProps:{\"textContent\":_vm._s(\n (\"Processing \" + (process.process_type) + \": \" + (process.detail) + \" - \" + (process.state))\n )}})]),_c('v-list-item-subtitle',[_c('span',{domProps:{\"textContent\":_vm._s(' Updated At: ' + _vm.formatDate(process.updated_at))}})])],1),_c('v-list-item-icon',[(process.state === 'Running')?_c('div',[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}})],1):_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"data-test\":\"show-output\"},on:{\"click\":function($event){return _vm.showOutput(process)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-eye \")])]}}],null,true)},[_c('span',[_vm._v(\"Show Output\")])])],1)],1),_c('v-divider')],1)}),0):_vm._e(),_c('v-list',{attrs:{\"data-test\":\"plugin-list\"}},_vm._l((_vm.shownPlugins),function(plugin,index){return _c('div',{key:index},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[(_vm.isModified(plugin))?_c('span',[_vm._v(\"* \")]):_vm._e(),_vm._v(_vm._s(plugin))]),(_vm.pluginTargets(plugin).length !== 0)?_c('v-list-item-subtitle',_vm._l((_vm.pluginTargets(plugin)),function(target,index){return _c('span',{key:index},[(target.modified)?_c('a',{on:{\"click\":function($event){$event.preventDefault();return _vm.downloadTarget(target.name)}}},[_vm._v(_vm._s(target.name)+\" \")]):_c('span',[_vm._v(_vm._s(target.name)+\" \")])])}),0):_vm._e()],1),_c('v-list-item-icon',[_c('div',{staticClass:\"mx-3\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"data-test\":\"edit-plugin\"},on:{\"click\":function($event){return _vm.editPlugin(plugin)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-pencil \")])]}}],null,true)},[_c('span',[_vm._v(\"Edit Plugin Details\")])])],1),_c('div',{staticClass:\"mx-3\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"data-test\":\"upgrade-plugin\"},on:{\"click\":function($event){return _vm.upgradePlugin(plugin)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-update \")])]}}],null,true)},[_c('span',[_vm._v(\"Upgrade Plugin\")])])],1),_c('div',{staticClass:\"mx-3\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"data-test\":\"delete-plugin\"},on:{\"click\":function($event){return _vm.deletePrompt(plugin)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-delete \")])]}}],null,true)},[_c('span',[_vm._v(\"Delete Plugin\")])])],1)])],1),(index < _vm.plugins.length - 1)?_c('v-divider',{key:index}):_vm._e()],1)}),0),_c('plugin-dialog',{attrs:{\"pluginName\":_vm.pluginName,\"variables\":_vm.variables,\"pluginTxt\":_vm.pluginTxt,\"existingPluginTxt\":_vm.existingPluginTxt},on:{\"submit\":_vm.pluginCallback},model:{value:(_vm.showPluginDialog),callback:function ($$v) {_vm.showPluginDialog=$$v},expression:\"showPluginDialog\"}}),(_vm.showModifiedPluginDialog)?_c('modified-plugin-dialog',{attrs:{\"pluginName\":_vm.currentPlugin,\"targets\":_vm.pluginTargets(_vm.currentPlugin),\"pluginDelete\":_vm.pluginDelete},on:{\"submit\":_vm.modifiedSubmit},model:{value:(_vm.showModifiedPluginDialog),callback:function ($$v) {_vm.showModifiedPluginDialog=$$v},expression:\"showModifiedPluginDialog\"}}):_vm._e(),_c('download-dialog',{model:{value:(_vm.showDownloadDialog),callback:function ($$v) {_vm.showDownloadDialog=$$v},expression:\"showDownloadDialog\"}}),_c('simple-text-dialog',{attrs:{\"title\":\"Process Output\",\"text\":_vm.processOutput},model:{value:(_vm.showProcessOutput),callback:function ($$v) {_vm.showProcessOutput=$$v},expression:\"showProcessOutput\"}})],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:{\"persistent\":\"\",\"width\":\"600\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-card',[_c('v-card-text',[_c('v-row',{staticClass:\"mt-3\"},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h3',[_vm._v(_vm._s(_vm.pluginName))])]),(_vm.existingPluginTxt !== null)?_c('v-radio-group',{attrs:{\"mandatory\":\"\"},model:{value:(_vm.radioGroup),callback:function ($$v) {_vm.radioGroup=$$v},expression:\"radioGroup\"}},[_c('v-radio',{attrs:{\"label\":\"Use existing plugin.txt\",\"value\":1}}),_c('v-radio',{attrs:{\"label\":\"Use new plugin.txt\",\"value\":0}})],1):_vm._e()],1),_c('v-tabs',{attrs:{\"background-color\":\"primary\",\"dark\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',{key:0},[_vm._v(\" Variables \")]),_c('v-tab',{key:1},[_vm._v(\" plugin.txt \")]),(_vm.existingPluginTxt !== null)?_c('v-tab',{key:2},[_vm._v(\" Existing plugin.txt \")]):_vm._e()],1),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{key:0},[_c('v-card-text',[_c('div',{staticClass:\"pa-3\"},[_c('v-row',{staticClass:\"mt-3\"},_vm._l((_vm.localVariables),function(value,name){return _c('div',{key:name},[_c('v-col',[_c('v-text-field',{attrs:{\"clearable\":\"\",\"type\":\"text\",\"label\":name},model:{value:(_vm.localVariables[name]),callback:function ($$v) {_vm.$set(_vm.localVariables, name, $$v)},expression:\"localVariables[name]\"}})],1)],1)}),0)],1)])],1),_c('v-tab-item',{key:1},[_c('v-textarea',{attrs:{\"rows\":\"15\",\"data-test\":\"edit-plugin-txt\"},model:{value:(_vm.localPluginTxt),callback:function ($$v) {_vm.localPluginTxt=$$v},expression:\"localPluginTxt\"}})],1),(_vm.existingPluginTxt !== null)?_c('v-tab-item',{key:2},[_c('v-textarea',{attrs:{\"rows\":\"15\",\"data-test\":\"edit-existing-plugin-txt\"},model:{value:(_vm.localExistingPluginTxt),callback:function ($$v) {_vm.localExistingPluginTxt=$$v},expression:\"localExistingPluginTxt\"}})],1):_vm._e()],1),_c('v-row',[_c('v-spacer'),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"outlined\":\"\",\"data-test\":\"edit-cancel\"},on:{\"click\":function($event){$event.preventDefault();return _vm.close.apply(null, arguments)}}},[_vm._v(\" Cancel \")]),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"color\":\"primary\",\"type\":\"submit\",\"data-test\":\"edit-submit\"}},[_vm._v(\" Install \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\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","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!./PluginDialog.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!./PluginDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PluginDialog.vue?vue&type=template&id=48c8ba65&\"\nimport script from \"./PluginDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./PluginDialog.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","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(\" Modified Plugin \")]),_c('v-spacer')],1),_c('v-card-text',{staticClass:\"pa-3\"},[_c('div',[_vm._v(\" Plugin \"+_vm._s(_vm.plugin)+\" was modified. Would you like to delete the existing modified files? \")]),_vm._l((_vm.modifiedTargets),function(target,index){return _c('v-list-item',{key:index,attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(target.name))]),_vm._l((target.files),function(file,itemIndex){return _c('v-list-item-subtitle',{key:itemIndex},[_vm._v(_vm._s(file))])})],2)],1)}),_c('v-checkbox',{attrs:{\"label\":\"DELETE MODIFIED! THIS CAN NOT BE UNDONE!!!\",\"color\":\"error\",\"data-test\":\"modified-plugin-delete-checkbox\"},model:{value:(_vm.deleteModified),callback:function ($$v) {_vm.deleteModified=$$v},expression:\"deleteModified\"}})],2),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"outlined\":\"\",\"data-test\":\"modified-plugin-cancel\"},on:{\"click\":function($event){_vm.show = false\n _vm.$emit('cancel')}}},[_vm._v(\"Cancel\")]),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"color\":\"primary\",\"data-test\":\"modified-plugin-submit\"},on:{\"click\":function($event){_vm.show = false\n _vm.$emit('submit', _vm.deleteModified)}}},[_vm._v(_vm._s(_vm.submitButton))])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\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-->\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","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!./ModifiedPluginDialog.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!./ModifiedPluginDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ModifiedPluginDialog.vue?vue&type=template&id=c2a422c2&scoped=true&\"\nimport script from \"./ModifiedPluginDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./ModifiedPluginDialog.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 \"c2a422c2\",\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-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 <!-- TODO This alert shows both success and failure. Make consistent with rest of OpenC3. -->\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","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!./PluginsTab.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!./PluginsTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PluginsTab.vue?vue&type=template&id=637d8a1c&\"\nimport script from \"./PluginsTab.vue?vue&type=script&lang=js&\"\nexport * from \"./PluginsTab.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","var itoc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar ctoi = {};\n\nfor (var index = 0; index < 66; index++) ctoi[itoc.charAt(index)] = index;\n\nmodule.exports = {\n itoc: itoc,\n ctoi: ctoi\n};\n","module.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n var object = create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","var IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n try {\n // eslint-disable-next-line no-new-func -- safe\n if (IS_NODE) return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar hasOwn = require('../internals/has-own-property');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar ctoi = require('../internals/base64-map').ctoi;\n\nvar disallowed = /[^\\d+/a-z]/i;\nvar whitespaces = /[\\t\\n\\f\\r ]+/g;\nvar finalEq = /[=]+$/;\n\nvar $atob = getBuiltIn('atob');\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar exec = uncurryThis(disallowed.exec);\n\nvar NO_SPACES_IGNORE = fails(function () {\n return $atob(' ') !== '';\n});\n\nvar NO_ENCODING_CHECK = !fails(function () {\n $atob('a');\n});\n\nvar NO_ARG_RECEIVING_CHECK = !NO_SPACES_IGNORE && !NO_ENCODING_CHECK && !fails(function () {\n $atob();\n});\n\nvar WRONG_ARITY = !NO_SPACES_IGNORE && !NO_ENCODING_CHECK && $atob.length !== 1;\n\n// `atob` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob\n$({ global: true, enumerable: true, forced: NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY }, {\n atob: function atob(data) {\n validateArgumentsLength(arguments.length, 1);\n if (NO_ARG_RECEIVING_CHECK || WRONG_ARITY) return $atob(data);\n var string = replace(toString(data), whitespaces, '');\n var output = '';\n var position = 0;\n var bc = 0;\n var chr, bs;\n if (string.length % 4 == 0) {\n string = replace(string, finalEq, '');\n }\n if (string.length % 4 == 1 || exec(disallowed, string)) {\n throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');\n }\n while (chr = charAt(string, position++)) {\n if (hasOwn(ctoi, chr)) {\n bs = bc % 4 ? bs * 64 + ctoi[chr] : ctoi[chr];\n if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));\n }\n } return output;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n try {\n // NodeJS < 15.0 does not expose `MessageChannel` to global\n var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel;\n // eslint-disable-next-line es-x/no-weak-map, unicorn/require-post-message-target-origin -- safe\n new MessageChannel().port1.postMessage(new WeakMap());\n } catch (error) {\n if (error.name == DATA_CLONE_ERR && error.code == 25) return error.constructor;\n }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var code = codeFor(name);\n setInternalState(this, {\n type: DOM_EXCEPTION,\n name: name,\n message: message,\n code: code\n });\n if (!DESCRIPTORS) {\n this.name = name;\n this.message = message;\n this.code = code;\n }\n if (HAS_STACK) {\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n return createGetterDescriptor(function () {\n return getInternalState(this)[key];\n });\n};\n\nif (DESCRIPTORS) {\n defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n || NativeDOMException[DATA_CLONE_ERR] !== 25\n || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n return codeFor(anObject(this).name);\n }));\n}\n\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n var descriptor = createPropertyDescriptor(6, constant.c);\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, descriptor);\n }\n if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","var getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","ref","on","$event","fileChange","fileMousedown","model","value","callback","$$v","file","expression","showDownloadDialog","_v","staticStyle","showDefaultTools","alertType","showAlert","_s","alert","Object","keys","processes","length","_l","process","key","name","domProps","formatDate","updated_at","state","scopedSlots","_u","fn","_g","_b","showOutput","_e","plugin","index","isModified","pluginTargets","target","preventDefault","downloadTarget","editPlugin","upgradePlugin","deletePrompt","plugins","pluginName","variables","pluginTxt","existingPluginTxt","pluginCallback","showPluginDialog","currentPlugin","pluginDelete","modifiedSubmit","showModifiedPluginDialog","processOutput","showProcessOutput","staticRenderFns","show","radioGroup","tab","submit","apply","arguments","localVariables","$set","localPluginTxt","localExistingPluginTxt","close","props","type","required","data","computed","get","set","watch","immediate","handler","methods","lines","plugin_txt_lines","component","itemIndex","deleteModified","$emit","submitButton","targets","modifiedTargets","created","Api","files","components","DownloadDialog","PluginDialog","ModifiedPluginDialog","SimpleTextDialog","pluginHashTmp","defaultPlugins","shownPlugins","pluginNameSplit","result","mounted","update","updateProcesses","setTimeout","nanoSecs","toDate","upload","existing","formData","promise","then","response","catch","pluginHash","pluginInstall","plugin_hash","uInt8Array","link","confirm","okText","cancelText","deletePlugin","itoc","ctoi","charAt","module","exports","IndexSizeError","s","c","m","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","DESCRIPTORS","fails","anObject","create","normalizeStringArgument","nativeErrorToString","Error","prototype","toString","INCORRECT_TO_STRING","object","defineProperty","call","message","O","IS_NODE","Function","error","$","getBuiltIn","uncurryThis","hasOwn","validateArgumentsLength","disallowed","whitespaces","finalEq","$atob","fromCharCode","String","replace","exec","NO_SPACES_IGNORE","NO_ENCODING_CHECK","NO_ARG_RECEIVING_CHECK","WRONG_ARITY","global","enumerable","forced","atob","chr","bs","string","output","position","bc","tryNodeRequire","createPropertyDescriptor","defineBuiltIn","defineBuiltInAccessor","anInstance","errorToString","DOMExceptionConstants","clearErrorStack","InternalStateModule","IS_PURE","DOM_EXCEPTION","DATA_CLONE_ERR","NativeDOMException","MessageChannel","port1","postMessage","WeakMap","code","constructor","NativeDOMExceptionPrototype","ErrorPrototype","setInternalState","getInternalState","getterFor","HAS_STACK","codeFor","$DOMException","DOMExceptionPrototype","argumentsLength","undefined","stack","createGetterDescriptor","configurable","INCORRECT_CONSTRUCTOR","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","DOMException","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","descriptor","inheritIfRequired","that","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","getOwnPropertyDescriptor","BUGGY_DESCRIPTOR","writable","setToStringTag","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","unsupportedIterableToArray","i","F","n","done","e","f","TypeError","err","normalCompletion","didErr","step","next","_e2"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self["webpackChunk_openc3_tool_admin"]=self["webpackChunk_openc3_tool_admin"]||[]).push([[449],{1261:function(n,e,t){var o=t(8378),l=t(6625),i=t(5627),a=t(3093),s=function(){var n=(0,i.Z)((0,l.Z)().mark((function n(e,t){var o,i,s,r,c,u,d,m,A,p=arguments;return(0,l.Z)().wrap((function(n){while(1)switch(n.prev=n.next){case 0:if(o=p.length>2&&void 0!==p[2]?p[2]:{},i=o.data,s=o.params,r=void 0===s?{}:s,c=o.headers,u=o.noAuth,d=void 0!==u&&u,m=o.noScope,A=void 0!==m&&m,d){n.next=11;break}return n.prev=2,n.next=5,OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity);case 5:n.next=10;break;case 7:n.prev=7,n.t0=n["catch"](2),OpenC3Auth.login();case 10:c["Authorization"]=localStorage.openc3Token;case 11:return A||r["scope"]||(r["scope"]=localStorage.scope),n.abrupt("return",(0,a.Z)({method:e,url:t,data:i,params:r,headers:c}));case 13:case"end":return n.stop()}}),n,null,[[2,7]])})));return function(e,t){return n.apply(this,arguments)}}(),r={Accept:"application/json"},c=(0,o.Z)((0,o.Z)({},r),{},{"Content-Type":"application/json"});e["Z"]={get:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=e.params,o=e.headers,l=void 0===o?r:o,i=e.noScope,a=e.noAuth;return s("get",n,{params:t,headers:l,noScope:i,noAuth:a})},put:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=e.data,o=e.params,l=e.headers,i=void 0===l?c:l,a=e.noScope,r=e.noAuth;return s("put",n,{data:t,params:o,headers:i,noScope:a,noAuth:r})},post:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=e.data,o=e.params,l=e.headers,i=void 0===l?c:l,a=e.noScope,r=e.noAuth;return s("post",n,{data:t,params:o,headers:i,noScope:a,noAuth:r})},delete:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=e.params,o=e.headers,l=void 0===o?r:o,i=e.noScope,a=e.noAuth;return s("delete",n,{params:t,headers:l,noScope:i,noAuth:a})}}},3093:function(n,e,t){t(8188),t(8233);var o=t(9644),l=t.n(o),i=t(4091),a=new i["default"],s=l().create({baseURL:location.origin,timeout:6e4,params:{}});s.interceptors.response.use((function(n){return n}),(function(n){if(n.response){if(401===n.response.status)delete localStorage.openc3Token,OpenC3Auth.login(location.href);else{var e,t,o,l,i,s,r,c,u,d;if(localStorage.axiosIgnoreResponse===n.response.status.toString())return Promise.reject(n);var m="HTTP ".concat(n.response.status," - ");if(null!==(e=n.response)&&void 0!==e&&e.statusText&&(m+="".concat(n.response.statusText," ")),null!==(t=n.response)&&void 0!==t&&null!==(o=t.config)&&void 0!==o&&o.data&&(m+="".concat(n.response.config.data," ")),null!==(l=n.response)&&void 0!==l&&null!==(i=l.data)&&void 0!==i&&i.message)m+="".concat(n.response.data.message);else if(null!==(s=n.response)&&void 0!==s&&null!==(r=s.data)&&void 0!==r&&r.exception)m+="".concat(n.response.data.exception);else if(null!==(c=n.response)&&void 0!==c&&null!==(u=c.data)&&void 0!==u&&null!==(d=u.error)&&void 0!==d&&d.message)n.response.data.error.class&&(m+="".concat(n.response.data.error.class," ")),m+="".concat(n.response.data.error.message);else{var A;m+="".concat(null===(A=n.response)||void 0===A?void 0:A.data)}a.$notify.serious({title:"Network error",body:m})}throw n}throw n})),e["Z"]=s},7354:function(n,e,t){t.d(e,{Z:function(){return m}});var o=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(" Download Gems ")]),t("v-spacer")],1),t("v-card-text",[t("div",{staticClass:"pa-3"},[t("v-row",{staticClass:"my-2"},[n._v(" Select a download option ")]),t("v-row",[t("v-col",[t("div",{staticClass:"px-2"},[t("v-btn",{attrs:{block:"","data-test":"searchGithub",color:"primary",disabled:n.disableSearch},on:{click:n.searchGithub}},[n._v(" Github "),t("v-icon",{attrs:{right:"",dark:""}},[n._v(" mdi-github ")])],1)],1)])],1),t("v-row",{staticClass:"mt-5"},[n._v(" Community Gems ")]),n.listData.length<1?t("div",{staticClass:"mt-4"},[t("v-row",{staticClass:"mx-2"},[t("span",[n._v(" I’m sorry, Dave. No gems available.... ")])])],1):t("div",{staticClass:"mt-4"},n._l(n.listData,(function(e,o){return t("div",{key:o},[t("v-list-item",[t("v-list-item-content",[t("v-list-item-title",[n._v(n._s(e.name))])],1),t("v-list-item-icon",[n.activeDownload?t("div",[t("v-progress-circular",{attrs:{indeterminate:"",color:"primary"}})],1):t("div",[t("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(o){var l=o.on,i=o.attrs;return[t("v-icon",n._g(n._b({attrs:{disabled:n.activeDownload},on:{click:function(t){return n.downloadGem(e)}}},"v-icon",i,!1),l),[n._v(" mdi-cloud-download ")])]}}],null,!0)},[t("span",[n._v("Download Gem")])])],1)])],1),o<n.listData.length-1?t("v-divider",{key:o}):n._e()],1)})),0)],1)])],1)],1)},l=[],i=(t(3450),t(5342),t(8188),t(7950),t(9644)),a=t.n(i);function s(){var n="/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/DownloadDialog.vue",e="30be4b8bea1ccb22d5d6926ff0c799a807eeec0e",t=new Function("return this")(),o="__coverage__",l={path:"/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/DownloadDialog.vue",statementMap:{0:{start:{line:116,column:4},end:{line:123,column:5}},1:{start:{line:128,column:8},end:{line:128,column:25}},2:{start:{line:131,column:8},end:{line:131,column:34}},3:{start:{line:135,column:6},end:{line:135,column:35}},4:{start:{line:135,column:26},end:{line:135,column:35}},5:{start:{line:136,column:6},end:{line:140,column:7}},6:{start:{line:137,column:8},end:{line:137,column:33}},7:{start:{line:139,column:8},end:{line:139,column:31}},8:{start:{line:145,column:23},end:{line:145,column:32}},9:{start:{line:146,column:6},end:{line:153,column:10}},10:{start:{line:147,column:23},end:{line:147,column:44}},11:{start:{line:149,column:10},end:{line:152,column:11}},12:{start:{line:156,column:6},end:{line:156,column:31}},13:{start:{line:157,column:6},end:{line:159,column:8}},14:{start:{line:158,column:8},end:{line:158,column:37}},15:{start:{line:160,column:6},end:{line:162,column:15}},16:{start:{line:161,column:8},end:{line:161,column:34}},17:{start:{line:165,column:6},end:{line:165,column:26}},18:{start:{line:166,column:6},end:{line:167,column:85}},19:{start:{line:168,column:6},end:{line:168,column:24}},20:{start:{line:171,column:19},end:{line:171,column:46}},21:{start:{line:172,column:6},end:{line:172,column:25}},22:{start:{line:173,column:6},end:{line:173,column:45}},23:{start:{line:174,column:6},end:{line:174,column:18}},24:{start:{line:175,column:6},end:{line:175,column:19}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:115,column:2},end:{line:115,column:3}},loc:{start:{line:115,column:9},end:{line:124,column:3}},line:115},1:{name:"(anonymous_1)",decl:{start:{line:127,column:6},end:{line:127,column:7}},loc:{start:{line:127,column:12},end:{line:129,column:7}},line:127},2:{name:"(anonymous_2)",decl:{start:{line:130,column:6},end:{line:130,column:7}},loc:{start:{line:130,column:17},end:{line:132,column:7}},line:130},3:{name:"(anonymous_3)",decl:{start:{line:134,column:14},end:{line:134,column:15}},loc:{start:{line:134,column:26},end:{line:141,column:5}},line:134},4:{name:"(anonymous_4)",decl:{start:{line:144,column:17},end:{line:144,column:18}},loc:{start:{line:144,column:29},end:{line:154,column:5}},line:144},5:{name:"(anonymous_5)",decl:{start:{line:147,column:16},end:{line:147,column:17}},loc:{start:{line:147,column:23},end:{line:147,column:44}},line:147},6:{name:"(anonymous_6)",decl:{start:{line:148,column:13},end:{line:148,column:14}},loc:{start:{line:148,column:20},end:{line:153,column:9}},line:148},7:{name:"(anonymous_7)",decl:{start:{line:155,column:17},end:{line:155,column:18}},loc:{start:{line:155,column:29},end:{line:163,column:5}},line:155},8:{name:"(anonymous_8)",decl:{start:{line:157,column:31},end:{line:157,column:32}},loc:{start:{line:157,column:45},end:{line:159,column:7}},line:157},9:{name:"(anonymous_9)",decl:{start:{line:160,column:17},end:{line:160,column:18}},loc:{start:{line:160,column:23},end:{line:162,column:7}},line:160},10:{name:"(anonymous_10)",decl:{start:{line:164,column:18},end:{line:164,column:19}},loc:{start:{line:164,column:30},end:{line:169,column:5}},line:164},11:{name:"(anonymous_11)",decl:{start:{line:170,column:17},end:{line:170,column:18}},loc:{start:{line:170,column:32},end:{line:176,column:5}},line:170}},branchMap:{0:{loc:{start:{line:135,column:6},end:{line:135,column:35}},type:"if",locations:[{start:{line:135,column:6},end:{line:135,column:35}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:135},1:{loc:{start:{line:136,column:6},end:{line:140,column:7}},type:"if",locations:[{start:{line:136,column:6},end:{line:140,column:7}},{start:{line:138,column:13},end:{line:140,column:7}}],line:136}},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},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},b:{0:[0,0],1:[0,0]},inputSourceMap:{version:3,sources:["DownloadDialog.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2GA;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",file:"DownloadDialog.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 v-model="show" width="600">\n <v-card>\n <v-system-bar>\n <v-spacer />\n <span> Download Gems </span>\n <v-spacer />\n </v-system-bar>\n <v-card-text>\n <div class="pa-3">\n <v-row class="my-2"> Select a download option </v-row>\n <v-row>\n <v-col>\n <div class="px-2">\n <v-btn\n @click="searchGithub"\n block\n data-test="searchGithub"\n color="primary"\n :disabled="disableSearch"\n >\n Github\n <v-icon right dark> mdi-github </v-icon>\n </v-btn>\n </div>\n </v-col>\n </v-row>\n \x3c!---\n <v-row>\n <v-col>\n <div class="px-2">\n <v-btn\n @click="searchRuby"\n block\n data-test="searchRuby"\n color="primary"\n :disabled="disableSearch"\n >\n RubyGems\n <v-icon right dark> mdi-heart </v-icon>\n </v-btn>\n </div>\n </v-col>\n </v-row>\n ---\x3e\n <v-row class="mt-5"> Community Gems </v-row>\n <div class="mt-4" v-if="listData.length < 1">\n <v-row class="mx-2">\n <span> I’m sorry, Dave. No gems available.... </span>\n </v-row>\n </div>\n <div class="mt-4" v-else>\n <div v-for="(data, index) in listData" :key="index">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title>{{ data.name }}</v-list-item-title>\n </v-list-item-content>\n <v-list-item-icon>\n <div v-if="activeDownload">\n <v-progress-circular indeterminate color="primary" />\n </div>\n <div v-else>\n <v-tooltip bottom>\n <template v-slot:activator="{ on, attrs }">\n <v-icon\n @click="downloadGem(data)"\n v-bind="attrs"\n v-on="on"\n :disabled="activeDownload"\n >\n mdi-cloud-download\n </v-icon>\n </template>\n <span>Download Gem</span>\n </v-tooltip>\n </div>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if="index < listData.length - 1" :key="index" />\n </div>\n </div>\n </div>\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\n// Directly use axios since we need no authentication or scope\nimport axios from \'axios\'\n\nexport default {\n props: {\n value: Boolean, // value is the default prop when using v-model\n },\n data() {\n return {\n url: \'\',\n type: null,\n response: null,\n activeDownload: false,\n disableSearch: false,\n expanded: [],\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 listData: function () {\n if (!this.response) return []\n if (this.type === \'github\') {\n return this.parseGithub()\n } else {\n return this.parseRuby()\n }\n },\n },\n methods: {\n parseGithub: function () {\n const gemRegEx = /\\w+.gem/\n return this.response.tree\n .filter((f) => gemRegEx.exec(f.path))\n .map((f) => {\n return {\n name: f.path,\n url: `https://raw.github.com/OpenC3/openc3-tools/main/${f.path}`,\n }\n })\n },\n getResponse: function () {\n this.disableSearch = true\n axios.get(this.url).then((response) => {\n this.response = response.data\n })\n setTimeout(() => {\n this.disableSearch = false\n }, 10000)\n },\n searchGithub: function () {\n this.type = \'github\'\n this.url =\n \'https://api.github.com/repos/OpenC3/openc3-tools/git/trees/main?recursive=1\'\n this.getResponse()\n },\n downloadGem: function (gem) {\n const link = document.createElement(\'a\')\n link.href = gem.url\n link.setAttribute(\'download\', gem.name)\n link.click()\n link.remove()\n },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"30be4b8bea1ccb22d5d6926ff0c799a807eeec0e"},i=t[o]||(t[o]={});i[n]&&i[n].hash===e||(i[n]=l);var a=i[n];return s=function(){return a},a}s();var r={props:{value:Boolean},data:function(){return s().f[0]++,s().s[0]++,{url:"",type:null,response:null,activeDownload:!1,disableSearch:!1,expanded:[]}},computed:{show:{get:function(){return s().f[1]++,s().s[1]++,this.value},set:function(n){s().f[2]++,s().s[2]++,this.$emit("input",n)}},listData:function(){return s().f[3]++,s().s[3]++,this.response?(s().b[0][1]++,s().s[5]++,"github"===this.type?(s().b[1][0]++,s().s[6]++,this.parseGithub()):(s().b[1][1]++,s().s[7]++,this.parseRuby())):(s().b[0][0]++,s().s[4]++,[])}},methods:{parseGithub:function(){s().f[4]++;var n=(s().s[8]++,/\w+.gem/);return s().s[9]++,this.response.tree.filter((function(e){return s().f[5]++,s().s[10]++,n.exec(e.path)})).map((function(n){return s().f[6]++,s().s[11]++,{name:n.path,url:"https://raw.github.com/OpenC3/openc3-tools/main/".concat(n.path)}}))},getResponse:function(){var n=this;s().f[7]++,s().s[12]++,this.disableSearch=!0,s().s[13]++,a().get(this.url).then((function(e){s().f[8]++,s().s[14]++,n.response=e.data})),s().s[15]++,setTimeout((function(){s().f[9]++,s().s[16]++,n.disableSearch=!1}),1e4)},searchGithub:function(){s().f[10]++,s().s[17]++,this.type="github",s().s[18]++,this.url="https://api.github.com/repos/OpenC3/openc3-tools/git/trees/main?recursive=1",s().s[19]++,this.getResponse()},downloadGem:function(n){s().f[11]++;var e=(s().s[20]++,document.createElement("a"));s().s[21]++,e.href=n.url,s().s[22]++,e.setAttribute("download",n.name),s().s[23]++,e.click(),s().s[24]++,e.remove()}}},c=r,u=t(3287),d=(0,u.Z)(c,o,l,!1,null,null,null),m=d.exports},669:function(n,e,t){t.d(e,{Z:function(){return c}});var o=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("v-dialog",{attrs:{width:n.width},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(" "+n._s(n.title)+" ")]),t("v-spacer"),t("div",{staticClass:"mx-2"},[t("v-tooltip",{attrs:{top:""},scopedSlots:n._u([{key:"activator",fn:function(e){var o=e.on,l=e.attrs;return[t("div",n._g(n._b({},"div",l,!1),o),[t("v-icon",{attrs:{"data-test":"downloadIcon"},on:{click:n.download}},[n._v(" mdi-download ")])],1)]}}])},[t("span",[n._v(" Download ")])])],1)],1),t("v-card-text",[t("div",{staticClass:"pa-3"},[t("span",{staticStyle:{"white-space":"pre-wrap"}},[n._v(n._s(n.text))])])]),t("v-card-actions",[t("v-spacer"),t("v-btn",{staticClass:"mx-2",attrs:{color:"primary"},on:{click:function(e){n.show=!n.show}}},[n._v(" Ok ")])],1)],1)],1)},l=[],i=(t(8188),t(8673),t(6886),t(4121),t(523),{props:{value:Boolean,text:String,title:String,width:800},computed:{show:{get:function(){return this.value},set:function(n){this.$emit("input",n)}}},methods:{download:function(){var n=new Blob([this.text],{type:"text/plain"}),e=document.createElement("a");e.href=URL.createObjectURL(n),e.setAttribute("download","".concat(this.title,".txt")),e.click()}}}),a=i,s=t(3287),r=(0,s.Z)(a,o,l,!1,null,null,null),c=r.exports}}]);
2
- //# sourceMappingURL=449.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/449.js","mappings":"+KAqBMA,EAAO,yCAAG,WACdC,EACAC,GAFc,6IAGoD,CAAC,EAAjEC,EAHY,EAGZA,KAHY,IAGNC,OAAAA,OAHM,MAGG,CAAC,EAHJ,EAGOC,EAHP,EAGOA,QAHP,IAGgBC,OAAAA,OAHhB,aAGgCC,QAAAA,OAHhC,SAKTD,EALS,0CAOJE,WAAWC,YAAYD,WAAWE,oBAP9B,0DASVF,WAAWG,QATD,QAWZN,EAAQ,iBAAmBO,aAAaC,YAX5B,eAaTN,GAAYH,EAAO,WACtBA,EAAO,SAAWQ,aAAaE,OAdnB,mBAgBPC,EAAAA,EAAAA,GAAM,CACXd,OAAAA,EACAC,IAAAA,EACAC,KAAAA,EACAC,OAAAA,EACAC,QAAAA,KArBY,yDAAH,wDAyBPW,EAA2B,CAC/BC,OAAQ,oBAGJC,GAAqB,kBACtBF,GADmB,IAEtB,eAAgB,qBAGlB,QACEG,IAAK,SACHC,GAEA,6DADkE,CAAC,EAAjEhB,EACF,EADEA,OACF,IADUC,QAAAA,OACV,MADoBW,EACpB,EAD8CT,EAC9C,EAD8CA,QAASD,EACvD,EADuDA,OAEvD,OAAON,EAAQ,MAAOoB,EAAM,CAAEhB,OAAAA,EAAQC,QAAAA,EAASE,QAAAA,EAASD,OAAAA,GACzD,EAEDe,IAAK,SACHD,GAEA,6DADkE,CAAC,EAAjEjB,EACF,EADEA,KAAMC,EACR,EADQA,OACR,IADgBC,QAAAA,OAChB,MAD0Ba,EAC1B,EAD8CX,EAC9C,EAD8CA,QAASD,EACvD,EADuDA,OAEvD,OAAON,EAAQ,MAAOoB,EAAM,CAAEjB,KAAAA,EAAMC,OAAAA,EAAQC,QAAAA,EAASE,QAAAA,EAASD,OAAAA,GAC/D,EAEDgB,KAAM,SACJF,GAEA,6DADkE,CAAC,EAAjEjB,EACF,EADEA,KAAMC,EACR,EADQA,OACR,IADgBC,QAAAA,OAChB,MAD0Ba,EAC1B,EAD8CX,EAC9C,EAD8CA,QAASD,EACvD,EADuDA,OAEvD,OAAON,EAAQ,OAAQoB,EAAM,CAAEjB,KAAAA,EAAMC,OAAAA,EAAQC,QAAAA,EAASE,QAAAA,EAASD,OAAAA,GAChE,EAEDiB,OAAQ,SACNH,GAEA,6DADkE,CAAC,EAAjEhB,EACF,EADEA,OACF,IADUC,QAAAA,OACV,MADoBW,EACpB,EAD8CT,EAC9C,EAD8CA,QAASD,EACvD,EADuDA,OAEvD,OAAON,EAAQ,SAAUoB,EAAM,CAAEhB,OAAAA,EAAQC,QAAAA,EAASE,QAAAA,EAASD,OAAAA,GAC5D,E,wEC5DGkB,EAAc,IAAIC,EAAAA,WAElBC,EAAgBX,IAAAA,OAAa,CACjCY,QAASC,SAASC,OAClBC,QAAS,IACT1B,OAAQ,CAAC,IAGXsB,EAAcK,aAAaC,SAASC,KAClC,SAACD,GAAD,OAAcA,CAAd,IACA,SAACE,GACC,GAAIA,EAAMF,SAAU,CAClB,GAA8B,MAA1BE,EAAMF,SAASG,cACVvB,aAAaC,YACpBL,WAAWG,MAAMiB,SAASQ,UACrB,yBAIL,GACExB,aAAayB,sBAAwBH,EAAMF,SAASG,OAAOG,WAE3D,OAAOC,QAAQC,OAAON,GAExB,IAAIO,EAAO,QAAH,OAAWP,EAAMF,SAASG,OAA1B,OAOR,GANA,UAAID,EAAMF,gBAAV,OAAI,EAAgBU,aAClBD,GAAQ,GAAJ,OAAOP,EAAMF,SAASU,WAAtB,MAEN,UAAIR,EAAMF,gBAAV,iBAAI,EAAgBW,cAApB,OAAI,EAAwBxC,OAC1BsC,GAAQ,GAAJ,OAAOP,EAAMF,SAASW,OAAOxC,KAA7B,MAEN,UAAI+B,EAAMF,gBAAV,iBAAI,EAAgB7B,YAApB,OAAI,EAAsByC,QACxBH,GAAQ,GAAJ,OAAOP,EAAMF,SAAS7B,KAAKyC,cAC1B,aAAIV,EAAMF,gBAAV,iBAAI,EAAgB7B,YAApB,OAAI,EAAsB0C,UAC/BJ,GAAQ,GAAJ,OAAOP,EAAMF,SAAS7B,KAAK0C,gBAC1B,aAAIX,EAAMF,gBAAV,iBAAI,EAAgB7B,YAApB,iBAAI,EAAsB+B,aAA1B,OAAI,EAA6BU,QAClCV,EAAMF,SAAS7B,KAAK+B,MAAMY,QAC5BL,GAAQ,GAAJ,OAAOP,EAAMF,SAAS7B,KAAK+B,MAAMY,MAAjC,MAENL,GAAQ,GAAJ,OAAOP,EAAMF,SAAS7B,KAAK+B,MAAMU,aAChC,OACLH,GAAQ,GAAJ,iBAAOP,EAAMF,gBAAb,aAAO,EAAgB7B,KAC5B,CACDqB,EAAYuB,QAAQC,QAAQ,CAC1BC,MAAO,gBACPR,KAAAA,GAEH,CACD,MAAMP,CACP,CACC,MAAMA,CAET,IAGH,Q,uDC7EA,IAAIgB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,OAAOC,MAAM,CAACC,MAAOR,EAAQ,KAAES,SAAS,SAAUC,GAAMV,EAAIW,KAAKD,CAAG,EAAEE,WAAW,SAAS,CAACR,EAAG,SAAS,CAACA,EAAG,eAAe,CAACA,EAAG,YAAYA,EAAG,OAAO,CAACJ,EAAIa,GAAG,qBAAqBT,EAAG,aAAa,GAAGA,EAAG,cAAc,CAACA,EAAG,MAAM,CAACU,YAAY,QAAQ,CAACV,EAAG,QAAQ,CAACU,YAAY,QAAQ,CAACd,EAAIa,GAAG,gCAAgCT,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACU,YAAY,QAAQ,CAACV,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,GAAG,YAAY,eAAe,MAAQ,UAAU,SAAWN,EAAIe,eAAeC,GAAG,CAAC,MAAQhB,EAAIiB,eAAe,CAACjB,EAAIa,GAAG,YAAYT,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQ,GAAG,KAAO,KAAK,CAACN,EAAIa,GAAG,mBAAmB,IAAI,MAAM,GAAGT,EAAG,QAAQ,CAACU,YAAY,QAAQ,CAACd,EAAIa,GAAG,sBAAuBb,EAAIkB,SAASC,OAAS,EAAGf,EAAG,MAAM,CAACU,YAAY,QAAQ,CAACV,EAAG,QAAQ,CAACU,YAAY,QAAQ,CAACV,EAAG,OAAO,CAACJ,EAAIa,GAAG,iDAAiD,GAAGT,EAAG,MAAM,CAACU,YAAY,QAAQd,EAAIoB,GAAIpB,EAAY,UAAE,SAAShD,EAAKqE,GAAO,OAAOjB,EAAG,MAAM,CAACkB,IAAID,GAAO,CAACjB,EAAG,cAAc,CAACA,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACJ,EAAIa,GAAGb,EAAIuB,GAAGvE,EAAKwE,UAAU,GAAGpB,EAAG,mBAAmB,CAAEJ,EAAkB,eAAEI,EAAG,MAAM,CAACA,EAAG,sBAAsB,CAACE,MAAM,CAAC,cAAgB,GAAG,MAAQ,cAAc,GAAGF,EAAG,MAAM,CAACA,EAAG,YAAY,CAACE,MAAM,CAAC,OAAS,IAAImB,YAAYzB,EAAI0B,GAAG,CAAC,CAACJ,IAAI,YAAYK,GAAG,SAASC,GAC32C,IAAIZ,EAAKY,EAAIZ,GACTV,EAAQsB,EAAItB,MAChB,MAAO,CAACF,EAAG,SAASJ,EAAI6B,GAAG7B,EAAI8B,GAAG,CAACxB,MAAM,CAAC,SAAWN,EAAI+B,gBAAgBf,GAAG,CAAC,MAAQ,SAASgB,GAAQ,OAAOhC,EAAIiC,YAAYjF,EAAK,IAAI,SAASsD,GAAM,GAAOU,GAAI,CAAChB,EAAIa,GAAG,0BAA0B,IAAI,MAAK,IAAO,CAACT,EAAG,OAAO,CAACJ,EAAIa,GAAG,qBAAqB,MAAM,GAAIQ,EAAQrB,EAAIkB,SAASC,OAAS,EAAGf,EAAG,YAAY,CAACkB,IAAID,IAAQrB,EAAIkC,MAAM,EAAE,IAAG,IAAI,MAAM,IAAI,EAAE,EAC5VC,EAAkB,G,ysUC0GtB,OACAC,MAAAA,CACA5B,MAAAA,SAEAxD,KAJA,WAKA,OADA,sBACA,CACAD,IAAAA,GACAsF,KAAAA,KACAxD,SAAAA,KACAkD,gBAAAA,EACAhB,eAAAA,EACAuB,SAAAA,GAEA,EACAC,SAAAA,CACA5B,KAAAA,CACA3C,IADA,WAEA,OADA,sBACA,UACA,EACAwE,IAJA,SAIAhC,GAAA,sBACA,qBACA,GAEAU,SAAAA,WACA,OADA,sBACA,6BADA,WAEA,+CACA,qBACA,yBACA,oBAJA,4BAMA,GAEAuB,QAAAA,CACAC,YAAAA,WAAA,WACA,6BACA,OAFA,WAEA,mBACAC,QAAA,4DACAC,KAAA,YACA,OADA,uBACA,CACApB,KAAAA,EAAAA,KACAzE,IAAAA,mDAAAA,OAAAA,EAAAA,MAEA,GACA,EACA8F,YAAAA,WAAA,kCACA,sBADA,YAEAjF,IAAAA,IAAAA,KAAAA,KAAAA,MAAAA,SAAAA,GAAA,uBACA,iBACA,IAJA,YAKAkF,YAAAA,WAAA,uBACA,kBACA,OACA,EACA7B,aAAAA,WAAA,wBACA,mBADA,YAEA,SACA,8EAHA,YAIA,kBACA,EACAgB,YAAAA,SAAAA,GAAA,YACA,gDADA,YAEAc,EAAAA,KAAAA,EAAAA,IAFA,YAGAA,EAAAA,aAAAA,WAAAA,EAAAA,MAHA,YAIAA,EAAAA,QAJA,YAKAA,EAAAA,QACA,IC/K6X,I,UCOzXC,GAAY,OACd,EACAjD,EACAoC,GACA,EACA,KACA,KACA,MAIF,EAAea,EAAiB,O,sDClBhC,IAAIjD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQN,EAAIiD,OAAO1C,MAAM,CAACC,MAAOR,EAAQ,KAAES,SAAS,SAAUC,GAAMV,EAAIW,KAAKD,CAAG,EAAEE,WAAW,SAAS,CAACR,EAAG,SAAS,CAACA,EAAG,eAAe,CAACA,EAAG,YAAYA,EAAG,OAAO,CAACJ,EAAIa,GAAG,IAAIb,EAAIuB,GAAGvB,EAAIF,OAAO,OAAOM,EAAG,YAAYA,EAAG,MAAM,CAACU,YAAY,QAAQ,CAACV,EAAG,YAAY,CAACE,MAAM,CAAC,IAAM,IAAImB,YAAYzB,EAAI0B,GAAG,CAAC,CAACJ,IAAI,YAAYK,GAAG,SAASC,GAC3b,IAAIZ,EAAKY,EAAIZ,GACTV,EAAQsB,EAAItB,MAChB,MAAO,CAACF,EAAG,MAAMJ,EAAI6B,GAAG7B,EAAI8B,GAAG,CAAC,EAAE,MAAMxB,GAAM,GAAOU,GAAI,CAACZ,EAAG,SAAS,CAACE,MAAM,CAAC,YAAY,gBAAgBU,GAAG,CAAC,MAAQhB,EAAIkD,WAAW,CAAClD,EAAIa,GAAG,qBAAqB,GAAG,MAAM,CAACT,EAAG,OAAO,CAACJ,EAAIa,GAAG,mBAAmB,IAAI,GAAGT,EAAG,cAAc,CAACA,EAAG,MAAM,CAACU,YAAY,QAAQ,CAACV,EAAG,OAAO,CAAC+C,YAAY,CAAC,cAAc,aAAa,CAACnD,EAAIa,GAAGb,EAAIuB,GAAGvB,EAAIoD,aAAahD,EAAG,iBAAiB,CAACA,EAAG,YAAYA,EAAG,QAAQ,CAACU,YAAY,OAAOR,MAAM,CAAC,MAAQ,WAAWU,GAAG,CAAC,MAAQ,SAASgB,GAAQhC,EAAIW,MAAQX,EAAIW,IAAI,IAAI,CAACX,EAAIa,GAAG,WAAW,IAAI,IAAI,EAAE,EACvgBsB,EAAkB,GCiDtB,G,uCAAA,CACAC,MAAAA,CACA5B,MAAAA,QACA4C,KAAAA,OACAtD,MAAAA,OACAmD,MAAAA,KAEAV,SAAAA,CACA5B,KAAAA,CACA3C,IADA,WAEA,iBACA,EACAwE,IAJA,SAIAhC,GACA,qBACA,IAGAiC,QAAAA,CACAS,SAAAA,WACA,4BACAb,KAAAA,eAGA,8BACAU,EAAAA,KAAAA,IAAAA,gBAAAA,GACAA,EAAAA,aAAAA,WAAAA,GAAAA,OAAAA,KAAAA,MAAAA,SACAA,EAAAA,OACA,KChFsX,I,UCOlXC,GAAY,OACd,EACAjD,EACAoC,GACA,EACA,KACA,KACA,MAIF,EAAea,EAAiB,O","sources":["webpack://@openc3/tool-admin/../openc3-tool-common/src/services/api.js","webpack://@openc3/tool-admin/../openc3-tool-common/src/services/axios.js","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/DownloadDialog.vue?3b83","webpack://@openc3/tool-admin/src/tools/OpenC3Admin/DownloadDialog.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/DownloadDialog.vue?e9d2","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/DownloadDialog.vue","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/SimpleTextDialog.vue?dba3","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/SimpleTextDialog.vue","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/SimpleTextDialog.vue?7e9d","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/SimpleTextDialog.vue?d470"],"sourcesContent":["/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport axios from './axios.js'\n\nconst request = async function (\n method,\n url,\n { data, params = {}, headers, noAuth = false, noScope = false } = {}\n) {\n if (!noAuth) {\n try {\n await OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity)\n } catch (error) {\n OpenC3Auth.login()\n }\n headers['Authorization'] = localStorage.openc3Token\n }\n if (!noScope && !params['scope']) {\n params['scope'] = localStorage.scope\n }\n return axios({\n method,\n url,\n data,\n params,\n headers,\n })\n}\n\nconst acceptOnlyDefaultHeaders = {\n Accept: 'application/json',\n}\n\nconst fullDefaultHeaders = {\n ...acceptOnlyDefaultHeaders,\n 'Content-Type': 'application/json',\n}\n\nexport default {\n get: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('get', path, { params, headers, noScope, noAuth })\n },\n\n put: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('put', path, { data, params, headers, noScope, noAuth })\n },\n\n post: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('post', path, { data, params, headers, noScope, noAuth })\n },\n\n delete: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('delete', path, { params, headers, noScope, noAuth })\n },\n}\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport axios from 'axios'\nimport Vue from 'vue'\n\nconst vueInstance = new Vue()\n\nconst axiosInstance = axios.create({\n baseURL: location.origin,\n timeout: 60000,\n params: {},\n})\n\naxiosInstance.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n delete localStorage.openc3Token\n OpenC3Auth.login(location.href)\n } else {\n // Individual tools can set axiosIgnoreResponse to an error code\n // they potentially expect, e.g. '404', in which case we ignore it\n // Since localStorage only supports strings call toString on the status\n if (\n localStorage.axiosIgnoreResponse === error.response.status.toString()\n ) {\n return Promise.reject(error)\n }\n let body = `HTTP ${error.response.status} - `\n if (error.response?.statusText) {\n body += `${error.response.statusText} `\n }\n if (error.response?.config?.data) {\n body += `${error.response.config.data} `\n }\n if (error.response?.data?.message) {\n body += `${error.response.data.message}`\n } else if (error.response?.data?.exception) {\n body += `${error.response.data.exception}`\n } else if (error.response?.data?.error?.message) {\n if (error.response.data.error.class) {\n body += `${error.response.data.error.class} `\n }\n body += `${error.response.data.error.message}`\n } else {\n body += `${error.response?.data}`\n }\n vueInstance.$notify.serious({\n title: 'Network error',\n body,\n })\n }\n throw error\n } else {\n throw error\n }\n }\n)\n\nexport default axiosInstance\n","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(\" Download Gems \")]),_c('v-spacer')],1),_c('v-card-text',[_c('div',{staticClass:\"pa-3\"},[_c('v-row',{staticClass:\"my-2\"},[_vm._v(\" Select a download option \")]),_c('v-row',[_c('v-col',[_c('div',{staticClass:\"px-2\"},[_c('v-btn',{attrs:{\"block\":\"\",\"data-test\":\"searchGithub\",\"color\":\"primary\",\"disabled\":_vm.disableSearch},on:{\"click\":_vm.searchGithub}},[_vm._v(\" Github \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-github \")])],1)],1)])],1),_c('v-row',{staticClass:\"mt-5\"},[_vm._v(\" Community Gems \")]),(_vm.listData.length < 1)?_c('div',{staticClass:\"mt-4\"},[_c('v-row',{staticClass:\"mx-2\"},[_c('span',[_vm._v(\" I’m sorry, Dave. No gems available.... \")])])],1):_c('div',{staticClass:\"mt-4\"},_vm._l((_vm.listData),function(data,index){return _c('div',{key:index},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(data.name))])],1),_c('v-list-item-icon',[(_vm.activeDownload)?_c('div',[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}})],1):_c('div',[_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({attrs:{\"disabled\":_vm.activeDownload},on:{\"click\":function($event){return _vm.downloadGem(data)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-cloud-download \")])]}}],null,true)},[_c('span',[_vm._v(\"Download Gem\")])])],1)])],1),(index < _vm.listData.length - 1)?_c('v-divider',{key:index}):_vm._e()],1)}),0)],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> Download Gems </span>\n <v-spacer />\n </v-system-bar>\n <v-card-text>\n <div class=\"pa-3\">\n <v-row class=\"my-2\"> Select a download option </v-row>\n <v-row>\n <v-col>\n <div class=\"px-2\">\n <v-btn\n @click=\"searchGithub\"\n block\n data-test=\"searchGithub\"\n color=\"primary\"\n :disabled=\"disableSearch\"\n >\n Github\n <v-icon right dark> mdi-github </v-icon>\n </v-btn>\n </div>\n </v-col>\n </v-row>\n <!---\n <v-row>\n <v-col>\n <div class=\"px-2\">\n <v-btn\n @click=\"searchRuby\"\n block\n data-test=\"searchRuby\"\n color=\"primary\"\n :disabled=\"disableSearch\"\n >\n RubyGems\n <v-icon right dark> mdi-heart </v-icon>\n </v-btn>\n </div>\n </v-col>\n </v-row>\n --->\n <v-row class=\"mt-5\"> Community Gems </v-row>\n <div class=\"mt-4\" v-if=\"listData.length < 1\">\n <v-row class=\"mx-2\">\n <span> I’m sorry, Dave. No gems available.... </span>\n </v-row>\n </div>\n <div class=\"mt-4\" v-else>\n <div v-for=\"(data, index) in listData\" :key=\"index\">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title>{{ data.name }}</v-list-item-title>\n </v-list-item-content>\n <v-list-item-icon>\n <div v-if=\"activeDownload\">\n <v-progress-circular indeterminate color=\"primary\" />\n </div>\n <div v-else>\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n @click=\"downloadGem(data)\"\n v-bind=\"attrs\"\n v-on=\"on\"\n :disabled=\"activeDownload\"\n >\n mdi-cloud-download\n </v-icon>\n </template>\n <span>Download Gem</span>\n </v-tooltip>\n </div>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if=\"index < listData.length - 1\" :key=\"index\" />\n </div>\n </div>\n </div>\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\n// Directly use axios since we need no authentication or scope\nimport axios from 'axios'\n\nexport default {\n props: {\n value: Boolean, // value is the default prop when using v-model\n },\n data() {\n return {\n url: '',\n type: null,\n response: null,\n activeDownload: false,\n disableSearch: false,\n expanded: [],\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 listData: function () {\n if (!this.response) return []\n if (this.type === 'github') {\n return this.parseGithub()\n } else {\n return this.parseRuby()\n }\n },\n },\n methods: {\n parseGithub: function () {\n const gemRegEx = /\\w+.gem/\n return this.response.tree\n .filter((f) => gemRegEx.exec(f.path))\n .map((f) => {\n return {\n name: f.path,\n url: `https://raw.github.com/OpenC3/openc3-tools/main/${f.path}`,\n }\n })\n },\n getResponse: function () {\n this.disableSearch = true\n axios.get(this.url).then((response) => {\n this.response = response.data\n })\n setTimeout(() => {\n this.disableSearch = false\n }, 10000)\n },\n searchGithub: function () {\n this.type = 'github'\n this.url =\n 'https://api.github.com/repos/OpenC3/openc3-tools/git/trees/main?recursive=1'\n this.getResponse()\n },\n downloadGem: function (gem) {\n const link = document.createElement('a')\n link.href = gem.url\n link.setAttribute('download', gem.name)\n link.click()\n link.remove()\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!./DownloadDialog.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!./DownloadDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DownloadDialog.vue?vue&type=template&id=bfae0cae&\"\nimport script from \"./DownloadDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./DownloadDialog.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":_vm.width},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-card',[_c('v-system-bar',[_c('v-spacer'),_c('span',[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('v-spacer'),_c('div',{staticClass:\"mx-2\"},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(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('v-card-text',[_c('div',{staticClass:\"pa-3\"},[_c('span',{staticStyle:{\"white-space\":\"pre-wrap\"}},[_vm._v(_vm._s(_vm.text))])])]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.show = !_vm.show}}},[_vm._v(\" Ok \")])],1)],1)],1)}\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=\"width\">\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 <v-card-text>\n <div class=\"pa-3\">\n <span style=\"white-space: pre-wrap\">{{ text }}</span>\n </div>\n </v-card-text>\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 width: 800,\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 methods: {\n download: function () {\n const blob = new Blob([this.text], {\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}.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!./SimpleTextDialog.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!./SimpleTextDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SimpleTextDialog.vue?vue&type=template&id=ae5a22c8&\"\nimport script from \"./SimpleTextDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SimpleTextDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/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":["request","method","url","data","params","headers","noAuth","noScope","OpenC3Auth","updateToken","defaultMinValidity","login","localStorage","openc3Token","scope","axios","acceptOnlyDefaultHeaders","Accept","fullDefaultHeaders","get","path","put","post","delete","vueInstance","Vue","axiosInstance","baseURL","location","origin","timeout","interceptors","response","use","error","status","href","axiosIgnoreResponse","toString","Promise","reject","body","statusText","config","message","exception","class","$notify","serious","title","render","_vm","this","_h","$createElement","_c","_self","attrs","model","value","callback","$$v","show","expression","_v","staticClass","disableSearch","on","searchGithub","listData","length","_l","index","key","_s","name","scopedSlots","_u","fn","ref","_g","_b","activeDownload","$event","downloadGem","_e","staticRenderFns","props","type","expanded","computed","set","methods","parseGithub","filter","map","getResponse","setTimeout","link","component","width","download","staticStyle","text"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (self["webpackChunk_openc3_tool_admin"]=self["webpackChunk_openc3_tool_admin"]||[]).push([[629],{4629:function(n,t,e){"use strict";e.r(t),e.d(t,{default:function(){return m}});var o=function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("div",[e("v-list",{attrs:{"data-test":"targetList"}},n._l(n.targets,(function(t,o){return e("div",{key:t},[e("v-list-item",[e("v-list-item-content",[e("v-list-item-title",[n._v(n._s(t.name))]),e("v-list-item-subtitle",[n._v("Plugin: "+n._s(t.plugin))])],1),e("v-list-item-icon",[t.modified?e("div",{staticClass:"mx-3"},[e("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(o){var i=o.on,r=o.attrs;return[e("v-icon",n._g(n._b({on:{click:function(e){return n.downloadTarget(t.name)}}},"v-icon",r,!1),i),[n._v(" mdi-download ")])]}}],null,!0)},[e("span",[n._v("Download Target Modified Files")])])],1):n._e(),e("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(o){var i=o.on,r=o.attrs;return[e("v-icon",n._g(n._b({on:{click:function(e){return n.showTarget(t)}}},"v-icon",r,!1),i),[n._v(" mdi-eye ")])]}}],null,!0)},[e("span",[n._v("Show Target Details")])])],1)],1),o<n.targets.length-1?e("v-divider",{key:o}):n._e()],1)})),0),n.showDialog?e("edit-dialog",{attrs:{content:n.jsonContent,title:"Target: "+n.dialogTitle,readonly:""},on:{submit:n.dialogCallback},model:{value:n.showDialog,callback:function(t){n.showDialog=t},expression:"showDialog"}}):n._e()],1)},i=[],r=(e(6710),e(4707),e(1497),e(5640),e(1871),e(8188),e(3675),e(4898),e(5825),e(7170),e(8857),e(8329),e(6279),e(427),e(1159),e(2516),e(4349),e(5273),e(6729),e(1801),e(574),e(5787),e(9271),e(3160),e(5688),e(3157),e(1700),e(315),e(556),e(9224),e(6297),e(8882),e(8673),e(6886),e(4121),e(523),e(1261)),a=e(8221);function l(){var n="/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/TargetsTab.vue",t="edb41d0b671981725ead5e807a3fff9f43c748c6",e=new Function("return this")(),o="__coverage__",i={path:"/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/TargetsTab.vue",statementMap:{0:{start:{line:76,column:4},end:{line:81,column:5}},1:{start:{line:84,column:4},end:{line:84,column:17}},2:{start:{line:88,column:6},end:{line:90,column:8}},3:{start:{line:89,column:8},end:{line:89,column:36}},4:{start:{line:94,column:6},end:{line:98,column:8}},5:{start:{line:95,column:8},end:{line:95,column:68}},6:{start:{line:96,column:8},end:{line:96,column:31}},7:{start:{line:97,column:8},end:{line:97,column:30}},8:{start:{line:101,column:6},end:{line:101,column:29}},9:{start:{line:104,column:6},end:{line:118,column:8}},10:{start:{line:106,column:28},end:{line:106,column:63}},11:{start:{line:108,column:27},end:{line:108,column:61}},12:{start:{line:110,column:8},end:{line:112,column:9}},13:{start:{line:110,column:21},end:{line:110,column:22}},14:{start:{line:111,column:10},end:{line:111,column:51}},15:{start:{line:113,column:21},end:{line:113,column:72}},16:{start:{line:114,column:21},end:{line:114,column:48}},17:{start:{line:115,column:8},end:{line:115,column:45}},18:{start:{line:116,column:8},end:{line:116,column:61}},19:{start:{line:117,column:8},end:{line:117,column:20}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:75,column:2},end:{line:75,column:3}},loc:{start:{line:75,column:9},end:{line:82,column:3}},line:75},1:{name:"(anonymous_1)",decl:{start:{line:83,column:2},end:{line:83,column:3}},loc:{start:{line:83,column:12},end:{line:85,column:3}},line:83},2:{name:"(anonymous_2)",decl:{start:{line:87,column:4},end:{line:87,column:5}},loc:{start:{line:87,column:13},end:{line:91,column:5}},line:87},3:{name:"(anonymous_3)",decl:{start:{line:88,column:51},end:{line:88,column:52}},loc:{start:{line:88,column:65},end:{line:90,column:7}},line:88},4:{name:"(anonymous_4)",decl:{start:{line:92,column:4},end:{line:92,column:5}},loc:{start:{line:92,column:10},end:{line:92,column:12}},line:92},5:{name:"(anonymous_5)",decl:{start:{line:93,column:4},end:{line:93,column:5}},loc:{start:{line:93,column:21},end:{line:99,column:5}},line:93},6:{name:"(anonymous_6)",decl:{start:{line:94,column:50},end:{line:94,column:51}},loc:{start:{line:94,column:64},end:{line:98,column:7}},line:94},7:{name:"(anonymous_7)",decl:{start:{line:100,column:4},end:{line:100,column:5}},loc:{start:{line:100,column:28},end:{line:102,column:5}},line:100},8:{name:"(anonymous_8)",decl:{start:{line:103,column:20},end:{line:103,column:21}},loc:{start:{line:103,column:36},end:{line:119,column:5}},line:103},9:{name:"(anonymous_9)",decl:{start:{line:104,column:60},end:{line:104,column:61}},loc:{start:{line:104,column:74},end:{line:118,column:7}},line:104}},branchMap:{},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},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0},b:{},inputSourceMap:{version:3,sources:["TargetsTab.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"TargetsTab.vue",sourceRoot:"src/tools/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-list data-test="targetList">\n <div v-for="(target, index) in targets" :key="target">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title>{{ target.name }}</v-list-item-title>\n <v-list-item-subtitle\n >Plugin: {{ target.plugin }}</v-list-item-subtitle\n >\n </v-list-item-content>\n <v-list-item-icon>\n <div class="mx-3" v-if="target.modified">\n <v-tooltip bottom>\n <template v-slot:activator="{ on, attrs }">\n <v-icon\n @click="downloadTarget(target.name)"\n v-bind="attrs"\n v-on="on"\n >\n mdi-download\n </v-icon>\n </template>\n <span>Download Target Modified Files</span>\n </v-tooltip>\n </div>\n <v-tooltip bottom>\n <template v-slot:activator="{ on, attrs }">\n <v-icon @click="showTarget(target)" v-bind="attrs" v-on="on">\n mdi-eye\n </v-icon>\n </template>\n <span>Show Target Details</span>\n </v-tooltip>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if="index < targets.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="`Target: ${dialogTitle}`"\n readonly\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\'\nexport default {\n components: { EditDialog },\n data() {\n return {\n targets: [],\n jsonContent: \'\',\n dialogTitle: \'\',\n showDialog: false,\n }\n },\n mounted() {\n this.update()\n },\n methods: {\n update() {\n Api.get(\'/openc3-api/targets_modified\').then((response) => {\n this.targets = response.data\n })\n },\n add() {},\n showTarget(name) {\n Api.get(`/openc3-api/targets/${name}`).then((response) => {\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 },\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 },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"edb41d0b671981725ead5e807a3fff9f43c748c6"},r=e[o]||(e[o]={});r[n]&&r[n].hash===t||(r[n]=i);var a=r[n];return l=function(){return a},a}l();var c={components:{EditDialog:a.Z},data:function(){return l().f[0]++,l().s[0]++,{targets:[],jsonContent:"",dialogTitle:"",showDialog:!1}},mounted:function(){l().f[1]++,l().s[1]++,this.update()},methods:{update:function(){var n=this;l().f[2]++,l().s[2]++,r.Z.get("/openc3-api/targets_modified").then((function(t){l().f[3]++,l().s[3]++,n.targets=t.data}))},add:function(){l().f[4]++},showTarget:function(n){var t=this;l().f[5]++,l().s[4]++,r.Z.get("/openc3-api/targets/".concat(n)).then((function(e){l().f[6]++,l().s[5]++,t.jsonContent=JSON.stringify(e.data,null,"\t"),l().s[6]++,t.dialogTitle=n,l().s[7]++,t.showDialog=!0}))},dialogCallback:function(n){l().f[7]++,l().s[8]++,this.showDialog=!1},downloadTarget:function(n){l().f[8]++,l().s[9]++,r.Z.post("/openc3-api/targets/".concat(n,"/download")).then((function(n){l().f[9]++;var t=(l().s[10]++,window.atob(n.data.contents)),e=(l().s[11]++,new Uint8Array(t.length));l().s[12]++;for(var o=(l().s[13]++,0);o<t.length;++o)l().s[14]++,e[o]=t.charCodeAt(o);var i=(l().s[15]++,new Blob([e],{type:"application/zip"})),r=(l().s[16]++,document.createElement("a"));l().s[17]++,r.href=URL.createObjectURL(i),l().s[18]++,r.setAttribute("download",n.data.filename),l().s[19]++,r.click()}))}}},s=c,u=e(3287),d=(0,u.Z)(s,o,i,!1,null,null,null),m=d.exports},7291:function(n){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",e={},o=0;o<66;o++)e[t.charAt(o)]=o;n.exports={itoc:t,ctoi:e}},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,t,e){"use strict";var o=e(7400),i=e(4229),r=e(1176),a=e(2391),l=e(635),c=Error.prototype.toString,s=i((function(){if(o){var n=a(Object.defineProperty({},"name",{get:function(){return this===n}}));if("true"!==c.call(n))return!0}return"2: 1"!==c.call({message:1,name:2})||"Error"!==c.call({})}));n.exports=s?function(){var n=r(this),t=l(n.name,"Error"),e=l(n.message);return t?e?t+": "+e:t:e}:c},4165:function(n,t,e){var o=e(8801);n.exports=function(n){try{if(o)return Function('return require("'+n+'")')()}catch(t){}}},4707:function(n,t,e){var o=e(3103),i=e(1333),r=e(5968),a=e(4229),l=e(3326),c=e(8270),s=e(7579),u=e(7291).ctoi,d=/[^\d+/a-z]/i,m=/[\t\n\f\r ]+/g,A=/[=]+$/,p=i("atob"),f=String.fromCharCode,g=r("".charAt),v=r("".replace),h=r(d.exec),E=a((function(){return""!==p(" ")})),C=!a((function(){p("a")})),_=!E&&!C&&!a((function(){p()})),R=!E&&!C&&1!==p.length;o({global:!0,enumerable:!0,forced:E||C||_||R},{atob:function(n){if(s(arguments.length,1),_||R)return p(n);var t,e,o=v(l(n),m,""),r="",a=0,E=0;if(o.length%4==0&&(o=v(o,A,"")),o.length%4==1||h(d,o))throw new(i("DOMException"))("The string is not correctly encoded","InvalidCharacterError");while(t=g(o,a++))c(u,t)&&(e=E%4?64*e+u[t]:u[t],E++%4&&(r+=f(255&e>>(-2*E&6))));return r}})},1497:function(n,t,e){"use strict";var o=e(3103),i=e(4165),r=e(1333),a=e(4229),l=e(2391),c=e(5358),s=e(1787).f,u=e(4768),d=e(6616),m=e(8270),A=e(7728),p=e(1176),f=e(8864),g=e(635),v=e(7445),h=e(1590),E=e(6407),C=e(7400),_=e(4231),R="DOMException",T="DATA_CLONE_ERR",b=r("Error"),w=r(R)||function(){try{var n=r("MessageChannel")||i("worker_threads").MessageChannel;(new n).port1.postMessage(new WeakMap)}catch(t){if(t.name==T&&25==t.code)return t.constructor}}(),D=w&&w.prototype,y=b.prototype,I=E.set,O=E.getterFor(R),N="stack"in b(R),S=function(n){return m(v,n)&&v[n].m?v[n].c:0},k=function(){A(this,M);var n=arguments.length,t=g(n<1?void 0:arguments[0]),e=g(n<2?void 0:arguments[1],"Error"),o=S(e);if(I(this,{type:R,name:e,message:t,code:o}),C||(this.name=e,this.message=t,this.code=o),N){var i=b(t);i.name=R,s(this,"stack",c(1,h(i.stack,1)))}},M=k.prototype=l(y),x=function(n){return{enumerable:!0,configurable:!0,get:n}},L=function(n){return x((function(){return O(this)[n]}))};C&&(d(M,"code",L("code")),d(M,"message",L("message")),d(M,"name",L("name"))),s(M,"constructor",c(1,k));var U=a((function(){return!(new w instanceof b)})),P=U||a((function(){return y.toString!==f||"2: 1"!==String(new w(1,2))})),F=U||a((function(){return 25!==new w(1,"DataCloneError").code})),j=U||25!==w[T]||25!==D[T],Y=_?P||F||j:U;o({global:!0,constructor:!0,forced:Y},{DOMException:Y?k:w});var H=r(R),W=H.prototype;for(var B in P&&(_||w===H)&&u(W,"toString",f),F&&C&&w===H&&d(W,"code",x((function(){return S(p(this).name)}))),v)if(m(v,B)){var V=v[B],Z=V.s,z=c(6,V.c);m(H,Z)||s(H,Z,z),m(W,Z)||s(W,Z,z)}},5640:function(n,t,e){"use strict";var o=e(3103),i=e(9859),r=e(1333),a=e(5358),l=e(1787).f,c=e(8270),s=e(7728),u=e(835),d=e(635),m=e(7445),A=e(1590),p=e(7400),f=e(4231),g="DOMException",v=r("Error"),h=r(g),E=function(){s(this,C);var n=arguments.length,t=d(n<1?void 0:arguments[0]),e=d(n<2?void 0:arguments[1],"Error"),o=new h(t,e),i=v(t);return i.name=g,l(o,"stack",a(1,A(i.stack,1))),u(o,this,E),o},C=E.prototype=h.prototype,_="stack"in v(g),R="stack"in new h(1,2),T=h&&p&&Object.getOwnPropertyDescriptor(i,g),b=!!T&&!(T.writable&&T.configurable),w=_&&!b&&!R;o({global:!0,constructor:!0,forced:f||w},{DOMException:w?E:h});var D=r(g),y=D.prototype;if(y.constructor!==D)for(var I in f||l(y,"constructor",a(1,D)),m)if(c(m,I)){var O=m[I],N=O.s;c(D,N)||l(D,N,a(6,O.c))}},1871:function(n,t,e){var o=e(1333),i=e(4555),r="DOMException";i(o(r),r)}}]);
2
- //# sourceMappingURL=629.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/629.js","mappings":"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","sources":["webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/TargetsTab.vue?14c5","webpack://@openc3/tool-admin/src/tools/OpenC3Admin/tabs/TargetsTab.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/TargetsTab.vue?4df9","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/TargetsTab.vue","webpack://@openc3/tool-admin/../../node_modules/core-js/internals/base64-map.js","webpack://@openc3/tool-admin/../../node_modules/core-js/internals/dom-exception-constants.js","webpack://@openc3/tool-admin/../../node_modules/core-js/internals/error-to-string.js","webpack://@openc3/tool-admin/../../node_modules/core-js/internals/try-node-require.js","webpack://@openc3/tool-admin/../../node_modules/core-js/modules/web.atob.js","webpack://@openc3/tool-admin/../../node_modules/core-js/modules/web.dom-exception.constructor.js","webpack://@openc3/tool-admin/../../node_modules/core-js/modules/web.dom-exception.stack.js","webpack://@openc3/tool-admin/../../node_modules/core-js/modules/web.dom-exception.to-string-tag.js"],"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\":\"targetList\"}},_vm._l((_vm.targets),function(target,index){return _c('div',{key:target},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(target.name))]),_c('v-list-item-subtitle',[_vm._v(\"Plugin: \"+_vm._s(target.plugin))])],1),_c('v-list-item-icon',[(target.modified)?_c('div',{staticClass:\"mx-3\"},[_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.downloadTarget(target.name)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-download \")])]}}],null,true)},[_c('span',[_vm._v(\"Download Target Modified Files\")])])],1):_vm._e(),_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.showTarget(target)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-eye \")])]}}],null,true)},[_c('span',[_vm._v(\"Show Target Details\")])])],1)],1),(index < _vm.targets.length - 1)?_c('v-divider',{key:index}):_vm._e()],1)}),0),(_vm.showDialog)?_c('edit-dialog',{attrs:{\"content\":_vm.jsonContent,\"title\":(\"Target: \" + _vm.dialogTitle),\"readonly\":\"\"},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-list data-test=\"targetList\">\n <div v-for=\"(target, index) in targets\" :key=\"target\">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title>{{ target.name }}</v-list-item-title>\n <v-list-item-subtitle\n >Plugin: {{ target.plugin }}</v-list-item-subtitle\n >\n </v-list-item-content>\n <v-list-item-icon>\n <div class=\"mx-3\" v-if=\"target.modified\">\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n @click=\"downloadTarget(target.name)\"\n v-bind=\"attrs\"\n v-on=\"on\"\n >\n mdi-download\n </v-icon>\n </template>\n <span>Download Target Modified Files</span>\n </v-tooltip>\n </div>\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon @click=\"showTarget(target)\" v-bind=\"attrs\" v-on=\"on\">\n mdi-eye\n </v-icon>\n </template>\n <span>Show Target Details</span>\n </v-tooltip>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if=\"index < targets.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=\"`Target: ${dialogTitle}`\"\n readonly\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'\nexport default {\n components: { EditDialog },\n data() {\n return {\n targets: [],\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n }\n },\n mounted() {\n this.update()\n },\n methods: {\n update() {\n Api.get('/openc3-api/targets_modified').then((response) => {\n this.targets = response.data\n })\n },\n add() {},\n showTarget(name) {\n Api.get(`/openc3-api/targets/${name}`).then((response) => {\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 },\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 },\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!./TargetsTab.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!./TargetsTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TargetsTab.vue?vue&type=template&id=65365800&\"\nimport script from \"./TargetsTab.vue?vue&type=script&lang=js&\"\nexport * from \"./TargetsTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/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","var itoc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar ctoi = {};\n\nfor (var index = 0; index < 66; index++) ctoi[itoc.charAt(index)] = index;\n\nmodule.exports = {\n itoc: itoc,\n ctoi: ctoi\n};\n","module.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n var object = create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","var IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n try {\n // eslint-disable-next-line no-new-func -- safe\n if (IS_NODE) return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar hasOwn = require('../internals/has-own-property');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar ctoi = require('../internals/base64-map').ctoi;\n\nvar disallowed = /[^\\d+/a-z]/i;\nvar whitespaces = /[\\t\\n\\f\\r ]+/g;\nvar finalEq = /[=]+$/;\n\nvar $atob = getBuiltIn('atob');\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar exec = uncurryThis(disallowed.exec);\n\nvar NO_SPACES_IGNORE = fails(function () {\n return $atob(' ') !== '';\n});\n\nvar NO_ENCODING_CHECK = !fails(function () {\n $atob('a');\n});\n\nvar NO_ARG_RECEIVING_CHECK = !NO_SPACES_IGNORE && !NO_ENCODING_CHECK && !fails(function () {\n $atob();\n});\n\nvar WRONG_ARITY = !NO_SPACES_IGNORE && !NO_ENCODING_CHECK && $atob.length !== 1;\n\n// `atob` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob\n$({ global: true, enumerable: true, forced: NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY }, {\n atob: function atob(data) {\n validateArgumentsLength(arguments.length, 1);\n if (NO_ARG_RECEIVING_CHECK || WRONG_ARITY) return $atob(data);\n var string = replace(toString(data), whitespaces, '');\n var output = '';\n var position = 0;\n var bc = 0;\n var chr, bs;\n if (string.length % 4 == 0) {\n string = replace(string, finalEq, '');\n }\n if (string.length % 4 == 1 || exec(disallowed, string)) {\n throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');\n }\n while (chr = charAt(string, position++)) {\n if (hasOwn(ctoi, chr)) {\n bs = bc % 4 ? bs * 64 + ctoi[chr] : ctoi[chr];\n if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));\n }\n } return output;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n try {\n // NodeJS < 15.0 does not expose `MessageChannel` to global\n var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel;\n // eslint-disable-next-line es-x/no-weak-map, unicorn/require-post-message-target-origin -- safe\n new MessageChannel().port1.postMessage(new WeakMap());\n } catch (error) {\n if (error.name == DATA_CLONE_ERR && error.code == 25) return error.constructor;\n }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var code = codeFor(name);\n setInternalState(this, {\n type: DOM_EXCEPTION,\n name: name,\n message: message,\n code: code\n });\n if (!DESCRIPTORS) {\n this.name = name;\n this.message = message;\n this.code = code;\n }\n if (HAS_STACK) {\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n return createGetterDescriptor(function () {\n return getInternalState(this)[key];\n });\n};\n\nif (DESCRIPTORS) {\n defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n || NativeDOMException[DATA_CLONE_ERR] !== 25\n || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n return codeFor(anObject(this).name);\n }));\n}\n\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n var descriptor = createPropertyDescriptor(6, constant.c);\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, descriptor);\n }\n if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","var getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","_l","target","index","key","_v","_s","name","plugin","staticClass","scopedSlots","_u","fn","ref","on","_g","_b","$event","downloadTarget","_e","showTarget","targets","length","jsonContent","dialogTitle","dialogCallback","model","value","callback","$$v","showDialog","expression","staticRenderFns","components","EditDialog","data","mounted","methods","update","Api","add","content","uInt8Array","type","link","component","itoc","ctoi","charAt","module","exports","IndexSizeError","s","c","m","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","DESCRIPTORS","fails","anObject","create","normalizeStringArgument","nativeErrorToString","Error","prototype","toString","INCORRECT_TO_STRING","object","Object","defineProperty","get","call","message","O","IS_NODE","Function","error","$","getBuiltIn","uncurryThis","hasOwn","validateArgumentsLength","disallowed","whitespaces","finalEq","$atob","fromCharCode","String","replace","exec","NO_SPACES_IGNORE","NO_ENCODING_CHECK","NO_ARG_RECEIVING_CHECK","WRONG_ARITY","global","enumerable","forced","atob","arguments","chr","bs","string","output","position","bc","tryNodeRequire","createPropertyDescriptor","defineBuiltIn","defineBuiltInAccessor","anInstance","errorToString","DOMExceptionConstants","clearErrorStack","InternalStateModule","IS_PURE","DOM_EXCEPTION","DATA_CLONE_ERR","NativeDOMException","MessageChannel","port1","postMessage","WeakMap","code","constructor","NativeDOMExceptionPrototype","ErrorPrototype","setInternalState","set","getInternalState","getterFor","HAS_STACK","codeFor","$DOMException","DOMExceptionPrototype","argumentsLength","undefined","stack","createGetterDescriptor","configurable","INCORRECT_CONSTRUCTOR","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","DOMException","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","descriptor","inheritIfRequired","that","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","getOwnPropertyDescriptor","BUGGY_DESCRIPTOR","writable","setToStringTag"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self["webpackChunk_openc3_tool_admin"]=self["webpackChunk_openc3_tool_admin"]||[]).push([[699],{7699:function(n,e,t){t.r(e),t.d(e,{default:function(){return m}});var o=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",[t("v-list",{attrs:{"data-test":"routerList"}},n._l(n.routers,(function(e,o){return t("div",{key:o},[t("v-list-item",[t("v-list-item-content",[t("v-list-item-title",[n._v(n._s(e))])],1),t("v-list-item-icon",[t("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(o){var i=o.on,l=o.attrs;return[t("v-icon",n._g(n._b({on:{click:function(t){return n.showRouter(e)}}},"v-icon",l,!1),i),[n._v(" mdi-eye ")])]}}],null,!0)},[t("span",[n._v("Show Router Details")])])],1)],1),o<n.routers.length-1?t("v-divider",{key:o}):n._e()],1)})),0),n.showDialog?t("edit-dialog",{attrs:{content:n.jsonContent,title:"Router: "+n.dialogTitle,readonly:""},on:{submit:n.dialogCallback},model:{value:n.showDialog,callback:function(e){n.showDialog=e},expression:"showDialog"}}):n._e()],1)},i=[],l=(t(6710),t(1261)),s=t(8221);function a(){var n="/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/RoutersTab.vue",e="edc5f938e873c8e161949c7b6979e35d77b74a5e",t=new Function("return this")(),o="__coverage__",i={path:"/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/RoutersTab.vue",statementMap:{0:{start:{line:59,column:4},end:{line:64,column:5}},1:{start:{line:67,column:4},end:{line:67,column:17}},2:{start:{line:71,column:6},end:{line:73,column:8}},3:{start:{line:72,column:8},end:{line:72,column:36}},4:{start:{line:77,column:6},end:{line:81,column:8}},5:{start:{line:78,column:8},end:{line:78,column:68}},6:{start:{line:79,column:8},end:{line:79,column:31}},7:{start:{line:80,column:8},end:{line:80,column:30}},8:{start:{line:84,column:6},end:{line:84,column:29}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:58,column:2},end:{line:58,column:3}},loc:{start:{line:58,column:9},end:{line:65,column:3}},line:58},1:{name:"(anonymous_1)",decl:{start:{line:66,column:2},end:{line:66,column:3}},loc:{start:{line:66,column:12},end:{line:68,column:3}},line:66},2:{name:"(anonymous_2)",decl:{start:{line:70,column:4},end:{line:70,column:5}},loc:{start:{line:70,column:13},end:{line:74,column:5}},line:70},3:{name:"(anonymous_3)",decl:{start:{line:71,column:42},end:{line:71,column:43}},loc:{start:{line:71,column:56},end:{line:73,column:7}},line:71},4:{name:"(anonymous_4)",decl:{start:{line:75,column:4},end:{line:75,column:5}},loc:{start:{line:75,column:10},end:{line:75,column:12}},line:75},5:{name:"(anonymous_5)",decl:{start:{line:76,column:4},end:{line:76,column:5}},loc:{start:{line:76,column:21},end:{line:82,column:5}},line:76},6:{name:"(anonymous_6)",decl:{start:{line:77,column:50},end:{line:77,column:51}},loc:{start:{line:77,column:64},end:{line:81,column:7}},line:77},7:{name:"(anonymous_7)",decl:{start:{line:83,column:4},end:{line:83,column:5}},loc:{start:{line:83,column:28},end:{line:85,column:5}},line:83}},branchMap:{},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0},b:{},inputSourceMap:{version:3,sources:["RoutersTab.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"RoutersTab.vue",sourceRoot:"src/tools/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-list data-test="routerList">\n <div v-for="(router, index) in routers" :key="index">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title>{{ router }}</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="showRouter(router)" v-bind="attrs" v-on="on">\n mdi-eye\n </v-icon>\n </template>\n <span>Show Router Details</span>\n </v-tooltip>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if="index < routers.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="`Router: ${dialogTitle}`"\n readonly\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\'\nexport default {\n components: { EditDialog },\n data() {\n return {\n routers: [],\n jsonContent: \'\',\n dialogTitle: \'\',\n showDialog: false,\n }\n },\n mounted() {\n this.update()\n },\n methods: {\n update() {\n Api.get(\'/openc3-api/routers\').then((response) => {\n this.routers = response.data\n })\n },\n add() {},\n showRouter(name) {\n Api.get(`/openc3-api/routers/${name}`).then((response) => {\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 },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"edc5f938e873c8e161949c7b6979e35d77b74a5e"},l=t[o]||(t[o]={});l[n]&&l[n].hash===e||(l[n]=i);var s=l[n];return a=function(){return s},s}a();var r={components:{EditDialog:s.Z},data:function(){return a().f[0]++,a().s[0]++,{routers:[],jsonContent:"",dialogTitle:"",showDialog:!1}},mounted:function(){a().f[1]++,a().s[1]++,this.update()},methods:{update:function(){var n=this;a().f[2]++,a().s[2]++,l.Z.get("/openc3-api/routers").then((function(e){a().f[3]++,a().s[3]++,n.routers=e.data}))},add:function(){a().f[4]++},showRouter:function(n){var e=this;a().f[5]++,a().s[4]++,l.Z.get("/openc3-api/routers/".concat(n)).then((function(t){a().f[6]++,a().s[5]++,e.jsonContent=JSON.stringify(t.data,null,"\t"),a().s[6]++,e.dialogTitle=n,a().s[7]++,e.showDialog=!0}))},dialogCallback:function(n){a().f[7]++,a().s[8]++,this.showDialog=!1}}},c=r,u=t(3287),d=(0,u.Z)(c,o,i,!1,null,null,null),m=d.exports}}]);
2
- //# sourceMappingURL=699.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/699.js","mappings":"gLAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,SAAS,CAACE,MAAM,CAAC,YAAY,eAAeN,EAAIO,GAAIP,EAAW,SAAE,SAASQ,EAAOC,GAAO,OAAOL,EAAG,MAAM,CAACM,IAAID,GAAO,CAACL,EAAG,cAAc,CAACA,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACJ,EAAIW,GAAGX,EAAIY,GAAGJ,OAAY,GAAGJ,EAAG,mBAAmB,CAACA,EAAG,YAAY,CAACE,MAAM,CAAC,OAAS,IAAIO,YAAYb,EAAIc,GAAG,CAAC,CAACJ,IAAI,YAAYK,GAAG,SAASC,GAC/a,IAAIC,EAAKD,EAAIC,GACTX,EAAQU,EAAIV,MAChB,MAAO,CAACF,EAAG,SAASJ,EAAIkB,GAAGlB,EAAImB,GAAG,CAACF,GAAG,CAAC,MAAQ,SAASG,GAAQ,OAAOpB,EAAIqB,WAAWb,EAAO,IAAI,SAASF,GAAM,GAAOW,GAAI,CAACjB,EAAIW,GAAG,eAAe,IAAI,MAAK,IAAO,CAACP,EAAG,OAAO,CAACJ,EAAIW,GAAG,4BAA4B,IAAI,GAAIF,EAAQT,EAAIsB,QAAQC,OAAS,EAAGnB,EAAG,YAAY,CAACM,IAAID,IAAQT,EAAIwB,MAAM,EAAE,IAAG,GAAIxB,EAAc,WAAEI,EAAG,cAAc,CAACE,MAAM,CAAC,QAAUN,EAAIyB,YAAY,MAAS,WAAazB,EAAI0B,YAAa,SAAW,IAAIT,GAAG,CAAC,OAASjB,EAAI2B,gBAAgBC,MAAM,CAACC,MAAO7B,EAAc,WAAE8B,SAAS,SAAUC,GAAM/B,EAAIgC,WAAWD,CAAG,EAAEE,WAAW,gBAAgBjC,EAAIwB,MAAM,EAAE,EAChjBU,EAAkB,G,wlKCmDtB,OACAC,WAAAA,CAAAC,WAAAA,EAAAA,GACAC,KAFA,WAGA,OADA,sBACA,CACAf,QAAAA,GACAG,YAAAA,GACAC,YAAAA,GACAM,YAAAA,EAEA,EACAM,QAVA,WAUA,sBACA,aACA,EACAC,QAAAA,CACAC,OADA,WACA,iCACAC,EAAAA,EAAAA,IAAAA,uBAAAA,MAAAA,SAAAA,GAAA,sBACA,gBACA,GACA,EACAC,IANA,WAMA,YACArB,WAPA,SAOAsB,GAAA,iCACAF,EAAAA,EAAAA,IAAAA,uBAAAA,OAAAA,IAAAA,MAAAA,SAAAA,GAAA,sBACA,+CADA,WAEA,gBAFA,WAGA,eACA,GACA,EACAd,eAdA,SAcAiB,GAAA,sBACA,kBACA,ICpFkY,I,UCO9XC,GAAY,OACd,EACA9C,EACAmC,GACA,EACA,KACA,KACA,MAIF,EAAeW,EAAiB,O","sources":["webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/RoutersTab.vue?1024","webpack://@openc3/tool-admin/src/tools/OpenC3Admin/tabs/RoutersTab.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/RoutersTab.vue?e313","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/RoutersTab.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\":\"routerList\"}},_vm._l((_vm.routers),function(router,index){return _c('div',{key:index},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(router))])],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.showRouter(router)}}},'v-icon',attrs,false),on),[_vm._v(\" mdi-eye \")])]}}],null,true)},[_c('span',[_vm._v(\"Show Router Details\")])])],1)],1),(index < _vm.routers.length - 1)?_c('v-divider',{key:index}):_vm._e()],1)}),0),(_vm.showDialog)?_c('edit-dialog',{attrs:{\"content\":_vm.jsonContent,\"title\":(\"Router: \" + _vm.dialogTitle),\"readonly\":\"\"},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-list data-test=\"routerList\">\n <div v-for=\"(router, index) in routers\" :key=\"index\">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title>{{ router }}</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=\"showRouter(router)\" v-bind=\"attrs\" v-on=\"on\">\n mdi-eye\n </v-icon>\n </template>\n <span>Show Router Details</span>\n </v-tooltip>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if=\"index < routers.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=\"`Router: ${dialogTitle}`\"\n readonly\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'\nexport default {\n components: { EditDialog },\n data() {\n return {\n routers: [],\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n }\n },\n mounted() {\n this.update()\n },\n methods: {\n update() {\n Api.get('/openc3-api/routers').then((response) => {\n this.routers = response.data\n })\n },\n add() {},\n showRouter(name) {\n Api.get(`/openc3-api/routers/${name}`).then((response) => {\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 },\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!./RoutersTab.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!./RoutersTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoutersTab.vue?vue&type=template&id=4470d4de&\"\nimport script from \"./RoutersTab.vue?vue&type=script&lang=js&\"\nexport * from \"./RoutersTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/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","router","index","key","_v","_s","scopedSlots","_u","fn","ref","on","_g","_b","$event","showRouter","routers","length","_e","jsonContent","dialogTitle","dialogCallback","model","value","callback","$$v","showDialog","expression","staticRenderFns","components","EditDialog","data","mounted","methods","update","Api","add","name","content","component"],"sourceRoot":""}