@openc3/vue-common 6.10.1 → 6.10.3

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 (544) hide show
  1. package/dist/{ArrayWidget-DvCX-1Om.cjs → ArrayWidget-B35vCzAo.cjs} +3 -3
  2. package/dist/{ArrayWidget-DvCX-1Om.cjs.map → ArrayWidget-B35vCzAo.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-DQRQ7dPa.js → ArrayWidget-Bc-Awsbn.js} +11 -11
  4. package/dist/{ArrayWidget-DQRQ7dPa.js.map → ArrayWidget-Bc-Awsbn.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-DA4SCxEg.cjs → ArrayplotWidget-B67ip6aR.cjs} +2 -2
  6. package/dist/{ArrayplotWidget-DA4SCxEg.cjs.map → ArrayplotWidget-B67ip6aR.cjs.map} +1 -1
  7. package/dist/{ArrayplotWidget-BeSfz3MR.js → ArrayplotWidget-B9UGCr4-.js} +4 -4
  8. package/dist/{ArrayplotWidget-BeSfz3MR.js.map → ArrayplotWidget-B9UGCr4-.js.map} +1 -1
  9. package/dist/BarColumn-3fKM-em2.cjs +2 -0
  10. package/dist/BarColumn-3fKM-em2.cjs.map +1 -0
  11. package/dist/{BarColumn-BdIaQfOz.js → BarColumn-ClLBRGll.js} +11 -11
  12. package/dist/BarColumn-ClLBRGll.js.map +1 -0
  13. package/dist/{BlockWidget-DSFKrUxl.js → BlockWidget-CoQp-LZM.js} +14 -14
  14. package/dist/{BlockWidget-DSFKrUxl.js.map → BlockWidget-CoQp-LZM.js.map} +1 -1
  15. package/dist/{BlockWidget-C33RBqR2.cjs → BlockWidget-DWexy9Dx.cjs} +3 -3
  16. package/dist/{BlockWidget-C33RBqR2.cjs.map → BlockWidget-DWexy9Dx.cjs.map} +1 -1
  17. package/dist/{ButtonWidget-DV33-G5z.cjs → ButtonWidget-BBpVoIzj.cjs} +3 -3
  18. package/dist/ButtonWidget-BBpVoIzj.cjs.map +1 -0
  19. package/dist/{ButtonWidget-CFbjdxSr.js → ButtonWidget-CTTwpFec.js} +15 -15
  20. package/dist/ButtonWidget-CTTwpFec.js.map +1 -0
  21. package/dist/{CanvasWidget-CO5Ql5FM.cjs → CanvasWidget-Qlx-Mo8v.cjs} +2 -2
  22. package/dist/{CanvasWidget-CO5Ql5FM.cjs.map → CanvasWidget-Qlx-Mo8v.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-BloYxuKE.js → CanvasWidget-jFarbJ3t.js} +4 -4
  24. package/dist/{CanvasWidget-BloYxuKE.js.map → CanvasWidget-jFarbJ3t.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-v73CXaR2.cjs → CanvasdotWidget-BROyk4FH.cjs} +2 -2
  26. package/dist/{CanvasdotWidget-v73CXaR2.cjs.map → CanvasdotWidget-BROyk4FH.cjs.map} +1 -1
  27. package/dist/{CanvasdotWidget-CZxUOPRd.js → CanvasdotWidget-BoyUcwiB.js} +3 -3
  28. package/dist/{CanvasdotWidget-CZxUOPRd.js.map → CanvasdotWidget-BoyUcwiB.js.map} +1 -1
  29. package/dist/CanvasimageWidget-BvTJnGXu.cjs +2 -0
  30. package/dist/CanvasimageWidget-BvTJnGXu.cjs.map +1 -0
  31. package/dist/{CanvasimageWidget-ULQq3nqZ.js → CanvasimageWidget-DmyCSnuQ.js} +8 -7
  32. package/dist/CanvasimageWidget-DmyCSnuQ.js.map +1 -0
  33. package/dist/{CanvasimagevalueWidget-jFCVXYhi.js → CanvasimagevalueWidget-CmbngMqv.js} +5 -4
  34. package/dist/CanvasimagevalueWidget-CmbngMqv.js.map +1 -0
  35. package/dist/CanvasimagevalueWidget-CzVrDo-Z.cjs +2 -0
  36. package/dist/CanvasimagevalueWidget-CzVrDo-Z.cjs.map +1 -0
  37. package/dist/{CanvaslabelWidget-XfEANCQ-.cjs → CanvaslabelWidget-BnvwV9MA.cjs} +2 -2
  38. package/dist/{CanvaslabelWidget-XfEANCQ-.cjs.map → CanvaslabelWidget-BnvwV9MA.cjs.map} +1 -1
  39. package/dist/{CanvaslabelWidget-DQhBI1vZ.js → CanvaslabelWidget-D8NzLKqi.js} +3 -3
  40. package/dist/{CanvaslabelWidget-DQhBI1vZ.js.map → CanvaslabelWidget-D8NzLKqi.js.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-C4REgztL.js → CanvaslabelvalueWidget-DOybGI9D.js} +4 -3
  42. package/dist/CanvaslabelvalueWidget-DOybGI9D.js.map +1 -0
  43. package/dist/CanvaslabelvalueWidget-DVnkclHD.cjs +2 -0
  44. package/dist/CanvaslabelvalueWidget-DVnkclHD.cjs.map +1 -0
  45. package/dist/{CanvaslineWidget-S4PCEvZM.js → CanvaslineWidget-D2NEei7j.js} +3 -3
  46. package/dist/{CanvaslineWidget-S4PCEvZM.js.map → CanvaslineWidget-D2NEei7j.js.map} +1 -1
  47. package/dist/{CanvaslineWidget-DycxDsyJ.cjs → CanvaslineWidget-DgbXSH1K.cjs} +2 -2
  48. package/dist/{CanvaslineWidget-DycxDsyJ.cjs.map → CanvaslineWidget-DgbXSH1K.cjs.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-597khOSA.js → CanvaslinevalueWidget-Ctvv9owf.js} +11 -10
  50. package/dist/CanvaslinevalueWidget-Ctvv9owf.js.map +1 -0
  51. package/dist/CanvaslinevalueWidget-E3NDHyPl.cjs +2 -0
  52. package/dist/CanvaslinevalueWidget-E3NDHyPl.cjs.map +1 -0
  53. package/dist/CheckbuttonWidget-BdvWAgg_.cjs +2 -0
  54. package/dist/{CheckbuttonWidget-BwDttJTf.cjs.map → CheckbuttonWidget-BdvWAgg_.cjs.map} +1 -1
  55. package/dist/{CheckbuttonWidget-BcblKat3.js → CheckbuttonWidget-CQeR0BMF.js} +6 -6
  56. package/dist/{CheckbuttonWidget-BcblKat3.js.map → CheckbuttonWidget-CQeR0BMF.js.map} +1 -1
  57. package/dist/{ClassificationBanners-CEzDn5cM.cjs → ClassificationBanners-0BNhyyMS.cjs} +2 -2
  58. package/dist/{ClassificationBanners-CEzDn5cM.cjs.map → ClassificationBanners-0BNhyyMS.cjs.map} +1 -1
  59. package/dist/{ClassificationBanners-CS4GUeYv.js → ClassificationBanners-STI2n2yD.js} +2 -2
  60. package/dist/{ClassificationBanners-CS4GUeYv.js.map → ClassificationBanners-STI2n2yD.js.map} +1 -1
  61. package/dist/{ComboboxWidget-BMcHS4g5.js → ComboboxWidget-4N-MagvN.js} +6 -6
  62. package/dist/{ComboboxWidget-BMcHS4g5.js.map → ComboboxWidget-4N-MagvN.js.map} +1 -1
  63. package/dist/ComboboxWidget-Dh0q9xpJ.cjs +2 -0
  64. package/dist/{ComboboxWidget-DkBtLQ41.cjs.map → ComboboxWidget-Dh0q9xpJ.cjs.map} +1 -1
  65. package/dist/CriticalCmdDialog-Dy1cQZxQ.cjs +2 -0
  66. package/dist/CriticalCmdDialog-Dy1cQZxQ.cjs.map +1 -0
  67. package/dist/{CriticalCmdDialog-CVLyYtng.js → CriticalCmdDialog-trVtKZft.js} +62 -52
  68. package/dist/CriticalCmdDialog-trVtKZft.js.map +1 -0
  69. package/dist/{CustomIcon-DTfsnDJn.js → CustomIcon-B9m73Gqm.js} +5 -4
  70. package/dist/{CustomIcon-DTfsnDJn.js.map → CustomIcon-B9m73Gqm.js.map} +1 -1
  71. package/dist/CustomIcon-CEc927h0.cjs +2 -0
  72. package/dist/{CustomIcon-eie3rPKh.cjs.map → CustomIcon-CEc927h0.cjs.map} +1 -1
  73. package/dist/{DateWidget-CRFiLyxD.cjs → DateWidget-DXN7u3vL.cjs} +2 -2
  74. package/dist/{DateWidget-CRFiLyxD.cjs.map → DateWidget-DXN7u3vL.cjs.map} +1 -1
  75. package/dist/{DateWidget-BpnMzSBn.js → DateWidget-rYTjwUdb.js} +3 -3
  76. package/dist/{DateWidget-BpnMzSBn.js.map → DateWidget-rYTjwUdb.js.map} +1 -1
  77. package/dist/DetailsDialog-CLCCuoHV.cjs +2 -0
  78. package/dist/DetailsDialog-CLCCuoHV.cjs.map +1 -0
  79. package/dist/{DetailsDialog-q9piPmHq.js → DetailsDialog-p_vutijL.js} +130 -100
  80. package/dist/DetailsDialog-p_vutijL.js.map +1 -0
  81. package/dist/DynamicWidget-C4V2H2VJ.cjs +2 -0
  82. package/dist/DynamicWidget-C4V2H2VJ.cjs.map +1 -0
  83. package/dist/{DynamicWidget-DHL7pbgW.js → DynamicWidget-DEHWYr8i.js} +7 -7
  84. package/dist/DynamicWidget-DEHWYr8i.js.map +1 -0
  85. package/dist/{EventListDialog-BlcxcO8a.js → EventListDialog-BshKrOuQ.js} +70 -62
  86. package/dist/EventListDialog-BshKrOuQ.js.map +1 -0
  87. package/dist/EventListDialog-D0iBpLSR.cjs +2 -0
  88. package/dist/EventListDialog-D0iBpLSR.cjs.map +1 -0
  89. package/dist/FilechecksumWidget-Ddlm1UED.cjs +2 -0
  90. package/dist/FilechecksumWidget-Ddlm1UED.cjs.map +1 -0
  91. package/dist/FilechecksumWidget-gcmXxJHl.js +158 -0
  92. package/dist/FilechecksumWidget-gcmXxJHl.js.map +1 -0
  93. package/dist/FiledisplayWidget-CYX4HChi.cjs +2 -0
  94. package/dist/FiledisplayWidget-CYX4HChi.cjs.map +1 -0
  95. package/dist/FiledisplayWidget-CqM549A4.js +114 -0
  96. package/dist/FiledisplayWidget-CqM549A4.js.map +1 -0
  97. package/dist/{FormatvalueWidget-Cm-HmAmw.js → FormatvalueWidget-BEwH0C7S.js} +4 -4
  98. package/dist/{FormatvalueWidget-Cm-HmAmw.js.map → FormatvalueWidget-BEwH0C7S.js.map} +1 -1
  99. package/dist/{FormatvalueWidget-AXH-VW-A.cjs → FormatvalueWidget-CpsyYKXD.cjs} +2 -2
  100. package/dist/{FormatvalueWidget-AXH-VW-A.cjs.map → FormatvalueWidget-CpsyYKXD.cjs.map} +1 -1
  101. package/dist/{Graph-BEodMaxQ.js → Graph-CbjlChwf.js} +93 -82
  102. package/dist/Graph-CbjlChwf.js.map +1 -0
  103. package/dist/Graph-kmTrth08.cjs +2 -0
  104. package/dist/Graph-kmTrth08.cjs.map +1 -0
  105. package/dist/{GraphWidget-CAADBFV-.js → GraphWidget-CjxnC0Dc.js} +2 -2
  106. package/dist/{GraphWidget-CAADBFV-.js.map → GraphWidget-CjxnC0Dc.js.map} +1 -1
  107. package/dist/{GraphWidget-B878ArE1.cjs → GraphWidget-SamHg2AA.cjs} +2 -2
  108. package/dist/{GraphWidget-B878ArE1.cjs.map → GraphWidget-SamHg2AA.cjs.map} +1 -1
  109. package/dist/HorizontalWidget-ByZjU21C.cjs +2 -0
  110. package/dist/HorizontalWidget-ByZjU21C.cjs.map +1 -0
  111. package/dist/HorizontalWidget-Dt8bkM3k.js +69 -0
  112. package/dist/HorizontalWidget-Dt8bkM3k.js.map +1 -0
  113. package/dist/{HorizontalboxWidget-CW9XX4uH.js → HorizontalboxWidget-CdAZ5Sa6.js} +6 -6
  114. package/dist/{HorizontalboxWidget-CW9XX4uH.js.map → HorizontalboxWidget-CdAZ5Sa6.js.map} +1 -1
  115. package/dist/{HorizontalboxWidget-BGzl7-Rt.cjs → HorizontalboxWidget-DzYz5SXs.cjs} +2 -2
  116. package/dist/{HorizontalboxWidget-BGzl7-Rt.cjs.map → HorizontalboxWidget-DzYz5SXs.cjs.map} +1 -1
  117. package/dist/{HorizontallineWidget-x2u6MQNz.cjs → HorizontallineWidget-C8Zhqxik.cjs} +2 -2
  118. package/dist/{HorizontallineWidget-x2u6MQNz.cjs.map → HorizontallineWidget-C8Zhqxik.cjs.map} +1 -1
  119. package/dist/{HorizontallineWidget-Cu2dDt7k.js → HorizontallineWidget-CXZJTeU2.js} +3 -3
  120. package/dist/{HorizontallineWidget-Cu2dDt7k.js.map → HorizontallineWidget-CXZJTeU2.js.map} +1 -1
  121. package/dist/{IframeWidget-B5simCWn.cjs → IframeWidget-BuNXXziR.cjs} +2 -2
  122. package/dist/{IframeWidget-B5simCWn.cjs.map → IframeWidget-BuNXXziR.cjs.map} +1 -1
  123. package/dist/{IframeWidget-BBU3MkSq.js → IframeWidget-CrcWiAVE.js} +3 -3
  124. package/dist/{IframeWidget-BBU3MkSq.js.map → IframeWidget-CrcWiAVE.js.map} +1 -1
  125. package/dist/{ImageLoader-Dj3MZVq9.cjs → ImageLoader-130w4tXJ.cjs} +2 -2
  126. package/dist/{ImageLoader-Dj3MZVq9.cjs.map → ImageLoader-130w4tXJ.cjs.map} +1 -1
  127. package/dist/{ImageLoader-XAGgjKkq.js → ImageLoader-DPqax8yu.js} +2 -2
  128. package/dist/{ImageLoader-XAGgjKkq.js.map → ImageLoader-DPqax8yu.js.map} +1 -1
  129. package/dist/{ImageviewerWidget-UByjeO63.js → ImageviewerWidget-CTEl6iPg.js} +10 -9
  130. package/dist/ImageviewerWidget-CTEl6iPg.js.map +1 -0
  131. package/dist/ImageviewerWidget-CafLbLp2.cjs +2 -0
  132. package/dist/ImageviewerWidget-CafLbLp2.cjs.map +1 -0
  133. package/dist/{InterfacesTab-6hli9fcg.js → InterfacesTab-B9ApLB5q.js} +4 -4
  134. package/dist/{InterfacesTab-6hli9fcg.js.map → InterfacesTab-B9ApLB5q.js.map} +1 -1
  135. package/dist/{InterfacesTab-B1CwBWFu.cjs → InterfacesTab-wPQSLcSj.cjs} +2 -2
  136. package/dist/{InterfacesTab-B1CwBWFu.cjs.map → InterfacesTab-wPQSLcSj.cjs.map} +1 -1
  137. package/dist/{LabelWidget-X4cBbl5N.cjs → LabelWidget-BfBP3Xme.cjs} +2 -2
  138. package/dist/{LabelWidget-X4cBbl5N.cjs.map → LabelWidget-BfBP3Xme.cjs.map} +1 -1
  139. package/dist/{LabelWidget-BsOpolUL.js → LabelWidget-CPqKGMx0.js} +3 -3
  140. package/dist/{LabelWidget-BsOpolUL.js.map → LabelWidget-CPqKGMx0.js.map} +1 -1
  141. package/dist/{LabelledWidget-DVOGpgZ-.js → LabelledWidget-BHYzRMFd.js} +6 -6
  142. package/dist/{LabelledWidget-DVOGpgZ-.js.map → LabelledWidget-BHYzRMFd.js.map} +1 -1
  143. package/dist/{LabelledWidget-DaHqSURc.cjs → LabelledWidget-CZvKfFNW.cjs} +2 -2
  144. package/dist/{LabelledWidget-DaHqSURc.cjs.map → LabelledWidget-CZvKfFNW.cjs.map} +1 -1
  145. package/dist/{LabelprogressbarWidget-Cz3nXacL.cjs → LabelprogressbarWidget-Bv0G5oT3.cjs} +2 -2
  146. package/dist/{LabelprogressbarWidget-Cz3nXacL.cjs.map → LabelprogressbarWidget-Bv0G5oT3.cjs.map} +1 -1
  147. package/dist/{LabelprogressbarWidget-BeE9fDs6.js → LabelprogressbarWidget-D9deeUo7.js} +6 -6
  148. package/dist/{LabelprogressbarWidget-BeE9fDs6.js.map → LabelprogressbarWidget-D9deeUo7.js.map} +1 -1
  149. package/dist/{LabelsparklineWidget-Bj7trKML.js → LabelsparklineWidget-7mYre3CP.js} +13 -13
  150. package/dist/LabelsparklineWidget-7mYre3CP.js.map +1 -0
  151. package/dist/LabelsparklineWidget-dyqEroDN.cjs +2 -0
  152. package/dist/LabelsparklineWidget-dyqEroDN.cjs.map +1 -0
  153. package/dist/{LabelvalueWidget-D-sncwem.cjs → LabelvalueWidget-Bsl7Z3wM.cjs} +2 -2
  154. package/dist/{LabelvalueWidget-D-sncwem.cjs.map → LabelvalueWidget-Bsl7Z3wM.cjs.map} +1 -1
  155. package/dist/{LabelvalueWidget-Dwqsh5o2.js → LabelvalueWidget-NLsD60n4.js} +6 -6
  156. package/dist/{LabelvalueWidget-Dwqsh5o2.js.map → LabelvalueWidget-NLsD60n4.js.map} +1 -1
  157. package/dist/{LabelvaluedescWidget-DmqG8dzJ.cjs → LabelvaluedescWidget-B_Xih-c5.cjs} +2 -2
  158. package/dist/{LabelvaluedescWidget-DmqG8dzJ.cjs.map → LabelvaluedescWidget-B_Xih-c5.cjs.map} +1 -1
  159. package/dist/{LabelvaluedescWidget-Cfu2vuja.js → LabelvaluedescWidget-DXROG4Gs.js} +6 -6
  160. package/dist/{LabelvaluedescWidget-Cfu2vuja.js.map → LabelvaluedescWidget-DXROG4Gs.js.map} +1 -1
  161. package/dist/{LabelvaluelimitsbarWidget-_l7xjrX9.cjs → LabelvaluelimitsbarWidget-DDd0RIs5.cjs} +2 -2
  162. package/dist/LabelvaluelimitsbarWidget-DDd0RIs5.cjs.map +1 -0
  163. package/dist/{LabelvaluelimitsbarWidget-DYV68AJ_.js → LabelvaluelimitsbarWidget-DqVqHF4W.js} +10 -10
  164. package/dist/LabelvaluelimitsbarWidget-DqVqHF4W.js.map +1 -0
  165. package/dist/{LabelvaluelimitscolumnWidget-CtaoTixt.js → LabelvaluelimitscolumnWidget-BK6_31pC.js} +12 -12
  166. package/dist/LabelvaluelimitscolumnWidget-BK6_31pC.js.map +1 -0
  167. package/dist/LabelvaluelimitscolumnWidget-C1aqkXh5.cjs +2 -0
  168. package/dist/LabelvaluelimitscolumnWidget-C1aqkXh5.cjs.map +1 -0
  169. package/dist/{LabelvaluerangebarWidget-3EaUB6E6.js → LabelvaluerangebarWidget-DR7C8gqw.js} +6 -6
  170. package/dist/{LabelvaluerangebarWidget-3EaUB6E6.js.map → LabelvaluerangebarWidget-DR7C8gqw.js.map} +1 -1
  171. package/dist/{LabelvaluerangebarWidget-BZTEfPQh.cjs → LabelvaluerangebarWidget-a8u5LXBD.cjs} +2 -2
  172. package/dist/{LabelvaluerangebarWidget-BZTEfPQh.cjs.map → LabelvaluerangebarWidget-a8u5LXBD.cjs.map} +1 -1
  173. package/dist/Layout-B_Hgw3gd.js +36 -0
  174. package/dist/Layout-B_Hgw3gd.js.map +1 -0
  175. package/dist/Layout-CVGghwYm.cjs +2 -0
  176. package/dist/Layout-CVGghwYm.cjs.map +1 -0
  177. package/dist/{LedWidget-Gi6GXtrW.js → LedWidget-CiAVs2tj.js} +46 -39
  178. package/dist/LedWidget-CiAVs2tj.js.map +1 -0
  179. package/dist/LedWidget-Cmy47xfg.cjs +2 -0
  180. package/dist/LedWidget-Cmy47xfg.cjs.map +1 -0
  181. package/dist/LimitsBar-DTtMywOw.cjs +2 -0
  182. package/dist/LimitsBar-DTtMywOw.cjs.map +1 -0
  183. package/dist/LimitsBar-_UQG-M6e.js +134 -0
  184. package/dist/LimitsBar-_UQG-M6e.js.map +1 -0
  185. package/dist/LimitsbarWidget-CIwcOhC8.js +65 -0
  186. package/dist/LimitsbarWidget-CIwcOhC8.js.map +1 -0
  187. package/dist/LimitsbarWidget-CYm_f1FN.cjs +2 -0
  188. package/dist/LimitsbarWidget-CYm_f1FN.cjs.map +1 -0
  189. package/dist/{LimitscolorWidget-CFnmvlrA.js → LimitscolorWidget-CGPfJwvT.js} +14 -13
  190. package/dist/LimitscolorWidget-CGPfJwvT.js.map +1 -0
  191. package/dist/LimitscolorWidget-oH6NGl1C.cjs +2 -0
  192. package/dist/LimitscolorWidget-oH6NGl1C.cjs.map +1 -0
  193. package/dist/{LimitscolumnWidget-DSsz36tT.js → LimitscolumnWidget-Bj_UPEC8.js} +3 -3
  194. package/dist/{LimitscolumnWidget-DSsz36tT.js.map → LimitscolumnWidget-Bj_UPEC8.js.map} +1 -1
  195. package/dist/{LimitscolumnWidget-CXzLYznR.cjs → LimitscolumnWidget-CnGOCckG.cjs} +2 -2
  196. package/dist/{LimitscolumnWidget-CXzLYznR.cjs.map → LimitscolumnWidget-CnGOCckG.cjs.map} +1 -1
  197. package/dist/{LinegraphWidget-CeBijgDo.js → LinegraphWidget-DccnHbWa.js} +5 -5
  198. package/dist/{LinegraphWidget-CeBijgDo.js.map → LinegraphWidget-DccnHbWa.js.map} +1 -1
  199. package/dist/{LinegraphWidget-WVSJOuTE.cjs → LinegraphWidget-zHs3NG-6.cjs} +2 -2
  200. package/dist/{LinegraphWidget-WVSJOuTE.cjs.map → LinegraphWidget-zHs3NG-6.cjs.map} +1 -1
  201. package/dist/MatrixbycolumnsWidget-Dd-udu5V.cjs +2 -0
  202. package/dist/MatrixbycolumnsWidget-Dd-udu5V.cjs.map +1 -0
  203. package/dist/MatrixbycolumnsWidget-U_NZ6aW-.js +83 -0
  204. package/dist/MatrixbycolumnsWidget-U_NZ6aW-.js.map +1 -0
  205. package/dist/MicroservicesTab-DG3rdksb.js +203 -0
  206. package/dist/MicroservicesTab-DG3rdksb.js.map +1 -0
  207. package/dist/MicroservicesTab-DXgSxZ0K.cjs +2 -0
  208. package/dist/MicroservicesTab-DXgSxZ0K.cjs.map +1 -0
  209. package/dist/{Openc3Screen-iW_gaikc.js → Openc3Screen-CDwAWaTl.js} +56 -34
  210. package/dist/Openc3Screen-CDwAWaTl.js.map +1 -0
  211. package/dist/{Openc3Screen-DIN4KVsw.cjs → Openc3Screen-CKs-49JN.cjs} +5 -5
  212. package/dist/Openc3Screen-CKs-49JN.cjs.map +1 -0
  213. package/dist/OutputDialog-D2YCbR20.cjs +2 -0
  214. package/dist/OutputDialog-D2YCbR20.cjs.map +1 -0
  215. package/dist/{OutputDialog-BMzp6wy3.js → OutputDialog-Di-pSmJE.js} +24 -17
  216. package/dist/OutputDialog-Di-pSmJE.js.map +1 -0
  217. package/dist/{PackagesTab-BascLTCK.js → PackagesTab-Bui5q3rX.js} +4 -4
  218. package/dist/{PackagesTab-BascLTCK.js.map → PackagesTab-Bui5q3rX.js.map} +1 -1
  219. package/dist/{PackagesTab-D_1kbMkk.cjs → PackagesTab-C-fV9yxw.cjs} +2 -2
  220. package/dist/{PackagesTab-D_1kbMkk.cjs.map → PackagesTab-C-fV9yxw.cjs.map} +1 -1
  221. package/dist/{PluginsTab-CjYoMrbj.cjs → PluginsTab-DxxlKeVx.cjs} +2 -2
  222. package/dist/PluginsTab-DxxlKeVx.cjs.map +1 -0
  223. package/dist/{PluginsTab-Yz9HZqpp.js → PluginsTab-zR9eZuvc.js} +8 -8
  224. package/dist/PluginsTab-zR9eZuvc.js.map +1 -0
  225. package/dist/ProgressbarWidget-Cxvwcfgn.cjs +2 -0
  226. package/dist/ProgressbarWidget-Cxvwcfgn.cjs.map +1 -0
  227. package/dist/{ProgressbarWidget-DJepvOip.js → ProgressbarWidget-D4JtVzyk.js} +7 -5
  228. package/dist/ProgressbarWidget-D4JtVzyk.js.map +1 -0
  229. package/dist/{RadiobuttonWidget-4e8ROIfg.js → RadiobuttonWidget-BUaW7pRx.js} +11 -10
  230. package/dist/{RadiobuttonWidget-4e8ROIfg.js.map → RadiobuttonWidget-BUaW7pRx.js.map} +1 -1
  231. package/dist/RadiobuttonWidget-Ccgftl13.cjs +2 -0
  232. package/dist/{RadiobuttonWidget-D4Fka1eN.cjs.map → RadiobuttonWidget-Ccgftl13.cjs.map} +1 -1
  233. package/dist/{RadiogroupWidget-DU9G6qLq.cjs → RadiogroupWidget-CSxjpxCr.cjs} +2 -2
  234. package/dist/{RadiogroupWidget-DU9G6qLq.cjs.map → RadiogroupWidget-CSxjpxCr.cjs.map} +1 -1
  235. package/dist/{RadiogroupWidget-CUucj6aT.js → RadiogroupWidget-NIv4CaUQ.js} +6 -6
  236. package/dist/{RadiogroupWidget-CUucj6aT.js.map → RadiogroupWidget-NIv4CaUQ.js.map} +1 -1
  237. package/dist/{RangebarWidget-Bu4rqlrx.js → RangebarWidget-1-CsFpcl.js} +12 -11
  238. package/dist/RangebarWidget-1-CsFpcl.js.map +1 -0
  239. package/dist/RangebarWidget-BtxfPo-U.cjs +2 -0
  240. package/dist/RangebarWidget-BtxfPo-U.cjs.map +1 -0
  241. package/dist/{RedisTab-Dz4m_JfV.cjs → RedisTab-DOozcC9a.cjs} +2 -2
  242. package/dist/{RedisTab-Dz4m_JfV.cjs.map → RedisTab-DOozcC9a.cjs.map} +1 -1
  243. package/dist/{RedisTab-C00rFmdl.js → RedisTab-DuO-zUV3.js} +3 -3
  244. package/dist/{RedisTab-C00rFmdl.js.map → RedisTab-DuO-zUV3.js.map} +1 -1
  245. package/dist/RollupWidget-CQxl1mlr.cjs +2 -0
  246. package/dist/RollupWidget-CQxl1mlr.cjs.map +1 -0
  247. package/dist/{RollupWidget-ByLvEEau.js → RollupWidget-ChasTJYP.js} +15 -13
  248. package/dist/RollupWidget-ChasTJYP.js.map +1 -0
  249. package/dist/{RoutersTab-CEe4oS0x.js → RoutersTab-C0UHSj-S.js} +4 -4
  250. package/dist/{RoutersTab-CEe4oS0x.js.map → RoutersTab-C0UHSj-S.js.map} +1 -1
  251. package/dist/{RoutersTab-CyjPaVVb.cjs → RoutersTab-DgWAXGUv.cjs} +2 -2
  252. package/dist/{RoutersTab-CyjPaVVb.cjs.map → RoutersTab-DgWAXGUv.cjs.map} +1 -1
  253. package/dist/{ScriptChooser-CbVbI0x-.js → ScriptChooser-C5HHbbcP.js} +118 -93
  254. package/dist/ScriptChooser-C5HHbbcP.js.map +1 -0
  255. package/dist/ScriptChooser-D1dddugi.cjs +2 -0
  256. package/dist/ScriptChooser-D1dddugi.cjs.map +1 -0
  257. package/dist/ScrollwindowWidget-Bkyjw0Qt.cjs +2 -0
  258. package/dist/ScrollwindowWidget-Bkyjw0Qt.cjs.map +1 -0
  259. package/dist/ScrollwindowWidget-Y2J758y6.js +69 -0
  260. package/dist/ScrollwindowWidget-Y2J758y6.js.map +1 -0
  261. package/dist/{SecretsTab-B07A5MeK.cjs → SecretsTab-Ds3kGOmd.cjs} +2 -2
  262. package/dist/{SecretsTab-B07A5MeK.cjs.map → SecretsTab-Ds3kGOmd.cjs.map} +1 -1
  263. package/dist/{SecretsTab-DFrxV8Q8.js → SecretsTab-c5g8Zk4g.js} +3 -3
  264. package/dist/{SecretsTab-DFrxV8Q8.js.map → SecretsTab-c5g8Zk4g.js.map} +1 -1
  265. package/dist/{SettingsTab-CpLxrjTc.js → SettingsTab-CTd3_Ipy.js} +74 -70
  266. package/dist/SettingsTab-CTd3_Ipy.js.map +1 -0
  267. package/dist/SettingsTab-DMPRJELP.cjs +3 -0
  268. package/dist/SettingsTab-DMPRJELP.cjs.map +1 -0
  269. package/dist/SignalWidget-BkTXZpGV.cjs +2 -0
  270. package/dist/SignalWidget-BkTXZpGV.cjs.map +1 -0
  271. package/dist/{SignalWidget-qvL2YZJA.js → SignalWidget-DFhHDicI.js} +5 -3
  272. package/dist/SignalWidget-DFhHDicI.js.map +1 -0
  273. package/dist/{SimpleTextDialog--iSWgPgq.js → SimpleTextDialog-CXIEKlX0.js} +26 -19
  274. package/dist/SimpleTextDialog-CXIEKlX0.js.map +1 -0
  275. package/dist/SimpleTextDialog-Dv5ypyUQ.cjs +2 -0
  276. package/dist/SimpleTextDialog-Dv5ypyUQ.cjs.map +1 -0
  277. package/dist/{SpacerWidget-CaWx41K7.js → SpacerWidget-D4KojaGb.js} +3 -3
  278. package/dist/{SpacerWidget-CaWx41K7.js.map → SpacerWidget-D4KojaGb.js.map} +1 -1
  279. package/dist/{SpacerWidget-CUrYZDLP.cjs → SpacerWidget-HsSCc07C.cjs} +2 -2
  280. package/dist/{SpacerWidget-CUrYZDLP.cjs.map → SpacerWidget-HsSCc07C.cjs.map} +1 -1
  281. package/dist/SparklineWidget-BdRM-ymk.cjs +2 -0
  282. package/dist/SparklineWidget-BdRM-ymk.cjs.map +1 -0
  283. package/dist/{SparklineWidget-BkNSRypJ.js → SparklineWidget-DMHFzw8L.js} +11 -11
  284. package/dist/SparklineWidget-DMHFzw8L.js.map +1 -0
  285. package/dist/TabbookWidget-NVLYMdFG.js +96 -0
  286. package/dist/TabbookWidget-NVLYMdFG.js.map +1 -0
  287. package/dist/TabbookWidget-NmIK-Lgf.cjs +2 -0
  288. package/dist/TabbookWidget-NmIK-Lgf.cjs.map +1 -0
  289. package/dist/TargetPacketItemChooser-B0IVMSib.cjs +2 -0
  290. package/dist/TargetPacketItemChooser-B0IVMSib.cjs.map +1 -0
  291. package/dist/{TargetPacketItemChooser-oSQHf8Ht.js → TargetPacketItemChooser-D5h9Octy.js} +83 -67
  292. package/dist/TargetPacketItemChooser-D5h9Octy.js.map +1 -0
  293. package/dist/{TargetsTab-DwFb3_1K.cjs → TargetsTab-JLjpJ1wn.cjs} +2 -2
  294. package/dist/{TargetsTab-DwFb3_1K.cjs.map → TargetsTab-JLjpJ1wn.cjs.map} +1 -1
  295. package/dist/{TargetsTab-B6tf2hKl.js → TargetsTab-b35HgnRl.js} +4 -4
  296. package/dist/{TargetsTab-B6tf2hKl.js.map → TargetsTab-b35HgnRl.js.map} +1 -1
  297. package/dist/{TextBoxDialog-Xs-gitZd.js → TextBoxDialog-CJHrE2Sh.js} +29 -22
  298. package/dist/TextBoxDialog-CJHrE2Sh.js.map +1 -0
  299. package/dist/TextBoxDialog-DzCvdsJj.cjs +2 -0
  300. package/dist/TextBoxDialog-DzCvdsJj.cjs.map +1 -0
  301. package/dist/{TextboxWidget-DbwpPVGB.js → TextboxWidget-CrMYPQIF.js} +19 -19
  302. package/dist/{TextboxWidget-DbwpPVGB.js.map → TextboxWidget-CrMYPQIF.js.map} +1 -1
  303. package/dist/{TextboxWidget-CPmQEhMm.cjs → TextboxWidget-xk3OFSUZ.cjs} +2 -2
  304. package/dist/{TextboxWidget-CPmQEhMm.cjs.map → TextboxWidget-xk3OFSUZ.cjs.map} +1 -1
  305. package/dist/{TextfieldWidget-DzMlTMYW.js → TextfieldWidget-DMBQwtnb.js} +5 -5
  306. package/dist/{TextfieldWidget-DzMlTMYW.js.map → TextfieldWidget-DMBQwtnb.js.map} +1 -1
  307. package/dist/{TextfieldWidget-BzaNs7J4.cjs → TextfieldWidget-DnnKM6vS.cjs} +2 -2
  308. package/dist/{TextfieldWidget-BzaNs7J4.cjs.map → TextfieldWidget-DnnKM6vS.cjs.map} +1 -1
  309. package/dist/{TimeWidget-BHybAfg8.js → TimeWidget-CWLJZ2bt.js} +3 -3
  310. package/dist/{TimeWidget-BHybAfg8.js.map → TimeWidget-CWLJZ2bt.js.map} +1 -1
  311. package/dist/{TimeWidget-DksEVe5c.cjs → TimeWidget-W-flXfLb.cjs} +2 -2
  312. package/dist/{TimeWidget-DksEVe5c.cjs.map → TimeWidget-W-flXfLb.cjs.map} +1 -1
  313. package/dist/{TitleWidget-C7_pj0lU.cjs → TitleWidget-CfFyUkSu.cjs} +2 -2
  314. package/dist/{TitleWidget-C7_pj0lU.cjs.map → TitleWidget-CfFyUkSu.cjs.map} +1 -1
  315. package/dist/{TitleWidget-DL_sE5YE.js → TitleWidget-V1FGI8l3.js} +3 -3
  316. package/dist/{TitleWidget-DL_sE5YE.js.map → TitleWidget-V1FGI8l3.js.map} +1 -1
  317. package/dist/{ToolsTab-CXoxIck8.js → ToolsTab-7qOQPnN3.js} +4 -4
  318. package/dist/{ToolsTab-CXoxIck8.js.map → ToolsTab-7qOQPnN3.js.map} +1 -1
  319. package/dist/{ToolsTab-DTL8ujgd.cjs → ToolsTab-jUNdj09m.cjs} +2 -2
  320. package/dist/{ToolsTab-DTL8ujgd.cjs.map → ToolsTab-jUNdj09m.cjs.map} +1 -1
  321. package/dist/{TopBar-B8LJESUg.js → TopBar-BkwvK0oj.js} +3 -3
  322. package/dist/{TopBar-B8LJESUg.js.map → TopBar-BkwvK0oj.js.map} +1 -1
  323. package/dist/{TopBar-CGSMcenK.cjs → TopBar-DdOFDiCo.cjs} +2 -2
  324. package/dist/{TopBar-CGSMcenK.cjs.map → TopBar-DdOFDiCo.cjs.map} +1 -1
  325. package/dist/{UpgradeToEnterpriseDialog-CqnhQ8So.js → UpgradeToEnterpriseDialog-CEUcvlkx.js} +16 -13
  326. package/dist/UpgradeToEnterpriseDialog-CEUcvlkx.js.map +1 -0
  327. package/dist/UpgradeToEnterpriseDialog-CP-jJxU4.cjs +2 -0
  328. package/dist/UpgradeToEnterpriseDialog-CP-jJxU4.cjs.map +1 -0
  329. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-RGlL9jUF.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs} +70 -70
  330. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-RGlL9jUF.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs.map} +1 -1
  331. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-C3WTK6F-.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js} +9 -9
  332. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js.map +1 -0
  333. package/dist/{VWidget-CTcOKw09.cjs → VWidget-BJArPtqI.cjs} +2 -2
  334. package/dist/{VWidget-CTcOKw09.cjs.map → VWidget-BJArPtqI.cjs.map} +1 -1
  335. package/dist/{VWidget-D06LY-Yc.js → VWidget-rAFU-0vj.js} +3 -3
  336. package/dist/{VWidget-D06LY-Yc.js.map → VWidget-rAFU-0vj.js.map} +1 -1
  337. package/dist/ValueWidget-BI3uXmda.js +138 -0
  338. package/dist/ValueWidget-BI3uXmda.js.map +1 -0
  339. package/dist/ValueWidget-CwuH7beM.cjs +2 -0
  340. package/dist/ValueWidget-CwuH7beM.cjs.map +1 -0
  341. package/dist/{ValuelimitsbarWidget-CmpyPO-1.js → ValuelimitsbarWidget-BGSJLpw4.js} +11 -11
  342. package/dist/{ValuelimitsbarWidget-CmpyPO-1.js.map → ValuelimitsbarWidget-BGSJLpw4.js.map} +1 -1
  343. package/dist/{ValuelimitsbarWidget-_lEKCmQl.cjs → ValuelimitsbarWidget-BSkGhA_y.cjs} +2 -2
  344. package/dist/{ValuelimitsbarWidget-_lEKCmQl.cjs.map → ValuelimitsbarWidget-BSkGhA_y.cjs.map} +1 -1
  345. package/dist/ValuelimitscolumnWidget-BXdPahDO.cjs +2 -0
  346. package/dist/ValuelimitscolumnWidget-BXdPahDO.cjs.map +1 -0
  347. package/dist/{ValuelimitscolumnWidget-jzxrQd-f.js → ValuelimitscolumnWidget-CaNjHy4v.js} +11 -11
  348. package/dist/ValuelimitscolumnWidget-CaNjHy4v.js.map +1 -0
  349. package/dist/{ValuerangebarWidget-C8ckuAeh.js → ValuerangebarWidget-Do40-aaL.js} +6 -6
  350. package/dist/{ValuerangebarWidget-C8ckuAeh.js.map → ValuerangebarWidget-Do40-aaL.js.map} +1 -1
  351. package/dist/{ValuerangebarWidget-lXHRe4YZ.cjs → ValuerangebarWidget-DvWGqBNM.cjs} +2 -2
  352. package/dist/{ValuerangebarWidget-lXHRe4YZ.cjs.map → ValuerangebarWidget-DvWGqBNM.cjs.map} +1 -1
  353. package/dist/VerticalWidget-DZqghqIm.js +68 -0
  354. package/dist/VerticalWidget-DZqghqIm.js.map +1 -0
  355. package/dist/VerticalWidget-y238HI2A.cjs +2 -0
  356. package/dist/VerticalWidget-y238HI2A.cjs.map +1 -0
  357. package/dist/{VerticalboxWidget-1FHkgmf0.cjs → VerticalboxWidget--dgKnG5Z.cjs} +2 -2
  358. package/dist/{VerticalboxWidget-1FHkgmf0.cjs.map → VerticalboxWidget--dgKnG5Z.cjs.map} +1 -1
  359. package/dist/{VerticalboxWidget-CiJZDlHJ.js → VerticalboxWidget-CQ__4FcS.js} +6 -6
  360. package/dist/{VerticalboxWidget-CiJZDlHJ.js.map → VerticalboxWidget-CQ__4FcS.js.map} +1 -1
  361. package/dist/{Widget-DXvVFSH5.js → Widget-6-Nvewdp.js} +27 -19
  362. package/dist/Widget-6-Nvewdp.js.map +1 -0
  363. package/dist/Widget-DdxHKVWn.cjs +2 -0
  364. package/dist/Widget-DdxHKVWn.cjs.map +1 -0
  365. package/dist/components.cjs +3 -3
  366. package/dist/components.cjs.map +1 -1
  367. package/dist/components.js +96 -88
  368. package/dist/components.js.map +1 -1
  369. package/dist/icons.cjs +1 -1
  370. package/dist/icons.cjs.map +1 -1
  371. package/dist/icons.js +6 -4
  372. package/dist/icons.js.map +1 -1
  373. package/dist/plugins.cjs +2 -2
  374. package/dist/plugins.cjs.map +1 -1
  375. package/dist/plugins.js +24 -18
  376. package/dist/plugins.js.map +1 -1
  377. package/dist/purify.es-B608WQkR.cjs +3 -0
  378. package/dist/purify.es-B608WQkR.cjs.map +1 -0
  379. package/dist/{purify.es-BuxjWxA2.js → purify.es-BGaRrCfO.js} +144 -144
  380. package/dist/purify.es-BGaRrCfO.js.map +1 -0
  381. package/dist/{settings-s8NuYKD-.cjs → settings-BCE3SW-9.cjs} +2 -2
  382. package/dist/{settings-s8NuYKD-.cjs.map → settings-BCE3SW-9.cjs.map} +1 -1
  383. package/dist/{settings-DRNFiuf0.js → settings-CHPWZcnU.js} +2 -2
  384. package/dist/{settings-DRNFiuf0.js.map → settings-CHPWZcnU.js.map} +1 -1
  385. package/dist/tools/admin.cjs +1 -1
  386. package/dist/tools/admin.cjs.map +1 -1
  387. package/dist/tools/admin.js +72 -64
  388. package/dist/tools/admin.js.map +1 -1
  389. package/dist/tools/base.cjs +1 -1
  390. package/dist/tools/base.cjs.map +1 -1
  391. package/dist/tools/base.js +39 -38
  392. package/dist/tools/base.js.map +1 -1
  393. package/dist/tools/calendar.cjs +1 -1
  394. package/dist/tools/calendar.js +1 -1
  395. package/dist/tools/scriptrunner.cjs +8 -8
  396. package/dist/tools/scriptrunner.cjs.map +1 -1
  397. package/dist/tools/scriptrunner.js +1054 -994
  398. package/dist/tools/scriptrunner.js.map +1 -1
  399. package/dist/useContainerHeight-BAw05dIa.js.map +1 -1
  400. package/dist/useContainerHeight-BEd4f2Lr.cjs.map +1 -1
  401. package/dist/vue-common.css +1 -1
  402. package/dist/widgets.cjs +1 -1
  403. package/dist/widgets.js +118 -116
  404. package/dist/widgets.js.map +1 -1
  405. package/package.json +8 -8
  406. package/dist/BarColumn-BdIaQfOz.js.map +0 -1
  407. package/dist/BarColumn-C5VfAEOx.cjs +0 -2
  408. package/dist/BarColumn-C5VfAEOx.cjs.map +0 -1
  409. package/dist/ButtonWidget-CFbjdxSr.js.map +0 -1
  410. package/dist/ButtonWidget-DV33-G5z.cjs.map +0 -1
  411. package/dist/CanvasimageWidget-CCwRuLep.cjs +0 -2
  412. package/dist/CanvasimageWidget-CCwRuLep.cjs.map +0 -1
  413. package/dist/CanvasimageWidget-ULQq3nqZ.js.map +0 -1
  414. package/dist/CanvasimagevalueWidget-NZYl_3mA.cjs +0 -2
  415. package/dist/CanvasimagevalueWidget-NZYl_3mA.cjs.map +0 -1
  416. package/dist/CanvasimagevalueWidget-jFCVXYhi.js.map +0 -1
  417. package/dist/CanvaslabelvalueWidget-C4REgztL.js.map +0 -1
  418. package/dist/CanvaslabelvalueWidget-CJCZdHId.cjs +0 -2
  419. package/dist/CanvaslabelvalueWidget-CJCZdHId.cjs.map +0 -1
  420. package/dist/CanvaslinevalueWidget-597khOSA.js.map +0 -1
  421. package/dist/CanvaslinevalueWidget-bChpy38C.cjs +0 -2
  422. package/dist/CanvaslinevalueWidget-bChpy38C.cjs.map +0 -1
  423. package/dist/CheckbuttonWidget-BwDttJTf.cjs +0 -2
  424. package/dist/ComboboxWidget-DkBtLQ41.cjs +0 -2
  425. package/dist/CriticalCmdDialog-C4DRtDnA.cjs +0 -2
  426. package/dist/CriticalCmdDialog-C4DRtDnA.cjs.map +0 -1
  427. package/dist/CriticalCmdDialog-CVLyYtng.js.map +0 -1
  428. package/dist/CustomIcon-eie3rPKh.cjs +0 -2
  429. package/dist/DetailsDialog-Brv3nVs3.cjs +0 -2
  430. package/dist/DetailsDialog-Brv3nVs3.cjs.map +0 -1
  431. package/dist/DetailsDialog-q9piPmHq.js.map +0 -1
  432. package/dist/DynamicWidget-BNfJRfR5.cjs +0 -2
  433. package/dist/DynamicWidget-BNfJRfR5.cjs.map +0 -1
  434. package/dist/DynamicWidget-DHL7pbgW.js.map +0 -1
  435. package/dist/EventListDialog-BlcxcO8a.js.map +0 -1
  436. package/dist/EventListDialog-DXIYmkWb.cjs +0 -2
  437. package/dist/EventListDialog-DXIYmkWb.cjs.map +0 -1
  438. package/dist/Graph-BEodMaxQ.js.map +0 -1
  439. package/dist/Graph-wDFY6Kd7.cjs +0 -2
  440. package/dist/Graph-wDFY6Kd7.cjs.map +0 -1
  441. package/dist/HorizontalWidget-D2lXnQqQ.cjs +0 -2
  442. package/dist/HorizontalWidget-D2lXnQqQ.cjs.map +0 -1
  443. package/dist/HorizontalWidget-NcXIXxh7.js +0 -41
  444. package/dist/HorizontalWidget-NcXIXxh7.js.map +0 -1
  445. package/dist/ImageviewerWidget-BtuiORhN.cjs +0 -2
  446. package/dist/ImageviewerWidget-BtuiORhN.cjs.map +0 -1
  447. package/dist/ImageviewerWidget-UByjeO63.js.map +0 -1
  448. package/dist/LabelsparklineWidget-Bj7trKML.js.map +0 -1
  449. package/dist/LabelsparklineWidget-Bns8kwBj.cjs +0 -2
  450. package/dist/LabelsparklineWidget-Bns8kwBj.cjs.map +0 -1
  451. package/dist/LabelvaluelimitsbarWidget-DYV68AJ_.js.map +0 -1
  452. package/dist/LabelvaluelimitsbarWidget-_l7xjrX9.cjs.map +0 -1
  453. package/dist/LabelvaluelimitscolumnWidget-CtaoTixt.js.map +0 -1
  454. package/dist/LabelvaluelimitscolumnWidget-D0WEVZMc.cjs +0 -2
  455. package/dist/LabelvaluelimitscolumnWidget-D0WEVZMc.cjs.map +0 -1
  456. package/dist/Layout-DNR3xnku.js +0 -14
  457. package/dist/Layout-DNR3xnku.js.map +0 -1
  458. package/dist/Layout-U0MXDxLO.cjs +0 -2
  459. package/dist/Layout-U0MXDxLO.cjs.map +0 -1
  460. package/dist/LedWidget-Gi6GXtrW.js.map +0 -1
  461. package/dist/LedWidget-MAyRDM2n.cjs +0 -2
  462. package/dist/LedWidget-MAyRDM2n.cjs.map +0 -1
  463. package/dist/LimitsbarWidget-BTZQY9XQ.js +0 -72
  464. package/dist/LimitsbarWidget-BTZQY9XQ.js.map +0 -1
  465. package/dist/LimitsbarWidget-ytyfCphX.cjs +0 -2
  466. package/dist/LimitsbarWidget-ytyfCphX.cjs.map +0 -1
  467. package/dist/LimitscolorWidget-CFnmvlrA.js.map +0 -1
  468. package/dist/LimitscolorWidget-CeZYYSQn.cjs +0 -2
  469. package/dist/LimitscolorWidget-CeZYYSQn.cjs.map +0 -1
  470. package/dist/MatrixbycolumnsWidget-COWMt_-r.cjs +0 -2
  471. package/dist/MatrixbycolumnsWidget-COWMt_-r.cjs.map +0 -1
  472. package/dist/MatrixbycolumnsWidget-DX9uhjAv.js +0 -56
  473. package/dist/MatrixbycolumnsWidget-DX9uhjAv.js.map +0 -1
  474. package/dist/MicroservicesTab-BSSCh5Ss.js +0 -219
  475. package/dist/MicroservicesTab-BSSCh5Ss.js.map +0 -1
  476. package/dist/MicroservicesTab-Btw8r_9N.cjs +0 -2
  477. package/dist/MicroservicesTab-Btw8r_9N.cjs.map +0 -1
  478. package/dist/Openc3Screen-DIN4KVsw.cjs.map +0 -1
  479. package/dist/Openc3Screen-iW_gaikc.js.map +0 -1
  480. package/dist/OutputDialog-BMzp6wy3.js.map +0 -1
  481. package/dist/OutputDialog-CKObLICh.cjs +0 -2
  482. package/dist/OutputDialog-CKObLICh.cjs.map +0 -1
  483. package/dist/PluginsTab-CjYoMrbj.cjs.map +0 -1
  484. package/dist/PluginsTab-Yz9HZqpp.js.map +0 -1
  485. package/dist/ProgressbarWidget-BUSOhcZ3.cjs +0 -2
  486. package/dist/ProgressbarWidget-BUSOhcZ3.cjs.map +0 -1
  487. package/dist/ProgressbarWidget-DJepvOip.js.map +0 -1
  488. package/dist/RadiobuttonWidget-D4Fka1eN.cjs +0 -2
  489. package/dist/RangebarWidget-Bu4rqlrx.js.map +0 -1
  490. package/dist/RangebarWidget-DlMJo2o3.cjs +0 -2
  491. package/dist/RangebarWidget-DlMJo2o3.cjs.map +0 -1
  492. package/dist/RollupWidget-ByLvEEau.js.map +0 -1
  493. package/dist/RollupWidget-D-Dx6Dkx.cjs +0 -2
  494. package/dist/RollupWidget-D-Dx6Dkx.cjs.map +0 -1
  495. package/dist/ScriptChooser-B83Pgq2H.cjs +0 -2
  496. package/dist/ScriptChooser-B83Pgq2H.cjs.map +0 -1
  497. package/dist/ScriptChooser-CbVbI0x-.js.map +0 -1
  498. package/dist/ScrollwindowWidget-0UcfntpY.cjs +0 -2
  499. package/dist/ScrollwindowWidget-0UcfntpY.cjs.map +0 -1
  500. package/dist/ScrollwindowWidget-CXJ9QGN1.js +0 -45
  501. package/dist/ScrollwindowWidget-CXJ9QGN1.js.map +0 -1
  502. package/dist/SettingsTab-CDaG6VS1.cjs +0 -3
  503. package/dist/SettingsTab-CDaG6VS1.cjs.map +0 -1
  504. package/dist/SettingsTab-CpLxrjTc.js.map +0 -1
  505. package/dist/SignalWidget-DhS8nGJu.cjs +0 -2
  506. package/dist/SignalWidget-DhS8nGJu.cjs.map +0 -1
  507. package/dist/SignalWidget-qvL2YZJA.js.map +0 -1
  508. package/dist/SimpleTextDialog--iSWgPgq.js.map +0 -1
  509. package/dist/SimpleTextDialog-tZ7qO1zq.cjs +0 -2
  510. package/dist/SimpleTextDialog-tZ7qO1zq.cjs.map +0 -1
  511. package/dist/SparklineWidget-BOnHnJOh.cjs +0 -2
  512. package/dist/SparklineWidget-BOnHnJOh.cjs.map +0 -1
  513. package/dist/SparklineWidget-BkNSRypJ.js.map +0 -1
  514. package/dist/TabbookWidget-BTvyYn7i.cjs +0 -2
  515. package/dist/TabbookWidget-BTvyYn7i.cjs.map +0 -1
  516. package/dist/TabbookWidget-MsrRG1vn.js +0 -66
  517. package/dist/TabbookWidget-MsrRG1vn.js.map +0 -1
  518. package/dist/TargetPacketItemChooser-CmjEcxN3.cjs +0 -2
  519. package/dist/TargetPacketItemChooser-CmjEcxN3.cjs.map +0 -1
  520. package/dist/TargetPacketItemChooser-oSQHf8Ht.js.map +0 -1
  521. package/dist/TextBoxDialog-DXG7H7kQ.cjs +0 -2
  522. package/dist/TextBoxDialog-DXG7H7kQ.cjs.map +0 -1
  523. package/dist/TextBoxDialog-Xs-gitZd.js.map +0 -1
  524. package/dist/UpgradeToEnterpriseDialog-CqnhQ8So.js.map +0 -1
  525. package/dist/UpgradeToEnterpriseDialog-Dv_egyCM.cjs +0 -2
  526. package/dist/UpgradeToEnterpriseDialog-Dv_egyCM.cjs.map +0 -1
  527. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-C3WTK6F-.js.map +0 -1
  528. package/dist/ValueWidget-C2qn7lVq.cjs +0 -2
  529. package/dist/ValueWidget-C2qn7lVq.cjs.map +0 -1
  530. package/dist/ValueWidget-CGT0LV_n.js +0 -118
  531. package/dist/ValueWidget-CGT0LV_n.js.map +0 -1
  532. package/dist/ValuelimitscolumnWidget-0urjo-hR.cjs +0 -2
  533. package/dist/ValuelimitscolumnWidget-0urjo-hR.cjs.map +0 -1
  534. package/dist/ValuelimitscolumnWidget-jzxrQd-f.js.map +0 -1
  535. package/dist/VerticalWidget-XBSrdA2c.cjs +0 -2
  536. package/dist/VerticalWidget-XBSrdA2c.cjs.map +0 -1
  537. package/dist/VerticalWidget-qN82km_m.js +0 -40
  538. package/dist/VerticalWidget-qN82km_m.js.map +0 -1
  539. package/dist/Widget-BwvnfXRa.cjs +0 -2
  540. package/dist/Widget-BwvnfXRa.cjs.map +0 -1
  541. package/dist/Widget-DXvVFSH5.js.map +0 -1
  542. package/dist/purify.es-BuxjWxA2.js.map +0 -1
  543. package/dist/purify.es-d7tb6jjJ.cjs +0 -3
  544. package/dist/purify.es-d7tb6jjJ.cjs.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs"),k=require("./Widget-DdxHKVWn.cjs"),e=require("vue"),C=require("./CustomIcon-CEc927h0.cjs"),v={mixins:[k.Widget],data(){return{files:[],loading:!1}},computed:{match(){if(this.files.some(t=>t.error))return!1;if(this.files.some(t=>!t.checksum))return null;const o=this.files[0].checksum;return this.files.every(t=>t.checksum===o)},matchStatus(){return{null:{icon:"$info",color:"grey",text:"Comparing..."},true:{icon:"$success",color:"success",text:"Checksums Match"},false:{icon:"$error",color:"error",text:this.files.some(t=>t.error)?"Error loading file(s)":"Checksums Do Not Match"}}[this.match]}},created(){this.files=this.parameters.filter(o=>o).map(o=>({path:o,checksum:null,error:null,copied:!1}))},mounted(){this.files.length&&this.fetchChecksums()},methods:{getDisplayText(o){return o.error?`Error: ${o.error}`:o.checksum?o.checksum:this.loading?"Loading...":"Not loaded"},async computeChecksum(o){const c=new TextEncoder().encode(o),r=await crypto.subtle.digest("SHA-256",c);return Array.from(new Uint8Array(r)).map(n=>n.toString(16).padStart(2,"0")).join("")},async fetchFile(o){var s;const t=window.openc3Scope||"DEFAULT";let c=`${t}/targets_modified/${o}`,r=await m.fi.get(`/openc3-api/storage/download_file/${encodeURIComponent(c)}`,{params:{bucket:"OPENC3_CONFIG_BUCKET"},headers:{"Ignore-Errors":"404,500"}}).catch(()=>null);if((!r||r.status===404)&&(c=`${t}/targets/${o}`,r=await m.fi.get(`/openc3-api/storage/download_file/${encodeURIComponent(c)}`,{params:{bucket:"OPENC3_CONFIG_BUCKET"}})),(s=r==null?void 0:r.data)!=null&&s.contents)return atob(r.data.contents);throw new Error("File not found")},async copyChecksum(o){if(o.checksum)try{await navigator.clipboard.writeText(o.checksum),o.copied=!0,setTimeout(()=>o.copied=!1,2e3)}catch(t){console.error("Failed to copy checksum:",t)}},async fetchChecksums(){this.loading=!0,this.files.forEach(t=>{t.checksum=null,t.error=null}),(await Promise.all(this.files.map(t=>this.fetchFile(t.path).then(c=>this.computeChecksum(c)).catch(c=>({error:c.message||"File not found"}))))).forEach((t,c)=>{t!=null&&t.error?this.files[c].error=t.error:this.files[c].checksum=t}),this.loading=!1}}},y={class:"text-caption text-medium-emphasis font-weight-regular"},x={class:"text-caption text-medium-emphasis mb-2"},w={class:"ml-1 text-high-emphasis"},N={class:"flex-grow-1 overflow-wrap-anywhere"};function E(o,t,c,r,s,n){const h=e.resolveComponent("v-spacer"),i=e.resolveComponent("v-btn"),u=e.resolveComponent("v-card-title"),l=e.resolveComponent("v-divider"),p=e.resolveComponent("v-sheet"),_=e.resolveComponent("v-chip"),f=e.resolveComponent("v-card-text"),g=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(g,{style:e.normalizeStyle(o.computedStyle),"min-width":"400"},{default:e.withCtx(()=>[e.createVNode(u,{class:"d-flex align-center pa-2"},{default:e.withCtx(()=>[e.createElementVNode("span",y,e.toDisplayString(s.files.length===1?"File Checksum":"File Checksum Comparison"),1),e.createVNode(h),e.createVNode(i,{size:"x-small",icon:"mdi-refresh",variant:"text",loading:s.loading,onClick:n.fetchChecksums},null,8,["loading","onClick"])]),_:1}),e.createVNode(l),e.createVNode(f,{class:"pa-3"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.files,(a,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d},[e.createElementVNode("div",x,[e.createTextVNode(e.toDisplayString(s.files.length===1?"File:":`File ${d+1}:`)+" ",1),e.createElementVNode("span",w,e.toDisplayString(a.path),1)]),e.createVNode(p,{class:e.normalizeClass([a.error?"text-error":"","d-flex align-center ga-2 px-2 py-1 mb-3 rounded text-caption"]),style:{"background-color":"rgba(128, 128, 128, 0.2)"}},{default:e.withCtx(()=>[e.createElementVNode("span",N,e.toDisplayString(n.getDisplayText(a)),1),e.createVNode(i,{icon:a.copied?"$success":"mdi-content-copy",color:a.copied?"success":void 0,disabled:!a.checksum,size:"x-small",variant:"plain",density:"compact",onClick:S=>n.copyChecksum(a)},null,8,["icon","color","disabled","onClick"])]),_:2},1032,["class"])],64))),128)),s.files.length>1?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(l,{class:"mb-3"}),e.createVNode(_,{color:n.matchStatus.color,size:"small",variant:"tonal",label:"","prepend-icon":n.matchStatus.icon},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.matchStatus.text),1)]),_:1},8,["color","prepend-icon"])],64)):e.createCommentVNode("",!0)]),_:1})]),_:1},8,["style"])}const b=C._export_sfc(v,[["render",E],["__scopeId","data-v-7cb83af3"]]);exports.default=b;
2
+ //# sourceMappingURL=FilechecksumWidget-Ddlm1UED.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilechecksumWidget-Ddlm1UED.cjs","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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"}
@@ -0,0 +1,158 @@
1
+ import { f as k } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js";
2
+ import { W as F } from "./Widget-6-Nvewdp.js";
3
+ import { resolveComponent as a, createBlock as S, openBlock as h, normalizeStyle as N, withCtx as l, createVNode as r, createElementVNode as d, toDisplayString as m, createElementBlock as u, createCommentVNode as T, Fragment as p, renderList as A, createTextVNode as y, normalizeClass as B } from "vue";
4
+ import { _ as I } from "./CustomIcon-B9m73Gqm.js";
5
+ const U = {
6
+ mixins: [F],
7
+ data() {
8
+ return {
9
+ files: [],
10
+ loading: !1
11
+ };
12
+ },
13
+ computed: {
14
+ match() {
15
+ if (this.files.some((e) => e.error)) return !1;
16
+ if (this.files.some((e) => !e.checksum)) return null;
17
+ const t = this.files[0].checksum;
18
+ return this.files.every((e) => e.checksum === t);
19
+ },
20
+ matchStatus() {
21
+ return {
22
+ null: { icon: "$info", color: "grey", text: "Comparing..." },
23
+ true: { icon: "$success", color: "success", text: "Checksums Match" },
24
+ false: {
25
+ icon: "$error",
26
+ color: "error",
27
+ text: this.files.some((e) => e.error) ? "Error loading file(s)" : "Checksums Do Not Match"
28
+ }
29
+ }[this.match];
30
+ }
31
+ },
32
+ created() {
33
+ this.files = this.parameters.filter((t) => t).map((t) => ({ path: t, checksum: null, error: null, copied: !1 }));
34
+ },
35
+ mounted() {
36
+ this.files.length && this.fetchChecksums();
37
+ },
38
+ methods: {
39
+ getDisplayText(t) {
40
+ return t.error ? `Error: ${t.error}` : t.checksum ? t.checksum : this.loading ? "Loading..." : "Not loaded";
41
+ },
42
+ async computeChecksum(t) {
43
+ const s = new TextEncoder().encode(t), o = await crypto.subtle.digest("SHA-256", s);
44
+ return Array.from(new Uint8Array(o)).map((n) => n.toString(16).padStart(2, "0")).join("");
45
+ },
46
+ async fetchFile(t) {
47
+ var c;
48
+ const e = window.openc3Scope || "DEFAULT";
49
+ let s = `${e}/targets_modified/${t}`, o = await k.get(
50
+ `/openc3-api/storage/download_file/${encodeURIComponent(s)}`,
51
+ {
52
+ params: { bucket: "OPENC3_CONFIG_BUCKET" },
53
+ headers: { "Ignore-Errors": "404,500" }
54
+ }
55
+ ).catch(() => null);
56
+ if ((!o || o.status === 404) && (s = `${e}/targets/${t}`, o = await k.get(
57
+ `/openc3-api/storage/download_file/${encodeURIComponent(s)}`,
58
+ { params: { bucket: "OPENC3_CONFIG_BUCKET" } }
59
+ )), (c = o == null ? void 0 : o.data) != null && c.contents)
60
+ return atob(o.data.contents);
61
+ throw new Error("File not found");
62
+ },
63
+ async copyChecksum(t) {
64
+ if (t.checksum)
65
+ try {
66
+ await navigator.clipboard.writeText(t.checksum), t.copied = !0, setTimeout(() => t.copied = !1, 2e3);
67
+ } catch (e) {
68
+ console.error("Failed to copy checksum:", e);
69
+ }
70
+ },
71
+ async fetchChecksums() {
72
+ this.loading = !0, this.files.forEach((e) => {
73
+ e.checksum = null, e.error = null;
74
+ }), (await Promise.all(
75
+ this.files.map(
76
+ (e) => this.fetchFile(e.path).then((s) => this.computeChecksum(s)).catch((s) => ({ error: s.message || "File not found" }))
77
+ )
78
+ )).forEach((e, s) => {
79
+ e != null && e.error ? this.files[s].error = e.error : this.files[s].checksum = e;
80
+ }), this.loading = !1;
81
+ }
82
+ }
83
+ }, $ = { class: "text-caption text-medium-emphasis font-weight-regular" }, z = { class: "text-caption text-medium-emphasis mb-2" }, D = { class: "ml-1 text-high-emphasis" }, O = { class: "flex-grow-1 overflow-wrap-anywhere" };
84
+ function V(t, e, s, o, c, n) {
85
+ const C = a("v-spacer"), f = a("v-btn"), v = a("v-card-title"), _ = a("v-divider"), x = a("v-sheet"), w = a("v-chip"), b = a("v-card-text"), E = a("v-card");
86
+ return h(), S(E, {
87
+ style: N(t.computedStyle),
88
+ "min-width": "400"
89
+ }, {
90
+ default: l(() => [
91
+ r(v, { class: "d-flex align-center pa-2" }, {
92
+ default: l(() => [
93
+ d("span", $, m(c.files.length === 1 ? "File Checksum" : "File Checksum Comparison"), 1),
94
+ r(C),
95
+ r(f, {
96
+ size: "x-small",
97
+ icon: "mdi-refresh",
98
+ variant: "text",
99
+ loading: c.loading,
100
+ onClick: n.fetchChecksums
101
+ }, null, 8, ["loading", "onClick"])
102
+ ]),
103
+ _: 1
104
+ }),
105
+ r(_),
106
+ r(b, { class: "pa-3" }, {
107
+ default: l(() => [
108
+ (h(!0), u(p, null, A(c.files, (i, g) => (h(), u(p, { key: g }, [
109
+ d("div", z, [
110
+ y(m(c.files.length === 1 ? "File:" : `File ${g + 1}:`) + " ", 1),
111
+ d("span", D, m(i.path), 1)
112
+ ]),
113
+ r(x, {
114
+ class: B([i.error ? "text-error" : "", "d-flex align-center ga-2 px-2 py-1 mb-3 rounded text-caption"]),
115
+ style: { "background-color": "rgba(128, 128, 128, 0.2)" }
116
+ }, {
117
+ default: l(() => [
118
+ d("span", O, m(n.getDisplayText(i)), 1),
119
+ r(f, {
120
+ icon: i.copied ? "$success" : "mdi-content-copy",
121
+ color: i.copied ? "success" : void 0,
122
+ disabled: !i.checksum,
123
+ size: "x-small",
124
+ variant: "plain",
125
+ density: "compact",
126
+ onClick: (L) => n.copyChecksum(i)
127
+ }, null, 8, ["icon", "color", "disabled", "onClick"])
128
+ ]),
129
+ _: 2
130
+ }, 1032, ["class"])
131
+ ], 64))), 128)),
132
+ c.files.length > 1 ? (h(), u(p, { key: 0 }, [
133
+ r(_, { class: "mb-3" }),
134
+ r(w, {
135
+ color: n.matchStatus.color,
136
+ size: "small",
137
+ variant: "tonal",
138
+ label: "",
139
+ "prepend-icon": n.matchStatus.icon
140
+ }, {
141
+ default: l(() => [
142
+ y(m(n.matchStatus.text), 1)
143
+ ]),
144
+ _: 1
145
+ }, 8, ["color", "prepend-icon"])
146
+ ], 64)) : T("", !0)
147
+ ]),
148
+ _: 1
149
+ })
150
+ ]),
151
+ _: 1
152
+ }, 8, ["style"]);
153
+ }
154
+ const K = /* @__PURE__ */ I(U, [["render", V], ["__scopeId", "data-v-7cb83af3"]]);
155
+ export {
156
+ K as default
157
+ };
158
+ //# sourceMappingURL=FilechecksumWidget-gcmXxJHl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilechecksumWidget-gcmXxJHl.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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"}
@@ -0,0 +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-CX-SWpru.cjs"),m=require("./Widget-DdxHKVWn.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-CYX4HChi.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FiledisplayWidget-CYX4HChi.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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"}
@@ -0,0 +1,114 @@
1
+ import { f as l, a as C } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js";
2
+ import { W as v } from "./Widget-6-Nvewdp.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";
5
+ const P = {
6
+ mixins: [v],
7
+ data() {
8
+ return {
9
+ filePath: "",
10
+ fileContent: "Loading...",
11
+ loading: !1,
12
+ width: 600,
13
+ height: 300,
14
+ editor: null
15
+ };
16
+ },
17
+ computed: {
18
+ contentStyle() {
19
+ return {
20
+ width: this.width + "px",
21
+ height: this.height + "px"
22
+ };
23
+ },
24
+ aceMode() {
25
+ var i;
26
+ const o = (i = this.filePath.split(".").pop()) == null ? void 0 : i.toLowerCase();
27
+ return {
28
+ json: "ace/mode/json",
29
+ rb: "ace/mode/ruby",
30
+ py: "ace/mode/python",
31
+ txt: "ace/mode/text"
32
+ }[o] || "ace/mode/text";
33
+ }
34
+ },
35
+ created() {
36
+ 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]));
37
+ },
38
+ mounted() {
39
+ this.editor = C.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();
40
+ },
41
+ beforeUnmount() {
42
+ this.editor && (this.editor.destroy(), this.editor.container.remove());
43
+ },
44
+ methods: {
45
+ updateEditor() {
46
+ this.editor && (this.editor.session.setMode(this.aceMode), this.editor.setValue(this.fileContent, -1));
47
+ },
48
+ async fetchFile() {
49
+ var o;
50
+ if (!this.filePath) {
51
+ this.fileContent = 'Error: No file path specified. Usage: FILEDISPLAY "TARGET/path/to/file.txt"', this.updateEditor();
52
+ return;
53
+ }
54
+ this.loading = !0;
55
+ try {
56
+ const e = window.openc3Scope || "DEFAULT";
57
+ let i = `${e}/targets_modified/${this.filePath}`, t = await l.get(
58
+ `/openc3-api/storage/download_file/${encodeURIComponent(i)}`,
59
+ {
60
+ params: { bucket: "OPENC3_CONFIG_BUCKET" },
61
+ headers: { "Ignore-Errors": "404,500" }
62
+ }
63
+ ).catch(() => null);
64
+ (!t || t.status === 404) && (i = `${e}/targets/${this.filePath}`, t = await l.get(
65
+ `/openc3-api/storage/download_file/${encodeURIComponent(i)}`,
66
+ { params: { bucket: "OPENC3_CONFIG_BUCKET" } }
67
+ )), (o = t == null ? void 0 : t.data) != null && o.contents ? this.fileContent = atob(t.data.contents) : this.fileContent = "Error: Could not load file";
68
+ } catch (e) {
69
+ this.fileContent = `Error: ${e.message || e}`;
70
+ } finally {
71
+ this.loading = !1, this.updateEditor();
72
+ }
73
+ }
74
+ }
75
+ }, S = { class: "text-caption text-medium-emphasis font-weight-regular" };
76
+ function b(o, e, i, t, n, d) {
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, {
79
+ style: h(o.computedStyle)
80
+ }, {
81
+ default: a(() => [
82
+ r(m, { class: "d-flex align-center pa-2" }, {
83
+ default: a(() => [
84
+ c("span", S, w(n.filePath), 1),
85
+ r(p),
86
+ r(f, {
87
+ size: "x-small",
88
+ icon: "mdi-refresh",
89
+ variant: "text",
90
+ loading: n.loading,
91
+ onClick: d.fetchFile
92
+ }, null, 8, ["loading", "onClick"])
93
+ ]),
94
+ _: 1
95
+ }),
96
+ r(_),
97
+ r(u, { class: "pa-0" }, {
98
+ default: a(() => [
99
+ c("div", {
100
+ ref: "editor",
101
+ style: h(d.contentStyle)
102
+ }, null, 4)
103
+ ]),
104
+ _: 1
105
+ })
106
+ ]),
107
+ _: 1
108
+ }, 8, ["style"]);
109
+ }
110
+ const N = /* @__PURE__ */ E(P, [["render", b]]);
111
+ export {
112
+ N as default
113
+ };
114
+ //# sourceMappingURL=FiledisplayWidget-CqM549A4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FiledisplayWidget-CqM549A4.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":";;;;AAkDA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AACL,WAAO;AAAA,MACL,UAAU;AAAA,MACV,aAAa;AAAA,MACb,SAAS;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,eAAe;AACb,aAAO;AAAA,QACL,OAAO,KAAK,QAAQ;AAAA,QACpB,QAAQ,KAAK,SAAS;AAAA,MACxB;AAAA,IACF;AAAA,IACA,UAAU;;AACR,YAAMC,KAAMC,IAAA,KAAK,SAAS,MAAM,GAAG,EAAE,IAAG,MAA5B,gBAAAA,EAAgC;AAO5C,aANgB;AAAA,QACd,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,KAAK;AAAA,MACP,EACeD,CAAG,KAAK;AAAA,IACzB;AAAA;EAEF,UAAU;AAIR,IAAI,KAAK,WAAW,CAAC,MACnB,KAAK,WAAW,KAAK,WAAW,CAAC,IAE/B,KAAK,WAAW,CAAC,MACnB,KAAK,QAAQ,SAAS,KAAK,WAAW,CAAC,CAAC,IAEtC,KAAK,WAAW,CAAC,MACnB,KAAK,SAAS,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,EAE7C;AAAA,EACA,UAAU;AACR,SAAK,SAASE,EAAAA,KAAS,KAAK,MAAM,MAAM,GACxC,KAAK,OAAO,SAAS,oBAAoB,GACzC,KAAK,OAAO,YAAY,EAAI,GAC5B,KAAK,OAAO,mBAAmB,EAAK,GACpC,KAAK,OAAO,uBAAuB,EAAK,GACxC,KAAK,OAAO,SAAS,cAAc,EAAK,GACxC,KAAK,OAAO,SAAS,gBAAgB,GAAG,GAAG,GAAG,CAAC,GAC/C,KAAK,OAAO,SAAS,WAAW,CAAC,GACjC,KAAK,OAAO,SAAS,KAAK,aAAa,EAAE,GAErC,KAAK,YACP,KAAK,UAAS;AAAA,EAElB;AAAA,EACA,gBAAgB;AACd,IAAI,KAAK,WACP,KAAK,OAAO,QAAO,GACnB,KAAK,OAAO,UAAU,OAAM;AAAA,EAEhC;AAAA,EACA,SAAS;AAAA,IACP,eAAe;AACb,MAAI,KAAK,WACP,KAAK,OAAO,QAAQ,QAAQ,KAAK,OAAO,GACxC,KAAK,OAAO,SAAS,KAAK,aAAa,EAAE;AAAA,IAE7C;AAAA,IACA,MAAM,YAAY;;AAChB,UAAI,CAAC,KAAK,UAAU;AAClB,aAAK,cACH,+EACF,KAAK,aAAY;AACjB;AAAA,MACF;AACA,WAAK,UAAU;AACf,UAAI;AACF,cAAMC,IAAQ,OAAO,eAAe;AAGpC,YAAIC,IAAa,GAAGD,CAAK,qBAAqB,KAAK,QAAQ,IACvDE,IAAW,MAAMC,EAAI;AAAA,UACvB,qCAAqC,mBAAmBF,CAAU,CAAC;AAAA,UACnE;AAAA,YACE,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,iBAAiB;;QAEhC,EAAE,MAAM,MAAM,IAAI;AAElB,SAAI,CAACC,KAAYA,EAAS,WAAW,SACnCD,IAAa,GAAGD,CAAK,YAAY,KAAK,QAAQ,IAC9CE,IAAW,MAAMC,EAAI;AAAA,UACnB,qCAAqC,mBAAmBF,CAAU,CAAC;AAAA,UACnE,EAAE,QAAQ,EAAE,QAAQ;QACtB,KAGEH,IAAAI,KAAA,gBAAAA,EAAU,SAAV,QAAAJ,EAAgB,WAClB,KAAK,cAAc,KAAKI,EAAS,KAAK,QAAQ,IAE9C,KAAK,cAAc;AAAA,MAEvB,SAASE,GAAO;AACd,aAAK,cAAc,UAAUA,EAAM,WAAWA,CAAK;AAAA,MACrD,UAAA;AACE,aAAK,UAAU,IACf,KAAK,aAAY;AAAA,MACnB;AAAA,IACF;AAAA;AAEJ,GA/IYC,IAAA,EAAA,OAAM,wDAAuD;;;cAFvEC,EAkBSC,GAAA;AAAA,IAlBA,SAAOC,EAAA,aAAa;AAAA;eAC3B,MAYe;AAAA,MAZfC,EAYeC,GAAA,EAZD,OAAM,2BAA0B,GAAA;AAAA,mBAC5C,MAEO;AAAA,UAFPC,EAEO,QAFPN,GAEOO,EADFC,EAAA,QAAQ,GAAA,CAAA;AAAA,UAEbJ,EAAYK,CAAA;AAAA,UACZL,EAMEM,GAAA;AAAA,YALA,MAAK;AAAA,YACL,MAAK;AAAA,YACL,SAAQ;AAAA,YACP,SAASF,EAAA;AAAA,YACT,SAAOG,EAAA;AAAA;;;;MAGZP,EAAaQ,CAAA;AAAA,MACbR,EAEcS,GAAA,EAFD,OAAM,OAAM,GAAA;AAAA,mBACvB,MAA8C;AAAA,UAA9CP,EAA8C,OAAA;AAAA,YAAzC,KAAI;AAAA,YAAU,SAAOK,EAAA,YAAY;AAAA;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
- import { W as a } from "./Widget-DXvVFSH5.js";
2
- import n from "./ValueWidget-CGT0LV_n.js";
1
+ import { W as a } from "./Widget-6-Nvewdp.js";
2
+ import n from "./ValueWidget-BI3uXmda.js";
3
3
  import { resolveComponent as o, createElementBlock as m, openBlock as i, normalizeStyle as p, createVNode as c, mergeProps as l } from "vue";
4
- import { _ as d } from "./CustomIcon-DTfsnDJn.js";
4
+ import { _ as d } from "./CustomIcon-B9m73Gqm.js";
5
5
  const t = 4, u = {
6
6
  components: {
7
7
  ValueWidget: n
@@ -45,4 +45,4 @@ const y = /* @__PURE__ */ d(u, [["render", f]]);
45
45
  export {
46
46
  y as default
47
47
  };
48
- //# sourceMappingURL=FormatvalueWidget-Cm-HmAmw.js.map
48
+ //# sourceMappingURL=FormatvalueWidget-BEwH0C7S.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormatvalueWidget-Cm-HmAmw.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-BEwH0C7S.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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./Widget-BwvnfXRa.cjs"),o=require("./ValueWidget-C2qn7lVq.cjs"),t=require("vue"),i=require("./CustomIcon-eie3rPKh.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)}};function m(e,u,p,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-AXH-VW-A.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./Widget-DdxHKVWn.cjs"),o=require("./ValueWidget-CwuH7beM.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)}};function m(e,u,p,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-CpsyYKXD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormatvalueWidget-AXH-VW-A.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-CpsyYKXD.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"}