@openc3/vue-common 7.0.1 → 7.1.0

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 (508) hide show
  1. package/dist/{ArrayWidget-BHjh3qLF.cjs → ArrayWidget-CQCphADm.cjs} +3 -3
  2. package/dist/{ArrayWidget-BHjh3qLF.cjs.map → ArrayWidget-CQCphADm.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-Dh6zDiC7.js → ArrayWidget-CcQFJGCA.js} +7 -6
  4. package/dist/{ArrayWidget-Dh6zDiC7.js.map → ArrayWidget-CcQFJGCA.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-CSc_TqNm.js → ArrayplotWidget-DGJEXAY0.js} +6 -5
  6. package/dist/{ArrayplotWidget-CSc_TqNm.js.map → ArrayplotWidget-DGJEXAY0.js.map} +1 -1
  7. package/dist/ArrayplotWidget-J0xWFYsb.cjs +2 -0
  8. package/dist/{ArrayplotWidget-BHD-TGQO.cjs.map → ArrayplotWidget-J0xWFYsb.cjs.map} +1 -1
  9. package/dist/BarColumn-DrvHLEts.cjs +2 -0
  10. package/dist/BarColumn-DrvHLEts.cjs.map +1 -0
  11. package/dist/{BarColumn-DmjMnw5l.js → BarColumn-DwZmAe8g.js} +11 -9
  12. package/dist/BarColumn-DwZmAe8g.js.map +1 -0
  13. package/dist/{BlockWidget-BdR_HCVc.js → BlockWidget-BHtugveV.js} +14 -13
  14. package/dist/{BlockWidget-BdR_HCVc.js.map → BlockWidget-BHtugveV.js.map} +1 -1
  15. package/dist/{BlockWidget-Bi1PfS1k.cjs → BlockWidget-_HTXwzGu.cjs} +2 -2
  16. package/dist/{BlockWidget-Bi1PfS1k.cjs.map → BlockWidget-_HTXwzGu.cjs.map} +1 -1
  17. package/dist/ButtonWidget-C_4jUjbD.cjs +3 -0
  18. package/dist/ButtonWidget-C_4jUjbD.cjs.map +1 -0
  19. package/dist/{ButtonWidget-DZ4VCNWU.js → ButtonWidget-Cc9cYsg8.js} +7 -6
  20. package/dist/ButtonWidget-Cc9cYsg8.js.map +1 -0
  21. package/dist/{CanvasWidget-DTEx-DpZ.cjs → CanvasWidget-98hvMkWl.cjs} +2 -2
  22. package/dist/{CanvasWidget-DTEx-DpZ.cjs.map → CanvasWidget-98hvMkWl.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-DuXOo3jG.js → CanvasWidget-Bn70gBcc.js} +2 -2
  24. package/dist/{CanvasWidget-DuXOo3jG.js.map → CanvasWidget-Bn70gBcc.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-bbOquK8B.cjs → CanvasdotWidget-6s1Kzzoj.cjs} +2 -2
  26. package/dist/{CanvasdotWidget-bbOquK8B.cjs.map → CanvasdotWidget-6s1Kzzoj.cjs.map} +1 -1
  27. package/dist/{CanvasdotWidget-WoLpxI1u.js → CanvasdotWidget-CMROfW3O.js} +2 -2
  28. package/dist/{CanvasdotWidget-WoLpxI1u.js.map → CanvasdotWidget-CMROfW3O.js.map} +1 -1
  29. package/dist/{CanvasimageWidget-tWpK5rsv.js → CanvasimageWidget-BpM05v_m.js} +3 -3
  30. package/dist/{CanvasimageWidget-tWpK5rsv.js.map → CanvasimageWidget-BpM05v_m.js.map} +1 -1
  31. package/dist/{CanvasimageWidget-D2EqsK7w.cjs → CanvasimageWidget-Du_TULyr.cjs} +2 -2
  32. package/dist/{CanvasimageWidget-D2EqsK7w.cjs.map → CanvasimageWidget-Du_TULyr.cjs.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-By_DiQ75.cjs → CanvasimagevalueWidget-DUiZEzwq.cjs} +2 -2
  34. package/dist/{CanvasimagevalueWidget-By_DiQ75.cjs.map → CanvasimagevalueWidget-DUiZEzwq.cjs.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-BVzJYz3l.js → CanvasimagevalueWidget-E6G93iGc.js} +3 -3
  36. package/dist/{CanvasimagevalueWidget-BVzJYz3l.js.map → CanvasimagevalueWidget-E6G93iGc.js.map} +1 -1
  37. package/dist/{CanvaslabelWidget-CDFf8Vll.js → CanvaslabelWidget-C074R2Fy.js} +2 -2
  38. package/dist/{CanvaslabelWidget-CDFf8Vll.js.map → CanvaslabelWidget-C074R2Fy.js.map} +1 -1
  39. package/dist/{CanvaslabelWidget-DiPxyXoX.cjs → CanvaslabelWidget-C7K2dtNN.cjs} +2 -2
  40. package/dist/{CanvaslabelWidget-DiPxyXoX.cjs.map → CanvaslabelWidget-C7K2dtNN.cjs.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-DzJKD6qs.js → CanvaslabelvalueWidget-B0nJeS4X.js} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-DzJKD6qs.js.map → CanvaslabelvalueWidget-B0nJeS4X.js.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-Cw5CCQTi.cjs → CanvaslabelvalueWidget-BuayHPZu.cjs} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-Cw5CCQTi.cjs.map → CanvaslabelvalueWidget-BuayHPZu.cjs.map} +1 -1
  45. package/dist/{CanvaslineWidget-BttTXCZq.js → CanvaslineWidget-CxnNAqOX.js} +2 -2
  46. package/dist/{CanvaslineWidget-BttTXCZq.js.map → CanvaslineWidget-CxnNAqOX.js.map} +1 -1
  47. package/dist/{CanvaslineWidget-BECtKTPL.cjs → CanvaslineWidget-DaBwCmSV.cjs} +2 -2
  48. package/dist/{CanvaslineWidget-BECtKTPL.cjs.map → CanvaslineWidget-DaBwCmSV.cjs.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-i6G0JfnZ.js → CanvaslinevalueWidget-BwfFyCwH.js} +2 -2
  50. package/dist/{CanvaslinevalueWidget-i6G0JfnZ.js.map → CanvaslinevalueWidget-BwfFyCwH.js.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-5duJ98qu.cjs → CanvaslinevalueWidget-xSHdgNCO.cjs} +2 -2
  52. package/dist/{CanvaslinevalueWidget-5duJ98qu.cjs.map → CanvaslinevalueWidget-xSHdgNCO.cjs.map} +1 -1
  53. package/dist/{CheckbuttonWidget-CTMObPhX.cjs → CheckbuttonWidget-Bey7tHx-.cjs} +2 -2
  54. package/dist/{CheckbuttonWidget-CTMObPhX.cjs.map → CheckbuttonWidget-Bey7tHx-.cjs.map} +1 -1
  55. package/dist/{CheckbuttonWidget-18jtf7sh.js → CheckbuttonWidget-yAm10oX0.js} +2 -2
  56. package/dist/{CheckbuttonWidget-18jtf7sh.js.map → CheckbuttonWidget-yAm10oX0.js.map} +1 -1
  57. package/dist/{ClassificationBanners-BmnQODLn.js → ClassificationBanners-DxpE_iPX.js} +2 -2
  58. package/dist/{ClassificationBanners-BmnQODLn.js.map → ClassificationBanners-DxpE_iPX.js.map} +1 -1
  59. package/dist/ClassificationBanners-xG4DOlqJ.cjs +2 -0
  60. package/dist/{ClassificationBanners-DjGCuH-4.cjs.map → ClassificationBanners-xG4DOlqJ.cjs.map} +1 -1
  61. package/dist/{ComboboxWidget-BjaVFbD4.js → ComboboxWidget-BnWksnnp.js} +2 -2
  62. package/dist/{ComboboxWidget-BjaVFbD4.js.map → ComboboxWidget-BnWksnnp.js.map} +1 -1
  63. package/dist/{ComboboxWidget-Cc0Acq9q.cjs → ComboboxWidget-Mh6axKMv.cjs} +2 -2
  64. package/dist/{ComboboxWidget-Cc0Acq9q.cjs.map → ComboboxWidget-Mh6axKMv.cjs.map} +1 -1
  65. package/dist/{CriticalCmdDialog-CO-nvphS.js → CriticalCmdDialog-D0fIp8Tq.js} +24 -23
  66. package/dist/{CriticalCmdDialog-CO-nvphS.js.map → CriticalCmdDialog-D0fIp8Tq.js.map} +1 -1
  67. package/dist/CriticalCmdDialog-DJ3FWL0_.cjs +2 -0
  68. package/dist/{CriticalCmdDialog-eytxCQto.cjs.map → CriticalCmdDialog-DJ3FWL0_.cjs.map} +1 -1
  69. package/dist/{DateWidget-DkFAFlc8.js → DateWidget-CAiG2FIl.js} +9 -8
  70. package/dist/{DateWidget-DkFAFlc8.js.map → DateWidget-CAiG2FIl.js.map} +1 -1
  71. package/dist/DateWidget-DUYYp-Yx.cjs +2 -0
  72. package/dist/{DateWidget-Cle8FY8Q.cjs.map → DateWidget-DUYYp-Yx.cjs.map} +1 -1
  73. package/dist/DetailsDialog-D3iPUi8b.cjs +2 -0
  74. package/dist/{DetailsDialog-BcMaTfuQ.cjs.map → DetailsDialog-D3iPUi8b.cjs.map} +1 -1
  75. package/dist/{DetailsDialog-sqja4Lzq.js → DetailsDialog-q5SDzw3R.js} +72 -71
  76. package/dist/{DetailsDialog-sqja4Lzq.js.map → DetailsDialog-q5SDzw3R.js.map} +1 -1
  77. package/dist/EventListDialog-1RsuuLHZ.cjs +2 -0
  78. package/dist/EventListDialog-1RsuuLHZ.cjs.map +1 -0
  79. package/dist/{EventListDialog-DjCQAwGl.js → EventListDialog-HuEtOu3k.js} +61 -58
  80. package/dist/EventListDialog-HuEtOu3k.js.map +1 -0
  81. package/dist/FilechecksumWidget-ByVrYgzI.cjs +2 -0
  82. package/dist/{FilechecksumWidget-2ta-UvLp.cjs.map → FilechecksumWidget-ByVrYgzI.cjs.map} +1 -1
  83. package/dist/{FilechecksumWidget-DqJ_hvN4.js → FilechecksumWidget-DeW9wy5d.js} +9 -9
  84. package/dist/{FilechecksumWidget-DqJ_hvN4.js.map → FilechecksumWidget-DeW9wy5d.js.map} +1 -1
  85. package/dist/{FiledisplayWidget-CYznG_tf.js → FiledisplayWidget-C_zPFu2E.js} +7 -6
  86. package/dist/{FiledisplayWidget-CYznG_tf.js.map → FiledisplayWidget-C_zPFu2E.js.map} +1 -1
  87. package/dist/FiledisplayWidget-hYmg981k.cjs +2 -0
  88. package/dist/{FiledisplayWidget-BUKXIQir.cjs.map → FiledisplayWidget-hYmg981k.cjs.map} +1 -1
  89. package/dist/{FormatvalueWidget-BpFXnA_U.cjs → FormatvalueWidget-7VD_kwxB.cjs} +2 -2
  90. package/dist/{FormatvalueWidget-BpFXnA_U.cjs.map → FormatvalueWidget-7VD_kwxB.cjs.map} +1 -1
  91. package/dist/{FormatvalueWidget-BnVu4YGx.js → FormatvalueWidget-BrvPWwfN.js} +3 -3
  92. package/dist/{FormatvalueWidget-BnVu4YGx.js.map → FormatvalueWidget-BrvPWwfN.js.map} +1 -1
  93. package/dist/{Graph-CUFzx8Ti.js → Graph-BCvaO4yI.js} +45 -38
  94. package/dist/Graph-BCvaO4yI.js.map +1 -0
  95. package/dist/Graph-BUqdz6gu.cjs +2 -0
  96. package/dist/Graph-BUqdz6gu.cjs.map +1 -0
  97. package/dist/GraphWidget-BdP0xM_P.cjs +2 -0
  98. package/dist/{GraphWidget-BvCQHVxQ.cjs.map → GraphWidget-BdP0xM_P.cjs.map} +1 -1
  99. package/dist/{GraphWidget-DO5XbOGy.js → GraphWidget-QS-VJoes.js} +26 -31
  100. package/dist/{GraphWidget-DO5XbOGy.js.map → GraphWidget-QS-VJoes.js.map} +1 -1
  101. package/dist/{HorizontalWidget-BBQE-dP-.cjs → HorizontalWidget-B9j7DG2Q.cjs} +2 -2
  102. package/dist/{HorizontalWidget-BBQE-dP-.cjs.map → HorizontalWidget-B9j7DG2Q.cjs.map} +1 -1
  103. package/dist/{HorizontalWidget-BA9PiP3d.js → HorizontalWidget-cFSsdChw.js} +2 -2
  104. package/dist/{HorizontalWidget-BA9PiP3d.js.map → HorizontalWidget-cFSsdChw.js.map} +1 -1
  105. package/dist/{HorizontalboxWidget-CX7J8RdA.cjs → HorizontalboxWidget-C3zHRO9h.cjs} +2 -2
  106. package/dist/{HorizontalboxWidget-CX7J8RdA.cjs.map → HorizontalboxWidget-C3zHRO9h.cjs.map} +1 -1
  107. package/dist/{HorizontalboxWidget-B-7HOqgl.js → HorizontalboxWidget-CKA7rLGd.js} +5 -5
  108. package/dist/{HorizontalboxWidget-B-7HOqgl.js.map → HorizontalboxWidget-CKA7rLGd.js.map} +1 -1
  109. package/dist/{HorizontallineWidget-D-o9MGo0.js → HorizontallineWidget-BqbLK0zc.js} +2 -2
  110. package/dist/{HorizontallineWidget-D-o9MGo0.js.map → HorizontallineWidget-BqbLK0zc.js.map} +1 -1
  111. package/dist/{HorizontallineWidget-odTFoB8u.cjs → HorizontallineWidget-GGNFIo1N.cjs} +2 -2
  112. package/dist/{HorizontallineWidget-odTFoB8u.cjs.map → HorizontallineWidget-GGNFIo1N.cjs.map} +1 -1
  113. package/dist/{IframeWidget-BzOka-fX.js → IframeWidget-CITX8Es1.js} +2 -2
  114. package/dist/{IframeWidget-BzOka-fX.js.map → IframeWidget-CITX8Es1.js.map} +1 -1
  115. package/dist/{IframeWidget-cTHu_Rmp.cjs → IframeWidget-lK6Cw1Pp.cjs} +2 -2
  116. package/dist/{IframeWidget-cTHu_Rmp.cjs.map → IframeWidget-lK6Cw1Pp.cjs.map} +1 -1
  117. package/dist/ImageLoader-CkTaGfCC.cjs +2 -0
  118. package/dist/{ImageLoader-BTEOukIw.cjs.map → ImageLoader-CkTaGfCC.cjs.map} +1 -1
  119. package/dist/{ImageLoader-CstmWFM4.js → ImageLoader-DQV_11Vd.js} +2 -2
  120. package/dist/{ImageLoader-CstmWFM4.js.map → ImageLoader-DQV_11Vd.js.map} +1 -1
  121. package/dist/{ImageviewerWidget-BA9uOM1q.js → ImageviewerWidget-BIsSA7KD.js} +2 -2
  122. package/dist/{ImageviewerWidget-BA9uOM1q.js.map → ImageviewerWidget-BIsSA7KD.js.map} +1 -1
  123. package/dist/{ImageviewerWidget-CLAFwmaB.cjs → ImageviewerWidget-CvbsaXCd.cjs} +2 -2
  124. package/dist/{ImageviewerWidget-CLAFwmaB.cjs.map → ImageviewerWidget-CvbsaXCd.cjs.map} +1 -1
  125. package/dist/InterfacesTab-Cfvks-ms.cjs +2 -0
  126. package/dist/{InterfacesTab-CM0CGFVS.cjs.map → InterfacesTab-Cfvks-ms.cjs.map} +1 -1
  127. package/dist/{InterfacesTab-C3mDLkGC.js → InterfacesTab-twne_Qp4.js} +11 -10
  128. package/dist/{InterfacesTab-C3mDLkGC.js.map → InterfacesTab-twne_Qp4.js.map} +1 -1
  129. package/dist/{LabelWidget-CMmVq1mx.cjs → LabelWidget-BFWd6Vgh.cjs} +2 -2
  130. package/dist/{LabelWidget-CMmVq1mx.cjs.map → LabelWidget-BFWd6Vgh.cjs.map} +1 -1
  131. package/dist/{LabelWidget-Da2howZF.js → LabelWidget-FQI-cH_A.js} +2 -2
  132. package/dist/{LabelWidget-Da2howZF.js.map → LabelWidget-FQI-cH_A.js.map} +1 -1
  133. package/dist/{LabelledWidget-CAqH0oWs.cjs → LabelledWidget-AZifUp-f.cjs} +2 -2
  134. package/dist/{LabelledWidget-CAqH0oWs.cjs.map → LabelledWidget-AZifUp-f.cjs.map} +1 -1
  135. package/dist/{LabelledWidget-BH8y3OXT.js → LabelledWidget-KGXtQ4Zb.js} +4 -4
  136. package/dist/{LabelledWidget-BH8y3OXT.js.map → LabelledWidget-KGXtQ4Zb.js.map} +1 -1
  137. package/dist/{LabelprogressbarWidget-Brl24F4c.js → LabelprogressbarWidget-72WyzD_Q.js} +4 -4
  138. package/dist/{LabelprogressbarWidget-Brl24F4c.js.map → LabelprogressbarWidget-72WyzD_Q.js.map} +1 -1
  139. package/dist/{LabelprogressbarWidget-BxLGmW9T.cjs → LabelprogressbarWidget-Bd2E9G7V.cjs} +2 -2
  140. package/dist/{LabelprogressbarWidget-BxLGmW9T.cjs.map → LabelprogressbarWidget-Bd2E9G7V.cjs.map} +1 -1
  141. package/dist/{LabelsparklineWidget-D22MB7-4.js → LabelsparklineWidget-DtWNf4mK.js} +4 -4
  142. package/dist/{LabelsparklineWidget-D22MB7-4.js.map → LabelsparklineWidget-DtWNf4mK.js.map} +1 -1
  143. package/dist/{LabelsparklineWidget-BUXOpBeB.cjs → LabelsparklineWidget-__3CB0T-.cjs} +2 -2
  144. package/dist/{LabelsparklineWidget-BUXOpBeB.cjs.map → LabelsparklineWidget-__3CB0T-.cjs.map} +1 -1
  145. package/dist/LabelvalueWidget-B681T0uR.cjs +2 -0
  146. package/dist/LabelvalueWidget-B681T0uR.cjs.map +1 -0
  147. package/dist/{LabelvalueWidget-_1JPbK-K.js → LabelvalueWidget-D_JLdY7r.js} +11 -12
  148. package/dist/LabelvalueWidget-D_JLdY7r.js.map +1 -0
  149. package/dist/LabelvaluedescWidget-BppM5vGp.js +64 -0
  150. package/dist/LabelvaluedescWidget-BppM5vGp.js.map +1 -0
  151. package/dist/LabelvaluedescWidget-CiGIPdMG.cjs +2 -0
  152. package/dist/LabelvaluedescWidget-CiGIPdMG.cjs.map +1 -0
  153. package/dist/{LabelvaluelimitsbarWidget-C9PlEhWo.js → LabelvaluelimitsbarWidget-B69ogLif.js} +4 -4
  154. package/dist/{LabelvaluelimitsbarWidget-C9PlEhWo.js.map → LabelvaluelimitsbarWidget-B69ogLif.js.map} +1 -1
  155. package/dist/{LabelvaluelimitsbarWidget-BGag8V6k.cjs → LabelvaluelimitsbarWidget-Cmb4kGcv.cjs} +2 -2
  156. package/dist/{LabelvaluelimitsbarWidget-BGag8V6k.cjs.map → LabelvaluelimitsbarWidget-Cmb4kGcv.cjs.map} +1 -1
  157. package/dist/{LabelvaluelimitscolumnWidget-SHVJIgGJ.cjs → LabelvaluelimitscolumnWidget-BXdmh9So.cjs} +2 -2
  158. package/dist/{LabelvaluelimitscolumnWidget-SHVJIgGJ.cjs.map → LabelvaluelimitscolumnWidget-BXdmh9So.cjs.map} +1 -1
  159. package/dist/{LabelvaluelimitscolumnWidget-Cay6AhoZ.js → LabelvaluelimitscolumnWidget-DPYwFdgq.js} +5 -5
  160. package/dist/{LabelvaluelimitscolumnWidget-Cay6AhoZ.js.map → LabelvaluelimitscolumnWidget-DPYwFdgq.js.map} +1 -1
  161. package/dist/{LabelvaluerangebarWidget-s_8IgY-C.js → LabelvaluerangebarWidget-BT0BcOoK.js} +4 -4
  162. package/dist/{LabelvaluerangebarWidget-s_8IgY-C.js.map → LabelvaluerangebarWidget-BT0BcOoK.js.map} +1 -1
  163. package/dist/{LabelvaluerangebarWidget-Dbibpimv.cjs → LabelvaluerangebarWidget-cavgscEk.cjs} +2 -2
  164. package/dist/{LabelvaluerangebarWidget-Dbibpimv.cjs.map → LabelvaluerangebarWidget-cavgscEk.cjs.map} +1 -1
  165. package/dist/{Layout-DwWEea79.cjs → Layout-D1ukrMwN.cjs} +2 -2
  166. package/dist/{Layout-DwWEea79.cjs.map → Layout-D1ukrMwN.cjs.map} +1 -1
  167. package/dist/{Layout-D7RGn0Fe.js → Layout-d-vb0okO.js} +2 -2
  168. package/dist/{Layout-D7RGn0Fe.js.map → Layout-d-vb0okO.js.map} +1 -1
  169. package/dist/{LedWidget-DgMtvsiv.js → LedWidget-Cmr6eVG2.js} +7 -6
  170. package/dist/{LedWidget-DgMtvsiv.js.map → LedWidget-Cmr6eVG2.js.map} +1 -1
  171. package/dist/LedWidget-Dwrm6hTX.cjs +2 -0
  172. package/dist/{LedWidget-BaiKDozd.cjs.map → LedWidget-Dwrm6hTX.cjs.map} +1 -1
  173. package/dist/{LimitsBar-BFM38vQL.cjs → LimitsBar-Dz1lZ_81.cjs} +2 -2
  174. package/dist/{LimitsBar-BFM38vQL.cjs.map → LimitsBar-Dz1lZ_81.cjs.map} +1 -1
  175. package/dist/{LimitsBar-CcOaAw0C.js → LimitsBar-qMynDHYT.js} +2 -2
  176. package/dist/{LimitsBar-CcOaAw0C.js.map → LimitsBar-qMynDHYT.js.map} +1 -1
  177. package/dist/{LimitsbarWidget-DpmJn1Lo.js → LimitsbarWidget-CMvcwa-m.js} +3 -3
  178. package/dist/{LimitsbarWidget-DpmJn1Lo.js.map → LimitsbarWidget-CMvcwa-m.js.map} +1 -1
  179. package/dist/{LimitsbarWidget-ConP3qI5.cjs → LimitsbarWidget-vIP9AUk4.cjs} +2 -2
  180. package/dist/{LimitsbarWidget-ConP3qI5.cjs.map → LimitsbarWidget-vIP9AUk4.cjs.map} +1 -1
  181. package/dist/LimitscolorWidget-CPuknJPk.cjs +2 -0
  182. package/dist/{LimitscolorWidget-veWQ4NXl.cjs.map → LimitscolorWidget-CPuknJPk.cjs.map} +1 -1
  183. package/dist/{LimitscolorWidget-BMXiEaDm.js → LimitscolorWidget-CZ9wMtcI.js} +7 -6
  184. package/dist/{LimitscolorWidget-BMXiEaDm.js.map → LimitscolorWidget-CZ9wMtcI.js.map} +1 -1
  185. package/dist/{LimitscolumnWidget-CJABAor8.cjs → LimitscolumnWidget-r-nOETY5.cjs} +2 -2
  186. package/dist/{LimitscolumnWidget-CJABAor8.cjs.map → LimitscolumnWidget-r-nOETY5.cjs.map} +1 -1
  187. package/dist/{LimitscolumnWidget-ufFMz6R-.js → LimitscolumnWidget-r84KJGU-.js} +2 -2
  188. package/dist/{LimitscolumnWidget-ufFMz6R-.js.map → LimitscolumnWidget-r84KJGU-.js.map} +1 -1
  189. package/dist/LinegraphWidget-BMUI8q6Q.cjs +2 -0
  190. package/dist/{LinegraphWidget-3E8L5CvM.cjs.map → LinegraphWidget-BMUI8q6Q.cjs.map} +1 -1
  191. package/dist/{LinegraphWidget-BC2wVOny.js → LinegraphWidget-COGBGOjF.js} +10 -9
  192. package/dist/{LinegraphWidget-BC2wVOny.js.map → LinegraphWidget-COGBGOjF.js.map} +1 -1
  193. package/dist/{MatrixbycolumnsWidget-DICgiNQo.cjs → MatrixbycolumnsWidget-BoNbbrEi.cjs} +2 -2
  194. package/dist/{MatrixbycolumnsWidget-DICgiNQo.cjs.map → MatrixbycolumnsWidget-BoNbbrEi.cjs.map} +1 -1
  195. package/dist/{MatrixbycolumnsWidget-DfUAeBnO.js → MatrixbycolumnsWidget-Dx2iz0YF.js} +3 -3
  196. package/dist/{MatrixbycolumnsWidget-DfUAeBnO.js.map → MatrixbycolumnsWidget-Dx2iz0YF.js.map} +1 -1
  197. package/dist/{MicroservicesTab-B0SZVty3.js → MicroservicesTab-Bhsf1soi.js} +12 -11
  198. package/dist/{MicroservicesTab-B0SZVty3.js.map → MicroservicesTab-Bhsf1soi.js.map} +1 -1
  199. package/dist/{MicroservicesTab-snXJDoYq.cjs → MicroservicesTab-Cuj56g8-.cjs} +3 -3
  200. package/dist/{MicroservicesTab-snXJDoYq.cjs.map → MicroservicesTab-Cuj56g8-.cjs.map} +1 -1
  201. package/dist/{OpenC3TimePicker-DpkbfbgC.js → OpenC3TimePicker-C3vCnk72.js} +20 -24
  202. package/dist/OpenC3TimePicker-C3vCnk72.js.map +1 -0
  203. package/dist/OpenC3TimePicker-CVUV2cK4.cjs +2 -0
  204. package/dist/OpenC3TimePicker-CVUV2cK4.cjs.map +1 -0
  205. package/dist/Openc3Screen-Bi6NOEQM.cjs +6 -0
  206. package/dist/{Openc3Screen-D1RLlBgQ.cjs.map → Openc3Screen-Bi6NOEQM.cjs.map} +1 -1
  207. package/dist/{Openc3Screen-DbUvz-3B.js → Openc3Screen-DkhDra2o.js} +67 -66
  208. package/dist/{Openc3Screen-DbUvz-3B.js.map → Openc3Screen-DkhDra2o.js.map} +1 -1
  209. package/dist/{OutputDialog-Ds-GdGyI.js → OutputDialog-D0ifesTw.js} +11 -10
  210. package/dist/{OutputDialog-Ds-GdGyI.js.map → OutputDialog-D0ifesTw.js.map} +1 -1
  211. package/dist/OutputDialog-DR9cJem2.cjs +2 -0
  212. package/dist/{OutputDialog-ChPCaQAE.cjs.map → OutputDialog-DR9cJem2.cjs.map} +1 -1
  213. package/dist/PackagesTab-B4sG5tHo.cjs +2 -0
  214. package/dist/{PackagesTab-BgQsbXRo.cjs.map → PackagesTab-B4sG5tHo.cjs.map} +1 -1
  215. package/dist/{PackagesTab-CWplBp_I.js → PackagesTab-Bb221-aM.js} +19 -18
  216. package/dist/{PackagesTab-CWplBp_I.js.map → PackagesTab-Bb221-aM.js.map} +1 -1
  217. package/dist/PluginsTab-Cbi_R9jL.cjs +6 -0
  218. package/dist/PluginsTab-Cbi_R9jL.cjs.map +1 -0
  219. package/dist/{PluginsTab-BiiL622n.js → PluginsTab-nWngR5kY.js} +275 -234
  220. package/dist/PluginsTab-nWngR5kY.js.map +1 -0
  221. package/dist/{ProgressbarWidget-D3ndYnq_.js → ProgressbarWidget-DPbAVjdC.js} +2 -2
  222. package/dist/{ProgressbarWidget-D3ndYnq_.js.map → ProgressbarWidget-DPbAVjdC.js.map} +1 -1
  223. package/dist/{ProgressbarWidget-DludJVUf.cjs → ProgressbarWidget-cPr3o6Nv.cjs} +2 -2
  224. package/dist/{ProgressbarWidget-DludJVUf.cjs.map → ProgressbarWidget-cPr3o6Nv.cjs.map} +1 -1
  225. package/dist/{RadiobuttonWidget-DX4h94p1.cjs → RadiobuttonWidget-BQZkRFa-.cjs} +2 -2
  226. package/dist/{RadiobuttonWidget-DX4h94p1.cjs.map → RadiobuttonWidget-BQZkRFa-.cjs.map} +1 -1
  227. package/dist/{RadiobuttonWidget-CP0S9nWW.js → RadiobuttonWidget-iXI9yCDk.js} +2 -2
  228. package/dist/{RadiobuttonWidget-CP0S9nWW.js.map → RadiobuttonWidget-iXI9yCDk.js.map} +1 -1
  229. package/dist/{RadiogroupWidget-BXHfA21T.js → RadiogroupWidget-CMM_p1eA.js} +2 -2
  230. package/dist/{RadiogroupWidget-BXHfA21T.js.map → RadiogroupWidget-CMM_p1eA.js.map} +1 -1
  231. package/dist/{RadiogroupWidget-NqjBNUH6.cjs → RadiogroupWidget-D2iIQ5RU.cjs} +2 -2
  232. package/dist/{RadiogroupWidget-NqjBNUH6.cjs.map → RadiogroupWidget-D2iIQ5RU.cjs.map} +1 -1
  233. package/dist/{RangebarWidget-Bv2DqkPo.js → RangebarWidget-DJXGUHAc.js} +2 -2
  234. package/dist/{RangebarWidget-Bv2DqkPo.js.map → RangebarWidget-DJXGUHAc.js.map} +1 -1
  235. package/dist/{RangebarWidget-CRq2zpvw.cjs → RangebarWidget-DsphX-jB.cjs} +2 -2
  236. package/dist/{RangebarWidget-CRq2zpvw.cjs.map → RangebarWidget-DsphX-jB.cjs.map} +1 -1
  237. package/dist/RedisTab-BZtfqEcP.js +186 -0
  238. package/dist/RedisTab-BZtfqEcP.js.map +1 -0
  239. package/dist/RedisTab-KhsG2CCO.cjs +2 -0
  240. package/dist/RedisTab-KhsG2CCO.cjs.map +1 -0
  241. package/dist/{RollupWidget-o_huYU0x.js → RollupWidget-BbWLSsTT.js} +2 -2
  242. package/dist/{RollupWidget-o_huYU0x.js.map → RollupWidget-BbWLSsTT.js.map} +1 -1
  243. package/dist/{RollupWidget-B7_Q_boi.cjs → RollupWidget-w-SF3f-X.cjs} +2 -2
  244. package/dist/{RollupWidget-B7_Q_boi.cjs.map → RollupWidget-w-SF3f-X.cjs.map} +1 -1
  245. package/dist/{RoutersTab-DN17iBBi.js → RoutersTab-CLKIJ5cm.js} +13 -12
  246. package/dist/{RoutersTab-DN17iBBi.js.map → RoutersTab-CLKIJ5cm.js.map} +1 -1
  247. package/dist/RoutersTab-DUvOfNhU.cjs +2 -0
  248. package/dist/{RoutersTab-CAbnSGHy.cjs.map → RoutersTab-DUvOfNhU.cjs.map} +1 -1
  249. package/dist/{ScriptChooser-CzzUJ1Zj.js → ScriptChooser-BxTJKTVu.js} +20 -19
  250. package/dist/{ScriptChooser-CzzUJ1Zj.js.map → ScriptChooser-BxTJKTVu.js.map} +1 -1
  251. package/dist/ScriptChooser-YC_FfCLd.cjs +2 -0
  252. package/dist/{ScriptChooser-CggwstfT.cjs.map → ScriptChooser-YC_FfCLd.cjs.map} +1 -1
  253. package/dist/{ScrollwindowWidget-kS5QjP-v.cjs → ScrollwindowWidget-D1mtHFMa.cjs} +2 -2
  254. package/dist/{ScrollwindowWidget-kS5QjP-v.cjs.map → ScrollwindowWidget-D1mtHFMa.cjs.map} +1 -1
  255. package/dist/{ScrollwindowWidget-DdjaML6D.js → ScrollwindowWidget-Dxhp7yKn.js} +2 -2
  256. package/dist/{ScrollwindowWidget-DdjaML6D.js.map → ScrollwindowWidget-Dxhp7yKn.js.map} +1 -1
  257. package/dist/SecretsTab-B7oZb354.cjs +2 -0
  258. package/dist/{SecretsTab-Cn6-o85L.cjs.map → SecretsTab-B7oZb354.cjs.map} +1 -1
  259. package/dist/{SecretsTab-Cu3sx2OA.js → SecretsTab-BoBmTh63.js} +5 -5
  260. package/dist/{SecretsTab-Cu3sx2OA.js.map → SecretsTab-BoBmTh63.js.map} +1 -1
  261. package/dist/SettingsTab-2EMyS-3_.cjs +3 -0
  262. package/dist/{SettingsTab-C6zIL2D6.cjs.map → SettingsTab-2EMyS-3_.cjs.map} +1 -1
  263. package/dist/{SettingsTab-B_vvSLvt.js → SettingsTab-BL7gkaO9.js} +7 -6
  264. package/dist/{SettingsTab-B_vvSLvt.js.map → SettingsTab-BL7gkaO9.js.map} +1 -1
  265. package/dist/{SignalWidget-Dd54y28I.js → SignalWidget-65q0tiuo.js} +2 -2
  266. package/dist/{SignalWidget-Dd54y28I.js.map → SignalWidget-65q0tiuo.js.map} +1 -1
  267. package/dist/{SignalWidget-BagcB92r.cjs → SignalWidget-Cld2lVyc.cjs} +2 -2
  268. package/dist/{SignalWidget-BagcB92r.cjs.map → SignalWidget-Cld2lVyc.cjs.map} +1 -1
  269. package/dist/{SimpleTextDialog-DZv9n_kJ.js → SimpleTextDialog-ChmFtdVw.js} +2 -2
  270. package/dist/{SimpleTextDialog-DZv9n_kJ.js.map → SimpleTextDialog-ChmFtdVw.js.map} +1 -1
  271. package/dist/{SimpleTextDialog-BJ50TbWh.cjs → SimpleTextDialog-DVlqwD8O.cjs} +2 -2
  272. package/dist/{SimpleTextDialog-BJ50TbWh.cjs.map → SimpleTextDialog-DVlqwD8O.cjs.map} +1 -1
  273. package/dist/{SpacerWidget-GPFYtIG1.js → SpacerWidget-DFzbojmX.js} +2 -2
  274. package/dist/{SpacerWidget-GPFYtIG1.js.map → SpacerWidget-DFzbojmX.js.map} +1 -1
  275. package/dist/{SpacerWidget-DWjBns9r.cjs → SpacerWidget-DV0-ZfEm.cjs} +2 -2
  276. package/dist/{SpacerWidget-DWjBns9r.cjs.map → SpacerWidget-DV0-ZfEm.cjs.map} +1 -1
  277. package/dist/SparklineWidget-B1RfTxEp.cjs +2 -0
  278. package/dist/{SparklineWidget-xdPgolp3.cjs.map → SparklineWidget-B1RfTxEp.cjs.map} +1 -1
  279. package/dist/{SparklineWidget-f11nrlLS.js → SparklineWidget-Bu4I8zY0.js} +10 -9
  280. package/dist/{SparklineWidget-f11nrlLS.js.map → SparklineWidget-Bu4I8zY0.js.map} +1 -1
  281. package/dist/{TabbookWidget-DeaC27yC.js → TabbookWidget-CELMWyx7.js} +2 -2
  282. package/dist/{TabbookWidget-DeaC27yC.js.map → TabbookWidget-CELMWyx7.js.map} +1 -1
  283. package/dist/{TabbookWidget-CUIYWHRH.cjs → TabbookWidget-CLpx5e5Q.cjs} +2 -2
  284. package/dist/{TabbookWidget-CUIYWHRH.cjs.map → TabbookWidget-CLpx5e5Q.cjs.map} +1 -1
  285. package/dist/{TargetPacketItemChooser-BoBqvs3T.js → TargetPacketItemChooser-BOdVLVbe.js} +177 -153
  286. package/dist/TargetPacketItemChooser-BOdVLVbe.js.map +1 -0
  287. package/dist/TargetPacketItemChooser-xoRA3b9K.cjs +2 -0
  288. package/dist/TargetPacketItemChooser-xoRA3b9K.cjs.map +1 -0
  289. package/dist/{TargetsTab-CjVaBN9O.js → TargetsTab-BJZEtKY4.js} +11 -10
  290. package/dist/{TargetsTab-CjVaBN9O.js.map → TargetsTab-BJZEtKY4.js.map} +1 -1
  291. package/dist/TargetsTab-Dkp4VoK6.cjs +2 -0
  292. package/dist/{TargetsTab-BMcWjrZ_.cjs.map → TargetsTab-Dkp4VoK6.cjs.map} +1 -1
  293. package/dist/{TextboxWidget-tL41zWUX.js → TextboxWidget-DYsqXntS.js} +7 -6
  294. package/dist/{TextboxWidget-tL41zWUX.js.map → TextboxWidget-DYsqXntS.js.map} +1 -1
  295. package/dist/TextboxWidget-DuNmhz89.cjs +2 -0
  296. package/dist/{TextboxWidget-CXA9rR02.cjs.map → TextboxWidget-DuNmhz89.cjs.map} +1 -1
  297. package/dist/{TextfieldWidget-D1qj14Qi.js → TextfieldWidget-BIUgV9Q4.js} +2 -2
  298. package/dist/{TextfieldWidget-D1qj14Qi.js.map → TextfieldWidget-BIUgV9Q4.js.map} +1 -1
  299. package/dist/{TextfieldWidget-D-H2fOZG.cjs → TextfieldWidget-BlW-rSVv.cjs} +2 -2
  300. package/dist/{TextfieldWidget-D-H2fOZG.cjs.map → TextfieldWidget-BlW-rSVv.cjs.map} +1 -1
  301. package/dist/{TimeWidget-CSVGNong.js → TimeWidget-BPXcY1Wy.js} +7 -6
  302. package/dist/{TimeWidget-CSVGNong.js.map → TimeWidget-BPXcY1Wy.js.map} +1 -1
  303. package/dist/TimeWidget-BddmbQgt.cjs +2 -0
  304. package/dist/{TimeWidget-CGk8Ze_I.cjs.map → TimeWidget-BddmbQgt.cjs.map} +1 -1
  305. package/dist/{TitleWidget-ClhWhUf3.cjs → TitleWidget-CPqwZKUx.cjs} +2 -2
  306. package/dist/{TitleWidget-ClhWhUf3.cjs.map → TitleWidget-CPqwZKUx.cjs.map} +1 -1
  307. package/dist/{TitleWidget-CLx-tuYT.js → TitleWidget-DJ9mHRLE.js} +2 -2
  308. package/dist/{TitleWidget-CLx-tuYT.js.map → TitleWidget-DJ9mHRLE.js.map} +1 -1
  309. package/dist/ToolsTab-B4CURni4.cjs +2 -0
  310. package/dist/{ToolsTab-DTHap-Nq.cjs.map → ToolsTab-B4CURni4.cjs.map} +1 -1
  311. package/dist/{ToolsTab-lBB_KhmA.js → ToolsTab-VSCWDywf.js} +62 -61
  312. package/dist/{ToolsTab-lBB_KhmA.js.map → ToolsTab-VSCWDywf.js.map} +1 -1
  313. package/dist/{TopBar-C810rP_B.js → TopBar-B4oz2FsN.js} +2 -2
  314. package/dist/{TopBar-C810rP_B.js.map → TopBar-B4oz2FsN.js.map} +1 -1
  315. package/dist/{TopBar-Ctzx7o2k.cjs → TopBar-lcB6jpd_.cjs} +2 -2
  316. package/dist/{TopBar-Ctzx7o2k.cjs.map → TopBar-lcB6jpd_.cjs.map} +1 -1
  317. package/dist/TsdbTab-Cv8GjpoJ.js +1164 -0
  318. package/dist/TsdbTab-Cv8GjpoJ.js.map +1 -0
  319. package/dist/TsdbTab-OOO451j0.cjs +5 -0
  320. package/dist/TsdbTab-OOO451j0.cjs.map +1 -0
  321. package/dist/{UpgradeToEnterpriseDialog-D_S574Zb.js → UpgradeToEnterpriseDialog-BUuXsGPY.js} +2 -2
  322. package/dist/{UpgradeToEnterpriseDialog-D_S574Zb.js.map → UpgradeToEnterpriseDialog-BUuXsGPY.js.map} +1 -1
  323. package/dist/{UpgradeToEnterpriseDialog-XJb6gVCY.cjs → UpgradeToEnterpriseDialog-DHLK6v6f.cjs} +2 -2
  324. package/dist/{UpgradeToEnterpriseDialog-XJb6gVCY.cjs.map → UpgradeToEnterpriseDialog-DHLK6v6f.cjs.map} +1 -1
  325. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs +1477 -0
  326. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs.map +1 -0
  327. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js +26306 -0
  328. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js.map +1 -0
  329. package/dist/VWidget-B6WHN0_z.cjs +2 -0
  330. package/dist/VWidget-B6WHN0_z.cjs.map +1 -0
  331. package/dist/{VWidget-CxnaMF0w.js → VWidget-BDy0211S.js} +17 -20
  332. package/dist/VWidget-BDy0211S.js.map +1 -0
  333. package/dist/{ValueWidget-BYgpXfDo.js → ValueWidget-DzOSy7lp.js} +7 -6
  334. package/dist/{ValueWidget-BYgpXfDo.js.map → ValueWidget-DzOSy7lp.js.map} +1 -1
  335. package/dist/ValueWidget-QWzoEFXc.cjs +2 -0
  336. package/dist/{ValueWidget-Bws1qOEI.cjs.map → ValueWidget-QWzoEFXc.cjs.map} +1 -1
  337. package/dist/{ValuelimitsbarWidget-BoZSJvuq.cjs → ValuelimitsbarWidget-5AkAljK-.cjs} +2 -2
  338. package/dist/{ValuelimitsbarWidget-BoZSJvuq.cjs.map → ValuelimitsbarWidget-5AkAljK-.cjs.map} +1 -1
  339. package/dist/{ValuelimitsbarWidget-Dc9-VNZ3.js → ValuelimitsbarWidget-D5dSlW6D.js} +4 -4
  340. package/dist/{ValuelimitsbarWidget-Dc9-VNZ3.js.map → ValuelimitsbarWidget-D5dSlW6D.js.map} +1 -1
  341. package/dist/{ValuelimitscolumnWidget-b7W8K3mR.js → ValuelimitscolumnWidget-7DXCsVW_.js} +4 -4
  342. package/dist/{ValuelimitscolumnWidget-b7W8K3mR.js.map → ValuelimitscolumnWidget-7DXCsVW_.js.map} +1 -1
  343. package/dist/{ValuelimitscolumnWidget-ta9i_tiy.cjs → ValuelimitscolumnWidget-zNx9i1v7.cjs} +2 -2
  344. package/dist/{ValuelimitscolumnWidget-ta9i_tiy.cjs.map → ValuelimitscolumnWidget-zNx9i1v7.cjs.map} +1 -1
  345. package/dist/{ValuerangebarWidget-DmhczZQb.js → ValuerangebarWidget-BWjnpmyy.js} +4 -4
  346. package/dist/{ValuerangebarWidget-DmhczZQb.js.map → ValuerangebarWidget-BWjnpmyy.js.map} +1 -1
  347. package/dist/{ValuerangebarWidget-Ips-beG6.cjs → ValuerangebarWidget-EsdIz4oP.cjs} +2 -2
  348. package/dist/{ValuerangebarWidget-Ips-beG6.cjs.map → ValuerangebarWidget-EsdIz4oP.cjs.map} +1 -1
  349. package/dist/{VerticalWidget-BvsVh0Ob.js → VerticalWidget-BOtXAhxt.js} +2 -2
  350. package/dist/{VerticalWidget-BvsVh0Ob.js.map → VerticalWidget-BOtXAhxt.js.map} +1 -1
  351. package/dist/{VerticalWidget-BVt7QPjO.cjs → VerticalWidget-DVskS6fx.cjs} +2 -2
  352. package/dist/{VerticalWidget-BVt7QPjO.cjs.map → VerticalWidget-DVskS6fx.cjs.map} +1 -1
  353. package/dist/{VerticalboxWidget-CNoXT3YW.cjs → VerticalboxWidget-Bu4oHN2K.cjs} +2 -2
  354. package/dist/{VerticalboxWidget-CNoXT3YW.cjs.map → VerticalboxWidget-Bu4oHN2K.cjs.map} +1 -1
  355. package/dist/{VerticalboxWidget-ClTCDCQN.js → VerticalboxWidget-RAsXfGdI.js} +5 -5
  356. package/dist/{VerticalboxWidget-ClTCDCQN.js.map → VerticalboxWidget-RAsXfGdI.js.map} +1 -1
  357. package/dist/{Widget-DRhVdCLP.js → Widget-BDsgRxuV.js} +37 -14
  358. package/dist/{Widget-DRhVdCLP.js.map → Widget-BDsgRxuV.js.map} +1 -1
  359. package/dist/Widget-Ddu_kuTL.cjs +2 -0
  360. package/dist/{Widget-CB_BtOFw.cjs.map → Widget-Ddu_kuTL.cjs.map} +1 -1
  361. package/dist/{addMonths-Zggd7y6j.js → addMonths-BiRF9eDT.js} +2 -2
  362. package/dist/{addMonths-Zggd7y6j.js.map → addMonths-BiRF9eDT.js.map} +1 -1
  363. package/dist/{addMonths-BhOW2mOW.cjs → addMonths-Ds2ObZwt.cjs} +2 -2
  364. package/dist/{addMonths-BhOW2mOW.cjs.map → addMonths-Ds2ObZwt.cjs.map} +1 -1
  365. package/dist/components.cjs +2 -2
  366. package/dist/components.js +28 -28
  367. package/dist/format-D2pYLAIF.js +5896 -0
  368. package/dist/format-D2pYLAIF.js.map +1 -0
  369. package/dist/format-qjtPogBb.cjs +13 -0
  370. package/dist/format-qjtPogBb.cjs.map +1 -0
  371. package/dist/getDefaultOptions-DSMQojSA.cjs +2 -0
  372. package/dist/{getDefaultOptions-Cek5kGzE.cjs.map → getDefaultOptions-DSMQojSA.cjs.map} +1 -1
  373. package/dist/getDefaultOptions-v3X-F5jM.js +8 -0
  374. package/dist/{getDefaultOptions-xjgn1r-_.js.map → getDefaultOptions-v3X-F5jM.js.map} +1 -1
  375. package/dist/{index-GYAZJDxn.js → index-BJCQaZ7q.js} +63 -62
  376. package/dist/{index-GYAZJDxn.js.map → index-BJCQaZ7q.js.map} +1 -1
  377. package/dist/{index-CJcL4_a4.js → index-BjcgyMLV.js} +691 -633
  378. package/dist/index-BjcgyMLV.js.map +1 -0
  379. package/dist/{index-3sXOEKCU.cjs → index-CctPeecq.cjs} +5 -5
  380. package/dist/{index-3sXOEKCU.cjs.map → index-CctPeecq.cjs.map} +1 -1
  381. package/dist/index-_a-NnvKv.cjs +10 -0
  382. package/dist/index-_a-NnvKv.cjs.map +1 -0
  383. package/dist/{parse-BKTTGw2p.js → parse-Br4M7sX4.js} +3 -3
  384. package/dist/{parse-BKTTGw2p.js.map → parse-Br4M7sX4.js.map} +1 -1
  385. package/dist/{parse-DgZTYocC.cjs → parse-D8syXcjd.cjs} +2 -2
  386. package/dist/{parse-DgZTYocC.cjs.map → parse-D8syXcjd.cjs.map} +1 -1
  387. package/dist/plugins.cjs +1 -1
  388. package/dist/plugins.cjs.map +1 -1
  389. package/dist/plugins.js +1 -1
  390. package/dist/plugins.js.map +1 -1
  391. package/dist/purify.es-CehoGjrR.cjs +3 -0
  392. package/dist/purify.es-CehoGjrR.cjs.map +1 -0
  393. package/dist/purify.es-exIQuqhb.js +596 -0
  394. package/dist/purify.es-exIQuqhb.js.map +1 -0
  395. package/dist/settings-CWvCIKI4.cjs +2 -0
  396. package/dist/{settings-B0AhztTk.cjs.map → settings-CWvCIKI4.cjs.map} +1 -1
  397. package/dist/{settings-C2auUQwX.js → settings-Dvmurty6.js} +2 -2
  398. package/dist/{settings-C2auUQwX.js.map → settings-Dvmurty6.js.map} +1 -1
  399. package/dist/settingsCache-CGgEjlw3.js +28 -0
  400. package/dist/settingsCache-CGgEjlw3.js.map +1 -0
  401. package/dist/settingsCache-Dg7OMDJK.cjs +2 -0
  402. package/dist/settingsCache-Dg7OMDJK.cjs.map +1 -0
  403. package/dist/{timeFilters-CRNRsUsb.cjs → timeFilters-BtN2a5-O.cjs} +2 -2
  404. package/dist/{timeFilters-CRNRsUsb.cjs.map → timeFilters-BtN2a5-O.cjs.map} +1 -1
  405. package/dist/{timeFilters-DTOZtBlG.js → timeFilters-C1beMtAQ.js} +3 -3
  406. package/dist/{timeFilters-DTOZtBlG.js.map → timeFilters-C1beMtAQ.js.map} +1 -1
  407. package/dist/tools/admin.cjs +1 -1
  408. package/dist/tools/admin.js +1 -1
  409. package/dist/tools/base.cjs +1 -1
  410. package/dist/tools/base.cjs.map +1 -1
  411. package/dist/tools/base.js +51 -51
  412. package/dist/tools/calendar.cjs +1 -1
  413. package/dist/tools/calendar.js +1 -1
  414. package/dist/tools/scriptrunner.cjs +8 -8
  415. package/dist/tools/scriptrunner.cjs.map +1 -1
  416. package/dist/tools/scriptrunner.js +17 -17
  417. package/dist/tools/scriptrunner.js.map +1 -1
  418. package/dist/util.cjs +1 -1
  419. package/dist/util.js +11 -7
  420. package/dist/util.js.map +1 -1
  421. package/dist/vue-common.css +1 -1
  422. package/dist/widgets.cjs +1 -1
  423. package/dist/widgets.js +64 -64
  424. package/package.json +7 -7
  425. package/dist/ArrayplotWidget-BHD-TGQO.cjs +0 -2
  426. package/dist/BarColumn-DmjMnw5l.js.map +0 -1
  427. package/dist/BarColumn-Ym4P8YHC.cjs +0 -2
  428. package/dist/BarColumn-Ym4P8YHC.cjs.map +0 -1
  429. package/dist/ButtonWidget-70hNWuEy.cjs +0 -3
  430. package/dist/ButtonWidget-70hNWuEy.cjs.map +0 -1
  431. package/dist/ButtonWidget-DZ4VCNWU.js.map +0 -1
  432. package/dist/ClassificationBanners-DjGCuH-4.cjs +0 -2
  433. package/dist/CriticalCmdDialog-eytxCQto.cjs +0 -2
  434. package/dist/DateWidget-Cle8FY8Q.cjs +0 -2
  435. package/dist/DetailsDialog-BcMaTfuQ.cjs +0 -2
  436. package/dist/EventListDialog-DjCQAwGl.js.map +0 -1
  437. package/dist/EventListDialog-EmC7YW60.cjs +0 -2
  438. package/dist/EventListDialog-EmC7YW60.cjs.map +0 -1
  439. package/dist/FilechecksumWidget-2ta-UvLp.cjs +0 -2
  440. package/dist/FiledisplayWidget-BUKXIQir.cjs +0 -2
  441. package/dist/Graph-CUFzx8Ti.js.map +0 -1
  442. package/dist/Graph-qxF4224c.cjs +0 -2
  443. package/dist/Graph-qxF4224c.cjs.map +0 -1
  444. package/dist/GraphWidget-BvCQHVxQ.cjs +0 -2
  445. package/dist/ImageLoader-BTEOukIw.cjs +0 -2
  446. package/dist/InterfacesTab-CM0CGFVS.cjs +0 -2
  447. package/dist/LabelvalueWidget-_1JPbK-K.js.map +0 -1
  448. package/dist/LabelvalueWidget-bYqqgIGE.cjs +0 -2
  449. package/dist/LabelvalueWidget-bYqqgIGE.cjs.map +0 -1
  450. package/dist/LabelvaluedescWidget-B2dFZoDE.cjs +0 -2
  451. package/dist/LabelvaluedescWidget-B2dFZoDE.cjs.map +0 -1
  452. package/dist/LabelvaluedescWidget-BgduSJJb.js +0 -59
  453. package/dist/LabelvaluedescWidget-BgduSJJb.js.map +0 -1
  454. package/dist/LedWidget-BaiKDozd.cjs +0 -2
  455. package/dist/LimitscolorWidget-veWQ4NXl.cjs +0 -2
  456. package/dist/LinegraphWidget-3E8L5CvM.cjs +0 -2
  457. package/dist/OpenC3TimePicker-DpkbfbgC.js.map +0 -1
  458. package/dist/OpenC3TimePicker-Yl1jVi7p.cjs +0 -2
  459. package/dist/OpenC3TimePicker-Yl1jVi7p.cjs.map +0 -1
  460. package/dist/Openc3Screen-D1RLlBgQ.cjs +0 -6
  461. package/dist/OutputDialog-ChPCaQAE.cjs +0 -2
  462. package/dist/PackagesTab-BgQsbXRo.cjs +0 -2
  463. package/dist/PluginsTab-BiiL622n.js.map +0 -1
  464. package/dist/PluginsTab-RgIMk-F7.cjs +0 -6
  465. package/dist/PluginsTab-RgIMk-F7.cjs.map +0 -1
  466. package/dist/RedisTab-7TbOXFA_.js +0 -171
  467. package/dist/RedisTab-7TbOXFA_.js.map +0 -1
  468. package/dist/RedisTab-DpWPY1P0.cjs +0 -2
  469. package/dist/RedisTab-DpWPY1P0.cjs.map +0 -1
  470. package/dist/RoutersTab-CAbnSGHy.cjs +0 -2
  471. package/dist/ScriptChooser-CggwstfT.cjs +0 -2
  472. package/dist/SecretsTab-Cn6-o85L.cjs +0 -2
  473. package/dist/SettingsTab-C6zIL2D6.cjs +0 -3
  474. package/dist/SparklineWidget-xdPgolp3.cjs +0 -2
  475. package/dist/TargetPacketItemChooser-BoBqvs3T.js.map +0 -1
  476. package/dist/TargetPacketItemChooser-C0Z90rss.cjs +0 -2
  477. package/dist/TargetPacketItemChooser-C0Z90rss.cjs.map +0 -1
  478. package/dist/TargetsTab-BMcWjrZ_.cjs +0 -2
  479. package/dist/TextboxWidget-CXA9rR02.cjs +0 -2
  480. package/dist/TimeWidget-CGk8Ze_I.cjs +0 -2
  481. package/dist/ToolsTab-DTHap-Nq.cjs +0 -2
  482. package/dist/TsdbTab-7F4mRKDo.js +0 -125
  483. package/dist/TsdbTab-7F4mRKDo.js.map +0 -1
  484. package/dist/TsdbTab-DVF6n9mq.cjs +0 -2
  485. package/dist/TsdbTab-DVF6n9mq.cjs.map +0 -1
  486. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js +0 -30891
  487. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js.map +0 -1
  488. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs +0 -1485
  489. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs.map +0 -1
  490. package/dist/VWidget-CxnaMF0w.js.map +0 -1
  491. package/dist/VWidget-dEHSEvZx.cjs +0 -2
  492. package/dist/VWidget-dEHSEvZx.cjs.map +0 -1
  493. package/dist/ValueWidget-Bws1qOEI.cjs +0 -2
  494. package/dist/Widget-CB_BtOFw.cjs +0 -2
  495. package/dist/format-CJYjW-xx.js +0 -1252
  496. package/dist/format-CJYjW-xx.js.map +0 -1
  497. package/dist/format-DOZQNf-X.cjs +0 -2
  498. package/dist/format-DOZQNf-X.cjs.map +0 -1
  499. package/dist/getDefaultOptions-Cek5kGzE.cjs +0 -2
  500. package/dist/getDefaultOptions-xjgn1r-_.js +0 -8
  501. package/dist/index-B34azWgs.cjs +0 -7
  502. package/dist/index-B34azWgs.cjs.map +0 -1
  503. package/dist/index-CJcL4_a4.js.map +0 -1
  504. package/dist/purify.es-4pyphLiB.cjs +0 -3
  505. package/dist/purify.es-4pyphLiB.cjs.map +0 -1
  506. package/dist/purify.es-BPDBzHtc.js +0 -553
  507. package/dist/purify.es-BPDBzHtc.js.map +0 -1
  508. package/dist/settings-B0AhztTk.cjs +0 -2
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs");const e=require("vue"),f=require("./CustomIcon-8F08upeg.cjs"),g=require("./DetailsDialog-BcMaTfuQ.cjs");require("./store-CiS35N-w.cjs");require("single-spa");const v=require("./VWidget-dEHSEvZx.cjs"),w={components:{DetailsDialog:g.DetailsDialog},mixins:[v.VWidget],data:function(){return{width:200,height:100,itemsPerRow:4,formatter:null}},computed:{aging(){return{"--aging":this.grayLevel}}},created:function(){this.width=this.setWidth(this.parameters[3],"px",this.width),this.height=this.setHeight(this.parameters[4],"px",this.height),this.parameters[5]&&(this.formatter=this.parameters[5]),this.parameters[6]&&(this.itemsPerRow=Number.parseInt(this.parameters[6]))},methods:{getType:function(){let t="CONVERTED";return this.parameters[7]&&(t=this.parameters[7]),t},formatValue:function(t){let o="",i=" ",s=`
2
- `,n=0;if(Array.isArray(t)){for(const a of t)this.formatter&&this.formatter?.toLowerCase()!=="nil"?o+=sprintf(this.formatter,a):o+=a,n+=1,n%this.itemsPerRow===0?(n=0,o+=s):o+=i;return o.trim()}else return t}}},C={class:"array-widget-container"};function _(t,o,i,s,n,a){const l=e.resolveComponent("v-textarea"),m=e.resolveComponent("v-list-item-title"),u=e.resolveComponent("v-list-item"),d=e.resolveComponent("v-list"),p=e.resolveComponent("v-menu"),c=e.resolveComponent("details-dialog");return e.openBlock(),e.createElementBlock("div",C,[e.createVNode(l,{variant:"solo",density:"compact",readonly:"","no-resize":"","auto-grow":"",rows:"2","hide-details":"","model-value":t._value,class:e.normalizeClass(t.valueClass),style:e.normalizeStyle([t.computedStyle,a.aging]),"data-test":"array-widget",onContextmenu:t.showContextMenu},null,8,["model-value","class","style","onContextmenu"]),e.createVNode(p,{modelValue:t.contextMenuShown,"onUpdate:modelValue":o[0]||(o[0]=r=>t.contextMenuShown=r),target:[t.x,t.y]},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.contextMenuOptions,(r,h)=>(e.openBlock(),e.createBlock(u,{key:h,onClick:e.withModifiers(r.action,["stop"])},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.title),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["modelValue","target"]),e.createVNode(c,{modelValue:t.viewDetails,"onUpdate:modelValue":o[1]||(o[1]=r=>t.viewDetails=r),"target-name":t.parameters[0],"packet-name":t.parameters[1],"item-name":t.parameters[2]},null,8,["modelValue","target-name","packet-name","item-name"])])}const y=f._export_sfc(w,[["render",_],["__scopeId","data-v-9da1fd5e"]]);exports.default=y;
3
- //# sourceMappingURL=ArrayWidget-BHjh3qLF.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs");require("./format-qjtPogBb.cjs");const e=require("vue"),f=require("./CustomIcon-8F08upeg.cjs"),g=require("./DetailsDialog-D3iPUi8b.cjs");require("./store-CiS35N-w.cjs");require("single-spa");const v=require("./VWidget-B6WHN0_z.cjs"),w={components:{DetailsDialog:g.DetailsDialog},mixins:[v.VWidget],data:function(){return{width:200,height:100,itemsPerRow:4,formatter:null}},computed:{aging(){return{"--aging":this.grayLevel}}},created:function(){this.width=this.setWidth(this.parameters[3],"px",this.width),this.height=this.setHeight(this.parameters[4],"px",this.height),this.parameters[5]&&(this.formatter=this.parameters[5]),this.parameters[6]&&(this.itemsPerRow=Number.parseInt(this.parameters[6]))},methods:{getType:function(){let t="CONVERTED";return this.parameters[7]&&(t=this.parameters[7]),t},formatValue:function(t){let o="",a=" ",s=`
2
+ `,n=0;if(Array.isArray(t)){for(const i of t)this.formatter&&this.formatter?.toLowerCase()!=="nil"?o+=sprintf(this.formatter,i):o+=i,n+=1,n%this.itemsPerRow===0?(n=0,o+=s):o+=a;return o.trim()}else return t}}},C={class:"array-widget-container"};function _(t,o,a,s,n,i){const l=e.resolveComponent("v-textarea"),m=e.resolveComponent("v-list-item-title"),u=e.resolveComponent("v-list-item"),d=e.resolveComponent("v-list"),p=e.resolveComponent("v-menu"),c=e.resolveComponent("details-dialog");return e.openBlock(),e.createElementBlock("div",C,[e.createVNode(l,{variant:"solo",density:"compact",readonly:"","no-resize":"","auto-grow":"",rows:"2","hide-details":"","model-value":t._value,class:e.normalizeClass(t.valueClass),style:e.normalizeStyle([t.computedStyle,i.aging]),"data-test":"array-widget",onContextmenu:t.showContextMenu},null,8,["model-value","class","style","onContextmenu"]),e.createVNode(p,{modelValue:t.contextMenuShown,"onUpdate:modelValue":o[0]||(o[0]=r=>t.contextMenuShown=r),target:[t.x,t.y]},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.contextMenuOptions,(r,h)=>(e.openBlock(),e.createBlock(u,{key:h,onClick:e.withModifiers(r.action,["stop"])},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.title),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["modelValue","target"]),e.createVNode(c,{modelValue:t.viewDetails,"onUpdate:modelValue":o[1]||(o[1]=r=>t.viewDetails=r),"target-name":t.parameters[0],"packet-name":t.parameters[1],"item-name":t.parameters[2]},null,8,["modelValue","target-name","packet-name","item-name"])])}const y=f._export_sfc(w,[["render",_],["__scopeId","data-v-9da1fd5e"]]);exports.default=y;
3
+ //# sourceMappingURL=ArrayWidget-CQCphADm.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayWidget-BHjh3qLF.cjs","sources":["../src/widgets/ArrayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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 class=\"array-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n auto-grow\n rows=\"2\"\n hide-details\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"array-widget\"\n @contextmenu=\"showContextMenu\"\n />\n <v-menu v-model=\"contextMenuShown\" :target=\"[x, y]\">\n <v-list>\n <v-list-item\n v-for=\"(item, index) in contextMenuOptions\"\n :key=\"index\"\n @click.stop=\"item.action\"\n >\n <v-list-item-title>{{ item.title }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <details-dialog\n v-model=\"viewDetails\"\n :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n mixins: [VWidget],\n data: function () {\n return {\n width: 200,\n height: 100,\n itemsPerRow: 4,\n formatter: null,\n }\n },\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.itemsPerRow = Number.parseInt(this.parameters[6])\n }\n },\n methods: {\n getType: function () {\n let type = 'CONVERTED'\n if (this.parameters[7]) {\n type = this.parameters[7]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n let space = ' '\n let newLine = '\\n'\n let count = 0\n\n if (Array.isArray(data)) {\n for (const value of data) {\n if (this.formatter && this.formatter?.toLowerCase() !== 'nil') {\n text += sprintf(this.formatter, value)\n } else {\n text += value\n }\n count += 1\n if (count % this.itemsPerRow === 0) {\n count = 0\n text += newLine\n } else {\n text += space\n }\n }\n return text.trim()\n } else {\n return data\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.array-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.array-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","count","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","_ctx","_normalizeStyle","$options","_component_v_menu","$event","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"4XA2DKA,EAAU,CACb,WAAY,eACVC,EAAAA,eAEF,OAAQ,CAACC,EAAAA,OAAO,EAChB,KAAM,UAAY,CAChB,MAAO,CACL,MAAO,IACP,OAAQ,IACR,YAAa,EACb,UAAW,IACb,CACF,EACA,SAAU,CACR,OAAQ,CACN,MAAO,CACL,UAAW,KAAK,SAClB,CACF,GAEF,QAAS,UAAY,CACnB,KAAK,MAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,KAAK,EAC/D,KAAK,OAAS,KAAK,UAAU,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,MAAM,EAC9D,KAAK,WAAW,CAAC,IACnB,KAAK,UAAY,KAAK,WAAW,CAAC,GAEhC,KAAK,WAAW,CAAC,IACnB,KAAK,YAAc,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,EAEzD,EACA,QAAS,CACP,QAAS,UAAY,CACnB,IAAIC,EAAO,YACX,OAAI,KAAK,WAAW,CAAC,IACnBA,EAAO,KAAK,WAAW,CAAC,GAEnBA,CACT,EACA,YAAa,SAAUC,EAAM,CAC3B,IAAIC,EAAO,GACPC,EAAQ,IACRC,EAAU;AAAA,EACVC,EAAQ,EAEZ,GAAI,MAAM,QAAQJ,CAAI,EAAG,CACvB,UAAWK,KAASL,EACd,KAAK,WAAa,KAAK,WAAW,YAAW,IAAO,MACtDC,GAAQ,QAAQ,KAAK,UAAWI,CAAK,EAErCJ,GAAQI,EAEVD,GAAS,EACLA,EAAQ,KAAK,cAAgB,GAC/BA,EAAQ,EACRH,GAAQE,GAERF,GAAQC,EAGZ,OAAOD,EAAK,KAAI,CAClB,KACE,QAAOD,CAEX,EAEJ,EA1GOM,EAAA,CAAA,MAAM,wBAAwB,sPAAnC,OAAAC,YAAA,EAAAC,qBAiCM,MAjCNF,EAiCM,CAhCJG,EAAAA,YAaEC,EAAA,CAZA,QAAQ,OACR,QAAQ,UACR,SAAA,GACA,YAAA,GACA,YAAA,GACA,KAAK,IACL,eAAA,GACC,cAAaC,EAAA,OACb,uBAAOA,EAAA,UAAU,EACjB,MAAKC,EAAAA,eAAA,CAAGD,EAAA,cAAeE,EAAA,KAAK,CAAA,EAC7B,YAAU,eACT,cAAaF,EAAA,yEAEhBF,EAAAA,YAUSK,EAAA,YAVQH,EAAA,sDAAAA,EAAA,iBAAgBI,GAAG,OAAM,CAAGJ,EAAA,EAAGA,EAAA,CAAC,sBAC/C,IAQS,CARTF,EAAAA,YAQSO,EAAA,KAAA,mBANL,IAA2C,EAD7CT,EAAAA,UAAA,EAAA,EAAAC,EAAAA,mBAMcS,WAAA,KAAAC,EAAAA,WALYP,EAAA,mBAAkB,CAAlCQ,EAAMC,mBADhBC,EAAAA,YAMcC,EAAA,CAJX,IAAKF,EACL,QAAKG,EAAAA,cAAOJ,EAAK,OAAM,CAAA,MAAA,CAAA,sBAExB,IAAuD,CAAvDV,EAAAA,YAAuDe,EAAA,KAAA,mBAApC,IAAgB,CAAbC,EAAAA,gBAAAC,EAAAA,gBAAAP,EAAK,KAAK,EAAA,CAAA,0FAKtCV,EAAAA,YAKEkB,EAAA,YAJShB,EAAA,iDAAAA,EAAA,YAAWI,GACnB,cAAaJ,EAAA,WAAU,CAAA,EACvB,cAAaA,EAAA,WAAU,CAAA,EACvB,YAAWA,EAAA,WAAU,CAAA"}
1
+ {"version":3,"file":"ArrayWidget-CQCphADm.cjs","sources":["../src/widgets/ArrayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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 class=\"array-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n auto-grow\n rows=\"2\"\n hide-details\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"array-widget\"\n @contextmenu=\"showContextMenu\"\n />\n <v-menu v-model=\"contextMenuShown\" :target=\"[x, y]\">\n <v-list>\n <v-list-item\n v-for=\"(item, index) in contextMenuOptions\"\n :key=\"index\"\n @click.stop=\"item.action\"\n >\n <v-list-item-title>{{ item.title }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <details-dialog\n v-model=\"viewDetails\"\n :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n mixins: [VWidget],\n data: function () {\n return {\n width: 200,\n height: 100,\n itemsPerRow: 4,\n formatter: null,\n }\n },\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.itemsPerRow = Number.parseInt(this.parameters[6])\n }\n },\n methods: {\n getType: function () {\n let type = 'CONVERTED'\n if (this.parameters[7]) {\n type = this.parameters[7]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n let space = ' '\n let newLine = '\\n'\n let count = 0\n\n if (Array.isArray(data)) {\n for (const value of data) {\n if (this.formatter && this.formatter?.toLowerCase() !== 'nil') {\n text += sprintf(this.formatter, value)\n } else {\n text += value\n }\n count += 1\n if (count % this.itemsPerRow === 0) {\n count = 0\n text += newLine\n } else {\n text += space\n }\n }\n return text.trim()\n } else {\n return data\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.array-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.array-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","count","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","_ctx","_normalizeStyle","$options","_component_v_menu","$event","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"6ZA2DKA,EAAU,CACb,WAAY,eACVC,EAAAA,eAEF,OAAQ,CAACC,EAAAA,OAAO,EAChB,KAAM,UAAY,CAChB,MAAO,CACL,MAAO,IACP,OAAQ,IACR,YAAa,EACb,UAAW,IACb,CACF,EACA,SAAU,CACR,OAAQ,CACN,MAAO,CACL,UAAW,KAAK,SAClB,CACF,GAEF,QAAS,UAAY,CACnB,KAAK,MAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,KAAK,EAC/D,KAAK,OAAS,KAAK,UAAU,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,MAAM,EAC9D,KAAK,WAAW,CAAC,IACnB,KAAK,UAAY,KAAK,WAAW,CAAC,GAEhC,KAAK,WAAW,CAAC,IACnB,KAAK,YAAc,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,EAEzD,EACA,QAAS,CACP,QAAS,UAAY,CACnB,IAAIC,EAAO,YACX,OAAI,KAAK,WAAW,CAAC,IACnBA,EAAO,KAAK,WAAW,CAAC,GAEnBA,CACT,EACA,YAAa,SAAUC,EAAM,CAC3B,IAAIC,EAAO,GACPC,EAAQ,IACRC,EAAU;AAAA,EACVC,EAAQ,EAEZ,GAAI,MAAM,QAAQJ,CAAI,EAAG,CACvB,UAAWK,KAASL,EACd,KAAK,WAAa,KAAK,WAAW,YAAW,IAAO,MACtDC,GAAQ,QAAQ,KAAK,UAAWI,CAAK,EAErCJ,GAAQI,EAEVD,GAAS,EACLA,EAAQ,KAAK,cAAgB,GAC/BA,EAAQ,EACRH,GAAQE,GAERF,GAAQC,EAGZ,OAAOD,EAAK,KAAI,CAClB,KACE,QAAOD,CAEX,EAEJ,EA1GOM,EAAA,CAAA,MAAM,wBAAwB,sPAAnC,OAAAC,YAAA,EAAAC,qBAiCM,MAjCNF,EAiCM,CAhCJG,EAAAA,YAaEC,EAAA,CAZA,QAAQ,OACR,QAAQ,UACR,SAAA,GACA,YAAA,GACA,YAAA,GACA,KAAK,IACL,eAAA,GACC,cAAaC,EAAA,OACb,uBAAOA,EAAA,UAAU,EACjB,MAAKC,EAAAA,eAAA,CAAGD,EAAA,cAAeE,EAAA,KAAK,CAAA,EAC7B,YAAU,eACT,cAAaF,EAAA,yEAEhBF,EAAAA,YAUSK,EAAA,YAVQH,EAAA,sDAAAA,EAAA,iBAAgBI,GAAG,OAAM,CAAGJ,EAAA,EAAGA,EAAA,CAAC,sBAC/C,IAQS,CARTF,EAAAA,YAQSO,EAAA,KAAA,mBANL,IAA2C,EAD7CT,EAAAA,UAAA,EAAA,EAAAC,EAAAA,mBAMcS,WAAA,KAAAC,EAAAA,WALYP,EAAA,mBAAkB,CAAlCQ,EAAMC,mBADhBC,EAAAA,YAMcC,EAAA,CAJX,IAAKF,EACL,QAAKG,EAAAA,cAAOJ,EAAK,OAAM,CAAA,MAAA,CAAA,sBAExB,IAAuD,CAAvDV,EAAAA,YAAuDe,EAAA,KAAA,mBAApC,IAAgB,CAAbC,EAAAA,gBAAAC,EAAAA,gBAAAP,EAAK,KAAK,EAAA,CAAA,0FAKtCV,EAAAA,YAKEkB,EAAA,YAJShB,EAAA,iDAAAA,EAAA,YAAWI,GACnB,cAAaJ,EAAA,WAAU,CAAA,EACvB,cAAaA,EAAA,WAAU,CAAA,EACvB,YAAWA,EAAA,WAAU,CAAA"}
@@ -1,10 +1,11 @@
1
- import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js";
1
+ import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js";
2
+ import "./format-D2pYLAIF.js";
2
3
  import { resolveComponent as o, openBlock as l, createElementBlock as u, createVNode as r, normalizeStyle as w, normalizeClass as y, withCtx as s, Fragment as V, renderList as C, createBlock as k, withModifiers as D, createTextVNode as M, toDisplayString as S } from "vue";
3
4
  import { _ as x } from "./CustomIcon-DTR361si.js";
4
- import { D as L } from "./DetailsDialog-sqja4Lzq.js";
5
+ import { D as L } from "./DetailsDialog-q5SDzw3R.js";
5
6
  import "./store-CO68rDJT.js";
6
7
  import "single-spa";
7
- import { V as N } from "./VWidget-CxnaMF0w.js";
8
+ import { V as N } from "./VWidget-BDy0211S.js";
8
9
  const R = {
9
10
  components: {
10
11
  DetailsDialog: L
@@ -99,8 +100,8 @@ function A(e, t, m, p, i, n) {
99
100
  }, null, 8, ["modelValue", "target-name", "packet-name", "item-name"])
100
101
  ]);
101
102
  }
102
- const O = /* @__PURE__ */ x(R, [["render", A], ["__scopeId", "data-v-9da1fd5e"]]);
103
+ const U = /* @__PURE__ */ x(R, [["render", A], ["__scopeId", "data-v-9da1fd5e"]]);
103
104
  export {
104
- O as default
105
+ U as default
105
106
  };
106
- //# sourceMappingURL=ArrayWidget-Dh6zDiC7.js.map
107
+ //# sourceMappingURL=ArrayWidget-CcQFJGCA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayWidget-Dh6zDiC7.js","sources":["../src/widgets/ArrayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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 class=\"array-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n auto-grow\n rows=\"2\"\n hide-details\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"array-widget\"\n @contextmenu=\"showContextMenu\"\n />\n <v-menu v-model=\"contextMenuShown\" :target=\"[x, y]\">\n <v-list>\n <v-list-item\n v-for=\"(item, index) in contextMenuOptions\"\n :key=\"index\"\n @click.stop=\"item.action\"\n >\n <v-list-item-title>{{ item.title }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <details-dialog\n v-model=\"viewDetails\"\n :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n mixins: [VWidget],\n data: function () {\n return {\n width: 200,\n height: 100,\n itemsPerRow: 4,\n formatter: null,\n }\n },\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.itemsPerRow = Number.parseInt(this.parameters[6])\n }\n },\n methods: {\n getType: function () {\n let type = 'CONVERTED'\n if (this.parameters[7]) {\n type = this.parameters[7]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n let space = ' '\n let newLine = '\\n'\n let count = 0\n\n if (Array.isArray(data)) {\n for (const value of data) {\n if (this.formatter && this.formatter?.toLowerCase() !== 'nil') {\n text += sprintf(this.formatter, value)\n } else {\n text += value\n }\n count += 1\n if (count % this.itemsPerRow === 0) {\n count = 0\n text += newLine\n } else {\n text += space\n }\n }\n return text.trim()\n } else {\n return data\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.array-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.array-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","count","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","_ctx","_normalizeStyle","$options","_component_v_menu","$event","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":";;;;;;;AA2DA,MAAKA,IAAU;AAAA,EACb,YAAY;AAAA,IACV,eAAAC;AAAA;EAEF,QAAQ,CAACC,CAAO;AAAA,EAChB,MAAM,WAAY;AAChB,WAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,QAAQ;AACN,aAAO;AAAA,QACL,WAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAAA;EAEF,SAAS,WAAY;AACnB,SAAK,QAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,KAAK,GAC/D,KAAK,SAAS,KAAK,UAAU,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,MAAM,GAC9D,KAAK,WAAW,CAAC,MACnB,KAAK,YAAY,KAAK,WAAW,CAAC,IAEhC,KAAK,WAAW,CAAC,MACnB,KAAK,cAAc,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,EAEzD;AAAA,EACA,SAAS;AAAA,IACP,SAAS,WAAY;AACnB,UAAIC,IAAO;AACX,aAAI,KAAK,WAAW,CAAC,MACnBA,IAAO,KAAK,WAAW,CAAC,IAEnBA;AAAA,IACT;AAAA,IACA,aAAa,SAAUC,GAAM;AAC3B,UAAIC,IAAO,IACPC,IAAQ,KACRC,IAAU;AAAA,GACVC,IAAQ;AAEZ,UAAI,MAAM,QAAQJ,CAAI,GAAG;AACvB,mBAAWK,KAASL;AAClB,UAAI,KAAK,aAAa,KAAK,WAAW,YAAW,MAAO,QACtDC,KAAQ,QAAQ,KAAK,WAAWI,CAAK,IAErCJ,KAAQI,GAEVD,KAAS,GACLA,IAAQ,KAAK,gBAAgB,KAC/BA,IAAQ,GACRH,KAAQE,KAERF,KAAQC;AAGZ,eAAOD,EAAK,KAAI;AAAA,MAClB;AACE,eAAOD;AAAA,IAEX;AAAA;AAEJ,GA1GOM,IAAA,EAAA,OAAM,yBAAwB;;;AAAnC,SAAAC,EAAA,GAAAC,EAiCM,OAjCNF,GAiCM;AAAA,IAhCJG,EAaEC,GAAA;AAAA,MAZA,SAAQ;AAAA,MACR,SAAQ;AAAA,MACR,UAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,MAAK;AAAA,MACL,gBAAA;AAAA,MACC,eAAaC,EAAA;AAAA,MACb,SAAOA,EAAA,UAAU;AAAA,MACjB,OAAKC,EAAA,CAAGD,EAAA,eAAeE,EAAA,KAAK,CAAA;AAAA,MAC7B,aAAU;AAAA,MACT,eAAaF,EAAA;AAAA;IAEhBF,EAUSK,GAAA;AAAA,kBAVQH,EAAA;AAAA,oDAAAA,EAAA,mBAAgBI;AAAA,MAAG,QAAM,CAAGJ,EAAA,GAAGA,EAAA,CAAC;AAAA;iBAC/C,MAQS;AAAA,QARTF,EAQSO,GAAA,MAAA;AAAA,qBANL,MAA2C;AAAA,aAD7CT,EAAA,EAAA,GAAAC,EAMcS,GAAA,MAAAC,EALYP,EAAA,oBAAkB,CAAlCQ,GAAMC,YADhBC,EAMcC,GAAA;AAAA,cAJX,KAAKF;AAAA,cACL,SAAKG,EAAOJ,EAAK,QAAM,CAAA,MAAA,CAAA;AAAA;yBAExB,MAAuD;AAAA,gBAAvDV,EAAuDe,GAAA,MAAA;AAAA,6BAApC,MAAgB;AAAA,oBAAbC,EAAAC,EAAAP,EAAK,KAAK,GAAA,CAAA;AAAA;;;;;;;;;;;;IAKtCV,EAKEkB,GAAA;AAAA,kBAJShB,EAAA;AAAA,oDAAAA,EAAA,cAAWI;AAAA,MACnB,eAAaJ,EAAA,WAAU,CAAA;AAAA,MACvB,eAAaA,EAAA,WAAU,CAAA;AAAA,MACvB,aAAWA,EAAA,WAAU,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"ArrayWidget-CcQFJGCA.js","sources":["../src/widgets/ArrayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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 class=\"array-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n auto-grow\n rows=\"2\"\n hide-details\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"array-widget\"\n @contextmenu=\"showContextMenu\"\n />\n <v-menu v-model=\"contextMenuShown\" :target=\"[x, y]\">\n <v-list>\n <v-list-item\n v-for=\"(item, index) in contextMenuOptions\"\n :key=\"index\"\n @click.stop=\"item.action\"\n >\n <v-list-item-title>{{ item.title }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <details-dialog\n v-model=\"viewDetails\"\n :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n mixins: [VWidget],\n data: function () {\n return {\n width: 200,\n height: 100,\n itemsPerRow: 4,\n formatter: null,\n }\n },\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.itemsPerRow = Number.parseInt(this.parameters[6])\n }\n },\n methods: {\n getType: function () {\n let type = 'CONVERTED'\n if (this.parameters[7]) {\n type = this.parameters[7]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n let space = ' '\n let newLine = '\\n'\n let count = 0\n\n if (Array.isArray(data)) {\n for (const value of data) {\n if (this.formatter && this.formatter?.toLowerCase() !== 'nil') {\n text += sprintf(this.formatter, value)\n } else {\n text += value\n }\n count += 1\n if (count % this.itemsPerRow === 0) {\n count = 0\n text += newLine\n } else {\n text += space\n }\n }\n return text.trim()\n } else {\n return data\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.array-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.array-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","count","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","_ctx","_normalizeStyle","$options","_component_v_menu","$event","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":";;;;;;;;AA2DA,MAAKA,IAAU;AAAA,EACb,YAAY;AAAA,IACV,eAAAC;AAAA;EAEF,QAAQ,CAACC,CAAO;AAAA,EAChB,MAAM,WAAY;AAChB,WAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,QAAQ;AACN,aAAO;AAAA,QACL,WAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAAA;EAEF,SAAS,WAAY;AACnB,SAAK,QAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,KAAK,GAC/D,KAAK,SAAS,KAAK,UAAU,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,MAAM,GAC9D,KAAK,WAAW,CAAC,MACnB,KAAK,YAAY,KAAK,WAAW,CAAC,IAEhC,KAAK,WAAW,CAAC,MACnB,KAAK,cAAc,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,EAEzD;AAAA,EACA,SAAS;AAAA,IACP,SAAS,WAAY;AACnB,UAAIC,IAAO;AACX,aAAI,KAAK,WAAW,CAAC,MACnBA,IAAO,KAAK,WAAW,CAAC,IAEnBA;AAAA,IACT;AAAA,IACA,aAAa,SAAUC,GAAM;AAC3B,UAAIC,IAAO,IACPC,IAAQ,KACRC,IAAU;AAAA,GACVC,IAAQ;AAEZ,UAAI,MAAM,QAAQJ,CAAI,GAAG;AACvB,mBAAWK,KAASL;AAClB,UAAI,KAAK,aAAa,KAAK,WAAW,YAAW,MAAO,QACtDC,KAAQ,QAAQ,KAAK,WAAWI,CAAK,IAErCJ,KAAQI,GAEVD,KAAS,GACLA,IAAQ,KAAK,gBAAgB,KAC/BA,IAAQ,GACRH,KAAQE,KAERF,KAAQC;AAGZ,eAAOD,EAAK,KAAI;AAAA,MAClB;AACE,eAAOD;AAAA,IAEX;AAAA;AAEJ,GA1GOM,IAAA,EAAA,OAAM,yBAAwB;;;AAAnC,SAAAC,EAAA,GAAAC,EAiCM,OAjCNF,GAiCM;AAAA,IAhCJG,EAaEC,GAAA;AAAA,MAZA,SAAQ;AAAA,MACR,SAAQ;AAAA,MACR,UAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,MAAK;AAAA,MACL,gBAAA;AAAA,MACC,eAAaC,EAAA;AAAA,MACb,SAAOA,EAAA,UAAU;AAAA,MACjB,OAAKC,EAAA,CAAGD,EAAA,eAAeE,EAAA,KAAK,CAAA;AAAA,MAC7B,aAAU;AAAA,MACT,eAAaF,EAAA;AAAA;IAEhBF,EAUSK,GAAA;AAAA,kBAVQH,EAAA;AAAA,oDAAAA,EAAA,mBAAgBI;AAAA,MAAG,QAAM,CAAGJ,EAAA,GAAGA,EAAA,CAAC;AAAA;iBAC/C,MAQS;AAAA,QARTF,EAQSO,GAAA,MAAA;AAAA,qBANL,MAA2C;AAAA,aAD7CT,EAAA,EAAA,GAAAC,EAMcS,GAAA,MAAAC,EALYP,EAAA,oBAAkB,CAAlCQ,GAAMC,YADhBC,EAMcC,GAAA;AAAA,cAJX,KAAKF;AAAA,cACL,SAAKG,EAAOJ,EAAK,QAAM,CAAA,MAAA,CAAA;AAAA;yBAExB,MAAuD;AAAA,gBAAvDV,EAAuDe,GAAA,MAAA;AAAA,6BAApC,MAAgB;AAAA,oBAAbC,EAAAC,EAAAP,EAAK,KAAK,GAAA,CAAA;AAAA;;;;;;;;;;;;IAKtCV,EAKEkB,GAAA;AAAA,kBAJShB,EAAA;AAAA,oDAAAA,EAAA,cAAWI;AAAA,MACnB,eAAaJ,EAAA,WAAU,CAAA;AAAA,MACvB,eAAaA,EAAA,WAAU,CAAA;AAAA,MACvB,aAAWA,EAAA,WAAU,CAAA;AAAA;;;;"}
@@ -1,5 +1,6 @@
1
- import { u as c, b as d } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js";
2
- import { G as h } from "./GraphWidget-DO5XbOGy.js";
1
+ import { u as c } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js";
2
+ import { E as d } from "./format-D2pYLAIF.js";
3
+ import { G as h } from "./GraphWidget-QS-VJoes.js";
3
4
  import { openBlock as l, createElementBlock as u } from "vue";
4
5
  import { _ as p } from "./CustomIcon-DTR361si.js";
5
6
  const m = {
@@ -192,8 +193,8 @@ function b(e, t, s, r, i, n) {
192
193
  class: "pa-1"
193
194
  }, null, 8, f);
194
195
  }
195
- const y = /* @__PURE__ */ p(m, [["render", b]]);
196
+ const w = /* @__PURE__ */ p(m, [["render", b]]);
196
197
  export {
197
- y as default
198
+ w as default
198
199
  };
199
- //# sourceMappingURL=ArrayplotWidget-CSc_TqNm.js.map
200
+ //# sourceMappingURL=ArrayplotWidget-DGJEXAY0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayplotWidget-CSc_TqNm.js","sources":["../src/widgets/ArrayplotWidget.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\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.\n# See LICENSE.md 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 <div :id=\"`chart${id}`\" class=\"pa-1\"></div>\n</template>\n\n<script>\nimport uPlot from 'uplot'\nimport 'uplot/dist/uPlot.min.css'\nimport { Cable } from '@openc3/js-common/services'\nimport GraphWidget from './GraphWidget'\n\nexport default {\n mixins: [GraphWidget],\n data: function () {\n return {\n items: [],\n indexes: {},\n data: [[]],\n cable: new Cable(),\n subscription: null,\n graph: null,\n xAxis: null,\n title: 'Array Plot',\n colorIndex: 0,\n colors: [\n // The first 3 are taken from the Astro css definitions for\n // --color-data-visualization-1 through 3\n '#00c7cb',\n '#938bdb',\n '#4dacff',\n 'lime',\n 'darkorange',\n 'red',\n 'gold',\n 'hotpink',\n 'tan',\n 'cyan',\n 'maroon',\n 'blue',\n 'teal',\n 'purple',\n 'green',\n 'brown',\n 'lightblue',\n 'white',\n 'black',\n ],\n }\n },\n computed: {\n dataOnly() {\n return this.data[1] // Ignore the x axis data\n },\n },\n watch: {\n // This is always firing even when the data is the same\n // Is it because we're setting the whole array data[1]?\n dataOnly: function () {\n if (this.graph) {\n this.graph.setData(this.data)\n }\n },\n },\n created() {\n for (const [index, item] of this.items.entries()) {\n this.data.push([]) // initialize the empty data arrays\n this.indexes[this.subscriptionKey(item)] = index + 1\n item.color = this.colors[this.colorIndex]\n this.colorIndex++\n }\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0]) {\n case 'TITLE':\n this.title = setting[1]\n break\n case 'X_AXIS':\n this.xAxis = {\n start: Number.parseFloat(setting[1]),\n step: Number.parseFloat(setting[2]),\n }\n break\n }\n })\n },\n mounted() {\n let chartSeries = []\n this.items.forEach((item) => {\n chartSeries.push({\n label: this.itemName(item),\n stroke: item.color,\n width: 2,\n value: (self, rawValue) => {\n if (typeof rawValue === 'string' || Number.isNaN(rawValue)) {\n return 'NaN'\n } else {\n return rawValue == null ? '--' : rawValue.toFixed(3)\n }\n },\n })\n })\n\n let chartOpts = {\n title: this.title,\n width: this.size.width,\n height: this.size.height,\n scales: {\n x: {\n time: false,\n },\n y: {\n time: false,\n range: (u, min, max) => [min, max],\n },\n },\n axes: [\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n ],\n series: [\n {\n label: 'X Value',\n },\n ...chartSeries,\n ],\n }\n this.graph = new uPlot(\n chartOpts,\n this.data,\n document.getElementById(`chart${this.id}`),\n )\n this.subscribe()\n },\n beforeUnmount: function () {\n this.cable.disconnect()\n },\n methods: {\n subscribe: function () {\n this.cable\n .createSubscription('StreamingChannel', window.openc3Scope, {\n received: (data) => this.received(data),\n connected: () => {\n this.addItemsToSubscription(this.items)\n },\n disconnected: (data) => {\n // If allowReconnect is true it means we got a disconnect due to connection lost or server disconnect\n // If allowReconnect is false this is a normal server close or client close\n if (data.allowReconnect) {\n this.errors.push({\n type: 'disconnected',\n message: 'OpenC3 backend connection disconnected',\n time: new Date().getTime(),\n })\n }\n },\n rejected: () => {\n this.errors.push({\n type: 'rejected',\n message: 'OpenC3 backend connection rejected',\n time: new Date().getTime(),\n })\n },\n })\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data_array) {\n for (let data of data_array) {\n let xaxis = [] // Declare outside the loop so we can use it for the X axis values\n for (const [key, value] of Object.entries(data)) {\n // We support 2 different kind of data, a simple array of Y values\n // or an array with both X and Y values, e.g. [[x1,x2,x3...], [y1,y2,y3...]]\n if (key === '__time') {\n // Explicitly setting the X axis values always wins\n if (this.xAxis) {\n xaxis = Array.from(\n { length: this.data[1].length },\n (_, i) => this.xAxis.start + i * this.xAxis.step,\n )\n } else if (xaxis.length === 0) {\n // If we don't have an array of X values we generate them\n xaxis = Array.from({ length: this.data[1].length }, (_, i) => i)\n }\n this.data[0] = xaxis\n }\n let key_index = this.indexes[key]\n if (key_index) {\n // Check for the array of arrays case\n if (Array.isArray(value[0])) {\n this.data[key_index] = value[1]\n xaxis = value[0]\n } else {\n this.data[key_index] = value\n }\n }\n }\n }\n },\n addItemsToSubscription: function (itemArray = this.items) {\n if (this.subscription) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(\n (refreshed) => {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n this.subscription.perform('add', {\n scope: window.openc3Scope,\n token: localStorage.openc3Token,\n items: itemArray.map(this.subscriptionKey),\n start_time: null,\n end_time: null,\n })\n },\n )\n }\n },\n itemName: function (item) {\n return `${item.targetName} ${item.packetName} ${item.itemName}`\n },\n subscriptionKey: function (item) {\n let key = `${item.reduced}__TLM__${item.targetName}__${item.packetName}__${item.itemName}__${item.valueType}`\n if (\n item.reduced === 'REDUCED_MINUTE' ||\n item.reduced === 'REDUCED_HOUR' ||\n item.reduced === 'REDUCED_DAY'\n ) {\n key += `__${item.reducedType}`\n }\n return key\n },\n },\n}\n</script>\n"],"names":["_sfc_main","GraphWidget","Cable","index","item","setting","chartSeries","self","rawValue","chartOpts","u","min","max","uPlot","data","subscription","data_array","xaxis","key","value","_","i","key_index","itemArray","refreshed","_createElementBlock","_ctx"],"mappings":"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"}
1
+ {"version":3,"file":"ArrayplotWidget-DGJEXAY0.js","sources":["../src/widgets/ArrayplotWidget.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\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.\n# See LICENSE.md 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 <div :id=\"`chart${id}`\" class=\"pa-1\"></div>\n</template>\n\n<script>\nimport uPlot from 'uplot'\nimport 'uplot/dist/uPlot.min.css'\nimport { Cable } from '@openc3/js-common/services'\nimport GraphWidget from './GraphWidget'\n\nexport default {\n mixins: [GraphWidget],\n data: function () {\n return {\n items: [],\n indexes: {},\n data: [[]],\n cable: new Cable(),\n subscription: null,\n graph: null,\n xAxis: null,\n title: 'Array Plot',\n colorIndex: 0,\n colors: [\n // The first 3 are taken from the Astro css definitions for\n // --color-data-visualization-1 through 3\n '#00c7cb',\n '#938bdb',\n '#4dacff',\n 'lime',\n 'darkorange',\n 'red',\n 'gold',\n 'hotpink',\n 'tan',\n 'cyan',\n 'maroon',\n 'blue',\n 'teal',\n 'purple',\n 'green',\n 'brown',\n 'lightblue',\n 'white',\n 'black',\n ],\n }\n },\n computed: {\n dataOnly() {\n return this.data[1] // Ignore the x axis data\n },\n },\n watch: {\n // This is always firing even when the data is the same\n // Is it because we're setting the whole array data[1]?\n dataOnly: function () {\n if (this.graph) {\n this.graph.setData(this.data)\n }\n },\n },\n created() {\n for (const [index, item] of this.items.entries()) {\n this.data.push([]) // initialize the empty data arrays\n this.indexes[this.subscriptionKey(item)] = index + 1\n item.color = this.colors[this.colorIndex]\n this.colorIndex++\n }\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0]) {\n case 'TITLE':\n this.title = setting[1]\n break\n case 'X_AXIS':\n this.xAxis = {\n start: Number.parseFloat(setting[1]),\n step: Number.parseFloat(setting[2]),\n }\n break\n }\n })\n },\n mounted() {\n let chartSeries = []\n this.items.forEach((item) => {\n chartSeries.push({\n label: this.itemName(item),\n stroke: item.color,\n width: 2,\n value: (self, rawValue) => {\n if (typeof rawValue === 'string' || Number.isNaN(rawValue)) {\n return 'NaN'\n } else {\n return rawValue == null ? '--' : rawValue.toFixed(3)\n }\n },\n })\n })\n\n let chartOpts = {\n title: this.title,\n width: this.size.width,\n height: this.size.height,\n scales: {\n x: {\n time: false,\n },\n y: {\n time: false,\n range: (u, min, max) => [min, max],\n },\n },\n axes: [\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n ],\n series: [\n {\n label: 'X Value',\n },\n ...chartSeries,\n ],\n }\n this.graph = new uPlot(\n chartOpts,\n this.data,\n document.getElementById(`chart${this.id}`),\n )\n this.subscribe()\n },\n beforeUnmount: function () {\n this.cable.disconnect()\n },\n methods: {\n subscribe: function () {\n this.cable\n .createSubscription('StreamingChannel', window.openc3Scope, {\n received: (data) => this.received(data),\n connected: () => {\n this.addItemsToSubscription(this.items)\n },\n disconnected: (data) => {\n // If allowReconnect is true it means we got a disconnect due to connection lost or server disconnect\n // If allowReconnect is false this is a normal server close or client close\n if (data.allowReconnect) {\n this.errors.push({\n type: 'disconnected',\n message: 'OpenC3 backend connection disconnected',\n time: new Date().getTime(),\n })\n }\n },\n rejected: () => {\n this.errors.push({\n type: 'rejected',\n message: 'OpenC3 backend connection rejected',\n time: new Date().getTime(),\n })\n },\n })\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data_array) {\n for (let data of data_array) {\n let xaxis = [] // Declare outside the loop so we can use it for the X axis values\n for (const [key, value] of Object.entries(data)) {\n // We support 2 different kind of data, a simple array of Y values\n // or an array with both X and Y values, e.g. [[x1,x2,x3...], [y1,y2,y3...]]\n if (key === '__time') {\n // Explicitly setting the X axis values always wins\n if (this.xAxis) {\n xaxis = Array.from(\n { length: this.data[1].length },\n (_, i) => this.xAxis.start + i * this.xAxis.step,\n )\n } else if (xaxis.length === 0) {\n // If we don't have an array of X values we generate them\n xaxis = Array.from({ length: this.data[1].length }, (_, i) => i)\n }\n this.data[0] = xaxis\n }\n let key_index = this.indexes[key]\n if (key_index) {\n // Check for the array of arrays case\n if (Array.isArray(value[0])) {\n this.data[key_index] = value[1]\n xaxis = value[0]\n } else {\n this.data[key_index] = value\n }\n }\n }\n }\n },\n addItemsToSubscription: function (itemArray = this.items) {\n if (this.subscription) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(\n (refreshed) => {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n this.subscription.perform('add', {\n scope: window.openc3Scope,\n token: localStorage.openc3Token,\n items: itemArray.map(this.subscriptionKey),\n start_time: null,\n end_time: null,\n })\n },\n )\n }\n },\n itemName: function (item) {\n return `${item.targetName} ${item.packetName} ${item.itemName}`\n },\n subscriptionKey: function (item) {\n let key = `${item.reduced}__TLM__${item.targetName}__${item.packetName}__${item.itemName}__${item.valueType}`\n if (\n item.reduced === 'REDUCED_MINUTE' ||\n item.reduced === 'REDUCED_HOUR' ||\n item.reduced === 'REDUCED_DAY'\n ) {\n key += `__${item.reducedType}`\n }\n return key\n },\n },\n}\n</script>\n"],"names":["_sfc_main","GraphWidget","Cable","index","item","setting","chartSeries","self","rawValue","chartOpts","u","min","max","uPlot","data","subscription","data_array","xaxis","key","value","_","i","key_index","itemArray","refreshed","_createElementBlock","_ctx"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs"),h=require("./format-qjtPogBb.cjs"),l=require("./GraphWidget-BdP0xM_P.cjs"),o=require("vue"),u=require("./CustomIcon-8F08upeg.cjs"),p={mixins:[l.GraphWidget],data:function(){return{items:[],indexes:{},data:[[]],cable:new h.Ei,subscription:null,graph:null,xAxis:null,title:"Array Plot",colorIndex:0,colors:["#00c7cb","#938bdb","#4dacff","lime","darkorange","red","gold","hotpink","tan","cyan","maroon","blue","teal","purple","green","brown","lightblue","white","black"]}},computed:{dataOnly(){return this.data[1]}},watch:{dataOnly:function(){this.graph&&this.graph.setData(this.data)}},created(){for(const[e,t]of this.items.entries())this.data.push([]),this.indexes[this.subscriptionKey(t)]=e+1,t.color=this.colors[this.colorIndex],this.colorIndex++;this.appliedSettings.forEach(e=>{switch(e[0]){case"TITLE":this.title=e[1];break;case"X_AXIS":this.xAxis={start:Number.parseFloat(e[1]),step:Number.parseFloat(e[2])};break}})},mounted(){let e=[];this.items.forEach(s=>{e.push({label:this.itemName(s),stroke:s.color,width:2,value:(r,i)=>typeof i=="string"||Number.isNaN(i)?"NaN":i==null?"--":i.toFixed(3)})});let t={title:this.title,width:this.size.width,height:this.size.height,scales:{x:{time:!1},y:{time:!1,range:(s,r,i)=>[r,i]}},axes:[{stroke:"white",grid:{show:!0,stroke:"rgba(255, 255, 255, .1)",width:2}},{stroke:"white",grid:{show:!0,stroke:"rgba(255, 255, 255, .1)",width:2}}],series:[{label:"X Value"},...e]};this.graph=new d.uPlot(t,this.data,document.getElementById(`chart${this.id}`)),this.subscribe()},beforeUnmount:function(){this.cable.disconnect()},methods:{subscribe:function(){this.cable.createSubscription("StreamingChannel",window.openc3Scope,{received:e=>this.received(e),connected:()=>{this.addItemsToSubscription(this.items)},disconnected:e=>{e.allowReconnect&&this.errors.push({type:"disconnected",message:"OpenC3 backend connection disconnected",time:new Date().getTime()})},rejected:()=>{this.errors.push({type:"rejected",message:"OpenC3 backend connection rejected",time:new Date().getTime()})}}).then(e=>{this.subscription=e})},received:function(e){for(let t of e){let s=[];for(const[r,i]of Object.entries(t)){r==="__time"&&(this.xAxis?s=Array.from({length:this.data[1].length},(c,a)=>this.xAxis.start+a*this.xAxis.step):s.length===0&&(s=Array.from({length:this.data[1].length},(c,a)=>a)),this.data[0]=s);let n=this.indexes[r];n&&(Array.isArray(i[0])?(this.data[n]=i[1],s=i[0]):this.data[n]=i)}}},addItemsToSubscription:function(e=this.items){this.subscription&&OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(t=>{t&&OpenC3Auth.setTokens(),this.subscription.perform("add",{scope:window.openc3Scope,token:localStorage.openc3Token,items:e.map(this.subscriptionKey),start_time:null,end_time:null})})},itemName:function(e){return`${e.targetName} ${e.packetName} ${e.itemName}`},subscriptionKey:function(e){let t=`${e.reduced}__TLM__${e.targetName}__${e.packetName}__${e.itemName}__${e.valueType}`;return(e.reduced==="REDUCED_MINUTE"||e.reduced==="REDUCED_HOUR"||e.reduced==="REDUCED_DAY")&&(t+=`__${e.reducedType}`),t}}},f=["id"];function m(e,t,s,r,i,n){return o.openBlock(),o.createElementBlock("div",{id:`chart${e.id}`,class:"pa-1"},null,8,f)}const _=u._export_sfc(p,[["render",m]]);exports.default=_;
2
+ //# sourceMappingURL=ArrayplotWidget-J0xWFYsb.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayplotWidget-BHD-TGQO.cjs","sources":["../src/widgets/ArrayplotWidget.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\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.\n# See LICENSE.md 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 <div :id=\"`chart${id}`\" class=\"pa-1\"></div>\n</template>\n\n<script>\nimport uPlot from 'uplot'\nimport 'uplot/dist/uPlot.min.css'\nimport { Cable } from '@openc3/js-common/services'\nimport GraphWidget from './GraphWidget'\n\nexport default {\n mixins: [GraphWidget],\n data: function () {\n return {\n items: [],\n indexes: {},\n data: [[]],\n cable: new Cable(),\n subscription: null,\n graph: null,\n xAxis: null,\n title: 'Array Plot',\n colorIndex: 0,\n colors: [\n // The first 3 are taken from the Astro css definitions for\n // --color-data-visualization-1 through 3\n '#00c7cb',\n '#938bdb',\n '#4dacff',\n 'lime',\n 'darkorange',\n 'red',\n 'gold',\n 'hotpink',\n 'tan',\n 'cyan',\n 'maroon',\n 'blue',\n 'teal',\n 'purple',\n 'green',\n 'brown',\n 'lightblue',\n 'white',\n 'black',\n ],\n }\n },\n computed: {\n dataOnly() {\n return this.data[1] // Ignore the x axis data\n },\n },\n watch: {\n // This is always firing even when the data is the same\n // Is it because we're setting the whole array data[1]?\n dataOnly: function () {\n if (this.graph) {\n this.graph.setData(this.data)\n }\n },\n },\n created() {\n for (const [index, item] of this.items.entries()) {\n this.data.push([]) // initialize the empty data arrays\n this.indexes[this.subscriptionKey(item)] = index + 1\n item.color = this.colors[this.colorIndex]\n this.colorIndex++\n }\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0]) {\n case 'TITLE':\n this.title = setting[1]\n break\n case 'X_AXIS':\n this.xAxis = {\n start: Number.parseFloat(setting[1]),\n step: Number.parseFloat(setting[2]),\n }\n break\n }\n })\n },\n mounted() {\n let chartSeries = []\n this.items.forEach((item) => {\n chartSeries.push({\n label: this.itemName(item),\n stroke: item.color,\n width: 2,\n value: (self, rawValue) => {\n if (typeof rawValue === 'string' || Number.isNaN(rawValue)) {\n return 'NaN'\n } else {\n return rawValue == null ? '--' : rawValue.toFixed(3)\n }\n },\n })\n })\n\n let chartOpts = {\n title: this.title,\n width: this.size.width,\n height: this.size.height,\n scales: {\n x: {\n time: false,\n },\n y: {\n time: false,\n range: (u, min, max) => [min, max],\n },\n },\n axes: [\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n ],\n series: [\n {\n label: 'X Value',\n },\n ...chartSeries,\n ],\n }\n this.graph = new uPlot(\n chartOpts,\n this.data,\n document.getElementById(`chart${this.id}`),\n )\n this.subscribe()\n },\n beforeUnmount: function () {\n this.cable.disconnect()\n },\n methods: {\n subscribe: function () {\n this.cable\n .createSubscription('StreamingChannel', window.openc3Scope, {\n received: (data) => this.received(data),\n connected: () => {\n this.addItemsToSubscription(this.items)\n },\n disconnected: (data) => {\n // If allowReconnect is true it means we got a disconnect due to connection lost or server disconnect\n // If allowReconnect is false this is a normal server close or client close\n if (data.allowReconnect) {\n this.errors.push({\n type: 'disconnected',\n message: 'OpenC3 backend connection disconnected',\n time: new Date().getTime(),\n })\n }\n },\n rejected: () => {\n this.errors.push({\n type: 'rejected',\n message: 'OpenC3 backend connection rejected',\n time: new Date().getTime(),\n })\n },\n })\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data_array) {\n for (let data of data_array) {\n let xaxis = [] // Declare outside the loop so we can use it for the X axis values\n for (const [key, value] of Object.entries(data)) {\n // We support 2 different kind of data, a simple array of Y values\n // or an array with both X and Y values, e.g. [[x1,x2,x3...], [y1,y2,y3...]]\n if (key === '__time') {\n // Explicitly setting the X axis values always wins\n if (this.xAxis) {\n xaxis = Array.from(\n { length: this.data[1].length },\n (_, i) => this.xAxis.start + i * this.xAxis.step,\n )\n } else if (xaxis.length === 0) {\n // If we don't have an array of X values we generate them\n xaxis = Array.from({ length: this.data[1].length }, (_, i) => i)\n }\n this.data[0] = xaxis\n }\n let key_index = this.indexes[key]\n if (key_index) {\n // Check for the array of arrays case\n if (Array.isArray(value[0])) {\n this.data[key_index] = value[1]\n xaxis = value[0]\n } else {\n this.data[key_index] = value\n }\n }\n }\n }\n },\n addItemsToSubscription: function (itemArray = this.items) {\n if (this.subscription) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(\n (refreshed) => {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n this.subscription.perform('add', {\n scope: window.openc3Scope,\n token: localStorage.openc3Token,\n items: itemArray.map(this.subscriptionKey),\n start_time: null,\n end_time: null,\n })\n },\n )\n }\n },\n itemName: function (item) {\n return `${item.targetName} ${item.packetName} ${item.itemName}`\n },\n subscriptionKey: function (item) {\n let key = `${item.reduced}__TLM__${item.targetName}__${item.packetName}__${item.itemName}__${item.valueType}`\n if (\n item.reduced === 'REDUCED_MINUTE' ||\n item.reduced === 'REDUCED_HOUR' ||\n item.reduced === 'REDUCED_DAY'\n ) {\n key += `__${item.reducedType}`\n }\n return key\n },\n },\n}\n</script>\n"],"names":["_sfc_main","GraphWidget","Cable","index","item","setting","chartSeries","self","rawValue","chartOpts","u","min","max","uPlot","data","subscription","data_array","xaxis","key","value","_","i","key_index","itemArray","refreshed","_createElementBlock","_ctx"],"mappings":"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"}
1
+ {"version":3,"file":"ArrayplotWidget-J0xWFYsb.cjs","sources":["../src/widgets/ArrayplotWidget.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\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.\n# See LICENSE.md 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 <div :id=\"`chart${id}`\" class=\"pa-1\"></div>\n</template>\n\n<script>\nimport uPlot from 'uplot'\nimport 'uplot/dist/uPlot.min.css'\nimport { Cable } from '@openc3/js-common/services'\nimport GraphWidget from './GraphWidget'\n\nexport default {\n mixins: [GraphWidget],\n data: function () {\n return {\n items: [],\n indexes: {},\n data: [[]],\n cable: new Cable(),\n subscription: null,\n graph: null,\n xAxis: null,\n title: 'Array Plot',\n colorIndex: 0,\n colors: [\n // The first 3 are taken from the Astro css definitions for\n // --color-data-visualization-1 through 3\n '#00c7cb',\n '#938bdb',\n '#4dacff',\n 'lime',\n 'darkorange',\n 'red',\n 'gold',\n 'hotpink',\n 'tan',\n 'cyan',\n 'maroon',\n 'blue',\n 'teal',\n 'purple',\n 'green',\n 'brown',\n 'lightblue',\n 'white',\n 'black',\n ],\n }\n },\n computed: {\n dataOnly() {\n return this.data[1] // Ignore the x axis data\n },\n },\n watch: {\n // This is always firing even when the data is the same\n // Is it because we're setting the whole array data[1]?\n dataOnly: function () {\n if (this.graph) {\n this.graph.setData(this.data)\n }\n },\n },\n created() {\n for (const [index, item] of this.items.entries()) {\n this.data.push([]) // initialize the empty data arrays\n this.indexes[this.subscriptionKey(item)] = index + 1\n item.color = this.colors[this.colorIndex]\n this.colorIndex++\n }\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0]) {\n case 'TITLE':\n this.title = setting[1]\n break\n case 'X_AXIS':\n this.xAxis = {\n start: Number.parseFloat(setting[1]),\n step: Number.parseFloat(setting[2]),\n }\n break\n }\n })\n },\n mounted() {\n let chartSeries = []\n this.items.forEach((item) => {\n chartSeries.push({\n label: this.itemName(item),\n stroke: item.color,\n width: 2,\n value: (self, rawValue) => {\n if (typeof rawValue === 'string' || Number.isNaN(rawValue)) {\n return 'NaN'\n } else {\n return rawValue == null ? '--' : rawValue.toFixed(3)\n }\n },\n })\n })\n\n let chartOpts = {\n title: this.title,\n width: this.size.width,\n height: this.size.height,\n scales: {\n x: {\n time: false,\n },\n y: {\n time: false,\n range: (u, min, max) => [min, max],\n },\n },\n axes: [\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n ],\n series: [\n {\n label: 'X Value',\n },\n ...chartSeries,\n ],\n }\n this.graph = new uPlot(\n chartOpts,\n this.data,\n document.getElementById(`chart${this.id}`),\n )\n this.subscribe()\n },\n beforeUnmount: function () {\n this.cable.disconnect()\n },\n methods: {\n subscribe: function () {\n this.cable\n .createSubscription('StreamingChannel', window.openc3Scope, {\n received: (data) => this.received(data),\n connected: () => {\n this.addItemsToSubscription(this.items)\n },\n disconnected: (data) => {\n // If allowReconnect is true it means we got a disconnect due to connection lost or server disconnect\n // If allowReconnect is false this is a normal server close or client close\n if (data.allowReconnect) {\n this.errors.push({\n type: 'disconnected',\n message: 'OpenC3 backend connection disconnected',\n time: new Date().getTime(),\n })\n }\n },\n rejected: () => {\n this.errors.push({\n type: 'rejected',\n message: 'OpenC3 backend connection rejected',\n time: new Date().getTime(),\n })\n },\n })\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data_array) {\n for (let data of data_array) {\n let xaxis = [] // Declare outside the loop so we can use it for the X axis values\n for (const [key, value] of Object.entries(data)) {\n // We support 2 different kind of data, a simple array of Y values\n // or an array with both X and Y values, e.g. [[x1,x2,x3...], [y1,y2,y3...]]\n if (key === '__time') {\n // Explicitly setting the X axis values always wins\n if (this.xAxis) {\n xaxis = Array.from(\n { length: this.data[1].length },\n (_, i) => this.xAxis.start + i * this.xAxis.step,\n )\n } else if (xaxis.length === 0) {\n // If we don't have an array of X values we generate them\n xaxis = Array.from({ length: this.data[1].length }, (_, i) => i)\n }\n this.data[0] = xaxis\n }\n let key_index = this.indexes[key]\n if (key_index) {\n // Check for the array of arrays case\n if (Array.isArray(value[0])) {\n this.data[key_index] = value[1]\n xaxis = value[0]\n } else {\n this.data[key_index] = value\n }\n }\n }\n }\n },\n addItemsToSubscription: function (itemArray = this.items) {\n if (this.subscription) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(\n (refreshed) => {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n this.subscription.perform('add', {\n scope: window.openc3Scope,\n token: localStorage.openc3Token,\n items: itemArray.map(this.subscriptionKey),\n start_time: null,\n end_time: null,\n })\n },\n )\n }\n },\n itemName: function (item) {\n return `${item.targetName} ${item.packetName} ${item.itemName}`\n },\n subscriptionKey: function (item) {\n let key = `${item.reduced}__TLM__${item.targetName}__${item.packetName}__${item.itemName}__${item.valueType}`\n if (\n item.reduced === 'REDUCED_MINUTE' ||\n item.reduced === 'REDUCED_HOUR' ||\n item.reduced === 'REDUCED_DAY'\n ) {\n key += `__${item.reducedType}`\n }\n return key\n },\n },\n}\n</script>\n"],"names":["_sfc_main","GraphWidget","Cable","index","item","setting","chartSeries","self","rawValue","chartOpts","u","min","max","uPlot","data","subscription","data_array","xaxis","key","value","_","i","key_index","itemArray","refreshed","_createElementBlock","_ctx"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const t=require("./Widget-Ddu_kuTL.cjs"),a=require("./format-qjtPogBb.cjs"),s={mixins:[t.Widget],data(){return{minValue:null,maxValue:null,redLow:0,yellowLow:0,greenLow:0,greenHigh:0,yellowHigh:0,redHigh:0,blue:0,api:null,limitsSettings:{DEFAULT:[]},currentLimitsSet:"DEFAULT",currentSetRefreshInterval:null}},computed:{cssProps:function(){if(!this.screenValues[this.valueId])return{};let e=this.screenValues[this.valueId][0],h=this.modifyLimits(this.limitsSettings[this.selectedLimitsSet]);return this.calcLimits(h),{"--height":this.height+"px","--width":this.width+"px","--container-height":this.height-5+"px","--position":this.calcPosition(e,h)+"%","--redlow-width":this.redLow+"%","--redhigh-width":this.redHigh+"%","--yellowlow-width":this.yellowLow+"%","--yellowhigh-width":this.yellowHigh+"%","--greenlow-width":this.greenLow+"%","--greenhigh-width":this.greenHigh+"%","--blue-width":this.blue+"%"}},selectedLimitsSet:function(){return this.limitsSettings.hasOwnProperty(this.currentLimitsSet)?this.currentLimitsSet:"DEFAULT"}},created(){this.api=new a.Ri;const e=this.parseItemName(this.parameters[2]);this.parameters[2]=e.name,this.api.get_limits(this.parameters[0],this.parameters[1],e.name).then(h=>{this.limitsSettings=h}),this.getCurrentLimitsSet(),this.currentSetRefreshInterval=setInterval(this.getCurrentLimitsSet,60*1e3),this.appliedSettings.forEach(h=>{h[0]==="MIN_VALUE"&&(this.minValue=parseInt(h[1])),h[0]==="MAX_VALUE"&&(this.maxValue=parseInt(h[1]))}),this.width=this.setWidth(this.parameters[4],"px",this.width),this.height=this.setHeight(this.parameters[5],"px",this.height),this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__CONVERTED`,this.$emit("addItem",this.valueId)},destroyed(){this.$emit("deleteItem",this.valueId),clearInterval(this.currentSetRefreshInterval)},methods:{modifyLimits(e){if(!e)return;this.redLow=10,this.redHigh=10,this.minValue!==null&&(e[0]<=this.minValue&&(e[0]=this.minValue,this.redLow=0),e[1]<=this.minValue&&(e[1]=this.minValue),e[2]<=this.minValue&&(e[2]=this.minValue),e[3]<=this.minValue&&(e[3]=this.minValue),e.length>4&&e[4]<=this.minValue&&(e[4]=this.minValue),e.length>4&&e[5]<=this.minValue&&(e[5]=this.minValue)),this.maxValue!==null&&(e[0]>=this.maxValue&&(e[0]=this.maxValue),e[1]>=this.maxValue&&(e[1]=this.maxValue),e[2]>=this.maxValue&&(e[2]=this.maxValue),e[3]>=this.maxValue&&(e[3]=this.maxValue,this.redHigh=0),e.length>4&&e[4]>=this.maxValue&&(e[4]=this.maxValue),e.length>4&&e[5]>=this.maxValue&&(e[5]=this.maxValue)),e[0]==e[1]&&(this.yellowLow=0),e[2]==e[3]&&(this.yellowHigh=0);let h=80;return this.redLow==0&&(h+=10),this.redHigh==0&&(h+=10),this.scale=(e[3]-e[0])/h,e},calcPosition(e,h){if(e==null||!h)return;let i=h[0]-10*this.scale;if(this.minValue&&this.minValue==h[0]&&(i=h[0]),h[3]-10*this.scale,this.maxValue&&this.maxValue==h[3]&&h[3],e.raw)return e.raw==="-Infinity"?0:100;if(e<this.min)return 0;if(e>this.max)return 100;{const r=parseInt((e-i)/this.scale);return r>100?100:r<0?0:r}},calcLimits(e){e&&(this.yellowLow=Math.round((e[1]-e[0])/this.scale),this.yellowHigh=Math.round((e[3]-e[2])/this.scale),e.length>4?(this.greenLow=Math.round((e[4]-e[1])/this.scale),this.greenHigh=Math.round((e[2]-e[5])/this.scale),this.blue=Math.round(100-this.redLow-this.yellowLow-this.greenLow-this.greenHigh-this.yellowHigh-this.redHigh)):(this.greenLow=Math.round(100-this.redLow-this.yellowLow-this.yellowHigh-this.redHigh),this.greenHigh=0,this.blue=0))},getCurrentLimitsSet:function(){this.api.get_limits_set().then(e=>{this.currentLimitsSet=e})}}};exports.BarColumn=s;
2
+ //# sourceMappingURL=BarColumn-DrvHLEts.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarColumn-DrvHLEts.cjs","sources":["../src/widgets/BarColumn.js"],"sourcesContent":["/*\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\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.\n# See LICENSE.md 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\nimport Widget from './Widget'\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n minValue: null,\n maxValue: null,\n redLow: 0,\n yellowLow: 0,\n greenLow: 0,\n greenHigh: 0,\n yellowHigh: 0,\n redHigh: 0,\n blue: 0,\n api: null,\n limitsSettings: {\n DEFAULT: [],\n },\n currentLimitsSet: 'DEFAULT',\n currentSetRefreshInterval: null,\n }\n },\n computed: {\n cssProps: function () {\n if (!this.screenValues[this.valueId]) {\n return {}\n }\n let value = this.screenValues[this.valueId][0]\n let limits = this.modifyLimits(\n this.limitsSettings[this.selectedLimitsSet],\n )\n this.calcLimits(limits)\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-height': this.height - 5 + 'px',\n '--position': this.calcPosition(value, limits) + '%',\n '--redlow-width': this.redLow + '%',\n '--redhigh-width': this.redHigh + '%',\n '--yellowlow-width': this.yellowLow + '%',\n '--yellowhigh-width': this.yellowHigh + '%',\n '--greenlow-width': this.greenLow + '%',\n '--greenhigh-width': this.greenHigh + '%',\n '--blue-width': this.blue + '%',\n }\n },\n selectedLimitsSet: function () {\n return this.limitsSettings.hasOwnProperty(this.currentLimitsSet)\n ? this.currentLimitsSet\n : 'DEFAULT'\n },\n },\n created() {\n this.api = new OpenC3Api()\n\n const parsed = this.parseItemName(this.parameters[2])\n this.parameters[2] = parsed.name\n\n this.api\n .get_limits(this.parameters[0], this.parameters[1], parsed.name)\n .then((data) => {\n this.limitsSettings = data\n })\n this.getCurrentLimitsSet()\n this.currentSetRefreshInterval = setInterval(\n this.getCurrentLimitsSet,\n 60 * 1000,\n )\n\n this.appliedSettings.forEach((setting) => {\n if (setting[0] === 'MIN_VALUE') {\n this.minValue = parseInt(setting[1])\n }\n if (setting[0] === 'MAX_VALUE') {\n this.maxValue = parseInt(setting[1])\n }\n })\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n this.height = this.setHeight(this.parameters[5], 'px', this.height)\n // Always pass CONVERTED so we can calculate the value against the limits (in converted units)\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__CONVERTED`\n\n this.$emit('addItem', this.valueId)\n },\n destroyed() {\n this.$emit('deleteItem', this.valueId)\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n modifyLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n // By default the red bars take 10% of the display\n this.redLow = 10\n this.redHigh = 10\n\n // Modify values to respect the user defined minimum\n if (this.minValue !== null) {\n if (limitsSettings[0] <= this.minValue) {\n limitsSettings[0] = this.minValue\n // No red low will be displayed\n this.redLow = 0\n }\n if (limitsSettings[1] <= this.minValue) {\n limitsSettings[1] = this.minValue\n }\n if (limitsSettings[2] <= this.minValue) {\n limitsSettings[2] = this.minValue\n }\n if (limitsSettings[3] <= this.minValue) {\n limitsSettings[3] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[4] <= this.minValue) {\n limitsSettings[4] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] <= this.minValue) {\n limitsSettings[5] = this.minValue\n }\n }\n if (this.maxValue !== null) {\n if (limitsSettings[0] >= this.maxValue) {\n limitsSettings[0] = this.maxValue\n }\n if (limitsSettings[1] >= this.maxValue) {\n limitsSettings[1] = this.maxValue\n }\n if (limitsSettings[2] >= this.maxValue) {\n limitsSettings[2] = this.maxValue\n }\n if (limitsSettings[3] >= this.maxValue) {\n limitsSettings[3] = this.maxValue\n // No red high will be displayed\n this.redHigh = 0\n }\n if (limitsSettings.length > 4 && limitsSettings[4] >= this.maxValue) {\n limitsSettings[4] = this.maxValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] >= this.maxValue) {\n limitsSettings[5] = this.maxValue\n }\n }\n // If the red low matches yellow low there is no yellow low\n if (limitsSettings[0] == limitsSettings[1]) {\n this.yellowLow = 0\n }\n // If the red high matches yellow high there is no yellow high\n if (limitsSettings[2] == limitsSettings[3]) {\n this.yellowHigh = 0\n }\n\n let divisor = 80\n if (this.redLow == 0) {\n divisor += 10\n }\n if (this.redHigh == 0) {\n divisor += 10\n }\n this.scale = (limitsSettings[3] - limitsSettings[0]) / divisor\n\n return limitsSettings\n },\n calcPosition(value, limitsSettings) {\n if (value == null || !limitsSettings) {\n return\n }\n let lowValue = limitsSettings[0] - 10 * this.scale\n if (this.minValue && this.minValue == limitsSettings[0]) {\n lowValue = limitsSettings[0]\n }\n let highValue = limitsSettings[3] - 10 * this.scale\n if (this.maxValue && this.maxValue == limitsSettings[3]) {\n highValue = limitsSettings[3]\n }\n\n if (value.raw) {\n if (value.raw === '-Infinity') {\n return 0\n } else {\n // NaN and Infinity\n return 100\n }\n }\n if (value < this.min) {\n return 0\n } else if (value > this.max) {\n return 100\n } else {\n const result = parseInt((value - lowValue) / this.scale)\n if (result > 100) {\n return 100\n } else if (result < 0) {\n return 0\n } else {\n return result\n }\n }\n },\n calcLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n this.yellowLow = Math.round(\n (limitsSettings[1] - limitsSettings[0]) / this.scale,\n )\n this.yellowHigh = Math.round(\n (limitsSettings[3] - limitsSettings[2]) / this.scale,\n )\n if (limitsSettings.length > 4) {\n this.greenLow = Math.round(\n (limitsSettings[4] - limitsSettings[1]) / this.scale,\n )\n this.greenHigh = Math.round(\n (limitsSettings[2] - limitsSettings[5]) / this.scale,\n )\n this.blue = Math.round(\n 100 -\n this.redLow -\n this.yellowLow -\n this.greenLow -\n this.greenHigh -\n this.yellowHigh -\n this.redHigh,\n )\n } else {\n this.greenLow = Math.round(\n 100 - this.redLow - this.yellowLow - this.yellowHigh - this.redHigh,\n )\n this.greenHigh = 0\n this.blue = 0\n }\n },\n getCurrentLimitsSet: function () {\n this.api.get_limits_set().then((result) => {\n this.currentLimitsSet = result\n })\n },\n },\n}\n"],"names":["BarColumn","Widget","value","limits","OpenC3Api","parsed","data","setting","limitsSettings","divisor","lowValue","result"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { W as a } from "./Widget-DRhVdCLP.js";
2
- import { y as t } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js";
3
- const u = {
1
+ import { W as a } from "./Widget-BDsgRxuV.js";
2
+ import { R as t } from "./format-D2pYLAIF.js";
3
+ const l = {
4
4
  mixins: [a],
5
5
  data() {
6
6
  return {
@@ -47,13 +47,15 @@ const u = {
47
47
  }
48
48
  },
49
49
  created() {
50
- this.api = new t(), this.parameters[2].includes("[[") && (this.parameters[2] = this.parameters[2].replace("[[", "[").replace("]]", "]")), this.api.get_limits(this.parameters[0], this.parameters[1], this.parameters[2]).then((e) => {
51
- this.limitsSettings = e;
50
+ this.api = new t();
51
+ const e = this.parseItemName(this.parameters[2]);
52
+ this.parameters[2] = e.name, this.api.get_limits(this.parameters[0], this.parameters[1], e.name).then((h) => {
53
+ this.limitsSettings = h;
52
54
  }), this.getCurrentLimitsSet(), this.currentSetRefreshInterval = setInterval(
53
55
  this.getCurrentLimitsSet,
54
56
  60 * 1e3
55
- ), this.appliedSettings.forEach((e) => {
56
- e[0] === "MIN_VALUE" && (this.minValue = parseInt(e[1])), e[0] === "MAX_VALUE" && (this.maxValue = parseInt(e[1]));
57
+ ), this.appliedSettings.forEach((h) => {
58
+ h[0] === "MIN_VALUE" && (this.minValue = parseInt(h[1])), h[0] === "MAX_VALUE" && (this.maxValue = parseInt(h[1]));
57
59
  }), this.width = this.setWidth(this.parameters[4], "px", this.width), this.height = this.setHeight(this.parameters[5], "px", this.height), this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__CONVERTED`, this.$emit("addItem", this.valueId);
58
60
  },
59
61
  destroyed() {
@@ -105,6 +107,6 @@ const u = {
105
107
  }
106
108
  };
107
109
  export {
108
- u as B
110
+ l as B
109
111
  };
110
- //# sourceMappingURL=BarColumn-DmjMnw5l.js.map
112
+ //# sourceMappingURL=BarColumn-DwZmAe8g.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarColumn-DwZmAe8g.js","sources":["../src/widgets/BarColumn.js"],"sourcesContent":["/*\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\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.\n# See LICENSE.md 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\nimport Widget from './Widget'\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n minValue: null,\n maxValue: null,\n redLow: 0,\n yellowLow: 0,\n greenLow: 0,\n greenHigh: 0,\n yellowHigh: 0,\n redHigh: 0,\n blue: 0,\n api: null,\n limitsSettings: {\n DEFAULT: [],\n },\n currentLimitsSet: 'DEFAULT',\n currentSetRefreshInterval: null,\n }\n },\n computed: {\n cssProps: function () {\n if (!this.screenValues[this.valueId]) {\n return {}\n }\n let value = this.screenValues[this.valueId][0]\n let limits = this.modifyLimits(\n this.limitsSettings[this.selectedLimitsSet],\n )\n this.calcLimits(limits)\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-height': this.height - 5 + 'px',\n '--position': this.calcPosition(value, limits) + '%',\n '--redlow-width': this.redLow + '%',\n '--redhigh-width': this.redHigh + '%',\n '--yellowlow-width': this.yellowLow + '%',\n '--yellowhigh-width': this.yellowHigh + '%',\n '--greenlow-width': this.greenLow + '%',\n '--greenhigh-width': this.greenHigh + '%',\n '--blue-width': this.blue + '%',\n }\n },\n selectedLimitsSet: function () {\n return this.limitsSettings.hasOwnProperty(this.currentLimitsSet)\n ? this.currentLimitsSet\n : 'DEFAULT'\n },\n },\n created() {\n this.api = new OpenC3Api()\n\n const parsed = this.parseItemName(this.parameters[2])\n this.parameters[2] = parsed.name\n\n this.api\n .get_limits(this.parameters[0], this.parameters[1], parsed.name)\n .then((data) => {\n this.limitsSettings = data\n })\n this.getCurrentLimitsSet()\n this.currentSetRefreshInterval = setInterval(\n this.getCurrentLimitsSet,\n 60 * 1000,\n )\n\n this.appliedSettings.forEach((setting) => {\n if (setting[0] === 'MIN_VALUE') {\n this.minValue = parseInt(setting[1])\n }\n if (setting[0] === 'MAX_VALUE') {\n this.maxValue = parseInt(setting[1])\n }\n })\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n this.height = this.setHeight(this.parameters[5], 'px', this.height)\n // Always pass CONVERTED so we can calculate the value against the limits (in converted units)\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__CONVERTED`\n\n this.$emit('addItem', this.valueId)\n },\n destroyed() {\n this.$emit('deleteItem', this.valueId)\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n modifyLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n // By default the red bars take 10% of the display\n this.redLow = 10\n this.redHigh = 10\n\n // Modify values to respect the user defined minimum\n if (this.minValue !== null) {\n if (limitsSettings[0] <= this.minValue) {\n limitsSettings[0] = this.minValue\n // No red low will be displayed\n this.redLow = 0\n }\n if (limitsSettings[1] <= this.minValue) {\n limitsSettings[1] = this.minValue\n }\n if (limitsSettings[2] <= this.minValue) {\n limitsSettings[2] = this.minValue\n }\n if (limitsSettings[3] <= this.minValue) {\n limitsSettings[3] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[4] <= this.minValue) {\n limitsSettings[4] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] <= this.minValue) {\n limitsSettings[5] = this.minValue\n }\n }\n if (this.maxValue !== null) {\n if (limitsSettings[0] >= this.maxValue) {\n limitsSettings[0] = this.maxValue\n }\n if (limitsSettings[1] >= this.maxValue) {\n limitsSettings[1] = this.maxValue\n }\n if (limitsSettings[2] >= this.maxValue) {\n limitsSettings[2] = this.maxValue\n }\n if (limitsSettings[3] >= this.maxValue) {\n limitsSettings[3] = this.maxValue\n // No red high will be displayed\n this.redHigh = 0\n }\n if (limitsSettings.length > 4 && limitsSettings[4] >= this.maxValue) {\n limitsSettings[4] = this.maxValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] >= this.maxValue) {\n limitsSettings[5] = this.maxValue\n }\n }\n // If the red low matches yellow low there is no yellow low\n if (limitsSettings[0] == limitsSettings[1]) {\n this.yellowLow = 0\n }\n // If the red high matches yellow high there is no yellow high\n if (limitsSettings[2] == limitsSettings[3]) {\n this.yellowHigh = 0\n }\n\n let divisor = 80\n if (this.redLow == 0) {\n divisor += 10\n }\n if (this.redHigh == 0) {\n divisor += 10\n }\n this.scale = (limitsSettings[3] - limitsSettings[0]) / divisor\n\n return limitsSettings\n },\n calcPosition(value, limitsSettings) {\n if (value == null || !limitsSettings) {\n return\n }\n let lowValue = limitsSettings[0] - 10 * this.scale\n if (this.minValue && this.minValue == limitsSettings[0]) {\n lowValue = limitsSettings[0]\n }\n let highValue = limitsSettings[3] - 10 * this.scale\n if (this.maxValue && this.maxValue == limitsSettings[3]) {\n highValue = limitsSettings[3]\n }\n\n if (value.raw) {\n if (value.raw === '-Infinity') {\n return 0\n } else {\n // NaN and Infinity\n return 100\n }\n }\n if (value < this.min) {\n return 0\n } else if (value > this.max) {\n return 100\n } else {\n const result = parseInt((value - lowValue) / this.scale)\n if (result > 100) {\n return 100\n } else if (result < 0) {\n return 0\n } else {\n return result\n }\n }\n },\n calcLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n this.yellowLow = Math.round(\n (limitsSettings[1] - limitsSettings[0]) / this.scale,\n )\n this.yellowHigh = Math.round(\n (limitsSettings[3] - limitsSettings[2]) / this.scale,\n )\n if (limitsSettings.length > 4) {\n this.greenLow = Math.round(\n (limitsSettings[4] - limitsSettings[1]) / this.scale,\n )\n this.greenHigh = Math.round(\n (limitsSettings[2] - limitsSettings[5]) / this.scale,\n )\n this.blue = Math.round(\n 100 -\n this.redLow -\n this.yellowLow -\n this.greenLow -\n this.greenHigh -\n this.yellowHigh -\n this.redHigh,\n )\n } else {\n this.greenLow = Math.round(\n 100 - this.redLow - this.yellowLow - this.yellowHigh - this.redHigh,\n )\n this.greenHigh = 0\n this.blue = 0\n }\n },\n getCurrentLimitsSet: function () {\n this.api.get_limits_set().then((result) => {\n this.currentLimitsSet = result\n })\n },\n },\n}\n"],"names":["BarColumn","Widget","value","limits","OpenC3Api","parsed","data","setting","limitsSettings","divisor","lowValue","result"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js";
2
- import { resolveComponent as s, openBlock as d, createElementBlock as u, createVNode as a, normalizeStyle as _, normalizeClass as y, withCtx as l, Fragment as V, renderList as k, createBlock as C, withModifiers as b, createTextVNode as P, toDisplayString as W } from "vue";
1
+ import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js";
2
+ import "./format-D2pYLAIF.js";
3
+ import { resolveComponent as i, openBlock as d, createElementBlock as u, createVNode as a, normalizeStyle as _, normalizeClass as y, withCtx as l, Fragment as V, renderList as k, createBlock as C, withModifiers as b, createTextVNode as P, toDisplayString as W } from "vue";
3
4
  import { _ as D } from "./CustomIcon-DTR361si.js";
4
- import { D as F } from "./DetailsDialog-sqja4Lzq.js";
5
+ import { D as F } from "./DetailsDialog-q5SDzw3R.js";
5
6
  import "./store-CO68rDJT.js";
6
7
  import "single-spa";
7
- import { V as H } from "./VWidget-CxnaMF0w.js";
8
+ import { V as H } from "./VWidget-BDy0211S.js";
8
9
  const M = {
9
10
  components: {
10
11
  DetailsDialog: F
@@ -42,18 +43,18 @@ const M = {
42
43
  let t = "";
43
44
  if (e && e.raw) {
44
45
  let p = " ", h = `
45
- `, r = 0, i = 0;
46
+ `, r = 0, s = 0;
46
47
  const n = this.bytesPerWord * this.wordsPerRow;
47
48
  for (const m of e.raw)
48
- this.addrFormat && r === 0 && (t += sprintf(this.addrFormat, i), i += n), t += sprintf(this.formatter, m), r += 1, r % n === 0 ? (r = 0, t += h) : r % this.bytesPerWord === 0 && (t += p);
49
+ this.addrFormat && r === 0 && (t += sprintf(this.addrFormat, s), s += n), t += sprintf(this.formatter, m), r += 1, r % n === 0 ? (r = 0, t += h) : r % this.bytesPerWord === 0 && (t += p);
49
50
  } else
50
51
  t = e;
51
52
  return t;
52
53
  }
53
54
  }
54
55
  }, R = { class: "block-widget-container" };
55
- function S(e, t, p, h, r, i) {
56
- const n = s("v-textarea"), m = s("v-list-item-title"), c = s("v-list-item"), f = s("v-list"), g = s("v-menu"), w = s("details-dialog");
56
+ function S(e, t, p, h, r, s) {
57
+ const n = i("v-textarea"), m = i("v-list-item-title"), c = i("v-list-item"), f = i("v-list"), g = i("v-menu"), w = i("details-dialog");
57
58
  return d(), u("div", R, [
58
59
  a(n, {
59
60
  variant: "solo",
@@ -61,11 +62,11 @@ function S(e, t, p, h, r, i) {
61
62
  readonly: "",
62
63
  "no-resize": "",
63
64
  "hide-details": "",
64
- rows: i.rows,
65
+ rows: s.rows,
65
66
  width: e.width,
66
67
  "model-value": e._value,
67
68
  class: y(e.valueClass),
68
- style: _([e.computedStyle, i.aging]),
69
+ style: _([e.computedStyle, s.aging]),
69
70
  "data-test": "valueText",
70
71
  onContextmenu: e.showContextMenu
71
72
  }, null, 8, ["rows", "width", "model-value", "class", "style", "onContextmenu"]),
@@ -106,8 +107,8 @@ function S(e, t, p, h, r, i) {
106
107
  }, null, 8, ["modelValue", "target-name", "packet-name", "item-name"])
107
108
  ]);
108
109
  }
109
- const U = /* @__PURE__ */ D(M, [["render", S], ["__scopeId", "data-v-fc296592"]]);
110
+ const $ = /* @__PURE__ */ D(M, [["render", S], ["__scopeId", "data-v-fc296592"]]);
110
111
  export {
111
- U as default
112
+ $ as default
112
113
  };
113
- //# sourceMappingURL=BlockWidget-BdR_HCVc.js.map
114
+ //# sourceMappingURL=BlockWidget-BHtugveV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockWidget-BdR_HCVc.js","sources":["../src/widgets/BlockWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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 class=\"block-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n hide-details\n :rows=\"rows\"\n :width=\"width\"\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"valueText\"\n @contextmenu=\"showContextMenu\"\n />\n <v-menu v-model=\"contextMenuShown\" :target=\"[x, y]\">\n <v-list>\n <v-list-item\n v-for=\"(item, index) in contextMenuOptions\"\n :key=\"index\"\n @click.stop=\"item.action\"\n >\n <v-list-item-title>{{ item.title }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <details-dialog\n v-model=\"viewDetails\"\n :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n mixins: [VWidget],\n data: function () {\n return {\n width: 400,\n height: 400,\n bytesPerWord: 4,\n wordsPerRow: 4,\n addrFormat: null,\n formatter: '%02X',\n }\n },\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n rows: function () {\n // hack to set height since vuetify 3 removed the ability to set the\n // <textarea>'s height by px and I can't get styling the element to work, either\n const paddingHeight = 16 // px\n const rowHeight = 24 // px\n return (this.height - paddingHeight) / rowHeight\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.bytesPerWord = Number.parseInt(this.parameters[6])\n }\n if (this.parameters[7]) {\n this.wordsPerRow = Number.parseInt(this.parameters[7])\n }\n if (this.parameters[8]) {\n this.addrFormat = this.parameters[8]\n }\n // parameter[9] is the type ... see getType()\n },\n methods: {\n getType: function () {\n let type = 'RAW'\n if (this.parameters[9]) {\n type = this.parameters[9]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n if (data && data.raw) {\n let space = ' '\n let newLine = '\\n'\n\n let byteCount = 0\n let addr = 0\n const bytesPerRow = this.bytesPerWord * this.wordsPerRow\n\n for (const value of data.raw) {\n if (this.addrFormat && byteCount === 0) {\n text += sprintf(this.addrFormat, addr)\n addr += bytesPerRow\n }\n text += sprintf(this.formatter, value)\n byteCount += 1\n if (byteCount % bytesPerRow === 0) {\n byteCount = 0\n text += newLine\n } else if (byteCount % this.bytesPerWord === 0) {\n text += space\n }\n }\n } else {\n text = data\n }\n return text\n },\n },\n}\n</script>\n\n<style scoped>\n.block-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.v-textarea :deep(textarea) {\n font-family: 'Courier New', Courier, monospace;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.block-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.block-widget-container :deep(textarea) {\n padding-right: 0 !important;\n padding-left: 12px !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","byteCount","addr","bytesPerRow","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","$options","_ctx","_normalizeStyle","_component_v_menu","$event","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"BlockWidget-BHtugveV.js","sources":["../src/widgets/BlockWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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 class=\"block-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n hide-details\n :rows=\"rows\"\n :width=\"width\"\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"valueText\"\n @contextmenu=\"showContextMenu\"\n />\n <v-menu v-model=\"contextMenuShown\" :target=\"[x, y]\">\n <v-list>\n <v-list-item\n v-for=\"(item, index) in contextMenuOptions\"\n :key=\"index\"\n @click.stop=\"item.action\"\n >\n <v-list-item-title>{{ item.title }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <details-dialog\n v-model=\"viewDetails\"\n :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n mixins: [VWidget],\n data: function () {\n return {\n width: 400,\n height: 400,\n bytesPerWord: 4,\n wordsPerRow: 4,\n addrFormat: null,\n formatter: '%02X',\n }\n },\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n rows: function () {\n // hack to set height since vuetify 3 removed the ability to set the\n // <textarea>'s height by px and I can't get styling the element to work, either\n const paddingHeight = 16 // px\n const rowHeight = 24 // px\n return (this.height - paddingHeight) / rowHeight\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.bytesPerWord = Number.parseInt(this.parameters[6])\n }\n if (this.parameters[7]) {\n this.wordsPerRow = Number.parseInt(this.parameters[7])\n }\n if (this.parameters[8]) {\n this.addrFormat = this.parameters[8]\n }\n // parameter[9] is the type ... see getType()\n },\n methods: {\n getType: function () {\n let type = 'RAW'\n if (this.parameters[9]) {\n type = this.parameters[9]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n if (data && data.raw) {\n let space = ' '\n let newLine = '\\n'\n\n let byteCount = 0\n let addr = 0\n const bytesPerRow = this.bytesPerWord * this.wordsPerRow\n\n for (const value of data.raw) {\n if (this.addrFormat && byteCount === 0) {\n text += sprintf(this.addrFormat, addr)\n addr += bytesPerRow\n }\n text += sprintf(this.formatter, value)\n byteCount += 1\n if (byteCount % bytesPerRow === 0) {\n byteCount = 0\n text += newLine\n } else if (byteCount % this.bytesPerWord === 0) {\n text += space\n }\n }\n } else {\n text = data\n }\n return text\n },\n },\n}\n</script>\n\n<style scoped>\n.block-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.v-textarea :deep(textarea) {\n font-family: 'Courier New', Courier, monospace;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.block-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.block-widget-container :deep(textarea) {\n padding-right: 0 !important;\n padding-left: 12px !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","byteCount","addr","bytesPerRow","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","$options","_ctx","_normalizeStyle","_component_v_menu","$event","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs");const e=require("vue"),g=require("./CustomIcon-8F08upeg.cjs"),f=require("./DetailsDialog-BcMaTfuQ.cjs");require("./store-CiS35N-w.cjs");require("single-spa");const w=require("./VWidget-dEHSEvZx.cjs"),v={components:{DetailsDialog:f.DetailsDialog},mixins:[w.VWidget],data:function(){return{width:400,height:400,bytesPerWord:4,wordsPerRow:4,addrFormat:null,formatter:"%02X"}},computed:{aging(){return{"--aging":this.grayLevel}},rows:function(){return(this.height-16)/24}},created:function(){this.width=this.setWidth(this.parameters[3],"px",this.width),this.height=this.setHeight(this.parameters[4],"px",this.height),this.parameters[5]&&(this.formatter=this.parameters[5]),this.parameters[6]&&(this.bytesPerWord=Number.parseInt(this.parameters[6])),this.parameters[7]&&(this.wordsPerRow=Number.parseInt(this.parameters[7])),this.parameters[8]&&(this.addrFormat=this.parameters[8])},methods:{getType:function(){let t="RAW";return this.parameters[9]&&(t=this.parameters[9]),t},formatValue:function(t){let o="";if(t&&t.raw){let l=" ",d=`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs");require("./format-qjtPogBb.cjs");const e=require("vue"),g=require("./CustomIcon-8F08upeg.cjs"),f=require("./DetailsDialog-D3iPUi8b.cjs");require("./store-CiS35N-w.cjs");require("single-spa");const w=require("./VWidget-B6WHN0_z.cjs"),v={components:{DetailsDialog:f.DetailsDialog},mixins:[w.VWidget],data:function(){return{width:400,height:400,bytesPerWord:4,wordsPerRow:4,addrFormat:null,formatter:"%02X"}},computed:{aging(){return{"--aging":this.grayLevel}},rows:function(){return(this.height-16)/24}},created:function(){this.width=this.setWidth(this.parameters[3],"px",this.width),this.height=this.setHeight(this.parameters[4],"px",this.height),this.parameters[5]&&(this.formatter=this.parameters[5]),this.parameters[6]&&(this.bytesPerWord=Number.parseInt(this.parameters[6])),this.parameters[7]&&(this.wordsPerRow=Number.parseInt(this.parameters[7])),this.parameters[8]&&(this.addrFormat=this.parameters[8])},methods:{getType:function(){let t="RAW";return this.parameters[9]&&(t=this.parameters[9]),t},formatValue:function(t){let o="";if(t&&t.raw){let l=" ",d=`
2
2
  `,r=0,s=0;const n=this.bytesPerWord*this.wordsPerRow;for(const a of t.raw)this.addrFormat&&r===0&&(o+=sprintf(this.addrFormat,s),s+=n),o+=sprintf(this.formatter,a),r+=1,r%n===0?(r=0,o+=d):r%this.bytesPerWord===0&&(o+=l)}else o=t;return o}}},y={class:"block-widget-container"};function C(t,o,l,d,r,s){const n=e.resolveComponent("v-textarea"),a=e.resolveComponent("v-list-item-title"),m=e.resolveComponent("v-list-item"),u=e.resolveComponent("v-list"),h=e.resolveComponent("v-menu"),p=e.resolveComponent("details-dialog");return e.openBlock(),e.createElementBlock("div",y,[e.createVNode(n,{variant:"solo",density:"compact",readonly:"","no-resize":"","hide-details":"",rows:s.rows,width:t.width,"model-value":t._value,class:e.normalizeClass(t.valueClass),style:e.normalizeStyle([t.computedStyle,s.aging]),"data-test":"valueText",onContextmenu:t.showContextMenu},null,8,["rows","width","model-value","class","style","onContextmenu"]),e.createVNode(h,{modelValue:t.contextMenuShown,"onUpdate:modelValue":o[0]||(o[0]=i=>t.contextMenuShown=i),target:[t.x,t.y]},{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.contextMenuOptions,(i,c)=>(e.openBlock(),e.createBlock(m,{key:c,onClick:e.withModifiers(i.action,["stop"])},{default:e.withCtx(()=>[e.createVNode(a,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.title),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["modelValue","target"]),e.createVNode(p,{modelValue:t.viewDetails,"onUpdate:modelValue":o[1]||(o[1]=i=>t.viewDetails=i),"target-name":t.parameters[0],"packet-name":t.parameters[1],"item-name":t.parameters[2]},null,8,["modelValue","target-name","packet-name","item-name"])])}const _=g._export_sfc(v,[["render",C],["__scopeId","data-v-fc296592"]]);exports.default=_;
3
- //# sourceMappingURL=BlockWidget-Bi1PfS1k.cjs.map
3
+ //# sourceMappingURL=BlockWidget-_HTXwzGu.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockWidget-Bi1PfS1k.cjs","sources":["../src/widgets/BlockWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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 class=\"block-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n hide-details\n :rows=\"rows\"\n :width=\"width\"\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"valueText\"\n @contextmenu=\"showContextMenu\"\n />\n <v-menu v-model=\"contextMenuShown\" :target=\"[x, y]\">\n <v-list>\n <v-list-item\n v-for=\"(item, index) in contextMenuOptions\"\n :key=\"index\"\n @click.stop=\"item.action\"\n >\n <v-list-item-title>{{ item.title }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <details-dialog\n v-model=\"viewDetails\"\n :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n mixins: [VWidget],\n data: function () {\n return {\n width: 400,\n height: 400,\n bytesPerWord: 4,\n wordsPerRow: 4,\n addrFormat: null,\n formatter: '%02X',\n }\n },\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n rows: function () {\n // hack to set height since vuetify 3 removed the ability to set the\n // <textarea>'s height by px and I can't get styling the element to work, either\n const paddingHeight = 16 // px\n const rowHeight = 24 // px\n return (this.height - paddingHeight) / rowHeight\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.bytesPerWord = Number.parseInt(this.parameters[6])\n }\n if (this.parameters[7]) {\n this.wordsPerRow = Number.parseInt(this.parameters[7])\n }\n if (this.parameters[8]) {\n this.addrFormat = this.parameters[8]\n }\n // parameter[9] is the type ... see getType()\n },\n methods: {\n getType: function () {\n let type = 'RAW'\n if (this.parameters[9]) {\n type = this.parameters[9]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n if (data && data.raw) {\n let space = ' '\n let newLine = '\\n'\n\n let byteCount = 0\n let addr = 0\n const bytesPerRow = this.bytesPerWord * this.wordsPerRow\n\n for (const value of data.raw) {\n if (this.addrFormat && byteCount === 0) {\n text += sprintf(this.addrFormat, addr)\n addr += bytesPerRow\n }\n text += sprintf(this.formatter, value)\n byteCount += 1\n if (byteCount % bytesPerRow === 0) {\n byteCount = 0\n text += newLine\n } else if (byteCount % this.bytesPerWord === 0) {\n text += space\n }\n }\n } else {\n text = data\n }\n return text\n },\n },\n}\n</script>\n\n<style scoped>\n.block-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.v-textarea :deep(textarea) {\n font-family: 'Courier New', Courier, monospace;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.block-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.block-widget-container :deep(textarea) {\n padding-right: 0 !important;\n padding-left: 12px !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","byteCount","addr","bytesPerRow","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","$options","_ctx","_normalizeStyle","_component_v_menu","$event","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"BlockWidget-_HTXwzGu.cjs","sources":["../src/widgets/BlockWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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 class=\"block-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n hide-details\n :rows=\"rows\"\n :width=\"width\"\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"valueText\"\n @contextmenu=\"showContextMenu\"\n />\n <v-menu v-model=\"contextMenuShown\" :target=\"[x, y]\">\n <v-list>\n <v-list-item\n v-for=\"(item, index) in contextMenuOptions\"\n :key=\"index\"\n @click.stop=\"item.action\"\n >\n <v-list-item-title>{{ item.title }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <details-dialog\n v-model=\"viewDetails\"\n :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n mixins: [VWidget],\n data: function () {\n return {\n width: 400,\n height: 400,\n bytesPerWord: 4,\n wordsPerRow: 4,\n addrFormat: null,\n formatter: '%02X',\n }\n },\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n rows: function () {\n // hack to set height since vuetify 3 removed the ability to set the\n // <textarea>'s height by px and I can't get styling the element to work, either\n const paddingHeight = 16 // px\n const rowHeight = 24 // px\n return (this.height - paddingHeight) / rowHeight\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.bytesPerWord = Number.parseInt(this.parameters[6])\n }\n if (this.parameters[7]) {\n this.wordsPerRow = Number.parseInt(this.parameters[7])\n }\n if (this.parameters[8]) {\n this.addrFormat = this.parameters[8]\n }\n // parameter[9] is the type ... see getType()\n },\n methods: {\n getType: function () {\n let type = 'RAW'\n if (this.parameters[9]) {\n type = this.parameters[9]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n if (data && data.raw) {\n let space = ' '\n let newLine = '\\n'\n\n let byteCount = 0\n let addr = 0\n const bytesPerRow = this.bytesPerWord * this.wordsPerRow\n\n for (const value of data.raw) {\n if (this.addrFormat && byteCount === 0) {\n text += sprintf(this.addrFormat, addr)\n addr += bytesPerRow\n }\n text += sprintf(this.formatter, value)\n byteCount += 1\n if (byteCount % bytesPerRow === 0) {\n byteCount = 0\n text += newLine\n } else if (byteCount % this.bytesPerWord === 0) {\n text += space\n }\n }\n } else {\n text = data\n }\n return text\n },\n },\n}\n</script>\n\n<style scoped>\n.block-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.v-textarea :deep(textarea) {\n font-family: 'Courier New', Courier, monospace;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.block-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.block-widget-container :deep(textarea) {\n padding-right: 0 !important;\n padding-left: 12px !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","byteCount","addr","bytesPerRow","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","$options","_ctx","_normalizeStyle","_component_v_menu","$event","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const format=require("./format-qjtPogBb.cjs");require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs");const vue=require("vue"),CustomIcon=require("./CustomIcon-8F08upeg.cjs"),CriticalCmdDialog=require("./CriticalCmdDialog-DJ3FWL0_.cjs");require("./store-CiS35N-w.cjs");require("single-spa");const Widget=require("./Widget-Ddu_kuTL.cjs"),_sfc_main={components:{CriticalCmdDialog:CriticalCmdDialog.CriticalCmdDialog},mixins:[Widget.Widget],data(){return{api:null,displaySendHazardous:!1,lastCmd:"",criticalCmdUuid:null,criticalCmdString:null,criticalCmdUser:null,displayCriticalCmd:!1}},computed:{buttonText(){return this.parameters[0]},eval(){return this.parameters[1]}},created(){this.api=new format.Ri},methods:{async onClick(){const lines=this.eval.split(";;"),self=this,screen=this.screen,screenValues=this.screenValues,screenTimeZone=this.screenTimeZone,api=this.api,runScript=this.runScript;(self||screen||screenValues||screenTimeZone||api||runScript)&&this.$nextTick(()=>{});for(let i=0;i<lines.length;i++)try{const result=eval(lines[i].trim());result instanceof Promise&&await result}catch(e){if(e.message.includes("CriticalCmdError"))this.criticalCmdUuid=e.object.data.instance_variables["@uuid"],this.criticalCmdString=e.object.data.instance_variables["@cmd_string"],this.criticalCmdUser=e.object.data.instance_variables["@username"],this.displayCriticalCmd=!0;else if(e.message.includes("is Hazardous"))for(this.lastCmd=e.message.split(`
2
+ `).pop(),this.displaySendHazardous=!0;this.displaySendHazardous;)await new Promise(t=>setTimeout(t,500));else console.error(e)}},async sendHazardousCmd(){this.lastCmd=this.lastCmd.replace("cmd(","this.api.cmd_no_hazardous_check(");try{const result=eval(this.lastCmd);result instanceof Promise&&await result}catch(e){e.message.includes("CriticalCmdError")&&(this.criticalCmdUuid=e.object.data.instance_variables["@uuid"],this.criticalCmdString=e.object.data.instance_variables["@cmd_string"],this.criticalCmdUser=e.object.data.instance_variables["@username"],this.displayCriticalCmd=!0)}this.displaySendHazardous=!1},cancelHazardousCmd(){this.displaySendHazardous=!1},runScript(e,t=!0,a={}){let n=[];for(const r in a)n.push({key:r,value:a[r],readonly:!1});format.Br.post(`/script-api/scripts/${e}/run`,{data:{environment:n}}).then(r=>{t&&window.open(`/tools/scriptrunner/${r.data}`,"_blank")})}}},_hoisted_1={class:"mx-1"};function _sfc_render(e,t,a,n,r,s){const o=vue.resolveComponent("v-btn"),d=vue.resolveComponent("v-card-title"),c=vue.resolveComponent("v-row"),u=vue.resolveComponent("v-spacer"),m=vue.resolveComponent("v-card-text"),v=vue.resolveComponent("v-card"),C=vue.resolveComponent("v-dialog"),p=vue.resolveComponent("critical-cmd-dialog");return vue.openBlock(),vue.createElementBlock("div",null,[vue.createVNode(o,{class:"ma-1",color:"primary",style:vue.normalizeStyle(e.computedStyle),onClick:s.onClick},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(s.buttonText),1)]),_:1},8,["style","onClick"]),vue.createVNode(C,{modelValue:r.displaySendHazardous,"onUpdate:modelValue":t[0]||(t[0]=l=>r.displaySendHazardous=l),"max-width":"300"},{default:vue.withCtx(()=>[vue.createVNode(v,null,{default:vue.withCtx(()=>[vue.createVNode(d,null,{default:vue.withCtx(()=>[...t[2]||(t[2]=[vue.createTextVNode("Hazardous",-1)])]),_:1}),vue.createVNode(m,null,{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1,[vue.createVNode(c,{class:"my-2"},{default:vue.withCtx(()=>[...t[3]||(t[3]=[vue.createElementVNode("span",null," Warning: Command is Hazardous. Send? ",-1)])]),_:1}),vue.createVNode(c,null,{default:vue.withCtx(()=>[vue.createVNode(u),vue.createVNode(o,{variant:"outlined",onClick:s.cancelHazardousCmd},{default:vue.withCtx(()=>[...t[4]||(t[4]=[vue.createTextVNode(" Cancel ",-1)])]),_:1},8,["onClick"]),vue.createVNode(o,{class:"bg-primary mx-1",onClick:s.sendHazardousCmd},{default:vue.withCtx(()=>[...t[5]||(t[5]=[vue.createTextVNode(" Send ",-1)])]),_:1},8,["onClick"])]),_:1})])]),_:1})]),_:1})]),_:1},8,["modelValue"]),vue.createVNode(p,{modelValue:r.displayCriticalCmd,"onUpdate:modelValue":t[1]||(t[1]=l=>r.displayCriticalCmd=l),uuid:r.criticalCmdUuid,"cmd-string":r.criticalCmdString,"cmd-user":r.criticalCmdUser},null,8,["modelValue","uuid","cmd-string","cmd-user"])])}const ButtonWidget=CustomIcon._export_sfc(_sfc_main,[["render",_sfc_render]]);exports.default=ButtonWidget;
3
+ //# sourceMappingURL=ButtonWidget-C_4jUjbD.cjs.map