openc3-cosmos-tool-admin 7.1.1 → 7.2.1

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 (114) hide show
  1. checksums.yaml +4 -4
  2. data/tools/admin/ArrayWidget-DMSm_P6c-efc7746a4ba953cd6808.js +2 -0
  3. data/tools/admin/{ArrayplotWidget-D5McM1rY-ddc534bbeddb80cec6bc.js → ArrayplotWidget-fdXLhGAl-bb78ab3e4fdecdfebd67.js} +1 -1
  4. data/tools/admin/{BarColumn-BtP1cQcf-82f974689484e0cd197b.js → BarColumn-Bb305iCi-1d14dd1f021f8d8d5f6a.js} +1 -1
  5. data/tools/admin/{BlockWidget-BKMse4hP-164a326ca46bea8d5f68.js → BlockWidget-Do3W6tZh-30b366b735726d3e884d.js} +2 -2
  6. data/tools/admin/{ButtonWidget-BLNVL46w-30bec2fb7ca85627479b.js → ButtonWidget-DukCQt0F-c8a88a1d238108f85fc0.js} +2 -2
  7. data/tools/admin/CanvasWidget-BRdVWln5-68610c4a029476073178.js +1 -0
  8. data/tools/admin/CanvasdotWidget-DV8PeDWz-da21bd87f779b9139269.js +1 -0
  9. data/tools/admin/{CanvasimageWidget-B_JxCI_f-3aba8a9c0ffbf85e4ba8.js → CanvasimageWidget-Czbq1GuF-5f841f468351c7d6bdbf.js} +1 -1
  10. data/tools/admin/{CanvasimagevalueWidget-DwHIZzWo-e0dfe009cee365df1777.js → CanvasimagevalueWidget-DKt5JgEt-c79bbec74e5403f7b6ec.js} +1 -1
  11. data/tools/admin/CanvaslabelWidget-DW2I1ra1-bf0c322f7c308654cfc2.js +1 -0
  12. data/tools/admin/CanvaslabelvalueWidget-BhzvZVfD-ba39d0f36fbf3db6cd9c.js +1 -0
  13. data/tools/admin/CanvaslineWidget-DsjY37tp-97707caf9ea6147f085e.js +1 -0
  14. data/tools/admin/{CanvaslinevalueWidget-DOrasE2j-c868199c9a3a2f7a6773.js → CanvaslinevalueWidget-ihI97G8T-a7ccb7b7ca2d2628fdd5.js} +1 -1
  15. data/tools/admin/{CheckbuttonWidget-A07FryqU-0634ed338432ebf5d77c.js → CheckbuttonWidget-B778Z-Zo-9dbaeff7a2a74130539a.js} +1 -1
  16. data/tools/admin/ComboboxWidget-CuuvOL9K-838f18b5b010cb3d71ae.js +1 -0
  17. data/tools/admin/{DateWidget-DrYZJta_-d8e297f2ffd787082b4f.js → DateWidget-COvQTAeo-fdab60f30b292f493736.js} +1 -1
  18. data/tools/admin/{DetailsDialog-CFCaJZWz-0c96f055ca678fb4b14b.js → DetailsDialog-DE7lK17G-434a9ce6dcc8e6636a47.js} +1 -1
  19. data/tools/admin/{DynamicWidget-BuSbQVhf-6fa02157bd57bdfe5a20.js → DynamicWidget-BuSbQVhf-f880988884028652fefc.js} +1 -1
  20. data/tools/admin/{FilechecksumWidget-CTf0XGST-6ed4722d9224c4df6268.js → FilechecksumWidget-DRnOt_UE-b118998ed499ab04e025.js} +1 -1
  21. data/tools/admin/{FiledisplayWidget-DLJuesmU-b1518c36285da46a9b11.js → FiledisplayWidget-26R46EjS-312ad25b3132af381df5.js} +1 -1
  22. data/tools/admin/{FormatvalueWidget-DODmUWPH-1382c1a42d71c017c1d2.js → FormatvalueWidget-BxyscMJc-9965b0bd2806cfbe79cb.js} +1 -1
  23. data/tools/admin/Graph-BKw7xw1a-947d95e03148698e323f.js +1 -0
  24. data/tools/admin/{GraphWidget-Rc-fnHCt-c6e6fd9f630161952121.js → GraphWidget-Cs9mvqUu-f9a29adafa014c1e26e4.js} +1 -1
  25. data/tools/admin/{HorizontalWidget-CZqN6UYp-4a0ef7500fe5f1b800ee.js → HorizontalWidget-fWLFj7Kg-46768f166783e7c59c1c.js} +1 -1
  26. data/tools/admin/{HorizontalboxWidget-BV7cyhwN-8d7f0d302b4441d96a28.js → HorizontalboxWidget-DEaXhKEz-b0ba376ca37ee17a7d70.js} +1 -1
  27. data/tools/admin/HorizontallineWidget-Bvu1QP3S-2ef01995448de3e2d6b7.js +1 -0
  28. data/tools/admin/{IframeWidget-BdOS5sm_-1d18e5795b367cb1d5d1.js → IframeWidget-B143k4lo-47d90846ad305990fd45.js} +1 -1
  29. data/tools/admin/{ImageLoader-CnlQ4xLd-eb76057b8cc6b4338f5c.js → ImageLoader-BCpmQHIl-90267960b7246cba4d23.js} +1 -1
  30. data/tools/admin/{ImageviewerWidget-DoJBe5eZ-eed183a8926d96ba8c90.js → ImageviewerWidget-CLrvr6dw-6adafd871908af16336a.js} +1 -1
  31. data/tools/admin/InterfacesTab-zhl06TGR-269bf95691e1ca1133d0.js +1 -0
  32. data/tools/admin/{LabelWidget-DYwcB_S4-38e094d08a4b3b72c53d.js → LabelWidget-CA1bTX2B-cf65a81edc2678cf21d0.js} +1 -1
  33. data/tools/admin/{LabelledWidget-D4N2gPxJ-ce836b128a960d3d8b14.js → LabelledWidget-BDhvr03J-d661081e5e66658337e8.js} +1 -1
  34. data/tools/admin/{LabelprogressbarWidget-CRnteLAo-b725b573eb33e7bb4393.js → LabelprogressbarWidget-g7A5CE8S-3e6d2543cbb4356e663b.js} +1 -1
  35. data/tools/admin/LabelsparklineWidget-B27xXxWg-46ed8faac17cc5e23e2c.js +1 -0
  36. data/tools/admin/LabelvalueWidget-DFn8o6LC-83776b27319b83d8f0db.js +1 -0
  37. data/tools/admin/{LabelvaluedescWidget-D5aDNr1o-d05b1c9bc4f065fc00f8.js → LabelvaluedescWidget-BQpaxFaB-577f3f571587fc3e28a8.js} +1 -1
  38. data/tools/admin/LabelvaluelimitsbarWidget-C-z96q8z-05aedeebb4882527347a.js +1 -0
  39. data/tools/admin/LabelvaluelimitscolumnWidget-D2TMEv9O-8f2ba12f3d8541a80f4f.js +1 -0
  40. data/tools/admin/LabelvaluerangebarWidget-D99dZCjz-f2a7ecfb05831ee9ece6.js +1 -0
  41. data/tools/admin/{Layout-BBLYT0gE-48666c2ab3e940bc8337.js → Layout--_zNJWnw-a75e57affb59e71889ad.js} +1 -1
  42. data/tools/admin/{LedWidget-CL2dOxb7-ab1b39b52db247c57a22.js → LedWidget-D2uxHxe3-b432e645d6f5ac424a50.js} +1 -1
  43. data/tools/admin/{LimitsBar-59_qNqi8-96460dbb2763eddb0f7a.js → LimitsBar-DN1s8-MS-5fcc0dd234e18f768e31.js} +1 -1
  44. data/tools/admin/{LimitsbarWidget-C0N2611W-be09215203ef71c51ca8.js → LimitsbarWidget-Cqhh7LKU-68bbd725e553a8fbb473.js} +1 -1
  45. data/tools/admin/{LimitscolorWidget-GfNCPo3i-055d04908d1764ec7f4c.js → LimitscolorWidget-haGB4RbY-2bbe52d1c80aded0cc12.js} +1 -1
  46. data/tools/admin/{LimitscolumnWidget-ut6NX68S-83764251827e9d6da919.js → LimitscolumnWidget-B1GdmlR_-ea359135deab006453c1.js} +1 -1
  47. data/tools/admin/LinegraphWidget-COSOQ0uM-d51c56629154333d44e4.js +1 -0
  48. data/tools/admin/{MatrixbycolumnsWidget-Cni63alW-5b6abb266b8468a11951.js → MatrixbycolumnsWidget-coHlLETG-860f23fb48426b9fd387.js} +1 -1
  49. data/tools/admin/{MicroservicesTab-gCXt9Jlh-ae566dd9addb4d797386.js → MicroservicesTab-eR0hpoO1-90e70bfd68ca8cece876.js} +2 -2
  50. data/tools/admin/{OpenC3TimePicker-WVlNQdKk-82dafbfd86f21e02b597.js → OpenC3TimePicker-B8Vu9GBz-c1433e91ea28dd0e883e.js} +1 -1
  51. data/tools/admin/{OutputDialog-wOewjnk2-c514efc45c452c84f902.js → OutputDialog-B0DR879Y-1fe936426c84cb442ac4.js} +1 -1
  52. data/tools/admin/PackagesTab-aA0fmiQh-fb563fc6f35c8b0be850.js +1 -0
  53. data/tools/admin/{PluginsTab-CLQ0EbDl-5047f5c4aeb9e86537a5.js → PluginsTab-C-ItW862-32d7ee9164d04691765d.js} +2 -2
  54. data/tools/admin/{ProgressbarWidget-BWqCsk87-e2c5a2d279a805d3efd2.js → ProgressbarWidget-D_yFssIZ-d10aa4e57145b3259669.js} +1 -1
  55. data/tools/admin/{RadiobuttonWidget-Dza2r34f-c6fbd6f9a688c787717a.js → RadiobuttonWidget-DL0jVTcb-3c465bd94a1d1501b9aa.js} +1 -1
  56. data/tools/admin/{RadiogroupWidget-DWmZMNmr-0e525d07fbef318dfdc3.js → RadiogroupWidget-2-td69IA-a20b41e0ee16fca8216f.js} +1 -1
  57. data/tools/admin/{RangebarWidget-DsGCC1x7-3f74f8f0831b6b40a42d.js → RangebarWidget-i2mlnxys-4eec6df5412c7c011047.js} +1 -1
  58. data/tools/admin/RedisTab-WR7ODfau-47151697811af67bb310.js +1 -0
  59. data/tools/admin/{RollupWidget-DGElKXm3-907a5e3ee1b40da8ff9b.js → RollupWidget-BEJ2Icg1-e244836ce5d601a70583.js} +1 -1
  60. data/tools/admin/{RoutersTab-Dpq_F5it-6e53c3f7b80a8a4394c0.js → RoutersTab-DUvEd6IA-b95f4c2224cc6903fd12.js} +1 -1
  61. data/tools/admin/{ScrollwindowWidget-BvKT59rV-8b79650ff16295ee4a65.js → ScrollwindowWidget-BU1cRpL8-db955ba3d4a28aa695c0.js} +1 -1
  62. data/tools/admin/{SecretsTab-DAZeb63H-99fe50bcd5dfb4c1b37b.js → SecretsTab-CkjjSxCg-e1665e5ecea3aed8dad6.js} +1 -1
  63. data/tools/admin/SettingsTab-CJp0hFpx-bae27f27a99072352713.js +6 -0
  64. data/tools/admin/{SignalWidget-DRAFunW0-e30484c76f7b3ba91fe1.js → SignalWidget-hiTkeem9-803814029a9fe6a17581.js} +1 -1
  65. data/tools/admin/{SimpleTextDialog-B7XASoZh-b3385c2f5d921dc0cd8e.js → SimpleTextDialog-tGqcHHCx-aac1d333cbb9a93606d6.js} +1 -1
  66. data/tools/admin/{SpacerWidget-CUGpXBpA-879386da94febbdd5df4.js → SpacerWidget-CBmzzS_X-207fd991cbf6a40fe4b0.js} +1 -1
  67. data/tools/admin/{SparklineWidget-SBWjRrqq-1ad442e32af7d1bb78fe.js → SparklineWidget-CizRh6QR-125aeb303d4965c33db7.js} +1 -1
  68. data/tools/admin/{TabbookWidget-7l6fPoRA-1c5b5399c2d730902eef.js → TabbookWidget-CvL3Ozmx-392ae93cab5b7cbb9764.js} +1 -1
  69. data/tools/admin/{TargetsTab-DcHwCcSU-89e9ff5556005b9dc355.js → TargetsTab-KTV_gfLE-3a9c157196f584e54664.js} +1 -1
  70. data/tools/admin/{TextboxWidget-Qb0TNt4Y-5238a3bf1aa8a0007cc7.js → TextboxWidget-BtEwXzDO-e4893abb472b9a687d25.js} +1 -1
  71. data/tools/admin/TextfieldWidget-BDbb57HP-51b0d1e6a5aa914e5ac8.js +1 -0
  72. data/tools/admin/TimeWidget-DzD8U8l8-2591897a5196cb54b68d.js +1 -0
  73. data/tools/admin/TitleWidget-CL53vf14-6e11a61576950ccd39fd.js +1 -0
  74. data/tools/admin/{ToolsTab-MCjy5Bf6-0637f1a3a75fdf06961e.js → ToolsTab-yFxYcJ-o-7c21c60dd470d658fe4d.js} +1 -1
  75. data/tools/admin/TsdbTab-B0BR-V6A-ab626c8be8b9836c1c78.js +4 -0
  76. data/tools/admin/{VWidget-BgNciXK1-6f5fa1e1cbd09779ddb3.js → VWidget-5qOYva88-4db083a6475508bbf7ce.js} +1 -1
  77. data/tools/admin/{ValueWidget-B1OvCmXK-eb266467c9a31a007e30.js → ValueWidget-CAkuc_w_-6037c5f1b4e7c0e9c790.js} +1 -1
  78. data/tools/admin/ValuelimitsbarWidget-Y8sO05E1-c51344904eca186c081f.js +1 -0
  79. data/tools/admin/ValuelimitscolumnWidget-iOjB_fCj-c8c67d58522b7f505b4f.js +1 -0
  80. data/tools/admin/{ValuerangebarWidget-DjL4ze3d-81cc1402830d1310230c.js → ValuerangebarWidget-DsCoeAm6-a486168810aca7f0e206.js} +1 -1
  81. data/tools/admin/VerticalWidget-C6O0dhRU-7511fd89efa71860286e.js +1 -0
  82. data/tools/admin/{VerticalboxWidget-OigMLjH8-417cdb72cb30aa8bfbff.js → VerticalboxWidget-B-CoqRJG-29951e73bb5144b9ca2c.js} +1 -1
  83. data/tools/admin/{Widget-BiaunQ83-f5d5cb8cc1b25880c13e.js → Widget-CtYQauzA-ae8839a2e4146c799aec.js} +1 -1
  84. data/tools/admin/main-040488697a5f3eed5115.js +1502 -0
  85. data/tools/admin/main.js +1 -1
  86. data/tools/admin/{settings-08OS6cx2-962b0af96c2434c7b414.js → settings-BrhbKDEv-791c3f57ac7979ee13b6.js} +1 -1
  87. metadata +85 -85
  88. data/tools/admin/ArrayWidget-CmKZQfWB-c2dd94f2c6f8abe8b7ee.js +0 -2
  89. data/tools/admin/CanvasWidget-1jy1JskS-d04e89c5942d4e27d8a9.js +0 -1
  90. data/tools/admin/CanvasdotWidget-DxuFGoWt-05d4284fd1e1ba0469bf.js +0 -1
  91. data/tools/admin/CanvaslabelWidget-Tt4dmAOI-079e7a005cce5d64dda3.js +0 -1
  92. data/tools/admin/CanvaslabelvalueWidget-D1-kZsi--2b8271b0530cf7fa746a.js +0 -1
  93. data/tools/admin/CanvaslineWidget-Din8LMyF-15b79b120e48dc68eb02.js +0 -1
  94. data/tools/admin/ComboboxWidget-xayce-aY-8dd8816f5d7dad721df4.js +0 -1
  95. data/tools/admin/Graph-Cwghj5Pc-0525f379d6f1496a3999.js +0 -1
  96. data/tools/admin/HorizontallineWidget-ChDLR_8D-708d272ff70ce91dbd57.js +0 -1
  97. data/tools/admin/InterfacesTab-CITUnMac-0085a7a386d1f92a98db.js +0 -1
  98. data/tools/admin/LabelsparklineWidget-Bbjjio1S-def15333338347ba53b1.js +0 -1
  99. data/tools/admin/LabelvalueWidget-Bc6HtTMO-b8a4464c57b19a98d4b3.js +0 -1
  100. data/tools/admin/LabelvaluelimitsbarWidget-CMnJoNKz-ca94e01d6d1794ed3ebe.js +0 -1
  101. data/tools/admin/LabelvaluelimitscolumnWidget-R5ofG4q1-56a2a76adac3f95c82e2.js +0 -1
  102. data/tools/admin/LabelvaluerangebarWidget-Qa3R2_4p-241f8c6ffc9a55e60551.js +0 -1
  103. data/tools/admin/LinegraphWidget-DaCyvdnI-d6f10e223bb947f1a3b1.js +0 -1
  104. data/tools/admin/PackagesTab-DmsuQSmU-294a5184dcaa0a941c15.js +0 -1
  105. data/tools/admin/RedisTab-9hUKvLT7-309940c3d130392a1f70.js +0 -1
  106. data/tools/admin/SettingsTab-CHcHYnay-28b2eddedc8430da6c99.js +0 -5
  107. data/tools/admin/TextfieldWidget-DcSGRfnF-4230617ca7538e7f4447.js +0 -1
  108. data/tools/admin/TimeWidget-aoMkDgRR-545325e26528dd70b1dc.js +0 -1
  109. data/tools/admin/TitleWidget-C8b9Vp5r-c553e464f08b0cdc3dea.js +0 -1
  110. data/tools/admin/TsdbTab-4OaejSum-06231378c66fdfdefcc3.js +0 -4
  111. data/tools/admin/ValuelimitsbarWidget-CUd9P_Xg-64f29a5b94c0d8b25711.js +0 -1
  112. data/tools/admin/ValuelimitscolumnWidget-CbThSMma-594c17c8ddaa58712e1b.js +0 -1
  113. data/tools/admin/VerticalWidget-V5-vGq7l-e930aaa06160609a20b9.js +0 -1
  114. data/tools/admin/main-05290d67af0d2bba595e.js +0 -1501
@@ -1 +1 @@
1
- System.register(["./main-05290d67af0d2bba595e.js","vue"],(function(M,j){"use strict";var g,i,f,a,w,b,l,r,u,_,y;return{setters:[n=>{g=n.d,i=n.m,f=n.c},n=>{a=n.resolveComponent,w=n.openBlock,b=n.createBlock,l=n.withCtx,r=n.createVNode,u=n.createElementVNode,_=n.toDisplayString,y=n.createTextVNode}],execute:(function(){const n={methods:{buildLanguageMode(t,e){let o=i.require("ace/lib/oop"),h=Object.getOwnPropertyNames(f.prototype).filter(d=>d!=="constructor").filter(d=>d!=="exec").concat(["check","check_raw","check_formatted","check_exception","check_tolerance","check_expression","wait","wait_tolerance","wait_expression","wait_check","wait_check_tolerance","wait_check_expression","wait_packet","wait_check_packet","disable_instrumentation","set_line_delay","get_line_delay","set_max_output","get_max_output"]),p=new RegExp(`(\\b${h.join("\\b|\\b")}\\b)`),s=function(){t.call(this);for(let d in this.$rules)this.$rules[d].unshift({regex:p,token:"support.function"})};o.inherits(s,t);let c=i.require("ace/mode/matching_brace_outdent").MatchingBraceOutdent,m=i.require("ace/mode/behaviour/cstyle").CstyleBehaviour;return[o,function(){this.HighlightRules=s,this.$outdent=new c,this.$behaviour=new m,this.foldingRules=new e,this.indentKeywords=this.foldingRules.indentKeywords}]},buildRubyMode(){const[t,e]=this.buildLanguageMode(i.require("ace/mode/ruby_highlight_rules").RubyHighlightRules,i.require("ace/mode/folding/ruby").FoldMode);let o=i.require("ace/mode/ruby").Mode;return t.inherits(e,o),(function(){this.$id="ace/mode/openc3"}).call(e.prototype),e},buildPythonMode(){const[t,e]=this.buildLanguageMode(i.require("ace/mode/python_highlight_rules").PythonHighlightRules,i.require("ace/mode/folding/pythonic").FoldMode);let o=i.require("ace/mode/python").Mode;return t.inherits(e,o),(function(){this.$id="ace/mode/openc3"}).call(e.prototype),e},buildJsonMode(){const[t,e]=this.buildLanguageMode(i.require("ace/mode/json_highlight_rules").JsonHighlightRules,i.require("ace/mode/folding/ruby").FoldMode);let o=i.require("ace/mode/json").Mode;return t.inherits(e,o),(function(){this.$id="ace/mode/openc3"}).call(e.prototype),e},buildMarkdownMode(){const[t,e]=this.buildLanguageMode(i.require("ace/mode/markdown_highlight_rules").MarkdownHighlightRules,i.require("ace/mode/folding/markdown").FoldMode);let o=i.require("ace/mode/markdown").Mode;return t.inherits(e,o),(function(){this.$id="ace/mode/openc3"}).call(e.prototype),e}}},x={mixins:[n],props:{content:{type:String,required:!0},type:{type:String,default:null},name:{type:String,default:null},modelValue:Boolean,filename:{type:String,default:null}},emits:["update:modelValue"],data(){return{editor:null,mode:null}},computed:{show:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},title:function(){return`${this.type}: ${this.name}`}},mounted(){this.editor=ace.edit(this.$refs.editor),this.editor.setTheme("ace/theme/twilight");let t=null;switch(this.filename?this.filename.split(".").pop():"txt"){case"json":const e=this.buildJsonMode();t=new e,this.editor.setOptions({useWorker:!1});break;case"py":case"pyi":const o=this.buildPythonMode();t=new o;break;case"md":const h=this.buildMarkdownMode();t=new h;break;default:const p=this.buildRubyMode();t=new p;break}this.editor.session.setMode(t),this.editor.session.setUseWrapMode(!0),this.editor.$blockScrolling=1/0,this.editor.setHighlightActiveLine(!1),this.editor.setValue(this.content),this.editor.clearSelection(),this.editor.focus(),this.editor.setReadOnly(!0)},beforeUnmount(){this.editor&&this.editor.destroy()},methods:{close:function(){this.show=!this.show},download:function(){const t=new Blob([this.editor.getValue()],{type:"text/plain"});let e=`${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`;this.filename&&(e=this.filename);const o=document.createElement("a");o.href=URL.createObjectURL(t),o.setAttribute("download",e),o.click()}}},v=["textContent"],q={class:"mx-2"},$={ref:"editor",class:"editor"};function V(t,e,o,h,p,s){const c=a("v-spacer"),m=a("v-btn"),d=a("v-toolbar"),R=a("v-card-text"),C=a("v-card-actions"),S=a("v-card"),L=a("v-dialog");return w(),b(L,{modelValue:s.show,"onUpdate:modelValue":e[1]||(e[1]=k=>s.show=k),width:"85vw"},{default:l(()=>[r(S,null,{default:l(()=>[r(d,{height:"24"},{default:l(()=>[r(c),u("span",{textContent:_(s.title)},null,8,v),r(c),u("div",q,[r(m,{icon:"mdi-download",variant:"text",density:"compact","data-test":"downloadIcon",onClick:s.download},null,8,["onClick"])])]),_:1}),r(R,null,{default:l(()=>[u("pre",$,null,512)]),_:1}),r(C,{class:"pr-6 pb-4 pt-0"},{default:l(()=>[r(c),r(m,{variant:"flat",onClick:e[0]||(e[0]=k=>s.show=!s.show)},{default:l(()=>[...e[2]||(e[2]=[y(" Ok ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])}const B=M("S",g(x,[["render",V],["__scopeId","data-v-a87eb5ef"]]))})}}));
1
+ System.register(["./main-040488697a5f3eed5115.js","vue"],(function(M,j){"use strict";var g,i,f,a,w,b,l,r,u,_,y;return{setters:[n=>{g=n.k,i=n.m,f=n.F},n=>{a=n.resolveComponent,w=n.openBlock,b=n.createBlock,l=n.withCtx,r=n.createVNode,u=n.createElementVNode,_=n.toDisplayString,y=n.createTextVNode}],execute:(function(){const n={methods:{buildLanguageMode(t,e){let o=i.require("ace/lib/oop"),h=Object.getOwnPropertyNames(f.prototype).filter(d=>d!=="constructor").filter(d=>d!=="exec").concat(["check","check_raw","check_formatted","check_exception","check_tolerance","check_expression","wait","wait_tolerance","wait_expression","wait_check","wait_check_tolerance","wait_check_expression","wait_packet","wait_check_packet","disable_instrumentation","set_line_delay","get_line_delay","set_max_output","get_max_output"]),p=new RegExp(`(\\b${h.join("\\b|\\b")}\\b)`),s=function(){t.call(this);for(let d in this.$rules)this.$rules[d].unshift({regex:p,token:"support.function"})};o.inherits(s,t);let c=i.require("ace/mode/matching_brace_outdent").MatchingBraceOutdent,m=i.require("ace/mode/behaviour/cstyle").CstyleBehaviour;return[o,function(){this.HighlightRules=s,this.$outdent=new c,this.$behaviour=new m,this.foldingRules=new e,this.indentKeywords=this.foldingRules.indentKeywords}]},buildRubyMode(){const[t,e]=this.buildLanguageMode(i.require("ace/mode/ruby_highlight_rules").RubyHighlightRules,i.require("ace/mode/folding/ruby").FoldMode);let o=i.require("ace/mode/ruby").Mode;return t.inherits(e,o),(function(){this.$id="ace/mode/openc3"}).call(e.prototype),e},buildPythonMode(){const[t,e]=this.buildLanguageMode(i.require("ace/mode/python_highlight_rules").PythonHighlightRules,i.require("ace/mode/folding/pythonic").FoldMode);let o=i.require("ace/mode/python").Mode;return t.inherits(e,o),(function(){this.$id="ace/mode/openc3"}).call(e.prototype),e},buildJsonMode(){const[t,e]=this.buildLanguageMode(i.require("ace/mode/json_highlight_rules").JsonHighlightRules,i.require("ace/mode/folding/ruby").FoldMode);let o=i.require("ace/mode/json").Mode;return t.inherits(e,o),(function(){this.$id="ace/mode/openc3"}).call(e.prototype),e},buildMarkdownMode(){const[t,e]=this.buildLanguageMode(i.require("ace/mode/markdown_highlight_rules").MarkdownHighlightRules,i.require("ace/mode/folding/markdown").FoldMode);let o=i.require("ace/mode/markdown").Mode;return t.inherits(e,o),(function(){this.$id="ace/mode/openc3"}).call(e.prototype),e}}},x={mixins:[n],props:{content:{type:String,required:!0},type:{type:String,default:null},name:{type:String,default:null},modelValue:Boolean,filename:{type:String,default:null}},emits:["update:modelValue"],data(){return{editor:null,mode:null}},computed:{show:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},title:function(){return`${this.type}: ${this.name}`}},mounted(){this.editor=ace.edit(this.$refs.editor),this.editor.setTheme("ace/theme/twilight");let t=null;switch(this.filename?this.filename.split(".").pop():"txt"){case"json":const e=this.buildJsonMode();t=new e,this.editor.setOptions({useWorker:!1});break;case"py":case"pyi":const o=this.buildPythonMode();t=new o;break;case"md":const h=this.buildMarkdownMode();t=new h;break;default:const p=this.buildRubyMode();t=new p;break}this.editor.session.setMode(t),this.editor.session.setUseWrapMode(!0),this.editor.$blockScrolling=1/0,this.editor.setHighlightActiveLine(!1),this.editor.setValue(this.content),this.editor.clearSelection(),this.editor.focus(),this.editor.setReadOnly(!0)},beforeUnmount(){this.editor&&this.editor.destroy()},methods:{close:function(){this.show=!this.show},download:function(){const t=new Blob([this.editor.getValue()],{type:"text/plain"});let e=`${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`;this.filename&&(e=this.filename);const o=document.createElement("a");o.href=URL.createObjectURL(t),o.setAttribute("download",e),o.click()}}},v=["textContent"],q={class:"mx-2"},$={ref:"editor",class:"editor"};function V(t,e,o,h,p,s){const c=a("v-spacer"),m=a("v-btn"),d=a("v-toolbar"),R=a("v-card-text"),C=a("v-card-actions"),S=a("v-card"),L=a("v-dialog");return w(),b(L,{modelValue:s.show,"onUpdate:modelValue":e[1]||(e[1]=k=>s.show=k),width:"85vw"},{default:l(()=>[r(S,null,{default:l(()=>[r(d,{height:"24"},{default:l(()=>[r(c),u("span",{textContent:_(s.title)},null,8,v),r(c),u("div",q,[r(m,{icon:"mdi-download",variant:"text",density:"compact","data-test":"downloadIcon",onClick:s.download},null,8,["onClick"])])]),_:1}),r(R,null,{default:l(()=>[u("pre",$,null,512)]),_:1}),r(C,{class:"pr-6 pb-4 pt-0"},{default:l(()=>[r(c),r(m,{variant:"flat",onClick:e[0]||(e[0]=k=>s.show=!s.show)},{default:l(()=>[...e[2]||(e[2]=[y(" Ok ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])}const B=M("S",g(x,[["render",V],["__scopeId","data-v-a87eb5ef"]]))})}}));
@@ -0,0 +1 @@
1
+ System.register(["./main-040488697a5f3eed5115.js","vue","single-spa","./SimpleTextDialog-tGqcHHCx-aac1d333cbb9a93606d6.js","vue-router","pinia","vuetify"],(function(U,q){"use strict";var w,D,b,f,O,i,r,u,e,t,d,h,V,y,v,$,m,S,T,F,N;return{setters:[a=>{w=a.k,D=a.R,b=a.C,f=a.D,O=a.F},a=>{i=a.resolveComponent,r=a.openBlock,u=a.createElementBlock,e=a.createVNode,t=a.withCtx,d=a.createTextVNode,h=a.createElementVNode,V=a.createBlock,y=a.Fragment,v=a.renderList,$=a.createSlots,m=a.toDisplayString,S=a.normalizeClass,T=a.mergeProps,F=a.createCommentVNode},null,a=>{N=a.E},null,null,null],execute:(function(){const a={components:{DownloadDialog:b,SimpleTextDialog:N},mixins:[D],data(){return{showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",files:[],loadingPackage:!1,progress:0,gems:[],python:[],processes:{},timeZone:"local"}},created(){new O().get_setting("time_zone").then(n=>{n&&(this.timeZone=n)}).catch(()=>{})},mounted(){this.update(),this.updateProcesses()},methods:{showOutput:function(n){this.processOutput=n.output,this.showProcessOutput=!0},update(){f.get("/openc3-api/packages").then(n=>{this.gems=n.data.ruby,this.python=n.data.python})},updateProcesses:function(){f.get("/openc3-api/process_status/package_?substr=true").then(n=>{this.processes=n.data,Object.keys(this.processes).length>0&&setTimeout(()=>{this.updateProcesses(),this.update()},2500)})},selectFile(){this.progress=0,this.$refs.fileInput.click()},fileChange(n){const s=n.target.files;if(s.length>0){this.loadingPackage=!0;let E=this;const B=[...s].map(o=>{const c=new FormData;return c.append("package",o,o.name),f.post("/openc3-api/packages",{data:c,headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(g){let p=Math.round(g.loaded*100/g.total);E.progress=p}})});Promise.all(B).then(o=>{this.$notify.normal({body:`Uploaded ${o.length} package${o.length>1?"s":""}`}),this.loadingPackage=!1,this.files=[],setTimeout(()=>{this.updateProcesses()},2500)}).catch(o=>{this.loadingPackage=!1})}},deletePackage(n){this.$dialog.confirm(`Are you sure you want to remove: ${n}`,{okText:"Delete",cancelText:"Cancel"}).then(s=>f.delete(`/openc3-api/packages/${n}`)).then(s=>{this.$notify.normal({body:`Removed package ${n}`}),setTimeout(()=>{this.updateProcesses()},2500)}).catch(s=>{this.$notify.serious({body:`Failed to remove package ${n}`})})}}},j=["textContent"],G=["textContent"];function I(n,s,E,B,o,c){const g=i("v-btn"),p=i("v-col"),z=i("rux-progress"),C=i("v-row"),_=i("v-list-item-title"),A=i("v-list-item-subtitle"),Z=i("v-tooltip"),x=i("v-list-item"),P=i("v-divider"),R=i("v-list"),H=i("download-dialog"),M=i("simple-text-dialog");return r(),u("div",null,[e(C,{"no-gutters":"",align:"center",class:"px-2"},{default:t(()=>[e(p,{class:"pa-2 mt-2"},{default:t(()=>[e(g,{onClick:c.selectFile},{default:t(()=>[...s[3]||(s[3]=[d("Install Package",-1)])]),_:1},8,["onClick"]),h("input",{ref:"fileInput",style:{display:"none"},type:"file",onChange:s[0]||(s[0]=(...l)=>c.fileChange&&c.fileChange(...l))},null,544)]),_:1}),e(p,{class:"ml-4 mr-2",cols:"4"},{default:t(()=>[e(z,{value:o.progress},null,8,["value"])]),_:1})]),_:1}),Object.keys(o.processes).length>0?(r(),V(R,{key:0,class:"list","data-test":"process-list"},{default:t(()=>[e(C,{"no-gutters":"",class:"px-4"},{default:t(()=>[e(p,{class:"text-h6"},{default:t(()=>[...s[4]||(s[4]=[d("Process List",-1)])]),_:1}),e(p,{align:"right"},{default:t(()=>[...s[5]||(s[5]=[h("div",null,"Showing last 10 min of activity",-1)])]),_:1})]),_:1}),(r(!0),u(y,null,v(o.processes,l=>(r(),u("div",{key:l.name},[e(x,null,$({default:t(()=>[e(_,null,{default:t(()=>[h("span",{class:S(l.state.toLowerCase()),textContent:m(`Processing ${l.process_type}: ${l.detail} - ${l.state}`)},null,10,j)]),_:2},1024),e(A,null,{default:t(()=>[h("span",{textContent:m(" Updated At: "+n.formatNanoseconds(l.updated_at,o.timeZone))},null,8,G)]),_:2},1024)]),_:2},[l.state!=="Running"?{name:"append",fn:t(()=>[e(Z,{"open-delay":600,location:"top"},{activator:t(({props:k})=>[e(g,T({ref_for:!0},k,{icon:"mdi-eye",variant:"text","aria-label":"Show Output",onClick:L=>c.showOutput(l)}),null,16,["onClick"])]),default:t(()=>[s[6]||(s[6]=h("span",null,"Show Output",-1))]),_:2},1024)]),key:"0"}:void 0]),1024),e(P)]))),128))]),_:1})):F("",!0),e(R,{class:"list","data-test":"packageList"},{default:t(()=>[e(C,{class:"px-4"},{default:t(()=>[e(p,{class:"text-h6"},{default:t(()=>[...s[7]||(s[7]=[d("Ruby Gems",-1)])]),_:1})]),_:1}),(r(!0),u(y,null,v(o.gems,(l,k)=>(r(),u("div",{key:k},[e(x,null,{append:t(()=>[e(g,{icon:"mdi-delete",variant:"text","aria-label":"Delete Ruby Gem",onClick:L=>c.deletePackage(l)},null,8,["onClick"])]),default:t(()=>[e(_,null,{default:t(()=>[d(m(l),1)]),_:2},1024)]),_:2},1024),e(P)]))),128)),e(C,{class:"px-4"},{default:t(()=>[e(p,{class:"text-h6"},{default:t(()=>[...s[8]||(s[8]=[d("Python Packages",-1)])]),_:1})]),_:1}),(r(!0),u(y,null,v(o.python,(l,k)=>(r(),u("div",{key:k},[e(x,null,{append:t(()=>[e(g,{icon:"mdi-delete",variant:"text","aria-label":"Delete Python Package",onClick:L=>c.deletePackage(l)},null,8,["onClick"])]),default:t(()=>[e(_,null,{default:t(()=>[d(m(l),1)]),_:2},1024)]),_:2},1024),e(P)]))),128))]),_:1}),e(H,{modelValue:o.showDownloadDialog,"onUpdate:modelValue":s[1]||(s[1]=l=>o.showDownloadDialog=l)},null,8,["modelValue"]),e(M,{modelValue:o.showProcessOutput,"onUpdate:modelValue":s[2]||(s[2]=l=>o.showProcessOutput=l),title:"Process Output",text:o.processOutput},null,8,["modelValue","text"])])}const J=U("default",w(a,[["render",I],["__scopeId","data-v-e5f831d9"]]))})}}));
@@ -1,5 +1,5 @@
1
- System.register(["./main-05290d67af0d2bba595e.js","vue","single-spa","./SimpleTextDialog-B7XASoZh-b3385c2f5d921dc0cd8e.js","./settings-08OS6cx2-962b0af96c2434c7b414.js","vue-router","pinia","vuetify"],(function(te,et){"use strict";var $,W,Y,Z,P,j,G,n,r,y,i,o,f,u,h,A,E,v,z,M,k,K,L,N,J,X;return{setters:[p=>{$=p.d,W=p.R,Y=p.S,Z=p.C,P=p.a,j=p.c,G=p.o},p=>{n=p.resolveComponent,r=p.openBlock,y=p.createElementBlock,i=p.createVNode,o=p.withCtx,f=p.createTextVNode,u=p.createElementVNode,h=p.createBlock,A=p.Fragment,E=p.renderList,v=p.toDisplayString,z=p.normalizeClass,M=p.mergeProps,k=p.createCommentVNode,K=p.normalizeProps,L=p.guardReactiveProps,N=p.withModifiers},null,p=>{J=p.E},p=>{X=p.n},null,null,null],execute:(function(){const p="store_url",Q="https://store.openc3.com",B={props:{id:Number,name:String,title:String,author:String,author_extra:Object,description:String,keywords:Array,img_path:String,image_url:String,licenses:Array,homepage:String,repository:String,gem_url:String,minimum_cosmos_version:String,checksum:String,versions:Array,current_version_id:Number,access:String,entitled:Boolean,installAllowed:{type:Boolean,default:!0}},data:function(){return{_api:new j,_storeUrl:"",imageContents:null}},computed:{plugin:function(){return{id:this.id,name:this.name,title:this.title,author:this.author,author_extra:this.author_extra,description:this.description,keywords:this.keywords,img_path:this.img_path,image_url:this.image_url,licenses:this.licenses,homepage:this.homepage,repository:this.repository,gem_url:this.gem_url,minimum_cosmos_version:this.minimum_cosmos_version,checksum:this.checksum,versions:this.versions,current_version_id:this.current_version_id,access:this.access,entitled:this.entitled,installAllowed:this.installAllowed}},canInstall:function(){return this.entitled&&this.installAllowed},installTooltip:function(){return this.installAllowed?this.accessTooltip:"Only admin users can install plugins."},imageContentsWithMimeType:function(){if(this.imageContents){const e={"image/bmp":[66,77],"image/jpeg":[255,216,255],"image/png":[137,80,78,71],"image/gif":[71,73,70,56],"image/webp":[82,73,70,70]},t=new TextEncoder().encode(globalThis.atob(this.imageContents.slice(0,6))).slice(1),a=Object.entries(e).find(([g,s])=>s.every((l,c)=>l===t[c]));if(a){const[g]=a;return`data:${g};base64,${this.imageContents}`}}},_navigableStoreUrl:function(){return this._storeUrl.replace("host.docker.internal","localhost")},storeLink:function(){return this.hasStoreListing&&this._navigableStoreUrl?new URL(`/cosmos_plugins/${this.id}`,this._navigableStoreUrl):null},hasStoreListing:function(){return!!this.id},hasDetails:function(){return this.hasStoreListing?!0:!!this.title&&!!this.description},isPluginInstalled:function(){return!!this.name},accessTooltip:function(){return this.entitled?"":localStorage.getItem("pluginStore.isApiKeySet")!=="true"?"Please add your App Store API key using the settings cog icon.":this.access==="enterprise"?"A COSMOS Enterprise license is required for this plugin.":"Please contact sales@openc3.com for access to this plugin."}},created:async function(){try{this._storeUrl=await this._api.get_setting(p)||Q}catch{this._storeUrl=Q}if(this.img_path)try{const e=new URLSearchParams({volume:"OPENC3_GEMS_VOLUME",scope:globalThis.openc3Scope}),{data:t}=await P.get(`/openc3-api/storage/download_file/${encodeURIComponent(this.img_path)}?${e}`);this.imageContents=t.contents}catch{}}},ie={mixins:[B],props:{modelValue:Boolean},emits:["triggerInstall","triggerUninstall","update:modelValue"],data(){return{showDialog:!1,showCopiedTooltip:!1,installedCosmosVersion:null,selectedVersionId:null}},computed:{isDialogOpen:{get:function(){return this.modelValue||this.showDialog},set:function(e){this.showDialog=e,this.$emit("update:modelValue",e)}},hasVersions:function(){return this.versions&&this.versions.length>0},selectedVersion:function(){if(!this.hasVersions)return null;const e=this.selectedVersionId||this.current_version_id;return this.versions.find(t=>t.id===e)||this.versions[0]},versionOptions:function(){return this.hasVersions?this.versions.map(e=>({title:e.version_number,value:e.id})):[]},versionTitle:function(){return this.selectedVersion?.title||this.title},versionDescription:function(){return this.selectedVersion?.description||this.description},versionKeywords:function(){return this.selectedVersion?.keywords||this.keywords},versionLicenses:function(){return this.selectedVersion?.licenses||this.licenses},versionHomepage:function(){return this.selectedVersion?.homepage||this.homepage},versionRepository:function(){return this.selectedVersion?.repository||this.repository},versionGemUrl:function(){return this.selectedVersion?.gem_url||this.gem_url},versionMinimumCosmosVersion:function(){return this.selectedVersion?.minimum_cosmos_version||this.minimum_cosmos_version},versionChecksum:function(){return this.selectedVersion?.checksum||this.checksum},versionImageUrl:function(){return this.selectedVersion?.image_url||this.image_url},formattedStoreLink:function(){return this._navigableStoreUrl.split("://").at(-1)},versionsAreCompatible:function(){return!this.installedCosmosVersion||!this.versionMinimumCosmosVersion?null:G.gte(this.installedCosmosVersion,this.versionMinimumCosmosVersion)}},created:function(){P.get("/openc3-api/info").then(({data:e})=>{this.installedCosmosVersion=e.version})},mounted:function(){this.selectedVersionId=this.current_version_id},methods:{openDialog:function(){this.isDialogOpen=!0},closeDialog:function(){this.isDialogOpen=!1},install:function(){this.$emit("triggerInstall",{id:this.id,version_id:this.selectedVersionId||this.current_version_id})},uninstall:function(){this.$emit("triggerUninstall",{id:this.id,version_id:this.selectedVersionId||this.current_version_id})},copyChecksum:function(){navigator.clipboard.writeText(this.versionChecksum),this.showCopiedTooltip=!0,setTimeout(()=>{this.showCopiedTooltip=!1},1e3)}}},se=["textContent"],le={key:0,class:"ml-1 font-italic"},ne={class:"plugin-image-backdrop"},oe=["textContent"],ae={class:"mt-3 text-caption font-italic"},re={key:1,class:"font-italic"},ue={class:"mt-3 text-caption font-italic"},ce={class:"mt-3"},de={key:0},pe={key:1};function he(e,t,a,g,s,l){const c=n("v-spacer"),m=n("v-btn"),d=n("v-tooltip"),D=n("v-toolbar"),b=n("v-icon"),V=n("v-select"),C=n("v-card-subtitle"),S=n("v-img"),T=n("v-chip"),I=n("v-text-field"),O=n("v-card-text"),w=n("v-card-actions"),U=n("v-card"),H=n("v-dialog");return r(),h(H,{modelValue:l.isDialogOpen,"onUpdate:modelValue":t[3]||(t[3]=x=>l.isDialogOpen=x),"max-width":"500"},{default:o(()=>[i(U,null,{default:o(()=>[i(D,{height:"24"},{default:o(()=>[i(c),u("span",{textContent:v(l.versionTitle)},null,8,se),i(c),i(d,{location:"top"},{activator:o(({props:x})=>[u("div",K(L(x)),[i(m,{href:e.storeLink,target:"_blank",icon:"mdi-open-in-new",size:"small",variant:"plain"},null,8,["href"])],16)]),default:o(()=>[u("span",null," View at "+v(l.formattedStoreLink),1)]),_:1}),i(m,{icon:"mdi-close-box",variant:"text",density:"compact",onClick:l.closeDialog},null,8,["onClick"])]),_:1}),i(C,{class:"d-flex align-center justify-space-between subtitle-with-version"},{default:o(()=>[u("div",null,[t[4]||(t[4]=f(" By ",-1)),u("strong",null,v(e.author),1),e.author_extra?.badge_text?(r(),y("span",le,v(e.author_extra.badge_text),1)):k("",!0),e.author_extra?.badge_icon?(r(),h(b,{key:1,icon:e.author_extra.badge_icon,size:18,class:"ml-1"},null,8,["icon"])):k("",!0)]),l.hasVersions?(r(),h(V,{key:0,modelValue:s.selectedVersionId,"onUpdate:modelValue":t[0]||(t[0]=x=>s.selectedVersionId=x),items:l.versionOptions,"item-title":"title","item-value":"value",label:"Version",density:"compact",variant:"outlined","hide-details":"",class:"mt-1 version-select"},null,8,["modelValue","items"])):k("",!0)]),_:1}),i(O,null,{default:o(()=>[u("div",ne,[e.imageContentsWithMimeType?(r(),h(S,{key:0,src:e.imageContentsWithMimeType},null,8,["src"])):l.versionImageUrl?(r(),h(S,{key:1,src:l.versionImageUrl},null,8,["src"])):k("",!0)]),u("div",{class:"mt-3",textContent:v(l.versionDescription)},null,8,oe),u("div",ae,[t[5]||(t[5]=f(" Keywords: ",-1)),l.versionKeywords?(r(!0),y(A,{key:0},E(l.versionKeywords,x=>(r(),h(T,{key:x,variant:"flat",color:"primary",size:"x-small",class:"ml-1"},{default:o(()=>[f(v(x),1)]),_:2},1024))),128)):(r(),y("span",re," none "))]),u("div",ue,[t[6]||(t[6]=f(" Licenses: ",-1)),(r(!0),y(A,null,E(l.versionLicenses,x=>(r(),h(T,{key:x,size:"x-small",class:"ml-1"},{default:o(()=>[f(v(x),1)]),_:2},1024))),128))]),u("div",ce,[t[7]||(t[7]=u("span",{class:"text-caption font-italic"}," Minimum COSMOS version: ",-1)),f(" "+v(l.versionMinimumCosmosVersion)+" ",1),l.versionsAreCompatible!==null?(r(),h(d,{key:0,"open-delay":600,location:"top"},{activator:o(({props:x})=>[u("span",K(L(x)),[i(b,{icon:l.versionsAreCompatible?"mdi-check-circle":"mdi-alert",size:"small"},null,8,["icon"])],16)]),default:o(()=>[l.versionsAreCompatible?(r(),y("span",de," Your version of COSMOS meets the requirements. ")):(r(),y("span",pe," Your version of COSMOS is out of date. You can still install this plugin, but it might not work correctly. "))]),_:1})):k("",!0)]),i(I,{modelValue:l.versionChecksum,"onUpdate:modelValue":t[2]||(t[2]=x=>l.versionChecksum=x),class:"mt-3",label:"SHA256",variant:"solo",density:"compact","hide-details":"",readonly:""},{append:o(()=>[i(d,{modelValue:s.showCopiedTooltip,"onUpdate:modelValue":t[1]||(t[1]=x=>s.showCopiedTooltip=x),location:"top","open-on-hover":!1},{activator:o(({props:x})=>[i(m,M(x,{icon:"mdi-content-copy",variant:"text",density:"compact",onClick:l.copyChecksum}),null,16,["onClick"])]),default:o(()=>[t[8]||(t[8]=u("span",null,"Copied!",-1))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1}),i(w,{class:"justify-start px-6"},{default:o(()=>[e.isPluginInstalled?(r(),h(m,{key:0,text:"Uninstall","append-icon":"mdi-puzzle-remove",variant:"outlined",color:"red",onClick:l.uninstall},null,8,["onClick"])):(r(),h(d,{key:1,"open-delay":600,location:"top"},{activator:o(({props:x})=>[u("span",K(L(e.canInstall?null:x)),[i(m,{text:"Install","append-icon":"mdi-puzzle-plus",variant:"elevated",disabled:!e.canInstall,onClick:l.install},null,8,["disabled","onClick"])],16)]),default:o(()=>[u("span",null,v(e.installTooltip),1)]),_:1})),l.versionRepository?(r(),h(m,{key:2,text:"Repository","append-icon":"mdi-open-in-new",variant:"outlined",href:l.versionRepository,target:"_blank"},null,8,["href"])):k("",!0),l.versionHomepage?(r(),h(m,{key:3,text:"Homepage","append-icon":"mdi-open-in-new",variant:"outlined",href:l.versionHomepage,target:"_blank"},null,8,["href"])):k("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue"])}const ee=$(ie,[["render",he],["__scopeId","data-v-ac4e664f"]]),ge={components:{PluginDetailsDialog:ee},mixins:[B],emits:["triggerInstall"],data(){return{showDialog:!1}},methods:{openDialog:function(){this.showDialog=!0},install:function(e){this.$emit("triggerInstall",{id:this.id,version_id:e?.version_id||this.current_version_id})}}},me={key:0,class:"ml-1 font-italic"},fe={class:"plugin-image-backdrop"},ve=["textContent"];function _e(e,t,a,g,s,l){const c=n("v-card-title"),m=n("v-icon"),d=n("v-card-subtitle"),D=n("v-img"),b=n("v-card-text"),V=n("v-spacer"),C=n("v-btn"),S=n("v-tooltip"),T=n("v-card-actions"),I=n("v-card"),O=n("plugin-details-dialog");return r(),y(A,null,[i(I,{height:"350",class:"d-flex flex-column",onClick:l.openDialog},{default:o(()=>[i(c,{class:"d-flex align-center justify-content-space-between"},{default:o(()=>[f(v(e.title),1)]),_:1}),i(d,{class:"d-flex align-center justify-content-space-between"},{default:o(()=>[u("div",null,[t[1]||(t[1]=f(" By ",-1)),u("strong",null,v(e.author),1),e.author_extra?.badge_text?(r(),y("span",me,v(e.author_extra.badge_text),1)):k("",!0),e.author_extra?.badge_icon?(r(),h(m,{key:1,icon:e.author_extra.badge_icon,size:18,class:"ml-1"},null,8,["icon"])):k("",!0)])]),_:1}),i(b,null,{default:o(()=>[u("div",fe,[e.image_url?(r(),h(D,{key:0,src:e.image_url,"max-height":"160"},null,8,["src"])):k("",!0)]),u("div",{class:z({"truncate-description":!0,"truncate-2":!!e.image_url,"truncate-10":!e.image_url}),textContent:v(e.description)},null,10,ve)]),_:1}),i(V),i(T,{class:"flex-wrap"},{default:o(()=>[i(S,{"open-delay":600,location:"top"},{activator:o(({props:w})=>[u("span",K(L(e.canInstall?null:w)),[i(C,{text:"Install","append-icon":"mdi-puzzle-plus",variant:"elevated",disabled:!e.canInstall,onClick:N(l.install,["stop"])},null,8,["disabled","onClick"])],16)]),default:o(()=>[u("span",null,v(e.installTooltip),1)]),_:1})]),_:1})]),_:1},8,["onClick"]),s.showDialog?(r(),h(O,M({key:0,modelValue:s.showDialog,"onUpdate:modelValue":t[0]||(t[0]=w=>s.showDialog=w)},e.plugin,{onTriggerInstall:l.install}),null,16,["modelValue","onTriggerInstall"])):k("",!0)],64)}const ye=$(ge,[["render",_e],["__scopeId","data-v-825f4373"]]),q="store_url",F="store_api_key",R="DEFAULT",we="https://store.openc3.com",xe={mixins:[X],props:{modelValue:Boolean},emits:["update:modelValue","update:storeUrl"],data(){return{showDialog:!1,storeUrl:"",apiKey:null,isEnterprise:!1,showApiKeyAlert:!1,suppressApiKeyAlert:!1,rules:{required:e=>!!e||"Required",url:e=>{try{new URL(e)}catch{return"Not a valid URL"}return!0}}}},computed:{accountSettingsUrl:function(){const e=this.storeUrl.replace("host.docker.internal","localhost");return new URL("account",e)}},watch:{apiKey:function(e){this.checkEnterpriseKey(),localStorage.setItem("pluginStore.isApiKeySet",!!e)},isEnterprise:function(e){this.checkEnterpriseKey()},suppressApiKeyAlert:function(e){localStorage.setItem("pluginStore.suppressApiKeyAlert",e)},modelValue:function(e){e&&(this.showDialog=e)},showDialog:function(e){e||this.$emit("update:modelValue",e)}},created:function(){P.get("/openc3-api/info").then(({data:e})=>{this.isEnterprise=e.enterprise}),this.loadSetting(q,{scope:R}),this.loadSetting(F,{scope:R}),this.$emit("update:storeUrl",this.storeUrl)},methods:{checkEnterpriseKey:function(){this.isEnterprise&&this.apiKey===""&&this.openApiKeyAlert()},openApiKeyAlert:function(){localStorage.getItem("pluginStore.suppressApiKeyAlert")!=="true"&&(this.showApiKeyAlert=!0)},closeApiKeyAlert:function(){this.showApiKeyAlert=!1},save:function(){this.saveSetting(q,this.storeUrl,{scope:R}),this.saveSetting(F,this.apiKey,{scope:R}),this.$emit("update:storeUrl",this.storeUrl),this.showDialog=!1},parseSetting:function(e,{setting:t}){switch(t){case q:this.storeUrl=e||we;break;case F:this.apiKey=e||"";break}}}},Ce=["href"];function ke(e,t,a,g,s,l){const c=n("v-spacer"),m=n("v-toolbar"),d=n("v-alert"),D=n("v-text-field"),b=n("v-card-text"),V=n("v-btn"),C=n("v-card-actions"),S=n("v-card"),T=n("v-dialog"),I=n("v-icon"),O=n("v-checkbox");return r(),y(A,null,[i(T,{modelValue:s.showDialog,"onUpdate:modelValue":t[4]||(t[4]=w=>s.showDialog=w),width:"600"},{default:o(()=>[i(m,{height:"24"},{default:o(()=>[i(c),t[7]||(t[7]=u("span",null,"Plugin Store Settings",-1)),i(c)]),_:1}),i(S,{class:"pa-3"},{default:o(()=>[i(d,{modelValue:e.errorLoading,"onUpdate:modelValue":t[0]||(t[0]=w=>e.errorLoading=w),type:"error",closable:"",density:"compact"},{default:o(()=>[f(" Error loading previous configuration due to "+v(e.errorText),1)]),_:1},8,["modelValue"]),i(d,{modelValue:e.errorSaving,"onUpdate:modelValue":t[1]||(t[1]=w=>e.errorSaving=w),type:"error",closable:"",density:"compact"},{default:o(()=>[f(" Error saving due to "+v(e.errorText),1)]),_:1},8,["modelValue"]),i(b,null,{default:o(()=>[i(D,{modelValue:s.storeUrl,"onUpdate:modelValue":t[2]||(t[2]=w=>s.storeUrl=w),label:"Store URL",rules:[s.rules.required,s.rules.url]},null,8,["modelValue","rules"]),i(D,{modelValue:s.apiKey,"onUpdate:modelValue":t[3]||(t[3]=w=>s.apiKey=w),type:"password",label:"API Key"},null,8,["modelValue"])]),_:1}),i(C,null,{default:o(()=>[i(V,{color:"success",variant:"text",text:"Save","data-test":"save-store-settings-btn",onClick:l.save},null,8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),i(T,{modelValue:s.showApiKeyAlert,"onUpdate:modelValue":t[6]||(t[6]=w=>s.showApiKeyAlert=w)},{default:o(()=>[i(S,{class:"pa-3"},{default:o(()=>[i(b,{class:"pb-0"},{default:o(()=>[t[9]||(t[9]=f(" You're using COSMOS Enterprise, but you haven't set an OpenC3 Store API key yet. You must set this to access Enterprise plugins. ",-1)),t[10]||(t[10]=u("br",null,null,-1)),t[11]||(t[11]=u("br",null,null,-1)),t[12]||(t[12]=f(" Visit the ",-1)),u("a",{href:l.accountSettingsUrl,target:"_blank"},[t[8]||(t[8]=f(" OpenC3 Store account settings",-1)),i(I,{icon:"mdi-open-in-new",size:"x-small"})],8,Ce),t[13]||(t[13]=f(" to generate an API key. Then, return here and open the Plugin Store settings with the ",-1)),i(I,{icon:"mdi-cog",size:"small"}),t[14]||(t[14]=f(" icon and paste your API key into the API key field. ",-1))]),_:1}),i(C,null,{default:o(()=>[i(O,{modelValue:s.suppressApiKeyAlert,"onUpdate:modelValue":t[5]||(t[5]=w=>s.suppressApiKeyAlert=w),class:"px-3",label:"Don't show this message again","hide-details":""},null,8,["modelValue"]),i(V,{variant:"elevated",text:"OK",onClick:l.closeApiKeyAlert},null,8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}const Pe=$(xe,[["render",ke]]),be="https://store.openc3.com",Ve={components:{PluginCard:ye,PluginStoreSettingsDialog:Pe},emits:["close","triggerInstall"],data(){return{api:new j,search:"",showSettingsDialog:!1,plugins:[],storeError:null,storeUrl:be,isEnterprise:!1,isAdmin:!0,loading:!1}},computed:{filteredPlugins:function(){let e=this.plugins;return this.search.length&&(e=e.filter(t=>t.title.toLowerCase().includes(this.search.toLowerCase()))),e},formattedStoreUrl:function(){return this.storeUrl.split("://").at(-1)},installAllowed:function(){return!this.isEnterprise||this.isAdmin}},mounted:function(){this.fetchPluginStoreData(),this.fetchUserContext()},methods:{fetchPluginStoreData:function(){this.loading=!0,P.get("/openc3-api/pluginstore").then(({data:e})=>{if(e.error){const{title:t,body:a}=e;this.storeError={title:t,body:a},this.plugins=[]}else this.storeError=null,this.plugins=e}).finally(()=>{this.loading=!1})},fetchUserContext:function(){P.get("/openc3-api/info").then(({data:t})=>{this.isEnterprise=!!t.enterprise});const e=OpenC3Auth.userroles()||[];this.isAdmin=e.includes("admin")},close:function(){this.$emit("close")},install:function(e){this.$emit("triggerInstall",e),this.close()},openSettings:function(){this.showSettingsDialog=!0},updatePluginStore:function(e){this.storeUrl=e,this.loading=!0,this.api.update_plugin_store().then(t=>{this.fetchPluginStoreData()})}}},Se={class:"d-flex justify-content-space-between"},De={class:"d-inline-flex align-center w-100"},Te={key:1,class:"d-flex justify-center align-center py-12","data-test":"plugin-store-loading"};function Ue(e,t,a,g,s,l){const c=n("v-spacer"),m=n("v-btn"),d=n("v-tooltip"),D=n("v-text-field"),b=n("v-alert"),V=n("v-progress-circular"),C=n("plugin-card"),S=n("v-col"),T=n("v-row"),I=n("v-container"),O=n("v-sheet"),w=n("plugin-store-settings-dialog");return r(),y(A,null,[i(O,{class:"pb-11 pt-8 px-8",height:"100%"},{default:o(()=>[u("div",Se,[t[2]||(t[2]=u("div",null,[u("div",{class:"text-h3 mb-3"},"OpenC3 Plugin Store"),u("div",{class:"text-subtitle-1"}," Browse plugins made by OpenC3 and the COSMOS community ")],-1)),i(c),i(m,{icon:"mdi-cog",variant:"text",onClick:l.openSettings},null,8,["onClick"]),i(d,{location:"top"},{activator:o(({props:U})=>[u("div",K(L(U)),[i(m,{href:s.storeUrl,target:"_blank",icon:"mdi-open-in-new",variant:"text",class:"mx-2"},null,8,["href"])],16)]),default:o(()=>[u("span",null," Open "+v(l.formattedStoreUrl),1)]),_:1}),i(m,{icon:"mdi-close",variant:"text",onClick:l.close},null,8,["onClick"])]),u("div",De,[i(D,{modelValue:s.search,"onUpdate:modelValue":t[0]||(t[0]=U=>s.search=U),label:"Search","prepend-inner-icon":"mdi-magnify",clearable:"",variant:"outlined",density:"compact","single-line":"","hide-details":"","data-test":"search-plugin-store"},null,8,["modelValue"])]),i(c),t[4]||(t[4]=u("span",{class:""}," Click on a plugin to see more information about it ",-1)),s.storeError?(r(),h(b,{key:0,class:"mt-6",color:"error",title:s.storeError.title,text:s.storeError.body},null,8,["title","text"])):s.loading?(r(),y("div",Te,[i(V,{indeterminate:"",color:"primary",size:"48"}),t[3]||(t[3]=u("span",{class:"ml-4 text-subtitle-1"},"Loading plugins...",-1))])):(r(),h(I,{key:2},{default:o(()=>[i(T,null,{default:o(()=>[(r(!0),y(A,null,E(l.filteredPlugins,U=>(r(),h(S,{key:U.id,cols:"4"},{default:o(()=>[i(C,M({ref_for:!0},U,{"install-allowed":l.installAllowed,onTriggerInstall:l.install}),null,16,["install-allowed","onTriggerInstall"])]),_:2},1024))),128))]),_:1})]),_:1}))]),_:1}),i(w,{modelValue:s.showSettingsDialog,"onUpdate:modelValue":t[1]||(t[1]=U=>s.showSettingsDialog=U),"onUpdate:storeUrl":l.updatePluginStore},null,8,["modelValue","onUpdate:storeUrl"])],64)}const Ae=$(Ve,[["render",Ue]]),Ie={components:{PluginDetailsDialog:ee},mixins:[B],props:{targets:{type:Array,default:()=>[]},isModified:Boolean,microservices:{type:Object,default:()=>({})}},emits:["edit","delete","upgrade"],data(){return{showCard:!1}},computed:{displayTitle:function(){return this.title?this.title:this.name.replace(/^openc3-cosmos-/,"").replace(/-?\d+\.\d+\.\d+(?:\.pre\.beta\d+\.\d+)?\.gem(?:__\d+)?$/,"")},getMicroservicesForPlugin:function(){const e=[];for(const[t,a]of Object.entries(this.microservices))a.plugin===this.name&&e.push(t);return e},microserviceCount:function(){return this.getMicroservicesForPlugin.length}},methods:{openDetails:function(){this.hasDetails&&(this.showCard=!0)},downloadPlugin:function(){P.post(`/openc3-api/packages/${this.name}/download`).then(e=>{const t=window.atob(e.data.contents),a=new Uint8Array(t.length);for(let l=0;l<t.length;++l)a[l]=t.charCodeAt(l);const g=new Blob([a],{type:"application/zip"}),s=document.createElement("a");s.href=URL.createObjectURL(g),s.setAttribute("download",e.data.filename),s.click()})},downloadTarget:function(e){P.post(`/openc3-api/targets/${e}/download`).then(t=>{const a=window.atob(t.data.contents),g=new Uint8Array(a.length);for(let c=0;c<a.length;++c)g[c]=a.charCodeAt(c);const s=new Blob([g],{type:"application/zip"}),l=document.createElement("a");l.href=URL.createObjectURL(s),l.setAttribute("download",t.data.filename),l.click()})},edit:function(){this.$emit("edit")},upgrade:function(){this.$emit("upgrade")},viewMicroservices:function(){const e=this.getMicroservicesForPlugin.join(",");this.$router.push({path:"/tools/admin/microservices",query:{services:e}})},deletePrompt:function(){this.showCard=!1,this.$emit("delete")}}},Oe=["textContent"],$e={class:"text-subtitle-2 v-list-item-subtitle pl-0"},Me={key:0},Ee=["onClick","textContent"],Ke=["textContent"];function Le(e,t,a,g,s,l){const c=n("v-img"),m=n("v-icon"),d=n("v-list-item"),D=n("v-list"),b=n("v-menu"),V=n("plugin-details-dialog");return r(),y(A,null,[u("tr",{class:z({"cursor-pointer":e.hasDetails}),"data-test":"plugin-list-item"},[u("td",null,[e.imageContentsWithMimeType?(r(),h(c,{key:0,src:e.imageContentsWithMimeType,"max-height":"56","min-width":"56"},null,8,["src"])):k("",!0)]),u("td",null,[u("div",{class:"text-h6",onClick:t[0]||(t[0]=(...C)=>l.openDetails&&l.openDetails(...C)),textContent:v(l.displayTitle)},null,8,Oe),u("div",$e,[a.isModified?(r(),y(A,{key:0},[f(" * ")],64)):k("",!0),f(" "+v(e.name),1)]),a.targets?.length?(r(),y("div",Me,[(r(!0),y(A,null,E(a.targets,(C,S)=>(r(),y("span",{key:S,class:"mr-2"},[C.modified?(r(),y("a",{key:0,style:{cursor:"pointer"},onClick:N(T=>l.downloadTarget(C.name),["prevent"]),textContent:v(C.name)},null,8,Ee)):(r(),y("span",{key:1,textContent:v(C.name)},null,8,Ke))]))),128))])):k("",!0)]),u("td",null,[i(b,null,{activator:o(({props:C})=>[i(m,M(C,{icon:"mdi-dots-horizontal","data-test":"plugin-actions"}),null,16)]),default:o(()=>[i(D,null,{default:o(()=>[i(d,{title:"Download","prepend-icon":"mdi-download","data-test":"download-plugin",onClick:l.downloadPlugin},null,8,["onClick"]),i(d,{title:"Edit Details","prepend-icon":"mdi-pencil","data-test":"edit-plugin",onClick:l.edit},null,8,["onClick"]),i(d,{title:"Upgrade","prepend-icon":"mdi-update","data-test":"upgrade-plugin",onClick:l.upgrade},null,8,["onClick"]),i(d,{title:`View Microservices (${l.microserviceCount})`,"prepend-icon":"mdi-tab","data-test":"view-microservices",onClick:l.viewMicroservices},null,8,["title","onClick"]),i(d,{title:"Delete","prepend-icon":"mdi-delete","data-test":"delete-plugin",onClick:l.deletePrompt},null,8,["onClick"])]),_:1})]),_:1})])],2),s.showCard?(r(),h(V,M({key:0,modelValue:s.showCard,"onUpdate:modelValue":t[1]||(t[1]=C=>s.showCard=C)},e.plugin,{onTriggerUninstall:l.deletePrompt}),null,16,["modelValue","onTriggerUninstall"])):k("",!0)],64)}const je=$(Ie,[["render",Le]]),ze={components:{PluginListItem:je},props:{plugins:{type:Array,required:!0},targets:{type:Object,required:!0},showDefaultTools:{type:Boolean,default:!1},defaultPlugins:{type:Array,required:!0}},emits:["edit","delete","upgrade"],data(){return{showPluginDetails:!1,detailPlugin:null,microservices:{}}},computed:{shownPlugins(){const e=[],t=[];return this.plugins.forEach(a=>{const g=a.name.split("__")[0].split("-").slice(0,-1).join("-");this.defaultPlugins.includes(g)?t.push(a):e.push(a)}),e.sort((a,g)=>a.name<g.name?-1:a.name>g.name?1:0),this.showDefaultTools?(t.sort((a,g)=>a.name<g.name?-1:a.name>g.name?1:0),e.concat(t)):e}},mounted(){this.fetchMicroservices()},methods:{showDetails:function(e){this.detailPlugin=e,this.showPluginDetails=!0},pluginTargets:function(e){let t=[];for(const a in this.targets)this.targets[a].plugin===e&&t.push(this.targets[a]);return t},isModified:function(e){return Object.entries(this.targets).some(([t,a])=>a.plugin===e&&a.modified===!0)},editPlugin:function(e){this.$emit("edit",e)},upgradePlugin(e){this.$emit("upgrade",e)},deletePrompt:function(e){this.$emit("delete",e)},fetchMicroservices:function(){P.get("/openc3-api/microservices/all").then(e=>{this.microservices=e.data})}}};function Re(e,t,a,g,s,l){const c=n("plugin-list-item"),m=n("v-data-table");return r(),h(m,{headers:[],items:l.shownPlugins,density:"compact",class:"list","data-test":"plugin-list"},{item:o(({item:d})=>[(r(),h(c,M({key:d.name},d,{targets:l.pluginTargets(d.name),"is-modified":l.isModified(d.name),microservices:s.microservices,onEdit:()=>l.editPlugin(d.name),onUpgrade:()=>l.upgradePlugin(d.name),onDelete:()=>l.deletePrompt(d.name)}),null,16,["targets","is-modified","microservices","onEdit","onUpgrade","onDelete"]))]),_:1},8,["items"])}const Ne=$(ze,[["render",Re],["__scopeId","data-v-16a76865"]]),Be={components:{PluginDialog:Z,PluginList:Ne,PluginStore:Ae,ModifiedPluginDialog:Y,SimpleTextDialog:J},mixins:[W],data(){return{pluginName:null,variables:{},storePluginId:null,storeVersionId:null,minCosmosVersion:null,pluginTxt:"",file:null,currentPlugin:null,pluginHashTmp:null,existingPluginTxt:null,progress:0,pluginDelete:!1,api:new j,plugins:[],targets:{},processes:{},alert:"",alertType:"success",showAlert:!1,showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",showPluginStore:!1,showPluginDialog:!1,showModifiedPluginDialog:!1,showDefaultTools:!1,timeZone:"local",defaultPlugins:["openc3-cosmos-tool-admin","openc3-cosmos-tool-bucketexplorer","openc3-cosmos-tool-cmdsender","openc3-cosmos-tool-cmdqueue","openc3-cosmos-tool-cmdhistory","openc3-cosmos-tool-cmdtlmserver","openc3-cosmos-tool-dataextractor","openc3-cosmos-tool-dataviewer","openc3-cosmos-tool-docs","openc3-cosmos-tool-handbooks","openc3-cosmos-tool-iframe","openc3-cosmos-tool-limitsmonitor","openc3-cosmos-tool-packetviewer","openc3-cosmos-tool-scriptrunner","openc3-cosmos-tool-tablemanager","openc3-cosmos-tool-tlmgrapher","openc3-cosmos-tool-tlmviewer","openc3-cosmos-enterprise-tool-admin","openc3-cosmos-tool-autonomic","openc3-cosmos-tool-calendar","openc3-cosmos-tool-grafana","openc3-cosmos-tool-logexplorer","openc3-cosmos-tool-notebooks","openc3-cosmos-tool-systemhealth","openc3-enterprise-tool-base","openc3-tool-base"]}},watch:{showPluginDialog:function(e,t){e===!1&&(this.file=null,this.$refs.fileInput.value=null)}},created(){this.api.update_plugin_store(),this.api.get_setting("time_zone").then(e=>{e&&(this.timeZone=e)}).catch(()=>{})},mounted(){this.update(),this.updateProcesses();const e=this;window.onpopstate=function(){e.showPluginStore&&(e.showPluginStore=!1,history.go(1))}},methods:{resetControlState:function(){this.pluginName=null,this.variables={},this.storePluginId=null,this.storeVersionId=null,this.minCosmosVersion=null,this.pluginTxt="",this.file=null,this.currentPlugin=null,this.pluginHashTmp=null,this.existingPluginTxt=null,this.progress=0,this.pluginDelete=!1},pluginTargets:function(e){let t=[];for(const a in this.targets)this.targets[a].plugin===e&&t.push(this.targets[a]);return t},isModified:function(e){return Object.entries(this.targets).some(([t,a])=>a.plugin===e&&a.modified===!0)},showOutput:function(e){this.processOutput=e.output,this.showProcessOutput=!0},update:function(){P.get("/openc3-api/plugins/all").then(e=>{this.plugins=Object.entries(e.data).map(([t,a])=>a)}),P.get("/openc3-api/targets_modified").then(e=>{this.targets=e.data})},updateProcesses:function(){P.get("openc3-api/process_status/plugin_?substr=true").then(e=>{this.processes=e.data,Object.keys(this.processes).length>0&&setTimeout(()=>{this.updateProcesses(),this.update()},5e3)})},upload:function(e=null,t=null){const a=e?"put":"post",g=e?`/openc3-api/plugins/${e}`:"/openc3-api/plugins",s=new FormData;t===null?s.append("plugin",this.file,this.file.name):(s.append("store_plugin_id",t.id),s.append("store_version_id",t.version_id));let l=this;P[a](g,{data:s,headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(c){let m=Math.round(c.loaded*100/c.total);l.progress=m}}).then(c=>{this.progress=100,this.alert="Uploaded file",this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3),this.update();let m=null;c.data.existing_plugin_txt_lines!==void 0&&(m=c.data.existing_plugin_txt_lines.join(`
1
+ System.register(["./main-040488697a5f3eed5115.js","vue","single-spa","./SimpleTextDialog-tGqcHHCx-aac1d333cbb9a93606d6.js","./settings-BrhbKDEv-791c3f57ac7979ee13b6.js","vue-router","pinia","vuetify"],(function(te,et){"use strict";var $,W,Y,Z,P,L,G,n,r,y,i,o,f,u,h,A,E,v,z,M,C,K,j,N,J,Q;return{setters:[p=>{$=p.k,W=p.R,Y=p.e,Z=p.x,P=p.D,L=p.F,G=p.j},p=>{n=p.resolveComponent,r=p.openBlock,y=p.createElementBlock,i=p.createVNode,o=p.withCtx,f=p.createTextVNode,u=p.createElementVNode,h=p.createBlock,A=p.Fragment,E=p.renderList,v=p.toDisplayString,z=p.normalizeClass,M=p.mergeProps,C=p.createCommentVNode,K=p.normalizeProps,j=p.guardReactiveProps,N=p.withModifiers},null,p=>{J=p.E},p=>{Q=p.n},null,null,null],execute:(function(){const p="store_url",X="https://store.openc3.com",B={props:{id:Number,name:String,title:String,author:String,author_extra:Object,description:String,keywords:Array,img_path:String,image_url:String,licenses:Array,homepage:String,repository:String,gem_url:String,minimum_cosmos_version:String,checksum:String,versions:Array,current_version_id:Number,access:String,entitled:Boolean,installAllowed:{type:Boolean,default:!0}},data:function(){return{_api:new L,_storeUrl:"",imageContents:null}},computed:{plugin:function(){return{id:this.id,name:this.name,title:this.title,author:this.author,author_extra:this.author_extra,description:this.description,keywords:this.keywords,img_path:this.img_path,image_url:this.image_url,licenses:this.licenses,homepage:this.homepage,repository:this.repository,gem_url:this.gem_url,minimum_cosmos_version:this.minimum_cosmos_version,checksum:this.checksum,versions:this.versions,current_version_id:this.current_version_id,access:this.access,entitled:this.entitled,installAllowed:this.installAllowed}},canInstall:function(){return this.entitled&&this.installAllowed},installTooltip:function(){return this.installAllowed?this.accessTooltip:"Only admin users can install plugins."},imageContentsWithMimeType:function(){if(this.imageContents){const e={"image/bmp":[66,77],"image/jpeg":[255,216,255],"image/png":[137,80,78,71],"image/gif":[71,73,70,56],"image/webp":[82,73,70,70]},t=new TextEncoder().encode(globalThis.atob(this.imageContents.slice(0,6))).slice(1),a=Object.entries(e).find(([g,s])=>s.every((l,c)=>l===t[c]));if(a){const[g]=a;return`data:${g};base64,${this.imageContents}`}}},_navigableStoreUrl:function(){return this._storeUrl.replace("host.docker.internal","localhost")},storeLink:function(){return this.hasStoreListing&&this._navigableStoreUrl?new URL(`/cosmos_plugins/${this.id}`,this._navigableStoreUrl):null},hasStoreListing:function(){return!!this.id},hasDetails:function(){return this.hasStoreListing?!0:!!this.title&&!!this.description},isPluginInstalled:function(){return!!this.name},accessTooltip:function(){return this.entitled?"":localStorage.getItem("pluginStore.isApiKeySet")!=="true"?"Please add your App Store API key using the settings cog icon.":this.access==="enterprise"?"A COSMOS Enterprise license is required for this plugin.":"Please contact sales@openc3.com for access to this plugin."}},created:async function(){try{this._storeUrl=await this._api.get_setting(p)||X}catch{this._storeUrl=X}if(this.img_path)try{const e=new URLSearchParams({volume:"OPENC3_GEMS_VOLUME",scope:globalThis.openc3Scope}),{data:t}=await P.get(`/openc3-api/storage/download_file/${encodeURIComponent(this.img_path)}?${e}`);this.imageContents=t.contents}catch{}}},ie={mixins:[B],props:{modelValue:Boolean},emits:["triggerInstall","triggerUninstall","update:modelValue"],data(){return{showDialog:!1,showCopiedTooltip:!1,installedCosmosVersion:null,selectedVersionId:null}},computed:{isDialogOpen:{get:function(){return this.modelValue||this.showDialog},set:function(e){this.showDialog=e,this.$emit("update:modelValue",e)}},hasVersions:function(){return this.versions&&this.versions.length>0},selectedVersion:function(){if(!this.hasVersions)return null;const e=this.selectedVersionId||this.current_version_id;return this.versions.find(t=>t.id===e)||this.versions[0]},versionOptions:function(){return this.hasVersions?this.versions.map(e=>({title:e.version_number,value:e.id})):[]},versionTitle:function(){return this.selectedVersion?.title||this.title},versionDescription:function(){return this.selectedVersion?.description||this.description},versionKeywords:function(){return this.selectedVersion?.keywords||this.keywords},versionLicenses:function(){return this.selectedVersion?.licenses||this.licenses},versionHomepage:function(){return this.selectedVersion?.homepage||this.homepage},versionRepository:function(){return this.selectedVersion?.repository||this.repository},versionGemUrl:function(){return this.selectedVersion?.gem_url||this.gem_url},versionMinimumCosmosVersion:function(){return this.selectedVersion?.minimum_cosmos_version||this.minimum_cosmos_version},versionChecksum:function(){return this.selectedVersion?.checksum||this.checksum},versionImageUrl:function(){return this.selectedVersion?.image_url||this.image_url},formattedStoreLink:function(){return this._navigableStoreUrl.split("://").at(-1)},versionsAreCompatible:function(){return!this.installedCosmosVersion||!this.versionMinimumCosmosVersion?null:G.gte(this.installedCosmosVersion,this.versionMinimumCosmosVersion)}},created:function(){P.get("/openc3-api/info").then(({data:e})=>{this.installedCosmosVersion=e.version})},mounted:function(){this.selectedVersionId=this.current_version_id},methods:{openDialog:function(){this.isDialogOpen=!0},closeDialog:function(){this.isDialogOpen=!1},install:function(){this.$emit("triggerInstall",{id:this.id,version_id:this.selectedVersionId||this.current_version_id})},uninstall:function(){this.$emit("triggerUninstall",{id:this.id,version_id:this.selectedVersionId||this.current_version_id})},copyChecksum:function(){navigator.clipboard.writeText(this.versionChecksum),this.showCopiedTooltip=!0,setTimeout(()=>{this.showCopiedTooltip=!1},1e3)}}},se=["textContent"],le={key:0,class:"ml-1 font-italic"},ne={class:"plugin-image-backdrop"},oe=["textContent"],ae={class:"mt-3 text-caption font-italic"},re={key:1,class:"font-italic"},ue={class:"mt-3 text-caption font-italic"},ce={class:"mt-3"},de={key:0},pe={key:1};function he(e,t,a,g,s,l){const c=n("v-spacer"),m=n("v-btn"),d=n("v-tooltip"),D=n("v-toolbar"),b=n("v-icon"),V=n("v-select"),k=n("v-card-subtitle"),S=n("v-img"),T=n("v-chip"),I=n("v-text-field"),O=n("v-card-text"),w=n("v-card-actions"),U=n("v-card"),H=n("v-dialog");return r(),h(H,{modelValue:l.isDialogOpen,"onUpdate:modelValue":t[3]||(t[3]=x=>l.isDialogOpen=x),"max-width":"500"},{default:o(()=>[i(U,null,{default:o(()=>[i(D,{height:"24"},{default:o(()=>[i(c),u("span",{textContent:v(l.versionTitle)},null,8,se),i(c),i(d,{location:"top"},{activator:o(({props:x})=>[u("div",K(j(x)),[i(m,{href:e.storeLink,target:"_blank",icon:"mdi-open-in-new",size:"small",variant:"plain"},null,8,["href"])],16)]),default:o(()=>[u("span",null," View at "+v(l.formattedStoreLink),1)]),_:1}),i(m,{icon:"mdi-close-box",variant:"text",density:"compact",onClick:l.closeDialog},null,8,["onClick"])]),_:1}),i(k,{class:"d-flex align-center justify-space-between subtitle-with-version"},{default:o(()=>[u("div",null,[t[4]||(t[4]=f(" By ",-1)),u("strong",null,v(e.author),1),e.author_extra?.badge_text?(r(),y("span",le,v(e.author_extra.badge_text),1)):C("",!0),e.author_extra?.badge_icon?(r(),h(b,{key:1,icon:e.author_extra.badge_icon,size:18,class:"ml-1"},null,8,["icon"])):C("",!0)]),l.hasVersions?(r(),h(V,{key:0,modelValue:s.selectedVersionId,"onUpdate:modelValue":t[0]||(t[0]=x=>s.selectedVersionId=x),items:l.versionOptions,"item-title":"title","item-value":"value",label:"Version",density:"compact",variant:"outlined","hide-details":"",class:"mt-1 version-select"},null,8,["modelValue","items"])):C("",!0)]),_:1}),i(O,null,{default:o(()=>[u("div",ne,[e.imageContentsWithMimeType?(r(),h(S,{key:0,src:e.imageContentsWithMimeType},null,8,["src"])):l.versionImageUrl?(r(),h(S,{key:1,src:l.versionImageUrl},null,8,["src"])):C("",!0)]),u("div",{class:"mt-3",textContent:v(l.versionDescription)},null,8,oe),u("div",ae,[t[5]||(t[5]=f(" Keywords: ",-1)),l.versionKeywords?(r(!0),y(A,{key:0},E(l.versionKeywords,x=>(r(),h(T,{key:x,variant:"flat",color:"primary",size:"x-small",class:"ml-1"},{default:o(()=>[f(v(x),1)]),_:2},1024))),128)):(r(),y("span",re," none "))]),u("div",ue,[t[6]||(t[6]=f(" Licenses: ",-1)),(r(!0),y(A,null,E(l.versionLicenses,x=>(r(),h(T,{key:x,size:"x-small",class:"ml-1"},{default:o(()=>[f(v(x),1)]),_:2},1024))),128))]),u("div",ce,[t[7]||(t[7]=u("span",{class:"text-caption font-italic"}," Minimum COSMOS version: ",-1)),f(" "+v(l.versionMinimumCosmosVersion)+" ",1),l.versionsAreCompatible!==null?(r(),h(d,{key:0,"open-delay":600,location:"top"},{activator:o(({props:x})=>[u("span",K(j(x)),[i(b,{icon:l.versionsAreCompatible?"mdi-check-circle":"mdi-alert",size:"small"},null,8,["icon"])],16)]),default:o(()=>[l.versionsAreCompatible?(r(),y("span",de," Your version of COSMOS meets the requirements. ")):(r(),y("span",pe," Your version of COSMOS is out of date. You can still install this plugin, but it might not work correctly. "))]),_:1})):C("",!0)]),i(I,{modelValue:l.versionChecksum,"onUpdate:modelValue":t[2]||(t[2]=x=>l.versionChecksum=x),class:"mt-3",label:"SHA256",variant:"solo",density:"compact","hide-details":"",readonly:""},{append:o(()=>[i(d,{modelValue:s.showCopiedTooltip,"onUpdate:modelValue":t[1]||(t[1]=x=>s.showCopiedTooltip=x),location:"top","open-on-hover":!1},{activator:o(({props:x})=>[i(m,M(x,{icon:"mdi-content-copy",variant:"text",density:"compact",onClick:l.copyChecksum}),null,16,["onClick"])]),default:o(()=>[t[8]||(t[8]=u("span",null,"Copied!",-1))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1}),i(w,{class:"justify-start px-6"},{default:o(()=>[e.isPluginInstalled?(r(),h(m,{key:0,text:"Uninstall","append-icon":"mdi-puzzle-remove",variant:"outlined",color:"red",onClick:l.uninstall},null,8,["onClick"])):(r(),h(d,{key:1,"open-delay":600,location:"top"},{activator:o(({props:x})=>[u("span",K(j(e.canInstall?null:x)),[i(m,{text:"Install","append-icon":"mdi-puzzle-plus",variant:"elevated",disabled:!e.canInstall,onClick:l.install},null,8,["disabled","onClick"])],16)]),default:o(()=>[u("span",null,v(e.installTooltip),1)]),_:1})),l.versionRepository?(r(),h(m,{key:2,text:"Repository","append-icon":"mdi-open-in-new",variant:"outlined",href:l.versionRepository,target:"_blank"},null,8,["href"])):C("",!0),l.versionHomepage?(r(),h(m,{key:3,text:"Homepage","append-icon":"mdi-open-in-new",variant:"outlined",href:l.versionHomepage,target:"_blank"},null,8,["href"])):C("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue"])}const ee=$(ie,[["render",he],["__scopeId","data-v-ac4e664f"]]),ge={components:{PluginDetailsDialog:ee},mixins:[B],emits:["triggerInstall"],data(){return{showDialog:!1}},methods:{openDialog:function(){this.showDialog=!0},install:function(e){this.$emit("triggerInstall",{id:this.id,version_id:e?.version_id||this.current_version_id})}}},me={key:0,class:"ml-1 font-italic"},fe={class:"plugin-image-backdrop"},ve=["textContent"];function _e(e,t,a,g,s,l){const c=n("v-card-title"),m=n("v-icon"),d=n("v-card-subtitle"),D=n("v-img"),b=n("v-card-text"),V=n("v-spacer"),k=n("v-btn"),S=n("v-tooltip"),T=n("v-card-actions"),I=n("v-card"),O=n("plugin-details-dialog");return r(),y(A,null,[i(I,{height:"350",class:"d-flex flex-column",onClick:l.openDialog},{default:o(()=>[i(c,{class:"d-flex align-center justify-content-space-between"},{default:o(()=>[f(v(e.title),1)]),_:1}),i(d,{class:"d-flex align-center justify-content-space-between"},{default:o(()=>[u("div",null,[t[1]||(t[1]=f(" By ",-1)),u("strong",null,v(e.author),1),e.author_extra?.badge_text?(r(),y("span",me,v(e.author_extra.badge_text),1)):C("",!0),e.author_extra?.badge_icon?(r(),h(m,{key:1,icon:e.author_extra.badge_icon,size:18,class:"ml-1"},null,8,["icon"])):C("",!0)])]),_:1}),i(b,null,{default:o(()=>[u("div",fe,[e.image_url?(r(),h(D,{key:0,src:e.image_url,"max-height":"160"},null,8,["src"])):C("",!0)]),u("div",{class:z({"truncate-description":!0,"truncate-2":!!e.image_url,"truncate-10":!e.image_url}),textContent:v(e.description)},null,10,ve)]),_:1}),i(V),i(T,{class:"flex-wrap"},{default:o(()=>[i(S,{"open-delay":600,location:"top"},{activator:o(({props:w})=>[u("span",K(j(e.canInstall?null:w)),[i(k,{text:"Install","append-icon":"mdi-puzzle-plus",variant:"elevated",disabled:!e.canInstall,onClick:N(l.install,["stop"])},null,8,["disabled","onClick"])],16)]),default:o(()=>[u("span",null,v(e.installTooltip),1)]),_:1})]),_:1})]),_:1},8,["onClick"]),s.showDialog?(r(),h(O,M({key:0,modelValue:s.showDialog,"onUpdate:modelValue":t[0]||(t[0]=w=>s.showDialog=w)},e.plugin,{onTriggerInstall:l.install}),null,16,["modelValue","onTriggerInstall"])):C("",!0)],64)}const ye=$(ge,[["render",_e],["__scopeId","data-v-825f4373"]]),F="store_url",q="store_api_key",R="DEFAULT",we="https://store.openc3.com",xe={mixins:[Q],props:{modelValue:Boolean},emits:["update:modelValue","update:storeUrl"],data(){return{showDialog:!1,storeUrl:"",apiKey:null,isEnterprise:!1,showApiKeyAlert:!1,suppressApiKeyAlert:!1,rules:{required:e=>!!e||"Required",url:e=>{try{new URL(e)}catch{return"Not a valid URL"}return!0}}}},computed:{accountSettingsUrl:function(){const e=this.storeUrl.replace("host.docker.internal","localhost");return new URL("account",e)}},watch:{apiKey:function(e){this.checkEnterpriseKey(),localStorage.setItem("pluginStore.isApiKeySet",!!e)},isEnterprise:function(e){this.checkEnterpriseKey()},suppressApiKeyAlert:function(e){localStorage.setItem("pluginStore.suppressApiKeyAlert",e)},modelValue:function(e){e&&(this.showDialog=e)},showDialog:function(e){e||this.$emit("update:modelValue",e)}},created:function(){P.get("/openc3-api/info").then(({data:e})=>{this.isEnterprise=e.enterprise}),this.loadSetting(F,{scope:R}),this.loadSetting(q,{scope:R}),this.$emit("update:storeUrl",this.storeUrl)},methods:{checkEnterpriseKey:function(){this.isEnterprise&&this.apiKey===""&&this.openApiKeyAlert()},openApiKeyAlert:function(){localStorage.getItem("pluginStore.suppressApiKeyAlert")!=="true"&&(this.showApiKeyAlert=!0)},closeApiKeyAlert:function(){this.showApiKeyAlert=!1},save:function(){this.saveSetting(F,this.storeUrl,{scope:R}),this.saveSetting(q,this.apiKey,{scope:R}),this.$emit("update:storeUrl",this.storeUrl),this.showDialog=!1},parseSetting:function(e,{setting:t}){switch(t){case F:this.storeUrl=e||we;break;case q:this.apiKey=e||"";break}}}},ke=["href"];function Ce(e,t,a,g,s,l){const c=n("v-spacer"),m=n("v-toolbar"),d=n("v-alert"),D=n("v-text-field"),b=n("v-card-text"),V=n("v-btn"),k=n("v-card-actions"),S=n("v-card"),T=n("v-dialog"),I=n("v-icon"),O=n("v-checkbox");return r(),y(A,null,[i(T,{modelValue:s.showDialog,"onUpdate:modelValue":t[4]||(t[4]=w=>s.showDialog=w),width:"600"},{default:o(()=>[i(m,{height:"24"},{default:o(()=>[i(c),t[7]||(t[7]=u("span",null,"Plugin Store Settings",-1)),i(c)]),_:1}),i(S,{class:"pa-3"},{default:o(()=>[i(d,{modelValue:e.errorLoading,"onUpdate:modelValue":t[0]||(t[0]=w=>e.errorLoading=w),type:"error",closable:"",density:"compact"},{default:o(()=>[f(" Error loading previous configuration due to "+v(e.errorText),1)]),_:1},8,["modelValue"]),i(d,{modelValue:e.errorSaving,"onUpdate:modelValue":t[1]||(t[1]=w=>e.errorSaving=w),type:"error",closable:"",density:"compact"},{default:o(()=>[f(" Error saving due to "+v(e.errorText),1)]),_:1},8,["modelValue"]),i(b,null,{default:o(()=>[i(D,{modelValue:s.storeUrl,"onUpdate:modelValue":t[2]||(t[2]=w=>s.storeUrl=w),label:"Store URL",rules:[s.rules.required,s.rules.url]},null,8,["modelValue","rules"]),i(D,{modelValue:s.apiKey,"onUpdate:modelValue":t[3]||(t[3]=w=>s.apiKey=w),type:"password",label:"API Key"},null,8,["modelValue"])]),_:1}),i(k,null,{default:o(()=>[i(V,{color:"success",variant:"text",text:"Save","data-test":"save-store-settings-btn",onClick:l.save},null,8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),i(T,{modelValue:s.showApiKeyAlert,"onUpdate:modelValue":t[6]||(t[6]=w=>s.showApiKeyAlert=w)},{default:o(()=>[i(S,{class:"pa-3"},{default:o(()=>[i(b,{class:"pb-0"},{default:o(()=>[t[9]||(t[9]=f(" You're using COSMOS Enterprise, but you haven't set an OpenC3 Store API key yet. You must set this to access Enterprise plugins. ",-1)),t[10]||(t[10]=u("br",null,null,-1)),t[11]||(t[11]=u("br",null,null,-1)),t[12]||(t[12]=f(" Visit the ",-1)),u("a",{href:l.accountSettingsUrl,target:"_blank"},[t[8]||(t[8]=f(" OpenC3 Store account settings",-1)),i(I,{icon:"mdi-open-in-new",size:"x-small"})],8,ke),t[13]||(t[13]=f(" to generate an API key. Then, return here and open the Plugin Store settings with the ",-1)),i(I,{icon:"mdi-cog",size:"small"}),t[14]||(t[14]=f(" icon and paste your API key into the API key field. ",-1))]),_:1}),i(k,null,{default:o(()=>[i(O,{modelValue:s.suppressApiKeyAlert,"onUpdate:modelValue":t[5]||(t[5]=w=>s.suppressApiKeyAlert=w),class:"px-3",label:"Don't show this message again","hide-details":""},null,8,["modelValue"]),i(V,{variant:"elevated",text:"OK",onClick:l.closeApiKeyAlert},null,8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}const Pe=$(xe,[["render",Ce]]),be="https://store.openc3.com",Ve={components:{PluginCard:ye,PluginStoreSettingsDialog:Pe},emits:["close","triggerInstall"],data(){return{api:new L,search:"",showSettingsDialog:!1,plugins:[],storeError:null,storeUrl:be,isEnterprise:!1,isAdmin:!0,loading:!1}},computed:{filteredPlugins:function(){let e=this.plugins;return this.search.length&&(e=e.filter(t=>t.title.toLowerCase().includes(this.search.toLowerCase()))),e},formattedStoreUrl:function(){return this.storeUrl.split("://").at(-1)},installAllowed:function(){return!this.isEnterprise||this.isAdmin}},mounted:function(){this.fetchPluginStoreData(),this.fetchUserContext()},methods:{fetchPluginStoreData:function(){this.loading=!0,P.get("/openc3-api/pluginstore").then(({data:e})=>{if(e.error){const{title:t,body:a}=e;this.storeError={title:t,body:a},this.plugins=[]}else this.storeError=null,this.plugins=e}).finally(()=>{this.loading=!1})},fetchUserContext:function(){P.get("/openc3-api/info").then(({data:t})=>{this.isEnterprise=!!t.enterprise});const e=OpenC3Auth.userroles()||[];this.isAdmin=e.includes("admin")},close:function(){this.$emit("close")},install:function(e){this.$emit("triggerInstall",e),this.close()},openSettings:function(){this.showSettingsDialog=!0},updatePluginStore:function(e){this.storeUrl=e,this.loading=!0,this.api.update_plugin_store().then(t=>{this.fetchPluginStoreData()})}}},Se={class:"d-flex justify-content-space-between"},De={class:"d-inline-flex align-center w-100"},Te={key:1,class:"d-flex justify-center align-center py-12","data-test":"plugin-store-loading"};function Ue(e,t,a,g,s,l){const c=n("v-spacer"),m=n("v-btn"),d=n("v-tooltip"),D=n("v-text-field"),b=n("v-alert"),V=n("v-progress-circular"),k=n("plugin-card"),S=n("v-col"),T=n("v-row"),I=n("v-container"),O=n("v-sheet"),w=n("plugin-store-settings-dialog");return r(),y(A,null,[i(O,{class:"pb-11 pt-8 px-8",height:"100%"},{default:o(()=>[u("div",Se,[t[2]||(t[2]=u("div",null,[u("div",{class:"text-h3 mb-3"},"OpenC3 Plugin Store"),u("div",{class:"text-subtitle-1"}," Browse plugins made by OpenC3 and the COSMOS community ")],-1)),i(c),i(m,{icon:"mdi-cog",variant:"text",onClick:l.openSettings},null,8,["onClick"]),i(d,{location:"top"},{activator:o(({props:U})=>[u("div",K(j(U)),[i(m,{href:s.storeUrl,target:"_blank",icon:"mdi-open-in-new",variant:"text",class:"mx-2"},null,8,["href"])],16)]),default:o(()=>[u("span",null," Open "+v(l.formattedStoreUrl),1)]),_:1}),i(m,{icon:"mdi-close",variant:"text",onClick:l.close},null,8,["onClick"])]),u("div",De,[i(D,{modelValue:s.search,"onUpdate:modelValue":t[0]||(t[0]=U=>s.search=U),label:"Search","prepend-inner-icon":"mdi-magnify",clearable:"",variant:"outlined",density:"compact","single-line":"","hide-details":"","data-test":"search-plugin-store"},null,8,["modelValue"])]),i(c),t[4]||(t[4]=u("span",{class:""}," Click on a plugin to see more information about it ",-1)),s.storeError?(r(),h(b,{key:0,class:"mt-6",color:"error",title:s.storeError.title,text:s.storeError.body},null,8,["title","text"])):s.loading?(r(),y("div",Te,[i(V,{indeterminate:"",color:"primary",size:"48"}),t[3]||(t[3]=u("span",{class:"ml-4 text-subtitle-1"},"Loading plugins...",-1))])):(r(),h(I,{key:2},{default:o(()=>[i(T,null,{default:o(()=>[(r(!0),y(A,null,E(l.filteredPlugins,U=>(r(),h(S,{key:U.id,cols:"4"},{default:o(()=>[i(k,M({ref_for:!0},U,{"install-allowed":l.installAllowed,onTriggerInstall:l.install}),null,16,["install-allowed","onTriggerInstall"])]),_:2},1024))),128))]),_:1})]),_:1}))]),_:1}),i(w,{modelValue:s.showSettingsDialog,"onUpdate:modelValue":t[1]||(t[1]=U=>s.showSettingsDialog=U),"onUpdate:storeUrl":l.updatePluginStore},null,8,["modelValue","onUpdate:storeUrl"])],64)}const Ae=$(Ve,[["render",Ue]]),Ie={components:{PluginDetailsDialog:ee},mixins:[B],props:{targets:{type:Array,default:()=>[]},isModified:Boolean,microservices:{type:Object,default:()=>({})}},emits:["edit","delete","upgrade"],data(){return{showCard:!1}},computed:{displayTitle:function(){return this.title?this.title:this.name.replace(/^openc3-cosmos-/,"").replace(/-?\d+\.\d+\.\d+(?:\.pre\.beta\d+\.\d+)?\.gem(?:__\d+)?$/,"")},getMicroservicesForPlugin:function(){const e=[];for(const[t,a]of Object.entries(this.microservices))a.plugin===this.name&&e.push(t);return e},microserviceCount:function(){return this.getMicroservicesForPlugin.length}},methods:{openDetails:function(){this.hasDetails&&(this.showCard=!0)},downloadPlugin:function(){P.post(`/openc3-api/packages/${this.name}/download`).then(e=>{const t=window.atob(e.data.contents),a=new Uint8Array(t.length);for(let l=0;l<t.length;++l)a[l]=t.charCodeAt(l);const g=new Blob([a],{type:"application/zip"}),s=document.createElement("a");s.href=URL.createObjectURL(g),s.setAttribute("download",e.data.filename),s.click()})},downloadTarget:function(e){P.post(`/openc3-api/targets/${e}/download`).then(t=>{const a=window.atob(t.data.contents),g=new Uint8Array(a.length);for(let c=0;c<a.length;++c)g[c]=a.charCodeAt(c);const s=new Blob([g],{type:"application/zip"}),l=document.createElement("a");l.href=URL.createObjectURL(s),l.setAttribute("download",t.data.filename),l.click()})},edit:function(){this.$emit("edit")},upgrade:function(){this.$emit("upgrade")},viewMicroservices:function(){const e=this.getMicroservicesForPlugin.join(",");this.$router.push({path:"/tools/admin/microservices",query:{services:e}})},deletePrompt:function(){this.showCard=!1,this.$emit("delete")}}},Oe=["textContent"],$e={class:"text-subtitle-2 v-list-item-subtitle pl-0"},Me={key:0},Ee=["onClick","textContent"],Ke=["textContent"];function je(e,t,a,g,s,l){const c=n("v-img"),m=n("v-icon"),d=n("v-list-item"),D=n("v-list"),b=n("v-menu"),V=n("plugin-details-dialog");return r(),y(A,null,[u("tr",{class:z({"cursor-pointer":e.hasDetails}),"data-test":"plugin-list-item"},[u("td",null,[e.imageContentsWithMimeType?(r(),h(c,{key:0,src:e.imageContentsWithMimeType,"max-height":"56","min-width":"56"},null,8,["src"])):C("",!0)]),u("td",null,[u("div",{class:"text-h6",onClick:t[0]||(t[0]=(...k)=>l.openDetails&&l.openDetails(...k)),textContent:v(l.displayTitle)},null,8,Oe),u("div",$e,[a.isModified?(r(),y(A,{key:0},[f(" * ")],64)):C("",!0),f(" "+v(e.name),1)]),a.targets?.length?(r(),y("div",Me,[(r(!0),y(A,null,E(a.targets,(k,S)=>(r(),y("span",{key:S,class:"mr-2"},[k.modified?(r(),y("a",{key:0,style:{cursor:"pointer"},onClick:N(T=>l.downloadTarget(k.name),["prevent"]),textContent:v(k.name)},null,8,Ee)):(r(),y("span",{key:1,textContent:v(k.name)},null,8,Ke))]))),128))])):C("",!0)]),u("td",null,[i(b,null,{activator:o(({props:k})=>[i(m,M(k,{icon:"mdi-dots-horizontal","data-test":"plugin-actions"}),null,16)]),default:o(()=>[i(D,null,{default:o(()=>[i(d,{title:"Download","prepend-icon":"mdi-download","data-test":"download-plugin",onClick:l.downloadPlugin},null,8,["onClick"]),i(d,{title:"Edit Details","prepend-icon":"mdi-pencil","data-test":"edit-plugin",onClick:l.edit},null,8,["onClick"]),i(d,{title:"Upgrade","prepend-icon":"mdi-update","data-test":"upgrade-plugin",onClick:l.upgrade},null,8,["onClick"]),i(d,{title:`View Microservices (${l.microserviceCount})`,"prepend-icon":"mdi-tab","data-test":"view-microservices",onClick:l.viewMicroservices},null,8,["title","onClick"]),i(d,{title:"Delete","prepend-icon":"mdi-delete","data-test":"delete-plugin",onClick:l.deletePrompt},null,8,["onClick"])]),_:1})]),_:1})])],2),s.showCard?(r(),h(V,M({key:0,modelValue:s.showCard,"onUpdate:modelValue":t[1]||(t[1]=k=>s.showCard=k)},e.plugin,{onTriggerUninstall:l.deletePrompt}),null,16,["modelValue","onTriggerUninstall"])):C("",!0)],64)}const Le=$(Ie,[["render",je]]),ze={components:{PluginListItem:Le},props:{plugins:{type:Array,required:!0},targets:{type:Object,required:!0},showDefaultTools:{type:Boolean,default:!1},defaultPlugins:{type:Array,required:!0}},emits:["edit","delete","upgrade"],data(){return{showPluginDetails:!1,detailPlugin:null,microservices:{}}},computed:{shownPlugins(){const e=[],t=[];return this.plugins.forEach(a=>{const g=a.name.split("__")[0].split("-").slice(0,-1).join("-");this.defaultPlugins.includes(g)?t.push(a):e.push(a)}),e.sort((a,g)=>a.name<g.name?-1:a.name>g.name?1:0),this.showDefaultTools?(t.sort((a,g)=>a.name<g.name?-1:a.name>g.name?1:0),e.concat(t)):e}},mounted(){this.fetchMicroservices()},methods:{showDetails:function(e){this.detailPlugin=e,this.showPluginDetails=!0},pluginTargets:function(e){let t=[];for(const a in this.targets)this.targets[a].plugin===e&&t.push(this.targets[a]);return t},isModified:function(e){return Object.entries(this.targets).some(([t,a])=>a.plugin===e&&a.modified===!0)},editPlugin:function(e){this.$emit("edit",e)},upgradePlugin(e){this.$emit("upgrade",e)},deletePrompt:function(e){this.$emit("delete",e)},fetchMicroservices:function(){P.get("/openc3-api/microservices/all").then(e=>{this.microservices=e.data})}}};function Re(e,t,a,g,s,l){const c=n("plugin-list-item"),m=n("v-data-table");return r(),h(m,{headers:[],items:l.shownPlugins,density:"compact",class:"list","data-test":"plugin-list"},{item:o(({item:d})=>[(r(),h(c,M({key:d.name},d,{targets:l.pluginTargets(d.name),"is-modified":l.isModified(d.name),microservices:s.microservices,onEdit:()=>l.editPlugin(d.name),onUpgrade:()=>l.upgradePlugin(d.name),onDelete:()=>l.deletePrompt(d.name)}),null,16,["targets","is-modified","microservices","onEdit","onUpgrade","onDelete"]))]),_:1},8,["items"])}const Ne=$(ze,[["render",Re],["__scopeId","data-v-16a76865"]]),Be={components:{PluginDialog:Z,PluginList:Ne,PluginStore:Ae,ModifiedPluginDialog:Y,SimpleTextDialog:J},mixins:[W],data(){return{pluginName:null,variables:{},storePluginId:null,storeVersionId:null,minCosmosVersion:null,pluginTxt:"",file:null,currentPlugin:null,pluginHashTmp:null,existingPluginTxt:null,progress:0,pluginDelete:!1,api:new L,plugins:[],targets:{},processes:{},alert:"",alertType:"success",showAlert:!1,showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",showPluginStore:!1,showPluginDialog:!1,showModifiedPluginDialog:!1,showDefaultTools:!1,timeZone:"local",defaultPlugins:["openc3-cosmos-tool-admin","openc3-cosmos-tool-bucketexplorer","openc3-cosmos-tool-cmdsender","openc3-cosmos-tool-cmdqueue","openc3-cosmos-tool-cmdhistory","openc3-cosmos-tool-cmdtlmserver","openc3-cosmos-tool-dataextractor","openc3-cosmos-tool-dataviewer","openc3-cosmos-tool-docs","openc3-cosmos-tool-handbooks","openc3-cosmos-tool-iframe","openc3-cosmos-tool-limitsmonitor","openc3-cosmos-tool-packetviewer","openc3-cosmos-tool-scriptrunner","openc3-cosmos-tool-tablemanager","openc3-cosmos-tool-tlmgrapher","openc3-cosmos-tool-tlmviewer","openc3-cosmos-enterprise-tool-admin","openc3-cosmos-tool-autonomic","openc3-cosmos-tool-calendar","openc3-cosmos-tool-grafana","openc3-cosmos-tool-logexplorer","openc3-cosmos-tool-notebooks","openc3-cosmos-tool-systemhealth","openc3-enterprise-tool-base","openc3-tool-base"]}},watch:{showPluginDialog:function(e,t){e===!1&&(this.file=null,this.$refs.fileInput.value=null)}},created(){this.api.update_plugin_store(),this.api.get_setting("time_zone").then(e=>{e&&(this.timeZone=e)}).catch(()=>{})},mounted(){this.update(),this.updateProcesses();const e=this;window.onpopstate=function(){e.showPluginStore&&(e.showPluginStore=!1,history.go(1))}},methods:{resetControlState:function(){this.pluginName=null,this.variables={},this.storePluginId=null,this.storeVersionId=null,this.minCosmosVersion=null,this.pluginTxt="",this.file=null,this.currentPlugin=null,this.pluginHashTmp=null,this.existingPluginTxt=null,this.progress=0,this.pluginDelete=!1},pluginTargets:function(e){let t=[];for(const a in this.targets)this.targets[a].plugin===e&&t.push(this.targets[a]);return t},isModified:function(e){return Object.entries(this.targets).some(([t,a])=>a.plugin===e&&a.modified===!0)},showOutput:function(e){this.processOutput=e.output,this.showProcessOutput=!0},update:function(){P.get("/openc3-api/plugins/all").then(e=>{this.plugins=Object.entries(e.data).map(([t,a])=>a)}),P.get("/openc3-api/targets_modified").then(e=>{this.targets=e.data})},updateProcesses:function(){P.get("openc3-api/process_status/plugin_?substr=true").then(e=>{this.processes=e.data,Object.keys(this.processes).length>0&&setTimeout(()=>{this.updateProcesses(),this.update()},5e3)})},upload:function(e=null,t=null){const a=e?"put":"post",g=e?`/openc3-api/plugins/${e}`:"/openc3-api/plugins",s=new FormData;t===null?s.append("plugin",this.file,this.file.name):(s.append("store_plugin_id",t.id),s.append("store_version_id",t.version_id));let l=this;P[a](g,{data:s,headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(c){let m=Math.round(c.loaded*100/c.total);l.progress=m}}).then(c=>{this.progress=100,this.alert="Uploaded file",this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3),this.update();let m=null;c.data.existing_plugin_txt_lines!==void 0&&(m=c.data.existing_plugin_txt_lines.join(`
2
2
  `));let d=c.data.plugin_txt_lines.join(`
3
3
  `);this.pluginName=c.data.name,this.variables=c.data.variables,this.storePluginId=c.data.store_plugin_id,this.storeVersionId=c.data.store_version_id,this.minCosmosVersion=c.data.minimum_cosmos_version,this.pluginTxt=d,this.existingPluginTxt=m,this.showPluginDialog=!0,this.file=void 0}).catch(c=>{this.currentPlugin=null,this.file=void 0})},pluginCallback:function(e){this.showPluginDialog=!1,this.currentPlugin!==null&&(e.name=this.currentPlugin),this.pluginHashTmp=e,this.isModified(this.currentPlugin)?(this.pluginDelete=!1,this.showModifiedPluginDialog=!0):this.pluginInstall()},modifiedSubmit:async function(e){if(e===!0)for(let t of this.pluginTargets(this.currentPlugin))t.modified==!0&&await P.post(`/openc3-api/targets/${t.name}/delete_modified`);this.pluginDelete?this.deletePlugin(this.currentPlugin):this.pluginInstall()},pluginInstall:function(){P.post(`/openc3-api/plugins/install/${this.pluginName}`,{data:{plugin_hash:JSON.stringify(this.pluginHashTmp)}}).then(e=>{this.alert=`Started installing plugin ${this.pluginName} ...`,this.alertType="success",this.showAlert=!0,this.currentPlugin=null,this.file=void 0,this.variables={},this.pluginTxt="",this.existingPluginTxt=null,this.storePluginId=null,this.storeVersionId=null,setTimeout(()=>{this.showAlert=!1,this.updateProcesses()},5e3),this.update()})},editPlugin:function(e){this.resetControlState(),P.get(`/openc3-api/plugins/${e}`).then(t=>{let a=null;t.data.existing_plugin_txt_lines!==void 0&&(a=t.data.existing_plugin_txt_lines.join(`
4
4
  `)),this.pluginName=t.data.name,this.variables=t.data.variables,this.pluginTxt=t.data.plugin_txt_lines.join(`
5
- `),this.existingPluginTxt=a,this.showPluginDialog=!0})},deletePrompt:function(e){this.resetControlState(),this.$dialog.confirm(`Are you sure you want to remove: ${e}`,{okText:"Delete",cancelText:"Cancel"}).then(t=>{this.isModified(e)?(this.currentPlugin=e,this.pluginDelete=!0,this.showModifiedPluginDialog=!0):this.deletePlugin(e)})},deletePlugin:function(e){this.alert=`Removing plugin ${e} ...`,this.alertType="success",this.showAlert=!0,P.delete(`/openc3-api/plugins/${e}`).then(t=>{setTimeout(()=>{this.showAlert=!1,this.updateProcesses()},5e3)}),this.update()},upgradePlugin(e){this.resetControlState(),this.currentPlugin=e,this.$refs.fileInput.click()},selectFile(){this.resetControlState(),this.$refs.fileInput.click()},fileChange(e){const t=e.target.files;if(t.length>0)if(this.file=t[0],this.currentPlugin!==null)if(this.file.name.split(".gem")[0]==this.currentPlugin.split(".gem")[0])this.$dialog.confirm(`The new gem ${this.file.name} appears to be identical to the existing ${this.currentPlugin}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}).catch(a=>{});else{let a=this.file.name.split("-"),g=a.findIndex(c=>c.includes(".")),s=a.slice(0,g).join("-");a=this.currentPlugin.split("-"),g=a.findIndex(c=>c.includes("."));let l=a.slice(0,g).join("-");s!==l?this.$dialog.confirm(`The new gem base name ${s} doesn't match the existing ${l}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}):this.upload(this.currentPlugin)}else this.upload();else this.$refs.fileInput.value=null},openStore(){this.resetControlState(),this.showPluginStore=!0}}},qe={class:"mt-2"},Fe=["textContent"],He=["textContent"];function We(e,t,a,g,s,l){const c=n("v-btn"),m=n("v-icon"),d=n("v-col"),D=n("rux-progress"),b=n("v-row"),V=n("v-divider"),C=n("v-alert"),S=n("v-list-item-title"),T=n("v-list-item-subtitle"),I=n("v-progress-circular"),O=n("v-tooltip"),w=n("v-list-item"),U=n("v-list"),H=n("v-switch"),x=n("plugin-list"),Ye=n("plugin-dialog"),Ze=n("modified-plugin-dialog"),Ge=n("simple-text-dialog"),Je=n("plugin-store"),Xe=n("v-bottom-sheet");return r(),y("div",null,[i(b,{"no-gutters":"",align:"center",class:"px-2"},{default:o(()=>[i(d,{class:"pa-2 mt-2"},{default:o(()=>[i(c,{"append-icon":"mdi-store",onClick:l.openStore},{default:o(()=>[...t[9]||(t[9]=[f(" Browse Plugins ",-1)])]),_:1},8,["onClick"]),i(c,{"append-icon":"mdi-paperclip",class:"mx-2",onClick:l.selectFile},{default:o(()=>[...t[10]||(t[10]=[f(" Install From File ",-1)])]),_:1},8,["onClick"]),u("input",{ref:"fileInput",accept:".gem",style:{display:"none"},type:"file",onChange:t[0]||(t[0]=(..._)=>l.fileChange&&l.fileChange(..._))},null,544),t[14]||(t[14]=u("br",null,null,-1)),u("p",qe,[t[12]||(t[12]=f(" Note: Use ",-1)),i(m,null,{default:o(()=>[...t[11]||(t[11]=[f(" mdi-dots-horizontal ",-1)])]),_:1}),t[13]||(t[13]=f(" in the Installed Plugins list to upgrade existing plugins ",-1))])]),_:1}),i(d,{class:"ml-4 mr-2",cols:"4"},{default:o(()=>[i(D,{value:s.progress},null,8,["value"])]),_:1})]),_:1}),i(b,{"no-gutters":"",class:"px-2"},{default:o(()=>[i(d,{align:"right",class:"mr-2"},{default:o(()=>[...t[15]||(t[15]=[u("div",null,"* indicates a modified plugin",-1),u("div",null,"Click target link to download modifications",-1)])]),_:1})]),_:1}),i(V),i(C,{modelValue:s.showAlert,"onUpdate:modelValue":t[1]||(t[1]=_=>s.showAlert=_),closable:"",type:s.alertType,text:s.alert,"data-test":"plugin-alert"},null,8,["modelValue","type","text"]),Object.keys(s.processes).length>0?(r(),h(U,{key:0,class:"list","data-test":"process-list"},{default:o(()=>[i(b,{"no-gutters":"",class:"px-4"},{default:o(()=>[i(d,{class:"text-h5"},{default:o(()=>[...t[16]||(t[16]=[f(" Process List ",-1)])]),_:1}),i(d,{align:"right"},{default:o(()=>[...t[17]||(t[17]=[u("div",null,"Showing last 10 min of activity",-1)])]),_:1})]),_:1}),(r(!0),y(A,null,E(s.processes,_=>(r(),y("div",{key:_.name},[i(w,null,{append:o(()=>[_.state==="Running"?(r(),h(I,{key:0,indeterminate:"",color:"primary"})):(r(),h(O,{key:1,"open-delay":600,location:"top"},{activator:o(({props:Qe})=>[i(c,M({ref_for:!0},Qe,{icon:"mdi-eye",variant:"text","aria-label":"Show Output","data-test":"show-output",onClick:it=>l.showOutput(_)}),null,16,["onClick"])]),default:o(()=>[t[18]||(t[18]=u("span",null," Show Output ",-1))]),_:2},1024))]),default:o(()=>[i(S,null,{default:o(()=>[u("span",{class:z(_.state.toLowerCase()),textContent:v(`Processing ${_.process_type}: ${_.detail} - ${_.state}`)},null,10,Fe)]),_:2},1024),i(T,null,{default:o(()=>[u("span",{textContent:v(" Updated At: "+e.formatNanoseconds(_.updated_at,s.timeZone))},null,8,He)]),_:2},1024)]),_:2},1024),i(V)]))),128))]),_:1})):k("",!0),i(b,{"no-gutters":"",class:"px-4"},{default:o(()=>[i(d,{class:"text-h5"},{default:o(()=>[...t[19]||(t[19]=[f(" Installed Plugins ",-1)])]),_:1}),i(d,{class:"v-col-auto"},{default:o(()=>[i(H,{modelValue:s.showDefaultTools,"onUpdate:modelValue":t[2]||(t[2]=_=>s.showDefaultTools=_),label:"Show Default Tools",density:"compact","hide-details":"","data-test":"show-default-tools"},null,8,["modelValue"])]),_:1})]),_:1}),i(x,{plugins:s.plugins,targets:s.targets,"show-default-tools":s.showDefaultTools,"default-plugins":s.defaultPlugins,onEdit:l.editPlugin,onUpgrade:l.upgradePlugin,onDelete:l.deletePrompt},null,8,["plugins","targets","show-default-tools","default-plugins","onEdit","onUpgrade","onDelete"]),s.showPluginDialog?(r(),h(Ye,{key:1,modelValue:s.showPluginDialog,"onUpdate:modelValue":t[3]||(t[3]=_=>s.showPluginDialog=_),"plugin-name":s.pluginName,variables:s.variables,"plugin-txt":s.pluginTxt,"existing-plugin-txt":s.existingPluginTxt,"store-plugin-id":s.storePluginId,"store-version-id":s.storeVersionId,"min-cosmos-version":s.minCosmosVersion,onCallback:l.pluginCallback},null,8,["modelValue","plugin-name","variables","plugin-txt","existing-plugin-txt","store-plugin-id","store-version-id","min-cosmos-version","onCallback"])):k("",!0),s.showModifiedPluginDialog?(r(),h(Ze,{key:2,modelValue:s.showModifiedPluginDialog,"onUpdate:modelValue":t[4]||(t[4]=_=>s.showModifiedPluginDialog=_),"plugin-name":s.currentPlugin,targets:l.pluginTargets(s.currentPlugin),"plugin-delete":s.pluginDelete,onSubmit:l.modifiedSubmit},null,8,["modelValue","plugin-name","targets","plugin-delete","onSubmit"])):k("",!0),i(Ge,{modelValue:s.showProcessOutput,"onUpdate:modelValue":t[5]||(t[5]=_=>s.showProcessOutput=_),title:"Process Output",text:s.processOutput},null,8,["modelValue","text"]),i(Xe,{modelValue:s.showPluginStore,"onUpdate:modelValue":t[8]||(t[8]=_=>s.showPluginStore=_),fullscreen:""},{default:o(()=>[i(Je,{onClose:t[6]||(t[6]=()=>s.showPluginStore=!1),onTriggerInstall:t[7]||(t[7]=_=>l.upload(null,_))})]),_:1},8,["modelValue"])])}const tt=te("default",$(Be,[["render",We],["__scopeId","data-v-31fcfb69"]]))})}}));
5
+ `),this.existingPluginTxt=a,this.showPluginDialog=!0})},deletePrompt:function(e){this.resetControlState(),this.$dialog.confirm(`Are you sure you want to remove: ${e}`,{okText:"Delete",cancelText:"Cancel"}).then(t=>{this.isModified(e)?(this.currentPlugin=e,this.pluginDelete=!0,this.showModifiedPluginDialog=!0):this.deletePlugin(e)})},deletePlugin:function(e){this.alert=`Removing plugin ${e} ...`,this.alertType="success",this.showAlert=!0,P.delete(`/openc3-api/plugins/${e}`).then(t=>{setTimeout(()=>{this.showAlert=!1,this.updateProcesses()},5e3)}),this.update()},upgradePlugin(e){this.resetControlState(),this.currentPlugin=e,this.$refs.fileInput.click()},selectFile(){this.resetControlState(),this.$refs.fileInput.click()},fileChange(e){const t=e.target.files;if(t.length>0)if(this.file=t[0],this.currentPlugin!==null)if(this.file.name.split(".gem")[0]==this.currentPlugin.split(".gem")[0])this.$dialog.confirm(`The new gem ${this.file.name} appears to be identical to the existing ${this.currentPlugin}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}).catch(a=>{});else{let a=this.file.name.split("-"),g=a.findIndex(c=>c.includes(".")),s=a.slice(0,g).join("-");a=this.currentPlugin.split("-"),g=a.findIndex(c=>c.includes("."));let l=a.slice(0,g).join("-");s!==l?this.$dialog.confirm(`The new gem base name ${s} doesn't match the existing ${l}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}):this.upload(this.currentPlugin)}else this.upload();else this.$refs.fileInput.value=null},openStore(){this.resetControlState(),this.showPluginStore=!0}}},Fe={class:"mt-2"},qe=["textContent"],He=["textContent"];function We(e,t,a,g,s,l){const c=n("v-btn"),m=n("v-icon"),d=n("v-col"),D=n("rux-progress"),b=n("v-row"),V=n("v-divider"),k=n("v-alert"),S=n("v-list-item-title"),T=n("v-list-item-subtitle"),I=n("v-progress-circular"),O=n("v-tooltip"),w=n("v-list-item"),U=n("v-list"),H=n("v-switch"),x=n("plugin-list"),Ye=n("plugin-dialog"),Ze=n("modified-plugin-dialog"),Ge=n("simple-text-dialog"),Je=n("plugin-store"),Qe=n("v-bottom-sheet");return r(),y("div",null,[i(b,{"no-gutters":"",align:"center",class:"px-2"},{default:o(()=>[i(d,{class:"pa-2 mt-2"},{default:o(()=>[i(c,{"append-icon":"mdi-store",onClick:l.openStore},{default:o(()=>[...t[9]||(t[9]=[f(" Browse Plugins ",-1)])]),_:1},8,["onClick"]),i(c,{"append-icon":"mdi-paperclip",class:"mx-2",onClick:l.selectFile},{default:o(()=>[...t[10]||(t[10]=[f(" Install From File ",-1)])]),_:1},8,["onClick"]),u("input",{ref:"fileInput",accept:".gem",style:{display:"none"},type:"file",onChange:t[0]||(t[0]=(..._)=>l.fileChange&&l.fileChange(..._))},null,544),t[14]||(t[14]=u("br",null,null,-1)),u("p",Fe,[t[12]||(t[12]=f(" Note: Use ",-1)),i(m,null,{default:o(()=>[...t[11]||(t[11]=[f(" mdi-dots-horizontal ",-1)])]),_:1}),t[13]||(t[13]=f(" in the Installed Plugins list to upgrade existing plugins ",-1))])]),_:1}),i(d,{class:"ml-4 mr-2",cols:"4"},{default:o(()=>[i(D,{value:s.progress},null,8,["value"])]),_:1})]),_:1}),i(b,{"no-gutters":"",class:"px-2"},{default:o(()=>[i(d,{align:"right",class:"mr-2"},{default:o(()=>[...t[15]||(t[15]=[u("div",null,"* indicates a modified plugin",-1),u("div",null,"Click target link to download modifications",-1)])]),_:1})]),_:1}),i(V),i(k,{modelValue:s.showAlert,"onUpdate:modelValue":t[1]||(t[1]=_=>s.showAlert=_),closable:"",type:s.alertType,text:s.alert,"data-test":"plugin-alert"},null,8,["modelValue","type","text"]),Object.keys(s.processes).length>0?(r(),h(U,{key:0,class:"list","data-test":"process-list"},{default:o(()=>[i(b,{"no-gutters":"",class:"px-4"},{default:o(()=>[i(d,{class:"text-h5"},{default:o(()=>[...t[16]||(t[16]=[f(" Process List ",-1)])]),_:1}),i(d,{align:"right"},{default:o(()=>[...t[17]||(t[17]=[u("div",null,"Showing last 10 min of activity",-1)])]),_:1})]),_:1}),(r(!0),y(A,null,E(s.processes,_=>(r(),y("div",{key:_.name},[i(w,null,{append:o(()=>[_.state==="Running"?(r(),h(I,{key:0,indeterminate:"",color:"primary"})):(r(),h(O,{key:1,"open-delay":600,location:"top"},{activator:o(({props:Xe})=>[i(c,M({ref_for:!0},Xe,{icon:"mdi-eye",variant:"text","aria-label":"Show Output","data-test":"show-output",onClick:it=>l.showOutput(_)}),null,16,["onClick"])]),default:o(()=>[t[18]||(t[18]=u("span",null," Show Output ",-1))]),_:2},1024))]),default:o(()=>[i(S,null,{default:o(()=>[u("span",{class:z(_.state.toLowerCase()),textContent:v(`Processing ${_.process_type}: ${_.detail} - ${_.state}`)},null,10,qe)]),_:2},1024),i(T,null,{default:o(()=>[u("span",{textContent:v(" Updated At: "+e.formatNanoseconds(_.updated_at,s.timeZone))},null,8,He)]),_:2},1024)]),_:2},1024),i(V)]))),128))]),_:1})):C("",!0),i(b,{"no-gutters":"",class:"px-4"},{default:o(()=>[i(d,{class:"text-h5"},{default:o(()=>[...t[19]||(t[19]=[f(" Installed Plugins ",-1)])]),_:1}),i(d,{class:"v-col-auto"},{default:o(()=>[i(H,{modelValue:s.showDefaultTools,"onUpdate:modelValue":t[2]||(t[2]=_=>s.showDefaultTools=_),label:"Show Default Tools",density:"compact","hide-details":"","data-test":"show-default-tools"},null,8,["modelValue"])]),_:1})]),_:1}),i(x,{plugins:s.plugins,targets:s.targets,"show-default-tools":s.showDefaultTools,"default-plugins":s.defaultPlugins,onEdit:l.editPlugin,onUpgrade:l.upgradePlugin,onDelete:l.deletePrompt},null,8,["plugins","targets","show-default-tools","default-plugins","onEdit","onUpgrade","onDelete"]),s.showPluginDialog?(r(),h(Ye,{key:1,modelValue:s.showPluginDialog,"onUpdate:modelValue":t[3]||(t[3]=_=>s.showPluginDialog=_),"plugin-name":s.pluginName,variables:s.variables,"plugin-txt":s.pluginTxt,"existing-plugin-txt":s.existingPluginTxt,"store-plugin-id":s.storePluginId,"store-version-id":s.storeVersionId,"min-cosmos-version":s.minCosmosVersion,onCallback:l.pluginCallback},null,8,["modelValue","plugin-name","variables","plugin-txt","existing-plugin-txt","store-plugin-id","store-version-id","min-cosmos-version","onCallback"])):C("",!0),s.showModifiedPluginDialog?(r(),h(Ze,{key:2,modelValue:s.showModifiedPluginDialog,"onUpdate:modelValue":t[4]||(t[4]=_=>s.showModifiedPluginDialog=_),"plugin-name":s.currentPlugin,targets:l.pluginTargets(s.currentPlugin),"plugin-delete":s.pluginDelete,onSubmit:l.modifiedSubmit},null,8,["modelValue","plugin-name","targets","plugin-delete","onSubmit"])):C("",!0),i(Ge,{modelValue:s.showProcessOutput,"onUpdate:modelValue":t[5]||(t[5]=_=>s.showProcessOutput=_),title:"Process Output",text:s.processOutput},null,8,["modelValue","text"]),i(Qe,{modelValue:s.showPluginStore,"onUpdate:modelValue":t[8]||(t[8]=_=>s.showPluginStore=_),fullscreen:""},{default:o(()=>[i(Je,{onClose:t[6]||(t[6]=()=>s.showPluginStore=!1),onTriggerInstall:t[7]||(t[7]=_=>l.upload(null,_))})]),_:1},8,["modelValue"])])}const tt=te("default",$(Be,[["render",We],["__scopeId","data-v-31fcfb69"]]))})}}));
@@ -1 +1 @@
1
- System.register(["./Widget-BiaunQ83-f5d5cb8cc1b25880c13e.js","vue","./main-05290d67af0d2bba595e.js","vue-router","pinia","single-spa","vuetify"],(function(u,d){"use strict";var s,a,r,l,i,n;return{setters:[e=>{s=e.h},e=>{a=e.resolveComponent,r=e.openBlock,l=e.createBlock,i=e.normalizeStyle},e=>{n=e.d},null,null,null,null],execute:(function(){const e={mixins:[s],props:{value:{type:[Number,String],default:null}},emits:["addItem","deleteItem"],data:function(){return{valueId:null,scaleFactor:1,width:150}},computed:{_value:function(){let t=this.value;if(t===null){if(!this.screenValues[this.valueId])return 0;t=this.screenValues[this.valueId][0]}return Number.parseInt(Number.parseFloat(t)*this.scaleFactor)}},created:function(){if(this.parameters[3]&&(this.scaleFactor=Number.parseFloat(this.parameters[3])),this.width=this.setWidth(this.parameters[4],"px",this.width),this.value===null){let t="CONVERTED";this.parameters[5]&&(t=this.parameters[5]),this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${t}`,this.$emit("addItem",this.valueId)}},unmounted:function(){this.$emit("deleteItem",this.valueId)}};function o(t,p,v,f,I,c){const h=a("rux-progress");return r(),l(h,{value:c._value,class:"progress",style:i(t.computedStyle)},null,8,["value","style"])}const m=u("default",n(e,[["render",o],["__scopeId","data-v-af1daff2"]]))})}}));
1
+ System.register(["./Widget-CtYQauzA-ae8839a2e4146c799aec.js","vue","./main-040488697a5f3eed5115.js","vue-router","pinia","single-spa","vuetify"],(function(n,d){"use strict";var s,a,r,l,i,u;return{setters:[e=>{s=e.h},e=>{a=e.resolveComponent,r=e.openBlock,l=e.createBlock,i=e.normalizeStyle},e=>{u=e.k},null,null,null,null],execute:(function(){const e={mixins:[s],props:{value:{type:[Number,String],default:null}},emits:["addItem","deleteItem"],data:function(){return{valueId:null,scaleFactor:1,width:150}},computed:{_value:function(){let t=this.value;if(t===null){if(!this.screenValues[this.valueId])return 0;t=this.screenValues[this.valueId][0]}return Number.parseInt(Number.parseFloat(t)*this.scaleFactor)}},created:function(){if(this.parameters[3]&&(this.scaleFactor=Number.parseFloat(this.parameters[3])),this.width=this.setWidth(this.parameters[4],"px",this.width),this.value===null){let t="CONVERTED";this.parameters[5]&&(t=this.parameters[5]),this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${t}`,this.$emit("addItem",this.valueId)}},unmounted:function(){this.$emit("deleteItem",this.valueId)}};function o(t,p,v,f,I,c){const h=a("rux-progress");return r(),l(h,{value:c._value,class:"progress",style:i(t.computedStyle)},null,8,["value","style"])}const m=n("default",u(e,[["render",o],["__scopeId","data-v-af1daff2"]]))})}}));
@@ -1 +1 @@
1
- System.register(["./Widget-BiaunQ83-f5d5cb8cc1b25880c13e.js","vue","./main-05290d67af0d2bba595e.js","vue-router","pinia","single-spa","vuetify"],(function(s,v){"use strict";var l,t,n,a,r,u;return{setters:[e=>{l=e.h},e=>{t=e.resolveComponent,n=e.openBlock,a=e.createBlock,r=e.normalizeStyle},e=>{u=e.d},null,null,null,null],execute:(function(){const e={mixins:[l],props:{value:{type:Number,default:null}},data(){return{label:"Radio"}},created(){this.label=this.parameters[0]}};function o(i,y,c,f,d,b){const p=t("v-radio");return n(),a(p,{"hide-details":"",dense:"",label:d.label,style:r(i.computedStyle),value:c.value},null,8,["label","style","value"])}const m=s("default",u(e,[["render",o]]))})}}));
1
+ System.register(["./Widget-CtYQauzA-ae8839a2e4146c799aec.js","vue","./main-040488697a5f3eed5115.js","vue-router","pinia","single-spa","vuetify"],(function(s,v){"use strict";var l,t,n,a,r,u;return{setters:[e=>{l=e.h},e=>{t=e.resolveComponent,n=e.openBlock,a=e.createBlock,r=e.normalizeStyle},e=>{u=e.k},null,null,null,null],execute:(function(){const e={mixins:[l],props:{value:{type:Number,default:null}},data(){return{label:"Radio"}},created(){this.label=this.parameters[0]}};function o(i,y,c,f,p,b){const d=t("v-radio");return n(),a(d,{"hide-details":"",dense:"",label:p.label,style:r(i.computedStyle),value:c.value},null,8,["label","style","value"])}const m=s("default",u(e,[["render",o]]))})}}));
@@ -1 +1 @@
1
- System.register(["./Layout-BBLYT0gE-48666c2ab3e940bc8337.js","vue","./main-05290d67af0d2bba595e.js","./Widget-BiaunQ83-f5d5cb8cc1b25880c13e.js","vue-router","pinia","single-spa","vuetify"],(function(x,k){"use strict";var a,l,r,s,i,c,o,u,m,d,p,g;return{setters:[e=>{a=e.r},e=>{l=e.resolveComponent,r=e.openBlock,s=e.createBlock,i=e.normalizeStyle,c=e.withCtx,o=e.createElementBlock,u=e.Fragment,m=e.renderList,d=e.resolveDynamicComponent,p=e.mergeProps},e=>{g=e.d},null,null,null,null,null],execute:(function(){const e={mixins:[a],data(){return{selectedIndex:0}},created(){this.parameters[0]&&(this.selectedIndex=Number.parseInt(this.parameters[0]))},methods:{selected(){return this.selectedIndex}}};function f(n,v,I,z,y,L){const B=l("v-radio-group");return r(),s(B,{modelValue:y.selectedIndex,"onUpdate:modelValue":v[0]||(v[0]=t=>y.selectedIndex=t),"hide-details":"",density:"compact",style:i(n.computedStyle)},{default:c(()=>[(r(!0),o(u,null,m(n.widgets,(t,h)=>(r(),s(d(t.type),p({ref_for:!0},n.listeners,{key:h,value:h,target:t.target,parameters:t.parameters,settings:t.settings,"screen-values":n.screenValues,"screen-time-zone":n.screenTimeZone,name:t.name}),null,16,["value","target","parameters","settings","screen-values","screen-time-zone","name"]))),128))]),_:1},8,["modelValue","style"])}const C=x("default",g(e,[["render",f]]))})}}));
1
+ System.register(["./Layout--_zNJWnw-a75e57affb59e71889ad.js","vue","./main-040488697a5f3eed5115.js","./Widget-CtYQauzA-ae8839a2e4146c799aec.js","vue-router","pinia","single-spa","vuetify"],(function(x,C){"use strict";var a,l,r,s,i,c,o,u,m,d,p,g;return{setters:[e=>{a=e.r},e=>{l=e.resolveComponent,r=e.openBlock,s=e.createBlock,i=e.normalizeStyle,c=e.withCtx,o=e.createElementBlock,u=e.Fragment,m=e.renderList,d=e.resolveDynamicComponent,p=e.mergeProps},e=>{g=e.k},null,null,null,null,null],execute:(function(){const e={mixins:[a],data(){return{selectedIndex:0}},created(){this.parameters[0]&&(this.selectedIndex=Number.parseInt(this.parameters[0]))},methods:{selected(){return this.selectedIndex}}};function f(n,v,z,B,y,w){const k=l("v-radio-group");return r(),s(k,{modelValue:y.selectedIndex,"onUpdate:modelValue":v[0]||(v[0]=t=>y.selectedIndex=t),"hide-details":"",density:"compact",style:i(n.computedStyle)},{default:c(()=>[(r(!0),o(u,null,m(n.widgets,(t,h)=>(r(),s(d(t.type),p({ref_for:!0},n.listeners,{key:h,value:h,target:t.target,parameters:t.parameters,settings:t.settings,"screen-values":n.screenValues,"screen-time-zone":n.screenTimeZone,name:t.name}),null,16,["value","target","parameters","settings","screen-values","screen-time-zone","name"]))),128))]),_:1},8,["modelValue","style"])}const I=x("default",g(e,[["render",f]]))})}}));
@@ -1 +1 @@
1
- System.register(["./Widget-BiaunQ83-f5d5cb8cc1b25880c13e.js","vue","./main-05290d67af0d2bba595e.js","vue-router","pinia","single-spa","vuetify"],(function(u,m){"use strict";var r,a,n,h,s,l;return{setters:[e=>{r=e.h},e=>{a=e.openBlock,n=e.createElementBlock,h=e.normalizeStyle,s=e.createElementVNode},e=>{l=e.d},null,null,null,null],execute:(function(){const e={mixins:[r],emits:["addItem","deleteItem"],data(){return{width:160,height:22}},computed:{cssProps(){return{"--height":this.height+"px","--width":this.width+"px","--container-height":this.height-5+"px","--position":this.calcPosition()+"%"}},min(){return Number.parseInt(this.parameters[3])},max(){return Number.parseInt(this.parameters[4])},range(){return this.max-this.min}},created(){const t=this.parameters[5]?this.parameters[5]:"CONVERTED";this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${t}`,this.$emit("addItem",this.valueId),this.width=this.setWidth(this.parameters[6],"px",this.width),this.height=this.setHeight(this.parameters[7],"px",this.height)},unmounted(){this.$emit("deleteItem",this.valueId)},methods:{calcPosition(){if(!this.screenValues[this.valueId])return 0;let t=this.screenValues[this.valueId][0];if(t==null)return 0;if(t.raw)return t.raw==="-Infinity"?0:100;const i=(t-this.min)/this.range*100;return i>100?100:i<0?0:i}}};function c(t,i,p,g,v,d){return a(),n("div",{class:"rangebar",style:h([d.cssProps,t.computedStyle])},[...i[0]||(i[0]=[s("div",{class:"rangebar__container"},[s("div",{class:"rangebar__line"}),s("div",{class:"rangebar__arrow"})],-1)])],4)}const o=u("default",l(e,[["render",c],["__scopeId","data-v-276a618a"]]))})}}));
1
+ System.register(["./Widget-CtYQauzA-ae8839a2e4146c799aec.js","vue","./main-040488697a5f3eed5115.js","vue-router","pinia","single-spa","vuetify"],(function(u,m){"use strict";var r,a,n,h,s,l;return{setters:[e=>{r=e.h},e=>{a=e.openBlock,n=e.createElementBlock,h=e.normalizeStyle,s=e.createElementVNode},e=>{l=e.k},null,null,null,null],execute:(function(){const e={mixins:[r],emits:["addItem","deleteItem"],data(){return{width:160,height:22}},computed:{cssProps(){return{"--height":this.height+"px","--width":this.width+"px","--container-height":this.height-5+"px","--position":this.calcPosition()+"%"}},min(){return Number.parseInt(this.parameters[3])},max(){return Number.parseInt(this.parameters[4])},range(){return this.max-this.min}},created(){const t=this.parameters[5]?this.parameters[5]:"CONVERTED";this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${t}`,this.$emit("addItem",this.valueId),this.width=this.setWidth(this.parameters[6],"px",this.width),this.height=this.setHeight(this.parameters[7],"px",this.height)},unmounted(){this.$emit("deleteItem",this.valueId)},methods:{calcPosition(){if(!this.screenValues[this.valueId])return 0;let t=this.screenValues[this.valueId][0];if(t==null)return 0;if(t.raw)return t.raw==="-Infinity"?0:100;const i=(t-this.min)/this.range*100;return i>100?100:i<0?0:i}}};function c(t,i,p,g,v,d){return a(),n("div",{class:"rangebar",style:h([d.cssProps,t.computedStyle])},[...i[0]||(i[0]=[s("div",{class:"rangebar__container"},[s("div",{class:"rangebar__line"}),s("div",{class:"rangebar__arrow"})],-1)])],4)}const o=u("default",l(e,[["render",c],["__scopeId","data-v-276a618a"]]))})}}));
@@ -0,0 +1 @@
1
+ System.register(["./main-040488697a5f3eed5115.js","vue","vue-router","pinia","single-spa","vuetify"],(function(_,K){"use strict";var y,f,d,o,c,n,l,r,p,v,m,x;return{setters:[a=>{y=a.k,f=a.D},a=>{d=a.resolveComponent,o=a.openBlock,c=a.createElementBlock,n=a.createVNode,l=a.withCtx,r=a.createTextVNode,p=a.createElementVNode,v=a.Fragment,m=a.toDisplayString,x=a.createCommentVNode},null,null,null,null],execute:(function(){const a={data(){return{redisCommandText:"",redisResponse:null,redisEndpoint:"persistent",db_shard:0,prettyPrint:!1,headers:[{text:"Redis",value:"redis",width:150},{text:"Command",value:"command"},{text:"Response",value:"response"}],commands:[]}},computed:{formattedResponse:function(){let t=this.redisResponse;if(this.redisResponse&&this.prettyPrint){if(typeof t=="string")try{t=JSON.parse(t)}catch{}if(Array.isArray(t)){for(let e=0;e<t.length;e++)if(typeof t[e]=="string")try{t[e]=JSON.parse(t[e])}catch{}}}return t=JSON.stringify(t,null,2),`Response: ${t}`}},methods:{commandKeydown:function(t){t.key==="Enter"&&this.executeRaw()},executeRaw:function(){this.redisResponse=null;let t="/openc3-api/redis/exec";const e=[];this.redisEndpoint==="ephemeral"&&e.push("ephemeral=1"),this.db_shard&&this.db_shard!==0&&e.push(`db_shard=${this.db_shard}`),e.length&&(t+="?"+e.join("&")),f.post(t,{data:this.redisCommandText,headers:{Accept:"application/json","Content-Type":"text/plain"}}).then(b=>{this.redisResponse=b.data.result;let u=this.redisEndpoint==="ephemeral"?"Ephemeral":"Persistent";this.db_shard!==0&&(u+=` (db_shard ${this.db_shard})`),this.commands.unshift({redis:u,command:this.redisCommandText,response:this.redisResponse})})}}},g=["textContent"],V={key:1,class:"monospace"};function C(t,e,b,u,s,h){const k=d("v-card-title"),w=d("v-card-subtitle"),E=d("v-text-field"),N=d("v-checkbox"),S=d("v-card-text"),T=d("v-btn"),R=d("v-radio"),P=d("v-radio-group"),D=d("v-number-input"),U=d("v-card-actions"),A=d("v-data-table"),B=d("v-card");return o(),c("div",null,[n(B,null,{default:l(()=>[n(k,null,{default:l(()=>[...e[4]||(e[4]=[r(" Send Raw Redis Commands ",-1)])]),_:1}),n(w,null,{default:l(()=>[...e[5]||(e[5]=[r(" THIS IS DANGEROUS. This allows you to interact directly with the underlying Redis database, making it easy to modify or delete data. ",-1),p("br",null,null,-1),p("br",null,null,-1),r(" Enter commands like you would at the Redis cli prompt: ",-1),p("code",null,"ping",-1),r(" or ",-1),p("code",null,"hget openc3__settings version",-1)])]),_:1}),n(S,{class:"pb-0 ml-2"},{default:l(()=>[n(E,{modelValue:s.redisCommandText,"onUpdate:modelValue":e[0]||(e[0]=i=>s.redisCommandText=i),"hide-details":"",label:"Redis command",class:"monospace",onKeydown:h.commandKeydown},null,8,["modelValue","onKeydown"]),n(N,{modelValue:s.prettyPrint,"onUpdate:modelValue":e[1]||(e[1]=i=>s.prettyPrint=i),label:"Pretty print",density:"compact","hide-details":"",class:"mb-2"},null,8,["modelValue"]),s.redisResponse?(o(),c(v,{key:0},[s.prettyPrint?(o(),c("pre",{key:0,textContent:m(h.formattedResponse)},null,8,g)):(o(),c("span",V," Response: "+m(s.redisResponse),1))],64)):x("",!0)]),_:1}),n(U,{class:"px-2"},{default:l(()=>[n(T,{disabled:!s.redisCommandText.length,color:"success",variant:"text",onClick:h.executeRaw},{default:l(()=>[...e[6]||(e[6]=[r(" Execute ",-1)])]),_:1},8,["disabled","onClick"]),n(P,{modelValue:s.redisEndpoint,"onUpdate:modelValue":e[2]||(e[2]=i=>s.redisEndpoint=i),inline:"","hide-details":"",class:"mt-0"},{default:l(()=>[n(R,{label:"Persistent",value:"persistent","data-test":"persistent-radio"}),n(R,{label:"Ephemeral",value:"ephemeral","data-test":"ephemeral-radio"})]),_:1},8,["modelValue"]),n(D,{modelValue:s.db_shard,"onUpdate:modelValue":e[3]||(e[3]=i=>s.db_shard=i),"control-variant":"stacked",min:0,label:"DB Shard","hide-details":"",density:"compact",style:{"max-width":"100px"},class:"ml-4"},null,8,["modelValue"])]),_:1}),n(A,{headers:s.headers,items:s.commands,class:"monospace","items-per-page":-1,"hide-default-footer":"",density:"compact",height:"45vh"},null,8,["headers","items"])]),_:1})])}const I=_("default",y(a,[["render",C],["__scopeId","data-v-a92ae7a6"]]))})}}));
@@ -1 +1 @@
1
- System.register(["./Widget-BiaunQ83-f5d5cb8cc1b25880c13e.js","vue","./main-05290d67af0d2bba595e.js","vue-router","pinia","single-spa","vuetify"],(function(m,p){"use strict";var l,r,a,c,u,o;return{setters:[t=>{l=t.h},t=>{r=t.resolveComponent,a=t.openBlock,c=t.createBlock,u=t.normalizeStyle},t=>{o=t.d},null,null,null,null],execute:(function(){const t={mixins:[l],props:{value:{type:[Number,String],default:null}},emits:["addItem","deleteItem","open"],data:function(){return{valueId:null,icon:"",label:"",subLabel:"",items:[],screenTarget:null,screenName:null}},computed:{status:function(){let e="off";for(const n of this.items){let s=this.screenValues[n][1];s&&((s.includes("BLUE")||s.includes("GREEN"))&&e!="caution"&&e!="critical"&&(e="normal"),s.includes("YELLOW")&&e!="critical"&&(e="caution"),s.includes("RED")&&(e="critical"))}return e},pointerStyle(){return this.screenTarget&&this.screenName?{cursor:"pointer"}:{cursor:"default"}}},created:function(){this.icon=this.parameters[0],this.label=this.parameters[1],this.subLabel=this.parameters[2],this.appliedSettings.forEach(e=>{switch(e[0].toUpperCase()){case"SCREEN":this.screenTarget=e[1],this.screenName=e[2];break;case"TLM":let n="CONVERTED";e[4]&&(n=e[4]);let s=`${e[1]}__${e[2]}__${e[3]}__${n}`;this.items.push(s),this.$emit("addItem",s);break}})},unmounted:function(){this.items.forEach(e=>{this.$emit("deleteItem",e)})},methods:{clickHandler(){this.screenTarget&&this.screenName&&this.$emit("open",this.screenTarget,this.screenName)}}};function h(e,n,s,f,E,i){const d=r("rux-monitoring-icon");return a(),c(d,{class:"rux-icon",style:u([i.pointerStyle,e.computedStyle]),icon:e.icon,status:i.status,label:e.label,sublabel:e.subLabel,onClick:i.clickHandler},null,8,["style","icon","status","label","sublabel","onClick"])}const b=m("default",o(t,[["render",h]]))})}}));
1
+ System.register(["./Widget-CtYQauzA-ae8839a2e4146c799aec.js","vue","./main-040488697a5f3eed5115.js","vue-router","pinia","single-spa","vuetify"],(function(m,p){"use strict";var l,r,a,c,u,o;return{setters:[t=>{l=t.h},t=>{r=t.resolveComponent,a=t.openBlock,c=t.createBlock,u=t.normalizeStyle},t=>{o=t.k},null,null,null,null],execute:(function(){const t={mixins:[l],props:{value:{type:[Number,String],default:null}},emits:["addItem","deleteItem","open"],data:function(){return{valueId:null,icon:"",label:"",subLabel:"",items:[],screenTarget:null,screenName:null}},computed:{status:function(){let e="off";for(const n of this.items){let s=this.screenValues[n][1];s&&((s.includes("BLUE")||s.includes("GREEN"))&&e!="caution"&&e!="critical"&&(e="normal"),s.includes("YELLOW")&&e!="critical"&&(e="caution"),s.includes("RED")&&(e="critical"))}return e},pointerStyle(){return this.screenTarget&&this.screenName?{cursor:"pointer"}:{cursor:"default"}}},created:function(){this.icon=this.parameters[0],this.label=this.parameters[1],this.subLabel=this.parameters[2],this.appliedSettings.forEach(e=>{switch(e[0].toUpperCase()){case"SCREEN":this.screenTarget=e[1],this.screenName=e[2];break;case"TLM":let n="CONVERTED";e[4]&&(n=e[4]);let s=`${e[1]}__${e[2]}__${e[3]}__${n}`;this.items.push(s),this.$emit("addItem",s);break}})},unmounted:function(){this.items.forEach(e=>{this.$emit("deleteItem",e)})},methods:{clickHandler(){this.screenTarget&&this.screenName&&this.$emit("open",this.screenTarget,this.screenName)}}};function h(e,n,s,f,E,i){const d=r("rux-monitoring-icon");return a(),c(d,{class:"rux-icon",style:u([i.pointerStyle,e.computedStyle]),icon:e.icon,status:i.status,label:e.label,sublabel:e.subLabel,onClick:i.clickHandler},null,8,["style","icon","status","label","sublabel","onClick"])}const b=m("default",o(t,[["render",h]]))})}}));
@@ -1 +1 @@
1
- System.register(["./main-05290d67af0d2bba595e.js","vue","single-spa","./OutputDialog-wOewjnk2-c514efc45c452c84f902.js","vue-router","pinia","vuetify"],(function(f,B){"use strict";var d,c,e,l,r,o,i,g,p,h,m,v,k,w;return{setters:[t=>{d=t.d,c=t.a},t=>{e=t.resolveComponent,l=t.openBlock,r=t.createElementBlock,o=t.createVNode,i=t.withCtx,g=t.Fragment,p=t.renderList,h=t.createTextVNode,m=t.toDisplayString,v=t.createBlock,k=t.createCommentVNode},null,t=>{w=t.S},null,null,null],execute:(function(){const t={components:{OutputDialog:w},data(){return{routers:[],jsonContent:"",dialogTitle:"",showDialog:!1}},mounted(){this.update()},methods:{update(){c.get("/openc3-api/routers").then(n=>{this.routers=n.data})},add(){},showRouter(n){c.get(`/openc3-api/routers/${n}`).then(s=>{this.jsonContent=JSON.stringify(s.data,null," "),this.dialogTitle=n,this.showDialog=!0})},dialogCallback(n){this.showDialog=!1}}};function D(n,s,_,R,a,C){const S=e("v-list-item-title"),V=e("v-btn"),y=e("v-list-item"),N=e("v-divider"),b=e("v-list"),j=e("output-dialog");return l(),r("div",null,[o(b,{class:"list","data-test":"routerList"},{default:i(()=>[(l(!0),r(g,null,p(a.routers,(u,x)=>(l(),r("div",{key:x},[o(y,null,{append:i(()=>[o(V,{"aria-label":"Show Router Details",icon:"mdi-eye",variant:"text",onClick:O=>C.showRouter(u)},null,8,["onClick"])]),default:i(()=>[o(S,null,{default:i(()=>[h(m(u),1)]),_:2},1024)]),_:2},1024),o(N)]))),128))]),_:1}),a.showDialog?(l(),v(j,{key:0,modelValue:a.showDialog,"onUpdate:modelValue":s[0]||(s[0]=u=>a.showDialog=u),content:a.jsonContent,type:"Router",name:a.dialogTitle,onSubmit:C.dialogCallback},null,8,["modelValue","content","name","onSubmit"])):k("",!0)])}const T=f("default",d(t,[["render",D],["__scopeId","data-v-ead3d1f6"]]))})}}));
1
+ System.register(["./main-040488697a5f3eed5115.js","vue","single-spa","./OutputDialog-B0DR879Y-1fe936426c84cb442ac4.js","vue-router","pinia","vuetify"],(function(f,R){"use strict";var d,c,e,l,r,o,i,g,p,h,m,v,D,k;return{setters:[t=>{d=t.k,c=t.D},t=>{e=t.resolveComponent,l=t.openBlock,r=t.createElementBlock,o=t.createVNode,i=t.withCtx,g=t.Fragment,p=t.renderList,h=t.createTextVNode,m=t.toDisplayString,v=t.createBlock,D=t.createCommentVNode},null,t=>{k=t.S},null,null,null],execute:(function(){const t={components:{OutputDialog:k},data(){return{routers:[],jsonContent:"",dialogTitle:"",showDialog:!1}},mounted(){this.update()},methods:{update(){c.get("/openc3-api/routers").then(n=>{this.routers=n.data})},add(){},showRouter(n){c.get(`/openc3-api/routers/${n}`).then(s=>{this.jsonContent=JSON.stringify(s.data,null," "),this.dialogTitle=n,this.showDialog=!0})},dialogCallback(n){this.showDialog=!1}}};function w(n,s,_,j,a,C){const S=e("v-list-item-title"),V=e("v-btn"),y=e("v-list-item"),N=e("v-divider"),B=e("v-list"),b=e("output-dialog");return l(),r("div",null,[o(B,{class:"list","data-test":"routerList"},{default:i(()=>[(l(!0),r(g,null,p(a.routers,(u,x)=>(l(),r("div",{key:x},[o(y,null,{append:i(()=>[o(V,{"aria-label":"Show Router Details",icon:"mdi-eye",variant:"text",onClick:L=>C.showRouter(u)},null,8,["onClick"])]),default:i(()=>[o(S,null,{default:i(()=>[h(m(u),1)]),_:2},1024)]),_:2},1024),o(N)]))),128))]),_:1}),a.showDialog?(l(),v(b,{key:0,modelValue:a.showDialog,"onUpdate:modelValue":s[0]||(s[0]=u=>a.showDialog=u),content:a.jsonContent,type:"Router",name:a.dialogTitle,onSubmit:C.dialogCallback},null,8,["modelValue","content","name","onSubmit"])):D("",!0)])}const T=f("default",d(t,[["render",w],["__scopeId","data-v-ead3d1f6"]]))})}}));
@@ -1 +1 @@
1
- System.register(["./Layout-BBLYT0gE-48666c2ab3e940bc8337.js","vue","./main-05290d67af0d2bba595e.js","./Widget-BiaunQ83-f5d5cb8cc1b25880c13e.js","vue-router","pinia","single-spa","vuetify"],(function(w,N){"use strict";var m,u,r,s,v,l,y,i,o,f,d,c,p,h;return{setters:[t=>{m=t.r},t=>{u=t.resolveComponent,r=t.openBlock,s=t.createElementBlock,v=t.normalizeStyle,l=t.Fragment,y=t.renderList,i=t.createBlock,o=t.withCtx,f=t.createElementVNode,d=t.toDisplayString,c=t.resolveDynamicComponent,p=t.mergeProps},t=>{h=t.d},null,null,null,null,null],execute:(function(){const t={mixins:[m],created:function(){if(this.setHeight(this.parameters[0],"px",200),this.parameters[1]){let n=this.parameters[1];this.widgets.forEach(g=>{g.settings.find(a=>a[0]==="MARGIN"||a[0].startsWith("RAW")&&a[1].toUpperCase().includes("MARGIN"))===void 0&&g.settings.push(["MARGIN",n])})}}};function B(n,g,a,z,b,A){const k=u("v-tooltip");return r(),s("div",{ref:"container",style:v(n.computedStyle),class:"overflow-y-auto"},[(r(!0),s(l,null,y(n.widgets,(e,T)=>(r(),s(l,{key:T},[n.getTooltipText(e)?(r(),i(k,{key:0,"open-delay":n.getTooltipDelay(e),location:"top","activator-props":n.getTooltipActivatorProps(e)},{activator:o(({props:C})=>[(r(),i(c(e.type),p({ref_for:!0},{...n.listeners,...C},{target:e.target,parameters:e.parameters,settings:e.settings,"screen-values":n.screenValues,"screen-time-zone":n.screenTimeZone,widgets:e.widgets,name:e.name,line:e.line,"line-number":e.lineNumber}),null,16,["target","parameters","settings","screen-values","screen-time-zone","widgets","name","line","line-number"]))]),default:o(()=>[f("span",null,d(n.getTooltipText(e)),1)]),_:2},1032,["open-delay","activator-props"])):(r(),i(c(e.type),p({key:1,ref_for:!0},n.listeners,{target:e.target,parameters:e.parameters,settings:e.settings,"screen-values":n.screenValues,"screen-time-zone":n.screenTimeZone,widgets:e.widgets,name:e.name,line:e.line,"line-number":e.lineNumber}),null,16,["target","parameters","settings","screen-values","screen-time-zone","widgets","name","line","line-number"]))],64))),128))],4)}const x=w("default",h(t,[["render",B]]))})}}));
1
+ System.register(["./Layout--_zNJWnw-a75e57affb59e71889ad.js","vue","./main-040488697a5f3eed5115.js","./Widget-CtYQauzA-ae8839a2e4146c799aec.js","vue-router","pinia","single-spa","vuetify"],(function(w,T){"use strict";var g,u,r,s,v,l,y,i,o,f,d,c,p,h;return{setters:[t=>{g=t.r},t=>{u=t.resolveComponent,r=t.openBlock,s=t.createElementBlock,v=t.normalizeStyle,l=t.Fragment,y=t.renderList,i=t.createBlock,o=t.withCtx,f=t.createElementVNode,d=t.toDisplayString,c=t.resolveDynamicComponent,p=t.mergeProps},t=>{h=t.k},null,null,null,null,null],execute:(function(){const t={mixins:[g],created:function(){if(this.setHeight(this.parameters[0],"px",200),this.parameters[1]){let n=this.parameters[1];this.widgets.forEach(m=>{m.settings.find(a=>a[0]==="MARGIN"||a[0].startsWith("RAW")&&a[1].toUpperCase().includes("MARGIN"))===void 0&&m.settings.push(["MARGIN",n])})}}};function k(n,m,a,A,B,b){const z=u("v-tooltip");return r(),s("div",{ref:"container",style:v(n.computedStyle),class:"overflow-y-auto"},[(r(!0),s(l,null,y(n.widgets,(e,C)=>(r(),s(l,{key:C},[n.getTooltipText(e)?(r(),i(z,{key:0,"open-delay":n.getTooltipDelay(e),location:"top","activator-props":n.getTooltipActivatorProps(e)},{activator:o(({props:N})=>[(r(),i(c(e.type),p({ref_for:!0},{...n.listeners,...N},{target:e.target,parameters:e.parameters,settings:e.settings,"screen-values":n.screenValues,"screen-time-zone":n.screenTimeZone,widgets:e.widgets,name:e.name,line:e.line,"line-number":e.lineNumber}),null,16,["target","parameters","settings","screen-values","screen-time-zone","widgets","name","line","line-number"]))]),default:o(()=>[f("span",null,d(n.getTooltipText(e)),1)]),_:2},1032,["open-delay","activator-props"])):(r(),i(c(e.type),p({key:1,ref_for:!0},n.listeners,{target:e.target,parameters:e.parameters,settings:e.settings,"screen-values":n.screenValues,"screen-time-zone":n.screenTimeZone,widgets:e.widgets,name:e.name,line:e.line,"line-number":e.lineNumber}),null,16,["target","parameters","settings","screen-values","screen-time-zone","widgets","name","line","line-number"]))],64))),128))],4)}const x=w("default",h(t,[["render",k]]))})}}));
@@ -1 +1 @@
1
- System.register(["./main-05290d67af0d2bba595e.js","vue","vue-router","pinia","single-spa","vuetify"],(function(C,$){"use strict";var V,o,n,u,d,l,s,c,p,m,v,g,N,b;return{setters:[a=>{V=a.d,o=a.a},a=>{n=a.resolveComponent,u=a.openBlock,d=a.createElementBlock,l=a.createVNode,s=a.withCtx,c=a.createTextVNode,p=a.createElementVNode,m=a.toDisplayString,v=a.Fragment,g=a.renderList,N=a.createBlock,b=a.createCommentVNode},null,null,null,null],execute:(function(){const a={data(){return{file:null,loadingSecret:!1,secrets:[],secretName:"",secretValue:"",alert:"",alertType:"success",showAlert:!1,isEnterprise:!1}},created(){o.get("/openc3-api/info").then(({data:i})=>{this.isEnterprise=i.enterprise})},mounted(){this.update()},methods:{update(){o.get("/openc3-api/secrets").then(i=>{this.secrets=i.data})},upload:function(){this.loadingSecret=!0;let i=null;if(this.file){const e=new FormData;e.append("file",this.file,this.file.name),i=o.post(`/openc3-api/secrets/${this.secretName}`,{data:e,headers:{"Content-Type":"multipart/form-data"}})}else i=o.post(`/openc3-api/secrets/${this.secretName}`,{data:{value:this.secretValue}});i.then(e=>{this.loadingSecret=!1,this.file=null,this.secretName="",this.secretValue="",this.update()}).catch(e=>{this.loadingSecret=!1})},deleteSecret:function(i){this.$dialog.confirm(`Are you sure you want to remove: ${i}`,{okText:"Delete",cancelText:"Cancel"}).then(function(e){return o.delete(`/openc3-api/secrets/${i}`)}).then(e=>{this.alert=`Removed secret ${i}`,this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3),this.update()})}}};function w(i,e,F,j,t,k){const y=n("v-alert"),T=n("v-file-input"),f=n("v-col"),S=n("v-row"),x=n("v-text-field"),E=n("v-icon"),_=n("v-btn"),B=n("v-list-item-title"),U=n("v-list-item"),A=n("v-divider"),D=n("v-list");return u(),d("div",null,[l(y,{modelValue:t.isEnterprise,"onUpdate:modelValue":e[0]||(e[0]=r=>t.isEnterprise=r),class:"ma-4"},{default:s(()=>[...e[6]||(e[6]=[c(" Note: This cannot be used for setting Kubernetes secrets. You must set them in Kubernetes as a ",-1),p("a",{href:"https://kubernetes.io/docs/concepts/configuration/secret/",target:"_blank"}," Secrets object ",-1),c(" instead. ",-1)])]),_:1},8,["modelValue"]),l(S,{"no-gutters":""},{default:s(()=>[l(f,null,{default:s(()=>[l(T,{ref:"fileInput",modelValue:t.file,"onUpdate:modelValue":e[1]||(e[1]=r=>t.file=r),"show-size":"",accept:"*",class:"mx-2",label:"Click to select a file to create a secret from or enter a secret value"},null,8,["modelValue"])]),_:1})]),_:1}),l(S,{"no-gutters":"",align:"center",style:{"padding-left":"10px"}},{default:s(()=>[l(f,{cols:"3"},{default:s(()=>[l(x,{modelValue:t.secretName,"onUpdate:modelValue":e[2]||(e[2]=r=>t.secretName=r),label:"Secret Name",class:"px-2"},null,8,["modelValue"])]),_:1}),l(f,{cols:"3",class:"px-2"},{default:s(()=>[l(x,{modelValue:t.secretValue,"onUpdate:modelValue":e[3]||(e[3]=r=>t.secretValue=r),disabled:t.file,label:"Secret Value"},null,8,["modelValue","disabled"])]),_:1}),l(f,{cols:"3",class:"px-2"},{default:s(()=>[l(_,{class:"mx-2",color:"primary","data-test":"secretUpload",disabled:t.secretName===""||t.file==null&&t.secretValue==="",loading:t.loadingSecret,onClick:e[4]||(e[4]=r=>k.upload())},{loader:s(()=>[...e[8]||(e[8]=[p("span",null,"Loading...",-1)])]),default:s(()=>[l(E,{start:"",theme:"dark"},{default:s(()=>[...e[7]||(e[7]=[c("mdi-cloud-upload",-1)])]),_:1}),e[9]||(e[9]=p("span",null," Set ",-1))]),_:1},8,["disabled","loading"])]),_:1})]),_:1}),l(y,{modelValue:t.showAlert,"onUpdate:modelValue":e[5]||(e[5]=r=>t.showAlert=r),closable:"",type:t.alertType},{default:s(()=>[c(m(t.alert),1)]),_:1},8,["modelValue","type"]),l(D,{"data-test":"secretList"},{default:s(()=>[(u(!0),d(v,null,g(t.secrets,(r,h)=>(u(),d("div",{key:h},[l(U,null,{append:s(()=>[l(_,{icon:"mdi-delete",variant:"text","aria-label":"Delete Secret",onClick:I=>k.deleteSecret(r)},null,8,["onClick"])]),default:s(()=>[l(B,null,{default:s(()=>[c(m(r),1)]),_:2},1024)]),_:2},1024),h<t.secrets.length-1?(u(),N(A,{key:h})):b("",!0)]))),128))]),_:1})])}const L=C("default",V(a,[["render",w]]))})}}));
1
+ System.register(["./main-040488697a5f3eed5115.js","vue","vue-router","pinia","single-spa","vuetify"],(function(C,$){"use strict";var V,o,n,u,d,l,s,c,p,m,v,g,k,N;return{setters:[a=>{V=a.k,o=a.D},a=>{n=a.resolveComponent,u=a.openBlock,d=a.createElementBlock,l=a.createVNode,s=a.withCtx,c=a.createTextVNode,p=a.createElementVNode,m=a.toDisplayString,v=a.Fragment,g=a.renderList,k=a.createBlock,N=a.createCommentVNode},null,null,null,null],execute:(function(){const a={data(){return{file:null,loadingSecret:!1,secrets:[],secretName:"",secretValue:"",alert:"",alertType:"success",showAlert:!1,isEnterprise:!1}},created(){o.get("/openc3-api/info").then(({data:i})=>{this.isEnterprise=i.enterprise})},mounted(){this.update()},methods:{update(){o.get("/openc3-api/secrets").then(i=>{this.secrets=i.data})},upload:function(){this.loadingSecret=!0;let i=null;if(this.file){const e=new FormData;e.append("file",this.file,this.file.name),i=o.post(`/openc3-api/secrets/${this.secretName}`,{data:e,headers:{"Content-Type":"multipart/form-data"}})}else i=o.post(`/openc3-api/secrets/${this.secretName}`,{data:{value:this.secretValue}});i.then(e=>{this.loadingSecret=!1,this.file=null,this.secretName="",this.secretValue="",this.update()}).catch(e=>{this.loadingSecret=!1})},deleteSecret:function(i){this.$dialog.confirm(`Are you sure you want to remove: ${i}`,{okText:"Delete",cancelText:"Cancel"}).then(function(e){return o.delete(`/openc3-api/secrets/${i}`)}).then(e=>{this.alert=`Removed secret ${i}`,this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3),this.update()})}}};function w(i,e,F,j,t,b){const y=n("v-alert"),T=n("v-file-input"),f=n("v-col"),x=n("v-row"),S=n("v-text-field"),D=n("v-icon"),_=n("v-btn"),E=n("v-list-item-title"),B=n("v-list-item"),U=n("v-divider"),A=n("v-list");return u(),d("div",null,[l(y,{modelValue:t.isEnterprise,"onUpdate:modelValue":e[0]||(e[0]=r=>t.isEnterprise=r),class:"ma-4"},{default:s(()=>[...e[6]||(e[6]=[c(" Note: This cannot be used for setting Kubernetes secrets. You must set them in Kubernetes as a ",-1),p("a",{href:"https://kubernetes.io/docs/concepts/configuration/secret/",target:"_blank"}," Secrets object ",-1),c(" instead. ",-1)])]),_:1},8,["modelValue"]),l(x,{"no-gutters":""},{default:s(()=>[l(f,null,{default:s(()=>[l(T,{ref:"fileInput",modelValue:t.file,"onUpdate:modelValue":e[1]||(e[1]=r=>t.file=r),"show-size":"",accept:"*",class:"mx-2",label:"Click to select a file to create a secret from or enter a secret value"},null,8,["modelValue"])]),_:1})]),_:1}),l(x,{"no-gutters":"",align:"center",style:{"padding-left":"10px"}},{default:s(()=>[l(f,{cols:"3"},{default:s(()=>[l(S,{modelValue:t.secretName,"onUpdate:modelValue":e[2]||(e[2]=r=>t.secretName=r),label:"Secret Name",class:"px-2"},null,8,["modelValue"])]),_:1}),l(f,{cols:"3",class:"px-2"},{default:s(()=>[l(S,{modelValue:t.secretValue,"onUpdate:modelValue":e[3]||(e[3]=r=>t.secretValue=r),disabled:t.file,label:"Secret Value"},null,8,["modelValue","disabled"])]),_:1}),l(f,{cols:"3",class:"px-2"},{default:s(()=>[l(_,{class:"mx-2",color:"primary","data-test":"secretUpload",disabled:t.secretName===""||t.file==null&&t.secretValue==="",loading:t.loadingSecret,onClick:e[4]||(e[4]=r=>b.upload())},{loader:s(()=>[...e[8]||(e[8]=[p("span",null,"Loading...",-1)])]),default:s(()=>[l(D,{start:"",theme:"dark"},{default:s(()=>[...e[7]||(e[7]=[c("mdi-cloud-upload",-1)])]),_:1}),e[9]||(e[9]=p("span",null," Set ",-1))]),_:1},8,["disabled","loading"])]),_:1})]),_:1}),l(y,{modelValue:t.showAlert,"onUpdate:modelValue":e[5]||(e[5]=r=>t.showAlert=r),closable:"",type:t.alertType},{default:s(()=>[c(m(t.alert),1)]),_:1},8,["modelValue","type"]),l(A,{"data-test":"secretList"},{default:s(()=>[(u(!0),d(v,null,g(t.secrets,(r,h)=>(u(),d("div",{key:h},[l(B,null,{append:s(()=>[l(_,{icon:"mdi-delete",variant:"text","aria-label":"Delete Secret",onClick:I=>b.deleteSecret(r)},null,8,["onClick"])]),default:s(()=>[l(E,null,{default:s(()=>[c(m(r),1)]),_:2},1024)]),_:2},1024),h<t.secrets.length-1?(u(),k(U,{key:h})):N("",!0)]))),128))]),_:1})])}const L=C("default",V(a,[["render",w]]))})}}));
@@ -0,0 +1,6 @@
1
+ System.register(["./main-040488697a5f3eed5115.js","vue","./settings-BrhbKDEv-791c3f57ac7979ee13b6.js","single-spa","vue-router","pinia","vuetify"],(function(te,$e){"use strict";var k,q,O,a,b,B,l,L,E,V,o,s,C,W,A,F,w,N,T;return{setters:[S=>{k=S.k,q=S.D,O=S.Z},S=>{a=S.resolveComponent,b=S.openBlock,B=S.createElementBlock,l=S.createVNode,L=S.Fragment,E=S.createCommentVNode,V=S.createBlock,o=S.withCtx,s=S.createTextVNode,C=S.toDisplayString,W=S.createSlots,A=S.mergeProps,F=S.withDirectives,w=S.vShow,N=S.renderList},S=>{T=S.n},null,null,null,null],execute:(function(){const S="__default",le={data(){return{suppressedWarnings:[],selectedSuppressedWarnings:[],selectAllSuppressedWarnings:!1}},watch:{selectAllSuppressedWarnings:function(t){t?this.selectedSuppressedWarnings=this.suppressedWarnings.map(e=>e.key):this.selectedSuppressedWarnings=[]}},created(){this.loadSuppressedWarnings()},methods:{loadSuppressedWarnings:function(){this.suppressedWarnings=Object.keys(localStorage).filter(t=>t.startsWith("suppresswarning__")).map(this.localStorageKeyToDisplayObject),this.selectedSuppressedWarnings=[]},localStorageKeyToDisplayObject:function(t){const e=t.split("__")[1].replaceAll("_"," ");return{key:t,text:e.charAt(0).toUpperCase()+e.slice(1),value:localStorage[t]}},resetSuppressedWarnings:function(){this.deleteLocalStorageKeys(this.selectedSuppressedWarnings),this.loadSuppressedWarnings()},deleteLocalStorageKeys:function(t){for(const e of t)delete localStorage[e]}}};function oe(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-card-subtitle"),u=a("v-checkbox"),m=a("v-card-text"),g=a("v-btn"),p=a("v-card-actions"),v=a("v-card");return b(),V(v,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[2]||(e[2]=[s("Reset suppressed warnings",-1)])]),_:1}),l(i,null,{default:o(()=>[...e[3]||(e[3]=[s(` This resets "don't show this again" dialogs on this browser `,-1)])]),_:1}),l(m,null,{default:o(()=>[r.suppressedWarnings.length?(b(),B(L,{key:0},[l(u,{modelValue:r.selectAllSuppressedWarnings,"onUpdate:modelValue":e[0]||(e[0]=n=>r.selectAllSuppressedWarnings=n),label:"Select All Warnings",density:"compact"},null,8,["modelValue"]),(b(!0),B(L,null,N(r.suppressedWarnings,n=>(b(),V(u,{key:n.key,modelValue:r.selectedSuppressedWarnings,"onUpdate:modelValue":e[1]||(e[1]=d=>r.selectedSuppressedWarnings=d),label:n.text,value:n.key,density:"compact","hide-details":""},null,8,["modelValue","label","value"]))),128))],64)):(b(),B(L,{key:1},[s(" No warnings to reset ")],64))]),_:1}),l(p,{class:"px-2"},{default:o(()=>[l(g,{disabled:!r.selectedSuppressedWarnings.length,color:"warning",variant:"text","data-test":"reset-suppressed-warnings",onClick:f.resetSuppressedWarnings},{default:o(()=>[...e[4]||(e[4]=[s(" Reset ",-1)])]),_:1},8,["disabled","onClick"])]),_:1})]),_:1})}const ae=k(le,[["render",oe]]),P="ai_chat",re={mixins:[T],data(){return{aiChatEnabled:!0}},created(){this.loadSetting(P)},methods:{save:function(){this.saveSetting(P,this.aiChatEnabled)},parseSetting:function(t){t!=null&&(this.aiChatEnabled=t)}}};function se(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-alert"),u=a("v-switch"),m=a("v-card-text"),g=a("v-btn"),p=a("v-card-actions"),v=a("v-card");return b(),V(v,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[4]||(e[4]=[s("AI Chat Settings",-1)])]),_:1}),l(i,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=n=>t.errorLoading=n),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(i,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=n=>t.errorSaving=n),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(i,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=n=>t.successSaving=n),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[5]||(e[5]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(m,{class:"pb-0"},{default:o(()=>[l(u,{modelValue:r.aiChatEnabled,"onUpdate:modelValue":e[3]||(e[3]=n=>r.aiChatEnabled=n),label:`Enable the in-app AI Chatbot. When disabled, the AI
2
+ chat button and drawer are hidden for all users.`,color:"primary","data-test":"ai-chat-enabled"},null,8,["modelValue"])]),_:1}),l(p,null,{default:o(()=>[l(g,{color:"success",variant:"text","data-test":"save-ai-chat",onClick:f.save},{default:o(()=>[...e[6]||(e[6]=[s(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const ne=k(re,[["render",se]]),de={data(){return{lastConfigs:[],selectedLastConfigs:[],selectAllLastConfigs:!1}},watch:{selectAllLastConfigs:function(t){t?this.selectedLastConfigs=this.lastConfigs.map(e=>e.key):this.selectedLastConfigs=[]}},created(){this.loadLastConfigs()},methods:{loadLastConfigs:function(){localStorage.getItem(S)&&localStorage.removeItem(S),this.lastConfigs=Object.keys(localStorage).filter(t=>t.endsWith(S)).map(t=>{const e=t.split("__")[0].replaceAll("_"," ");return{key:t,text:e.charAt(0).toUpperCase()+e.slice(1)}}),this.selectedLastConfigs=[]},clearLastConfigs:function(){this.deleteLocalStorageKeys(this.selectedLastConfigs),this.loadLastConfigs()},deleteLocalStorageKeys:function(t){for(const e of t)localStorage.removeItem(e)}}};function ie(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-card-subtitle"),u=a("v-checkbox"),m=a("v-card-text"),g=a("v-btn"),p=a("v-card-actions"),v=a("v-card");return b(),V(v,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[2]||(e[2]=[s(" Clear default configs ",-1)])]),_:1}),l(i,null,{default:o(()=>[...e[3]||(e[3]=[s(" This clears the default tool configs on this browser ",-1)])]),_:1}),l(m,null,{default:o(()=>[r.lastConfigs.length?(b(),B(L,{key:0},[l(u,{modelValue:r.selectAllLastConfigs,"onUpdate:modelValue":e[0]||(e[0]=n=>r.selectAllLastConfigs=n),label:"Select All Configs",density:"compact"},null,8,["modelValue"]),(b(!0),B(L,null,N(r.lastConfigs,n=>(b(),V(u,{key:n.key,modelValue:r.selectedLastConfigs,"onUpdate:modelValue":e[1]||(e[1]=d=>r.selectedLastConfigs=d),label:n.text,value:n.key,"hide-details":"",density:"compact"},null,8,["modelValue","label","value"]))),128))],64)):(b(),B(L,{key:1},[s(" No configs to clear ")],64))]),_:1}),l(p,{class:"px-2"},{default:o(()=>[l(g,{disabled:!r.selectedLastConfigs.length,color:"warning",variant:"text","data-test":"clear-default-configs",onClick:f.clearLastConfigs},{default:o(()=>[...e[4]||(e[4]=[s(" Clear ",-1)])]),_:1},8,["disabled","onClick"])]),_:1})]),_:1})}const ue=k(de,[["render",ie]]),Z="script_runner_locking",ce={mixins:[T],data(){return{vimMode:O.isVimModeEnabled(),scriptLockingEnabled:!0,defaultLanguage:O.getDefaultScriptingLanguage(),languageOptions:[{text:"Ruby",value:"ruby"},{text:"Python",value:"python"}]}},created(){this.loadSetting(Z)},methods:{save:function(){O.setVimMode(this.vimMode),O.setDefaultScriptingLanguage(this.defaultLanguage),this.saveSetting(Z,this.scriptLockingEnabled)},parseSetting:function(t){t!=null&&(this.scriptLockingEnabled=t)}}};function me(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-card-subtitle"),u=a("v-alert"),m=a("v-select"),g=a("v-switch"),p=a("v-card-text"),v=a("v-btn"),n=a("v-card-actions"),d=a("v-card");return b(),V(d,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[6]||(e[6]=[s(" Code Editor Settings ",-1)])]),_:1}),l(i,null,{default:o(()=>[...e[7]||(e[7]=[s(" Settings for the code editors built into COSMOS (e.g. in Script Runner). These settings are saved to your browser's local storage. ",-1)])]),_:1}),l(u,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=_=>t.errorLoading=_),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=_=>t.errorSaving=_),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=_=>t.successSaving=_),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[8]||(e[8]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(p,{class:"pb-0"},{default:o(()=>[l(m,{modelValue:r.defaultLanguage,"onUpdate:modelValue":e[3]||(e[3]=_=>r.defaultLanguage=_),label:"Default scripting language",items:r.languageOptions,"item-title":"text","item-value":"value",color:"primary",class:"mt-4","data-test":"default-language"},null,8,["modelValue","items"]),l(g,{modelValue:r.vimMode,"onUpdate:modelValue":e[4]||(e[4]=_=>r.vimMode=_),label:"Vim mode",color:"primary"},null,8,["modelValue"]),l(g,{modelValue:r.scriptLockingEnabled,"onUpdate:modelValue":e[5]||(e[5]=_=>r.scriptLockingEnabled=_),label:`Script File Locking - When enabled, a script being edited
3
+ by one user is read-only for other users until they explicitly force
4
+ unlock. Disable to allow multiple users to edit the same script
5
+ concurrently (last save wins).`,color:"primary","data-test":"script-locking-enabled"},null,8,["modelValue"])]),_:1}),l(n,null,{default:o(()=>[l(v,{color:"success",variant:"text","data-test":"save-editor-settings",onClick:f.save},{default:o(()=>[...e[9]||(e[9]=[s(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const ge=k(ce,[["render",me]]),j="astro",pe={mixins:[T],data(){return{hideClock:!1}},created(){this.loadSetting(j)},methods:{save(){this.saveSetting(j,JSON.stringify({hideClock:this.hideClock}))},parseSetting:function(t){if(t){let e=JSON.parse(t);this.hideClock=e.hideClock}}}};function fe(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-alert"),u=a("v-switch"),m=a("v-card-text"),g=a("v-btn"),p=a("v-card-actions"),v=a("v-card");return b(),V(v,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[4]||(e[4]=[s("Astro Settings",-1)])]),_:1}),l(i,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=n=>t.errorLoading=n),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(i,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=n=>t.errorSaving=n),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(i,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=n=>t.successSaving=n),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[5]||(e[5]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(m,{class:"pb-0"},{default:o(()=>[l(u,{modelValue:r.hideClock,"onUpdate:modelValue":e[3]||(e[3]=n=>r.hideClock=n),label:"Hide Astro Clock",color:"primary"},null,8,["modelValue"])]),_:1}),l(p,null,{default:o(()=>[l(g,{color:"success",variant:"text","data-test":"save-astro-settings",onClick:f.save},{default:o(()=>[...e[6]||(e[6]=[s(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const ve=k(pe,[["render",fe]]),I="theme",he={mixins:[T],data(){return{selectedTheme:"cosmosDark",themeOptions:[{label:"Astro (Default)",value:"cosmosDark"},{label:"Dark Cobalt",value:"cosmosDarkCobalt"},{label:"Dark Indigo",value:"cosmosDarkIndigo"},{label:"Dark Slate",value:"cosmosDarkSlate"},{label:"Dark Emerald",value:"cosmosDarkEmerald"}]}},created(){this.loadSetting(I)},methods:{save(){this.saveSetting(I,this.selectedTheme)},parseSetting(t){t&&(this.selectedTheme=t)}}};function be(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-alert"),u=a("v-select"),m=a("v-card-text"),g=a("v-btn"),p=a("v-card-actions"),v=a("v-card");return b(),V(v,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[4]||(e[4]=[s("Theme",-1)])]),_:1}),l(i,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=n=>t.errorLoading=n),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(i,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=n=>t.errorSaving=n),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(i,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=n=>t.successSaving=n),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[5]||(e[5]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(m,{class:"pt-4 pb-0"},{default:o(()=>[l(u,{modelValue:r.selectedTheme,"onUpdate:modelValue":e[3]||(e[3]=n=>r.selectedTheme=n),label:"Theme",items:r.themeOptions,"item-title":"label","item-value":"value","data-test":"theme-select"},null,8,["modelValue","items"])]),_:1}),l(p,null,{default:o(()=>[l(g,{color:"success",variant:"text","data-test":"save-theme-settings",onClick:f.save},{default:o(()=>[...e[6]||(e[6]=[s(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const Ce=k(he,[["render",be]]),K="classification_banner",Se={mixins:[T],data(){return{text:"",displayTopBanner:!1,displayBottomBanner:!1,topHeight:0,bottomHeight:0,selectedBackgroundColor:"red",customBackgroundColor:"",selectedFontColor:"white",customFontColor:"",customColorHint:"Enter a 3 or 6-digit hex color code",colors:[{text:"Yellow",value:"yellow"},{text:"Orange",value:"orange"},{text:"Red",value:"red"},{text:"Purple",value:"purple"},{text:"Blue",value:"blue"},{text:"Green",value:"green"},{text:"Black",value:"black"},{text:"White",value:"white"},{text:"Custom",value:!1}],rules:{customColor:t=>/^#(?:[0-9a-fA-F]{3}){1,2}$/.test(t)||this.customColorHint}}},computed:{saveObj:function(){return JSON.stringify({text:this.text,fontColor:this.selectedFontColor||this.customFontColor,backgroundColor:this.selectedBackgroundColor||this.customBackgroundColor,topHeight:this.displayTopBanner?this.topHeight:0,bottomHeight:this.displayBottomBanner?this.bottomHeight:0})},formValid:function(){return(this.selectedFontColor||this.rules.customColor(this.customFontColor)===!0)&&(this.selectedBackgroundColor||this.rules.customColor(this.customBackgroundColor)===!0)}},watch:{displayTopBanner:function(t){t?this.topHeight=20:this.topHeight=0},displayBottomBanner:function(t){t?this.bottomHeight=20:this.bottomHeight=0},customFontColor:function(t){t&&t.length&&!t.startsWith("#")&&(this.customFontColor=`#${t}`)},customBackgroundColor:function(t){t&&t.length&&!t.startsWith("#")&&(this.customBackgroundColor=`#${t}`)}},created(){this.loadSetting(K)},methods:{save(){this.saveSetting(K,this.saveObj)},parseSetting:function(t){if(t){const e=JSON.parse(t);this.text=e.text,this.topHeight=e.topHeight,this.bottomHeight=e.bottomHeight,this.displayTopBanner=e.topHeight!==0,this.displayBottomBanner=e.bottomHeight!==0,e.backgroundColor&&e.backgroundColor.startsWith("#")?(this.customBackgroundColor=e.backgroundColor,this.selectedBackgroundColor=!1):this.selectedBackgroundColor=e.backgroundColor,e.fontColor&&e.fontColor.startsWith("#")?(this.customFontColor=e.fontColor,this.selectedFontColor=!1):this.selectedFontColor=e.fontColor}}}};function Ve(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-alert"),u=a("v-text-field"),m=a("v-col"),g=a("v-row"),p=a("v-icon"),v=a("v-list-item"),n=a("v-select"),d=a("v-switch"),_=a("v-number-input"),R=a("v-card-text"),H=a("v-btn"),D=a("v-card-actions"),M=a("v-card");return b(),V(M,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[12]||(e[12]=[s("Classification Banner Settings",-1)])]),_:1}),l(i,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=c=>t.errorLoading=c),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(i,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=c=>t.errorSaving=c),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(i,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=c=>t.successSaving=c),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[13]||(e[13]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(R,{class:"pb-0"},{default:o(()=>[l(g,{dense:""},{default:o(()=>[l(m,null,{default:o(()=>[l(u,{modelValue:r.text,"onUpdate:modelValue":e[3]||(e[3]=c=>r.text=c),label:"Text","data-test":"classification-banner-text"},null,8,["modelValue"])]),_:1})]),_:1}),l(g,{dense:""},{default:o(()=>[l(m,null,{default:o(()=>[l(n,{modelValue:r.selectedBackgroundColor,"onUpdate:modelValue":e[4]||(e[4]=c=>r.selectedBackgroundColor=c),label:"Background color",items:r.colors,"item-title":"text","data-test":"classification-banner-background-color"},W({item:o(({props:c,item:x})=>[l(v,A(c,{value:x.text}),{prepend:o(()=>[x.value?(b(),V(p,{key:0,color:x.value},{default:o(()=>[...e[15]||(e[15]=[s(" mdi-square ",-1)])]),_:1},8,["color"])):E("",!0)]),_:2},1040,["value"])]),_:2},[r.selectedBackgroundColor?{name:"prepend-inner",fn:o(()=>[l(p,{color:r.selectedBackgroundColor},{default:o(()=>[...e[14]||(e[14]=[s(" mdi-square ",-1)])]),_:1},8,["color"])]),key:"0"}:void 0]),1032,["modelValue","items"])]),_:1}),l(m,null,{default:o(()=>[l(u,{modelValue:r.customBackgroundColor,"onUpdate:modelValue":e[5]||(e[5]=c=>r.customBackgroundColor=c),label:"Custom background color",hint:r.customColorHint,disabled:r.selectedBackgroundColor!==!1,rules:[r.rules.customColor],"data-test":"classification-banner-custom-background-color"},{"prepend-inner":o(()=>[F(l(p,{color:r.customBackgroundColor},{default:o(()=>[...e[16]||(e[16]=[s(" mdi-square ",-1)])]),_:1},8,["color"]),[[w,!r.selectedBackgroundColor]])]),_:1},8,["modelValue","hint","disabled","rules"])]),_:1}),l(m,null,{default:o(()=>[l(n,{modelValue:r.selectedFontColor,"onUpdate:modelValue":e[6]||(e[6]=c=>r.selectedFontColor=c),label:"Font color",items:r.colors,"item-title":"text","data-test":"classification-banner-font-color"},W({item:o(({props:c,item:x})=>[l(v,A(c,{value:x.text}),{prepend:o(()=>[x.value?(b(),V(p,{key:0,color:x.value},{default:o(()=>[...e[18]||(e[18]=[s(" mdi-square ",-1)])]),_:1},8,["color"])):E("",!0)]),_:2},1040,["value"])]),_:2},[r.selectedFontColor?{name:"prepend-inner",fn:o(()=>[F(l(p,{color:r.selectedFontColor},{default:o(()=>[...e[17]||(e[17]=[s(" mdi-square ",-1)])]),_:1},8,["color"]),[[w,r.selectedFontColor]])]),key:"0"}:void 0]),1032,["modelValue","items"])]),_:1}),l(m,null,{default:o(()=>[l(u,{modelValue:r.customFontColor,"onUpdate:modelValue":e[7]||(e[7]=c=>r.customFontColor=c),label:"Custom font color",hint:r.customColorHint,disabled:r.selectedFontColor!==!1,rules:[r.rules.customColor],"data-test":"classification-banner-custom-font-color"},{"prepend-inner":o(()=>[F(l(p,{color:r.customFontColor},{default:o(()=>[...e[19]||(e[19]=[s(" mdi-square ",-1)])]),_:1},8,["color"]),[[w,!r.selectedFontColor]])]),_:1},8,["modelValue","hint","disabled","rules"])]),_:1})]),_:1}),l(g,{dense:""},{default:o(()=>[l(m,null,{default:o(()=>[l(d,{modelValue:r.displayTopBanner,"onUpdate:modelValue":e[8]||(e[8]=c=>r.displayTopBanner=c),label:"Display top banner",color:"primary","data-test":"display-top-banner"},null,8,["modelValue"])]),_:1}),l(m,null,{default:o(()=>[l(_,{modelValue:r.topHeight,"onUpdate:modelValue":e[9]||(e[9]=c=>r.topHeight=c),"control-variant":"stacked",label:"Top height",disabled:!r.displayTopBanner,suffix:"px","data-test":"classification-banner-top-height"},null,8,["modelValue","disabled"])]),_:1}),l(m,null,{default:o(()=>[l(d,{modelValue:r.displayBottomBanner,"onUpdate:modelValue":e[10]||(e[10]=c=>r.displayBottomBanner=c),label:"Display bottom banner",color:"primary","data-test":"display-bottom-banner"},null,8,["modelValue"])]),_:1}),l(m,null,{default:o(()=>[l(_,{modelValue:r.bottomHeight,"onUpdate:modelValue":e[11]||(e[11]=c=>r.bottomHeight=c),"control-variant":"stacked",label:"Bottom height",disabled:!r.displayBottomBanner,suffix:"px","data-test":"classification-banner-bottom-height"},null,8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),l(D,null,{default:o(()=>[l(H,{disabled:!f.formValid,color:"success",variant:"text","data-test":"save-classification-banner",onClick:f.save},{default:o(()=>[...e[20]||(e[20]=[s(" Save ",-1)])]),_:1},8,["disabled","onClick"])]),_:1})]),_:1})}const ye=k(Se,[["render",Ve]]),z="time_zone",_e={mixins:[T],data(){return{timeZones:["local","UTC"],timeZone:"local"}},created(){this.loadSetting(z)},methods:{save(){this.saveSetting(z,this.timeZone)},parseSetting:function(t){t&&(this.timeZone=t)}}};function ke(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-card-subtitle"),u=a("v-alert"),m=a("v-select"),g=a("v-card-text"),p=a("v-btn"),v=a("v-card-actions"),n=a("v-card");return b(),V(n,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[4]||(e[4]=[s("Time Zone",-1)])]),_:1}),l(i,null,{default:o(()=>[...e[5]||(e[5]=[s(" The time zone to use in all COSMOS tools (graphs, time choosers, log messages, etc). Anywhere a date / time is displayed, it will be in the chosen time zone. (Note: All timestamps are UTC in the backend). ",-1)])]),_:1}),l(u,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=d=>t.errorLoading=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=d=>t.errorSaving=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=d=>t.successSaving=d),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[6]||(e[6]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(g,null,{default:o(()=>[l(m,{modelValue:r.timeZone,"onUpdate:modelValue":e[3]||(e[3]=d=>r.timeZone=d),items:r.timeZones,label:"Select time display","hide-details":"","prepend-icon":"mdi-map-clock","single-line":"","data-test":"time-zone"},null,8,["modelValue","items"])]),_:1}),l(v,null,{default:o(()=>[l(p,{color:"success",variant:"text","data-test":"save-time-zone",onClick:f.save},{default:o(()=>[...e[7]||(e[7]=[s(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const xe=k(_e,[["render",ke]]),J="time_format",Ue={mixins:[T],data(){return{timeFormats:[{title:"12-hour (AM/PM)",value:"ampm"},{title:"24-hour",value:"24hr"}],timeFormat:"ampm"}},created(){this.loadSetting(J)},methods:{save(){this.saveSetting(J,this.timeFormat)},parseSetting:function(t){t&&(this.timeFormat=t)}}};function Te(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-card-subtitle"),u=a("v-alert"),m=a("v-select"),g=a("v-card-text"),p=a("v-btn"),v=a("v-card-actions"),n=a("v-card");return b(),V(n,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[4]||(e[4]=[s("Time Format",-1)])]),_:1}),l(i,null,{default:o(()=>[...e[5]||(e[5]=[s(" The time format to use in all COSMOS tools (time pickers, etc). This setting controls whether time is displayed in 12-hour (AM/PM) or 24-hour format. ",-1)])]),_:1}),l(u,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=d=>t.errorLoading=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=d=>t.errorSaving=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=d=>t.successSaving=d),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[6]||(e[6]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(g,null,{default:o(()=>[l(m,{modelValue:r.timeFormat,"onUpdate:modelValue":e[3]||(e[3]=d=>r.timeFormat=d),items:r.timeFormats,label:"Select time format","hide-details":"","prepend-icon":"mdi-clock-outline","single-line":"","data-test":"time-format"},null,8,["modelValue","items"])]),_:1}),l(v,null,{default:o(()=>[l(p,{color:"success",variant:"text","data-test":"save-time-format",onClick:f.save},{default:o(()=>[...e[7]||(e[7]=[s(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const Be=k(Ue,[["render",Te]]),$="news_feed",Le={mixins:[T],data(){return{newsFeed:!0}},created(){this.loadSetting($)},methods:{save(){this.saveSetting($,this.newsFeed),this.newsFeed&&this.api.update_news()},parseSetting:function(t){this.newsFeed=t}}};function Fe(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-alert"),u=a("v-switch"),m=a("v-card-text"),g=a("v-btn"),p=a("v-card-actions"),v=a("v-card");return b(),V(v,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[4]||(e[4]=[s("News Feed Settings",-1)])]),_:1}),l(i,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=n=>t.errorLoading=n),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(i,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=n=>t.errorSaving=n),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(i,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=n=>t.successSaving=n),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[5]||(e[5]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(m,{class:"pb-0"},{default:o(()=>[l(u,{modelValue:r.newsFeed,"onUpdate:modelValue":e[3]||(e[3]=n=>r.newsFeed=n),label:`Allow COSMOS backend to pull the news feed from the COSMOS external news site.
6
+ This is a low bandwidth poll which only happens every 12 hrs. To immediately update the news feed, click the 'Refresh' in the User Menu.`,color:"primary"},null,8,["modelValue"])]),_:1}),l(p,null,{default:o(()=>[l(g,{color:"success",variant:"text","data-test":"save-news-feed",onClick:f.save},{default:o(()=>[...e[6]||(e[6]=[s(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const we=k(Le,[["render",Fe]]),G="subtitle",Ee={mixins:[T],data(){return{subtitle:""}},created(){this.loadSetting(G)},methods:{save(){this.saveSetting(G,this.subtitle)},parseSetting:function(t){t&&(this.subtitle=t)}}};function Oe(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-card-subtitle"),u=a("v-alert"),m=a("v-text-field"),g=a("v-card-text"),p=a("v-btn"),v=a("v-card-actions"),n=a("v-card");return b(),V(n,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[4]||(e[4]=[s("Subtitle",-1)])]),_:1}),l(i,null,{default:o(()=>[...e[5]||(e[5]=[s(" This sets a subtitle to display below the COSMOS logo in the Navigation bar. ",-1)])]),_:1}),l(u,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=d=>t.errorLoading=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=d=>t.errorSaving=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=d=>t.successSaving=d),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[6]||(e[6]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(g,{class:"pb-0"},{default:o(()=>[l(m,{modelValue:r.subtitle,"onUpdate:modelValue":e[3]||(e[3]=d=>r.subtitle=d),label:"Subtitle","data-test":"subtitle"},null,8,["modelValue"])]),_:1}),l(v,null,{default:o(()=>[l(p,{color:"success",variant:"text","data-test":"save-subtitle",onClick:f.save},{default:o(()=>[...e[7]||(e[7]=[s(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const We=k(Ee,[["render",Oe]]),Y="source_url",Ae={mixins:[T],data(){return{sourceUrl:"https://github.com/OpenC3/cosmos"}},created(){this.loadSetting(Y)},methods:{save(){this.saveSetting(Y,this.sourceUrl)},parseSetting:function(t){t&&(this.sourceUrl=t)}}};function Re(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-card-subtitle"),u=a("v-alert"),m=a("v-text-field"),g=a("v-card-text"),p=a("v-btn"),v=a("v-card-actions"),n=a("v-card");return b(),V(n,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[4]||(e[4]=[s(" Source code URL ",-1)])]),_:1}),l(i,null,{default:o(()=>[...e[5]||(e[5]=[s(' This sets the URL for the "Source" link in the footer. ',-1)])]),_:1}),l(u,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=d=>t.errorLoading=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=d=>t.errorSaving=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=d=>t.successSaving=d),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[6]||(e[6]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(g,{class:"pb-0"},{default:o(()=>[l(m,{modelValue:r.sourceUrl,"onUpdate:modelValue":e[3]||(e[3]=d=>r.sourceUrl=d),label:"Source URL","data-test":"source-url"},null,8,["modelValue"])]),_:1}),l(v,null,{default:o(()=>[l(p,{color:"success",variant:"text","data-test":"save-source-url",onClick:f.save},{default:o(()=>[...e[7]||(e[7]=[s(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const He=k(Ae,[["render",Re]]),Q="rubygems_url",De={mixins:[T],data(){return{rubygemsUrl:"https://rubygems.org"}},created(){this.loadSetting(Q)},methods:{save(){this.saveSetting(Q,this.rubygemsUrl)},parseSetting:function(t){t&&(this.rubygemsUrl=t)}}};function Me(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-card-subtitle"),u=a("v-alert"),m=a("v-text-field"),g=a("v-card-text"),p=a("v-btn"),v=a("v-card-actions"),n=a("v-card");return b(),V(n,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[4]||(e[4]=[s(" Rubygems URL ",-1)])]),_:1}),l(i,null,{default:o(()=>[...e[5]||(e[5]=[s(" This sets the URL for installing dependency rubygems. Also used for rubygem discovery. ",-1)])]),_:1}),l(u,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=d=>t.errorLoading=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=d=>t.errorSaving=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=d=>t.successSaving=d),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[6]||(e[6]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(g,{class:"pb-0"},{default:o(()=>[l(m,{modelValue:r.rubygemsUrl,"onUpdate:modelValue":e[3]||(e[3]=d=>r.rubygemsUrl=d),label:"Rubygems URL","data-test":"rubygems-url"},null,8,["modelValue"])]),_:1}),l(v,null,{default:o(()=>[l(p,{color:"success",variant:"text","data-test":"save-rubygems-url",onClick:f.save},{default:o(()=>[...e[7]||(e[7]=[s(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const Ne=k(De,[["render",Me]]),X="pypi_url",qe={mixins:[T],data(){return{pypiUrl:"https://pypi.org"}},created(){this.loadSetting(X)},methods:{save(){this.saveSetting(X,this.pypiUrl)},parseSetting:function(t){t&&(this.pypiUrl=t)}}};function Pe(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-card-subtitle"),u=a("v-alert"),m=a("v-text-field"),g=a("v-card-text"),p=a("v-btn"),v=a("v-card-actions"),n=a("v-card");return b(),V(n,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[4]||(e[4]=[s(" Pypi URL ",-1)])]),_:1}),l(i,null,{default:o(()=>[...e[5]||(e[5]=[s(" This sets the URL for installing dependency python packages. Also used for package discovery. ",-1)])]),_:1}),l(u,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=d=>t.errorLoading=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=d=>t.errorSaving=d),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=d=>t.successSaving=d),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[6]||(e[6]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(g,{class:"pb-0"},{default:o(()=>[l(m,{modelValue:r.pypiUrl,"onUpdate:modelValue":e[3]||(e[3]=d=>r.pypiUrl=d),label:"Pypi URL","data-test":"pypi-url"},null,8,["modelValue"])]),_:1}),l(v,null,{default:o(()=>[l(p,{color:"success",variant:"text","data-test":"save-pypi-url",onClick:f.save},{default:o(()=>[...e[7]||(e[7]=[s(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const Ze=k(qe,[["render",Pe]]),ee="context_tag",je={mixins:[T],data(){return{text:"",displayContextTag:!1,selectedBackgroundColor:"#009fa3",customBackgroundColor:"",selectedFontColor:"white",customFontColor:"",customColorHint:"Enter a 3 or 6-digit hex color code",colors:[{text:"Teal",value:"#009fa3"},{text:"Purple",value:"#6058a8"},{text:"Pink",value:"#81009a"},{text:"Orange",value:"#af420a"},{text:"Black",value:"black"},{text:"White",value:"white"},{text:"Custom",value:!1}],rules:{customColor:t=>/^#(?:[0-9a-fA-F]{3}){1,2}$/.test(t)||this.customColorHint}}},computed:{saveObj:function(){return JSON.stringify({text:this.text,fontColor:this.selectedFontColor||this.customFontColor,backgroundColor:this.selectedBackgroundColor||this.customBackgroundColor})},formValid:function(){return(this.selectedFontColor||this.rules.customColor(this.customFontColor)===!0)&&(this.selectedBackgroundColor||this.rules.customColor(this.customBackgroundColor)===!0)}},watch:{displayContextTag:function(t){t?this.text||(this.text="REPLACEME"):this.text=null},customFontColor:function(t){t&&t.length&&!t.startsWith("#")&&(this.customFontColor=`#${t}`)},customBackgroundColor:function(t){t&&t.length&&!t.startsWith("#")&&(this.customBackgroundColor=`#${t}`)}},created(){this.loadSetting(ee)},methods:{save(){this.saveSetting(ee,this.saveObj)},parseSetting:function(t){if(t){const e=JSON.parse(t);this.text=e.text,this.displayContextTag=!!e.text,e.backgroundColor&&(this.colors.some(y=>y.value===e.backgroundColor)?this.selectedBackgroundColor=e.backgroundColor:(this.customBackgroundColor=e.backgroundColor,this.selectedBackgroundColor=!1)),e.fontColor&&(this.colors.some(y=>y.value===e.fontColor)?this.selectedFontColor=e.fontColor:(this.customFontColor=e.fontColor,this.selectedFontColor=!1))}}}};function Ie(t,e,y,U,r,f){const h=a("v-card-title"),i=a("v-card-subtitle"),u=a("v-alert"),m=a("v-text-field"),g=a("v-col"),p=a("v-row"),v=a("v-switch"),n=a("v-icon"),d=a("v-list-item"),_=a("v-select"),R=a("v-card-text"),H=a("v-btn"),D=a("v-card-actions"),M=a("v-card");return b(),V(M,null,{default:o(()=>[l(h,null,{default:o(()=>[...e[9]||(e[9]=[s("Context Tag Settings",-1)])]),_:1}),l(i,null,{default:o(()=>[...e[10]||(e[10]=[s(" When enabled this displays a Context Tag on the top right of the screen with custom colors and text. This can help differentiate environments. ",-1)])]),_:1}),l(u,{modelValue:t.errorLoading,"onUpdate:modelValue":e[0]||(e[0]=c=>t.errorLoading=c),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error loading previous configuration due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.errorSaving,"onUpdate:modelValue":e[1]||(e[1]=c=>t.errorSaving=c),type:"error",closable:"",density:"compact"},{default:o(()=>[s(" Error saving due to "+C(t.errorText),1)]),_:1},8,["modelValue"]),l(u,{modelValue:t.successSaving,"onUpdate:modelValue":e[2]||(e[2]=c=>t.successSaving=c),type:"success",closable:"",density:"compact"},{default:o(()=>[...e[11]||(e[11]=[s(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),l(R,{class:"pb-0"},{default:o(()=>[l(p,{dense:""},{default:o(()=>[l(g,null,{default:o(()=>[l(m,{modelValue:r.text,"onUpdate:modelValue":e[3]||(e[3]=c=>r.text=c),label:"Text","data-test":"context-tag-text",disabled:!r.displayContextTag},null,8,["modelValue","disabled"])]),_:1})]),_:1}),l(p,{dense:""},{default:o(()=>[l(g,null,{default:o(()=>[l(v,{modelValue:r.displayContextTag,"onUpdate:modelValue":e[4]||(e[4]=c=>r.displayContextTag=c),label:"Display context tag",color:"primary","data-test":"display-context-tag"},null,8,["modelValue"])]),_:1}),l(g,null,{default:o(()=>[l(_,{modelValue:r.selectedBackgroundColor,"onUpdate:modelValue":e[5]||(e[5]=c=>r.selectedBackgroundColor=c),label:"Background color",items:r.colors,"item-title":"text","data-test":"context-tag-background-color"},W({item:o(({props:c,item:x})=>[l(d,A(c,{value:x.text}),{prepend:o(()=>[x.value?(b(),V(n,{key:0,color:x.value},{default:o(()=>[...e[13]||(e[13]=[s(" mdi-square ",-1)])]),_:1},8,["color"])):E("",!0)]),_:2},1040,["value"])]),_:2},[r.selectedBackgroundColor?{name:"prepend-inner",fn:o(()=>[l(n,{color:r.selectedBackgroundColor},{default:o(()=>[...e[12]||(e[12]=[s(" mdi-square ",-1)])]),_:1},8,["color"])]),key:"0"}:void 0]),1032,["modelValue","items"])]),_:1}),l(g,null,{default:o(()=>[l(m,{modelValue:r.customBackgroundColor,"onUpdate:modelValue":e[6]||(e[6]=c=>r.customBackgroundColor=c),label:"Custom background color",hint:r.customColorHint,disabled:r.selectedBackgroundColor!==!1,rules:[r.rules.customColor],"data-test":"context-tag-custom-background-color"},{"prepend-inner":o(()=>[F(l(n,{color:r.customBackgroundColor},{default:o(()=>[...e[14]||(e[14]=[s(" mdi-square ",-1)])]),_:1},8,["color"]),[[w,!r.selectedBackgroundColor]])]),_:1},8,["modelValue","hint","disabled","rules"])]),_:1}),l(g,null,{default:o(()=>[l(_,{modelValue:r.selectedFontColor,"onUpdate:modelValue":e[7]||(e[7]=c=>r.selectedFontColor=c),label:"Font color",items:r.colors,"item-title":"text","data-test":"context-tag-font-color"},W({item:o(({props:c,item:x})=>[l(d,A(c,{value:x.text}),{prepend:o(()=>[x.value?(b(),V(n,{key:0,color:x.value},{default:o(()=>[...e[16]||(e[16]=[s(" mdi-square ",-1)])]),_:1},8,["color"])):E("",!0)]),_:2},1040,["value"])]),_:2},[r.selectedFontColor?{name:"prepend-inner",fn:o(()=>[F(l(n,{color:r.selectedFontColor},{default:o(()=>[...e[15]||(e[15]=[s(" mdi-square ",-1)])]),_:1},8,["color"]),[[w,r.selectedFontColor]])]),key:"0"}:void 0]),1032,["modelValue","items"])]),_:1}),l(g,null,{default:o(()=>[l(m,{modelValue:r.customFontColor,"onUpdate:modelValue":e[8]||(e[8]=c=>r.customFontColor=c),label:"Custom font color",hint:r.customColorHint,disabled:r.selectedFontColor!==!1,rules:[r.rules.customColor],"data-test":"context-tag-custom-font-color"},{"prepend-inner":o(()=>[F(l(n,{color:r.customFontColor},{default:o(()=>[...e[17]||(e[17]=[s(" mdi-square ",-1)])]),_:1},8,["color"]),[[w,!r.selectedFontColor]])]),_:1},8,["modelValue","hint","disabled","rules"])]),_:1})]),_:1})]),_:1}),l(D,null,{default:o(()=>[l(H,{disabled:!f.formValid,color:"success",variant:"text","data-test":"save-context-tag",onClick:f.save},{default:o(()=>[...e[18]||(e[18]=[s(" Save ",-1)])]),_:1},8,["disabled","onClick"])]),_:1})]),_:1})}const Ke=k(je,[["render",Ie]]),ze={components:{SuppressedSettings:ae,AiChatSettings:ne,DefaultConfigSettings:ue,EditorSettings:ge,AstroSettings:ve,ThemeSettings:Ce,ClassificationBannerSettings:ye,TimeZoneSettings:xe,TimeFormatSettings:Be,NewsFeedSettings:we,SubtitleSettings:We,SourceCodeSettings:He,RubyGemsSettings:Ne,PypiSettings:Ze,ContextTagSettings:Ke},data(){return{isEnterprise:!1}},created(){q.get("/openc3-api/info").then(({data:t})=>{this.isEnterprise=t.enterprise})}};function Je(t,e,y,U,r,f){const h=a("suppressed-settings"),i=a("v-divider"),u=a("default-config-settings"),m=a("editor-settings"),g=a("astro-settings"),p=a("theme-settings"),v=a("time-zone-settings"),n=a("time-format-settings"),d=a("news-feed-settings"),_=a("classification-banner-settings"),R=a("subtitle-settings"),H=a("source-code-settings"),D=a("ruby-gems-settings"),M=a("pypi-settings"),c=a("context-tag-settings"),x=a("ai-chat-settings");return b(),B("div",null,[l(h),l(i),l(u),l(i),l(m),l(i),l(g),l(i),l(p),l(i),l(v),l(i),l(n),l(i),l(d),l(i),l(_),l(i),l(R),l(i),l(H),l(i),l(D),l(i),l(M),l(i),l(c),r.isEnterprise?(b(),B(L,{key:0},[l(i),l(x)],64)):E("",!0)])}const Ge=te("default",k(ze,[["render",Je]]))})}}));
@@ -1 +1 @@
1
- System.register(["./VWidget-BgNciXK1-6f5fa1e1cbd09779ddb3.js","vue","./main-05290d67af0d2bba595e.js","./Widget-BiaunQ83-f5d5cb8cc1b25880c13e.js","./LimitsColor-CBcpB-la-3bd861951380f642016e.js","vue-router","pinia","single-spa","vuetify"],(function(o,p){"use strict";var r,l,n,a,i,s;return{setters:[t=>{r=t.T},t=>{l=t.resolveComponent,n=t.openBlock,a=t.createBlock,i=t.normalizeStyle},t=>{s=t.d},null,null,null,null,null,null],execute:(function(){const t={mixins:[r],props:{value:{type:[Number,String],default:null}},emits:["open"],data:function(){return{item:null,oneBar:30,twoBar:60,threeBar:90}},computed:{displayedIcon:function(){let e="mdi-signal-cellular-outline";return this._value>=this.oneBar&&(e="mdi-signal-cellular-1"),this._value>=this.twoBar&&(e="mdi-signal-cellular-2"),this._value>=this.threeBar&&(e="mdi-signal-cellular-3"),e}},created(){this.appliedSettings.forEach(e=>{switch(e[0].toUpperCase()){case"SCREEN":this.screenTarget=e[1],this.screenName=e[2];break;case"VALUES":this.oneBar=Number.parseFloat(e[1]),this.twoBar=Number.parseFloat(e[2]),this.threeBar=Number.parseFloat(e[3]);break}})},methods:{getType(){let e="CONVERTED";return this.parameters[3]=="RAW"&&(e="RAW"),e},clickHandler(){this.screenTarget&&this.screenName&&this.$emit("open",this.screenTarget,this.screenName)}}};function u(e,d,g,B,v,c){const h=l("v-btn");return n(),a(h,{icon:c.displayedIcon,variant:"text",style:i(e.computedStyle),"aria-label":"Signal Strength",onClick:c.clickHandler},null,8,["icon","style","onClick"])}const m=o("default",s(t,[["render",u]]))})}}));
1
+ System.register(["./VWidget-5qOYva88-4db083a6475508bbf7ce.js","vue","./main-040488697a5f3eed5115.js","./Widget-CtYQauzA-ae8839a2e4146c799aec.js","./LimitsColor-CBcpB-la-3bd861951380f642016e.js","vue-router","pinia","single-spa","vuetify"],(function(c,p){"use strict";var r,l,n,a,i,s;return{setters:[t=>{r=t.T},t=>{l=t.resolveComponent,n=t.openBlock,a=t.createBlock,i=t.normalizeStyle},t=>{s=t.k},null,null,null,null,null,null],execute:(function(){const t={mixins:[r],props:{value:{type:[Number,String],default:null}},emits:["open"],data:function(){return{item:null,oneBar:30,twoBar:60,threeBar:90}},computed:{displayedIcon:function(){let e="mdi-signal-cellular-outline";return this._value>=this.oneBar&&(e="mdi-signal-cellular-1"),this._value>=this.twoBar&&(e="mdi-signal-cellular-2"),this._value>=this.threeBar&&(e="mdi-signal-cellular-3"),e}},created(){this.appliedSettings.forEach(e=>{switch(e[0].toUpperCase()){case"SCREEN":this.screenTarget=e[1],this.screenName=e[2];break;case"VALUES":this.oneBar=Number.parseFloat(e[1]),this.twoBar=Number.parseFloat(e[2]),this.threeBar=Number.parseFloat(e[3]);break}})},methods:{getType(){let e="CONVERTED";return this.parameters[3]=="RAW"&&(e="RAW"),e},clickHandler(){this.screenTarget&&this.screenName&&this.$emit("open",this.screenTarget,this.screenName)}}};function u(e,d,g,B,v,o){const h=l("v-btn");return n(),a(h,{icon:o.displayedIcon,variant:"text",style:i(e.computedStyle),"aria-label":"Signal Strength",onClick:o.clickHandler},null,8,["icon","style","onClick"])}const m=c("default",s(t,[["render",u]]))})}}));
@@ -1 +1 @@
1
- System.register(["vue","./main-05290d67af0d2bba595e.js"],(function(x,N){"use strict";var l,u,p,o,e,n,s,h,m;return{setters:[t=>{l=t.resolveComponent,u=t.openBlock,p=t.createBlock,o=t.withCtx,e=t.createVNode,n=t.createElementVNode,s=t.toDisplayString,h=t.createTextVNode},t=>{m=t.d}],execute:(function(){const t={props:{modelValue:Boolean,text:{type:String,default:null},title:{type:String,default:null},width:{type:Number,default:800}},emits:["update:modelValue"],computed:{show:{get(){return this.modelValue},set(i){this.$emit("update:modelValue",i)}}},methods:{download:function(){const i=new Blob([this.text],{type:"text/plain"}),a=document.createElement("a");a.href=URL.createObjectURL(i),a.setAttribute("download",`${this.title}.txt`),a.click()}}},f={class:"mx-2"},V={class:"pa-3"},g={class:"text"};function k(i,a,c,E,D,d){const r=l("v-spacer"),v=l("v-btn"),y=l("v-toolbar"),b=l("v-card-text"),C=l("v-card-actions"),_=l("v-card"),B=l("v-dialog");return u(),p(B,{modelValue:d.show,"onUpdate:modelValue":a[1]||(a[1]=w=>d.show=w),width:c.width,scrollable:""},{default:o(()=>[e(_,null,{default:o(()=>[e(y,{height:"24"},{default:o(()=>[e(r),n("span",null,s(c.title),1),e(r),n("div",f,[e(v,{icon:"mdi-download",variant:"text",density:"compact","data-test":"downloadIcon","aria-label":"Download Content",onClick:d.download},null,8,["onClick"])])]),_:1}),e(b,{style:{"max-height":"80vh"}},{default:o(()=>[n("div",V,[n("span",g,s(c.text),1)])]),_:1}),e(C,{class:"px-2"},{default:o(()=>[e(r),e(v,{variant:"flat",onClick:a[0]||(a[0]=w=>d.show=!d.show)},{default:o(()=>[...a[2]||(a[2]=[h(" Ok ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","width"])}const S=x("E",m(t,[["render",k],["__scopeId","data-v-1a0bca65"]]))})}}));
1
+ System.register(["vue","./main-040488697a5f3eed5115.js"],(function(x,N){"use strict";var l,u,p,o,e,n,s,h,m;return{setters:[t=>{l=t.resolveComponent,u=t.openBlock,p=t.createBlock,o=t.withCtx,e=t.createVNode,n=t.createElementVNode,s=t.toDisplayString,h=t.createTextVNode},t=>{m=t.k}],execute:(function(){const t={props:{modelValue:Boolean,text:{type:String,default:null},title:{type:String,default:null},width:{type:Number,default:800}},emits:["update:modelValue"],computed:{show:{get(){return this.modelValue},set(i){this.$emit("update:modelValue",i)}}},methods:{download:function(){const i=new Blob([this.text],{type:"text/plain"}),a=document.createElement("a");a.href=URL.createObjectURL(i),a.setAttribute("download",`${this.title}.txt`),a.click()}}},f={class:"mx-2"},V={class:"pa-3"},k={class:"text"};function g(i,a,c,E,D,d){const r=l("v-spacer"),v=l("v-btn"),y=l("v-toolbar"),b=l("v-card-text"),C=l("v-card-actions"),_=l("v-card"),B=l("v-dialog");return u(),p(B,{modelValue:d.show,"onUpdate:modelValue":a[1]||(a[1]=w=>d.show=w),width:c.width,scrollable:""},{default:o(()=>[e(_,null,{default:o(()=>[e(y,{height:"24"},{default:o(()=>[e(r),n("span",null,s(c.title),1),e(r),n("div",f,[e(v,{icon:"mdi-download",variant:"text",density:"compact","data-test":"downloadIcon","aria-label":"Download Content",onClick:d.download},null,8,["onClick"])])]),_:1}),e(b,{style:{"max-height":"80vh"}},{default:o(()=>[n("div",V,[n("span",k,s(c.text),1)])]),_:1}),e(C,{class:"px-2"},{default:o(()=>[e(r),e(v,{variant:"flat",onClick:a[0]||(a[0]=w=>d.show=!d.show)},{default:o(()=>[...a[2]||(a[2]=[h(" Ok ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","width"])}const S=x("E",m(t,[["render",g],["__scopeId","data-v-1a0bca65"]]))})}}));
@@ -1 +1 @@
1
- System.register(["./Widget-BiaunQ83-f5d5cb8cc1b25880c13e.js","vue","./main-05290d67af0d2bba595e.js","vue-router","pinia","single-spa","vuetify"],(function(l,o){"use strict";var t,n,i,s,r;return{setters:[e=>{t=e.h},e=>{n=e.openBlock,i=e.createElementBlock,s=e.normalizeStyle},e=>{r=e.d},null,null,null,null],execute:(function(){const e={mixins:[t],created(){this.parameters[0]!==void 0&&this.appliedSettings.push(["WIDTH",this.parameters[0]]),this.parameters[1]!==void 0&&this.appliedSettings.push(["HEIGHT",this.parameters[1]])}};function a(u,p,d,m,h,f){return n(),i("div",{style:s(u.computedStyle)},null,4)}const c=l("default",r(e,[["render",a]]))})}}));
1
+ System.register(["./Widget-CtYQauzA-ae8839a2e4146c799aec.js","vue","./main-040488697a5f3eed5115.js","vue-router","pinia","single-spa","vuetify"],(function(l,o){"use strict";var t,n,i,s,r;return{setters:[e=>{t=e.h},e=>{n=e.openBlock,i=e.createElementBlock,s=e.normalizeStyle},e=>{r=e.k},null,null,null,null],execute:(function(){const e={mixins:[t],created(){this.parameters[0]!==void 0&&this.appliedSettings.push(["WIDTH",this.parameters[0]]),this.parameters[1]!==void 0&&this.appliedSettings.push(["HEIGHT",this.parameters[1]])}};function a(u,p,m,d,h,f){return n(),i("div",{style:s(u.computedStyle)},null,4)}const c=l("default",r(e,[["render",a]]))})}}));
@@ -1 +1 @@
1
- System.register(["./GraphWidget-Rc-fnHCt-c6e6fd9f630161952121.js","./main-05290d67af0d2bba595e.js","vue","./Graph-Cwghj5Pc-0525f379d6f1496a3999.js","single-spa","./Widget-BiaunQ83-f5d5cb8cc1b25880c13e.js","vue-router","pinia","vuetify","./OpenC3TimePicker-WVlNQdKk-82dafbfd86f21e02b597.js"],(function(l,c){"use strict";var i,s,n,r,a,d,o;return{setters:[e=>{i=e.M},e=>{s=e.d},e=>{n=e.resolveComponent,r=e.openBlock,a=e.createBlock,d=e.normalizeStyle},e=>{o=e.R},null,null,null,null,null,null],execute:(function(){const e={components:{Graph:o},mixins:[i],data:function(){return{secondsGraphed:300,pointsSaved:300,pointsGraphed:300,size:{height:30,width:130}}}};function p(t,g,m,f,v,k){const h=n("graph");return r(),a(h,{id:t.id,ref:"graph"+t.id,state:t.state,"selected-graph-id":t.id,"start-time":t.startTime,"seconds-graphed":t.secondsGraphed,"points-saved":t.pointsSaved,"points-graphed":t.pointsGraphed,"initial-items":t.items,height:t.size.height,width:t.size.width,style:d(t.computedStyle),sparkline:""},null,8,["id","state","selected-graph-id","start-time","seconds-graphed","points-saved","points-graphed","initial-items","height","width","style"])}const u=l("default",s(e,[["render",p]]))})}}));
1
+ System.register(["./GraphWidget-Cs9mvqUu-f9a29adafa014c1e26e4.js","./main-040488697a5f3eed5115.js","vue","./Graph-BKw7xw1a-947d95e03148698e323f.js","single-spa","./Widget-CtYQauzA-ae8839a2e4146c799aec.js","vue-router","pinia","vuetify","./OpenC3TimePicker-B8Vu9GBz-c1433e91ea28dd0e883e.js"],(function(l,c){"use strict";var i,s,n,r,a,d,o;return{setters:[e=>{i=e.M},e=>{s=e.k},e=>{n=e.resolveComponent,r=e.openBlock,a=e.createBlock,d=e.normalizeStyle},e=>{o=e.Y},null,null,null,null,null,null],execute:(function(){const e={components:{Graph:o},mixins:[i],data:function(){return{secondsGraphed:300,pointsSaved:300,pointsGraphed:300,size:{height:30,width:130}}}};function p(t,g,m,v,f,k){const h=n("graph");return r(),a(h,{id:t.id,ref:"graph"+t.id,state:t.state,"selected-graph-id":t.id,"start-time":t.startTime,"seconds-graphed":t.secondsGraphed,"points-saved":t.pointsSaved,"points-graphed":t.pointsGraphed,"initial-items":t.items,height:t.size.height,width:t.size.width,style:d(t.computedStyle),sparkline:""},null,8,["id","state","selected-graph-id","start-time","seconds-graphed","points-saved","points-graphed","initial-items","height","width","style"])}const u=l("default",s(e,[["render",p]]))})}}));