@openc3/vue-common 6.3.0 → 6.4.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 (475) hide show
  1. package/dist/{ArrayWidget-DkjHrXsu.cjs → ArrayWidget-Ba-YDfZB.cjs} +2 -2
  2. package/dist/{ArrayWidget-DkjHrXsu.cjs.map → ArrayWidget-Ba-YDfZB.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-BbsN1dzF.js → ArrayWidget-DAZApfkV.js} +4 -4
  4. package/dist/{ArrayWidget-BbsN1dzF.js.map → ArrayWidget-DAZApfkV.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-CCKEyYIx.js → ArrayplotWidget-BfsxDplv.js} +3 -3
  6. package/dist/{ArrayplotWidget-CCKEyYIx.js.map → ArrayplotWidget-BfsxDplv.js.map} +1 -1
  7. package/dist/ArrayplotWidget-Ckm4lmSc.cjs +2 -0
  8. package/dist/{ArrayplotWidget-COeaK_Lz.cjs.map → ArrayplotWidget-Ckm4lmSc.cjs.map} +1 -1
  9. package/dist/BarColumn-Cp7oEFJR.cjs +2 -0
  10. package/dist/{BarColumn-CJLW1nXy.cjs.map → BarColumn-Cp7oEFJR.cjs.map} +1 -1
  11. package/dist/{BarColumn-C6p07yWK.js → BarColumn-q0nAsvrd.js} +3 -3
  12. package/dist/{BarColumn-C6p07yWK.js.map → BarColumn-q0nAsvrd.js.map} +1 -1
  13. package/dist/{BlockWidget-BFVYgbd_.cjs → BlockWidget-DRB-TDL_.cjs} +2 -2
  14. package/dist/{BlockWidget-BFVYgbd_.cjs.map → BlockWidget-DRB-TDL_.cjs.map} +1 -1
  15. package/dist/{BlockWidget-DlCHbqZX.js → BlockWidget-SDCUWcMQ.js} +4 -4
  16. package/dist/{BlockWidget-DlCHbqZX.js.map → BlockWidget-SDCUWcMQ.js.map} +1 -1
  17. package/dist/{ButtonWidget-CtfJzCBR.js → ButtonWidget-BVMjwC19.js} +14 -14
  18. package/dist/{ButtonWidget-CtfJzCBR.js.map → ButtonWidget-BVMjwC19.js.map} +1 -1
  19. package/dist/ButtonWidget-yJ70adEU.cjs +3 -0
  20. package/dist/{ButtonWidget-HN8UHsme.cjs.map → ButtonWidget-yJ70adEU.cjs.map} +1 -1
  21. package/dist/{CanvasWidget-CHmkxxMO.cjs → CanvasWidget-DXkxnt1x.cjs} +2 -2
  22. package/dist/{CanvasWidget-CHmkxxMO.cjs.map → CanvasWidget-DXkxnt1x.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-CqRlXc4r.js → CanvasWidget-bVkufjRQ.js} +2 -2
  24. package/dist/{CanvasWidget-CqRlXc4r.js.map → CanvasWidget-bVkufjRQ.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-B4bUcKRc.cjs → CanvasdotWidget-Bi3nZh7g.cjs} +2 -2
  26. package/dist/{CanvasdotWidget-B4bUcKRc.cjs.map → CanvasdotWidget-Bi3nZh7g.cjs.map} +1 -1
  27. package/dist/{CanvasdotWidget--Xr_KsZs.js → CanvasdotWidget-DpniFfca.js} +2 -2
  28. package/dist/{CanvasdotWidget--Xr_KsZs.js.map → CanvasdotWidget-DpniFfca.js.map} +1 -1
  29. package/dist/{CanvasimageWidget-B5YozXoI.cjs → CanvasimageWidget-C-aBl-by.cjs} +2 -2
  30. package/dist/{CanvasimageWidget-B5YozXoI.cjs.map → CanvasimageWidget-C-aBl-by.cjs.map} +1 -1
  31. package/dist/{CanvasimageWidget-BPlj5QYK.js → CanvasimageWidget-DHOSz-dJ.js} +3 -3
  32. package/dist/{CanvasimageWidget-BPlj5QYK.js.map → CanvasimageWidget-DHOSz-dJ.js.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-Dx1HnbEw.cjs → CanvasimagevalueWidget-DAbbV-LB.cjs} +2 -2
  34. package/dist/{CanvasimagevalueWidget-Dx1HnbEw.cjs.map → CanvasimagevalueWidget-DAbbV-LB.cjs.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-DVFGLt8f.js → CanvasimagevalueWidget-zrURWWUL.js} +3 -3
  36. package/dist/{CanvasimagevalueWidget-DVFGLt8f.js.map → CanvasimagevalueWidget-zrURWWUL.js.map} +1 -1
  37. package/dist/{CanvaslabelWidget-DgadQD-D.cjs → CanvaslabelWidget-82bf_Awf.cjs} +2 -2
  38. package/dist/{CanvaslabelWidget-DgadQD-D.cjs.map → CanvaslabelWidget-82bf_Awf.cjs.map} +1 -1
  39. package/dist/{CanvaslabelWidget-CYNqmyP0.js → CanvaslabelWidget-D-XAMifp.js} +2 -2
  40. package/dist/{CanvaslabelWidget-CYNqmyP0.js.map → CanvaslabelWidget-D-XAMifp.js.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-B7yIDmsn.js → CanvaslabelvalueWidget-BsIdBtEb.js} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-B7yIDmsn.js.map → CanvaslabelvalueWidget-BsIdBtEb.js.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-C3k5gx5c.cjs → CanvaslabelvalueWidget-DgDzwLdi.cjs} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-C3k5gx5c.cjs.map → CanvaslabelvalueWidget-DgDzwLdi.cjs.map} +1 -1
  45. package/dist/{CanvaslineWidget-CYHkes0a.cjs → CanvaslineWidget-BRRPuuqS.cjs} +2 -2
  46. package/dist/{CanvaslineWidget-CYHkes0a.cjs.map → CanvaslineWidget-BRRPuuqS.cjs.map} +1 -1
  47. package/dist/{CanvaslineWidget-BICdxX0Q.js → CanvaslineWidget-CA2aPGRg.js} +2 -2
  48. package/dist/{CanvaslineWidget-BICdxX0Q.js.map → CanvaslineWidget-CA2aPGRg.js.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-5DzhZ22p.cjs → CanvaslinevalueWidget-BYjWr2gq.cjs} +2 -2
  50. package/dist/{CanvaslinevalueWidget-5DzhZ22p.cjs.map → CanvaslinevalueWidget-BYjWr2gq.cjs.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-Cq-Ddh0P.js → CanvaslinevalueWidget-J7epKRlo.js} +2 -2
  52. package/dist/{CanvaslinevalueWidget-Cq-Ddh0P.js.map → CanvaslinevalueWidget-J7epKRlo.js.map} +1 -1
  53. package/dist/{CheckbuttonWidget-B74AWeaW.js → CheckbuttonWidget-ByH-PDRG.js} +2 -2
  54. package/dist/{CheckbuttonWidget-B74AWeaW.js.map → CheckbuttonWidget-ByH-PDRG.js.map} +1 -1
  55. package/dist/{CheckbuttonWidget-BCzsXnIF.cjs → CheckbuttonWidget-DkoFFTcM.cjs} +2 -2
  56. package/dist/{CheckbuttonWidget-BCzsXnIF.cjs.map → CheckbuttonWidget-DkoFFTcM.cjs.map} +1 -1
  57. package/dist/{ComboboxWidget-CtyKbEWb.js → ComboboxWidget-Bdm_fMzW.js} +2 -2
  58. package/dist/{ComboboxWidget-CtyKbEWb.js.map → ComboboxWidget-Bdm_fMzW.js.map} +1 -1
  59. package/dist/{ComboboxWidget-DQgDyDAC.cjs → ComboboxWidget-Dq28F4bs.cjs} +2 -2
  60. package/dist/{ComboboxWidget-DQgDyDAC.cjs.map → ComboboxWidget-Dq28F4bs.cjs.map} +1 -1
  61. package/dist/{CriticalCmdDialog-DPIZOBeP.js → CriticalCmdDialog-Bcq8PGag.js} +16 -16
  62. package/dist/CriticalCmdDialog-Bcq8PGag.js.map +1 -0
  63. package/dist/CriticalCmdDialog-CLF7hYKu.cjs +2 -0
  64. package/dist/CriticalCmdDialog-CLF7hYKu.cjs.map +1 -0
  65. package/dist/{DateWidget-BEVSczU8.js → DateWidget-BaQqthC7.js} +3 -3
  66. package/dist/{DateWidget-BEVSczU8.js.map → DateWidget-BaQqthC7.js.map} +1 -1
  67. package/dist/{DateWidget-BB4cIuUS.cjs → DateWidget-DCayVS3o.cjs} +2 -2
  68. package/dist/{DateWidget-BB4cIuUS.cjs.map → DateWidget-DCayVS3o.cjs.map} +1 -1
  69. package/dist/{DetailsDialog-DmEC5BTs.js → DetailsDialog-C5jf8o0K.js} +18 -18
  70. package/dist/DetailsDialog-C5jf8o0K.js.map +1 -0
  71. package/dist/DetailsDialog-CangkVuF.cjs +2 -0
  72. package/dist/DetailsDialog-CangkVuF.cjs.map +1 -0
  73. package/dist/{EventListDialog-CSMSmCIT.js → EventListDialog-Bniar26O.js} +513 -590
  74. package/dist/EventListDialog-Bniar26O.js.map +1 -0
  75. package/dist/EventListDialog-D_KXhGDO.cjs +2 -0
  76. package/dist/EventListDialog-D_KXhGDO.cjs.map +1 -0
  77. package/dist/FormatvalueWidget--H5B9i_Y.js +48 -0
  78. package/dist/FormatvalueWidget--H5B9i_Y.js.map +1 -0
  79. package/dist/FormatvalueWidget-CDh1rF5P.cjs +2 -0
  80. package/dist/FormatvalueWidget-CDh1rF5P.cjs.map +1 -0
  81. package/dist/Graph-DIR-5tJu.cjs +2 -0
  82. package/dist/Graph-DIR-5tJu.cjs.map +1 -0
  83. package/dist/{Graph-Bgo0cjl3.js → Graph-M382Zo8o.js} +666 -801
  84. package/dist/Graph-M382Zo8o.js.map +1 -0
  85. package/dist/{GraphWidget-sid4Ws9H.cjs → GraphWidget-CNUOLw5-.cjs} +2 -2
  86. package/dist/{GraphWidget-sid4Ws9H.cjs.map → GraphWidget-CNUOLw5-.cjs.map} +1 -1
  87. package/dist/{GraphWidget-DurWDmpg.js → GraphWidget-_YOGDD1U.js} +2 -2
  88. package/dist/{GraphWidget-DurWDmpg.js.map → GraphWidget-_YOGDD1U.js.map} +1 -1
  89. package/dist/{HorizontalWidget-_6IR0cR8.cjs → HorizontalWidget-Bix4q7It.cjs} +2 -2
  90. package/dist/{HorizontalWidget-_6IR0cR8.cjs.map → HorizontalWidget-Bix4q7It.cjs.map} +1 -1
  91. package/dist/{HorizontalWidget-Cd_wl1b3.js → HorizontalWidget-D_gzrOWs.js} +2 -2
  92. package/dist/{HorizontalWidget-Cd_wl1b3.js.map → HorizontalWidget-D_gzrOWs.js.map} +1 -1
  93. package/dist/{HorizontalboxWidget-zmnurtv1.cjs → HorizontalboxWidget-B8a4-h2J.cjs} +2 -2
  94. package/dist/{HorizontalboxWidget-zmnurtv1.cjs.map → HorizontalboxWidget-B8a4-h2J.cjs.map} +1 -1
  95. package/dist/{HorizontalboxWidget-BcMTFBU-.js → HorizontalboxWidget-GDcjO-UB.js} +5 -5
  96. package/dist/{HorizontalboxWidget-BcMTFBU-.js.map → HorizontalboxWidget-GDcjO-UB.js.map} +1 -1
  97. package/dist/{HorizontallineWidget-CM-6WqCj.cjs → HorizontallineWidget-BD6dqVhE.cjs} +2 -2
  98. package/dist/{HorizontallineWidget-CM-6WqCj.cjs.map → HorizontallineWidget-BD6dqVhE.cjs.map} +1 -1
  99. package/dist/{HorizontallineWidget-CXFqHclf.js → HorizontallineWidget-DZvOYFxf.js} +2 -2
  100. package/dist/{HorizontallineWidget-CXFqHclf.js.map → HorizontallineWidget-DZvOYFxf.js.map} +1 -1
  101. package/dist/{IframeWidget-BPerHCCa.js → IframeWidget-CuUav9b3.js} +2 -2
  102. package/dist/{IframeWidget-BPerHCCa.js.map → IframeWidget-CuUav9b3.js.map} +1 -1
  103. package/dist/{IframeWidget-EhncMob0.cjs → IframeWidget-DL_CET3B.cjs} +2 -2
  104. package/dist/{IframeWidget-EhncMob0.cjs.map → IframeWidget-DL_CET3B.cjs.map} +1 -1
  105. package/dist/{ImageLoader-4N-7Gj61.js → ImageLoader-3KLKJ5mV.js} +2 -2
  106. package/dist/{ImageLoader-4N-7Gj61.js.map → ImageLoader-3KLKJ5mV.js.map} +1 -1
  107. package/dist/ImageLoader-DaWMqoJS.cjs +2 -0
  108. package/dist/{ImageLoader-cRmBcpU9.cjs.map → ImageLoader-DaWMqoJS.cjs.map} +1 -1
  109. package/dist/{ImageviewerWidget-Cw_H_HmZ.js → ImageviewerWidget-BMZ6REN4.js} +2 -2
  110. package/dist/{ImageviewerWidget-Cw_H_HmZ.js.map → ImageviewerWidget-BMZ6REN4.js.map} +1 -1
  111. package/dist/{ImageviewerWidget-Bv3CreXd.cjs → ImageviewerWidget-_0YopZ1s.cjs} +2 -2
  112. package/dist/{ImageviewerWidget-Bv3CreXd.cjs.map → ImageviewerWidget-_0YopZ1s.cjs.map} +1 -1
  113. package/dist/InterfacesTab-DGrLsTA0.cjs +2 -0
  114. package/dist/InterfacesTab-DGrLsTA0.cjs.map +1 -0
  115. package/dist/InterfacesTab-DTixVrGo.js +83 -0
  116. package/dist/InterfacesTab-DTixVrGo.js.map +1 -0
  117. package/dist/{LabelWidget-mMcf5S8K.cjs → LabelWidget-DkZvBxYg.cjs} +2 -2
  118. package/dist/{LabelWidget-mMcf5S8K.cjs.map → LabelWidget-DkZvBxYg.cjs.map} +1 -1
  119. package/dist/{LabelWidget-xrmcVeq8.js → LabelWidget-oh6FIG6s.js} +2 -2
  120. package/dist/{LabelWidget-xrmcVeq8.js.map → LabelWidget-oh6FIG6s.js.map} +1 -1
  121. package/dist/{LabelledWidget-D48QoyMk.js → LabelledWidget-Bic36les.js} +4 -4
  122. package/dist/{LabelledWidget-D48QoyMk.js.map → LabelledWidget-Bic36les.js.map} +1 -1
  123. package/dist/{LabelledWidget-BoYCuDaH.cjs → LabelledWidget-D7nm73kj.cjs} +2 -2
  124. package/dist/{LabelledWidget-BoYCuDaH.cjs.map → LabelledWidget-D7nm73kj.cjs.map} +1 -1
  125. package/dist/{LabelprogressbarWidget-C_950t6g.js → LabelprogressbarWidget-CqIiGoDb.js} +4 -4
  126. package/dist/{LabelprogressbarWidget-C_950t6g.js.map → LabelprogressbarWidget-CqIiGoDb.js.map} +1 -1
  127. package/dist/{LabelprogressbarWidget-DiucKsT2.cjs → LabelprogressbarWidget-DY0Xd2c2.cjs} +2 -2
  128. package/dist/{LabelprogressbarWidget-DiucKsT2.cjs.map → LabelprogressbarWidget-DY0Xd2c2.cjs.map} +1 -1
  129. package/dist/{LabelsparklineWidget-0KXQyPoU.js → LabelsparklineWidget-DLhmqO02.js} +4 -4
  130. package/dist/{LabelsparklineWidget-0KXQyPoU.js.map → LabelsparklineWidget-DLhmqO02.js.map} +1 -1
  131. package/dist/{LabelsparklineWidget-A3MTEhQc.cjs → LabelsparklineWidget-DZ5-iEcK.cjs} +2 -2
  132. package/dist/{LabelsparklineWidget-A3MTEhQc.cjs.map → LabelsparklineWidget-DZ5-iEcK.cjs.map} +1 -1
  133. package/dist/{LabelvalueWidget-CQ06wWDK.js → LabelvalueWidget-BefwSSVq.js} +4 -4
  134. package/dist/{LabelvalueWidget-CQ06wWDK.js.map → LabelvalueWidget-BefwSSVq.js.map} +1 -1
  135. package/dist/{LabelvalueWidget-DnKoz0-N.cjs → LabelvalueWidget-D-u38nLh.cjs} +2 -2
  136. package/dist/{LabelvalueWidget-DnKoz0-N.cjs.map → LabelvalueWidget-D-u38nLh.cjs.map} +1 -1
  137. package/dist/LabelvaluedescWidget-DMuBCLM8.cjs +2 -0
  138. package/dist/{LabelvaluedescWidget-I6ljK--Y.cjs.map → LabelvaluedescWidget-DMuBCLM8.cjs.map} +1 -1
  139. package/dist/{LabelvaluedescWidget-Bo8zT01X.js → LabelvaluedescWidget-NxrCzznm.js} +9 -9
  140. package/dist/{LabelvaluedescWidget-Bo8zT01X.js.map → LabelvaluedescWidget-NxrCzznm.js.map} +1 -1
  141. package/dist/{LabelvaluelimitsbarWidget-Cb6i_Ixc.cjs → LabelvaluelimitsbarWidget-BY212bgc.cjs} +2 -2
  142. package/dist/{LabelvaluelimitsbarWidget-Cb6i_Ixc.cjs.map → LabelvaluelimitsbarWidget-BY212bgc.cjs.map} +1 -1
  143. package/dist/{LabelvaluelimitsbarWidget-BucTw8Yk.js → LabelvaluelimitsbarWidget-pq7qoolL.js} +4 -4
  144. package/dist/{LabelvaluelimitsbarWidget-BucTw8Yk.js.map → LabelvaluelimitsbarWidget-pq7qoolL.js.map} +1 -1
  145. package/dist/{LabelvaluelimitscolumnWidget-ClY5OxUC.cjs → LabelvaluelimitscolumnWidget-DVLGU6ja.cjs} +2 -2
  146. package/dist/{LabelvaluelimitscolumnWidget-ClY5OxUC.cjs.map → LabelvaluelimitscolumnWidget-DVLGU6ja.cjs.map} +1 -1
  147. package/dist/{LabelvaluelimitscolumnWidget-Dflb1hNd.js → LabelvaluelimitscolumnWidget-edkpogsl.js} +5 -5
  148. package/dist/{LabelvaluelimitscolumnWidget-Dflb1hNd.js.map → LabelvaluelimitscolumnWidget-edkpogsl.js.map} +1 -1
  149. package/dist/{LabelvaluerangebarWidget-9S5rVZaS.cjs → LabelvaluerangebarWidget-CA_7kTS2.cjs} +2 -2
  150. package/dist/{LabelvaluerangebarWidget-9S5rVZaS.cjs.map → LabelvaluerangebarWidget-CA_7kTS2.cjs.map} +1 -1
  151. package/dist/{LabelvaluerangebarWidget-D8cbfXFM.js → LabelvaluerangebarWidget-DpJNv9dh.js} +4 -4
  152. package/dist/{LabelvaluerangebarWidget-D8cbfXFM.js.map → LabelvaluerangebarWidget-DpJNv9dh.js.map} +1 -1
  153. package/dist/{Layout-Tf--nruw.js → Layout-B0hvhBQO.js} +2 -2
  154. package/dist/{Layout-Tf--nruw.js.map → Layout-B0hvhBQO.js.map} +1 -1
  155. package/dist/Layout-BLADjt_A.cjs +2 -0
  156. package/dist/{Layout-DuCYyOw4.cjs.map → Layout-BLADjt_A.cjs.map} +1 -1
  157. package/dist/{LedWidget-qH_FthkK.js → LedWidget--4eSxBnn.js} +13 -10
  158. package/dist/LedWidget--4eSxBnn.js.map +1 -0
  159. package/dist/LedWidget-BoZKOBZg.cjs +2 -0
  160. package/dist/LedWidget-BoZKOBZg.cjs.map +1 -0
  161. package/dist/{LimitsbarWidget-B9lAB2RD.js → LimitsbarWidget-BQaumgRt.js} +10 -7
  162. package/dist/LimitsbarWidget-BQaumgRt.js.map +1 -0
  163. package/dist/LimitsbarWidget-CyHbbNx3.cjs +2 -0
  164. package/dist/LimitsbarWidget-CyHbbNx3.cjs.map +1 -0
  165. package/dist/{LimitscolorWidget-c6Qa6su7.js → LimitscolorWidget-BBF9sRtF.js} +2 -2
  166. package/dist/{LimitscolorWidget-c6Qa6su7.js.map → LimitscolorWidget-BBF9sRtF.js.map} +1 -1
  167. package/dist/{LimitscolorWidget-DORhDxRo.cjs → LimitscolorWidget-CsuRoqxm.cjs} +2 -2
  168. package/dist/{LimitscolorWidget-DORhDxRo.cjs.map → LimitscolorWidget-CsuRoqxm.cjs.map} +1 -1
  169. package/dist/{LimitscolumnWidget-C9Uyg7Fh.cjs → LimitscolumnWidget-Cr1qFT8M.cjs} +2 -2
  170. package/dist/{LimitscolumnWidget-C9Uyg7Fh.cjs.map → LimitscolumnWidget-Cr1qFT8M.cjs.map} +1 -1
  171. package/dist/{LimitscolumnWidget-CcLs_443.js → LimitscolumnWidget-DZZtSoXw.js} +2 -2
  172. package/dist/{LimitscolumnWidget-CcLs_443.js.map → LimitscolumnWidget-DZZtSoXw.js.map} +1 -1
  173. package/dist/LinegraphWidget-Cw9vua8K.cjs +2 -0
  174. package/dist/{LinegraphWidget-Bf8DIwEn.cjs.map → LinegraphWidget-Cw9vua8K.cjs.map} +1 -1
  175. package/dist/{LinegraphWidget-BSVYLFo1.js → LinegraphWidget-DTLZmyWs.js} +4 -4
  176. package/dist/{LinegraphWidget-BSVYLFo1.js.map → LinegraphWidget-DTLZmyWs.js.map} +1 -1
  177. package/dist/MatrixbycolumnsWidget-Digh2kY7.cjs +2 -0
  178. package/dist/{MatrixbycolumnsWidget-DpdFzNeP.cjs.map → MatrixbycolumnsWidget-Digh2kY7.cjs.map} +1 -1
  179. package/dist/{MatrixbycolumnsWidget-DXFpZTre.js → MatrixbycolumnsWidget-dpgZz4wR.js} +3 -3
  180. package/dist/{MatrixbycolumnsWidget-DXFpZTre.js.map → MatrixbycolumnsWidget-dpgZz4wR.js.map} +1 -1
  181. package/dist/MicroservicesTab-BQywJ_ya.cjs +2 -0
  182. package/dist/MicroservicesTab-BQywJ_ya.cjs.map +1 -0
  183. package/dist/MicroservicesTab-DbL48MBc.js +219 -0
  184. package/dist/MicroservicesTab-DbL48MBc.js.map +1 -0
  185. package/dist/Openc3Screen-COi4u-9k.cjs +5 -0
  186. package/dist/Openc3Screen-COi4u-9k.cjs.map +1 -0
  187. package/dist/Openc3Screen-CtwGKfq-.js +1690 -0
  188. package/dist/Openc3Screen-CtwGKfq-.js.map +1 -0
  189. package/dist/{OutputDialog-zVPZiZay.js → OutputDialog-B5qHVyck.js} +66 -78
  190. package/dist/OutputDialog-B5qHVyck.js.map +1 -0
  191. package/dist/OutputDialog-CFhG2RY9.cjs +2 -0
  192. package/dist/OutputDialog-CFhG2RY9.cjs.map +1 -0
  193. package/dist/PackagesTab-Bw34RkLc.js +313 -0
  194. package/dist/PackagesTab-Bw34RkLc.js.map +1 -0
  195. package/dist/PackagesTab-DXSowjd4.cjs +2 -0
  196. package/dist/PackagesTab-DXSowjd4.cjs.map +1 -0
  197. package/dist/{PluginsTab-B64OvayB.js → PluginsTab-C9t0-QVm.js} +205 -244
  198. package/dist/PluginsTab-C9t0-QVm.js.map +1 -0
  199. package/dist/PluginsTab-CPaBGJMa.cjs +6 -0
  200. package/dist/PluginsTab-CPaBGJMa.cjs.map +1 -0
  201. package/dist/{ProgressbarWidget-iYGw8-Dc.js → ProgressbarWidget-7cYr8136.js} +2 -2
  202. package/dist/{ProgressbarWidget-iYGw8-Dc.js.map → ProgressbarWidget-7cYr8136.js.map} +1 -1
  203. package/dist/{ProgressbarWidget-fGWa6ipm.cjs → ProgressbarWidget-CdOWGViG.cjs} +2 -2
  204. package/dist/{ProgressbarWidget-fGWa6ipm.cjs.map → ProgressbarWidget-CdOWGViG.cjs.map} +1 -1
  205. package/dist/{RadiobuttonWidget-ZEPJbOp_.cjs → RadiobuttonWidget-5t4ofYx3.cjs} +2 -2
  206. package/dist/{RadiobuttonWidget-ZEPJbOp_.cjs.map → RadiobuttonWidget-5t4ofYx3.cjs.map} +1 -1
  207. package/dist/{RadiobuttonWidget-ytmoVZ3u.js → RadiobuttonWidget-DTfn-7F2.js} +2 -2
  208. package/dist/{RadiobuttonWidget-ytmoVZ3u.js.map → RadiobuttonWidget-DTfn-7F2.js.map} +1 -1
  209. package/dist/{RadiogroupWidget-CusMBhKH.js → RadiogroupWidget-DWvTpw94.js} +2 -2
  210. package/dist/{RadiogroupWidget-CusMBhKH.js.map → RadiogroupWidget-DWvTpw94.js.map} +1 -1
  211. package/dist/{RadiogroupWidget-EK4rEGUC.cjs → RadiogroupWidget-emxyymRZ.cjs} +2 -2
  212. package/dist/{RadiogroupWidget-EK4rEGUC.cjs.map → RadiogroupWidget-emxyymRZ.cjs.map} +1 -1
  213. package/dist/{RangebarWidget-D_zGTtCa.js → RangebarWidget-CG2Y7eYp.js} +2 -2
  214. package/dist/{RangebarWidget-D_zGTtCa.js.map → RangebarWidget-CG2Y7eYp.js.map} +1 -1
  215. package/dist/{RangebarWidget-DwIs-L5k.cjs → RangebarWidget-CLMKfbiT.cjs} +2 -2
  216. package/dist/{RangebarWidget-DwIs-L5k.cjs.map → RangebarWidget-CLMKfbiT.cjs.map} +1 -1
  217. package/dist/{RedisTab-CyPo6ADN.js → RedisTab-CvPLS0Qe.js} +13 -13
  218. package/dist/{RedisTab-CyPo6ADN.js.map → RedisTab-CvPLS0Qe.js.map} +1 -1
  219. package/dist/RedisTab-PbizvHjY.cjs +2 -0
  220. package/dist/{RedisTab-67UcKoPf.cjs.map → RedisTab-PbizvHjY.cjs.map} +1 -1
  221. package/dist/{RollupWidget-Dolsixyt.js → RollupWidget-C6HKTfCR.js} +2 -2
  222. package/dist/{RollupWidget-Dolsixyt.js.map → RollupWidget-C6HKTfCR.js.map} +1 -1
  223. package/dist/{RollupWidget-DC3OIP6G.cjs → RollupWidget-CHKUdXMx.cjs} +2 -2
  224. package/dist/{RollupWidget-DC3OIP6G.cjs.map → RollupWidget-CHKUdXMx.cjs.map} +1 -1
  225. package/dist/RoutersTab-D-ex_yMO.js +85 -0
  226. package/dist/RoutersTab-D-ex_yMO.js.map +1 -0
  227. package/dist/RoutersTab-zkaML-Xt.cjs +2 -0
  228. package/dist/RoutersTab-zkaML-Xt.cjs.map +1 -0
  229. package/dist/ScriptChooser-Dkf84RzQ.cjs +2 -0
  230. package/dist/ScriptChooser-Dkf84RzQ.cjs.map +1 -0
  231. package/dist/ScriptChooser-qiC2xQ_W.js +176 -0
  232. package/dist/ScriptChooser-qiC2xQ_W.js.map +1 -0
  233. package/dist/{ScrollwindowWidget-BWeqSUPc.cjs → ScrollwindowWidget-CVc9EXW2.cjs} +2 -2
  234. package/dist/{ScrollwindowWidget-BWeqSUPc.cjs.map → ScrollwindowWidget-CVc9EXW2.cjs.map} +1 -1
  235. package/dist/{ScrollwindowWidget-DV2nZuNi.js → ScrollwindowWidget-DvhBCYd2.js} +3 -3
  236. package/dist/{ScrollwindowWidget-DV2nZuNi.js.map → ScrollwindowWidget-DvhBCYd2.js.map} +1 -1
  237. package/dist/{SecretsTab-DVyyyGlG.js → SecretsTab-CLkJfzf-.js} +39 -49
  238. package/dist/SecretsTab-CLkJfzf-.js.map +1 -0
  239. package/dist/SecretsTab-Clw9ErBz.cjs +2 -0
  240. package/dist/SecretsTab-Clw9ErBz.cjs.map +1 -0
  241. package/dist/SettingsTab-BJ9mrQ8U.cjs +3 -0
  242. package/dist/{SettingsTab-B1LvOLG2.cjs.map → SettingsTab-BJ9mrQ8U.cjs.map} +1 -1
  243. package/dist/{SettingsTab-g29K6FyC.js → SettingsTab-CysOMBFu.js} +3 -3
  244. package/dist/{SettingsTab-g29K6FyC.js.map → SettingsTab-CysOMBFu.js.map} +1 -1
  245. package/dist/{SignalWidget-d9-6h85k.js → SignalWidget-BZIoGjam.js} +16 -18
  246. package/dist/SignalWidget-BZIoGjam.js.map +1 -0
  247. package/dist/{SignalWidget-RvRwpE8T.cjs → SignalWidget-DpNUpQNW.cjs} +2 -2
  248. package/dist/SignalWidget-DpNUpQNW.cjs.map +1 -0
  249. package/dist/SimpleTextDialog-CGStqYvO.js +97 -0
  250. package/dist/SimpleTextDialog-CGStqYvO.js.map +1 -0
  251. package/dist/SimpleTextDialog-P2KPhVHq.cjs +2 -0
  252. package/dist/SimpleTextDialog-P2KPhVHq.cjs.map +1 -0
  253. package/dist/{SpacerWidget-7_8bpLCb.cjs → SpacerWidget-CHuv4qDR.cjs} +2 -2
  254. package/dist/{SpacerWidget-7_8bpLCb.cjs.map → SpacerWidget-CHuv4qDR.cjs.map} +1 -1
  255. package/dist/{SpacerWidget-BH0p2OLi.js → SpacerWidget-YBS8RZIE.js} +2 -2
  256. package/dist/{SpacerWidget-BH0p2OLi.js.map → SpacerWidget-YBS8RZIE.js.map} +1 -1
  257. package/dist/{SparklineWidget-coxi9r2g.js → SparklineWidget-BMhY9vYe.js} +4 -4
  258. package/dist/{SparklineWidget-coxi9r2g.js.map → SparklineWidget-BMhY9vYe.js.map} +1 -1
  259. package/dist/SparklineWidget-qWQGTMwn.cjs +2 -0
  260. package/dist/{SparklineWidget-60jVlbHA.cjs.map → SparklineWidget-qWQGTMwn.cjs.map} +1 -1
  261. package/dist/{TabbookWidget-D1CVT9IK.cjs → TabbookWidget-C4jdzkQl.cjs} +2 -2
  262. package/dist/{TabbookWidget-D1CVT9IK.cjs.map → TabbookWidget-C4jdzkQl.cjs.map} +1 -1
  263. package/dist/{TabbookWidget-B1XKplGH.js → TabbookWidget-RfET19pq.js} +2 -2
  264. package/dist/{TabbookWidget-B1XKplGH.js.map → TabbookWidget-RfET19pq.js.map} +1 -1
  265. package/dist/TargetsTab-CVZR_Bp6.cjs +2 -0
  266. package/dist/TargetsTab-CVZR_Bp6.cjs.map +1 -0
  267. package/dist/TargetsTab-CfBt-dZW.js +117 -0
  268. package/dist/TargetsTab-CfBt-dZW.js.map +1 -0
  269. package/dist/TextBoxDialog-C60jmnyN.js +98 -0
  270. package/dist/TextBoxDialog-C60jmnyN.js.map +1 -0
  271. package/dist/TextBoxDialog-DWt30tB8.cjs +2 -0
  272. package/dist/TextBoxDialog-DWt30tB8.cjs.map +1 -0
  273. package/dist/TextboxWidget-Cm7-yWTZ.cjs +2 -0
  274. package/dist/{TextboxWidget-BDG4NxRw.cjs.map → TextboxWidget-Cm7-yWTZ.cjs.map} +1 -1
  275. package/dist/{TextboxWidget-C-_M2M4l.js → TextboxWidget-M8vFBSxS.js} +4 -4
  276. package/dist/{TextboxWidget-C-_M2M4l.js.map → TextboxWidget-M8vFBSxS.js.map} +1 -1
  277. package/dist/{TextfieldWidget-BGJv9Lox.cjs → TextfieldWidget-Bfk2NPtC.cjs} +2 -2
  278. package/dist/{TextfieldWidget-BGJv9Lox.cjs.map → TextfieldWidget-Bfk2NPtC.cjs.map} +1 -1
  279. package/dist/{TextfieldWidget-C08N4JE8.js → TextfieldWidget-Dev7lCsT.js} +2 -2
  280. package/dist/{TextfieldWidget-C08N4JE8.js.map → TextfieldWidget-Dev7lCsT.js.map} +1 -1
  281. package/dist/{TimeWidget-CGCOIouj.cjs → TimeWidget-BqkZJdg7.cjs} +2 -2
  282. package/dist/{TimeWidget-CGCOIouj.cjs.map → TimeWidget-BqkZJdg7.cjs.map} +1 -1
  283. package/dist/{TimeWidget-DtwdEcFg.js → TimeWidget-CQzn13rQ.js} +3 -3
  284. package/dist/{TimeWidget-DtwdEcFg.js.map → TimeWidget-CQzn13rQ.js.map} +1 -1
  285. package/dist/{TitleWidget-CT-aLcNb.js → TitleWidget-C4zbSian.js} +2 -2
  286. package/dist/{TitleWidget-CT-aLcNb.js.map → TitleWidget-C4zbSian.js.map} +1 -1
  287. package/dist/{TitleWidget-BljFH9RB.cjs → TitleWidget-DW0hJ0FE.cjs} +2 -2
  288. package/dist/{TitleWidget-BljFH9RB.cjs.map → TitleWidget-DW0hJ0FE.cjs.map} +1 -1
  289. package/dist/ToolsTab-CKeFb94Y.cjs +7 -0
  290. package/dist/{ToolsTab-RMTst_Sy.cjs.map → ToolsTab-CKeFb94Y.cjs.map} +1 -1
  291. package/dist/ToolsTab-CnhhRS3J.js +1501 -0
  292. package/dist/{ToolsTab-NveeVXz2.js.map → ToolsTab-CnhhRS3J.js.map} +1 -1
  293. package/dist/TopBar-4zZ-wYMY.cjs +2 -0
  294. package/dist/TopBar-4zZ-wYMY.cjs.map +1 -0
  295. package/dist/{TopBar-CnJNNJlV.js → TopBar-BQhv8Jcc.js} +68 -64
  296. package/dist/TopBar-BQhv8Jcc.js.map +1 -0
  297. package/dist/UpgradeToEnterpriseDialog-C0MA3Uc-.cjs +2 -0
  298. package/dist/UpgradeToEnterpriseDialog-C0MA3Uc-.cjs.map +1 -0
  299. package/dist/UpgradeToEnterpriseDialog-c6twungI.js +95 -0
  300. package/dist/UpgradeToEnterpriseDialog-c6twungI.js.map +1 -0
  301. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Bowkx8lp.cjs +1497 -0
  302. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Bowkx8lp.cjs.map +1 -0
  303. package/dist/{WidgetComponents-C1lSLZ0I.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CVrrWDJ_.js} +10558 -10519
  304. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CVrrWDJ_.js.map +1 -0
  305. package/dist/{VWidget-DQqb7NVW.js → VWidget-iASFPjdx.js} +3 -3
  306. package/dist/{VWidget-DQqb7NVW.js.map → VWidget-iASFPjdx.js.map} +1 -1
  307. package/dist/{VWidget-2N2cOosI.cjs → VWidget-iTwRH6Qq.cjs} +2 -2
  308. package/dist/{VWidget-2N2cOosI.cjs.map → VWidget-iTwRH6Qq.cjs.map} +1 -1
  309. package/dist/{ValueWidget-C6RanBj3.js → ValueWidget-BVI6uUVX.js} +16 -14
  310. package/dist/ValueWidget-BVI6uUVX.js.map +1 -0
  311. package/dist/ValueWidget-CPuSUgn9.cjs +2 -0
  312. package/dist/ValueWidget-CPuSUgn9.cjs.map +1 -0
  313. package/dist/{ValuelimitsbarWidget-B3bvjfxc.js → ValuelimitsbarWidget-BiIcery0.js} +4 -4
  314. package/dist/{ValuelimitsbarWidget-B3bvjfxc.js.map → ValuelimitsbarWidget-BiIcery0.js.map} +1 -1
  315. package/dist/{ValuelimitsbarWidget-C0HROxrb.cjs → ValuelimitsbarWidget-CNdyobcf.cjs} +2 -2
  316. package/dist/{ValuelimitsbarWidget-C0HROxrb.cjs.map → ValuelimitsbarWidget-CNdyobcf.cjs.map} +1 -1
  317. package/dist/{ValuelimitscolumnWidget-QvhI6EcE.js → ValuelimitscolumnWidget-BiRI8GbI.js} +4 -4
  318. package/dist/{ValuelimitscolumnWidget-QvhI6EcE.js.map → ValuelimitscolumnWidget-BiRI8GbI.js.map} +1 -1
  319. package/dist/{ValuelimitscolumnWidget-CWvLfg8u.cjs → ValuelimitscolumnWidget-Db0K4OjQ.cjs} +2 -2
  320. package/dist/{ValuelimitscolumnWidget-CWvLfg8u.cjs.map → ValuelimitscolumnWidget-Db0K4OjQ.cjs.map} +1 -1
  321. package/dist/{ValuerangebarWidget-Dt3K9BnC.js → ValuerangebarWidget-CtMFQu9-.js} +4 -4
  322. package/dist/{ValuerangebarWidget-Dt3K9BnC.js.map → ValuerangebarWidget-CtMFQu9-.js.map} +1 -1
  323. package/dist/{ValuerangebarWidget-DyN78cQl.cjs → ValuerangebarWidget-DAEr-D_E.cjs} +2 -2
  324. package/dist/{ValuerangebarWidget-DyN78cQl.cjs.map → ValuerangebarWidget-DAEr-D_E.cjs.map} +1 -1
  325. package/dist/{VerticalWidget-BIIViZgI.js → VerticalWidget-CRmcpQBn.js} +2 -2
  326. package/dist/{VerticalWidget-BIIViZgI.js.map → VerticalWidget-CRmcpQBn.js.map} +1 -1
  327. package/dist/{VerticalWidget-CFTOu4H8.cjs → VerticalWidget-YG3auPJa.cjs} +2 -2
  328. package/dist/{VerticalWidget-CFTOu4H8.cjs.map → VerticalWidget-YG3auPJa.cjs.map} +1 -1
  329. package/dist/{VerticalboxWidget-DY72fLHW.js → VerticalboxWidget-C-qChjug.js} +5 -5
  330. package/dist/{VerticalboxWidget-DY72fLHW.js.map → VerticalboxWidget-C-qChjug.js.map} +1 -1
  331. package/dist/{VerticalboxWidget-Z8-DWI8t.cjs → VerticalboxWidget-DX8-gFay.cjs} +2 -2
  332. package/dist/{VerticalboxWidget-Z8-DWI8t.cjs.map → VerticalboxWidget-DX8-gFay.cjs.map} +1 -1
  333. package/dist/{Widget-oyqWpFXJ.js → Widget-CFEnOKms.js} +3 -3
  334. package/dist/Widget-CFEnOKms.js.map +1 -0
  335. package/dist/Widget-EsyLQi_8.cjs +2 -0
  336. package/dist/Widget-EsyLQi_8.cjs.map +1 -0
  337. package/dist/components.cjs +3 -3
  338. package/dist/components.cjs.map +1 -1
  339. package/dist/components.js +285 -318
  340. package/dist/components.js.map +1 -1
  341. package/dist/index-DcL65Mqb.cjs +7 -0
  342. package/dist/index-DcL65Mqb.cjs.map +1 -0
  343. package/dist/{index-DwP8ryNM.js → index-qCq0L4jN.js} +332 -323
  344. package/dist/index-qCq0L4jN.js.map +1 -0
  345. package/dist/plugins.cjs +2 -2
  346. package/dist/plugins.cjs.map +1 -1
  347. package/dist/plugins.js +94 -89
  348. package/dist/plugins.js.map +1 -1
  349. package/dist/{timeFilters-CRYpYDdf.js → timeFilters-BKnCM4rv.js} +139 -136
  350. package/dist/{timeFilters-CRYpYDdf.js.map → timeFilters-BKnCM4rv.js.map} +1 -1
  351. package/dist/timeFilters-CJFxfjqN.cjs +2 -0
  352. package/dist/{timeFilters-8SaYvcH0.cjs.map → timeFilters-CJFxfjqN.cjs.map} +1 -1
  353. package/dist/tools/admin.cjs +10 -10
  354. package/dist/tools/admin.cjs.map +1 -1
  355. package/dist/tools/admin.js +380 -406
  356. package/dist/tools/admin.js.map +1 -1
  357. package/dist/tools/base.cjs +1 -1
  358. package/dist/tools/base.cjs.map +1 -1
  359. package/dist/tools/base.js +212 -215
  360. package/dist/tools/base.js.map +1 -1
  361. package/dist/tools/calendar.cjs +1 -1
  362. package/dist/tools/calendar.js +1 -1
  363. package/dist/tools/scriptrunner.cjs +7 -8
  364. package/dist/tools/scriptrunner.cjs.map +1 -1
  365. package/dist/tools/scriptrunner.js +2021 -2011
  366. package/dist/tools/scriptrunner.js.map +1 -1
  367. package/dist/util.cjs +1 -1
  368. package/dist/util.js +1 -1
  369. package/dist/vue-common.css +1 -1
  370. package/dist/widgets.cjs +1 -1
  371. package/dist/widgets.js +63 -63
  372. package/package.json +12 -12
  373. package/dist/ArrayplotWidget-COeaK_Lz.cjs +0 -2
  374. package/dist/BarColumn-CJLW1nXy.cjs +0 -2
  375. package/dist/ButtonWidget-HN8UHsme.cjs +0 -3
  376. package/dist/CriticalCmdDialog-BnxZlt7W.cjs +0 -2
  377. package/dist/CriticalCmdDialog-BnxZlt7W.cjs.map +0 -1
  378. package/dist/CriticalCmdDialog-DPIZOBeP.js.map +0 -1
  379. package/dist/DetailsDialog-DmEC5BTs.js.map +0 -1
  380. package/dist/DetailsDialog-mvxMFmgV.cjs +0 -2
  381. package/dist/DetailsDialog-mvxMFmgV.cjs.map +0 -1
  382. package/dist/EventListDialog-BHZLl28V.cjs +0 -2
  383. package/dist/EventListDialog-BHZLl28V.cjs.map +0 -1
  384. package/dist/EventListDialog-CSMSmCIT.js.map +0 -1
  385. package/dist/FormatvalueWidget-CdjCEAI7.cjs +0 -2
  386. package/dist/FormatvalueWidget-CdjCEAI7.cjs.map +0 -1
  387. package/dist/FormatvalueWidget-DN12xymS.js +0 -44
  388. package/dist/FormatvalueWidget-DN12xymS.js.map +0 -1
  389. package/dist/Graph-Bgo0cjl3.js.map +0 -1
  390. package/dist/Graph-Ujd2yaeI.cjs +0 -2
  391. package/dist/Graph-Ujd2yaeI.cjs.map +0 -1
  392. package/dist/ImageLoader-cRmBcpU9.cjs +0 -2
  393. package/dist/InterfacesTab-B4glsR9Z.js +0 -93
  394. package/dist/InterfacesTab-B4glsR9Z.js.map +0 -1
  395. package/dist/InterfacesTab-Co1Kd6Fa.cjs +0 -2
  396. package/dist/InterfacesTab-Co1Kd6Fa.cjs.map +0 -1
  397. package/dist/LabelvaluedescWidget-I6ljK--Y.cjs +0 -2
  398. package/dist/Layout-DuCYyOw4.cjs +0 -2
  399. package/dist/LedWidget-B2BcwiYF.cjs +0 -2
  400. package/dist/LedWidget-B2BcwiYF.cjs.map +0 -1
  401. package/dist/LedWidget-qH_FthkK.js.map +0 -1
  402. package/dist/LimitsbarWidget-B9lAB2RD.js.map +0 -1
  403. package/dist/LimitsbarWidget-CVCLFIhG.cjs +0 -2
  404. package/dist/LimitsbarWidget-CVCLFIhG.cjs.map +0 -1
  405. package/dist/LinegraphWidget-Bf8DIwEn.cjs +0 -2
  406. package/dist/MatrixbycolumnsWidget-DpdFzNeP.cjs +0 -2
  407. package/dist/MicroservicesTab-B5n-mN8G.cjs +0 -2
  408. package/dist/MicroservicesTab-B5n-mN8G.cjs.map +0 -1
  409. package/dist/MicroservicesTab-mCdS0v39.js +0 -264
  410. package/dist/MicroservicesTab-mCdS0v39.js.map +0 -1
  411. package/dist/Openc3Screen-BYhHaH_I.cjs +0 -5
  412. package/dist/Openc3Screen-BYhHaH_I.cjs.map +0 -1
  413. package/dist/Openc3Screen-Cud0OCFu.js +0 -1789
  414. package/dist/Openc3Screen-Cud0OCFu.js.map +0 -1
  415. package/dist/OutputDialog-DXoL9VPw.cjs +0 -2
  416. package/dist/OutputDialog-DXoL9VPw.cjs.map +0 -1
  417. package/dist/OutputDialog-zVPZiZay.js.map +0 -1
  418. package/dist/PackagesTab-CvT2JyMA.cjs +0 -2
  419. package/dist/PackagesTab-CvT2JyMA.cjs.map +0 -1
  420. package/dist/PackagesTab-SWcXumpK.js +0 -332
  421. package/dist/PackagesTab-SWcXumpK.js.map +0 -1
  422. package/dist/PluginsTab-B64OvayB.js.map +0 -1
  423. package/dist/PluginsTab-CfpwWsqv.cjs +0 -6
  424. package/dist/PluginsTab-CfpwWsqv.cjs.map +0 -1
  425. package/dist/RedisTab-67UcKoPf.cjs +0 -2
  426. package/dist/RoutersTab-BBPlFi_z.cjs +0 -2
  427. package/dist/RoutersTab-BBPlFi_z.cjs.map +0 -1
  428. package/dist/RoutersTab-Cs2dFVNA.js +0 -95
  429. package/dist/RoutersTab-Cs2dFVNA.js.map +0 -1
  430. package/dist/ScriptChooser-EV65rbWx.js +0 -199
  431. package/dist/ScriptChooser-EV65rbWx.js.map +0 -1
  432. package/dist/ScriptChooser-vyZwngrz.cjs +0 -2
  433. package/dist/ScriptChooser-vyZwngrz.cjs.map +0 -1
  434. package/dist/SecretsTab-0IFqUxNJ.cjs +0 -2
  435. package/dist/SecretsTab-0IFqUxNJ.cjs.map +0 -1
  436. package/dist/SecretsTab-DVyyyGlG.js.map +0 -1
  437. package/dist/SettingsTab-B1LvOLG2.cjs +0 -3
  438. package/dist/SignalWidget-RvRwpE8T.cjs.map +0 -1
  439. package/dist/SignalWidget-d9-6h85k.js.map +0 -1
  440. package/dist/SimpleTextDialog-Cpbt7Q-8.cjs +0 -2
  441. package/dist/SimpleTextDialog-Cpbt7Q-8.cjs.map +0 -1
  442. package/dist/SimpleTextDialog-pwN8oRy1.js +0 -107
  443. package/dist/SimpleTextDialog-pwN8oRy1.js.map +0 -1
  444. package/dist/SparklineWidget-60jVlbHA.cjs +0 -2
  445. package/dist/TargetsTab-BkBkXn9A.js +0 -129
  446. package/dist/TargetsTab-BkBkXn9A.js.map +0 -1
  447. package/dist/TargetsTab-C-m26Eqq.cjs +0 -2
  448. package/dist/TargetsTab-C-m26Eqq.cjs.map +0 -1
  449. package/dist/TextBoxDialog-DOJ5d2RM.js +0 -110
  450. package/dist/TextBoxDialog-DOJ5d2RM.js.map +0 -1
  451. package/dist/TextBoxDialog-DfMXg_5C.cjs +0 -2
  452. package/dist/TextBoxDialog-DfMXg_5C.cjs.map +0 -1
  453. package/dist/TextboxWidget-BDG4NxRw.cjs +0 -2
  454. package/dist/ToolsTab-NveeVXz2.js +0 -1521
  455. package/dist/ToolsTab-RMTst_Sy.cjs +0 -7
  456. package/dist/TopBar-CnJNNJlV.js.map +0 -1
  457. package/dist/TopBar-Cnmb6DyC.cjs +0 -2
  458. package/dist/TopBar-Cnmb6DyC.cjs.map +0 -1
  459. package/dist/UpgradeToEnterpriseDialog-BvfgoNB1.js +0 -94
  460. package/dist/UpgradeToEnterpriseDialog-BvfgoNB1.js.map +0 -1
  461. package/dist/UpgradeToEnterpriseDialog-sUipOVpB.cjs +0 -2
  462. package/dist/UpgradeToEnterpriseDialog-sUipOVpB.cjs.map +0 -1
  463. package/dist/ValueWidget-C6RanBj3.js.map +0 -1
  464. package/dist/ValueWidget-Cu7hgKja.cjs +0 -2
  465. package/dist/ValueWidget-Cu7hgKja.cjs.map +0 -1
  466. package/dist/Widget-ChoIB2dd.cjs +0 -2
  467. package/dist/Widget-ChoIB2dd.cjs.map +0 -1
  468. package/dist/Widget-oyqWpFXJ.js.map +0 -1
  469. package/dist/WidgetComponents-C1lSLZ0I.js.map +0 -1
  470. package/dist/WidgetComponents-utpQ592X.cjs +0 -1493
  471. package/dist/WidgetComponents-utpQ592X.cjs.map +0 -1
  472. package/dist/index-BX05anye.cjs +0 -7
  473. package/dist/index-BX05anye.cjs.map +0 -1
  474. package/dist/index-DwP8ryNM.js.map +0 -1
  475. package/dist/timeFilters-8SaYvcH0.cjs +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginsTab-C9t0-QVm.js","sources":["../src/tools/admin/tabs/PluginsTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, 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>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install New Plugin</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n &nbsp;Note: Use <v-icon>mdi-update</v-icon> to upgrade existing plugins\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-row no-gutters class=\"px-2\">\n <v-col>\n <v-checkbox\n v-model=\"showDefaultTools\"\n label=\"Show Default Tools\"\n class=\"mt-0\"\n data-test=\"show-default-tools\"\n />\n </v-col>\n <v-col align=\"right\" class=\"mr-2\">\n <div>* indicates a modified plugin</div>\n <div>Click target link to download modifications</div>\n </v-col>\n </v-row>\n <v-divider />\n <!-- TODO This alert shows both success and failure. Make consistent with rest of OpenC3. -->\n <v-alert\n v-model=\"showAlert\"\n closable\n :type=\"alertType\"\n data-test=\"plugin-alert\"\n >{{ alert }}</v-alert\n >\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\"\n ><v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template #append>\n <v-progress-circular\n v-if=\"process.state === 'Running'\"\n indeterminate\n color=\"primary\"\n />\n <v-tooltip v-else :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n data-test=\"show-output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"plugin-list\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Plugin List</v-col></v-row>\n <div v-for=\"(plugin, index) in shownPlugins\" :key=\"index\">\n <v-list-item data-test=\"plugin-list-item\">\n <v-list-item-title\n ><span v-if=\"isModified(plugin)\">* </span\n >{{ plugin }}</v-list-item-title\n >\n <v-list-item-subtitle v-if=\"pluginTargets(plugin).length !== 0\">\n <span\n v-for=\"(target, index) in pluginTargets(plugin)\"\n :key=\"index\"\n class=\"mr-2\"\n >\n <a\n v-if=\"target.modified\"\n @click.prevent=\"downloadTarget(target.name)\"\n >{{ target.name }}\n </a>\n <span v-else>{{ target.name }} </span>\n </span>\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n aria-label=\"Download Plugin\"\n data-test=\"download-plugin\"\n @click=\"downloadPlugin(plugin)\"\n />\n <v-btn\n icon=\"mdi-pencil\"\n variant=\"text\"\n aria-label=\"Edit Plugin\"\n data-test=\"edit-plugin\"\n @click=\"editPlugin(plugin)\"\n />\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-update\"\n variant=\"text\"\n aria-label=\"Upgrade Plugin\"\n data-test=\"upgrade-plugin\"\n @click=\"upgradePlugin(plugin)\"\n />\n </template>\n <span>Upgrade Plugin</span>\n </v-tooltip>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Plugin\"\n data-test=\"delete-plugin\"\n @click=\"deletePrompt(plugin)\"\n />\n </template>\n </v-list-item>\n <v-divider v-if=\"index < plugins.length - 1\" :key=\"index\" />\n </div>\n </v-list>\n <plugin-dialog\n v-if=\"showPluginDialog\"\n v-model=\"showPluginDialog\"\n :plugin-name=\"pluginName\"\n :variables=\"variables\"\n :plugin-txt=\"pluginTxt\"\n :existing-plugin-txt=\"existingPluginTxt\"\n @callback=\"pluginCallback\"\n />\n <modified-plugin-dialog\n v-if=\"showModifiedPluginDialog\"\n v-model=\"showModifiedPluginDialog\"\n :plugin-name=\"currentPlugin\"\n :targets=\"pluginTargets(currentPlugin)\"\n :plugin-delete=\"pluginDelete\"\n @submit=\"modifiedSubmit\"\n />\n <!-- <download-dialog v-model=\"showDownloadDialog\" /> -->\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { ModifiedPluginDialog, PluginDialog } from '@/tools/admin'\n\nexport default {\n components: {\n PluginDialog,\n ModifiedPluginDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n file: null,\n currentPlugin: null,\n plugins: [],\n targets: [],\n processes: {},\n alert: '',\n alertType: 'success',\n showAlert: false,\n pluginName: null,\n variables: {},\n pluginTxt: '',\n pluginHashTmp: null,\n existingPluginTxt: null,\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n showPluginDialog: false,\n showModifiedPluginDialog: false,\n showDefaultTools: false,\n progress: 0,\n pluginDelete: false,\n // When updating update local_mode.rb, local_mode.py, plugins.spec.ts\n defaultPlugins: [\n 'openc3-cosmos-tool-admin',\n 'openc3-cosmos-tool-bucketexplorer',\n 'openc3-cosmos-tool-cmdsender',\n 'openc3-cosmos-tool-cmdhistory', // Enterprise only\n 'openc3-cosmos-tool-cmdtlmserver',\n 'openc3-cosmos-tool-dataextractor',\n 'openc3-cosmos-tool-dataviewer',\n 'openc3-cosmos-tool-docs',\n 'openc3-cosmos-tool-handbooks',\n 'openc3-cosmos-tool-iframe',\n 'openc3-cosmos-tool-limitsmonitor',\n 'openc3-cosmos-tool-packetviewer',\n 'openc3-cosmos-tool-scriptrunner',\n 'openc3-cosmos-tool-tablemanager',\n 'openc3-cosmos-tool-tlmgrapher',\n 'openc3-cosmos-tool-tlmviewer',\n 'openc3-cosmos-enterprise-tool-admin', // Enterprise only\n 'openc3-cosmos-tool-autonomic', // Enterprise only\n 'openc3-cosmos-tool-calendar', // Enterprise only\n 'openc3-cosmos-tool-grafana', // Enterprise only\n 'openc3-enterprise-tool-base', // Enterprise only\n 'openc3-tool-base',\n ],\n }\n },\n computed: {\n shownPlugins() {\n let result = []\n for (let plugin of this.plugins) {\n let pluginNameFirst = plugin.split('__')[0]\n let pluginNameSplit = pluginNameFirst.split('-')\n pluginNameSplit = pluginNameSplit.slice(0, -1)\n let pluginName = pluginNameSplit.join('-')\n if (\n !this.defaultPlugins.includes(pluginName) ||\n this.showDefaultTools\n ) {\n result.push(plugin)\n }\n }\n return result\n },\n pluginTargets() {\n return (plugin) => {\n let result = []\n for (const target in this.targets) {\n if (this.targets[target]['plugin'] === plugin) {\n result.push(this.targets[target])\n }\n }\n return result\n }\n },\n isModified() {\n return (plugin) => {\n let result = false\n for (const target in this.targets) {\n if (\n this.targets[target]['plugin'] === plugin &&\n this.targets[target]['modified'] === true\n ) {\n result = true\n break\n }\n }\n return result\n }\n },\n },\n watch: {\n // watcher to reset the file input when the dialog is closed\n showPluginDialog: function (newValue, oldValue) {\n if (newValue === false) {\n this.file = null\n this.$refs.fileInput.value = null\n }\n },\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update: function () {\n Api.get('/openc3-api/plugins').then((response) => {\n this.plugins = response.data\n })\n Api.get('/openc3-api/targets_modified').then((response) => {\n this.targets = response.data\n })\n },\n updateProcesses: function () {\n Api.get('openc3-api/process_status/plugin_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 5000)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n upload: function (existing = null) {\n const method = existing ? 'put' : 'post'\n const path = existing\n ? `/openc3-api/plugins/${existing}`\n : '/openc3-api/plugins'\n const formData = new FormData()\n formData.append('plugin', this.file, this.file.name)\n let self = this\n const promise = Api[method](path, {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n promise\n .then((response) => {\n this.progress = 100\n this.alert = 'Uploaded file'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n let existingPluginTxt = null\n if (response.data.existing_plugin_txt_lines !== undefined) {\n existingPluginTxt =\n response.data.existing_plugin_txt_lines.join('\\n')\n }\n let pluginTxt = response.data.plugin_txt_lines.join('\\n')\n ;(this.pluginName = response.data.name),\n (this.variables = response.data.variables),\n (this.pluginTxt = pluginTxt),\n (this.existingPluginTxt = existingPluginTxt)\n this.showPluginDialog = true\n this.file = undefined\n })\n .catch((error) => {\n this.currentPlugin = null\n this.file = undefined\n })\n },\n pluginCallback: function (pluginHash) {\n this.showPluginDialog = false\n if (this.currentPlugin !== null) {\n pluginHash['name'] = this.currentPlugin\n }\n this.pluginHashTmp = pluginHash\n if (this.isModified(this.currentPlugin)) {\n this.pluginDelete = false\n this.showModifiedPluginDialog = true\n } else {\n this.pluginInstall()\n }\n },\n modifiedSubmit: async function (deleteModified) {\n if (deleteModified === true) {\n for (let target of this.pluginTargets(this.currentPlugin)) {\n if (target.modified == true) {\n await Api.post(`/openc3-api/targets/${target.name}/delete_modified`)\n }\n }\n }\n if (this.pluginDelete) {\n this.deletePlugin(this.currentPlugin)\n } else {\n this.pluginInstall()\n }\n },\n pluginInstall: function () {\n Api.post(`/openc3-api/plugins/install/${this.pluginName}`, {\n data: {\n plugin_hash: JSON.stringify(this.pluginHashTmp),\n },\n }).then((response) => {\n this.alert = `Started installing plugin ${this.pluginName} ...`\n this.alertType = 'success'\n this.showAlert = true\n this.currentPlugin = null\n this.file = undefined\n this.variables = {}\n this.pluginTxt = ''\n this.existingPluginTxt = null\n setTimeout(() => {\n this.showAlert = false\n this.updateProcesses()\n }, 5000)\n this.update()\n })\n },\n downloadTarget: function (name) {\n Api.post(`/openc3-api/targets/${name}/download`).then((response) => {\n // Decode Base64 string\n const decodedData = window.atob(response.data.contents)\n // Create UNIT8ARRAY of size same as row data length\n const uInt8Array = new Uint8Array(decodedData.length)\n // Insert all character code into uInt8Array\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i)\n }\n const blob = new Blob([uInt8Array], { type: 'application/zip' })\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n downloadPlugin: function (plugin) {\n Api.post(`/openc3-api/packages/${plugin}/download`).then((response) => {\n // Decode Base64 string\n const decodedData = window.atob(response.data.contents)\n // Create UNIT8ARRAY of size same as row data length\n const uInt8Array = new Uint8Array(decodedData.length)\n // Insert all character code into uInt8Array\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i)\n }\n const blob = new Blob([uInt8Array], { type: 'application/zip' })\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n editPlugin: function (plugin) {\n Api.get(`/openc3-api/plugins/${plugin}`).then((response) => {\n let existingPluginTxt = null\n if (response.data.existing_plugin_txt_lines !== undefined) {\n existingPluginTxt = response.data.existing_plugin_txt_lines.join('\\n')\n }\n let pluginTxt = response.data.plugin_txt_lines.join('\\n')\n ;(this.pluginName = response.data.name),\n (this.variables = response.data.variables),\n (this.pluginTxt = pluginTxt),\n (this.existingPluginTxt = existingPluginTxt)\n this.showPluginDialog = true\n })\n },\n deletePrompt: function (plugin) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${plugin}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.isModified(plugin)) {\n this.currentPlugin = plugin\n this.pluginDelete = true\n this.showModifiedPluginDialog = true\n } else {\n this.deletePlugin(plugin)\n }\n })\n },\n deletePlugin: function (plugin) {\n this.alert = `Removing plugin ${plugin} ...`\n this.alertType = 'success'\n this.showAlert = true\n Api.delete(`/openc3-api/plugins/${plugin}`).then((response) => {\n setTimeout(() => {\n this.showAlert = false\n this.updateProcesses()\n }, 5000)\n })\n this.update()\n },\n upgradePlugin(plugin) {\n this.file = null\n this.currentPlugin = plugin\n this.progress = 0\n this.$refs.fileInput.click()\n },\n selectFile() {\n this.file = null\n this.currentPlugin = null\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.file = files[0]\n if (this.currentPlugin !== null) {\n if (\n this.file.name.split('.gem')[0] ==\n this.currentPlugin.split('.gem')[0]\n ) {\n this.$dialog\n .confirm(\n `The new gem ${this.file.name} appears to be identical to the existing ${this.currentPlugin}. Install?`,\n {\n okText: 'Ok',\n cancelText: 'Cancel',\n },\n )\n .then(() => {\n this.upload(this.currentPlugin)\n })\n .catch((error) => {\n // do nothing\n })\n } else {\n // Split up the gem name to determine if this is an upgrade\n // or mistakenly trying to install a different gem\n // Gems are named like openc3-cosmos-demo-5.3.2.gem or\n // openc3-cosmos-pw-test-1.0.0.20230213074527.gem\n // So split on - and match everything until the first .\n let parts = this.file.name.split('-')\n let i = parts.findIndex((x) => x.includes('.'))\n let newName = parts.slice(0, i).join('-')\n parts = this.currentPlugin.split('-')\n i = parts.findIndex((x) => x.includes('.'))\n let existingName = parts.slice(0, i).join('-')\n if (newName !== existingName) {\n this.$dialog\n .confirm(\n `The new gem base name ${newName} doesn't match the existing ${existingName}. Install?`,\n {\n okText: 'Ok',\n cancelText: 'Cancel',\n },\n )\n .then(() => {\n this.upload(this.currentPlugin)\n })\n } else {\n this.upload(this.currentPlugin)\n }\n }\n } else {\n this.upload()\n }\n } else {\n // Reset the input element\n this.$refs.fileInput.value = null\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.crashed {\n color: red;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","PluginDialog","ModifiedPluginDialog","SimpleTextDialog","result","plugin","pluginNameSplit","pluginName","target","newValue","oldValue","process","Api","response","nanoSecs","format","toDate","existing","method","path","formData","self","progressEvent","percentCompleted","existingPluginTxt","pluginTxt","error","pluginHash","deleteModified","name","decodedData","uInt8Array","i","blob","link","dialog","event","files","parts","x","newName","existingName","_hoisted_1","_hoisted_2","_hoisted_4","_createElementBlock","_createVNode","_component_v_row","_withCtx","_component_v_col","_component_v_btn","$options","_cache","_createTextVNode","_createElementVNode","args","_component_v_icon","_component_rux_progress","$data","_component_v_checkbox","$event","_component_v_divider","_component_v_alert","_toDisplayString","_createBlock","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_component_v_progress_circular","_component_v_tooltip","props","_mergeProps","_component_v_list_item_title","_normalizeClass","_component_v_list_item_subtitle","_createCommentVNode","index","_hoisted_3","_withModifiers","_hoisted_5","_component_plugin_dialog","_component_modified_plugin_dialog","_component_simple_text_dialog"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Bowkx8lp.cjs"),e=require("vue"),S=require("./CustomIcon-Bop2mEnu.cjs");require("single-spa");const E=require("./SimpleTextDialog-P2KPhVHq.cjs"),k=require("./tools/admin.cjs"),P=require("./format-B22VpiOS.cjs"),O={components:{PluginDialog:k.PluginDialog,ModifiedPluginDialog:k.ModifiedPluginDialog,SimpleTextDialog:E.SimpleTextDialog},data(){return{file:null,currentPlugin:null,plugins:[],targets:[],processes:{},alert:"",alertType:"success",showAlert:!1,pluginName:null,variables:{},pluginTxt:"",pluginHashTmp:null,existingPluginTxt:null,showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",showPluginDialog:!1,showModifiedPluginDialog:!1,showDefaultTools:!1,progress:0,pluginDelete:!1,defaultPlugins:["openc3-cosmos-tool-admin","openc3-cosmos-tool-bucketexplorer","openc3-cosmos-tool-cmdsender","openc3-cosmos-tool-cmdhistory","openc3-cosmos-tool-cmdtlmserver","openc3-cosmos-tool-dataextractor","openc3-cosmos-tool-dataviewer","openc3-cosmos-tool-docs","openc3-cosmos-tool-handbooks","openc3-cosmos-tool-iframe","openc3-cosmos-tool-limitsmonitor","openc3-cosmos-tool-packetviewer","openc3-cosmos-tool-scriptrunner","openc3-cosmos-tool-tablemanager","openc3-cosmos-tool-tlmgrapher","openc3-cosmos-tool-tlmviewer","openc3-cosmos-enterprise-tool-admin","openc3-cosmos-tool-autonomic","openc3-cosmos-tool-calendar","openc3-cosmos-tool-grafana","openc3-enterprise-tool-base","openc3-tool-base"]}},computed:{shownPlugins(){let l=[];for(let t of this.plugins){let r=t.split("__")[0].split("-");r=r.slice(0,-1);let o=r.join("-");(!this.defaultPlugins.includes(o)||this.showDefaultTools)&&l.push(t)}return l},pluginTargets(){return l=>{let t=[];for(const a in this.targets)this.targets[a].plugin===l&&t.push(this.targets[a]);return t}},isModified(){return l=>{let t=!1;for(const a in this.targets)if(this.targets[a].plugin===l&&this.targets[a].modified===!0){t=!0;break}return t}}},watch:{showPluginDialog:function(l,t){l===!1&&(this.file=null,this.$refs.fileInput.value=null)}},mounted(){this.update(),this.updateProcesses()},methods:{showOutput:function(l){this.processOutput=l.output,this.showProcessOutput=!0},update:function(){c.li.get("/openc3-api/plugins").then(l=>{this.plugins=l.data}),c.li.get("/openc3-api/targets_modified").then(l=>{this.targets=l.data})},updateProcesses:function(){c.li.get("openc3-api/process_status/plugin_?substr=true").then(l=>{this.processes=l.data,Object.keys(this.processes).length>0&&setTimeout(()=>{this.updateProcesses(),this.update()},5e3)})},formatDate(l){return P.format(P.toDate(parseInt(l)/1e6),"yyyy-MM-dd HH:mm:ss.SSS")},upload:function(l=null){const t=l?"put":"post",a=l?`/openc3-api/plugins/${l}`:"/openc3-api/plugins",r=new FormData;r.append("plugin",this.file,this.file.name);let o=this;c.li[t](a,{data:r,headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(i){let p=Math.round(i.loaded*100/i.total);o.progress=p}}).then(i=>{this.progress=100,this.alert="Uploaded file",this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3),this.update();let p=null;i.data.existing_plugin_txt_lines!==void 0&&(p=i.data.existing_plugin_txt_lines.join(`
2
+ `));let d=i.data.plugin_txt_lines.join(`
3
+ `);this.pluginName=i.data.name,this.variables=i.data.variables,this.pluginTxt=d,this.existingPluginTxt=p,this.showPluginDialog=!0,this.file=void 0}).catch(i=>{this.currentPlugin=null,this.file=void 0})},pluginCallback:function(l){this.showPluginDialog=!1,this.currentPlugin!==null&&(l.name=this.currentPlugin),this.pluginHashTmp=l,this.isModified(this.currentPlugin)?(this.pluginDelete=!1,this.showModifiedPluginDialog=!0):this.pluginInstall()},modifiedSubmit:async function(l){if(l===!0)for(let t of this.pluginTargets(this.currentPlugin))t.modified==!0&&await c.li.post(`/openc3-api/targets/${t.name}/delete_modified`);this.pluginDelete?this.deletePlugin(this.currentPlugin):this.pluginInstall()},pluginInstall:function(){c.li.post(`/openc3-api/plugins/install/${this.pluginName}`,{data:{plugin_hash:JSON.stringify(this.pluginHashTmp)}}).then(l=>{this.alert=`Started installing plugin ${this.pluginName} ...`,this.alertType="success",this.showAlert=!0,this.currentPlugin=null,this.file=void 0,this.variables={},this.pluginTxt="",this.existingPluginTxt=null,setTimeout(()=>{this.showAlert=!1,this.updateProcesses()},5e3),this.update()})},downloadTarget:function(l){c.li.post(`/openc3-api/targets/${l}/download`).then(t=>{const a=window.atob(t.data.contents),r=new Uint8Array(a.length);for(let i=0;i<a.length;++i)r[i]=a.charCodeAt(i);const o=new Blob([r],{type:"application/zip"}),n=document.createElement("a");n.href=URL.createObjectURL(o),n.setAttribute("download",t.data.filename),n.click()})},downloadPlugin:function(l){c.li.post(`/openc3-api/packages/${l}/download`).then(t=>{const a=window.atob(t.data.contents),r=new Uint8Array(a.length);for(let i=0;i<a.length;++i)r[i]=a.charCodeAt(i);const o=new Blob([r],{type:"application/zip"}),n=document.createElement("a");n.href=URL.createObjectURL(o),n.setAttribute("download",t.data.filename),n.click()})},editPlugin:function(l){c.li.get(`/openc3-api/plugins/${l}`).then(t=>{let a=null;t.data.existing_plugin_txt_lines!==void 0&&(a=t.data.existing_plugin_txt_lines.join(`
4
+ `));let r=t.data.plugin_txt_lines.join(`
5
+ `);this.pluginName=t.data.name,this.variables=t.data.variables,this.pluginTxt=r,this.existingPluginTxt=a,this.showPluginDialog=!0})},deletePrompt:function(l){this.$dialog.confirm(`Are you sure you want to remove: ${l}`,{okText:"Delete",cancelText:"Cancel"}).then(t=>{this.isModified(l)?(this.currentPlugin=l,this.pluginDelete=!0,this.showModifiedPluginDialog=!0):this.deletePlugin(l)})},deletePlugin:function(l){this.alert=`Removing plugin ${l} ...`,this.alertType="success",this.showAlert=!0,c.li.delete(`/openc3-api/plugins/${l}`).then(t=>{setTimeout(()=>{this.showAlert=!1,this.updateProcesses()},5e3)}),this.update()},upgradePlugin(l){this.file=null,this.currentPlugin=l,this.progress=0,this.$refs.fileInput.click()},selectFile(){this.file=null,this.currentPlugin=null,this.progress=0,this.$refs.fileInput.click()},fileChange(l){const t=l.target.files;if(t.length>0)if(this.file=t[0],this.currentPlugin!==null)if(this.file.name.split(".gem")[0]==this.currentPlugin.split(".gem")[0])this.$dialog.confirm(`The new gem ${this.file.name} appears to be identical to the existing ${this.currentPlugin}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}).catch(a=>{});else{let a=this.file.name.split("-"),r=a.findIndex(i=>i.includes(".")),o=a.slice(0,r).join("-");a=this.currentPlugin.split("-"),r=a.findIndex(i=>i.includes("."));let n=a.slice(0,r).join("-");o!==n?this.$dialog.confirm(`The new gem base name ${o} doesn't match the existing ${n}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}):this.upload(this.currentPlugin)}else this.upload();else this.$refs.fileInput.value=null}}},A=["textContent"],I=["textContent"],U={key:0},M=["onClick"],j={key:1};function L(l,t,a,r,o,n){const i=e.resolveComponent("v-btn"),p=e.resolveComponent("v-icon"),d=e.resolveComponent("v-col"),V=e.resolveComponent("rux-progress"),m=e.resolveComponent("v-row"),N=e.resolveComponent("v-checkbox"),h=e.resolveComponent("v-divider"),T=e.resolveComponent("v-alert"),f=e.resolveComponent("v-list-item-title"),x=e.resolveComponent("v-list-item-subtitle"),y=e.resolveComponent("v-progress-circular"),_=e.resolveComponent("v-tooltip"),w=e.resolveComponent("v-list-item"),v=e.resolveComponent("v-list"),b=e.resolveComponent("plugin-dialog"),D=e.resolveComponent("modified-plugin-dialog"),B=e.resolveComponent("simple-text-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(m,{"no-gutters":"",align:"center",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(d,{class:"pa-2 mt-2"},{default:e.withCtx(()=>[e.createVNode(i,{onClick:n.selectFile},{default:e.withCtx(()=>t[6]||(t[6]=[e.createTextVNode("Install New Plugin")])),_:1},8,["onClick"]),e.createElementVNode("input",{ref:"fileInput",style:{display:"none"},type:"file",onChange:t[0]||(t[0]=(...s)=>n.fileChange&&n.fileChange(...s))},null,544),t[8]||(t[8]=e.createTextVNode("  Note: Use ")),e.createVNode(p,null,{default:e.withCtx(()=>t[7]||(t[7]=[e.createTextVNode("mdi-update")])),_:1}),t[9]||(t[9]=e.createTextVNode(" to upgrade existing plugins "))]),_:1}),e.createVNode(d,{class:"ml-4 mr-2",cols:"4"},{default:e.withCtx(()=>[e.createVNode(V,{value:o.progress},null,8,["value"])]),_:1})]),_:1}),e.createVNode(m,{"no-gutters":"",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(N,{modelValue:o.showDefaultTools,"onUpdate:modelValue":t[1]||(t[1]=s=>o.showDefaultTools=s),label:"Show Default Tools",class:"mt-0","data-test":"show-default-tools"},null,8,["modelValue"])]),_:1}),e.createVNode(d,{align:"right",class:"mr-2"},{default:e.withCtx(()=>t[10]||(t[10]=[e.createElementVNode("div",null,"* indicates a modified plugin",-1),e.createElementVNode("div",null,"Click target link to download modifications",-1)])),_:1})]),_:1}),e.createVNode(h),e.createVNode(T,{modelValue:o.showAlert,"onUpdate:modelValue":t[2]||(t[2]=s=>o.showAlert=s),closable:"",type:o.alertType,"data-test":"plugin-alert"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.alert),1)]),_:1},8,["modelValue","type"]),Object.keys(o.processes).length>0?(e.openBlock(),e.createBlock(v,{key:0,class:"list","data-test":"process-list"},{default:e.withCtx(()=>[e.createVNode(m,{"no-gutters":"",class:"px-4"},{default:e.withCtx(()=>[e.createVNode(d,{class:"text-h6"},{default:e.withCtx(()=>t[11]||(t[11]=[e.createTextVNode("Process List")])),_:1}),e.createVNode(d,{align:"right"},{default:e.withCtx(()=>t[12]||(t[12]=[e.createElementVNode("div",null,"Showing last 10 min of activity",-1)])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.processes,s=>(e.openBlock(),e.createElementBlock("div",{key:s.name},[e.createVNode(w,null,{append:e.withCtx(()=>[s.state==="Running"?(e.openBlock(),e.createBlock(y,{key:0,indeterminate:"",color:"primary"})):(e.openBlock(),e.createBlock(_,{key:1,"open-delay":600,location:"top"},{activator:e.withCtx(({props:g})=>[e.createVNode(i,e.mergeProps({ref_for:!0},g,{icon:"mdi-eye",variant:"text","aria-label":"Show Output","data-test":"show-output",onClick:u=>n.showOutput(s)}),null,16,["onClick"])]),default:e.withCtx(()=>[t[13]||(t[13]=e.createElementVNode("span",null,"Show Output",-1))]),_:2},1024))]),default:e.withCtx(()=>[e.createVNode(f,null,{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(s.state.toLowerCase()),textContent:e.toDisplayString(`Processing ${s.process_type}: ${s.detail} - ${s.state}`)},null,10,A)]),_:2},1024),e.createVNode(x,null,{default:e.withCtx(()=>[e.createElementVNode("span",{textContent:e.toDisplayString(" Updated At: "+n.formatDate(s.updated_at))},null,8,I)]),_:2},1024)]),_:2},1024),e.createVNode(h)]))),128))]),_:1})):e.createCommentVNode("",!0),e.createVNode(v,{class:"list","data-test":"plugin-list"},{default:e.withCtx(()=>[e.createVNode(m,{class:"px-4"},{default:e.withCtx(()=>[e.createVNode(d,{class:"text-h6"},{default:e.withCtx(()=>t[14]||(t[14]=[e.createTextVNode("Plugin List")])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.shownPlugins,(s,g)=>(e.openBlock(),e.createElementBlock("div",{key:g},[e.createVNode(w,{"data-test":"plugin-list-item"},{append:e.withCtx(()=>[e.createVNode(i,{icon:"mdi-download",variant:"text","aria-label":"Download Plugin","data-test":"download-plugin",onClick:u=>n.downloadPlugin(s)},null,8,["onClick"]),e.createVNode(i,{icon:"mdi-pencil",variant:"text","aria-label":"Edit Plugin","data-test":"edit-plugin",onClick:u=>n.editPlugin(s)},null,8,["onClick"]),e.createVNode(_,{"open-delay":600,location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(i,e.mergeProps({ref_for:!0},u,{icon:"mdi-update",variant:"text","aria-label":"Upgrade Plugin","data-test":"upgrade-plugin",onClick:C=>n.upgradePlugin(s)}),null,16,["onClick"])]),default:e.withCtx(()=>[t[15]||(t[15]=e.createElementVNode("span",null,"Upgrade Plugin",-1))]),_:2},1024),e.createVNode(i,{icon:"mdi-delete",variant:"text","aria-label":"Delete Plugin","data-test":"delete-plugin",onClick:u=>n.deletePrompt(s)},null,8,["onClick"])]),default:e.withCtx(()=>[e.createVNode(f,null,{default:e.withCtx(()=>[n.isModified(s)?(e.openBlock(),e.createElementBlock("span",U,"* ")):e.createCommentVNode("",!0),e.createTextVNode(e.toDisplayString(s),1)]),_:2},1024),n.pluginTargets(s).length!==0?(e.openBlock(),e.createBlock(x,{key:0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.pluginTargets(s),(u,C)=>(e.openBlock(),e.createElementBlock("span",{key:C,class:"mr-2"},[u.modified?(e.openBlock(),e.createElementBlock("a",{key:0,onClick:e.withModifiers(q=>n.downloadTarget(u.name),["prevent"])},e.toDisplayString(u.name),9,M)):(e.openBlock(),e.createElementBlock("span",j,e.toDisplayString(u.name),1))]))),128))]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1024),g<o.plugins.length-1?(e.openBlock(),e.createBlock(h,{key:g})):e.createCommentVNode("",!0)]))),128))]),_:1}),o.showPluginDialog?(e.openBlock(),e.createBlock(b,{key:1,modelValue:o.showPluginDialog,"onUpdate:modelValue":t[3]||(t[3]=s=>o.showPluginDialog=s),"plugin-name":o.pluginName,variables:o.variables,"plugin-txt":o.pluginTxt,"existing-plugin-txt":o.existingPluginTxt,onCallback:n.pluginCallback},null,8,["modelValue","plugin-name","variables","plugin-txt","existing-plugin-txt","onCallback"])):e.createCommentVNode("",!0),o.showModifiedPluginDialog?(e.openBlock(),e.createBlock(D,{key:2,modelValue:o.showModifiedPluginDialog,"onUpdate:modelValue":t[4]||(t[4]=s=>o.showModifiedPluginDialog=s),"plugin-name":o.currentPlugin,targets:n.pluginTargets(o.currentPlugin),"plugin-delete":o.pluginDelete,onSubmit:n.modifiedSubmit},null,8,["modelValue","plugin-name","targets","plugin-delete","onSubmit"])):e.createCommentVNode("",!0),e.createVNode(B,{modelValue:o.showProcessOutput,"onUpdate:modelValue":t[5]||(t[5]=s=>o.showProcessOutput=s),title:"Process Output",text:o.processOutput},null,8,["modelValue","text"])])}const F=S._export_sfc(O,[["render",L],["__scopeId","data-v-205c6e8a"]]);exports.default=F;
6
+ //# sourceMappingURL=PluginsTab-CPaBGJMa.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginsTab-CPaBGJMa.cjs","sources":["../src/tools/admin/tabs/PluginsTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, 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>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install New Plugin</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n &nbsp;Note: Use <v-icon>mdi-update</v-icon> to upgrade existing plugins\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-row no-gutters class=\"px-2\">\n <v-col>\n <v-checkbox\n v-model=\"showDefaultTools\"\n label=\"Show Default Tools\"\n class=\"mt-0\"\n data-test=\"show-default-tools\"\n />\n </v-col>\n <v-col align=\"right\" class=\"mr-2\">\n <div>* indicates a modified plugin</div>\n <div>Click target link to download modifications</div>\n </v-col>\n </v-row>\n <v-divider />\n <!-- TODO This alert shows both success and failure. Make consistent with rest of OpenC3. -->\n <v-alert\n v-model=\"showAlert\"\n closable\n :type=\"alertType\"\n data-test=\"plugin-alert\"\n >{{ alert }}</v-alert\n >\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\"\n ><v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template #append>\n <v-progress-circular\n v-if=\"process.state === 'Running'\"\n indeterminate\n color=\"primary\"\n />\n <v-tooltip v-else :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n data-test=\"show-output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"plugin-list\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Plugin List</v-col></v-row>\n <div v-for=\"(plugin, index) in shownPlugins\" :key=\"index\">\n <v-list-item data-test=\"plugin-list-item\">\n <v-list-item-title\n ><span v-if=\"isModified(plugin)\">* </span\n >{{ plugin }}</v-list-item-title\n >\n <v-list-item-subtitle v-if=\"pluginTargets(plugin).length !== 0\">\n <span\n v-for=\"(target, index) in pluginTargets(plugin)\"\n :key=\"index\"\n class=\"mr-2\"\n >\n <a\n v-if=\"target.modified\"\n @click.prevent=\"downloadTarget(target.name)\"\n >{{ target.name }}\n </a>\n <span v-else>{{ target.name }} </span>\n </span>\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n aria-label=\"Download Plugin\"\n data-test=\"download-plugin\"\n @click=\"downloadPlugin(plugin)\"\n />\n <v-btn\n icon=\"mdi-pencil\"\n variant=\"text\"\n aria-label=\"Edit Plugin\"\n data-test=\"edit-plugin\"\n @click=\"editPlugin(plugin)\"\n />\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-update\"\n variant=\"text\"\n aria-label=\"Upgrade Plugin\"\n data-test=\"upgrade-plugin\"\n @click=\"upgradePlugin(plugin)\"\n />\n </template>\n <span>Upgrade Plugin</span>\n </v-tooltip>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Plugin\"\n data-test=\"delete-plugin\"\n @click=\"deletePrompt(plugin)\"\n />\n </template>\n </v-list-item>\n <v-divider v-if=\"index < plugins.length - 1\" :key=\"index\" />\n </div>\n </v-list>\n <plugin-dialog\n v-if=\"showPluginDialog\"\n v-model=\"showPluginDialog\"\n :plugin-name=\"pluginName\"\n :variables=\"variables\"\n :plugin-txt=\"pluginTxt\"\n :existing-plugin-txt=\"existingPluginTxt\"\n @callback=\"pluginCallback\"\n />\n <modified-plugin-dialog\n v-if=\"showModifiedPluginDialog\"\n v-model=\"showModifiedPluginDialog\"\n :plugin-name=\"currentPlugin\"\n :targets=\"pluginTargets(currentPlugin)\"\n :plugin-delete=\"pluginDelete\"\n @submit=\"modifiedSubmit\"\n />\n <!-- <download-dialog v-model=\"showDownloadDialog\" /> -->\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { ModifiedPluginDialog, PluginDialog } from '@/tools/admin'\n\nexport default {\n components: {\n PluginDialog,\n ModifiedPluginDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n file: null,\n currentPlugin: null,\n plugins: [],\n targets: [],\n processes: {},\n alert: '',\n alertType: 'success',\n showAlert: false,\n pluginName: null,\n variables: {},\n pluginTxt: '',\n pluginHashTmp: null,\n existingPluginTxt: null,\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n showPluginDialog: false,\n showModifiedPluginDialog: false,\n showDefaultTools: false,\n progress: 0,\n pluginDelete: false,\n // When updating update local_mode.rb, local_mode.py, plugins.spec.ts\n defaultPlugins: [\n 'openc3-cosmos-tool-admin',\n 'openc3-cosmos-tool-bucketexplorer',\n 'openc3-cosmos-tool-cmdsender',\n 'openc3-cosmos-tool-cmdhistory', // Enterprise only\n 'openc3-cosmos-tool-cmdtlmserver',\n 'openc3-cosmos-tool-dataextractor',\n 'openc3-cosmos-tool-dataviewer',\n 'openc3-cosmos-tool-docs',\n 'openc3-cosmos-tool-handbooks',\n 'openc3-cosmos-tool-iframe',\n 'openc3-cosmos-tool-limitsmonitor',\n 'openc3-cosmos-tool-packetviewer',\n 'openc3-cosmos-tool-scriptrunner',\n 'openc3-cosmos-tool-tablemanager',\n 'openc3-cosmos-tool-tlmgrapher',\n 'openc3-cosmos-tool-tlmviewer',\n 'openc3-cosmos-enterprise-tool-admin', // Enterprise only\n 'openc3-cosmos-tool-autonomic', // Enterprise only\n 'openc3-cosmos-tool-calendar', // Enterprise only\n 'openc3-cosmos-tool-grafana', // Enterprise only\n 'openc3-enterprise-tool-base', // Enterprise only\n 'openc3-tool-base',\n ],\n }\n },\n computed: {\n shownPlugins() {\n let result = []\n for (let plugin of this.plugins) {\n let pluginNameFirst = plugin.split('__')[0]\n let pluginNameSplit = pluginNameFirst.split('-')\n pluginNameSplit = pluginNameSplit.slice(0, -1)\n let pluginName = pluginNameSplit.join('-')\n if (\n !this.defaultPlugins.includes(pluginName) ||\n this.showDefaultTools\n ) {\n result.push(plugin)\n }\n }\n return result\n },\n pluginTargets() {\n return (plugin) => {\n let result = []\n for (const target in this.targets) {\n if (this.targets[target]['plugin'] === plugin) {\n result.push(this.targets[target])\n }\n }\n return result\n }\n },\n isModified() {\n return (plugin) => {\n let result = false\n for (const target in this.targets) {\n if (\n this.targets[target]['plugin'] === plugin &&\n this.targets[target]['modified'] === true\n ) {\n result = true\n break\n }\n }\n return result\n }\n },\n },\n watch: {\n // watcher to reset the file input when the dialog is closed\n showPluginDialog: function (newValue, oldValue) {\n if (newValue === false) {\n this.file = null\n this.$refs.fileInput.value = null\n }\n },\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update: function () {\n Api.get('/openc3-api/plugins').then((response) => {\n this.plugins = response.data\n })\n Api.get('/openc3-api/targets_modified').then((response) => {\n this.targets = response.data\n })\n },\n updateProcesses: function () {\n Api.get('openc3-api/process_status/plugin_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 5000)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n upload: function (existing = null) {\n const method = existing ? 'put' : 'post'\n const path = existing\n ? `/openc3-api/plugins/${existing}`\n : '/openc3-api/plugins'\n const formData = new FormData()\n formData.append('plugin', this.file, this.file.name)\n let self = this\n const promise = Api[method](path, {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n promise\n .then((response) => {\n this.progress = 100\n this.alert = 'Uploaded file'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n let existingPluginTxt = null\n if (response.data.existing_plugin_txt_lines !== undefined) {\n existingPluginTxt =\n response.data.existing_plugin_txt_lines.join('\\n')\n }\n let pluginTxt = response.data.plugin_txt_lines.join('\\n')\n ;(this.pluginName = response.data.name),\n (this.variables = response.data.variables),\n (this.pluginTxt = pluginTxt),\n (this.existingPluginTxt = existingPluginTxt)\n this.showPluginDialog = true\n this.file = undefined\n })\n .catch((error) => {\n this.currentPlugin = null\n this.file = undefined\n })\n },\n pluginCallback: function (pluginHash) {\n this.showPluginDialog = false\n if (this.currentPlugin !== null) {\n pluginHash['name'] = this.currentPlugin\n }\n this.pluginHashTmp = pluginHash\n if (this.isModified(this.currentPlugin)) {\n this.pluginDelete = false\n this.showModifiedPluginDialog = true\n } else {\n this.pluginInstall()\n }\n },\n modifiedSubmit: async function (deleteModified) {\n if (deleteModified === true) {\n for (let target of this.pluginTargets(this.currentPlugin)) {\n if (target.modified == true) {\n await Api.post(`/openc3-api/targets/${target.name}/delete_modified`)\n }\n }\n }\n if (this.pluginDelete) {\n this.deletePlugin(this.currentPlugin)\n } else {\n this.pluginInstall()\n }\n },\n pluginInstall: function () {\n Api.post(`/openc3-api/plugins/install/${this.pluginName}`, {\n data: {\n plugin_hash: JSON.stringify(this.pluginHashTmp),\n },\n }).then((response) => {\n this.alert = `Started installing plugin ${this.pluginName} ...`\n this.alertType = 'success'\n this.showAlert = true\n this.currentPlugin = null\n this.file = undefined\n this.variables = {}\n this.pluginTxt = ''\n this.existingPluginTxt = null\n setTimeout(() => {\n this.showAlert = false\n this.updateProcesses()\n }, 5000)\n this.update()\n })\n },\n downloadTarget: function (name) {\n Api.post(`/openc3-api/targets/${name}/download`).then((response) => {\n // Decode Base64 string\n const decodedData = window.atob(response.data.contents)\n // Create UNIT8ARRAY of size same as row data length\n const uInt8Array = new Uint8Array(decodedData.length)\n // Insert all character code into uInt8Array\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i)\n }\n const blob = new Blob([uInt8Array], { type: 'application/zip' })\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n downloadPlugin: function (plugin) {\n Api.post(`/openc3-api/packages/${plugin}/download`).then((response) => {\n // Decode Base64 string\n const decodedData = window.atob(response.data.contents)\n // Create UNIT8ARRAY of size same as row data length\n const uInt8Array = new Uint8Array(decodedData.length)\n // Insert all character code into uInt8Array\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i)\n }\n const blob = new Blob([uInt8Array], { type: 'application/zip' })\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n editPlugin: function (plugin) {\n Api.get(`/openc3-api/plugins/${plugin}`).then((response) => {\n let existingPluginTxt = null\n if (response.data.existing_plugin_txt_lines !== undefined) {\n existingPluginTxt = response.data.existing_plugin_txt_lines.join('\\n')\n }\n let pluginTxt = response.data.plugin_txt_lines.join('\\n')\n ;(this.pluginName = response.data.name),\n (this.variables = response.data.variables),\n (this.pluginTxt = pluginTxt),\n (this.existingPluginTxt = existingPluginTxt)\n this.showPluginDialog = true\n })\n },\n deletePrompt: function (plugin) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${plugin}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.isModified(plugin)) {\n this.currentPlugin = plugin\n this.pluginDelete = true\n this.showModifiedPluginDialog = true\n } else {\n this.deletePlugin(plugin)\n }\n })\n },\n deletePlugin: function (plugin) {\n this.alert = `Removing plugin ${plugin} ...`\n this.alertType = 'success'\n this.showAlert = true\n Api.delete(`/openc3-api/plugins/${plugin}`).then((response) => {\n setTimeout(() => {\n this.showAlert = false\n this.updateProcesses()\n }, 5000)\n })\n this.update()\n },\n upgradePlugin(plugin) {\n this.file = null\n this.currentPlugin = plugin\n this.progress = 0\n this.$refs.fileInput.click()\n },\n selectFile() {\n this.file = null\n this.currentPlugin = null\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.file = files[0]\n if (this.currentPlugin !== null) {\n if (\n this.file.name.split('.gem')[0] ==\n this.currentPlugin.split('.gem')[0]\n ) {\n this.$dialog\n .confirm(\n `The new gem ${this.file.name} appears to be identical to the existing ${this.currentPlugin}. Install?`,\n {\n okText: 'Ok',\n cancelText: 'Cancel',\n },\n )\n .then(() => {\n this.upload(this.currentPlugin)\n })\n .catch((error) => {\n // do nothing\n })\n } else {\n // Split up the gem name to determine if this is an upgrade\n // or mistakenly trying to install a different gem\n // Gems are named like openc3-cosmos-demo-5.3.2.gem or\n // openc3-cosmos-pw-test-1.0.0.20230213074527.gem\n // So split on - and match everything until the first .\n let parts = this.file.name.split('-')\n let i = parts.findIndex((x) => x.includes('.'))\n let newName = parts.slice(0, i).join('-')\n parts = this.currentPlugin.split('-')\n i = parts.findIndex((x) => x.includes('.'))\n let existingName = parts.slice(0, i).join('-')\n if (newName !== existingName) {\n this.$dialog\n .confirm(\n `The new gem base name ${newName} doesn't match the existing ${existingName}. Install?`,\n {\n okText: 'Ok',\n cancelText: 'Cancel',\n },\n )\n .then(() => {\n this.upload(this.currentPlugin)\n })\n } else {\n this.upload(this.currentPlugin)\n }\n }\n } else {\n this.upload()\n }\n } else {\n // Reset the input element\n this.$refs.fileInput.value = null\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.crashed {\n color: red;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","PluginDialog","ModifiedPluginDialog","SimpleTextDialog","result","plugin","pluginNameSplit","pluginName","target","newValue","oldValue","process","Api","response","nanoSecs","format","toDate","existing","method","path","formData","self","progressEvent","percentCompleted","existingPluginTxt","pluginTxt","error","pluginHash","deleteModified","name","decodedData","uInt8Array","blob","link","dialog","event","files","parts","i","x","newName","existingName","_hoisted_1","_hoisted_2","_hoisted_4","_createElementBlock","_createVNode","_component_v_row","_withCtx","_component_v_col","_component_v_btn","$options","_cache","_createTextVNode","_createElementVNode","args","_component_v_icon","_component_rux_progress","$data","_component_v_checkbox","$event","_component_v_divider","_component_v_alert","_toDisplayString","_createBlock","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_component_v_progress_circular","_component_v_tooltip","props","_mergeProps","_component_v_list_item_title","_normalizeClass","_component_v_list_item_subtitle","_createCommentVNode","index","_hoisted_3","_withModifiers","_hoisted_5","_component_plugin_dialog","_component_modified_plugin_dialog","_component_simple_text_dialog"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { W as a } from "./Widget-oyqWpFXJ.js";
1
+ import { W as a } from "./Widget-CFEnOKms.js";
2
2
  import { resolveComponent as r, createBlock as i, openBlock as l, normalizeStyle as o } from "vue";
3
3
  import { _ as u } from "./CustomIcon-h5X7369N.js";
4
4
  const n = {
@@ -43,4 +43,4 @@ const I = /* @__PURE__ */ u(n, [["render", p], ["__scopeId", "data-v-85bc2857"]]
43
43
  export {
44
44
  I as default
45
45
  };
46
- //# sourceMappingURL=ProgressbarWidget-iYGw8-Dc.js.map
46
+ //# sourceMappingURL=ProgressbarWidget-7cYr8136.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressbarWidget-iYGw8-Dc.js","sources":["../src/widgets/ProgressbarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <rux-progress\n :value=\"_value\"\n class=\"progress\"\n :style=\"computedStyle\"\n ></rux-progress>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n props: {\n value: {\n default: null,\n },\n },\n data: function () {\n return {\n valueId: null,\n scaleFactor: 1.0,\n width: 150,\n }\n },\n computed: {\n _value: function () {\n let value = this.value\n if (value === null) {\n value = this.screenValues[this.valueId][0]\n }\n return parseInt(parseFloat(value) * this.scaleFactor)\n },\n },\n created: function () {\n if (this.parameters[3]) {\n this.scaleFactor = parseFloat(this.parameters[3])\n }\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n // If they're not passing us the value we have to register\n if (this.value === null) {\n let type = 'CONVERTED'\n if (this.parameters[5]) {\n type = this.parameters[5]\n }\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${type}`\n this.$emit('addItem', this.valueId)\n }\n },\n unmounted: function () {\n this.$emit('deleteItem', this.valueId)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.progress {\n margin: 5px;\n flex: auto !important;\n}\n</style>\n"],"names":["_sfc_main","Widget","value","type","_createBlock","_component_rux_progress","$options","_normalizeStyle","_ctx"],"mappings":";;;AAiCA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AAAA,IACL,OAAO;AAAA,MACL,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EACD,MAAM,WAAY;AAChB,WAAO;AAAA,MACL,SAAS;AAAA,MACT,aAAa;AAAA,MACb,OAAO;AAAA,IACT;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACR,QAAQ,WAAY;AAClB,UAAIC,IAAQ,KAAK;AACjB,aAAIA,MAAU,SACZA,IAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC,IAEpC,SAAS,WAAWA,CAAK,IAAI,KAAK,WAAW;AAAA,IACrD;AAAA,EACF;AAAA,EACD,SAAS,WAAY;AAMnB,QALI,KAAK,WAAW,CAAC,MACnB,KAAK,cAAc,WAAW,KAAK,WAAW,CAAC,CAAC,IAElD,KAAK,QAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,KAAK,GAE3D,KAAK,UAAU,MAAM;AACvB,UAAIC,IAAO;AACX,MAAI,KAAK,WAAW,CAAC,MACnBA,IAAO,KAAK,WAAW,CAAC,IAE1B,KAAK,UAAU,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAKA,CAAI,IAC3F,KAAK,MAAM,WAAW,KAAK,OAAO;AAAA,IACpC;AAAA,EACD;AAAA,EACD,WAAW,WAAY;AACrB,SAAK,MAAM,cAAc,KAAK,OAAO;AAAA,EACtC;AACH;;;cAnDEC,EAIgBC,GAAA;AAAA,IAHb,OAAOC,EAAM;AAAA,IACd,OAAM;AAAA,IACL,OA1BLC,EA0BYC,EAAa,aAAA;AAAA;;;"}
1
+ {"version":3,"file":"ProgressbarWidget-7cYr8136.js","sources":["../src/widgets/ProgressbarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <rux-progress\n :value=\"_value\"\n class=\"progress\"\n :style=\"computedStyle\"\n ></rux-progress>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n props: {\n value: {\n default: null,\n },\n },\n data: function () {\n return {\n valueId: null,\n scaleFactor: 1.0,\n width: 150,\n }\n },\n computed: {\n _value: function () {\n let value = this.value\n if (value === null) {\n value = this.screenValues[this.valueId][0]\n }\n return parseInt(parseFloat(value) * this.scaleFactor)\n },\n },\n created: function () {\n if (this.parameters[3]) {\n this.scaleFactor = parseFloat(this.parameters[3])\n }\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n // If they're not passing us the value we have to register\n if (this.value === null) {\n let type = 'CONVERTED'\n if (this.parameters[5]) {\n type = this.parameters[5]\n }\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${type}`\n this.$emit('addItem', this.valueId)\n }\n },\n unmounted: function () {\n this.$emit('deleteItem', this.valueId)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.progress {\n margin: 5px;\n flex: auto !important;\n}\n</style>\n"],"names":["_sfc_main","Widget","value","type","_createBlock","_component_rux_progress","$options","_normalizeStyle","_ctx"],"mappings":";;;AAiCA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AAAA,IACL,OAAO;AAAA,MACL,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EACD,MAAM,WAAY;AAChB,WAAO;AAAA,MACL,SAAS;AAAA,MACT,aAAa;AAAA,MACb,OAAO;AAAA,IACT;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACR,QAAQ,WAAY;AAClB,UAAIC,IAAQ,KAAK;AACjB,aAAIA,MAAU,SACZA,IAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC,IAEpC,SAAS,WAAWA,CAAK,IAAI,KAAK,WAAW;AAAA,IACrD;AAAA,EACF;AAAA,EACD,SAAS,WAAY;AAMnB,QALI,KAAK,WAAW,CAAC,MACnB,KAAK,cAAc,WAAW,KAAK,WAAW,CAAC,CAAC,IAElD,KAAK,QAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,KAAK,GAE3D,KAAK,UAAU,MAAM;AACvB,UAAIC,IAAO;AACX,MAAI,KAAK,WAAW,CAAC,MACnBA,IAAO,KAAK,WAAW,CAAC,IAE1B,KAAK,UAAU,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAKA,CAAI,IAC3F,KAAK,MAAM,WAAW,KAAK,OAAO;AAAA,IACpC;AAAA,EACD;AAAA,EACD,WAAW,WAAY;AACrB,SAAK,MAAM,cAAc,KAAK,OAAO;AAAA,EACtC;AACH;;;cAnDEC,EAIgBC,GAAA;AAAA,IAHb,OAAOC,EAAM;AAAA,IACd,OAAM;AAAA,IACL,OA1BLC,EA0BYC,EAAa,aAAA;AAAA;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./Widget-ChoIB2dd.cjs"),t=require("vue"),i=require("./CustomIcon-Bop2mEnu.cjs"),l={mixins:[a.Widget],props:{value:{default:null}},data:function(){return{valueId:null,scaleFactor:1,width:150}},computed:{_value:function(){let e=this.value;return e===null&&(e=this.screenValues[this.valueId][0]),parseInt(parseFloat(e)*this.scaleFactor)}},created:function(){if(this.parameters[3]&&(this.scaleFactor=parseFloat(this.parameters[3])),this.width=this.setWidth(this.parameters[4],"px",this.width),this.value===null){let e="CONVERTED";this.parameters[5]&&(e=this.parameters[5]),this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${e}`,this.$emit("addItem",this.valueId)}},unmounted:function(){this.$emit("deleteItem",this.valueId)}};function u(e,n,c,d,p,s){const r=t.resolveComponent("rux-progress");return t.openBlock(),t.createBlock(r,{value:s._value,class:"progress",style:t.normalizeStyle(e.computedStyle)},null,8,["value","style"])}const o=i._export_sfc(l,[["render",u],["__scopeId","data-v-85bc2857"]]);exports.default=o;
2
- //# sourceMappingURL=ProgressbarWidget-fGWa6ipm.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./Widget-EsyLQi_8.cjs"),t=require("vue"),i=require("./CustomIcon-Bop2mEnu.cjs"),l={mixins:[a.Widget],props:{value:{default:null}},data:function(){return{valueId:null,scaleFactor:1,width:150}},computed:{_value:function(){let e=this.value;return e===null&&(e=this.screenValues[this.valueId][0]),parseInt(parseFloat(e)*this.scaleFactor)}},created:function(){if(this.parameters[3]&&(this.scaleFactor=parseFloat(this.parameters[3])),this.width=this.setWidth(this.parameters[4],"px",this.width),this.value===null){let e="CONVERTED";this.parameters[5]&&(e=this.parameters[5]),this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${e}`,this.$emit("addItem",this.valueId)}},unmounted:function(){this.$emit("deleteItem",this.valueId)}};function u(e,n,c,d,p,s){const r=t.resolveComponent("rux-progress");return t.openBlock(),t.createBlock(r,{value:s._value,class:"progress",style:t.normalizeStyle(e.computedStyle)},null,8,["value","style"])}const o=i._export_sfc(l,[["render",u],["__scopeId","data-v-85bc2857"]]);exports.default=o;
2
+ //# sourceMappingURL=ProgressbarWidget-CdOWGViG.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressbarWidget-fGWa6ipm.cjs","sources":["../src/widgets/ProgressbarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <rux-progress\n :value=\"_value\"\n class=\"progress\"\n :style=\"computedStyle\"\n ></rux-progress>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n props: {\n value: {\n default: null,\n },\n },\n data: function () {\n return {\n valueId: null,\n scaleFactor: 1.0,\n width: 150,\n }\n },\n computed: {\n _value: function () {\n let value = this.value\n if (value === null) {\n value = this.screenValues[this.valueId][0]\n }\n return parseInt(parseFloat(value) * this.scaleFactor)\n },\n },\n created: function () {\n if (this.parameters[3]) {\n this.scaleFactor = parseFloat(this.parameters[3])\n }\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n // If they're not passing us the value we have to register\n if (this.value === null) {\n let type = 'CONVERTED'\n if (this.parameters[5]) {\n type = this.parameters[5]\n }\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${type}`\n this.$emit('addItem', this.valueId)\n }\n },\n unmounted: function () {\n this.$emit('deleteItem', this.valueId)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.progress {\n margin: 5px;\n flex: auto !important;\n}\n</style>\n"],"names":["_sfc_main","Widget","value","type","_createBlock","_component_rux_progress","$options","_normalizeStyle","_ctx"],"mappings":"iLAiCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,QAAS,IACV,CACF,EACD,KAAM,UAAY,CAChB,MAAO,CACL,QAAS,KACT,YAAa,EACb,MAAO,GACT,CACD,EACD,SAAU,CACR,OAAQ,UAAY,CAClB,IAAIC,EAAQ,KAAK,MACjB,OAAIA,IAAU,OACZA,EAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC,GAEpC,SAAS,WAAWA,CAAK,EAAI,KAAK,WAAW,CACrD,CACF,EACD,QAAS,UAAY,CAMnB,GALI,KAAK,WAAW,CAAC,IACnB,KAAK,YAAc,WAAW,KAAK,WAAW,CAAC,CAAC,GAElD,KAAK,MAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,KAAK,EAE3D,KAAK,QAAU,KAAM,CACvB,IAAIC,EAAO,YACP,KAAK,WAAW,CAAC,IACnBA,EAAO,KAAK,WAAW,CAAC,GAE1B,KAAK,QAAU,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAKA,CAAI,GAC3F,KAAK,MAAM,UAAW,KAAK,OAAO,CACpC,CACD,EACD,UAAW,UAAY,CACrB,KAAK,MAAM,aAAc,KAAK,OAAO,CACtC,CACH,0FAnDEC,EAIgB,YAAAC,EAAA,CAHb,MAAOC,EAAM,OACd,MAAM,WACL,MA1BLC,EAAAA,eA0BYC,EAAa,aAAA"}
1
+ {"version":3,"file":"ProgressbarWidget-CdOWGViG.cjs","sources":["../src/widgets/ProgressbarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <rux-progress\n :value=\"_value\"\n class=\"progress\"\n :style=\"computedStyle\"\n ></rux-progress>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n props: {\n value: {\n default: null,\n },\n },\n data: function () {\n return {\n valueId: null,\n scaleFactor: 1.0,\n width: 150,\n }\n },\n computed: {\n _value: function () {\n let value = this.value\n if (value === null) {\n value = this.screenValues[this.valueId][0]\n }\n return parseInt(parseFloat(value) * this.scaleFactor)\n },\n },\n created: function () {\n if (this.parameters[3]) {\n this.scaleFactor = parseFloat(this.parameters[3])\n }\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n // If they're not passing us the value we have to register\n if (this.value === null) {\n let type = 'CONVERTED'\n if (this.parameters[5]) {\n type = this.parameters[5]\n }\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${type}`\n this.$emit('addItem', this.valueId)\n }\n },\n unmounted: function () {\n this.$emit('deleteItem', this.valueId)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.progress {\n margin: 5px;\n flex: auto !important;\n}\n</style>\n"],"names":["_sfc_main","Widget","value","type","_createBlock","_component_rux_progress","$options","_normalizeStyle","_ctx"],"mappings":"iLAiCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,QAAS,IACV,CACF,EACD,KAAM,UAAY,CAChB,MAAO,CACL,QAAS,KACT,YAAa,EACb,MAAO,GACT,CACD,EACD,SAAU,CACR,OAAQ,UAAY,CAClB,IAAIC,EAAQ,KAAK,MACjB,OAAIA,IAAU,OACZA,EAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC,GAEpC,SAAS,WAAWA,CAAK,EAAI,KAAK,WAAW,CACrD,CACF,EACD,QAAS,UAAY,CAMnB,GALI,KAAK,WAAW,CAAC,IACnB,KAAK,YAAc,WAAW,KAAK,WAAW,CAAC,CAAC,GAElD,KAAK,MAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,KAAK,EAE3D,KAAK,QAAU,KAAM,CACvB,IAAIC,EAAO,YACP,KAAK,WAAW,CAAC,IACnBA,EAAO,KAAK,WAAW,CAAC,GAE1B,KAAK,QAAU,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAKA,CAAI,GAC3F,KAAK,MAAM,UAAW,KAAK,OAAO,CACpC,CACD,EACD,UAAW,UAAY,CACrB,KAAK,MAAM,aAAc,KAAK,OAAO,CACtC,CACH,0FAnDEC,EAIgB,YAAAC,EAAA,CAHb,MAAOC,EAAM,OACd,MAAM,WACL,MA1BLC,EAAAA,eA0BYC,EAAa,aAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./Widget-ChoIB2dd.cjs"),e=require("vue"),a=require("./CustomIcon-Bop2mEnu.cjs"),s={props:{value:{type:Number}},mixins:[n.Widget],data(){return{label:"Radio"}},created(){this.label=this.parameters[0]}};function i(t,u,o,d,l,p){const r=e.resolveComponent("v-radio");return e.openBlock(),e.createBlock(r,{"hide-details":"",dense:"",label:l.label,style:e.normalizeStyle(t.computedStyle),value:o.value},null,8,["label","style","value"])}const c=a._export_sfc(s,[["render",i]]);exports.default=c;
2
- //# sourceMappingURL=RadiobuttonWidget-ZEPJbOp_.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./Widget-EsyLQi_8.cjs"),e=require("vue"),a=require("./CustomIcon-Bop2mEnu.cjs"),s={props:{value:{type:Number}},mixins:[n.Widget],data(){return{label:"Radio"}},created(){this.label=this.parameters[0]}};function i(t,u,o,d,l,p){const r=e.resolveComponent("v-radio");return e.openBlock(),e.createBlock(r,{"hide-details":"",dense:"",label:l.label,style:e.normalizeStyle(t.computedStyle),value:o.value},null,8,["label","style","value"])}const c=a._export_sfc(s,[["render",i]]);exports.default=c;
2
+ //# sourceMappingURL=RadiobuttonWidget-5t4ofYx3.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadiobuttonWidget-ZEPJbOp_.cjs","sources":["../src/widgets/RadiobuttonWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <v-radio\n hide-details\n dense\n :label=\"label\"\n :style=\"computedStyle\"\n :value=\"value\"\n />\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n props: {\n value: {\n type: Number,\n },\n },\n mixins: [Widget],\n data() {\n return {\n label: 'Radio',\n }\n },\n created() {\n this.label = this.parameters[0]\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","_createBlock","_component_v_radio","$data","_normalizeStyle","_ctx","$props"],"mappings":"iLAmCKA,EAAU,CACb,MAAO,CACL,MAAO,CACL,KAAM,MACP,CACF,EACD,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,MAAO,OACT,CACD,EACD,SAAU,CACR,KAAK,MAAQ,KAAK,WAAW,CAAC,CAC/B,CACH,qFA3BEC,EAME,YAAAC,EAAA,CALA,eAAA,GACA,MAAA,GACC,MAAOC,EAAK,MACZ,MA3BLC,EAAAA,eA2BYC,EAAa,aAAA,EACpB,MAAOC,EAAK"}
1
+ {"version":3,"file":"RadiobuttonWidget-5t4ofYx3.cjs","sources":["../src/widgets/RadiobuttonWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <v-radio\n hide-details\n dense\n :label=\"label\"\n :style=\"computedStyle\"\n :value=\"value\"\n />\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n props: {\n value: {\n type: Number,\n },\n },\n mixins: [Widget],\n data() {\n return {\n label: 'Radio',\n }\n },\n created() {\n this.label = this.parameters[0]\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","_createBlock","_component_v_radio","$data","_normalizeStyle","_ctx","$props"],"mappings":"iLAmCKA,EAAU,CACb,MAAO,CACL,MAAO,CACL,KAAM,MACP,CACF,EACD,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,MAAO,OACT,CACD,EACD,SAAU,CACR,KAAK,MAAQ,KAAK,WAAW,CAAC,CAC/B,CACH,qFA3BEC,EAME,YAAAC,EAAA,CALA,eAAA,GACA,MAAA,GACC,MAAOC,EAAK,MACZ,MA3BLC,EAAAA,eA2BYC,EAAa,aAAA,EACpB,MAAOC,EAAK"}
@@ -1,4 +1,4 @@
1
- import { W as l } from "./Widget-oyqWpFXJ.js";
1
+ import { W as l } from "./Widget-CFEnOKms.js";
2
2
  import { resolveComponent as r, createBlock as n, openBlock as s, normalizeStyle as i } from "vue";
3
3
  import { _ as c } from "./CustomIcon-h5X7369N.js";
4
4
  const d = {
@@ -31,4 +31,4 @@ const y = /* @__PURE__ */ c(d, [["render", p]]);
31
31
  export {
32
32
  y as default
33
33
  };
34
- //# sourceMappingURL=RadiobuttonWidget-ytmoVZ3u.js.map
34
+ //# sourceMappingURL=RadiobuttonWidget-DTfn-7F2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadiobuttonWidget-ytmoVZ3u.js","sources":["../src/widgets/RadiobuttonWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <v-radio\n hide-details\n dense\n :label=\"label\"\n :style=\"computedStyle\"\n :value=\"value\"\n />\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n props: {\n value: {\n type: Number,\n },\n },\n mixins: [Widget],\n data() {\n return {\n label: 'Radio',\n }\n },\n created() {\n this.label = this.parameters[0]\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","_createBlock","_component_v_radio","$data","_normalizeStyle","_ctx","$props"],"mappings":";;;AAmCA,MAAKA,IAAU;AAAA,EACb,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,IACP;AAAA,EACF;AAAA,EACD,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AACL,WAAO;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACD;AAAA,EACD,UAAU;AACR,SAAK,QAAQ,KAAK,WAAW,CAAC;AAAA,EAC/B;AACH;;;cA3BEC,EAMEC,GAAA;AAAA,IALA,gBAAA;AAAA,IACA,OAAA;AAAA,IACC,OAAOC,EAAK;AAAA,IACZ,OA3BLC,EA2BYC,EAAa,aAAA;AAAA,IACpB,OAAOC,EAAK;AAAA;;;"}
1
+ {"version":3,"file":"RadiobuttonWidget-DTfn-7F2.js","sources":["../src/widgets/RadiobuttonWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <v-radio\n hide-details\n dense\n :label=\"label\"\n :style=\"computedStyle\"\n :value=\"value\"\n />\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n props: {\n value: {\n type: Number,\n },\n },\n mixins: [Widget],\n data() {\n return {\n label: 'Radio',\n }\n },\n created() {\n this.label = this.parameters[0]\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","_createBlock","_component_v_radio","$data","_normalizeStyle","_ctx","$props"],"mappings":";;;AAmCA,MAAKA,IAAU;AAAA,EACb,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,IACP;AAAA,EACF;AAAA,EACD,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AACL,WAAO;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACD;AAAA,EACD,UAAU;AACR,SAAK,QAAQ,KAAK,WAAW,CAAC;AAAA,EAC/B;AACH;;;cA3BEC,EAMEC,GAAA;AAAA,IALA,gBAAA;AAAA,IACA,OAAA;AAAA,IACC,OAAOC,EAAK;AAAA,IACZ,OA3BLC,EA2BYC,EAAa,aAAA;AAAA,IACpB,OAAOC,EAAK;AAAA;;;"}
@@ -1,4 +1,4 @@
1
- import { L as m } from "./Layout-Tf--nruw.js";
1
+ import { L as m } from "./Layout-B0hvhBQO.js";
2
2
  import { resolveComponent as i, createBlock as a, openBlock as r, normalizeStyle as p, withCtx as d, createElementBlock as u, Fragment as c, renderList as f, resolveDynamicComponent as g, mergeProps as y } from "vue";
3
3
  import { _ as v } from "./CustomIcon-h5X7369N.js";
4
4
  const _ = {
@@ -45,4 +45,4 @@ const C = /* @__PURE__ */ v(_, [["render", h]]);
45
45
  export {
46
46
  C as default
47
47
  };
48
- //# sourceMappingURL=RadiogroupWidget-CusMBhKH.js.map
48
+ //# sourceMappingURL=RadiogroupWidget-DWvTpw94.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadiogroupWidget-CusMBhKH.js","sources":["../src/widgets/RadiogroupWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <v-radio-group\n hide-details\n density=\"compact\"\n v-model=\"selectedIndex\"\n :style=\"computedStyle\"\n >\n <component\n v-for=\"(widget, index) in widgets\"\n v-bind=\"listeners\"\n :value=\"index\"\n :key=\"index\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :name=\"widget.name\"\n />\n </v-radio-group>\n</template>\n\n<script>\nimport Layout from './Layout'\n\nexport default {\n mixins: [Layout],\n data() {\n return {\n selectedIndex: 0,\n }\n },\n created() {\n if (this.parameters[0]) {\n this.selectedIndex = parseInt(this.parameters[0])\n }\n },\n methods: {\n selected() {\n return this.selectedIndex\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_createBlock","_component_v_radio_group","$data","_cache","$event","_normalizeStyle","_ctx","_withCtx","_openBlock","_createElementBlock","_Fragment","_renderList","widget","index","_resolveDynamicComponent","_mergeProps"],"mappings":";;;AAgDA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AACL,WAAO;AAAA,MACL,eAAe;AAAA,IACjB;AAAA,EACD;AAAA,EACD,UAAU;AACR,IAAI,KAAK,WAAW,CAAC,MACnB,KAAK,gBAAgB,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,EAEnD;AAAA,EACD,SAAS;AAAA,IACP,WAAW;AACT,aAAO,KAAK;AAAA,IACb;AAAA,EACF;AACH;;;cA1CEC,EAmBgBC,GAAA;AAAA,IAlBd,gBAAA;AAAA,IACA,SAAQ;AAAA,IAzBZ,YA0BaC,EAAa;AAAA,IA1B1B,uBAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MA0BaF,EAAa,gBAAAE;AAAA,IACrB,OA3BLC,EA2BYC,EAAa,aAAA;AAAA;IA3BzB,SAAAC,EA8BM,MAAkC;AAAA,OADpCC,EAAA,EAAA,GAAAC,EAYEC,SAzCNC,EA8BgCL,EAAA,SA9BhC,CA8BcM,GAAQC,YADlBb,EA7BJc,EAkCWF,EAAO,IAAI,GALlBG,EAYE,EAzCN,SAAA,MA+BcT,EAAS,WAAA;AAAA,QAChB,OAAOO;AAAA,QACP,KAAKA;AAAA,QAEL,QAAQD,EAAO;AAAA,QACf,YAAYA,EAAO;AAAA,QACnB,UAAUA,EAAO;AAAA,QACjB,iBAAeN,EAAY;AAAA,QAC3B,oBAAkBA,EAAc;AAAA,QAChC,MAAMM,EAAO;AAAA;;IAxCpB,GAAA;AAAA;;;"}
1
+ {"version":3,"file":"RadiogroupWidget-DWvTpw94.js","sources":["../src/widgets/RadiogroupWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <v-radio-group\n hide-details\n density=\"compact\"\n v-model=\"selectedIndex\"\n :style=\"computedStyle\"\n >\n <component\n v-for=\"(widget, index) in widgets\"\n v-bind=\"listeners\"\n :value=\"index\"\n :key=\"index\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :name=\"widget.name\"\n />\n </v-radio-group>\n</template>\n\n<script>\nimport Layout from './Layout'\n\nexport default {\n mixins: [Layout],\n data() {\n return {\n selectedIndex: 0,\n }\n },\n created() {\n if (this.parameters[0]) {\n this.selectedIndex = parseInt(this.parameters[0])\n }\n },\n methods: {\n selected() {\n return this.selectedIndex\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_createBlock","_component_v_radio_group","$data","_cache","$event","_normalizeStyle","_ctx","_withCtx","_openBlock","_createElementBlock","_Fragment","_renderList","widget","index","_resolveDynamicComponent","_mergeProps"],"mappings":";;;AAgDA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AACL,WAAO;AAAA,MACL,eAAe;AAAA,IACjB;AAAA,EACD;AAAA,EACD,UAAU;AACR,IAAI,KAAK,WAAW,CAAC,MACnB,KAAK,gBAAgB,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,EAEnD;AAAA,EACD,SAAS;AAAA,IACP,WAAW;AACT,aAAO,KAAK;AAAA,IACb;AAAA,EACF;AACH;;;cA1CEC,EAmBgBC,GAAA;AAAA,IAlBd,gBAAA;AAAA,IACA,SAAQ;AAAA,IAzBZ,YA0BaC,EAAa;AAAA,IA1B1B,uBAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MA0BaF,EAAa,gBAAAE;AAAA,IACrB,OA3BLC,EA2BYC,EAAa,aAAA;AAAA;IA3BzB,SAAAC,EA8BM,MAAkC;AAAA,OADpCC,EAAA,EAAA,GAAAC,EAYEC,SAzCNC,EA8BgCL,EAAA,SA9BhC,CA8BcM,GAAQC,YADlBb,EA7BJc,EAkCWF,EAAO,IAAI,GALlBG,EAYE,EAzCN,SAAA,MA+BcT,EAAS,WAAA;AAAA,QAChB,OAAOO;AAAA,QACP,KAAKA;AAAA,QAEL,QAAQD,EAAO;AAAA,QACf,YAAYA,EAAO;AAAA,QACnB,UAAUA,EAAO;AAAA,QACjB,iBAAeN,EAAY;AAAA,QAC3B,oBAAkBA,EAAc;AAAA,QAChC,MAAMM,EAAO;AAAA;;IAxCpB,GAAA;AAAA;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./Layout-DuCYyOw4.cjs"),e=require("vue"),c=require("./CustomIcon-Bop2mEnu.cjs"),u={mixins:[l.Layout],data(){return{selectedIndex:0}},created(){this.parameters[0]&&(this.selectedIndex=parseInt(this.parameters[0]))},methods:{selected(){return this.selectedIndex}}};function i(r,n,d,p,s,y){const a=e.resolveComponent("v-radio-group");return e.openBlock(),e.createBlock(a,{"hide-details":"",density:"compact",modelValue:s.selectedIndex,"onUpdate:modelValue":n[0]||(n[0]=t=>s.selectedIndex=t),style:e.normalizeStyle(r.computedStyle)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.widgets,(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.type),e.mergeProps({ref_for:!0},r.listeners,{value:o,key:o,target:t.target,parameters:t.parameters,settings:t.settings,"screen-values":r.screenValues,"screen-time-zone":r.screenTimeZone,name:t.name}),null,16,["value","target","parameters","settings","screen-values","screen-time-zone","name"]))),128))]),_:1},8,["modelValue","style"])}const m=c._export_sfc(u,[["render",i]]);exports.default=m;
2
- //# sourceMappingURL=RadiogroupWidget-EK4rEGUC.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./Layout-BLADjt_A.cjs"),e=require("vue"),c=require("./CustomIcon-Bop2mEnu.cjs"),u={mixins:[l.Layout],data(){return{selectedIndex:0}},created(){this.parameters[0]&&(this.selectedIndex=parseInt(this.parameters[0]))},methods:{selected(){return this.selectedIndex}}};function i(r,n,d,p,s,y){const a=e.resolveComponent("v-radio-group");return e.openBlock(),e.createBlock(a,{"hide-details":"",density:"compact",modelValue:s.selectedIndex,"onUpdate:modelValue":n[0]||(n[0]=t=>s.selectedIndex=t),style:e.normalizeStyle(r.computedStyle)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.widgets,(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.type),e.mergeProps({ref_for:!0},r.listeners,{value:o,key:o,target:t.target,parameters:t.parameters,settings:t.settings,"screen-values":r.screenValues,"screen-time-zone":r.screenTimeZone,name:t.name}),null,16,["value","target","parameters","settings","screen-values","screen-time-zone","name"]))),128))]),_:1},8,["modelValue","style"])}const m=c._export_sfc(u,[["render",i]]);exports.default=m;
2
+ //# sourceMappingURL=RadiogroupWidget-emxyymRZ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadiogroupWidget-EK4rEGUC.cjs","sources":["../src/widgets/RadiogroupWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <v-radio-group\n hide-details\n density=\"compact\"\n v-model=\"selectedIndex\"\n :style=\"computedStyle\"\n >\n <component\n v-for=\"(widget, index) in widgets\"\n v-bind=\"listeners\"\n :value=\"index\"\n :key=\"index\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :name=\"widget.name\"\n />\n </v-radio-group>\n</template>\n\n<script>\nimport Layout from './Layout'\n\nexport default {\n mixins: [Layout],\n data() {\n return {\n selectedIndex: 0,\n }\n },\n created() {\n if (this.parameters[0]) {\n this.selectedIndex = parseInt(this.parameters[0])\n }\n },\n methods: {\n selected() {\n return this.selectedIndex\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_createBlock","_component_v_radio_group","$data","_cache","$event","_normalizeStyle","_ctx","_withCtx","_openBlock","_createElementBlock","_Fragment","_renderList","widget","index","_resolveDynamicComponent","_mergeProps"],"mappings":"iLAgDKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,cAAe,CACjB,CACD,EACD,SAAU,CACJ,KAAK,WAAW,CAAC,IACnB,KAAK,cAAgB,SAAS,KAAK,WAAW,CAAC,CAAC,EAEnD,EACD,QAAS,CACP,UAAW,CACT,OAAO,KAAK,aACb,CACF,CACH,2FA1CEC,EAmBgB,YAAAC,EAAA,CAlBd,eAAA,GACA,QAAQ,UAzBZ,WA0BaC,EAAa,cA1B1B,sBAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GA0BaF,EAAa,cAAAE,GACrB,MA3BLC,EAAAA,eA2BYC,EAAa,aAAA,IA3BzB,QAAAC,EAAA,QA8BM,IAAkC,EADpCC,EAAAA,UAAA,EAAA,EAAAC,EAAA,mBAYEC,gBAzCNC,EA8BgC,WAAAL,EAAA,QA9BhC,CA8BcM,EAAQC,mBADlBb,EAAAA,YA7BJc,EAkCW,wBAAAF,EAAO,IAAI,EALlBG,EAYE,WAAA,CAzCN,QAAA,IA+BcT,EAAS,UAAA,CAChB,MAAOO,EACP,IAAKA,EAEL,OAAQD,EAAO,OACf,WAAYA,EAAO,WACnB,SAAUA,EAAO,SACjB,gBAAeN,EAAY,aAC3B,mBAAkBA,EAAc,eAChC,KAAMM,EAAO,+GAxCpB,EAAA"}
1
+ {"version":3,"file":"RadiogroupWidget-emxyymRZ.cjs","sources":["../src/widgets/RadiogroupWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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 <v-radio-group\n hide-details\n density=\"compact\"\n v-model=\"selectedIndex\"\n :style=\"computedStyle\"\n >\n <component\n v-for=\"(widget, index) in widgets\"\n v-bind=\"listeners\"\n :value=\"index\"\n :key=\"index\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :name=\"widget.name\"\n />\n </v-radio-group>\n</template>\n\n<script>\nimport Layout from './Layout'\n\nexport default {\n mixins: [Layout],\n data() {\n return {\n selectedIndex: 0,\n }\n },\n created() {\n if (this.parameters[0]) {\n this.selectedIndex = parseInt(this.parameters[0])\n }\n },\n methods: {\n selected() {\n return this.selectedIndex\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_createBlock","_component_v_radio_group","$data","_cache","$event","_normalizeStyle","_ctx","_withCtx","_openBlock","_createElementBlock","_Fragment","_renderList","widget","index","_resolveDynamicComponent","_mergeProps"],"mappings":"iLAgDKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,cAAe,CACjB,CACD,EACD,SAAU,CACJ,KAAK,WAAW,CAAC,IACnB,KAAK,cAAgB,SAAS,KAAK,WAAW,CAAC,CAAC,EAEnD,EACD,QAAS,CACP,UAAW,CACT,OAAO,KAAK,aACb,CACF,CACH,2FA1CEC,EAmBgB,YAAAC,EAAA,CAlBd,eAAA,GACA,QAAQ,UAzBZ,WA0BaC,EAAa,cA1B1B,sBAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GA0BaF,EAAa,cAAAE,GACrB,MA3BLC,EAAAA,eA2BYC,EAAa,aAAA,IA3BzB,QAAAC,EAAA,QA8BM,IAAkC,EADpCC,EAAAA,UAAA,EAAA,EAAAC,EAAA,mBAYEC,gBAzCNC,EA8BgC,WAAAL,EAAA,QA9BhC,CA8BcM,EAAQC,mBADlBb,EAAAA,YA7BJc,EAkCW,wBAAAF,EAAO,IAAI,EALlBG,EAYE,WAAA,CAzCN,QAAA,IA+BcT,EAAS,UAAA,CAChB,MAAOO,EACP,IAAKA,EAEL,OAAQD,EAAO,OACf,WAAYA,EAAO,WACnB,SAAUA,EAAO,SACjB,gBAAeN,EAAY,aAC3B,mBAAkBA,EAAc,eAChC,KAAMM,EAAO,+GAxCpB,EAAA"}
@@ -1,4 +1,4 @@
1
- import { W as i } from "./Widget-oyqWpFXJ.js";
1
+ import { W as i } from "./Widget-CFEnOKms.js";
2
2
  import { createElementBlock as a, openBlock as h, normalizeStyle as n, createElementVNode as r } from "vue";
3
3
  import { _ as o } from "./CustomIcon-h5X7369N.js";
4
4
  const d = {
@@ -64,4 +64,4 @@ const f = /* @__PURE__ */ o(d, [["render", m], ["__scopeId", "data-v-34d37e7c"]]
64
64
  export {
65
65
  f as default
66
66
  };
67
- //# sourceMappingURL=RangebarWidget-D_zGTtCa.js.map
67
+ //# sourceMappingURL=RangebarWidget-CG2Y7eYp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RangebarWidget-D_zGTtCa.js","sources":["../src/widgets/RangebarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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=\"rangebar\" :style=\"[cssProps, computedStyle]\">\n <div class=\"rangebar__container\">\n <div class=\"rangebar__line\" />\n <div class=\"rangebar__arrow\" />\n </div>\n </div>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n width: 160, // px\n height: 22, // px\n }\n },\n computed: {\n cssProps() {\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-height': this.height - 5 + 'px',\n '--position': this.calcPosition() + '%',\n }\n },\n min() {\n return parseInt(this.parameters[3])\n },\n max() {\n return parseInt(this.parameters[4])\n },\n range() {\n return this.max - this.min\n },\n },\n created() {\n const type = this.parameters[5] ? this.parameters[5] : 'CONVERTED'\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${type}`\n this.$emit('addItem', this.valueId)\n\n this.width = this.setWidth(this.parameters[6], 'px', this.width)\n this.height = this.setHeight(this.parameters[7], 'px', this.height)\n },\n unmounted() {\n this.$emit('deleteItem', this.valueId)\n },\n methods: {\n calcPosition() {\n let value = this.screenValues[this.valueId][0]\n if (!value) {\n return 0\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 const result = ((value - this.min) / this.range) * 100\n if (result > 100) {\n return 100\n } else if (result < 0) {\n return 0\n } else {\n return result\n }\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.rangebar {\n cursor: default;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5px;\n padding-top: 15px;\n width: var(--width);\n margin-bottom: 5px;\n}\n.rangebar__container {\n position: relative;\n flex: 1;\n height: var(--container-height);\n border: 1px solid black;\n background-color: white;\n}\n.rangebar__line {\n position: absolute;\n left: var(--position);\n width: 1px;\n height: var(--container-height);\n background-color: rgb(128, 128, 128);\n}\n$arrow-size: 5px;\n.rangebar__arrow {\n position: absolute;\n top: -$arrow-size;\n left: var(--position);\n width: 0;\n height: 0;\n transform: translateX(-$arrow-size); // Transform so it sits over the line\n border-left: $arrow-size solid transparent;\n border-right: $arrow-size solid transparent;\n border-top: $arrow-size solid rgb(128, 128, 128);\n}\n</style>\n"],"names":["_sfc_main","Widget","type","value","result","_createElementBlock","_normalizeStyle","$options","_ctx","_createElementVNode"],"mappings":";;;AAkCA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AACL,WAAO;AAAA,MACL,OAAO;AAAA;AAAA,MACP,QAAQ;AAAA;AAAA,IACV;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACR,WAAW;AACT,aAAO;AAAA,QACL,YAAY,KAAK,SAAS;AAAA,QAC1B,WAAW,KAAK,QAAQ;AAAA,QACxB,sBAAsB,KAAK,SAAS,IAAI;AAAA,QACxC,cAAc,KAAK,aAAY,IAAK;AAAA,MACtC;AAAA,IACD;AAAA,IACD,MAAM;AACJ,aAAO,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,IACnC;AAAA,IACD,MAAM;AACJ,aAAO,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,IACnC;AAAA,IACD,QAAQ;AACN,aAAO,KAAK,MAAM,KAAK;AAAA,IACxB;AAAA,EACF;AAAA,EACD,UAAU;AACR,UAAMC,IAAO,KAAK,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;AACvD,SAAK,UAAU,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAKA,CAAI,IAC3F,KAAK,MAAM,WAAW,KAAK,OAAO,GAElC,KAAK,QAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,KAAK,GAC/D,KAAK,SAAS,KAAK,UAAU,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,MAAM;AAAA,EACnE;AAAA,EACD,YAAY;AACV,SAAK,MAAM,cAAc,KAAK,OAAO;AAAA,EACtC;AAAA,EACD,SAAS;AAAA,IACP,eAAe;AACb,UAAIC,IAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC;AAC7C,UAAI,CAACA;AACH,eAAO;AAET,UAAIA,EAAM;AACR,eAAIA,EAAM,QAAQ,cACT,IAGA;AAGX,YAAMC,KAAWD,IAAQ,KAAK,OAAO,KAAK,QAAS;AACnD,aAAIC,IAAS,MACJ,MACEA,IAAS,IACX,IAEAA;AAAA,IAEV;AAAA,EACF;AACH;;cAzEEC,EAKM,OAAA;AAAA,IALD,OAAM;AAAA,IAAY,OAvBzBC,EAAA,CAuBiCC,EAAQ,UAAEC,EAAa,aAAA,CAAA;AAAA;IACpDC,EAGM,OAAA,EAHD,OAAM,sBAAqB,GAAA;AAAA,MAC9BA,EAA8B,OAAA,EAAzB,OAAM,iBAAgB,CAAA;AAAA,MAC3BA,EAA+B,OAAA,EAA1B,OAAM,kBAAiB,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"RangebarWidget-CG2Y7eYp.js","sources":["../src/widgets/RangebarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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=\"rangebar\" :style=\"[cssProps, computedStyle]\">\n <div class=\"rangebar__container\">\n <div class=\"rangebar__line\" />\n <div class=\"rangebar__arrow\" />\n </div>\n </div>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n width: 160, // px\n height: 22, // px\n }\n },\n computed: {\n cssProps() {\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-height': this.height - 5 + 'px',\n '--position': this.calcPosition() + '%',\n }\n },\n min() {\n return parseInt(this.parameters[3])\n },\n max() {\n return parseInt(this.parameters[4])\n },\n range() {\n return this.max - this.min\n },\n },\n created() {\n const type = this.parameters[5] ? this.parameters[5] : 'CONVERTED'\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${type}`\n this.$emit('addItem', this.valueId)\n\n this.width = this.setWidth(this.parameters[6], 'px', this.width)\n this.height = this.setHeight(this.parameters[7], 'px', this.height)\n },\n unmounted() {\n this.$emit('deleteItem', this.valueId)\n },\n methods: {\n calcPosition() {\n let value = this.screenValues[this.valueId][0]\n if (!value) {\n return 0\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 const result = ((value - this.min) / this.range) * 100\n if (result > 100) {\n return 100\n } else if (result < 0) {\n return 0\n } else {\n return result\n }\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.rangebar {\n cursor: default;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5px;\n padding-top: 15px;\n width: var(--width);\n margin-bottom: 5px;\n}\n.rangebar__container {\n position: relative;\n flex: 1;\n height: var(--container-height);\n border: 1px solid black;\n background-color: white;\n}\n.rangebar__line {\n position: absolute;\n left: var(--position);\n width: 1px;\n height: var(--container-height);\n background-color: rgb(128, 128, 128);\n}\n$arrow-size: 5px;\n.rangebar__arrow {\n position: absolute;\n top: -$arrow-size;\n left: var(--position);\n width: 0;\n height: 0;\n transform: translateX(-$arrow-size); // Transform so it sits over the line\n border-left: $arrow-size solid transparent;\n border-right: $arrow-size solid transparent;\n border-top: $arrow-size solid rgb(128, 128, 128);\n}\n</style>\n"],"names":["_sfc_main","Widget","type","value","result","_createElementBlock","_normalizeStyle","$options","_ctx","_createElementVNode"],"mappings":";;;AAkCA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AACL,WAAO;AAAA,MACL,OAAO;AAAA;AAAA,MACP,QAAQ;AAAA;AAAA,IACV;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACR,WAAW;AACT,aAAO;AAAA,QACL,YAAY,KAAK,SAAS;AAAA,QAC1B,WAAW,KAAK,QAAQ;AAAA,QACxB,sBAAsB,KAAK,SAAS,IAAI;AAAA,QACxC,cAAc,KAAK,aAAY,IAAK;AAAA,MACtC;AAAA,IACD;AAAA,IACD,MAAM;AACJ,aAAO,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,IACnC;AAAA,IACD,MAAM;AACJ,aAAO,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,IACnC;AAAA,IACD,QAAQ;AACN,aAAO,KAAK,MAAM,KAAK;AAAA,IACxB;AAAA,EACF;AAAA,EACD,UAAU;AACR,UAAMC,IAAO,KAAK,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;AACvD,SAAK,UAAU,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAKA,CAAI,IAC3F,KAAK,MAAM,WAAW,KAAK,OAAO,GAElC,KAAK,QAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,KAAK,GAC/D,KAAK,SAAS,KAAK,UAAU,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,MAAM;AAAA,EACnE;AAAA,EACD,YAAY;AACV,SAAK,MAAM,cAAc,KAAK,OAAO;AAAA,EACtC;AAAA,EACD,SAAS;AAAA,IACP,eAAe;AACb,UAAIC,IAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC;AAC7C,UAAI,CAACA;AACH,eAAO;AAET,UAAIA,EAAM;AACR,eAAIA,EAAM,QAAQ,cACT,IAGA;AAGX,YAAMC,KAAWD,IAAQ,KAAK,OAAO,KAAK,QAAS;AACnD,aAAIC,IAAS,MACJ,MACEA,IAAS,IACX,IAEAA;AAAA,IAEV;AAAA,EACF;AACH;;cAzEEC,EAKM,OAAA;AAAA,IALD,OAAM;AAAA,IAAY,OAvBzBC,EAAA,CAuBiCC,EAAQ,UAAEC,EAAa,aAAA,CAAA;AAAA;IACpDC,EAGM,OAAA,EAHD,OAAM,sBAAqB,GAAA;AAAA,MAC9BA,EAA8B,OAAA,EAAzB,OAAM,iBAAgB,CAAA;AAAA,MAC3BA,EAA+B,OAAA,EAA1B,OAAM,kBAAiB,CAAA;AAAA;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./Widget-ChoIB2dd.cjs"),r=require("vue"),a=require("./CustomIcon-Bop2mEnu.cjs"),n={mixins:[i.Widget],data(){return{width:160,height:22}},computed:{cssProps(){return{"--height":this.height+"px","--width":this.width+"px","--container-height":this.height-5+"px","--position":this.calcPosition()+"%"}},min(){return parseInt(this.parameters[3])},max(){return parseInt(this.parameters[4])},range(){return this.max-this.min}},created(){const e=this.parameters[5]?this.parameters[5]:"CONVERTED";this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${e}`,this.$emit("addItem",this.valueId),this.width=this.setWidth(this.parameters[6],"px",this.width),this.height=this.setHeight(this.parameters[7],"px",this.height)},unmounted(){this.$emit("deleteItem",this.valueId)},methods:{calcPosition(){let e=this.screenValues[this.valueId][0];if(!e)return 0;if(e.raw)return e.raw==="-Infinity"?0:100;const t=(e-this.min)/this.range*100;return t>100?100:t<0?0:t}}};function h(e,t,d,c,u,s){return r.openBlock(),r.createElementBlock("div",{class:"rangebar",style:r.normalizeStyle([s.cssProps,e.computedStyle])},t[0]||(t[0]=[r.createElementVNode("div",{class:"rangebar__container"},[r.createElementVNode("div",{class:"rangebar__line"}),r.createElementVNode("div",{class:"rangebar__arrow"})],-1)]),4)}const o=a._export_sfc(n,[["render",h],["__scopeId","data-v-34d37e7c"]]);exports.default=o;
2
- //# sourceMappingURL=RangebarWidget-DwIs-L5k.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./Widget-EsyLQi_8.cjs"),r=require("vue"),a=require("./CustomIcon-Bop2mEnu.cjs"),n={mixins:[i.Widget],data(){return{width:160,height:22}},computed:{cssProps(){return{"--height":this.height+"px","--width":this.width+"px","--container-height":this.height-5+"px","--position":this.calcPosition()+"%"}},min(){return parseInt(this.parameters[3])},max(){return parseInt(this.parameters[4])},range(){return this.max-this.min}},created(){const e=this.parameters[5]?this.parameters[5]:"CONVERTED";this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${e}`,this.$emit("addItem",this.valueId),this.width=this.setWidth(this.parameters[6],"px",this.width),this.height=this.setHeight(this.parameters[7],"px",this.height)},unmounted(){this.$emit("deleteItem",this.valueId)},methods:{calcPosition(){let e=this.screenValues[this.valueId][0];if(!e)return 0;if(e.raw)return e.raw==="-Infinity"?0:100;const t=(e-this.min)/this.range*100;return t>100?100:t<0?0:t}}};function h(e,t,d,c,u,s){return r.openBlock(),r.createElementBlock("div",{class:"rangebar",style:r.normalizeStyle([s.cssProps,e.computedStyle])},t[0]||(t[0]=[r.createElementVNode("div",{class:"rangebar__container"},[r.createElementVNode("div",{class:"rangebar__line"}),r.createElementVNode("div",{class:"rangebar__arrow"})],-1)]),4)}const o=a._export_sfc(n,[["render",h],["__scopeId","data-v-34d37e7c"]]);exports.default=o;
2
+ //# sourceMappingURL=RangebarWidget-CLMKfbiT.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RangebarWidget-DwIs-L5k.cjs","sources":["../src/widgets/RangebarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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=\"rangebar\" :style=\"[cssProps, computedStyle]\">\n <div class=\"rangebar__container\">\n <div class=\"rangebar__line\" />\n <div class=\"rangebar__arrow\" />\n </div>\n </div>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n width: 160, // px\n height: 22, // px\n }\n },\n computed: {\n cssProps() {\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-height': this.height - 5 + 'px',\n '--position': this.calcPosition() + '%',\n }\n },\n min() {\n return parseInt(this.parameters[3])\n },\n max() {\n return parseInt(this.parameters[4])\n },\n range() {\n return this.max - this.min\n },\n },\n created() {\n const type = this.parameters[5] ? this.parameters[5] : 'CONVERTED'\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${type}`\n this.$emit('addItem', this.valueId)\n\n this.width = this.setWidth(this.parameters[6], 'px', this.width)\n this.height = this.setHeight(this.parameters[7], 'px', this.height)\n },\n unmounted() {\n this.$emit('deleteItem', this.valueId)\n },\n methods: {\n calcPosition() {\n let value = this.screenValues[this.valueId][0]\n if (!value) {\n return 0\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 const result = ((value - this.min) / this.range) * 100\n if (result > 100) {\n return 100\n } else if (result < 0) {\n return 0\n } else {\n return result\n }\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.rangebar {\n cursor: default;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5px;\n padding-top: 15px;\n width: var(--width);\n margin-bottom: 5px;\n}\n.rangebar__container {\n position: relative;\n flex: 1;\n height: var(--container-height);\n border: 1px solid black;\n background-color: white;\n}\n.rangebar__line {\n position: absolute;\n left: var(--position);\n width: 1px;\n height: var(--container-height);\n background-color: rgb(128, 128, 128);\n}\n$arrow-size: 5px;\n.rangebar__arrow {\n position: absolute;\n top: -$arrow-size;\n left: var(--position);\n width: 0;\n height: 0;\n transform: translateX(-$arrow-size); // Transform so it sits over the line\n border-left: $arrow-size solid transparent;\n border-right: $arrow-size solid transparent;\n border-top: $arrow-size solid rgb(128, 128, 128);\n}\n</style>\n"],"names":["_sfc_main","Widget","type","value","result","_createElementBlock","_normalizeStyle","$options","_ctx","_createElementVNode"],"mappings":"iLAkCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,MAAO,IACP,OAAQ,EACV,CACD,EACD,SAAU,CACR,UAAW,CACT,MAAO,CACL,WAAY,KAAK,OAAS,KAC1B,UAAW,KAAK,MAAQ,KACxB,qBAAsB,KAAK,OAAS,EAAI,KACxC,aAAc,KAAK,aAAY,EAAK,GACtC,CACD,EACD,KAAM,CACJ,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CACnC,EACD,KAAM,CACJ,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CACnC,EACD,OAAQ,CACN,OAAO,KAAK,IAAM,KAAK,GACxB,CACF,EACD,SAAU,CACR,MAAMC,EAAO,KAAK,WAAW,CAAC,EAAI,KAAK,WAAW,CAAC,EAAI,YACvD,KAAK,QAAU,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAKA,CAAI,GAC3F,KAAK,MAAM,UAAW,KAAK,OAAO,EAElC,KAAK,MAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,KAAK,EAC/D,KAAK,OAAS,KAAK,UAAU,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,MAAM,CACnE,EACD,WAAY,CACV,KAAK,MAAM,aAAc,KAAK,OAAO,CACtC,EACD,QAAS,CACP,cAAe,CACb,IAAIC,EAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC,EAC7C,GAAI,CAACA,EACH,MAAO,GAET,GAAIA,EAAM,IACR,OAAIA,EAAM,MAAQ,YACT,EAGA,IAGX,MAAMC,GAAWD,EAAQ,KAAK,KAAO,KAAK,MAAS,IACnD,OAAIC,EAAS,IACJ,IACEA,EAAS,EACX,EAEAA,CAEV,CACF,CACH,+CAzEEC,EAKM,mBAAA,MAAA,CALD,MAAM,WAAY,MAvBzBC,EAAA,eAAA,CAuBiCC,EAAQ,SAAEC,EAAa,aAAA,CAAA,gBACpDC,EAAAA,mBAGM,MAAA,CAHD,MAAM,qBAAqB,EAAA,CAC9BA,EAAAA,mBAA8B,MAAA,CAAzB,MAAM,gBAAgB,CAAA,EAC3BA,EAAAA,mBAA+B,MAAA,CAA1B,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"RangebarWidget-CLMKfbiT.cjs","sources":["../src/widgets/RangebarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, 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=\"rangebar\" :style=\"[cssProps, computedStyle]\">\n <div class=\"rangebar__container\">\n <div class=\"rangebar__line\" />\n <div class=\"rangebar__arrow\" />\n </div>\n </div>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n width: 160, // px\n height: 22, // px\n }\n },\n computed: {\n cssProps() {\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-height': this.height - 5 + 'px',\n '--position': this.calcPosition() + '%',\n }\n },\n min() {\n return parseInt(this.parameters[3])\n },\n max() {\n return parseInt(this.parameters[4])\n },\n range() {\n return this.max - this.min\n },\n },\n created() {\n const type = this.parameters[5] ? this.parameters[5] : 'CONVERTED'\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${type}`\n this.$emit('addItem', this.valueId)\n\n this.width = this.setWidth(this.parameters[6], 'px', this.width)\n this.height = this.setHeight(this.parameters[7], 'px', this.height)\n },\n unmounted() {\n this.$emit('deleteItem', this.valueId)\n },\n methods: {\n calcPosition() {\n let value = this.screenValues[this.valueId][0]\n if (!value) {\n return 0\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 const result = ((value - this.min) / this.range) * 100\n if (result > 100) {\n return 100\n } else if (result < 0) {\n return 0\n } else {\n return result\n }\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.rangebar {\n cursor: default;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5px;\n padding-top: 15px;\n width: var(--width);\n margin-bottom: 5px;\n}\n.rangebar__container {\n position: relative;\n flex: 1;\n height: var(--container-height);\n border: 1px solid black;\n background-color: white;\n}\n.rangebar__line {\n position: absolute;\n left: var(--position);\n width: 1px;\n height: var(--container-height);\n background-color: rgb(128, 128, 128);\n}\n$arrow-size: 5px;\n.rangebar__arrow {\n position: absolute;\n top: -$arrow-size;\n left: var(--position);\n width: 0;\n height: 0;\n transform: translateX(-$arrow-size); // Transform so it sits over the line\n border-left: $arrow-size solid transparent;\n border-right: $arrow-size solid transparent;\n border-top: $arrow-size solid rgb(128, 128, 128);\n}\n</style>\n"],"names":["_sfc_main","Widget","type","value","result","_createElementBlock","_normalizeStyle","$options","_ctx","_createElementVNode"],"mappings":"iLAkCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,MAAO,IACP,OAAQ,EACV,CACD,EACD,SAAU,CACR,UAAW,CACT,MAAO,CACL,WAAY,KAAK,OAAS,KAC1B,UAAW,KAAK,MAAQ,KACxB,qBAAsB,KAAK,OAAS,EAAI,KACxC,aAAc,KAAK,aAAY,EAAK,GACtC,CACD,EACD,KAAM,CACJ,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CACnC,EACD,KAAM,CACJ,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CACnC,EACD,OAAQ,CACN,OAAO,KAAK,IAAM,KAAK,GACxB,CACF,EACD,SAAU,CACR,MAAMC,EAAO,KAAK,WAAW,CAAC,EAAI,KAAK,WAAW,CAAC,EAAI,YACvD,KAAK,QAAU,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAKA,CAAI,GAC3F,KAAK,MAAM,UAAW,KAAK,OAAO,EAElC,KAAK,MAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,KAAK,EAC/D,KAAK,OAAS,KAAK,UAAU,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,MAAM,CACnE,EACD,WAAY,CACV,KAAK,MAAM,aAAc,KAAK,OAAO,CACtC,EACD,QAAS,CACP,cAAe,CACb,IAAIC,EAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC,EAC7C,GAAI,CAACA,EACH,MAAO,GAET,GAAIA,EAAM,IACR,OAAIA,EAAM,MAAQ,YACT,EAGA,IAGX,MAAMC,GAAWD,EAAQ,KAAK,KAAO,KAAK,MAAS,IACnD,OAAIC,EAAS,IACJ,IACEA,EAAS,EACX,EAEAA,CAEV,CACF,CACH,+CAzEEC,EAKM,mBAAA,MAAA,CALD,MAAM,WAAY,MAvBzBC,EAAA,eAAA,CAuBiCC,EAAQ,SAAEC,EAAa,aAAA,CAAA,gBACpDC,EAAAA,mBAGM,MAAA,CAHD,MAAM,qBAAqB,EAAA,CAC9BA,EAAAA,mBAA8B,MAAA,CAAzB,MAAM,gBAAgB,CAAA,EAC3BA,EAAAA,mBAA+B,MAAA,CAA1B,MAAM,iBAAiB,CAAA"}
@@ -1,5 +1,5 @@
1
- import { o as C } from "./WidgetComponents-C1lSLZ0I.js";
2
- import { resolveComponent as o, createElementBlock as c, openBlock as p, createVNode as t, withCtx as s, createTextVNode as d, createElementVNode as i, createCommentVNode as w, toDisplayString as E } from "vue";
1
+ import { l as C } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CVrrWDJ_.js";
2
+ import { resolveComponent as n, createElementBlock as c, openBlock as p, createVNode as t, withCtx as s, createTextVNode as d, createElementVNode as i, createCommentVNode as w, toDisplayString as E } from "vue";
3
3
  import { _ as g } from "./CustomIcon-h5X7369N.js";
4
4
  const T = {
5
5
  data() {
@@ -41,8 +41,8 @@ const T = {
41
41
  key: 0,
42
42
  class: "monospace"
43
43
  };
44
- function k(a, e, N, S, n, r) {
45
- const u = o("v-card-title"), _ = o("v-card-subtitle"), v = o("v-text-field"), x = o("v-card-text"), h = o("v-btn"), m = o("v-radio"), f = o("v-radio-group"), R = o("v-card-actions"), b = o("v-data-table"), y = o("v-card");
44
+ function k(a, e, N, S, o, r) {
45
+ const u = n("v-card-title"), _ = n("v-card-subtitle"), v = n("v-text-field"), x = n("v-card-text"), h = n("v-btn"), m = n("v-radio"), f = n("v-radio-group"), R = n("v-card-actions"), b = n("v-data-table"), y = n("v-card");
46
46
  return p(), c("div", null, [
47
47
  t(y, null, {
48
48
  default: s(() => [
@@ -69,18 +69,18 @@ function k(a, e, N, S, n, r) {
69
69
  t(v, {
70
70
  label: "Redis command",
71
71
  class: "monospace",
72
- modelValue: n.redisCommandText,
73
- "onUpdate:modelValue": e[0] || (e[0] = (l) => n.redisCommandText = l),
72
+ modelValue: o.redisCommandText,
73
+ "onUpdate:modelValue": e[0] || (e[0] = (l) => o.redisCommandText = l),
74
74
  onKeydown: r.commandKeydown
75
75
  }, null, 8, ["modelValue", "onKeydown"]),
76
- n.redisResponse ? (p(), c("span", V, " Response: " + E(n.redisResponse), 1)) : w("", !0)
76
+ o.redisResponse ? (p(), c("span", V, " Response: " + E(o.redisResponse), 1)) : w("", !0)
77
77
  ]),
78
78
  _: 1
79
79
  }),
80
80
  t(R, { class: "px-2" }, {
81
81
  default: s(() => [
82
82
  t(h, {
83
- disabled: !n.redisCommandText.length,
83
+ disabled: !o.redisCommandText.length,
84
84
  onClick: r.executeRaw,
85
85
  color: "success",
86
86
  variant: "text"
@@ -91,8 +91,8 @@ function k(a, e, N, S, n, r) {
91
91
  _: 1
92
92
  }, 8, ["disabled", "onClick"]),
93
93
  t(f, {
94
- modelValue: n.redisEndpoint,
95
- "onUpdate:modelValue": e[1] || (e[1] = (l) => n.redisEndpoint = l),
94
+ modelValue: o.redisEndpoint,
95
+ "onUpdate:modelValue": e[1] || (e[1] = (l) => o.redisEndpoint = l),
96
96
  inline: "",
97
97
  "hide-details": "",
98
98
  class: "mt-0"
@@ -115,8 +115,8 @@ function k(a, e, N, S, n, r) {
115
115
  _: 1
116
116
  }),
117
117
  t(b, {
118
- headers: n.headers,
119
- items: n.commands,
118
+ headers: o.headers,
119
+ items: o.commands,
120
120
  class: "monospace",
121
121
  "items-per-page": -1,
122
122
  "hide-default-footer": "",
@@ -132,4 +132,4 @@ const A = /* @__PURE__ */ g(T, [["render", k], ["__scopeId", "data-v-28716ab0"]]
132
132
  export {
133
133
  A as default
134
134
  };
135
- //# sourceMappingURL=RedisTab-CyPo6ADN.js.map
135
+ //# sourceMappingURL=RedisTab-CvPLS0Qe.js.map