@openc3/vue-common 6.10.4 → 6.10.6

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 (425) hide show
  1. package/dist/{ArrayWidget-CIMbQsGW.cjs → ArrayWidget-BLSdjJNz.cjs} +2 -2
  2. package/dist/{ArrayWidget-CIMbQsGW.cjs.map → ArrayWidget-BLSdjJNz.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-DfiusKpM.js → ArrayWidget-DuLt8EJf.js} +4 -4
  4. package/dist/{ArrayWidget-DfiusKpM.js.map → ArrayWidget-DuLt8EJf.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-DrrqqJEu.cjs → ArrayplotWidget-BMproxMR.cjs} +2 -2
  6. package/dist/{ArrayplotWidget-DrrqqJEu.cjs.map → ArrayplotWidget-BMproxMR.cjs.map} +1 -1
  7. package/dist/{ArrayplotWidget-DsvOovu9.js → ArrayplotWidget-Cd-gOSvk.js} +3 -3
  8. package/dist/{ArrayplotWidget-DsvOovu9.js.map → ArrayplotWidget-Cd-gOSvk.js.map} +1 -1
  9. package/dist/{BarColumn-CWgcL5w1.cjs → BarColumn-BLzB9nJI.cjs} +2 -2
  10. package/dist/{BarColumn-CWgcL5w1.cjs.map → BarColumn-BLzB9nJI.cjs.map} +1 -1
  11. package/dist/{BarColumn-DHHJBR3V.js → BarColumn-Dl9qcKah.js} +3 -3
  12. package/dist/{BarColumn-DHHJBR3V.js.map → BarColumn-Dl9qcKah.js.map} +1 -1
  13. package/dist/{BlockWidget-BdYXWS_0.js → BlockWidget-DDV7KBvj.js} +4 -4
  14. package/dist/{BlockWidget-BdYXWS_0.js.map → BlockWidget-DDV7KBvj.js.map} +1 -1
  15. package/dist/{BlockWidget-7Ecn_42c.cjs → BlockWidget-tsvy_QdR.cjs} +2 -2
  16. package/dist/{BlockWidget-7Ecn_42c.cjs.map → BlockWidget-tsvy_QdR.cjs.map} +1 -1
  17. package/dist/{ButtonWidget-DFxBj0MG.cjs → ButtonWidget-BOucJBe6.cjs} +3 -3
  18. package/dist/{ButtonWidget-DFxBj0MG.cjs.map → ButtonWidget-BOucJBe6.cjs.map} +1 -1
  19. package/dist/{ButtonWidget-zpSJmiQT.js → ButtonWidget-DAiwgS-s.js} +6 -6
  20. package/dist/{ButtonWidget-zpSJmiQT.js.map → ButtonWidget-DAiwgS-s.js.map} +1 -1
  21. package/dist/{CanvasWidget-DaUB1G9X.js → CanvasWidget-CBiHxOuV.js} +2 -2
  22. package/dist/{CanvasWidget-DaUB1G9X.js.map → CanvasWidget-CBiHxOuV.js.map} +1 -1
  23. package/dist/{CanvasWidget-C5-iZ-YT.cjs → CanvasWidget-DiECVC34.cjs} +2 -2
  24. package/dist/{CanvasWidget-C5-iZ-YT.cjs.map → CanvasWidget-DiECVC34.cjs.map} +1 -1
  25. package/dist/{CanvasdotWidget-C255aTVc.js → CanvasdotWidget-B_iTeu6J.js} +2 -2
  26. package/dist/{CanvasdotWidget-C255aTVc.js.map → CanvasdotWidget-B_iTeu6J.js.map} +1 -1
  27. package/dist/{CanvasdotWidget-CCrgS1yO.cjs → CanvasdotWidget-BhIOCwWs.cjs} +2 -2
  28. package/dist/{CanvasdotWidget-CCrgS1yO.cjs.map → CanvasdotWidget-BhIOCwWs.cjs.map} +1 -1
  29. package/dist/{CanvasimageWidget-CFlUUFqr.js → CanvasimageWidget-DPME18WO.js} +3 -3
  30. package/dist/{CanvasimageWidget-CFlUUFqr.js.map → CanvasimageWidget-DPME18WO.js.map} +1 -1
  31. package/dist/{CanvasimageWidget-B2Mm0dYq.cjs → CanvasimageWidget-JyaV_zo0.cjs} +2 -2
  32. package/dist/{CanvasimageWidget-B2Mm0dYq.cjs.map → CanvasimageWidget-JyaV_zo0.cjs.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-s4gR3fo5.js → CanvasimagevalueWidget-Cvjd5N_d.js} +3 -3
  34. package/dist/{CanvasimagevalueWidget-s4gR3fo5.js.map → CanvasimagevalueWidget-Cvjd5N_d.js.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-B1xVa3FB.cjs → CanvasimagevalueWidget-YppD9bAM.cjs} +2 -2
  36. package/dist/{CanvasimagevalueWidget-B1xVa3FB.cjs.map → CanvasimagevalueWidget-YppD9bAM.cjs.map} +1 -1
  37. package/dist/{CanvaslabelWidget-CAtE3qq_.cjs → CanvaslabelWidget-BurnvwNF.cjs} +2 -2
  38. package/dist/{CanvaslabelWidget-CAtE3qq_.cjs.map → CanvaslabelWidget-BurnvwNF.cjs.map} +1 -1
  39. package/dist/{CanvaslabelWidget-CaOc-lTQ.js → CanvaslabelWidget-DV9TSYqo.js} +2 -2
  40. package/dist/{CanvaslabelWidget-CaOc-lTQ.js.map → CanvaslabelWidget-DV9TSYqo.js.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-CvVMrZsu.cjs → CanvaslabelvalueWidget-CXf4EBIq.cjs} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-CvVMrZsu.cjs.map → CanvaslabelvalueWidget-CXf4EBIq.cjs.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-hqJoPekq.js → CanvaslabelvalueWidget-CZEuRFgE.js} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-hqJoPekq.js.map → CanvaslabelvalueWidget-CZEuRFgE.js.map} +1 -1
  45. package/dist/{CanvaslineWidget-CjPnyDod.cjs → CanvaslineWidget-7y1RriKp.cjs} +2 -2
  46. package/dist/{CanvaslineWidget-CjPnyDod.cjs.map → CanvaslineWidget-7y1RriKp.cjs.map} +1 -1
  47. package/dist/{CanvaslineWidget-DebP2L43.js → CanvaslineWidget-DX3NwYIu.js} +2 -2
  48. package/dist/{CanvaslineWidget-DebP2L43.js.map → CanvaslineWidget-DX3NwYIu.js.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-Caadjtan.cjs → CanvaslinevalueWidget-W3GVUrRe.cjs} +2 -2
  50. package/dist/{CanvaslinevalueWidget-Caadjtan.cjs.map → CanvaslinevalueWidget-W3GVUrRe.cjs.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-BkPG5Vtx.js → CanvaslinevalueWidget-zT2i95O2.js} +2 -2
  52. package/dist/{CanvaslinevalueWidget-BkPG5Vtx.js.map → CanvaslinevalueWidget-zT2i95O2.js.map} +1 -1
  53. package/dist/{CheckbuttonWidget-eQIcPATf.js → CheckbuttonWidget-D1Oq1A1Y.js} +2 -2
  54. package/dist/{CheckbuttonWidget-eQIcPATf.js.map → CheckbuttonWidget-D1Oq1A1Y.js.map} +1 -1
  55. package/dist/{CheckbuttonWidget-CEOWZkt6.cjs → CheckbuttonWidget-DbjfhJJG.cjs} +2 -2
  56. package/dist/{CheckbuttonWidget-CEOWZkt6.cjs.map → CheckbuttonWidget-DbjfhJJG.cjs.map} +1 -1
  57. package/dist/{ClassificationBanners--l3qMxLo.cjs → ClassificationBanners-HkU0WpTb.cjs} +2 -2
  58. package/dist/{ClassificationBanners--l3qMxLo.cjs.map → ClassificationBanners-HkU0WpTb.cjs.map} +1 -1
  59. package/dist/{ClassificationBanners-CFLQaZJ2.js → ClassificationBanners-htrLOcBR.js} +2 -2
  60. package/dist/{ClassificationBanners-CFLQaZJ2.js.map → ClassificationBanners-htrLOcBR.js.map} +1 -1
  61. package/dist/{ComboboxWidget-BSs59QzI.cjs → ComboboxWidget-C9xkCgtV.cjs} +2 -2
  62. package/dist/{ComboboxWidget-BSs59QzI.cjs.map → ComboboxWidget-C9xkCgtV.cjs.map} +1 -1
  63. package/dist/{ComboboxWidget-B5kzYxFk.js → ComboboxWidget-CaOeC7ES.js} +2 -2
  64. package/dist/{ComboboxWidget-B5kzYxFk.js.map → ComboboxWidget-CaOeC7ES.js.map} +1 -1
  65. package/dist/{CriticalCmdDialog-BYHZbX2w.js → CriticalCmdDialog-Bpfv2I03.js} +6 -6
  66. package/dist/{CriticalCmdDialog-BYHZbX2w.js.map → CriticalCmdDialog-Bpfv2I03.js.map} +1 -1
  67. package/dist/{CriticalCmdDialog-BhjiJIo5.cjs → CriticalCmdDialog-Civ8H5RY.cjs} +2 -2
  68. package/dist/{CriticalCmdDialog-BhjiJIo5.cjs.map → CriticalCmdDialog-Civ8H5RY.cjs.map} +1 -1
  69. package/dist/{DateWidget-1IZOe50K.js → DateWidget-DHegSO3F.js} +2 -2
  70. package/dist/{DateWidget-1IZOe50K.js.map → DateWidget-DHegSO3F.js.map} +1 -1
  71. package/dist/{DateWidget-DkVxE7Xj.cjs → DateWidget-Dbzn8FSm.cjs} +2 -2
  72. package/dist/{DateWidget-DkVxE7Xj.cjs.map → DateWidget-Dbzn8FSm.cjs.map} +1 -1
  73. package/dist/{DetailsDialog-D-rjL4oc.js → DetailsDialog-B9IRpYsU.js} +9 -9
  74. package/dist/{DetailsDialog-D-rjL4oc.js.map → DetailsDialog-B9IRpYsU.js.map} +1 -1
  75. package/dist/{DetailsDialog-lJG8eclU.cjs → DetailsDialog-CsJHiTI3.cjs} +2 -2
  76. package/dist/{DetailsDialog-lJG8eclU.cjs.map → DetailsDialog-CsJHiTI3.cjs.map} +1 -1
  77. package/dist/{EventListDialog-5UXvnmNE.cjs → EventListDialog-B1jwt-28.cjs} +2 -2
  78. package/dist/{EventListDialog-5UXvnmNE.cjs.map → EventListDialog-B1jwt-28.cjs.map} +1 -1
  79. package/dist/{EventListDialog-Id3rEQKY.js → EventListDialog-C3acqjWI.js} +4 -4
  80. package/dist/{EventListDialog-Id3rEQKY.js.map → EventListDialog-C3acqjWI.js.map} +1 -1
  81. package/dist/{FilechecksumWidget-D-5GSjyV.cjs → FilechecksumWidget-BC_GBgVt.cjs} +2 -2
  82. package/dist/{FilechecksumWidget-D-5GSjyV.cjs.map → FilechecksumWidget-BC_GBgVt.cjs.map} +1 -1
  83. package/dist/{FilechecksumWidget-F_FX1Kjx.js → FilechecksumWidget-BlZ_YlAn.js} +3 -3
  84. package/dist/{FilechecksumWidget-F_FX1Kjx.js.map → FilechecksumWidget-BlZ_YlAn.js.map} +1 -1
  85. package/dist/{FiledisplayWidget-BHLOY_cM.cjs → FiledisplayWidget-B9YTU5-X.cjs} +2 -2
  86. package/dist/{FiledisplayWidget-BHLOY_cM.cjs.map → FiledisplayWidget-B9YTU5-X.cjs.map} +1 -1
  87. package/dist/{FiledisplayWidget-BF3G22jF.js → FiledisplayWidget-TJ2RL43-.js} +8 -8
  88. package/dist/{FiledisplayWidget-BF3G22jF.js.map → FiledisplayWidget-TJ2RL43-.js.map} +1 -1
  89. package/dist/{FormatvalueWidget-BkF9iiHs.js → FormatvalueWidget-0S6n-WEr.js} +13 -11
  90. package/dist/{FormatvalueWidget-BkF9iiHs.js.map → FormatvalueWidget-0S6n-WEr.js.map} +1 -1
  91. package/dist/FormatvalueWidget-Cckikrms.cjs +2 -0
  92. package/dist/{FormatvalueWidget-DTsP7isW.cjs.map → FormatvalueWidget-Cckikrms.cjs.map} +1 -1
  93. package/dist/{Graph-C-7C2Jq5.js → Graph-CXuxaEKD.js} +10 -6
  94. package/dist/Graph-CXuxaEKD.js.map +1 -0
  95. package/dist/Graph-Du90yHUZ.cjs +2 -0
  96. package/dist/Graph-Du90yHUZ.cjs.map +1 -0
  97. package/dist/{GraphWidget-DRkDn8za.js → GraphWidget-CGjfTMGG.js} +2 -2
  98. package/dist/{GraphWidget-DRkDn8za.js.map → GraphWidget-CGjfTMGG.js.map} +1 -1
  99. package/dist/{GraphWidget-C7hqdqL-.cjs → GraphWidget-DT8M_V6q.cjs} +2 -2
  100. package/dist/{GraphWidget-C7hqdqL-.cjs.map → GraphWidget-DT8M_V6q.cjs.map} +1 -1
  101. package/dist/{HorizontalWidget-DB64wzZB.js → HorizontalWidget-Crp4JtGX.js} +2 -2
  102. package/dist/{HorizontalWidget-DB64wzZB.js.map → HorizontalWidget-Crp4JtGX.js.map} +1 -1
  103. package/dist/{HorizontalWidget-h-U8i3G-.cjs → HorizontalWidget-nZbc213j.cjs} +2 -2
  104. package/dist/{HorizontalWidget-h-U8i3G-.cjs.map → HorizontalWidget-nZbc213j.cjs.map} +1 -1
  105. package/dist/{HorizontalboxWidget-E4LUf2eN.cjs → HorizontalboxWidget-DIwL3yc_.cjs} +2 -2
  106. package/dist/{HorizontalboxWidget-E4LUf2eN.cjs.map → HorizontalboxWidget-DIwL3yc_.cjs.map} +1 -1
  107. package/dist/{HorizontalboxWidget-BsHsGlvK.js → HorizontalboxWidget-DlM7Hoxy.js} +5 -5
  108. package/dist/{HorizontalboxWidget-BsHsGlvK.js.map → HorizontalboxWidget-DlM7Hoxy.js.map} +1 -1
  109. package/dist/{HorizontallineWidget-CyiexzIu.js → HorizontallineWidget-HCZU5Dm-.js} +2 -2
  110. package/dist/{HorizontallineWidget-CyiexzIu.js.map → HorizontallineWidget-HCZU5Dm-.js.map} +1 -1
  111. package/dist/{HorizontallineWidget-LibmHnAf.cjs → HorizontallineWidget-Q0F2UhZ7.cjs} +2 -2
  112. package/dist/{HorizontallineWidget-LibmHnAf.cjs.map → HorizontallineWidget-Q0F2UhZ7.cjs.map} +1 -1
  113. package/dist/IframeWidget-CRf6VJjw.cjs +2 -0
  114. package/dist/IframeWidget-CRf6VJjw.cjs.map +1 -0
  115. package/dist/{IframeWidget-D9Vh0w2c.js → IframeWidget-D3Mqvq2p.js} +16 -16
  116. package/dist/IframeWidget-D3Mqvq2p.js.map +1 -0
  117. package/dist/{ImageLoader-Cc4-BNJv.cjs → ImageLoader-B2HT3zXB.cjs} +2 -2
  118. package/dist/{ImageLoader-Cc4-BNJv.cjs.map → ImageLoader-B2HT3zXB.cjs.map} +1 -1
  119. package/dist/{ImageLoader-B4iBPFyi.js → ImageLoader-BbPJF9nD.js} +2 -2
  120. package/dist/{ImageLoader-B4iBPFyi.js.map → ImageLoader-BbPJF9nD.js.map} +1 -1
  121. package/dist/{ImageviewerWidget-DqV4SClv.js → ImageviewerWidget-Bc8A3xX7.js} +2 -2
  122. package/dist/{ImageviewerWidget-DqV4SClv.js.map → ImageviewerWidget-Bc8A3xX7.js.map} +1 -1
  123. package/dist/{ImageviewerWidget-KVt487SJ.cjs → ImageviewerWidget-DnRQKTas.cjs} +2 -2
  124. package/dist/{ImageviewerWidget-KVt487SJ.cjs.map → ImageviewerWidget-DnRQKTas.cjs.map} +1 -1
  125. package/dist/{InterfacesTab-C310FRIP.js → InterfacesTab-BrLlsu3d.js} +5 -5
  126. package/dist/{InterfacesTab-C310FRIP.js.map → InterfacesTab-BrLlsu3d.js.map} +1 -1
  127. package/dist/{InterfacesTab-nZwg-ByS.cjs → InterfacesTab-DE3eUJDd.cjs} +2 -2
  128. package/dist/{InterfacesTab-nZwg-ByS.cjs.map → InterfacesTab-DE3eUJDd.cjs.map} +1 -1
  129. package/dist/{LabelWidget-BDukcPet.js → LabelWidget-BV6758n5.js} +2 -2
  130. package/dist/{LabelWidget-BDukcPet.js.map → LabelWidget-BV6758n5.js.map} +1 -1
  131. package/dist/{LabelWidget-DYfv4K8h.cjs → LabelWidget-C2iJw-f3.cjs} +2 -2
  132. package/dist/{LabelWidget-DYfv4K8h.cjs.map → LabelWidget-C2iJw-f3.cjs.map} +1 -1
  133. package/dist/{LabelledWidget-tVHE426s.js → LabelledWidget-Dk7399HX.js} +4 -4
  134. package/dist/{LabelledWidget-tVHE426s.js.map → LabelledWidget-Dk7399HX.js.map} +1 -1
  135. package/dist/{LabelledWidget-Dl1x6b3p.cjs → LabelledWidget-DzVtmRSk.cjs} +2 -2
  136. package/dist/{LabelledWidget-Dl1x6b3p.cjs.map → LabelledWidget-DzVtmRSk.cjs.map} +1 -1
  137. package/dist/{LabelprogressbarWidget-CjMDFUUv.js → LabelprogressbarWidget-B9ZQxLEG.js} +4 -4
  138. package/dist/{LabelprogressbarWidget-CjMDFUUv.js.map → LabelprogressbarWidget-B9ZQxLEG.js.map} +1 -1
  139. package/dist/{LabelprogressbarWidget-DcO0gRM4.cjs → LabelprogressbarWidget-Bbj0GqOS.cjs} +2 -2
  140. package/dist/{LabelprogressbarWidget-DcO0gRM4.cjs.map → LabelprogressbarWidget-Bbj0GqOS.cjs.map} +1 -1
  141. package/dist/{LabelsparklineWidget-dZl3cGu0.js → LabelsparklineWidget-CwFa7EJr.js} +4 -4
  142. package/dist/{LabelsparklineWidget-dZl3cGu0.js.map → LabelsparklineWidget-CwFa7EJr.js.map} +1 -1
  143. package/dist/{LabelsparklineWidget-Cp2a-qlI.cjs → LabelsparklineWidget-GIhUx8we.cjs} +2 -2
  144. package/dist/{LabelsparklineWidget-Cp2a-qlI.cjs.map → LabelsparklineWidget-GIhUx8we.cjs.map} +1 -1
  145. package/dist/{LabelvalueWidget-CgP4mzP_.cjs → LabelvalueWidget-B-THrkfJ.cjs} +2 -2
  146. package/dist/{LabelvalueWidget-CgP4mzP_.cjs.map → LabelvalueWidget-B-THrkfJ.cjs.map} +1 -1
  147. package/dist/{LabelvalueWidget-UcAc_2Ry.js → LabelvalueWidget-DcOqiZea.js} +4 -4
  148. package/dist/{LabelvalueWidget-UcAc_2Ry.js.map → LabelvalueWidget-DcOqiZea.js.map} +1 -1
  149. package/dist/{LabelvaluedescWidget-CXJ037Qs.cjs → LabelvaluedescWidget-CeOIs05W.cjs} +2 -2
  150. package/dist/{LabelvaluedescWidget-CXJ037Qs.cjs.map → LabelvaluedescWidget-CeOIs05W.cjs.map} +1 -1
  151. package/dist/{LabelvaluedescWidget-Crb8udVe.js → LabelvaluedescWidget-bzML7aS7.js} +5 -5
  152. package/dist/{LabelvaluedescWidget-Crb8udVe.js.map → LabelvaluedescWidget-bzML7aS7.js.map} +1 -1
  153. package/dist/{LabelvaluelimitsbarWidget-B3cn7i50.cjs → LabelvaluelimitsbarWidget-DxMmYKHP.cjs} +2 -2
  154. package/dist/{LabelvaluelimitsbarWidget-B3cn7i50.cjs.map → LabelvaluelimitsbarWidget-DxMmYKHP.cjs.map} +1 -1
  155. package/dist/{LabelvaluelimitsbarWidget-BZGUQrRt.js → LabelvaluelimitsbarWidget-GCgFxc-I.js} +4 -4
  156. package/dist/{LabelvaluelimitsbarWidget-BZGUQrRt.js.map → LabelvaluelimitsbarWidget-GCgFxc-I.js.map} +1 -1
  157. package/dist/{LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs → LabelvaluelimitscolumnWidget-BTphsvo2.cjs} +2 -2
  158. package/dist/{LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs.map → LabelvaluelimitscolumnWidget-BTphsvo2.cjs.map} +1 -1
  159. package/dist/{LabelvaluelimitscolumnWidget-NNYW2aMO.js → LabelvaluelimitscolumnWidget-DuRuNm4g.js} +5 -5
  160. package/dist/{LabelvaluelimitscolumnWidget-NNYW2aMO.js.map → LabelvaluelimitscolumnWidget-DuRuNm4g.js.map} +1 -1
  161. package/dist/{LabelvaluerangebarWidget-CjkVDlVJ.js → LabelvaluerangebarWidget-C32gfNLA.js} +4 -4
  162. package/dist/{LabelvaluerangebarWidget-CjkVDlVJ.js.map → LabelvaluerangebarWidget-C32gfNLA.js.map} +1 -1
  163. package/dist/{LabelvaluerangebarWidget-B81fLpK0.cjs → LabelvaluerangebarWidget-D66_K_nl.cjs} +2 -2
  164. package/dist/{LabelvaluerangebarWidget-B81fLpK0.cjs.map → LabelvaluerangebarWidget-D66_K_nl.cjs.map} +1 -1
  165. package/dist/{Layout-FpBx3iic.js → Layout-CYQt4P78.js} +2 -2
  166. package/dist/{Layout-FpBx3iic.js.map → Layout-CYQt4P78.js.map} +1 -1
  167. package/dist/{Layout-K7_I6jMV.cjs → Layout-D_xqJarz.cjs} +2 -2
  168. package/dist/{Layout-K7_I6jMV.cjs.map → Layout-D_xqJarz.cjs.map} +1 -1
  169. package/dist/{LedWidget-C19KREVz.cjs → LedWidget-DQDy7HkU.cjs} +2 -2
  170. package/dist/{LedWidget-C19KREVz.cjs.map → LedWidget-DQDy7HkU.cjs.map} +1 -1
  171. package/dist/{LedWidget-Bsp1aja-.js → LedWidget-DcN4UWc9.js} +4 -4
  172. package/dist/{LedWidget-Bsp1aja-.js.map → LedWidget-DcN4UWc9.js.map} +1 -1
  173. package/dist/{LimitsBar-LRiUSWd7.cjs → LimitsBar-B1P8gnfK.cjs} +2 -2
  174. package/dist/{LimitsBar-LRiUSWd7.cjs.map → LimitsBar-B1P8gnfK.cjs.map} +1 -1
  175. package/dist/{LimitsBar-IVv8t4FE.js → LimitsBar-CewifD-8.js} +2 -2
  176. package/dist/{LimitsBar-IVv8t4FE.js.map → LimitsBar-CewifD-8.js.map} +1 -1
  177. package/dist/{LimitsbarWidget-BFjMhTbA.cjs → LimitsbarWidget-DXTfZFKF.cjs} +2 -2
  178. package/dist/{LimitsbarWidget-BFjMhTbA.cjs.map → LimitsbarWidget-DXTfZFKF.cjs.map} +1 -1
  179. package/dist/{LimitsbarWidget-Bo1JAoQp.js → LimitsbarWidget-Dy-IqgZj.js} +3 -3
  180. package/dist/{LimitsbarWidget-Bo1JAoQp.js.map → LimitsbarWidget-Dy-IqgZj.js.map} +1 -1
  181. package/dist/{LimitscolorWidget-Doq8h_g1.js → LimitscolorWidget-2eLprLL7.js} +2 -2
  182. package/dist/{LimitscolorWidget-Doq8h_g1.js.map → LimitscolorWidget-2eLprLL7.js.map} +1 -1
  183. package/dist/{LimitscolorWidget-D214kS86.cjs → LimitscolorWidget-C0f7Qud4.cjs} +2 -2
  184. package/dist/{LimitscolorWidget-D214kS86.cjs.map → LimitscolorWidget-C0f7Qud4.cjs.map} +1 -1
  185. package/dist/{LimitscolumnWidget-qasXHN7m.js → LimitscolumnWidget-DlPcKW-r.js} +2 -2
  186. package/dist/{LimitscolumnWidget-qasXHN7m.js.map → LimitscolumnWidget-DlPcKW-r.js.map} +1 -1
  187. package/dist/{LimitscolumnWidget-BREF_CBr.cjs → LimitscolumnWidget-DxaM5RDH.cjs} +2 -2
  188. package/dist/{LimitscolumnWidget-BREF_CBr.cjs.map → LimitscolumnWidget-DxaM5RDH.cjs.map} +1 -1
  189. package/dist/{LinegraphWidget-BhpYKxnT.cjs → LinegraphWidget-8TvRUoqu.cjs} +2 -2
  190. package/dist/{LinegraphWidget-BhpYKxnT.cjs.map → LinegraphWidget-8TvRUoqu.cjs.map} +1 -1
  191. package/dist/{LinegraphWidget-BNMqcr_r.js → LinegraphWidget-BFXYdx0Q.js} +4 -4
  192. package/dist/{LinegraphWidget-BNMqcr_r.js.map → LinegraphWidget-BFXYdx0Q.js.map} +1 -1
  193. package/dist/{MatrixbycolumnsWidget-BlF1CyIT.js → MatrixbycolumnsWidget-BvbEs_NU.js} +3 -3
  194. package/dist/{MatrixbycolumnsWidget-BlF1CyIT.js.map → MatrixbycolumnsWidget-BvbEs_NU.js.map} +1 -1
  195. package/dist/{MatrixbycolumnsWidget-BKXkhATe.cjs → MatrixbycolumnsWidget-k0GfBzu8.cjs} +2 -2
  196. package/dist/{MatrixbycolumnsWidget-BKXkhATe.cjs.map → MatrixbycolumnsWidget-k0GfBzu8.cjs.map} +1 -1
  197. package/dist/{MicroservicesTab-BWFwBSuf.cjs → MicroservicesTab-B8gVZ9wr.cjs} +2 -2
  198. package/dist/{MicroservicesTab-BWFwBSuf.cjs.map → MicroservicesTab-B8gVZ9wr.cjs.map} +1 -1
  199. package/dist/{MicroservicesTab-xpDXKoa-.js → MicroservicesTab-C8XPgBnj.js} +3 -3
  200. package/dist/{MicroservicesTab-xpDXKoa-.js.map → MicroservicesTab-C8XPgBnj.js.map} +1 -1
  201. package/dist/{OpenC3TimePicker-D-_qqySI.js → OpenC3TimePicker-CFSMcJ1F.js} +60 -46
  202. package/dist/OpenC3TimePicker-CFSMcJ1F.js.map +1 -0
  203. package/dist/OpenC3TimePicker-DM8EnTy5.cjs +2 -0
  204. package/dist/OpenC3TimePicker-DM8EnTy5.cjs.map +1 -0
  205. package/dist/{Openc3Screen-DYJHNotN.js → Openc3Screen-DG98sMaI.js} +40 -39
  206. package/dist/Openc3Screen-DG98sMaI.js.map +1 -0
  207. package/dist/{Openc3Screen-Pu1ktpS8.cjs → Openc3Screen-MVNRGjbs.cjs} +5 -5
  208. package/dist/Openc3Screen-MVNRGjbs.cjs.map +1 -0
  209. package/dist/{OutputDialog-x4QZFAWe.js → OutputDialog-8nKOJUMU.js} +9 -9
  210. package/dist/{OutputDialog-x4QZFAWe.js.map → OutputDialog-8nKOJUMU.js.map} +1 -1
  211. package/dist/{OutputDialog-BwEWPQW9.cjs → OutputDialog-BHDdBPLX.cjs} +2 -2
  212. package/dist/{OutputDialog-BwEWPQW9.cjs.map → OutputDialog-BHDdBPLX.cjs.map} +1 -1
  213. package/dist/{PackagesTab-rzc4hqOb.js → PackagesTab-CAa7ZnYV.js} +14 -14
  214. package/dist/{PackagesTab-rzc4hqOb.js.map → PackagesTab-CAa7ZnYV.js.map} +1 -1
  215. package/dist/{PackagesTab-CHwfaqdP.cjs → PackagesTab-CvJayoC1.cjs} +2 -2
  216. package/dist/{PackagesTab-CHwfaqdP.cjs.map → PackagesTab-CvJayoC1.cjs.map} +1 -1
  217. package/dist/{PluginsTab-C7gLbRQn.cjs → PluginsTab-CDopyCAG.cjs} +4 -4
  218. package/dist/{PluginsTab-C7gLbRQn.cjs.map → PluginsTab-CDopyCAG.cjs.map} +1 -1
  219. package/dist/{PluginsTab-Dff_0j26.js → PluginsTab-Dqe3QG7v.js} +4 -4
  220. package/dist/{PluginsTab-Dff_0j26.js.map → PluginsTab-Dqe3QG7v.js.map} +1 -1
  221. package/dist/{ProgressbarWidget-cQAtX_Q7.cjs → ProgressbarWidget-CAtBs6-s.cjs} +2 -2
  222. package/dist/{ProgressbarWidget-cQAtX_Q7.cjs.map → ProgressbarWidget-CAtBs6-s.cjs.map} +1 -1
  223. package/dist/{ProgressbarWidget-DQ80NANH.js → ProgressbarWidget-CYQzHmXv.js} +2 -2
  224. package/dist/{ProgressbarWidget-DQ80NANH.js.map → ProgressbarWidget-CYQzHmXv.js.map} +1 -1
  225. package/dist/{RadiobuttonWidget-LD18M4IQ.js → RadiobuttonWidget-JJC2cnc7.js} +2 -2
  226. package/dist/{RadiobuttonWidget-LD18M4IQ.js.map → RadiobuttonWidget-JJC2cnc7.js.map} +1 -1
  227. package/dist/{RadiobuttonWidget-DFrUZRaV.cjs → RadiobuttonWidget-OsLLONa3.cjs} +2 -2
  228. package/dist/{RadiobuttonWidget-DFrUZRaV.cjs.map → RadiobuttonWidget-OsLLONa3.cjs.map} +1 -1
  229. package/dist/{RadiogroupWidget-D_pt2MPz.js → RadiogroupWidget-B-b7D4f4.js} +2 -2
  230. package/dist/{RadiogroupWidget-D_pt2MPz.js.map → RadiogroupWidget-B-b7D4f4.js.map} +1 -1
  231. package/dist/{RadiogroupWidget-ljP05k3g.cjs → RadiogroupWidget-C1gQYVgm.cjs} +2 -2
  232. package/dist/{RadiogroupWidget-ljP05k3g.cjs.map → RadiogroupWidget-C1gQYVgm.cjs.map} +1 -1
  233. package/dist/{RangebarWidget-BsLWXvTo.cjs → RangebarWidget-BfF7PvI6.cjs} +2 -2
  234. package/dist/{RangebarWidget-BsLWXvTo.cjs.map → RangebarWidget-BfF7PvI6.cjs.map} +1 -1
  235. package/dist/{RangebarWidget-DhaWpHjB.js → RangebarWidget-nD6qbLmB.js} +2 -2
  236. package/dist/{RangebarWidget-DhaWpHjB.js.map → RangebarWidget-nD6qbLmB.js.map} +1 -1
  237. package/dist/{RedisTab-DEKMLop2.cjs → RedisTab-BdXEE0MY.cjs} +2 -2
  238. package/dist/{RedisTab-DEKMLop2.cjs.map → RedisTab-BdXEE0MY.cjs.map} +1 -1
  239. package/dist/{RedisTab-C3yjh0JX.js → RedisTab-DCV2ZWhh.js} +5 -5
  240. package/dist/{RedisTab-C3yjh0JX.js.map → RedisTab-DCV2ZWhh.js.map} +1 -1
  241. package/dist/{RollupWidget-sXTyo7zH.cjs → RollupWidget-AdgwMuAF.cjs} +2 -2
  242. package/dist/{RollupWidget-sXTyo7zH.cjs.map → RollupWidget-AdgwMuAF.cjs.map} +1 -1
  243. package/dist/{RollupWidget-CMU1-HwL.js → RollupWidget-D80cEXSI.js} +2 -2
  244. package/dist/{RollupWidget-CMU1-HwL.js.map → RollupWidget-D80cEXSI.js.map} +1 -1
  245. package/dist/{RoutersTab-DaWde6np.js → RoutersTab-4hmbIlHw.js} +3 -3
  246. package/dist/{RoutersTab-DaWde6np.js.map → RoutersTab-4hmbIlHw.js.map} +1 -1
  247. package/dist/{RoutersTab-IKuEHQeO.cjs → RoutersTab-B7MPNa6g.cjs} +2 -2
  248. package/dist/{RoutersTab-IKuEHQeO.cjs.map → RoutersTab-B7MPNa6g.cjs.map} +1 -1
  249. package/dist/ScriptChooser-CcU08Gfu.cjs +2 -0
  250. package/dist/ScriptChooser-CcU08Gfu.cjs.map +1 -0
  251. package/dist/{ScriptChooser-DCjI5aeZ.js → ScriptChooser-DeAgLzpG.js} +13 -13
  252. package/dist/ScriptChooser-DeAgLzpG.js.map +1 -0
  253. package/dist/{ScrollwindowWidget-BcLF_bhy.cjs → ScrollwindowWidget-CWxbtwVI.cjs} +2 -2
  254. package/dist/{ScrollwindowWidget-BcLF_bhy.cjs.map → ScrollwindowWidget-CWxbtwVI.cjs.map} +1 -1
  255. package/dist/{ScrollwindowWidget-D7Ln-QMq.js → ScrollwindowWidget-Cun3Vh6z.js} +2 -2
  256. package/dist/{ScrollwindowWidget-D7Ln-QMq.js.map → ScrollwindowWidget-Cun3Vh6z.js.map} +1 -1
  257. package/dist/{SecretsTab-Dhal1RCq.js → SecretsTab-BjkkkzJa.js} +4 -4
  258. package/dist/{SecretsTab-Dhal1RCq.js.map → SecretsTab-BjkkkzJa.js.map} +1 -1
  259. package/dist/{SecretsTab-BM9HIjT_.cjs → SecretsTab-ms4xbsap.cjs} +2 -2
  260. package/dist/{SecretsTab-BM9HIjT_.cjs.map → SecretsTab-ms4xbsap.cjs.map} +1 -1
  261. package/dist/{SettingsTab-Dtj_AlEW.js → SettingsTab-3wbEzcjJ.js} +482 -428
  262. package/dist/SettingsTab-3wbEzcjJ.js.map +1 -0
  263. package/dist/SettingsTab-to-vPAkD.cjs +6 -0
  264. package/dist/SettingsTab-to-vPAkD.cjs.map +1 -0
  265. package/dist/{SignalWidget-PreTg4Mt.js → SignalWidget-CYsoFQEA.js} +2 -2
  266. package/dist/{SignalWidget-PreTg4Mt.js.map → SignalWidget-CYsoFQEA.js.map} +1 -1
  267. package/dist/{SignalWidget-DHwveppA.cjs → SignalWidget-lanCUNlJ.cjs} +2 -2
  268. package/dist/{SignalWidget-DHwveppA.cjs.map → SignalWidget-lanCUNlJ.cjs.map} +1 -1
  269. package/dist/{SimpleTextDialog-DDIm5Znf.js → SimpleTextDialog-BcQPD1Ea.js} +2 -2
  270. package/dist/{SimpleTextDialog-DDIm5Znf.js.map → SimpleTextDialog-BcQPD1Ea.js.map} +1 -1
  271. package/dist/{SimpleTextDialog-Bdw3jul4.cjs → SimpleTextDialog-nBmlZMaP.cjs} +2 -2
  272. package/dist/{SimpleTextDialog-Bdw3jul4.cjs.map → SimpleTextDialog-nBmlZMaP.cjs.map} +1 -1
  273. package/dist/{SpacerWidget-Chy1NO28.js → SpacerWidget-CrheUKPo.js} +2 -2
  274. package/dist/{SpacerWidget-Chy1NO28.js.map → SpacerWidget-CrheUKPo.js.map} +1 -1
  275. package/dist/{SpacerWidget-Cj-j_MsG.cjs → SpacerWidget-CzPwKWA8.cjs} +2 -2
  276. package/dist/{SpacerWidget-Cj-j_MsG.cjs.map → SpacerWidget-CzPwKWA8.cjs.map} +1 -1
  277. package/dist/{SparklineWidget-Bb-gCNNt.js → SparklineWidget-BxBx5KIx.js} +4 -4
  278. package/dist/{SparklineWidget-Bb-gCNNt.js.map → SparklineWidget-BxBx5KIx.js.map} +1 -1
  279. package/dist/{SparklineWidget-BE1LieLF.cjs → SparklineWidget-DRixjXXr.cjs} +2 -2
  280. package/dist/{SparklineWidget-BE1LieLF.cjs.map → SparklineWidget-DRixjXXr.cjs.map} +1 -1
  281. package/dist/{TabbookWidget-a-LsBhBE.js → TabbookWidget-Bznl4HVt.js} +2 -2
  282. package/dist/{TabbookWidget-a-LsBhBE.js.map → TabbookWidget-Bznl4HVt.js.map} +1 -1
  283. package/dist/{TabbookWidget-FNbiZpjn.cjs → TabbookWidget-DgNTKIjr.cjs} +2 -2
  284. package/dist/{TabbookWidget-FNbiZpjn.cjs.map → TabbookWidget-DgNTKIjr.cjs.map} +1 -1
  285. package/dist/{TargetPacketItemChooser-BPRByyfB.cjs → TargetPacketItemChooser-CW91CLJq.cjs} +2 -2
  286. package/dist/{TargetPacketItemChooser-BPRByyfB.cjs.map → TargetPacketItemChooser-CW91CLJq.cjs.map} +1 -1
  287. package/dist/{TargetPacketItemChooser-DDqBQTWC.js → TargetPacketItemChooser-UsuVtlF-.js} +2 -2
  288. package/dist/{TargetPacketItemChooser-DDqBQTWC.js.map → TargetPacketItemChooser-UsuVtlF-.js.map} +1 -1
  289. package/dist/{TargetsTab-dndajwC_.cjs → TargetsTab-BwzGasJJ.cjs} +2 -2
  290. package/dist/{TargetsTab-dndajwC_.cjs.map → TargetsTab-BwzGasJJ.cjs.map} +1 -1
  291. package/dist/{TargetsTab-C7Pn5-19.js → TargetsTab-D2BGCJ0P.js} +12 -12
  292. package/dist/{TargetsTab-C7Pn5-19.js.map → TargetsTab-D2BGCJ0P.js.map} +1 -1
  293. package/dist/{TextboxWidget-DYTNipbi.cjs → TextboxWidget-B_oY4yDR.cjs} +2 -2
  294. package/dist/{TextboxWidget-DYTNipbi.cjs.map → TextboxWidget-B_oY4yDR.cjs.map} +1 -1
  295. package/dist/{TextboxWidget-DIHEOldN.js → TextboxWidget-CCjkSFMU.js} +4 -4
  296. package/dist/{TextboxWidget-DIHEOldN.js.map → TextboxWidget-CCjkSFMU.js.map} +1 -1
  297. package/dist/{TextfieldWidget-BE-HpIKs.cjs → TextfieldWidget-Ct5E638-.cjs} +2 -2
  298. package/dist/{TextfieldWidget-BE-HpIKs.cjs.map → TextfieldWidget-Ct5E638-.cjs.map} +1 -1
  299. package/dist/{TextfieldWidget-CIBo7Dau.js → TextfieldWidget-D6vtrFO9.js} +2 -2
  300. package/dist/{TextfieldWidget-CIBo7Dau.js.map → TextfieldWidget-D6vtrFO9.js.map} +1 -1
  301. package/dist/{TimeWidget-CLuOYfPP.js → TimeWidget-Bq_m9VEj.js} +3 -3
  302. package/dist/{TimeWidget-CLuOYfPP.js.map → TimeWidget-Bq_m9VEj.js.map} +1 -1
  303. package/dist/{TimeWidget-RYL7zDoC.cjs → TimeWidget-ByQV-v0H.cjs} +2 -2
  304. package/dist/{TimeWidget-RYL7zDoC.cjs.map → TimeWidget-ByQV-v0H.cjs.map} +1 -1
  305. package/dist/{TitleWidget-BTHKLAsb.js → TitleWidget-CGKBIIjU.js} +2 -2
  306. package/dist/{TitleWidget-BTHKLAsb.js.map → TitleWidget-CGKBIIjU.js.map} +1 -1
  307. package/dist/{TitleWidget-DVWOhZqJ.cjs → TitleWidget-CfkxN1VW.cjs} +2 -2
  308. package/dist/{TitleWidget-DVWOhZqJ.cjs.map → TitleWidget-CfkxN1VW.cjs.map} +1 -1
  309. package/dist/{ToolsTab-D5yhjVM0.js → ToolsTab-B9oDk5JF.js} +248 -232
  310. package/dist/ToolsTab-B9oDk5JF.js.map +1 -0
  311. package/dist/ToolsTab-DUDJjlYF.cjs +7 -0
  312. package/dist/ToolsTab-DUDJjlYF.cjs.map +1 -0
  313. package/dist/{TopBar-DUdrFsMv.cjs → TopBar-BjOuytzL.cjs} +2 -2
  314. package/dist/{TopBar-DUdrFsMv.cjs.map → TopBar-BjOuytzL.cjs.map} +1 -1
  315. package/dist/{TopBar-DzxJ69Tt.js → TopBar-Cp-eD08M.js} +2 -2
  316. package/dist/{TopBar-DzxJ69Tt.js.map → TopBar-Cp-eD08M.js.map} +1 -1
  317. package/dist/{UpgradeToEnterpriseDialog-CujyHt2o.cjs → UpgradeToEnterpriseDialog-qZRe19Fu.cjs} +2 -2
  318. package/dist/{UpgradeToEnterpriseDialog-CujyHt2o.cjs.map → UpgradeToEnterpriseDialog-qZRe19Fu.cjs.map} +1 -1
  319. package/dist/{UpgradeToEnterpriseDialog-Bf6rEOgp.js → UpgradeToEnterpriseDialog-vJ0OQVxn.js} +2 -2
  320. package/dist/{UpgradeToEnterpriseDialog-Bf6rEOgp.js.map → UpgradeToEnterpriseDialog-vJ0OQVxn.js.map} +1 -1
  321. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-DMwcaglo.cjs +1501 -0
  322. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-DMwcaglo.cjs.map +1 -0
  323. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-gWC4BUC8.js} +10809 -10628
  324. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-gWC4BUC8.js.map +1 -0
  325. package/dist/{VWidget-BcwkHuIT.js → VWidget-DaN-EoJP.js} +44 -11
  326. package/dist/VWidget-DaN-EoJP.js.map +1 -0
  327. package/dist/VWidget-ZNfIJ3jY.cjs +2 -0
  328. package/dist/VWidget-ZNfIJ3jY.cjs.map +1 -0
  329. package/dist/{ValueWidget-CgAl2Av2.cjs → ValueWidget-13BmCi-I.cjs} +2 -2
  330. package/dist/{ValueWidget-CgAl2Av2.cjs.map → ValueWidget-13BmCi-I.cjs.map} +1 -1
  331. package/dist/{ValueWidget-BubIamVx.js → ValueWidget-Dj4GYuSK.js} +4 -4
  332. package/dist/{ValueWidget-BubIamVx.js.map → ValueWidget-Dj4GYuSK.js.map} +1 -1
  333. package/dist/{ValuelimitsbarWidget-DKTrV1RT.js → ValuelimitsbarWidget-B-IXXtXy.js} +4 -4
  334. package/dist/{ValuelimitsbarWidget-DKTrV1RT.js.map → ValuelimitsbarWidget-B-IXXtXy.js.map} +1 -1
  335. package/dist/{ValuelimitsbarWidget-Dn_sS0zt.cjs → ValuelimitsbarWidget-DF5QvEDx.cjs} +2 -2
  336. package/dist/{ValuelimitsbarWidget-Dn_sS0zt.cjs.map → ValuelimitsbarWidget-DF5QvEDx.cjs.map} +1 -1
  337. package/dist/{ValuelimitscolumnWidget-D8JIK4Zi.js → ValuelimitscolumnWidget-B3Xjqz_f.js} +4 -4
  338. package/dist/{ValuelimitscolumnWidget-D8JIK4Zi.js.map → ValuelimitscolumnWidget-B3Xjqz_f.js.map} +1 -1
  339. package/dist/{ValuelimitscolumnWidget-CGhifOZI.cjs → ValuelimitscolumnWidget-LXAi2ndd.cjs} +2 -2
  340. package/dist/{ValuelimitscolumnWidget-CGhifOZI.cjs.map → ValuelimitscolumnWidget-LXAi2ndd.cjs.map} +1 -1
  341. package/dist/{ValuerangebarWidget-D8hVKp0l.js → ValuerangebarWidget-Ct_CvpUg.js} +4 -4
  342. package/dist/{ValuerangebarWidget-D8hVKp0l.js.map → ValuerangebarWidget-Ct_CvpUg.js.map} +1 -1
  343. package/dist/{ValuerangebarWidget-DPtR-Dla.cjs → ValuerangebarWidget-DSmTRfls.cjs} +2 -2
  344. package/dist/{ValuerangebarWidget-DPtR-Dla.cjs.map → ValuerangebarWidget-DSmTRfls.cjs.map} +1 -1
  345. package/dist/{VerticalWidget-DMp3DXGa.js → VerticalWidget-BlEtS5Bs.js} +2 -2
  346. package/dist/{VerticalWidget-DMp3DXGa.js.map → VerticalWidget-BlEtS5Bs.js.map} +1 -1
  347. package/dist/{VerticalWidget-DScGTfwX.cjs → VerticalWidget-D4xAiojs.cjs} +2 -2
  348. package/dist/{VerticalWidget-DScGTfwX.cjs.map → VerticalWidget-D4xAiojs.cjs.map} +1 -1
  349. package/dist/{VerticalboxWidget-CIJ1c7WU.cjs → VerticalboxWidget-CDeA9ux8.cjs} +2 -2
  350. package/dist/{VerticalboxWidget-CIJ1c7WU.cjs.map → VerticalboxWidget-CDeA9ux8.cjs.map} +1 -1
  351. package/dist/{VerticalboxWidget-CVf1d_3_.js → VerticalboxWidget-rr_GslBl.js} +5 -5
  352. package/dist/{VerticalboxWidget-CVf1d_3_.js.map → VerticalboxWidget-rr_GslBl.js.map} +1 -1
  353. package/dist/{Widget-Btu2EoLT.cjs → Widget-BKmR1shJ.cjs} +2 -2
  354. package/dist/{Widget-Btu2EoLT.cjs.map → Widget-BKmR1shJ.cjs.map} +1 -1
  355. package/dist/{Widget-D4rzBHnr.js → Widget-DsHcvxJg.js} +2 -2
  356. package/dist/{Widget-D4rzBHnr.js.map → Widget-DsHcvxJg.js.map} +1 -1
  357. package/dist/components.cjs +2 -2
  358. package/dist/components.cjs.map +1 -1
  359. package/dist/components.js +23 -23
  360. package/dist/components.js.map +1 -1
  361. package/dist/index-D-zO4ghE.cjs +10 -0
  362. package/dist/index-D-zO4ghE.cjs.map +1 -0
  363. package/dist/{index-3k1IXN1T.js → index-DCtILi4r.js} +765 -622
  364. package/dist/index-DCtILi4r.js.map +1 -0
  365. package/dist/plugins.cjs +1 -1
  366. package/dist/plugins.cjs.map +1 -1
  367. package/dist/plugins.js +1 -1
  368. package/dist/plugins.js.map +1 -1
  369. package/dist/purify.es-B9BW70-4.cjs +3 -0
  370. package/dist/purify.es-B9BW70-4.cjs.map +1 -0
  371. package/dist/{purify.es-BGaRrCfO.js → purify.es-BIuh5IAZ.js} +116 -116
  372. package/dist/purify.es-BIuh5IAZ.js.map +1 -0
  373. package/dist/{settings-B9vbjzwV.cjs → settings-DgeeD3A4.cjs} +2 -2
  374. package/dist/{settings-B9vbjzwV.cjs.map → settings-DgeeD3A4.cjs.map} +1 -1
  375. package/dist/{settings-Ctcx_wMT.js → settings-RN52DDBd.js} +2 -2
  376. package/dist/{settings-Ctcx_wMT.js.map → settings-RN52DDBd.js.map} +1 -1
  377. package/dist/tools/admin.cjs +1 -1
  378. package/dist/tools/admin.js +13 -13
  379. package/dist/tools/base.cjs +1 -1
  380. package/dist/tools/base.cjs.map +1 -1
  381. package/dist/tools/base.js +5 -5
  382. package/dist/tools/base.js.map +1 -1
  383. package/dist/tools/calendar.cjs +1 -1
  384. package/dist/tools/calendar.js +1 -1
  385. package/dist/tools/scriptrunner.cjs +8 -8
  386. package/dist/tools/scriptrunner.cjs.map +1 -1
  387. package/dist/tools/scriptrunner.js +538 -515
  388. package/dist/tools/scriptrunner.js.map +1 -1
  389. package/dist/vue-common.css +1 -1
  390. package/dist/widgets.cjs +1 -1
  391. package/dist/widgets.js +64 -64
  392. package/package.json +12 -12
  393. package/dist/FormatvalueWidget-DTsP7isW.cjs +0 -2
  394. package/dist/Graph-C-7C2Jq5.js.map +0 -1
  395. package/dist/Graph-YYieRGo0.cjs +0 -2
  396. package/dist/Graph-YYieRGo0.cjs.map +0 -1
  397. package/dist/IframeWidget-D9Vh0w2c.js.map +0 -1
  398. package/dist/IframeWidget-xeXTxP_G.cjs +0 -2
  399. package/dist/IframeWidget-xeXTxP_G.cjs.map +0 -1
  400. package/dist/OpenC3TimePicker-6pE8gGCO.cjs +0 -2
  401. package/dist/OpenC3TimePicker-6pE8gGCO.cjs.map +0 -1
  402. package/dist/OpenC3TimePicker-D-_qqySI.js.map +0 -1
  403. package/dist/Openc3Screen-DYJHNotN.js.map +0 -1
  404. package/dist/Openc3Screen-Pu1ktpS8.cjs.map +0 -1
  405. package/dist/ScriptChooser-BmyV6QQD.cjs +0 -2
  406. package/dist/ScriptChooser-BmyV6QQD.cjs.map +0 -1
  407. package/dist/ScriptChooser-DCjI5aeZ.js.map +0 -1
  408. package/dist/SettingsTab-BrSkK_Fs.cjs +0 -3
  409. package/dist/SettingsTab-BrSkK_Fs.cjs.map +0 -1
  410. package/dist/SettingsTab-Dtj_AlEW.js.map +0 -1
  411. package/dist/ToolsTab-D4LFT4tV.cjs +0 -7
  412. package/dist/ToolsTab-D4LFT4tV.cjs.map +0 -1
  413. package/dist/ToolsTab-D5yhjVM0.js.map +0 -1
  414. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs +0 -1498
  415. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs.map +0 -1
  416. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js.map +0 -1
  417. package/dist/VWidget-BcwkHuIT.js.map +0 -1
  418. package/dist/VWidget-CbdjSkP3.cjs +0 -2
  419. package/dist/VWidget-CbdjSkP3.cjs.map +0 -1
  420. package/dist/index-3k1IXN1T.js.map +0 -1
  421. package/dist/index-DlWUR7vt.cjs +0 -7
  422. package/dist/index-DlWUR7vt.cjs.map +0 -1
  423. package/dist/purify.es-B608WQkR.cjs +0 -3
  424. package/dist/purify.es-B608WQkR.cjs.map +0 -1
  425. package/dist/purify.es-BGaRrCfO.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FilechecksumWidget-F_FX1Kjx.js","sources":["../src/widgets/FilechecksumWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card :style=\"computedStyle\" min-width=\"400\">\n <v-card-title class=\"d-flex align-center pa-2\">\n <span class=\"text-caption text-medium-emphasis font-weight-regular\">\n {{ files.length === 1 ? 'File Checksum' : 'File Checksum Comparison' }}\n </span>\n <v-spacer />\n <v-btn\n size=\"x-small\"\n icon=\"mdi-refresh\"\n variant=\"text\"\n :loading=\"loading\"\n @click=\"fetchChecksums\"\n />\n </v-card-title>\n <v-divider />\n <v-card-text class=\"pa-3\">\n <template v-for=\"(file, index) in files\" :key=\"index\">\n <div class=\"text-caption text-medium-emphasis mb-2\">\n {{ files.length === 1 ? 'File:' : `File ${index + 1}:` }}\n <span class=\"ml-1 text-high-emphasis\">{{ file.path }}</span>\n </div>\n <v-sheet\n :class=\"file.error ? 'text-error' : ''\"\n class=\"d-flex align-center ga-2 px-2 py-1 mb-3 rounded text-caption\"\n style=\"background-color: rgba(128, 128, 128, 0.2)\"\n >\n <span class=\"flex-grow-1 overflow-wrap-anywhere\">\n {{ getDisplayText(file) }}\n </span>\n <v-btn\n :icon=\"file.copied ? '$success' : 'mdi-content-copy'\"\n :color=\"file.copied ? 'success' : undefined\"\n :disabled=\"!file.checksum\"\n size=\"x-small\"\n variant=\"plain\"\n density=\"compact\"\n @click=\"copyChecksum(file)\"\n />\n </v-sheet>\n </template>\n\n <template v-if=\"files.length > 1\">\n <v-divider class=\"mb-3\" />\n <v-chip\n :color=\"matchStatus.color\"\n size=\"small\"\n variant=\"tonal\"\n label\n :prepend-icon=\"matchStatus.icon\"\n >\n {{ matchStatus.text }}\n </v-chip>\n </template>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n files: [],\n loading: false,\n }\n },\n computed: {\n match() {\n if (this.files.some((f) => f.error)) return false\n if (this.files.some((f) => !f.checksum)) return null\n const first = this.files[0].checksum\n return this.files.every((f) => f.checksum === first)\n },\n matchStatus() {\n const states = {\n null: { icon: '$info', color: 'grey', text: 'Comparing...' },\n true: { icon: '$success', color: 'success', text: 'Checksums Match' },\n false: {\n icon: '$error',\n color: 'error',\n text: this.files.some((f) => f.error)\n ? 'Error loading file(s)'\n : 'Checksums Do Not Match',\n },\n }\n return states[this.match]\n },\n },\n created() {\n this.files = this.parameters\n .filter((p) => p)\n .map((path) => ({ path, checksum: null, error: null, copied: false }))\n },\n mounted() {\n if (this.files.length) {\n this.fetchChecksums()\n }\n },\n methods: {\n getDisplayText(file) {\n if (file.error) return `Error: ${file.error}`\n if (file.checksum) return file.checksum\n if (this.loading) return 'Loading...'\n return 'Not loaded'\n },\n async computeChecksum(content) {\n const encoder = new TextEncoder()\n const data = encoder.encode(content)\n const hashBuffer = await crypto.subtle.digest('SHA-256', data)\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('')\n },\n async fetchFile(filePath) {\n const scope = window.openc3Scope || 'DEFAULT'\n let objectPath = `${scope}/targets_modified/${filePath}`\n let response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n {\n params: { bucket: 'OPENC3_CONFIG_BUCKET' },\n headers: { 'Ignore-Errors': '404,500' },\n },\n ).catch(() => null)\n\n if (!response || response.status === 404) {\n objectPath = `${scope}/targets/${filePath}`\n response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n { params: { bucket: 'OPENC3_CONFIG_BUCKET' } },\n )\n }\n\n if (response?.data?.contents) {\n return atob(response.data.contents)\n }\n throw new Error('File not found')\n },\n async copyChecksum(file) {\n if (!file.checksum) return\n try {\n await navigator.clipboard.writeText(file.checksum)\n file.copied = true\n setTimeout(() => (file.copied = false), 2000)\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Failed to copy checksum:', err)\n }\n },\n async fetchChecksums() {\n this.loading = true\n this.files.forEach((f) => {\n f.checksum = null\n f.error = null\n })\n\n const results = await Promise.all(\n this.files.map((file) =>\n this.fetchFile(file.path)\n .then((content) => this.computeChecksum(content))\n .catch((err) => ({ error: err.message || 'File not found' })),\n ),\n )\n\n results.forEach((result, i) => {\n if (result?.error) {\n this.files[i].error = result.error\n } else {\n this.files[i].checksum = result\n }\n })\n\n this.loading = false\n },\n },\n}\n</script>\n\n<style scoped>\n.overflow-wrap-anywhere {\n overflow-wrap: anywhere;\n}\n</style>\n"],"names":["_sfc_main","Widget","f","first","p","path","file","content","data","hashBuffer","b","filePath","scope","objectPath","response","Api","_a","err","result","i","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_createBlock","_component_v_card","_ctx","_createVNode","_component_v_card_title","_createElementVNode","_toDisplayString","$data","_component_v_spacer","_component_v_btn","$options","_component_v_divider","_component_v_card_text","_openBlock","_createElementBlock","_Fragment","_renderList","index","_createTextVNode","_component_v_sheet","_normalizeClass","$event","_component_v_chip"],"mappings":"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"}
1
+ {"version":3,"file":"FilechecksumWidget-BlZ_YlAn.js","sources":["../src/widgets/FilechecksumWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card :style=\"computedStyle\" min-width=\"400\">\n <v-card-title class=\"d-flex align-center pa-2\">\n <span class=\"text-caption text-medium-emphasis font-weight-regular\">\n {{ files.length === 1 ? 'File Checksum' : 'File Checksum Comparison' }}\n </span>\n <v-spacer />\n <v-btn\n size=\"x-small\"\n icon=\"mdi-refresh\"\n variant=\"text\"\n :loading=\"loading\"\n @click=\"fetchChecksums\"\n />\n </v-card-title>\n <v-divider />\n <v-card-text class=\"pa-3\">\n <template v-for=\"(file, index) in files\" :key=\"index\">\n <div class=\"text-caption text-medium-emphasis mb-2\">\n {{ files.length === 1 ? 'File:' : `File ${index + 1}:` }}\n <span class=\"ml-1 text-high-emphasis\">{{ file.path }}</span>\n </div>\n <v-sheet\n :class=\"file.error ? 'text-error' : ''\"\n class=\"d-flex align-center ga-2 px-2 py-1 mb-3 rounded text-caption\"\n style=\"background-color: rgba(128, 128, 128, 0.2)\"\n >\n <span class=\"flex-grow-1 overflow-wrap-anywhere\">\n {{ getDisplayText(file) }}\n </span>\n <v-btn\n :icon=\"file.copied ? '$success' : 'mdi-content-copy'\"\n :color=\"file.copied ? 'success' : undefined\"\n :disabled=\"!file.checksum\"\n size=\"x-small\"\n variant=\"plain\"\n density=\"compact\"\n @click=\"copyChecksum(file)\"\n />\n </v-sheet>\n </template>\n\n <template v-if=\"files.length > 1\">\n <v-divider class=\"mb-3\" />\n <v-chip\n :color=\"matchStatus.color\"\n size=\"small\"\n variant=\"tonal\"\n label\n :prepend-icon=\"matchStatus.icon\"\n >\n {{ matchStatus.text }}\n </v-chip>\n </template>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n files: [],\n loading: false,\n }\n },\n computed: {\n match() {\n if (this.files.some((f) => f.error)) return false\n if (this.files.some((f) => !f.checksum)) return null\n const first = this.files[0].checksum\n return this.files.every((f) => f.checksum === first)\n },\n matchStatus() {\n const states = {\n null: { icon: '$info', color: 'grey', text: 'Comparing...' },\n true: { icon: '$success', color: 'success', text: 'Checksums Match' },\n false: {\n icon: '$error',\n color: 'error',\n text: this.files.some((f) => f.error)\n ? 'Error loading file(s)'\n : 'Checksums Do Not Match',\n },\n }\n return states[this.match]\n },\n },\n created() {\n this.files = this.parameters\n .filter((p) => p)\n .map((path) => ({ path, checksum: null, error: null, copied: false }))\n },\n mounted() {\n if (this.files.length) {\n this.fetchChecksums()\n }\n },\n methods: {\n getDisplayText(file) {\n if (file.error) return `Error: ${file.error}`\n if (file.checksum) return file.checksum\n if (this.loading) return 'Loading...'\n return 'Not loaded'\n },\n async computeChecksum(content) {\n const encoder = new TextEncoder()\n const data = encoder.encode(content)\n const hashBuffer = await crypto.subtle.digest('SHA-256', data)\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('')\n },\n async fetchFile(filePath) {\n const scope = window.openc3Scope || 'DEFAULT'\n let objectPath = `${scope}/targets_modified/${filePath}`\n let response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n {\n params: { bucket: 'OPENC3_CONFIG_BUCKET' },\n headers: { 'Ignore-Errors': '404,500' },\n },\n ).catch(() => null)\n\n if (!response || response.status === 404) {\n objectPath = `${scope}/targets/${filePath}`\n response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n { params: { bucket: 'OPENC3_CONFIG_BUCKET' } },\n )\n }\n\n if (response?.data?.contents) {\n return atob(response.data.contents)\n }\n throw new Error('File not found')\n },\n async copyChecksum(file) {\n if (!file.checksum) return\n try {\n await navigator.clipboard.writeText(file.checksum)\n file.copied = true\n setTimeout(() => (file.copied = false), 2000)\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Failed to copy checksum:', err)\n }\n },\n async fetchChecksums() {\n this.loading = true\n this.files.forEach((f) => {\n f.checksum = null\n f.error = null\n })\n\n const results = await Promise.all(\n this.files.map((file) =>\n this.fetchFile(file.path)\n .then((content) => this.computeChecksum(content))\n .catch((err) => ({ error: err.message || 'File not found' })),\n ),\n )\n\n results.forEach((result, i) => {\n if (result?.error) {\n this.files[i].error = result.error\n } else {\n this.files[i].checksum = result\n }\n })\n\n this.loading = false\n },\n },\n}\n</script>\n\n<style scoped>\n.overflow-wrap-anywhere {\n overflow-wrap: anywhere;\n}\n</style>\n"],"names":["_sfc_main","Widget","f","first","p","path","file","content","data","hashBuffer","b","filePath","scope","objectPath","response","Api","_a","err","result","i","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_createBlock","_component_v_card","_ctx","_createVNode","_component_v_card_title","_createElementVNode","_toDisplayString","$data","_component_v_spacer","_component_v_btn","$options","_component_v_divider","_component_v_card_text","_openBlock","_createElementBlock","_Fragment","_renderList","index","_createTextVNode","_component_v_sheet","_normalizeClass","$event","_component_v_chip"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs"),m=require("./Widget-Btu2EoLT.cjs"),e=require("vue"),_=require("./CustomIcon-CEc927h0.cjs"),u={mixins:[m.Widget],data(){return{filePath:"",fileContent:"Loading...",loading:!1,width:600,height:300,editor:null}},computed:{contentStyle(){return{width:this.width+"px",height:this.height+"px"}},aceMode(){var o;const r=(o=this.filePath.split(".").pop())==null?void 0:o.toLowerCase();return{json:"ace/mode/json",rb:"ace/mode/ruby",py:"ace/mode/python",txt:"ace/mode/text"}[r]||"ace/mode/text"}},created(){this.parameters[0]&&(this.filePath=this.parameters[0]),this.parameters[1]&&(this.width=parseInt(this.parameters[1])),this.parameters[2]&&(this.height=parseInt(this.parameters[2]))},mounted(){this.editor=s.aceExports.edit(this.$refs.editor),this.editor.setTheme("ace/theme/twilight"),this.editor.setReadOnly(!0),this.editor.setShowPrintMargin(!1),this.editor.setHighlightActiveLine(!1),this.editor.renderer.setShowGutter(!1),this.editor.renderer.setScrollMargin(8,8,0,0),this.editor.renderer.setPadding(8),this.editor.setValue(this.fileContent,-1),this.filePath&&this.fetchFile()},beforeUnmount(){this.editor&&(this.editor.destroy(),this.editor.container.remove())},methods:{updateEditor(){this.editor&&(this.editor.session.setMode(this.aceMode),this.editor.setValue(this.fileContent,-1))},async fetchFile(){var r;if(!this.filePath){this.fileContent='Error: No file path specified. Usage: FILEDISPLAY "TARGET/path/to/file.txt"',this.updateEditor();return}this.loading=!0;try{const i=window.openc3Scope||"DEFAULT";let o=`${i}/targets_modified/${this.filePath}`,t=await s.fi.get(`/openc3-api/storage/download_file/${encodeURIComponent(o)}`,{params:{bucket:"OPENC3_CONFIG_BUCKET"},headers:{"Ignore-Errors":"404,500"}}).catch(()=>null);(!t||t.status===404)&&(o=`${i}/targets/${this.filePath}`,t=await s.fi.get(`/openc3-api/storage/download_file/${encodeURIComponent(o)}`,{params:{bucket:"OPENC3_CONFIG_BUCKET"}})),(r=t==null?void 0:t.data)!=null&&r.contents?this.fileContent=atob(t.data.contents):this.fileContent="Error: Could not load file"}catch(i){this.fileContent=`Error: ${i.message||i}`}finally{this.loading=!1,this.updateEditor()}}}},g={class:"text-caption text-medium-emphasis font-weight-regular"};function C(r,i,o,t,n,a){const d=e.resolveComponent("v-spacer"),l=e.resolveComponent("v-btn"),c=e.resolveComponent("v-card-title"),h=e.resolveComponent("v-divider"),p=e.resolveComponent("v-card-text"),f=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(f,{style:e.normalizeStyle(r.computedStyle)},{default:e.withCtx(()=>[e.createVNode(c,{class:"d-flex align-center pa-2"},{default:e.withCtx(()=>[e.createElementVNode("span",g,e.toDisplayString(n.filePath),1),e.createVNode(d),e.createVNode(l,{size:"x-small",icon:"mdi-refresh",variant:"text",loading:n.loading,onClick:a.fetchFile},null,8,["loading","onClick"])]),_:1}),e.createVNode(h),e.createVNode(p,{class:"pa-0"},{default:e.withCtx(()=>[e.createElementVNode("div",{ref:"editor",style:e.normalizeStyle(a.contentStyle)},null,4)]),_:1})]),_:1},8,["style"])}const v=_._export_sfc(u,[["render",C]]);exports.default=v;
2
- //# sourceMappingURL=FiledisplayWidget-BHLOY_cM.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-DMwcaglo.cjs"),m=require("./Widget-BKmR1shJ.cjs"),e=require("vue"),_=require("./CustomIcon-CEc927h0.cjs"),u={mixins:[m.Widget],data(){return{filePath:"",fileContent:"Loading...",loading:!1,width:600,height:300,editor:null}},computed:{contentStyle(){return{width:this.width+"px",height:this.height+"px"}},aceMode(){var o;const r=(o=this.filePath.split(".").pop())==null?void 0:o.toLowerCase();return{json:"ace/mode/json",rb:"ace/mode/ruby",py:"ace/mode/python",txt:"ace/mode/text"}[r]||"ace/mode/text"}},created(){this.parameters[0]&&(this.filePath=this.parameters[0]),this.parameters[1]&&(this.width=parseInt(this.parameters[1])),this.parameters[2]&&(this.height=parseInt(this.parameters[2]))},mounted(){this.editor=s.aceExports.edit(this.$refs.editor),this.editor.setTheme("ace/theme/twilight"),this.editor.setReadOnly(!0),this.editor.setShowPrintMargin(!1),this.editor.setHighlightActiveLine(!1),this.editor.renderer.setShowGutter(!1),this.editor.renderer.setScrollMargin(8,8,0,0),this.editor.renderer.setPadding(8),this.editor.setValue(this.fileContent,-1),this.filePath&&this.fetchFile()},beforeUnmount(){this.editor&&(this.editor.destroy(),this.editor.container.remove())},methods:{updateEditor(){this.editor&&(this.editor.session.setMode(this.aceMode),this.editor.setValue(this.fileContent,-1))},async fetchFile(){var r;if(!this.filePath){this.fileContent='Error: No file path specified. Usage: FILEDISPLAY "TARGET/path/to/file.txt"',this.updateEditor();return}this.loading=!0;try{const i=window.openc3Scope||"DEFAULT";let o=`${i}/targets_modified/${this.filePath}`,t=await s.Ei.get(`/openc3-api/storage/download_file/${encodeURIComponent(o)}`,{params:{bucket:"OPENC3_CONFIG_BUCKET"},headers:{"Ignore-Errors":"404,500"}}).catch(()=>null);(!t||t.status===404)&&(o=`${i}/targets/${this.filePath}`,t=await s.Ei.get(`/openc3-api/storage/download_file/${encodeURIComponent(o)}`,{params:{bucket:"OPENC3_CONFIG_BUCKET"}})),(r=t==null?void 0:t.data)!=null&&r.contents?this.fileContent=atob(t.data.contents):this.fileContent="Error: Could not load file"}catch(i){this.fileContent=`Error: ${i.message||i}`}finally{this.loading=!1,this.updateEditor()}}}},g={class:"text-caption text-medium-emphasis font-weight-regular"};function C(r,i,o,t,n,a){const d=e.resolveComponent("v-spacer"),l=e.resolveComponent("v-btn"),c=e.resolveComponent("v-card-title"),h=e.resolveComponent("v-divider"),p=e.resolveComponent("v-card-text"),f=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(f,{style:e.normalizeStyle(r.computedStyle)},{default:e.withCtx(()=>[e.createVNode(c,{class:"d-flex align-center pa-2"},{default:e.withCtx(()=>[e.createElementVNode("span",g,e.toDisplayString(n.filePath),1),e.createVNode(d),e.createVNode(l,{size:"x-small",icon:"mdi-refresh",variant:"text",loading:n.loading,onClick:a.fetchFile},null,8,["loading","onClick"])]),_:1}),e.createVNode(h),e.createVNode(p,{class:"pa-0"},{default:e.withCtx(()=>[e.createElementVNode("div",{ref:"editor",style:e.normalizeStyle(a.contentStyle)},null,4)]),_:1})]),_:1},8,["style"])}const v=_._export_sfc(u,[["render",C]]);exports.default=v;
2
+ //# sourceMappingURL=FiledisplayWidget-B9YTU5-X.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FiledisplayWidget-BHLOY_cM.cjs","sources":["../src/widgets/FiledisplayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card :style=\"computedStyle\">\n <v-card-title class=\"d-flex align-center pa-2\">\n <span class=\"text-caption text-medium-emphasis font-weight-regular\">\n {{ filePath }}\n </span>\n <v-spacer />\n <v-btn\n size=\"x-small\"\n icon=\"mdi-refresh\"\n variant=\"text\"\n :loading=\"loading\"\n @click=\"fetchFile\"\n />\n </v-card-title>\n <v-divider />\n <v-card-text class=\"pa-0\">\n <div ref=\"editor\" :style=\"contentStyle\"></div>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/mode-text'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport { Api } from '@openc3/js-common/services'\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n filePath: '',\n fileContent: 'Loading...',\n loading: false,\n width: 600,\n height: 300,\n editor: null,\n }\n },\n computed: {\n contentStyle() {\n return {\n width: this.width + 'px',\n height: this.height + 'px',\n }\n },\n aceMode() {\n const ext = this.filePath.split('.').pop()?.toLowerCase()\n const modeMap = {\n json: 'ace/mode/json',\n rb: 'ace/mode/ruby',\n py: 'ace/mode/python',\n txt: 'ace/mode/text',\n }\n return modeMap[ext] || 'ace/mode/text'\n },\n },\n created() {\n // Parameter 0: File path (required) e.g. \"INST/procedures/test.txt\"\n // Parameter 1: Width (optional, default 600)\n // Parameter 2: Height (optional, default 300)\n if (this.parameters[0]) {\n this.filePath = this.parameters[0]\n }\n if (this.parameters[1]) {\n this.width = parseInt(this.parameters[1])\n }\n if (this.parameters[2]) {\n this.height = parseInt(this.parameters[2])\n }\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n this.editor.setReadOnly(true)\n this.editor.setShowPrintMargin(false)\n this.editor.setHighlightActiveLine(false)\n this.editor.renderer.setShowGutter(false)\n this.editor.renderer.setScrollMargin(8, 8, 0, 0)\n this.editor.renderer.setPadding(8)\n this.editor.setValue(this.fileContent, -1)\n\n if (this.filePath) {\n this.fetchFile()\n }\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n this.editor.container.remove()\n }\n },\n methods: {\n updateEditor() {\n if (this.editor) {\n this.editor.session.setMode(this.aceMode)\n this.editor.setValue(this.fileContent, -1)\n }\n },\n async fetchFile() {\n if (!this.filePath) {\n this.fileContent =\n 'Error: No file path specified. Usage: FILEDISPLAY \"TARGET/path/to/file.txt\"'\n this.updateEditor()\n return\n }\n this.loading = true\n try {\n const scope = window.openc3Scope || 'DEFAULT'\n // Try targets_modified first, then fall back to targets\n // Use Ignore-Errors header to suppress toast for expected 404/500\n let objectPath = `${scope}/targets_modified/${this.filePath}`\n let response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n {\n params: { bucket: 'OPENC3_CONFIG_BUCKET' },\n headers: { 'Ignore-Errors': '404,500' },\n },\n ).catch(() => null)\n\n if (!response || response.status === 404) {\n objectPath = `${scope}/targets/${this.filePath}`\n response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n { params: { bucket: 'OPENC3_CONFIG_BUCKET' } },\n )\n }\n\n if (response?.data?.contents) {\n this.fileContent = atob(response.data.contents)\n } else {\n this.fileContent = 'Error: Could not load file'\n }\n } catch (error) {\n this.fileContent = `Error: ${error.message || error}`\n } finally {\n this.loading = false\n this.updateEditor()\n }\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","ext","_a","ace.edit","scope","objectPath","response","Api","error","_hoisted_1","_createBlock","_component_v_card","_ctx","_createVNode","_component_v_card_title","_createElementVNode","_toDisplayString","$data","_component_v_spacer","_component_v_btn","$options","_component_v_divider","_component_v_card_text"],"mappings":"uRAkDKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,SAAU,GACV,YAAa,aACb,QAAS,GACT,MAAO,IACP,OAAQ,IACR,OAAQ,IACV,CACF,EACA,SAAU,CACR,cAAe,CACb,MAAO,CACL,MAAO,KAAK,MAAQ,KACpB,OAAQ,KAAK,OAAS,IACxB,CACF,EACA,SAAU,OACR,MAAMC,GAAMC,EAAA,KAAK,SAAS,MAAM,GAAG,EAAE,IAAG,IAA5B,YAAAA,EAAgC,cAO5C,MANgB,CACd,KAAM,gBACN,GAAI,gBACJ,GAAI,kBACJ,IAAK,eACP,EACeD,CAAG,GAAK,eACzB,GAEF,SAAU,CAIJ,KAAK,WAAW,CAAC,IACnB,KAAK,SAAW,KAAK,WAAW,CAAC,GAE/B,KAAK,WAAW,CAAC,IACnB,KAAK,MAAQ,SAAS,KAAK,WAAW,CAAC,CAAC,GAEtC,KAAK,WAAW,CAAC,IACnB,KAAK,OAAS,SAAS,KAAK,WAAW,CAAC,CAAC,EAE7C,EACA,SAAU,CACR,KAAK,OAASE,EAAAA,WAAAA,KAAS,KAAK,MAAM,MAAM,EACxC,KAAK,OAAO,SAAS,oBAAoB,EACzC,KAAK,OAAO,YAAY,EAAI,EAC5B,KAAK,OAAO,mBAAmB,EAAK,EACpC,KAAK,OAAO,uBAAuB,EAAK,EACxC,KAAK,OAAO,SAAS,cAAc,EAAK,EACxC,KAAK,OAAO,SAAS,gBAAgB,EAAG,EAAG,EAAG,CAAC,EAC/C,KAAK,OAAO,SAAS,WAAW,CAAC,EACjC,KAAK,OAAO,SAAS,KAAK,YAAa,EAAE,EAErC,KAAK,UACP,KAAK,UAAS,CAElB,EACA,eAAgB,CACV,KAAK,SACP,KAAK,OAAO,QAAO,EACnB,KAAK,OAAO,UAAU,OAAM,EAEhC,EACA,QAAS,CACP,cAAe,CACT,KAAK,SACP,KAAK,OAAO,QAAQ,QAAQ,KAAK,OAAO,EACxC,KAAK,OAAO,SAAS,KAAK,YAAa,EAAE,EAE7C,EACA,MAAM,WAAY,OAChB,GAAI,CAAC,KAAK,SAAU,CAClB,KAAK,YACH,8EACF,KAAK,aAAY,EACjB,MACF,CACA,KAAK,QAAU,GACf,GAAI,CACF,MAAMC,EAAQ,OAAO,aAAe,UAGpC,IAAIC,EAAa,GAAGD,CAAK,qBAAqB,KAAK,QAAQ,GACvDE,EAAW,MAAMC,EAAAA,GAAI,IACvB,qCAAqC,mBAAmBF,CAAU,CAAC,GACnE,CACE,OAAQ,CAAE,OAAQ,wBAClB,QAAS,CAAE,gBAAiB,WAEhC,EAAE,MAAM,IAAM,IAAI,GAEd,CAACC,GAAYA,EAAS,SAAW,OACnCD,EAAa,GAAGD,CAAK,YAAY,KAAK,QAAQ,GAC9CE,EAAW,MAAMC,EAAAA,GAAI,IACnB,qCAAqC,mBAAmBF,CAAU,CAAC,GACnE,CAAE,OAAQ,CAAE,OAAQ,wBACtB,IAGEH,EAAAI,GAAA,YAAAA,EAAU,OAAV,MAAAJ,EAAgB,SAClB,KAAK,YAAc,KAAKI,EAAS,KAAK,QAAQ,EAE9C,KAAK,YAAc,4BAEvB,OAASE,EAAO,CACd,KAAK,YAAc,UAAUA,EAAM,SAAWA,CAAK,EACrD,QAAA,CACE,KAAK,QAAU,GACf,KAAK,aAAY,CACnB,CACF,EAEJ,EA/IYC,EAAA,CAAA,MAAM,uDAAuD,8PAFvEC,EAAAA,YAkBSC,EAAA,CAlBA,uBAAOC,EAAA,aAAa,sBAC3B,IAYe,CAZfC,EAAAA,YAYeC,EAAA,CAZD,MAAM,0BAA0B,EAAA,mBAC5C,IAEO,CAFPC,EAAAA,mBAEO,OAFPN,EAEOO,EAAAA,gBADFC,EAAA,QAAQ,EAAA,CAAA,EAEbJ,EAAAA,YAAYK,CAAA,EACZL,EAAAA,YAMEM,EAAA,CALA,KAAK,UACL,KAAK,cACL,QAAQ,OACP,QAASF,EAAA,QACT,QAAOG,EAAA,iDAGZP,EAAAA,YAAaQ,CAAA,EACbR,EAAAA,YAEcS,EAAA,CAFD,MAAM,MAAM,EAAA,mBACvB,IAA8C,CAA9CP,EAAAA,mBAA8C,MAAA,CAAzC,IAAI,SAAU,uBAAOK,EAAA,YAAY"}
1
+ {"version":3,"file":"FiledisplayWidget-B9YTU5-X.cjs","sources":["../src/widgets/FiledisplayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card :style=\"computedStyle\">\n <v-card-title class=\"d-flex align-center pa-2\">\n <span class=\"text-caption text-medium-emphasis font-weight-regular\">\n {{ filePath }}\n </span>\n <v-spacer />\n <v-btn\n size=\"x-small\"\n icon=\"mdi-refresh\"\n variant=\"text\"\n :loading=\"loading\"\n @click=\"fetchFile\"\n />\n </v-card-title>\n <v-divider />\n <v-card-text class=\"pa-0\">\n <div ref=\"editor\" :style=\"contentStyle\"></div>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/mode-text'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport { Api } from '@openc3/js-common/services'\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n filePath: '',\n fileContent: 'Loading...',\n loading: false,\n width: 600,\n height: 300,\n editor: null,\n }\n },\n computed: {\n contentStyle() {\n return {\n width: this.width + 'px',\n height: this.height + 'px',\n }\n },\n aceMode() {\n const ext = this.filePath.split('.').pop()?.toLowerCase()\n const modeMap = {\n json: 'ace/mode/json',\n rb: 'ace/mode/ruby',\n py: 'ace/mode/python',\n txt: 'ace/mode/text',\n }\n return modeMap[ext] || 'ace/mode/text'\n },\n },\n created() {\n // Parameter 0: File path (required) e.g. \"INST/procedures/test.txt\"\n // Parameter 1: Width (optional, default 600)\n // Parameter 2: Height (optional, default 300)\n if (this.parameters[0]) {\n this.filePath = this.parameters[0]\n }\n if (this.parameters[1]) {\n this.width = parseInt(this.parameters[1])\n }\n if (this.parameters[2]) {\n this.height = parseInt(this.parameters[2])\n }\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n this.editor.setReadOnly(true)\n this.editor.setShowPrintMargin(false)\n this.editor.setHighlightActiveLine(false)\n this.editor.renderer.setShowGutter(false)\n this.editor.renderer.setScrollMargin(8, 8, 0, 0)\n this.editor.renderer.setPadding(8)\n this.editor.setValue(this.fileContent, -1)\n\n if (this.filePath) {\n this.fetchFile()\n }\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n this.editor.container.remove()\n }\n },\n methods: {\n updateEditor() {\n if (this.editor) {\n this.editor.session.setMode(this.aceMode)\n this.editor.setValue(this.fileContent, -1)\n }\n },\n async fetchFile() {\n if (!this.filePath) {\n this.fileContent =\n 'Error: No file path specified. Usage: FILEDISPLAY \"TARGET/path/to/file.txt\"'\n this.updateEditor()\n return\n }\n this.loading = true\n try {\n const scope = window.openc3Scope || 'DEFAULT'\n // Try targets_modified first, then fall back to targets\n // Use Ignore-Errors header to suppress toast for expected 404/500\n let objectPath = `${scope}/targets_modified/${this.filePath}`\n let response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n {\n params: { bucket: 'OPENC3_CONFIG_BUCKET' },\n headers: { 'Ignore-Errors': '404,500' },\n },\n ).catch(() => null)\n\n if (!response || response.status === 404) {\n objectPath = `${scope}/targets/${this.filePath}`\n response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n { params: { bucket: 'OPENC3_CONFIG_BUCKET' } },\n )\n }\n\n if (response?.data?.contents) {\n this.fileContent = atob(response.data.contents)\n } else {\n this.fileContent = 'Error: Could not load file'\n }\n } catch (error) {\n this.fileContent = `Error: ${error.message || error}`\n } finally {\n this.loading = false\n this.updateEditor()\n }\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","ext","_a","ace.edit","scope","objectPath","response","Api","error","_hoisted_1","_createBlock","_component_v_card","_ctx","_createVNode","_component_v_card_title","_createElementVNode","_toDisplayString","$data","_component_v_spacer","_component_v_btn","$options","_component_v_divider","_component_v_card_text"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { f as l, a as C } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js";
2
- import { W as v } from "./Widget-D4rzBHnr.js";
3
- import { resolveComponent as s, createBlock as x, openBlock as y, normalizeStyle as h, withCtx as a, createVNode as r, createElementVNode as c, toDisplayString as w } from "vue";
4
- import { _ as E } from "./CustomIcon-B9m73Gqm.js";
1
+ import { E as l, a as C } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-gWC4BUC8.js";
2
+ import { W as v } from "./Widget-DsHcvxJg.js";
3
+ import { resolveComponent as s, createBlock as x, openBlock as E, normalizeStyle as h, withCtx as a, createVNode as r, createElementVNode as c, toDisplayString as y } from "vue";
4
+ import { _ as w } from "./CustomIcon-B9m73Gqm.js";
5
5
  const P = {
6
6
  mixins: [v],
7
7
  data() {
@@ -75,13 +75,13 @@ const P = {
75
75
  }, S = { class: "text-caption text-medium-emphasis font-weight-regular" };
76
76
  function b(o, e, i, t, n, d) {
77
77
  const p = s("v-spacer"), f = s("v-btn"), m = s("v-card-title"), _ = s("v-divider"), u = s("v-card-text"), g = s("v-card");
78
- return y(), x(g, {
78
+ return E(), x(g, {
79
79
  style: h(o.computedStyle)
80
80
  }, {
81
81
  default: a(() => [
82
82
  r(m, { class: "d-flex align-center pa-2" }, {
83
83
  default: a(() => [
84
- c("span", S, w(n.filePath), 1),
84
+ c("span", S, y(n.filePath), 1),
85
85
  r(p),
86
86
  r(f, {
87
87
  size: "x-small",
@@ -107,8 +107,8 @@ function b(o, e, i, t, n, d) {
107
107
  _: 1
108
108
  }, 8, ["style"]);
109
109
  }
110
- const N = /* @__PURE__ */ E(P, [["render", b]]);
110
+ const N = /* @__PURE__ */ w(P, [["render", b]]);
111
111
  export {
112
112
  N as default
113
113
  };
114
- //# sourceMappingURL=FiledisplayWidget-BF3G22jF.js.map
114
+ //# sourceMappingURL=FiledisplayWidget-TJ2RL43-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FiledisplayWidget-BF3G22jF.js","sources":["../src/widgets/FiledisplayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card :style=\"computedStyle\">\n <v-card-title class=\"d-flex align-center pa-2\">\n <span class=\"text-caption text-medium-emphasis font-weight-regular\">\n {{ filePath }}\n </span>\n <v-spacer />\n <v-btn\n size=\"x-small\"\n icon=\"mdi-refresh\"\n variant=\"text\"\n :loading=\"loading\"\n @click=\"fetchFile\"\n />\n </v-card-title>\n <v-divider />\n <v-card-text class=\"pa-0\">\n <div ref=\"editor\" :style=\"contentStyle\"></div>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/mode-text'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport { Api } from '@openc3/js-common/services'\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n filePath: '',\n fileContent: 'Loading...',\n loading: false,\n width: 600,\n height: 300,\n editor: null,\n }\n },\n computed: {\n contentStyle() {\n return {\n width: this.width + 'px',\n height: this.height + 'px',\n }\n },\n aceMode() {\n const ext = this.filePath.split('.').pop()?.toLowerCase()\n const modeMap = {\n json: 'ace/mode/json',\n rb: 'ace/mode/ruby',\n py: 'ace/mode/python',\n txt: 'ace/mode/text',\n }\n return modeMap[ext] || 'ace/mode/text'\n },\n },\n created() {\n // Parameter 0: File path (required) e.g. \"INST/procedures/test.txt\"\n // Parameter 1: Width (optional, default 600)\n // Parameter 2: Height (optional, default 300)\n if (this.parameters[0]) {\n this.filePath = this.parameters[0]\n }\n if (this.parameters[1]) {\n this.width = parseInt(this.parameters[1])\n }\n if (this.parameters[2]) {\n this.height = parseInt(this.parameters[2])\n }\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n this.editor.setReadOnly(true)\n this.editor.setShowPrintMargin(false)\n this.editor.setHighlightActiveLine(false)\n this.editor.renderer.setShowGutter(false)\n this.editor.renderer.setScrollMargin(8, 8, 0, 0)\n this.editor.renderer.setPadding(8)\n this.editor.setValue(this.fileContent, -1)\n\n if (this.filePath) {\n this.fetchFile()\n }\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n this.editor.container.remove()\n }\n },\n methods: {\n updateEditor() {\n if (this.editor) {\n this.editor.session.setMode(this.aceMode)\n this.editor.setValue(this.fileContent, -1)\n }\n },\n async fetchFile() {\n if (!this.filePath) {\n this.fileContent =\n 'Error: No file path specified. Usage: FILEDISPLAY \"TARGET/path/to/file.txt\"'\n this.updateEditor()\n return\n }\n this.loading = true\n try {\n const scope = window.openc3Scope || 'DEFAULT'\n // Try targets_modified first, then fall back to targets\n // Use Ignore-Errors header to suppress toast for expected 404/500\n let objectPath = `${scope}/targets_modified/${this.filePath}`\n let response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n {\n params: { bucket: 'OPENC3_CONFIG_BUCKET' },\n headers: { 'Ignore-Errors': '404,500' },\n },\n ).catch(() => null)\n\n if (!response || response.status === 404) {\n objectPath = `${scope}/targets/${this.filePath}`\n response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n { params: { bucket: 'OPENC3_CONFIG_BUCKET' } },\n )\n }\n\n if (response?.data?.contents) {\n this.fileContent = atob(response.data.contents)\n } else {\n this.fileContent = 'Error: Could not load file'\n }\n } catch (error) {\n this.fileContent = `Error: ${error.message || error}`\n } finally {\n this.loading = false\n this.updateEditor()\n }\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","ext","_a","ace.edit","scope","objectPath","response","Api","error","_hoisted_1","_createBlock","_component_v_card","_ctx","_createVNode","_component_v_card_title","_createElementVNode","_toDisplayString","$data","_component_v_spacer","_component_v_btn","$options","_component_v_divider","_component_v_card_text"],"mappings":"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"}
1
+ {"version":3,"file":"FiledisplayWidget-TJ2RL43-.js","sources":["../src/widgets/FiledisplayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card :style=\"computedStyle\">\n <v-card-title class=\"d-flex align-center pa-2\">\n <span class=\"text-caption text-medium-emphasis font-weight-regular\">\n {{ filePath }}\n </span>\n <v-spacer />\n <v-btn\n size=\"x-small\"\n icon=\"mdi-refresh\"\n variant=\"text\"\n :loading=\"loading\"\n @click=\"fetchFile\"\n />\n </v-card-title>\n <v-divider />\n <v-card-text class=\"pa-0\">\n <div ref=\"editor\" :style=\"contentStyle\"></div>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/mode-text'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport { Api } from '@openc3/js-common/services'\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n filePath: '',\n fileContent: 'Loading...',\n loading: false,\n width: 600,\n height: 300,\n editor: null,\n }\n },\n computed: {\n contentStyle() {\n return {\n width: this.width + 'px',\n height: this.height + 'px',\n }\n },\n aceMode() {\n const ext = this.filePath.split('.').pop()?.toLowerCase()\n const modeMap = {\n json: 'ace/mode/json',\n rb: 'ace/mode/ruby',\n py: 'ace/mode/python',\n txt: 'ace/mode/text',\n }\n return modeMap[ext] || 'ace/mode/text'\n },\n },\n created() {\n // Parameter 0: File path (required) e.g. \"INST/procedures/test.txt\"\n // Parameter 1: Width (optional, default 600)\n // Parameter 2: Height (optional, default 300)\n if (this.parameters[0]) {\n this.filePath = this.parameters[0]\n }\n if (this.parameters[1]) {\n this.width = parseInt(this.parameters[1])\n }\n if (this.parameters[2]) {\n this.height = parseInt(this.parameters[2])\n }\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n this.editor.setReadOnly(true)\n this.editor.setShowPrintMargin(false)\n this.editor.setHighlightActiveLine(false)\n this.editor.renderer.setShowGutter(false)\n this.editor.renderer.setScrollMargin(8, 8, 0, 0)\n this.editor.renderer.setPadding(8)\n this.editor.setValue(this.fileContent, -1)\n\n if (this.filePath) {\n this.fetchFile()\n }\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n this.editor.container.remove()\n }\n },\n methods: {\n updateEditor() {\n if (this.editor) {\n this.editor.session.setMode(this.aceMode)\n this.editor.setValue(this.fileContent, -1)\n }\n },\n async fetchFile() {\n if (!this.filePath) {\n this.fileContent =\n 'Error: No file path specified. Usage: FILEDISPLAY \"TARGET/path/to/file.txt\"'\n this.updateEditor()\n return\n }\n this.loading = true\n try {\n const scope = window.openc3Scope || 'DEFAULT'\n // Try targets_modified first, then fall back to targets\n // Use Ignore-Errors header to suppress toast for expected 404/500\n let objectPath = `${scope}/targets_modified/${this.filePath}`\n let response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n {\n params: { bucket: 'OPENC3_CONFIG_BUCKET' },\n headers: { 'Ignore-Errors': '404,500' },\n },\n ).catch(() => null)\n\n if (!response || response.status === 404) {\n objectPath = `${scope}/targets/${this.filePath}`\n response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n { params: { bucket: 'OPENC3_CONFIG_BUCKET' } },\n )\n }\n\n if (response?.data?.contents) {\n this.fileContent = atob(response.data.contents)\n } else {\n this.fileContent = 'Error: Could not load file'\n }\n } catch (error) {\n this.fileContent = `Error: ${error.message || error}`\n } finally {\n this.loading = false\n this.updateEditor()\n }\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","ext","_a","ace.edit","scope","objectPath","response","Api","error","_hoisted_1","_createBlock","_component_v_card","_ctx","_createVNode","_component_v_card_title","_createElementVNode","_toDisplayString","$data","_component_v_spacer","_component_v_btn","$options","_component_v_divider","_component_v_card_text"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { W as a } from "./Widget-D4rzBHnr.js";
2
- import n from "./ValueWidget-BubIamVx.js";
3
- import { resolveComponent as o, createElementBlock as m, openBlock as i, normalizeStyle as p, createVNode as c, mergeProps as l } from "vue";
1
+ import { W as a } from "./Widget-DsHcvxJg.js";
2
+ import o from "./ValueWidget-Dj4GYuSK.js";
3
+ import { resolveComponent as n, createElementBlock as i, openBlock as m, normalizeStyle as p, createVNode as c, mergeProps as l } from "vue";
4
4
  import { _ as d } from "./CustomIcon-B9m73Gqm.js";
5
- const t = 4, u = {
5
+ const t = 4, f = {
6
6
  components: {
7
- ValueWidget: n
7
+ ValueWidget: o
8
8
  },
9
9
  mixins: [a],
10
10
  computed: {
@@ -23,11 +23,13 @@ const t = 4, u = {
23
23
  "ch",
24
24
  12 + t
25
25
  );
26
+ const e = this.parameters[3];
27
+ e && /%-?#?\d*[xXo]/.test(e) && this.appliedSettings.push(["RAW", "font-family", "monospace"]);
26
28
  }
27
29
  };
28
- function f(e, g, h, v, _, r) {
29
- const s = o("value-widget");
30
- return i(), m("div", {
30
+ function u(e, g, h, v, _, r) {
31
+ const s = n("value-widget");
32
+ return m(), i("div", {
31
33
  ref: "container",
32
34
  class: "d-flex flex-row",
33
35
  style: p(e.computedStyle)
@@ -41,8 +43,8 @@ function f(e, g, h, v, _, r) {
41
43
  }), null, 16, ["parameters", "settings", "screen-values", "screen-time-zone", "format-string"])
42
44
  ], 4);
43
45
  }
44
- const y = /* @__PURE__ */ d(u, [["render", f]]);
46
+ const $ = /* @__PURE__ */ d(f, [["render", u]]);
45
47
  export {
46
- y as default
48
+ $ as default
47
49
  };
48
- //# sourceMappingURL=FormatvalueWidget-BkF9iiHs.js.map
50
+ //# sourceMappingURL=FormatvalueWidget-0S6n-WEr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormatvalueWidget-BkF9iiHs.js","sources":["../src/widgets/FormatvalueWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div ref=\"container\" class=\"d-flex flex-row\" :style=\"computedStyle\">\n <value-widget\n v-bind=\"$attrs\"\n :parameters=\"getParameters\"\n :settings=\"appliedSettings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :format-string=\"parameters[3]\"\n />\n </div>\n</template>\n\n<script>\n// When we apply a fixed character width we need to pad a bit since the\n// width applies to the enclosing div and not the underlying input\nconst INPUT_PADDING = 4\nimport Widget from './Widget'\nimport ValueWidget from './ValueWidget.vue'\n\nexport default {\n components: {\n ValueWidget,\n },\n mixins: [Widget],\n computed: {\n getParameters() {\n return [\n this.parameters[0],\n this.parameters[1],\n this.parameters[2],\n this.parameters[4],\n ]\n },\n },\n created() {\n this.setWidth(\n parseInt(this.parameters[5]) + INPUT_PADDING,\n 'ch',\n 12 + INPUT_PADDING,\n )\n },\n}\n</script>\n"],"names":["INPUT_PADDING","_sfc_main","ValueWidget","Widget","_createElementBlock","_ctx","_createVNode","_component_value_widget","_mergeProps","$options"],"mappings":";;;;AAsCA,MAAMA,IAAgB,GAIjBC,IAAU;AAAA,EACb,YAAY;AAAA,IACV,aAAAC;AAAA;EAEF,QAAQ,CAACC,CAAM;AAAA,EACf,UAAU;AAAA,IACR,gBAAgB;AACd,aAAO;AAAA,QACL,KAAK,WAAW,CAAC;AAAA,QACjB,KAAK,WAAW,CAAC;AAAA,QACjB,KAAK,WAAW,CAAC;AAAA,QACjB,KAAK,WAAW,CAAC;AAAA,MACnB;AAAA,IACF;AAAA;EAEF,UAAU;AACR,SAAK;AAAA,MACH,SAAS,KAAK,WAAW,CAAC,CAAC,IAAIH;AAAA,MAC/B;AAAA,MACA,KAAKA;AAAA,IACP;AAAA,EACF;AACF;;;cAzCEI,EASM,OAAA;AAAA,IATD,KAAI;AAAA,IAAY,OAAM;AAAA,IAAmB,SAAOC,EAAA,aAAa;AAAA;IAChEC,EAOEC,GAPFC,EACUH,EAAA,QAAM;AAAA,MACb,YAAYI,EAAA;AAAA,MACZ,UAAUJ,EAAA;AAAA,MACV,iBAAeA,EAAA;AAAA,MACf,oBAAkBA,EAAA;AAAA,MAClB,iBAAeA,EAAA,WAAU,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"FormatvalueWidget-0S6n-WEr.js","sources":["../src/widgets/FormatvalueWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div ref=\"container\" class=\"d-flex flex-row\" :style=\"computedStyle\">\n <value-widget\n v-bind=\"$attrs\"\n :parameters=\"getParameters\"\n :settings=\"appliedSettings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :format-string=\"parameters[3]\"\n />\n </div>\n</template>\n\n<script>\n// When we apply a fixed character width we need to pad a bit since the\n// width applies to the enclosing div and not the underlying input\nconst INPUT_PADDING = 4\nimport Widget from './Widget'\nimport ValueWidget from './ValueWidget.vue'\n\nexport default {\n components: {\n ValueWidget,\n },\n mixins: [Widget],\n computed: {\n getParameters() {\n return [\n this.parameters[0],\n this.parameters[1],\n this.parameters[2],\n this.parameters[4],\n ]\n },\n },\n created() {\n this.setWidth(\n parseInt(this.parameters[5]) + INPUT_PADDING,\n 'ch',\n 12 + INPUT_PADDING,\n )\n // Apply monospace font for hex/octal format strings so digits align\n const formatString = this.parameters[3]\n if (formatString && /%-?#?\\d*[xXo]/.test(formatString)) {\n this.appliedSettings.push(['RAW', 'font-family', 'monospace'])\n }\n },\n}\n</script>\n"],"names":["INPUT_PADDING","_sfc_main","ValueWidget","Widget","formatString","_createElementBlock","_ctx","_createVNode","_component_value_widget","_mergeProps","$options"],"mappings":";;;;AAsCA,MAAMA,IAAgB,GAIjBC,IAAU;AAAA,EACb,YAAY;AAAA,IACV,aAAAC;AAAA;EAEF,QAAQ,CAACC,CAAM;AAAA,EACf,UAAU;AAAA,IACR,gBAAgB;AACd,aAAO;AAAA,QACL,KAAK,WAAW,CAAC;AAAA,QACjB,KAAK,WAAW,CAAC;AAAA,QACjB,KAAK,WAAW,CAAC;AAAA,QACjB,KAAK,WAAW,CAAC;AAAA,MACnB;AAAA,IACF;AAAA;EAEF,UAAU;AACR,SAAK;AAAA,MACH,SAAS,KAAK,WAAW,CAAC,CAAC,IAAIH;AAAA,MAC/B;AAAA,MACA,KAAKA;AAAA,IACP;AAEA,UAAMI,IAAe,KAAK,WAAW,CAAC;AACtC,IAAIA,KAAgB,gBAAgB,KAAKA,CAAY,KACnD,KAAK,gBAAgB,KAAK,CAAC,OAAO,eAAe,WAAW,CAAC;AAAA,EAEjE;AACF;;;cA9CEC,EASM,OAAA;AAAA,IATD,KAAI;AAAA,IAAY,OAAM;AAAA,IAAmB,SAAOC,EAAA,aAAa;AAAA;IAChEC,EAOEC,GAPFC,EACUH,EAAA,QAAM;AAAA,MACb,YAAYI,EAAA;AAAA,MACZ,UAAUJ,EAAA;AAAA,MACV,iBAAeA,EAAA;AAAA,MACf,oBAAkBA,EAAA;AAAA,MAClB,iBAAeA,EAAA,WAAU,CAAA;AAAA;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./Widget-BKmR1shJ.cjs"),o=require("./ValueWidget-13BmCi-I.cjs"),t=require("vue"),i=require("./CustomIcon-CEc927h0.cjs"),r=4,c={components:{ValueWidget:o.default},mixins:[n.Widget],computed:{getParameters(){return[this.parameters[0],this.parameters[1],this.parameters[2],this.parameters[4]]}},created(){this.setWidth(parseInt(this.parameters[5])+r,"ch",12+r);const e=this.parameters[3];e&&/%-?#?\d*[xXo]/.test(e)&&this.appliedSettings.push(["RAW","font-family","monospace"])}};function m(e,p,u,d,g,s){const a=t.resolveComponent("value-widget");return t.openBlock(),t.createElementBlock("div",{ref:"container",class:"d-flex flex-row",style:t.normalizeStyle(e.computedStyle)},[t.createVNode(a,t.mergeProps(e.$attrs,{parameters:s.getParameters,settings:e.appliedSettings,"screen-values":e.screenValues,"screen-time-zone":e.screenTimeZone,"format-string":e.parameters[3]}),null,16,["parameters","settings","screen-values","screen-time-zone","format-string"])],4)}const l=i._export_sfc(c,[["render",m]]);exports.default=l;
2
+ //# sourceMappingURL=FormatvalueWidget-Cckikrms.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormatvalueWidget-DTsP7isW.cjs","sources":["../src/widgets/FormatvalueWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div ref=\"container\" class=\"d-flex flex-row\" :style=\"computedStyle\">\n <value-widget\n v-bind=\"$attrs\"\n :parameters=\"getParameters\"\n :settings=\"appliedSettings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :format-string=\"parameters[3]\"\n />\n </div>\n</template>\n\n<script>\n// When we apply a fixed character width we need to pad a bit since the\n// width applies to the enclosing div and not the underlying input\nconst INPUT_PADDING = 4\nimport Widget from './Widget'\nimport ValueWidget from './ValueWidget.vue'\n\nexport default {\n components: {\n ValueWidget,\n },\n mixins: [Widget],\n computed: {\n getParameters() {\n return [\n this.parameters[0],\n this.parameters[1],\n this.parameters[2],\n this.parameters[4],\n ]\n },\n },\n created() {\n this.setWidth(\n parseInt(this.parameters[5]) + INPUT_PADDING,\n 'ch',\n 12 + INPUT_PADDING,\n )\n },\n}\n</script>\n"],"names":["INPUT_PADDING","_sfc_main","ValueWidget","Widget","_createElementBlock","_ctx","_createVNode","_component_value_widget","_mergeProps","$options"],"mappings":"yNAsCMA,EAAgB,EAIjBC,EAAU,CACb,WAAY,aACVC,EAAAA,SAEF,OAAQ,CAACC,EAAAA,MAAM,EACf,SAAU,CACR,eAAgB,CACd,MAAO,CACL,KAAK,WAAW,CAAC,EACjB,KAAK,WAAW,CAAC,EACjB,KAAK,WAAW,CAAC,EACjB,KAAK,WAAW,CAAC,CACnB,CACF,GAEF,SAAU,CACR,KAAK,SACH,SAAS,KAAK,WAAW,CAAC,CAAC,EAAIH,EAC/B,KACA,GAAKA,CACP,CACF,CACF,0FAzCEI,EAAAA,mBASM,MAAA,CATD,IAAI,YAAY,MAAM,kBAAmB,uBAAOC,EAAA,aAAa,IAChEC,EAAAA,YAOEC,EAPFC,aACUH,EAAA,OAAM,CACb,WAAYI,EAAA,cACZ,SAAUJ,EAAA,gBACV,gBAAeA,EAAA,aACf,mBAAkBA,EAAA,eAClB,gBAAeA,EAAA,WAAU,CAAA"}
1
+ {"version":3,"file":"FormatvalueWidget-Cckikrms.cjs","sources":["../src/widgets/FormatvalueWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div ref=\"container\" class=\"d-flex flex-row\" :style=\"computedStyle\">\n <value-widget\n v-bind=\"$attrs\"\n :parameters=\"getParameters\"\n :settings=\"appliedSettings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :format-string=\"parameters[3]\"\n />\n </div>\n</template>\n\n<script>\n// When we apply a fixed character width we need to pad a bit since the\n// width applies to the enclosing div and not the underlying input\nconst INPUT_PADDING = 4\nimport Widget from './Widget'\nimport ValueWidget from './ValueWidget.vue'\n\nexport default {\n components: {\n ValueWidget,\n },\n mixins: [Widget],\n computed: {\n getParameters() {\n return [\n this.parameters[0],\n this.parameters[1],\n this.parameters[2],\n this.parameters[4],\n ]\n },\n },\n created() {\n this.setWidth(\n parseInt(this.parameters[5]) + INPUT_PADDING,\n 'ch',\n 12 + INPUT_PADDING,\n )\n // Apply monospace font for hex/octal format strings so digits align\n const formatString = this.parameters[3]\n if (formatString && /%-?#?\\d*[xXo]/.test(formatString)) {\n this.appliedSettings.push(['RAW', 'font-family', 'monospace'])\n }\n },\n}\n</script>\n"],"names":["INPUT_PADDING","_sfc_main","ValueWidget","Widget","formatString","_createElementBlock","_ctx","_createVNode","_component_value_widget","_mergeProps","$options"],"mappings":"yNAsCMA,EAAgB,EAIjBC,EAAU,CACb,WAAY,aACVC,EAAAA,SAEF,OAAQ,CAACC,EAAAA,MAAM,EACf,SAAU,CACR,eAAgB,CACd,MAAO,CACL,KAAK,WAAW,CAAC,EACjB,KAAK,WAAW,CAAC,EACjB,KAAK,WAAW,CAAC,EACjB,KAAK,WAAW,CAAC,CACnB,CACF,GAEF,SAAU,CACR,KAAK,SACH,SAAS,KAAK,WAAW,CAAC,CAAC,EAAIH,EAC/B,KACA,GAAKA,CACP,EAEA,MAAMI,EAAe,KAAK,WAAW,CAAC,EAClCA,GAAgB,gBAAgB,KAAKA,CAAY,GACnD,KAAK,gBAAgB,KAAK,CAAC,MAAO,cAAe,WAAW,CAAC,CAEjE,CACF,0FA9CEC,EAAAA,mBASM,MAAA,CATD,IAAI,YAAY,MAAM,kBAAmB,uBAAOC,EAAA,aAAa,IAChEC,EAAAA,YAOEC,EAPFC,aACUH,EAAA,OAAM,CACb,WAAYI,EAAA,cACZ,SAAUJ,EAAA,gBACV,gBAAeA,EAAA,aACf,mBAAkBA,EAAA,eAClB,gBAAeA,EAAA,WAAU,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { T as Z } from "./timeFilters-BKnCM4rv.js";
2
- import { O as ee } from "./OpenC3TimePicker-D-_qqySI.js";
3
- import { T as te } from "./TargetPacketItemChooser-DDqBQTWC.js";
2
+ import { O as ee } from "./OpenC3TimePicker-CFSMcJ1F.js";
3
+ import { T as te } from "./TargetPacketItemChooser-UsuVtlF-.js";
4
4
  import { resolveComponent as d, createBlock as x, openBlock as g, withKeys as z, withCtx as n, createVNode as l, createElementVNode as I, createTextVNode as f, createElementBlock as E, Fragment as F, renderList as ie, createCommentVNode as _, toDisplayString as C, withModifiers as W, withDirectives as P, normalizeClass as se, vShow as L, normalizeProps as le, guardReactiveProps as ae } from "vue";
5
- import { y as J, c as K, u as A, g as ne } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js";
5
+ import { O as J, c as K, u as A, x as ne } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-gWC4BUC8.js";
6
6
  import { _ as R } from "./CustomIcon-B9m73Gqm.js";
7
7
  import { t as j, i as q } from "./format-CVeawcIv.js";
8
8
  import { p as B } from "./parse-DnkEsW-3.js";
@@ -1000,12 +1000,16 @@ const xe = /* @__PURE__ */ R(fe, [["render", ye]]), G = "__time", be = {
1000
1000
  } else
1001
1001
  this.data[a].push(i[a][0]);
1002
1002
  }
1003
+ this.dataChanged = !0, this.updateGraphData();
1004
+ }).catch((i) => {
1005
+ console.error("Error fetching playback telemetry:", i);
1006
+ }).finally(() => {
1003
1007
  this.$store.commit("playback", {
1004
1008
  playbackLoading: Math.max(
1005
1009
  0,
1006
1010
  this.$store.state.playback.playbackLoading - 1
1007
1011
  )
1008
- }), this.dataChanged = !0, this.updateGraphData();
1012
+ });
1009
1013
  })), this.lastPlaybackDateTime = this.playbackDateTime);
1010
1014
  },
1011
1015
  data: function(t, e) {
@@ -2103,10 +2107,10 @@ function De(t, e, i, a, s, o) {
2103
2107
  ], 512))
2104
2108
  ]);
2105
2109
  }
2106
- const Oe = /* @__PURE__ */ R(be, [["render", De], ["__scopeId", "data-v-13468ccc"]]);
2110
+ const Oe = /* @__PURE__ */ R(be, [["render", De], ["__scopeId", "data-v-57f200ee"]]);
2107
2111
  export {
2108
2112
  Oe as G,
2109
2113
  ce as a,
2110
2114
  xe as b
2111
2115
  };
2112
- //# sourceMappingURL=Graph-C-7C2Jq5.js.map
2116
+ //# sourceMappingURL=Graph-CXuxaEKD.js.map