@openc3/vue-common 6.10.4 → 6.10.5

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 (416) hide show
  1. package/dist/{ArrayWidget-DfiusKpM.js → ArrayWidget-CB1594s3.js} +4 -4
  2. package/dist/{ArrayWidget-DfiusKpM.js.map → ArrayWidget-CB1594s3.js.map} +1 -1
  3. package/dist/{ArrayWidget-CIMbQsGW.cjs → ArrayWidget-CKVa2jS0.cjs} +2 -2
  4. package/dist/{ArrayWidget-CIMbQsGW.cjs.map → ArrayWidget-CKVa2jS0.cjs.map} +1 -1
  5. package/dist/{ArrayplotWidget-DrrqqJEu.cjs → ArrayplotWidget-BTIkHdc1.cjs} +2 -2
  6. package/dist/{ArrayplotWidget-DrrqqJEu.cjs.map → ArrayplotWidget-BTIkHdc1.cjs.map} +1 -1
  7. package/dist/{ArrayplotWidget-DsvOovu9.js → ArrayplotWidget-BfauFgCc.js} +3 -3
  8. package/dist/{ArrayplotWidget-DsvOovu9.js.map → ArrayplotWidget-BfauFgCc.js.map} +1 -1
  9. package/dist/{BarColumn-CWgcL5w1.cjs → BarColumn-3M4oLg_y.cjs} +2 -2
  10. package/dist/{BarColumn-CWgcL5w1.cjs.map → BarColumn-3M4oLg_y.cjs.map} +1 -1
  11. package/dist/{BarColumn-DHHJBR3V.js → BarColumn-BN5j9sPr.js} +3 -3
  12. package/dist/{BarColumn-DHHJBR3V.js.map → BarColumn-BN5j9sPr.js.map} +1 -1
  13. package/dist/{BlockWidget-BdYXWS_0.js → BlockWidget-C9__-7CU.js} +4 -4
  14. package/dist/{BlockWidget-BdYXWS_0.js.map → BlockWidget-C9__-7CU.js.map} +1 -1
  15. package/dist/{BlockWidget-7Ecn_42c.cjs → BlockWidget-Ur9wX3Gb.cjs} +2 -2
  16. package/dist/{BlockWidget-7Ecn_42c.cjs.map → BlockWidget-Ur9wX3Gb.cjs.map} +1 -1
  17. package/dist/{ButtonWidget-DFxBj0MG.cjs → ButtonWidget-Cn74AwrM.cjs} +3 -3
  18. package/dist/{ButtonWidget-DFxBj0MG.cjs.map → ButtonWidget-Cn74AwrM.cjs.map} +1 -1
  19. package/dist/{ButtonWidget-zpSJmiQT.js → ButtonWidget-CyixmRMa.js} +6 -6
  20. package/dist/{ButtonWidget-zpSJmiQT.js.map → ButtonWidget-CyixmRMa.js.map} +1 -1
  21. package/dist/{CanvasWidget-C5-iZ-YT.cjs → CanvasWidget-B8iqIUJ_.cjs} +2 -2
  22. package/dist/{CanvasWidget-C5-iZ-YT.cjs.map → CanvasWidget-B8iqIUJ_.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-DaUB1G9X.js → CanvasWidget-BlM9VhEb.js} +2 -2
  24. package/dist/{CanvasWidget-DaUB1G9X.js.map → CanvasWidget-BlM9VhEb.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-CCrgS1yO.cjs → CanvasdotWidget-CAXR5Ugc.cjs} +2 -2
  26. package/dist/{CanvasdotWidget-CCrgS1yO.cjs.map → CanvasdotWidget-CAXR5Ugc.cjs.map} +1 -1
  27. package/dist/{CanvasdotWidget-C255aTVc.js → CanvasdotWidget-DcoLJfNd.js} +2 -2
  28. package/dist/{CanvasdotWidget-C255aTVc.js.map → CanvasdotWidget-DcoLJfNd.js.map} +1 -1
  29. package/dist/{CanvasimageWidget-CFlUUFqr.js → CanvasimageWidget-BOa0--hu.js} +3 -3
  30. package/dist/{CanvasimageWidget-CFlUUFqr.js.map → CanvasimageWidget-BOa0--hu.js.map} +1 -1
  31. package/dist/{CanvasimageWidget-B2Mm0dYq.cjs → CanvasimageWidget-DQW5IGWY.cjs} +2 -2
  32. package/dist/{CanvasimageWidget-B2Mm0dYq.cjs.map → CanvasimageWidget-DQW5IGWY.cjs.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-B1xVa3FB.cjs → CanvasimagevalueWidget-C8PAOXth.cjs} +2 -2
  34. package/dist/{CanvasimagevalueWidget-B1xVa3FB.cjs.map → CanvasimagevalueWidget-C8PAOXth.cjs.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-s4gR3fo5.js → CanvasimagevalueWidget-CAnfTNIH.js} +3 -3
  36. package/dist/{CanvasimagevalueWidget-s4gR3fo5.js.map → CanvasimagevalueWidget-CAnfTNIH.js.map} +1 -1
  37. package/dist/{CanvaslabelWidget-CAtE3qq_.cjs → CanvaslabelWidget-B_qS8Spc.cjs} +2 -2
  38. package/dist/{CanvaslabelWidget-CAtE3qq_.cjs.map → CanvaslabelWidget-B_qS8Spc.cjs.map} +1 -1
  39. package/dist/{CanvaslabelWidget-CaOc-lTQ.js → CanvaslabelWidget-VhSU0ghh.js} +2 -2
  40. package/dist/{CanvaslabelWidget-CaOc-lTQ.js.map → CanvaslabelWidget-VhSU0ghh.js.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-CvVMrZsu.cjs → CanvaslabelvalueWidget-BSEbDdBo.cjs} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-CvVMrZsu.cjs.map → CanvaslabelvalueWidget-BSEbDdBo.cjs.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-hqJoPekq.js → CanvaslabelvalueWidget-DLoJuMEa.js} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-hqJoPekq.js.map → CanvaslabelvalueWidget-DLoJuMEa.js.map} +1 -1
  45. package/dist/{CanvaslineWidget-DebP2L43.js → CanvaslineWidget-COWhdPmg.js} +2 -2
  46. package/dist/{CanvaslineWidget-DebP2L43.js.map → CanvaslineWidget-COWhdPmg.js.map} +1 -1
  47. package/dist/{CanvaslineWidget-CjPnyDod.cjs → CanvaslineWidget-evoYrcu3.cjs} +2 -2
  48. package/dist/{CanvaslineWidget-CjPnyDod.cjs.map → CanvaslineWidget-evoYrcu3.cjs.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-BkPG5Vtx.js → CanvaslinevalueWidget-B2RUoEiO.js} +2 -2
  50. package/dist/{CanvaslinevalueWidget-BkPG5Vtx.js.map → CanvaslinevalueWidget-B2RUoEiO.js.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-Caadjtan.cjs → CanvaslinevalueWidget-RhSLERSp.cjs} +2 -2
  52. package/dist/{CanvaslinevalueWidget-Caadjtan.cjs.map → CanvaslinevalueWidget-RhSLERSp.cjs.map} +1 -1
  53. package/dist/{CheckbuttonWidget-CEOWZkt6.cjs → CheckbuttonWidget-D2KHchsA.cjs} +2 -2
  54. package/dist/{CheckbuttonWidget-CEOWZkt6.cjs.map → CheckbuttonWidget-D2KHchsA.cjs.map} +1 -1
  55. package/dist/{CheckbuttonWidget-eQIcPATf.js → CheckbuttonWidget-mMOQENwY.js} +2 -2
  56. package/dist/{CheckbuttonWidget-eQIcPATf.js.map → CheckbuttonWidget-mMOQENwY.js.map} +1 -1
  57. package/dist/{ClassificationBanners--l3qMxLo.cjs → ClassificationBanners-CKzacoSH.cjs} +2 -2
  58. package/dist/{ClassificationBanners--l3qMxLo.cjs.map → ClassificationBanners-CKzacoSH.cjs.map} +1 -1
  59. package/dist/{ClassificationBanners-CFLQaZJ2.js → ClassificationBanners-CnKda5CL.js} +2 -2
  60. package/dist/{ClassificationBanners-CFLQaZJ2.js.map → ClassificationBanners-CnKda5CL.js.map} +1 -1
  61. package/dist/{ComboboxWidget-B5kzYxFk.js → ComboboxWidget-BGuSLu81.js} +2 -2
  62. package/dist/{ComboboxWidget-B5kzYxFk.js.map → ComboboxWidget-BGuSLu81.js.map} +1 -1
  63. package/dist/{ComboboxWidget-BSs59QzI.cjs → ComboboxWidget-CuO75LNL.cjs} +2 -2
  64. package/dist/{ComboboxWidget-BSs59QzI.cjs.map → ComboboxWidget-CuO75LNL.cjs.map} +1 -1
  65. package/dist/{CriticalCmdDialog-BhjiJIo5.cjs → CriticalCmdDialog-CW49WCHL.cjs} +2 -2
  66. package/dist/{CriticalCmdDialog-BhjiJIo5.cjs.map → CriticalCmdDialog-CW49WCHL.cjs.map} +1 -1
  67. package/dist/{CriticalCmdDialog-BYHZbX2w.js → CriticalCmdDialog-DqmsE7es.js} +6 -6
  68. package/dist/{CriticalCmdDialog-BYHZbX2w.js.map → CriticalCmdDialog-DqmsE7es.js.map} +1 -1
  69. package/dist/{DateWidget-DkVxE7Xj.cjs → DateWidget-CC63S2BH.cjs} +2 -2
  70. package/dist/{DateWidget-DkVxE7Xj.cjs.map → DateWidget-CC63S2BH.cjs.map} +1 -1
  71. package/dist/{DateWidget-1IZOe50K.js → DateWidget-DYTNL9Nt.js} +2 -2
  72. package/dist/{DateWidget-1IZOe50K.js.map → DateWidget-DYTNL9Nt.js.map} +1 -1
  73. package/dist/{DetailsDialog-D-rjL4oc.js → DetailsDialog-Bnj0flUv.js} +9 -9
  74. package/dist/{DetailsDialog-D-rjL4oc.js.map → DetailsDialog-Bnj0flUv.js.map} +1 -1
  75. package/dist/{DetailsDialog-lJG8eclU.cjs → DetailsDialog-DW8hRSS6.cjs} +2 -2
  76. package/dist/{DetailsDialog-lJG8eclU.cjs.map → DetailsDialog-DW8hRSS6.cjs.map} +1 -1
  77. package/dist/{EventListDialog-Id3rEQKY.js → EventListDialog-BV9m-oEq.js} +4 -4
  78. package/dist/{EventListDialog-Id3rEQKY.js.map → EventListDialog-BV9m-oEq.js.map} +1 -1
  79. package/dist/{EventListDialog-5UXvnmNE.cjs → EventListDialog-CXiEoYXY.cjs} +2 -2
  80. package/dist/{EventListDialog-5UXvnmNE.cjs.map → EventListDialog-CXiEoYXY.cjs.map} +1 -1
  81. package/dist/{FilechecksumWidget-D-5GSjyV.cjs → FilechecksumWidget-CCD4OHUJ.cjs} +2 -2
  82. package/dist/{FilechecksumWidget-D-5GSjyV.cjs.map → FilechecksumWidget-CCD4OHUJ.cjs.map} +1 -1
  83. package/dist/{FilechecksumWidget-F_FX1Kjx.js → FilechecksumWidget-Cxu-88vM.js} +3 -3
  84. package/dist/{FilechecksumWidget-F_FX1Kjx.js.map → FilechecksumWidget-Cxu-88vM.js.map} +1 -1
  85. package/dist/{FiledisplayWidget-BHLOY_cM.cjs → FiledisplayWidget-BNCoMpUN.cjs} +2 -2
  86. package/dist/{FiledisplayWidget-BHLOY_cM.cjs.map → FiledisplayWidget-BNCoMpUN.cjs.map} +1 -1
  87. package/dist/{FiledisplayWidget-BF3G22jF.js → FiledisplayWidget-UimFPng3.js} +8 -8
  88. package/dist/{FiledisplayWidget-BF3G22jF.js.map → FiledisplayWidget-UimFPng3.js.map} +1 -1
  89. package/dist/{FormatvalueWidget-BkF9iiHs.js → FormatvalueWidget-Ct3waryv.js} +13 -11
  90. package/dist/{FormatvalueWidget-BkF9iiHs.js.map → FormatvalueWidget-Ct3waryv.js.map} +1 -1
  91. package/dist/FormatvalueWidget-kOhazTdt.cjs +2 -0
  92. package/dist/{FormatvalueWidget-DTsP7isW.cjs.map → FormatvalueWidget-kOhazTdt.cjs.map} +1 -1
  93. package/dist/{Graph-YYieRGo0.cjs → Graph-BT7YHaLU.cjs} +2 -2
  94. package/dist/{Graph-YYieRGo0.cjs.map → Graph-BT7YHaLU.cjs.map} +1 -1
  95. package/dist/{Graph-C-7C2Jq5.js → Graph-Dy2y26su.js} +4 -4
  96. package/dist/{Graph-C-7C2Jq5.js.map → Graph-Dy2y26su.js.map} +1 -1
  97. package/dist/{GraphWidget-C7hqdqL-.cjs → GraphWidget-BuLKrARk.cjs} +2 -2
  98. package/dist/{GraphWidget-C7hqdqL-.cjs.map → GraphWidget-BuLKrARk.cjs.map} +1 -1
  99. package/dist/{GraphWidget-DRkDn8za.js → GraphWidget-CuG4jeoM.js} +2 -2
  100. package/dist/{GraphWidget-DRkDn8za.js.map → GraphWidget-CuG4jeoM.js.map} +1 -1
  101. package/dist/{HorizontalWidget-DB64wzZB.js → HorizontalWidget-C1K91iwc.js} +2 -2
  102. package/dist/{HorizontalWidget-DB64wzZB.js.map → HorizontalWidget-C1K91iwc.js.map} +1 -1
  103. package/dist/{HorizontalWidget-h-U8i3G-.cjs → HorizontalWidget-Cg736bCD.cjs} +2 -2
  104. package/dist/{HorizontalWidget-h-U8i3G-.cjs.map → HorizontalWidget-Cg736bCD.cjs.map} +1 -1
  105. package/dist/{HorizontalboxWidget-E4LUf2eN.cjs → HorizontalboxWidget-Bx1ISrig.cjs} +2 -2
  106. package/dist/{HorizontalboxWidget-E4LUf2eN.cjs.map → HorizontalboxWidget-Bx1ISrig.cjs.map} +1 -1
  107. package/dist/{HorizontalboxWidget-BsHsGlvK.js → HorizontalboxWidget-Db8knddI.js} +5 -5
  108. package/dist/{HorizontalboxWidget-BsHsGlvK.js.map → HorizontalboxWidget-Db8knddI.js.map} +1 -1
  109. package/dist/{HorizontallineWidget-LibmHnAf.cjs → HorizontallineWidget-BRrshiSM.cjs} +2 -2
  110. package/dist/{HorizontallineWidget-LibmHnAf.cjs.map → HorizontallineWidget-BRrshiSM.cjs.map} +1 -1
  111. package/dist/{HorizontallineWidget-CyiexzIu.js → HorizontallineWidget-JtdiNy0r.js} +2 -2
  112. package/dist/{HorizontallineWidget-CyiexzIu.js.map → HorizontallineWidget-JtdiNy0r.js.map} +1 -1
  113. package/dist/{IframeWidget-D9Vh0w2c.js → IframeWidget-BIlFhl5W.js} +16 -16
  114. package/dist/IframeWidget-BIlFhl5W.js.map +1 -0
  115. package/dist/IframeWidget-CTwNNY_Y.cjs +2 -0
  116. package/dist/IframeWidget-CTwNNY_Y.cjs.map +1 -0
  117. package/dist/{ImageLoader-B4iBPFyi.js → ImageLoader-Wgn0HO-B.js} +2 -2
  118. package/dist/{ImageLoader-B4iBPFyi.js.map → ImageLoader-Wgn0HO-B.js.map} +1 -1
  119. package/dist/{ImageLoader-Cc4-BNJv.cjs → ImageLoader-maE53iG0.cjs} +2 -2
  120. package/dist/{ImageLoader-Cc4-BNJv.cjs.map → ImageLoader-maE53iG0.cjs.map} +1 -1
  121. package/dist/{ImageviewerWidget-KVt487SJ.cjs → ImageviewerWidget-CNYu5y1M.cjs} +2 -2
  122. package/dist/{ImageviewerWidget-KVt487SJ.cjs.map → ImageviewerWidget-CNYu5y1M.cjs.map} +1 -1
  123. package/dist/{ImageviewerWidget-DqV4SClv.js → ImageviewerWidget-CsoNQsVN.js} +2 -2
  124. package/dist/{ImageviewerWidget-DqV4SClv.js.map → ImageviewerWidget-CsoNQsVN.js.map} +1 -1
  125. package/dist/{InterfacesTab-C310FRIP.js → InterfacesTab-D1d6fYPx.js} +5 -5
  126. package/dist/{InterfacesTab-C310FRIP.js.map → InterfacesTab-D1d6fYPx.js.map} +1 -1
  127. package/dist/{InterfacesTab-nZwg-ByS.cjs → InterfacesTab-DN4Bx0jX.cjs} +2 -2
  128. package/dist/{InterfacesTab-nZwg-ByS.cjs.map → InterfacesTab-DN4Bx0jX.cjs.map} +1 -1
  129. package/dist/{LabelWidget-BDukcPet.js → LabelWidget-Ba4f7v6-.js} +2 -2
  130. package/dist/{LabelWidget-BDukcPet.js.map → LabelWidget-Ba4f7v6-.js.map} +1 -1
  131. package/dist/{LabelWidget-DYfv4K8h.cjs → LabelWidget-Mot3JRMt.cjs} +2 -2
  132. package/dist/{LabelWidget-DYfv4K8h.cjs.map → LabelWidget-Mot3JRMt.cjs.map} +1 -1
  133. package/dist/{LabelledWidget-Dl1x6b3p.cjs → LabelledWidget-BUM4VRKk.cjs} +2 -2
  134. package/dist/{LabelledWidget-Dl1x6b3p.cjs.map → LabelledWidget-BUM4VRKk.cjs.map} +1 -1
  135. package/dist/{LabelledWidget-tVHE426s.js → LabelledWidget-Cy_kY9Dr.js} +4 -4
  136. package/dist/{LabelledWidget-tVHE426s.js.map → LabelledWidget-Cy_kY9Dr.js.map} +1 -1
  137. package/dist/{LabelprogressbarWidget-CjMDFUUv.js → LabelprogressbarWidget-B7m4u1_T.js} +4 -4
  138. package/dist/{LabelprogressbarWidget-CjMDFUUv.js.map → LabelprogressbarWidget-B7m4u1_T.js.map} +1 -1
  139. package/dist/{LabelprogressbarWidget-DcO0gRM4.cjs → LabelprogressbarWidget-Ddv8wOiy.cjs} +2 -2
  140. package/dist/{LabelprogressbarWidget-DcO0gRM4.cjs.map → LabelprogressbarWidget-Ddv8wOiy.cjs.map} +1 -1
  141. package/dist/{LabelsparklineWidget-Cp2a-qlI.cjs → LabelsparklineWidget-BdPL_Qy6.cjs} +2 -2
  142. package/dist/{LabelsparklineWidget-Cp2a-qlI.cjs.map → LabelsparklineWidget-BdPL_Qy6.cjs.map} +1 -1
  143. package/dist/{LabelsparklineWidget-dZl3cGu0.js → LabelsparklineWidget-CAwxzcl1.js} +4 -4
  144. package/dist/{LabelsparklineWidget-dZl3cGu0.js.map → LabelsparklineWidget-CAwxzcl1.js.map} +1 -1
  145. package/dist/{LabelvalueWidget-UcAc_2Ry.js → LabelvalueWidget-DfkCk32l.js} +4 -4
  146. package/dist/{LabelvalueWidget-UcAc_2Ry.js.map → LabelvalueWidget-DfkCk32l.js.map} +1 -1
  147. package/dist/{LabelvalueWidget-CgP4mzP_.cjs → LabelvalueWidget-dJ_MMnTe.cjs} +2 -2
  148. package/dist/{LabelvalueWidget-CgP4mzP_.cjs.map → LabelvalueWidget-dJ_MMnTe.cjs.map} +1 -1
  149. package/dist/{LabelvaluedescWidget-CXJ037Qs.cjs → LabelvaluedescWidget-B1uUJbqG.cjs} +2 -2
  150. package/dist/{LabelvaluedescWidget-CXJ037Qs.cjs.map → LabelvaluedescWidget-B1uUJbqG.cjs.map} +1 -1
  151. package/dist/{LabelvaluedescWidget-Crb8udVe.js → LabelvaluedescWidget-Dmff-Qnm.js} +5 -5
  152. package/dist/{LabelvaluedescWidget-Crb8udVe.js.map → LabelvaluedescWidget-Dmff-Qnm.js.map} +1 -1
  153. package/dist/{LabelvaluelimitsbarWidget-B3cn7i50.cjs → LabelvaluelimitsbarWidget-CBORsu08.cjs} +2 -2
  154. package/dist/{LabelvaluelimitsbarWidget-B3cn7i50.cjs.map → LabelvaluelimitsbarWidget-CBORsu08.cjs.map} +1 -1
  155. package/dist/{LabelvaluelimitsbarWidget-BZGUQrRt.js → LabelvaluelimitsbarWidget-QEB4zfXJ.js} +4 -4
  156. package/dist/{LabelvaluelimitsbarWidget-BZGUQrRt.js.map → LabelvaluelimitsbarWidget-QEB4zfXJ.js.map} +1 -1
  157. package/dist/{LabelvaluelimitscolumnWidget-NNYW2aMO.js → LabelvaluelimitscolumnWidget-DxEW7ft1.js} +5 -5
  158. package/dist/{LabelvaluelimitscolumnWidget-NNYW2aMO.js.map → LabelvaluelimitscolumnWidget-DxEW7ft1.js.map} +1 -1
  159. package/dist/{LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs → LabelvaluelimitscolumnWidget-xsju-uwF.cjs} +2 -2
  160. package/dist/{LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs.map → LabelvaluelimitscolumnWidget-xsju-uwF.cjs.map} +1 -1
  161. package/dist/{LabelvaluerangebarWidget-B81fLpK0.cjs → LabelvaluerangebarWidget-BxKS0aXY.cjs} +2 -2
  162. package/dist/{LabelvaluerangebarWidget-B81fLpK0.cjs.map → LabelvaluerangebarWidget-BxKS0aXY.cjs.map} +1 -1
  163. package/dist/{LabelvaluerangebarWidget-CjkVDlVJ.js → LabelvaluerangebarWidget-Dc_4Eh2P.js} +4 -4
  164. package/dist/{LabelvaluerangebarWidget-CjkVDlVJ.js.map → LabelvaluerangebarWidget-Dc_4Eh2P.js.map} +1 -1
  165. package/dist/{Layout-K7_I6jMV.cjs → Layout-CevW0J6c.cjs} +2 -2
  166. package/dist/{Layout-K7_I6jMV.cjs.map → Layout-CevW0J6c.cjs.map} +1 -1
  167. package/dist/{Layout-FpBx3iic.js → Layout-VFnL3qx_.js} +2 -2
  168. package/dist/{Layout-FpBx3iic.js.map → Layout-VFnL3qx_.js.map} +1 -1
  169. package/dist/{LedWidget-Bsp1aja-.js → LedWidget-BbBMEqh6.js} +4 -4
  170. package/dist/{LedWidget-Bsp1aja-.js.map → LedWidget-BbBMEqh6.js.map} +1 -1
  171. package/dist/{LedWidget-C19KREVz.cjs → LedWidget-D_mYilLS.cjs} +2 -2
  172. package/dist/{LedWidget-C19KREVz.cjs.map → LedWidget-D_mYilLS.cjs.map} +1 -1
  173. package/dist/{LimitsBar-IVv8t4FE.js → LimitsBar-CRNf8kCM.js} +2 -2
  174. package/dist/{LimitsBar-IVv8t4FE.js.map → LimitsBar-CRNf8kCM.js.map} +1 -1
  175. package/dist/{LimitsBar-LRiUSWd7.cjs → LimitsBar-Cfi6zz4T.cjs} +2 -2
  176. package/dist/{LimitsBar-LRiUSWd7.cjs.map → LimitsBar-Cfi6zz4T.cjs.map} +1 -1
  177. package/dist/{LimitsbarWidget-Bo1JAoQp.js → LimitsbarWidget-BID8h8Fz.js} +3 -3
  178. package/dist/{LimitsbarWidget-Bo1JAoQp.js.map → LimitsbarWidget-BID8h8Fz.js.map} +1 -1
  179. package/dist/{LimitsbarWidget-BFjMhTbA.cjs → LimitsbarWidget-Bw_M1QY6.cjs} +2 -2
  180. package/dist/{LimitsbarWidget-BFjMhTbA.cjs.map → LimitsbarWidget-Bw_M1QY6.cjs.map} +1 -1
  181. package/dist/{LimitscolorWidget-Doq8h_g1.js → LimitscolorWidget-Bm660cL9.js} +2 -2
  182. package/dist/{LimitscolorWidget-Doq8h_g1.js.map → LimitscolorWidget-Bm660cL9.js.map} +1 -1
  183. package/dist/{LimitscolorWidget-D214kS86.cjs → LimitscolorWidget-CuiubDPH.cjs} +2 -2
  184. package/dist/{LimitscolorWidget-D214kS86.cjs.map → LimitscolorWidget-CuiubDPH.cjs.map} +1 -1
  185. package/dist/{LimitscolumnWidget-BREF_CBr.cjs → LimitscolumnWidget-BuwnurP3.cjs} +2 -2
  186. package/dist/{LimitscolumnWidget-BREF_CBr.cjs.map → LimitscolumnWidget-BuwnurP3.cjs.map} +1 -1
  187. package/dist/{LimitscolumnWidget-qasXHN7m.js → LimitscolumnWidget-C_jzHXdC.js} +2 -2
  188. package/dist/{LimitscolumnWidget-qasXHN7m.js.map → LimitscolumnWidget-C_jzHXdC.js.map} +1 -1
  189. package/dist/{LinegraphWidget-BhpYKxnT.cjs → LinegraphWidget-Cgd3gSk8.cjs} +2 -2
  190. package/dist/{LinegraphWidget-BhpYKxnT.cjs.map → LinegraphWidget-Cgd3gSk8.cjs.map} +1 -1
  191. package/dist/{LinegraphWidget-BNMqcr_r.js → LinegraphWidget-Pte5LxmO.js} +4 -4
  192. package/dist/{LinegraphWidget-BNMqcr_r.js.map → LinegraphWidget-Pte5LxmO.js.map} +1 -1
  193. package/dist/{MatrixbycolumnsWidget-BlF1CyIT.js → MatrixbycolumnsWidget-j-3LkoxS.js} +3 -3
  194. package/dist/{MatrixbycolumnsWidget-BlF1CyIT.js.map → MatrixbycolumnsWidget-j-3LkoxS.js.map} +1 -1
  195. package/dist/{MatrixbycolumnsWidget-BKXkhATe.cjs → MatrixbycolumnsWidget-tRuEujha.cjs} +2 -2
  196. package/dist/{MatrixbycolumnsWidget-BKXkhATe.cjs.map → MatrixbycolumnsWidget-tRuEujha.cjs.map} +1 -1
  197. package/dist/{MicroservicesTab-xpDXKoa-.js → MicroservicesTab-BFNyiTuf.js} +3 -3
  198. package/dist/{MicroservicesTab-xpDXKoa-.js.map → MicroservicesTab-BFNyiTuf.js.map} +1 -1
  199. package/dist/{MicroservicesTab-BWFwBSuf.cjs → MicroservicesTab-BhbOC0nm.cjs} +2 -2
  200. package/dist/{MicroservicesTab-BWFwBSuf.cjs.map → MicroservicesTab-BhbOC0nm.cjs.map} +1 -1
  201. package/dist/{OpenC3TimePicker-6pE8gGCO.cjs → OpenC3TimePicker-4kqB_Chf.cjs} +2 -2
  202. package/dist/{OpenC3TimePicker-6pE8gGCO.cjs.map → OpenC3TimePicker-4kqB_Chf.cjs.map} +1 -1
  203. package/dist/{OpenC3TimePicker-D-_qqySI.js → OpenC3TimePicker-C9CBFp3d.js} +2 -2
  204. package/dist/{OpenC3TimePicker-D-_qqySI.js.map → OpenC3TimePicker-C9CBFp3d.js.map} +1 -1
  205. package/dist/{Openc3Screen-DYJHNotN.js → Openc3Screen-BxuqrFPG.js} +39 -39
  206. package/dist/Openc3Screen-BxuqrFPG.js.map +1 -0
  207. package/dist/{Openc3Screen-Pu1ktpS8.cjs → Openc3Screen-DuzCiS5h.cjs} +5 -5
  208. package/dist/Openc3Screen-DuzCiS5h.cjs.map +1 -0
  209. package/dist/{OutputDialog-BwEWPQW9.cjs → OutputDialog-C__OuTUo.cjs} +2 -2
  210. package/dist/{OutputDialog-BwEWPQW9.cjs.map → OutputDialog-C__OuTUo.cjs.map} +1 -1
  211. package/dist/{OutputDialog-x4QZFAWe.js → OutputDialog-Dk3S2--J.js} +9 -9
  212. package/dist/{OutputDialog-x4QZFAWe.js.map → OutputDialog-Dk3S2--J.js.map} +1 -1
  213. package/dist/{PackagesTab-rzc4hqOb.js → PackagesTab-2UMA9TLY.js} +14 -14
  214. package/dist/{PackagesTab-rzc4hqOb.js.map → PackagesTab-2UMA9TLY.js.map} +1 -1
  215. package/dist/{PackagesTab-CHwfaqdP.cjs → PackagesTab-Ba4vRiFU.cjs} +2 -2
  216. package/dist/{PackagesTab-CHwfaqdP.cjs.map → PackagesTab-Ba4vRiFU.cjs.map} +1 -1
  217. package/dist/{PluginsTab-C7gLbRQn.cjs → PluginsTab-BSm5NCBn.cjs} +4 -4
  218. package/dist/{PluginsTab-C7gLbRQn.cjs.map → PluginsTab-BSm5NCBn.cjs.map} +1 -1
  219. package/dist/{PluginsTab-Dff_0j26.js → PluginsTab-CS8RLv56.js} +4 -4
  220. package/dist/{PluginsTab-Dff_0j26.js.map → PluginsTab-CS8RLv56.js.map} +1 -1
  221. package/dist/{ProgressbarWidget-cQAtX_Q7.cjs → ProgressbarWidget-D3jeqQZi.cjs} +2 -2
  222. package/dist/{ProgressbarWidget-cQAtX_Q7.cjs.map → ProgressbarWidget-D3jeqQZi.cjs.map} +1 -1
  223. package/dist/{ProgressbarWidget-DQ80NANH.js → ProgressbarWidget-DB4g3d3i.js} +2 -2
  224. package/dist/{ProgressbarWidget-DQ80NANH.js.map → ProgressbarWidget-DB4g3d3i.js.map} +1 -1
  225. package/dist/{RadiobuttonWidget-LD18M4IQ.js → RadiobuttonWidget-CbLLNEeT.js} +2 -2
  226. package/dist/{RadiobuttonWidget-LD18M4IQ.js.map → RadiobuttonWidget-CbLLNEeT.js.map} +1 -1
  227. package/dist/{RadiobuttonWidget-DFrUZRaV.cjs → RadiobuttonWidget-DpzokVRc.cjs} +2 -2
  228. package/dist/{RadiobuttonWidget-DFrUZRaV.cjs.map → RadiobuttonWidget-DpzokVRc.cjs.map} +1 -1
  229. package/dist/{RadiogroupWidget-ljP05k3g.cjs → RadiogroupWidget-C8M7BvLR.cjs} +2 -2
  230. package/dist/{RadiogroupWidget-ljP05k3g.cjs.map → RadiogroupWidget-C8M7BvLR.cjs.map} +1 -1
  231. package/dist/{RadiogroupWidget-D_pt2MPz.js → RadiogroupWidget-DdTKUKGT.js} +2 -2
  232. package/dist/{RadiogroupWidget-D_pt2MPz.js.map → RadiogroupWidget-DdTKUKGT.js.map} +1 -1
  233. package/dist/{RangebarWidget-DhaWpHjB.js → RangebarWidget-DvegNZg3.js} +2 -2
  234. package/dist/{RangebarWidget-DhaWpHjB.js.map → RangebarWidget-DvegNZg3.js.map} +1 -1
  235. package/dist/{RangebarWidget-BsLWXvTo.cjs → RangebarWidget-YWSjQavR.cjs} +2 -2
  236. package/dist/{RangebarWidget-BsLWXvTo.cjs.map → RangebarWidget-YWSjQavR.cjs.map} +1 -1
  237. package/dist/{RedisTab-DEKMLop2.cjs → RedisTab-Bs8368J6.cjs} +2 -2
  238. package/dist/{RedisTab-DEKMLop2.cjs.map → RedisTab-Bs8368J6.cjs.map} +1 -1
  239. package/dist/{RedisTab-C3yjh0JX.js → RedisTab-C2dYwa7Q.js} +5 -5
  240. package/dist/{RedisTab-C3yjh0JX.js.map → RedisTab-C2dYwa7Q.js.map} +1 -1
  241. package/dist/{RollupWidget-CMU1-HwL.js → RollupWidget-BfDjRI_8.js} +2 -2
  242. package/dist/{RollupWidget-CMU1-HwL.js.map → RollupWidget-BfDjRI_8.js.map} +1 -1
  243. package/dist/{RollupWidget-sXTyo7zH.cjs → RollupWidget-jZjZhJpb.cjs} +2 -2
  244. package/dist/{RollupWidget-sXTyo7zH.cjs.map → RollupWidget-jZjZhJpb.cjs.map} +1 -1
  245. package/dist/{RoutersTab-DaWde6np.js → RoutersTab-BDKIQfPD.js} +3 -3
  246. package/dist/{RoutersTab-DaWde6np.js.map → RoutersTab-BDKIQfPD.js.map} +1 -1
  247. package/dist/{RoutersTab-IKuEHQeO.cjs → RoutersTab-DtHCBbXB.cjs} +2 -2
  248. package/dist/{RoutersTab-IKuEHQeO.cjs.map → RoutersTab-DtHCBbXB.cjs.map} +1 -1
  249. package/dist/{ScriptChooser-DCjI5aeZ.js → ScriptChooser-D12U4b0f.js} +13 -13
  250. package/dist/ScriptChooser-D12U4b0f.js.map +1 -0
  251. package/dist/ScriptChooser-QTzU0krS.cjs +2 -0
  252. package/dist/ScriptChooser-QTzU0krS.cjs.map +1 -0
  253. package/dist/{ScrollwindowWidget-BcLF_bhy.cjs → ScrollwindowWidget-BQU2wUnY.cjs} +2 -2
  254. package/dist/{ScrollwindowWidget-BcLF_bhy.cjs.map → ScrollwindowWidget-BQU2wUnY.cjs.map} +1 -1
  255. package/dist/{ScrollwindowWidget-D7Ln-QMq.js → ScrollwindowWidget-BdRjQVVF.js} +2 -2
  256. package/dist/{ScrollwindowWidget-D7Ln-QMq.js.map → ScrollwindowWidget-BdRjQVVF.js.map} +1 -1
  257. package/dist/{SecretsTab-Dhal1RCq.js → SecretsTab-9350W-Wd.js} +4 -4
  258. package/dist/{SecretsTab-Dhal1RCq.js.map → SecretsTab-9350W-Wd.js.map} +1 -1
  259. package/dist/{SecretsTab-BM9HIjT_.cjs → SecretsTab-CoEChNXs.cjs} +2 -2
  260. package/dist/{SecretsTab-BM9HIjT_.cjs.map → SecretsTab-CoEChNXs.cjs.map} +1 -1
  261. package/dist/{SettingsTab-Dtj_AlEW.js → SettingsTab-CPk_hNJp.js} +4 -4
  262. package/dist/{SettingsTab-Dtj_AlEW.js.map → SettingsTab-CPk_hNJp.js.map} +1 -1
  263. package/dist/{SettingsTab-BrSkK_Fs.cjs → SettingsTab-CqYcXYBb.cjs} +2 -2
  264. package/dist/{SettingsTab-BrSkK_Fs.cjs.map → SettingsTab-CqYcXYBb.cjs.map} +1 -1
  265. package/dist/{SignalWidget-PreTg4Mt.js → SignalWidget-BPiNqq8R.js} +2 -2
  266. package/dist/{SignalWidget-PreTg4Mt.js.map → SignalWidget-BPiNqq8R.js.map} +1 -1
  267. package/dist/{SignalWidget-DHwveppA.cjs → SignalWidget-w0jzLGVV.cjs} +2 -2
  268. package/dist/{SignalWidget-DHwveppA.cjs.map → SignalWidget-w0jzLGVV.cjs.map} +1 -1
  269. package/dist/{SimpleTextDialog-DDIm5Znf.js → SimpleTextDialog-3uasUaXN.js} +2 -2
  270. package/dist/{SimpleTextDialog-DDIm5Znf.js.map → SimpleTextDialog-3uasUaXN.js.map} +1 -1
  271. package/dist/{SimpleTextDialog-Bdw3jul4.cjs → SimpleTextDialog-BpyUPxqT.cjs} +2 -2
  272. package/dist/{SimpleTextDialog-Bdw3jul4.cjs.map → SimpleTextDialog-BpyUPxqT.cjs.map} +1 -1
  273. package/dist/{SpacerWidget-Chy1NO28.js → SpacerWidget-CZGtLi7D.js} +2 -2
  274. package/dist/{SpacerWidget-Chy1NO28.js.map → SpacerWidget-CZGtLi7D.js.map} +1 -1
  275. package/dist/{SpacerWidget-Cj-j_MsG.cjs → SpacerWidget-D9BpT5w5.cjs} +2 -2
  276. package/dist/{SpacerWidget-Cj-j_MsG.cjs.map → SpacerWidget-D9BpT5w5.cjs.map} +1 -1
  277. package/dist/{SparklineWidget-Bb-gCNNt.js → SparklineWidget-CjjqaZtm.js} +4 -4
  278. package/dist/{SparklineWidget-Bb-gCNNt.js.map → SparklineWidget-CjjqaZtm.js.map} +1 -1
  279. package/dist/{SparklineWidget-BE1LieLF.cjs → SparklineWidget-DXYD2dKC.cjs} +2 -2
  280. package/dist/{SparklineWidget-BE1LieLF.cjs.map → SparklineWidget-DXYD2dKC.cjs.map} +1 -1
  281. package/dist/{TabbookWidget-FNbiZpjn.cjs → TabbookWidget-DnCX6_eY.cjs} +2 -2
  282. package/dist/{TabbookWidget-FNbiZpjn.cjs.map → TabbookWidget-DnCX6_eY.cjs.map} +1 -1
  283. package/dist/{TabbookWidget-a-LsBhBE.js → TabbookWidget-Dy8N2hq1.js} +2 -2
  284. package/dist/{TabbookWidget-a-LsBhBE.js.map → TabbookWidget-Dy8N2hq1.js.map} +1 -1
  285. package/dist/{TargetPacketItemChooser-DDqBQTWC.js → TargetPacketItemChooser--rzU8ThE.js} +2 -2
  286. package/dist/{TargetPacketItemChooser-DDqBQTWC.js.map → TargetPacketItemChooser--rzU8ThE.js.map} +1 -1
  287. package/dist/{TargetPacketItemChooser-BPRByyfB.cjs → TargetPacketItemChooser-B3riNx-5.cjs} +2 -2
  288. package/dist/{TargetPacketItemChooser-BPRByyfB.cjs.map → TargetPacketItemChooser-B3riNx-5.cjs.map} +1 -1
  289. package/dist/{TargetsTab-C7Pn5-19.js → TargetsTab-DJBCaflz.js} +12 -12
  290. package/dist/{TargetsTab-C7Pn5-19.js.map → TargetsTab-DJBCaflz.js.map} +1 -1
  291. package/dist/{TargetsTab-dndajwC_.cjs → TargetsTab-Dqvu7l_c.cjs} +2 -2
  292. package/dist/{TargetsTab-dndajwC_.cjs.map → TargetsTab-Dqvu7l_c.cjs.map} +1 -1
  293. package/dist/{TextboxWidget-DIHEOldN.js → TextboxWidget-BSQPOr-R.js} +4 -4
  294. package/dist/{TextboxWidget-DIHEOldN.js.map → TextboxWidget-BSQPOr-R.js.map} +1 -1
  295. package/dist/{TextboxWidget-DYTNipbi.cjs → TextboxWidget-DHHcXTpa.cjs} +2 -2
  296. package/dist/{TextboxWidget-DYTNipbi.cjs.map → TextboxWidget-DHHcXTpa.cjs.map} +1 -1
  297. package/dist/{TextfieldWidget-BE-HpIKs.cjs → TextfieldWidget-BbNHrjZB.cjs} +2 -2
  298. package/dist/{TextfieldWidget-BE-HpIKs.cjs.map → TextfieldWidget-BbNHrjZB.cjs.map} +1 -1
  299. package/dist/{TextfieldWidget-CIBo7Dau.js → TextfieldWidget-CTGnjpuY.js} +2 -2
  300. package/dist/{TextfieldWidget-CIBo7Dau.js.map → TextfieldWidget-CTGnjpuY.js.map} +1 -1
  301. package/dist/{TimeWidget-CLuOYfPP.js → TimeWidget-B4qqIUWu.js} +3 -3
  302. package/dist/{TimeWidget-CLuOYfPP.js.map → TimeWidget-B4qqIUWu.js.map} +1 -1
  303. package/dist/{TimeWidget-RYL7zDoC.cjs → TimeWidget-BhyYijAr.cjs} +2 -2
  304. package/dist/{TimeWidget-RYL7zDoC.cjs.map → TimeWidget-BhyYijAr.cjs.map} +1 -1
  305. package/dist/{TitleWidget-DVWOhZqJ.cjs → TitleWidget-Dagdh8DQ.cjs} +2 -2
  306. package/dist/{TitleWidget-DVWOhZqJ.cjs.map → TitleWidget-Dagdh8DQ.cjs.map} +1 -1
  307. package/dist/{TitleWidget-BTHKLAsb.js → TitleWidget-OwWpy1Jl.js} +2 -2
  308. package/dist/{TitleWidget-BTHKLAsb.js.map → TitleWidget-OwWpy1Jl.js.map} +1 -1
  309. package/dist/{ToolsTab-D5yhjVM0.js → ToolsTab-BddBK1tK.js} +248 -232
  310. package/dist/ToolsTab-BddBK1tK.js.map +1 -0
  311. package/dist/ToolsTab-BxrYmpF4.cjs +7 -0
  312. package/dist/ToolsTab-BxrYmpF4.cjs.map +1 -0
  313. package/dist/{TopBar-DUdrFsMv.cjs → TopBar-D6zYf4Ed.cjs} +2 -2
  314. package/dist/{TopBar-DUdrFsMv.cjs.map → TopBar-D6zYf4Ed.cjs.map} +1 -1
  315. package/dist/{TopBar-DzxJ69Tt.js → TopBar-DcfK2Z2G.js} +2 -2
  316. package/dist/{TopBar-DzxJ69Tt.js.map → TopBar-DcfK2Z2G.js.map} +1 -1
  317. package/dist/{UpgradeToEnterpriseDialog-Bf6rEOgp.js → UpgradeToEnterpriseDialog-Cj0L60bW.js} +2 -2
  318. package/dist/{UpgradeToEnterpriseDialog-Bf6rEOgp.js.map → UpgradeToEnterpriseDialog-Cj0L60bW.js.map} +1 -1
  319. package/dist/{UpgradeToEnterpriseDialog-CujyHt2o.cjs → UpgradeToEnterpriseDialog-DHOqnrRc.cjs} +2 -2
  320. package/dist/{UpgradeToEnterpriseDialog-CujyHt2o.cjs.map → UpgradeToEnterpriseDialog-DHOqnrRc.cjs.map} +1 -1
  321. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-8uBNo_8r.js} +10809 -10628
  322. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-8uBNo_8r.js.map +1 -0
  323. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-COA1HwFc.cjs +1501 -0
  324. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-COA1HwFc.cjs.map +1 -0
  325. package/dist/{VWidget-BcwkHuIT.js → VWidget-B8DTwMbX.js} +44 -11
  326. package/dist/VWidget-B8DTwMbX.js.map +1 -0
  327. package/dist/VWidget-od6gU6UT.cjs +2 -0
  328. package/dist/VWidget-od6gU6UT.cjs.map +1 -0
  329. package/dist/{ValueWidget-CgAl2Av2.cjs → ValueWidget-9DW9QZ_F.cjs} +2 -2
  330. package/dist/{ValueWidget-CgAl2Av2.cjs.map → ValueWidget-9DW9QZ_F.cjs.map} +1 -1
  331. package/dist/{ValueWidget-BubIamVx.js → ValueWidget-CD-gsoJa.js} +4 -4
  332. package/dist/{ValueWidget-BubIamVx.js.map → ValueWidget-CD-gsoJa.js.map} +1 -1
  333. package/dist/{ValuelimitsbarWidget-DKTrV1RT.js → ValuelimitsbarWidget-CKqMqplL.js} +4 -4
  334. package/dist/{ValuelimitsbarWidget-DKTrV1RT.js.map → ValuelimitsbarWidget-CKqMqplL.js.map} +1 -1
  335. package/dist/{ValuelimitsbarWidget-Dn_sS0zt.cjs → ValuelimitsbarWidget-DgP-FRnw.cjs} +2 -2
  336. package/dist/{ValuelimitsbarWidget-Dn_sS0zt.cjs.map → ValuelimitsbarWidget-DgP-FRnw.cjs.map} +1 -1
  337. package/dist/{ValuelimitscolumnWidget-CGhifOZI.cjs → ValuelimitscolumnWidget-DWik9H7C.cjs} +2 -2
  338. package/dist/{ValuelimitscolumnWidget-CGhifOZI.cjs.map → ValuelimitscolumnWidget-DWik9H7C.cjs.map} +1 -1
  339. package/dist/{ValuelimitscolumnWidget-D8JIK4Zi.js → ValuelimitscolumnWidget-TbIlfRm8.js} +4 -4
  340. package/dist/{ValuelimitscolumnWidget-D8JIK4Zi.js.map → ValuelimitscolumnWidget-TbIlfRm8.js.map} +1 -1
  341. package/dist/{ValuerangebarWidget-D8hVKp0l.js → ValuerangebarWidget-CIR3qshL.js} +4 -4
  342. package/dist/{ValuerangebarWidget-D8hVKp0l.js.map → ValuerangebarWidget-CIR3qshL.js.map} +1 -1
  343. package/dist/{ValuerangebarWidget-DPtR-Dla.cjs → ValuerangebarWidget-DMPQMn23.cjs} +2 -2
  344. package/dist/{ValuerangebarWidget-DPtR-Dla.cjs.map → ValuerangebarWidget-DMPQMn23.cjs.map} +1 -1
  345. package/dist/{VerticalWidget-DScGTfwX.cjs → VerticalWidget-BjDRWx1I.cjs} +2 -2
  346. package/dist/{VerticalWidget-DScGTfwX.cjs.map → VerticalWidget-BjDRWx1I.cjs.map} +1 -1
  347. package/dist/{VerticalWidget-DMp3DXGa.js → VerticalWidget-DpMgiz2m.js} +2 -2
  348. package/dist/{VerticalWidget-DMp3DXGa.js.map → VerticalWidget-DpMgiz2m.js.map} +1 -1
  349. package/dist/{VerticalboxWidget-CVf1d_3_.js → VerticalboxWidget-BznaAPyj.js} +5 -5
  350. package/dist/{VerticalboxWidget-CVf1d_3_.js.map → VerticalboxWidget-BznaAPyj.js.map} +1 -1
  351. package/dist/{VerticalboxWidget-CIJ1c7WU.cjs → VerticalboxWidget-DcQvJ13j.cjs} +2 -2
  352. package/dist/{VerticalboxWidget-CIJ1c7WU.cjs.map → VerticalboxWidget-DcQvJ13j.cjs.map} +1 -1
  353. package/dist/{Widget-Btu2EoLT.cjs → Widget-BUhqs-wN.cjs} +2 -2
  354. package/dist/{Widget-Btu2EoLT.cjs.map → Widget-BUhqs-wN.cjs.map} +1 -1
  355. package/dist/{Widget-D4rzBHnr.js → Widget-E_9ky7hf.js} +2 -2
  356. package/dist/{Widget-D4rzBHnr.js.map → Widget-E_9ky7hf.js.map} +1 -1
  357. package/dist/components.cjs +2 -2
  358. package/dist/components.cjs.map +1 -1
  359. package/dist/components.js +23 -23
  360. package/dist/components.js.map +1 -1
  361. package/dist/index-D-zO4ghE.cjs +10 -0
  362. package/dist/index-D-zO4ghE.cjs.map +1 -0
  363. package/dist/{index-3k1IXN1T.js → index-DCtILi4r.js} +765 -622
  364. package/dist/index-DCtILi4r.js.map +1 -0
  365. package/dist/plugins.cjs +1 -1
  366. package/dist/plugins.cjs.map +1 -1
  367. package/dist/plugins.js +1 -1
  368. package/dist/plugins.js.map +1 -1
  369. package/dist/purify.es-B9BW70-4.cjs +3 -0
  370. package/dist/purify.es-B9BW70-4.cjs.map +1 -0
  371. package/dist/{purify.es-BGaRrCfO.js → purify.es-BIuh5IAZ.js} +116 -116
  372. package/dist/purify.es-BIuh5IAZ.js.map +1 -0
  373. package/dist/{settings-Ctcx_wMT.js → settings-CjEQxY67.js} +2 -2
  374. package/dist/{settings-Ctcx_wMT.js.map → settings-CjEQxY67.js.map} +1 -1
  375. package/dist/{settings-B9vbjzwV.cjs → settings-J9UGWG6O.cjs} +2 -2
  376. package/dist/{settings-B9vbjzwV.cjs.map → settings-J9UGWG6O.cjs.map} +1 -1
  377. package/dist/tools/admin.cjs +1 -1
  378. package/dist/tools/admin.js +13 -13
  379. package/dist/tools/base.cjs +1 -1
  380. package/dist/tools/base.cjs.map +1 -1
  381. package/dist/tools/base.js +5 -5
  382. package/dist/tools/base.js.map +1 -1
  383. package/dist/tools/calendar.cjs +1 -1
  384. package/dist/tools/calendar.js +1 -1
  385. package/dist/tools/scriptrunner.cjs +8 -8
  386. package/dist/tools/scriptrunner.cjs.map +1 -1
  387. package/dist/tools/scriptrunner.js +527 -513
  388. package/dist/tools/scriptrunner.js.map +1 -1
  389. package/dist/vue-common.css +1 -1
  390. package/dist/widgets.cjs +1 -1
  391. package/dist/widgets.js +64 -64
  392. package/package.json +12 -12
  393. package/dist/FormatvalueWidget-DTsP7isW.cjs +0 -2
  394. package/dist/IframeWidget-D9Vh0w2c.js.map +0 -1
  395. package/dist/IframeWidget-xeXTxP_G.cjs +0 -2
  396. package/dist/IframeWidget-xeXTxP_G.cjs.map +0 -1
  397. package/dist/Openc3Screen-DYJHNotN.js.map +0 -1
  398. package/dist/Openc3Screen-Pu1ktpS8.cjs.map +0 -1
  399. package/dist/ScriptChooser-BmyV6QQD.cjs +0 -2
  400. package/dist/ScriptChooser-BmyV6QQD.cjs.map +0 -1
  401. package/dist/ScriptChooser-DCjI5aeZ.js.map +0 -1
  402. package/dist/ToolsTab-D4LFT4tV.cjs +0 -7
  403. package/dist/ToolsTab-D4LFT4tV.cjs.map +0 -1
  404. package/dist/ToolsTab-D5yhjVM0.js.map +0 -1
  405. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs +0 -1498
  406. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs.map +0 -1
  407. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js.map +0 -1
  408. package/dist/VWidget-BcwkHuIT.js.map +0 -1
  409. package/dist/VWidget-CbdjSkP3.cjs +0 -2
  410. package/dist/VWidget-CbdjSkP3.cjs.map +0 -1
  411. package/dist/index-3k1IXN1T.js.map +0 -1
  412. package/dist/index-DlWUR7vt.cjs +0 -7
  413. package/dist/index-DlWUR7vt.cjs.map +0 -1
  414. package/dist/purify.es-B608WQkR.cjs +0 -3
  415. package/dist/purify.es-B608WQkR.cjs.map +0 -1
  416. package/dist/purify.es-BGaRrCfO.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MicroservicesTab-BWFwBSuf.cjs","sources":["../src/tools/admin/tabs/MicroservicesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-alert v-model=\"showAlert\" closable :type=\"alertType\">{{\n alert\n }}</v-alert>\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n },\n}\n</script>\n\n<style scoped>\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","OutputDialog","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","$event","_component_v_list","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_title","_createTextVNode","_toDisplayString","_createBlock","_component_v_list_item_subtitle","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"MicroservicesTab-BhbOC0nm.cjs","sources":["../src/tools/admin/tabs/MicroservicesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-alert v-model=\"showAlert\" closable :type=\"alertType\">{{\n alert\n }}</v-alert>\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n },\n}\n</script>\n\n<style scoped>\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","OutputDialog","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","$event","_component_v_list","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_title","_createTextVNode","_toDisplayString","_createBlock","_component_v_list_item_subtitle","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const V=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs"),e=require("vue"),_=require("./CustomIcon-CEc927h0.cjs"),y={inheritAttrs:!1,props:{modelValue:{type:String,default:""},label:{type:String,default:"Time"},rules:{type:Array,default:()=>[]},hideDetails:{type:[Boolean,String],default:!1},variant:{type:String,default:"filled"},density:{type:String,default:"default"},style:{type:[String,Object],default:""},textFieldClass:{type:String,default:""},dataTest:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{menu:!1,timeFormat:"ampm",tempTime:null,inputValue:""}},computed:{computedStyle(){return typeof this.style=="string"?this.style:this.style},computedRules(){return this.rules.map(t=>()=>t(this.modelValue))}},watch:{modelValue:{immediate:!0,handler(t){this.menu||(this.inputValue=this.formatForDisplay(t))}},inputValue(t){t===""&&this.modelValue!==""&&this.$emit("update:modelValue","")},menu(t){t&&(this.tempTime=this.modelValue||"00:00:00")},tempTime(t){this.menu&&t&&(this.inputValue=this.formatForDisplay(t))}},async created(){await this.loadTimeFormat(),this.inputValue=this.formatForDisplay(this.modelValue)},methods:{async loadTimeFormat(){try{const a=await new V.yi().get_setting("time_format");a&&(this.timeFormat=a)}catch{this.timeFormat="ampm"}},formatForDisplay(t){return t?this.timeFormat==="24hr"?t:this.convertTo12Hour(t):""},handleBlur(){const t=this.parseTimeInput(this.inputValue);t?(this.$emit("update:modelValue",t),this.inputValue=this.formatForDisplay(t)):this.inputValue===""?this.$emit("update:modelValue",""):this.inputValue=this.formatForDisplay(this.modelValue)},parseTimeInput(t){if(!t||t.trim()==="")return"";const a=t.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(a){const s=parseInt(a[1],10),n=parseInt(a[2],10),o=a[3]?parseInt(a[3],10):0;if(s>=0&&s<=23&&n>=0&&n<=59&&o>=0&&o<=59)return`${s.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}const i=t.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?\s*(AM|PM|am|pm)$/i);if(i){let s=parseInt(i[1],10);const n=parseInt(i[2],10),o=i[3]?parseInt(i[3],10):0,l=i[4].toUpperCase();if(s>=1&&s<=12&&n>=0&&n<=59&&o>=0&&o<=59)return l==="AM"?s===12&&(s=0):s!==12&&(s+=12),`${s.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}return null},save(){this.$emit("update:modelValue",this.tempTime),this.inputValue=this.formatForDisplay(this.tempTime),this.menu=!1},cancel(){this.tempTime=this.modelValue||"00:00:00",this.menu=!1},convertTo12Hour(t){if(!t)return"";const a=t.split(":");if(a.length<2)return t;let i=parseInt(a[0],10);const s=a[1],n=a.length>2?a[2]:"00",o=i>=12?"PM":"AM";return i=i%12,i=i||12,`${i.toString().padStart(2,"0")}:${s}:${n} ${o}`}}};function v(t,a,i,s,n,o){const l=e.resolveComponent("v-icon"),u=e.resolveComponent("v-time-picker"),m=e.resolveComponent("v-spacer"),d=e.resolveComponent("v-btn"),p=e.resolveComponent("v-card-actions"),c=e.resolveComponent("v-card"),f=e.resolveComponent("v-menu"),h=e.resolveComponent("v-text-field");return e.openBlock(),e.createBlock(h,{modelValue:n.inputValue,"onUpdate:modelValue":a[2]||(a[2]=r=>n.inputValue=r),label:i.label,rules:o.computedRules,"hide-details":i.hideDetails,variant:i.variant,density:i.density,style:e.normalizeStyle(o.computedStyle),class:e.normalizeClass(i.textFieldClass),disabled:i.disabled,"data-test":i.dataTest,onBlur:o.handleBlur,onKeydown:e.withKeys(o.handleBlur,["enter"])},{"prepend-inner":e.withCtx(()=>[e.createVNode(f,{modelValue:n.menu,"onUpdate:modelValue":a[1]||(a[1]=r=>n.menu=r),"close-on-content-click":!1,transition:"scale-transition",offset:"16"},{activator:e.withCtx(({props:r})=>[e.createVNode(l,e.mergeProps(r,{class:"cursor-pointer"}),{default:e.withCtx(()=>[...a[3]||(a[3]=[e.createTextVNode(" mdi-clock-outline ",-1)])]),_:1},16)]),default:e.withCtx(()=>[e.createVNode(c,{class:"time-picker-card"},{default:e.withCtx(()=>[e.createVNode(u,{modelValue:n.tempTime,"onUpdate:modelValue":a[0]||(a[0]=r=>n.tempTime=r),format:n.timeFormat,scrollable:"","use-seconds":"","hide-header":""},null,8,["modelValue","format"]),e.createVNode(p,null,{default:e.withCtx(()=>[e.createVNode(m),e.createVNode(d,{variant:"text",onClick:o.cancel},{default:e.withCtx(()=>[...a[4]||(a[4]=[e.createTextVNode("Cancel",-1)])]),_:1},8,["onClick"]),e.createVNode(d,{color:"primary",variant:"text",onClick:o.save},{default:e.withCtx(()=>[...a[5]||(a[5]=[e.createTextVNode("OK",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["modelValue","label","rules","hide-details","variant","density","style","class","disabled","data-test","onBlur","onKeydown"])}const C=_._export_sfc(y,[["render",v],["__scopeId","data-v-6afa73b6"]]);exports.OpenC3TimePicker=C;
2
- //# sourceMappingURL=OpenC3TimePicker-6pE8gGCO.cjs.map
1
+ "use strict";const V=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-COA1HwFc.cjs"),e=require("vue"),_=require("./CustomIcon-CEc927h0.cjs"),y={inheritAttrs:!1,props:{modelValue:{type:String,default:""},label:{type:String,default:"Time"},rules:{type:Array,default:()=>[]},hideDetails:{type:[Boolean,String],default:!1},variant:{type:String,default:"filled"},density:{type:String,default:"default"},style:{type:[String,Object],default:""},textFieldClass:{type:String,default:""},dataTest:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{menu:!1,timeFormat:"ampm",tempTime:null,inputValue:""}},computed:{computedStyle(){return typeof this.style=="string"?this.style:this.style},computedRules(){return this.rules.map(t=>()=>t(this.modelValue))}},watch:{modelValue:{immediate:!0,handler(t){this.menu||(this.inputValue=this.formatForDisplay(t))}},inputValue(t){t===""&&this.modelValue!==""&&this.$emit("update:modelValue","")},menu(t){t&&(this.tempTime=this.modelValue||"00:00:00")},tempTime(t){this.menu&&t&&(this.inputValue=this.formatForDisplay(t))}},async created(){await this.loadTimeFormat(),this.inputValue=this.formatForDisplay(this.modelValue)},methods:{async loadTimeFormat(){try{const a=await new V.Oi().get_setting("time_format");a&&(this.timeFormat=a)}catch{this.timeFormat="ampm"}},formatForDisplay(t){return t?this.timeFormat==="24hr"?t:this.convertTo12Hour(t):""},handleBlur(){const t=this.parseTimeInput(this.inputValue);t?(this.$emit("update:modelValue",t),this.inputValue=this.formatForDisplay(t)):this.inputValue===""?this.$emit("update:modelValue",""):this.inputValue=this.formatForDisplay(this.modelValue)},parseTimeInput(t){if(!t||t.trim()==="")return"";const a=t.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(a){const s=parseInt(a[1],10),n=parseInt(a[2],10),o=a[3]?parseInt(a[3],10):0;if(s>=0&&s<=23&&n>=0&&n<=59&&o>=0&&o<=59)return`${s.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}const i=t.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?\s*(AM|PM|am|pm)$/i);if(i){let s=parseInt(i[1],10);const n=parseInt(i[2],10),o=i[3]?parseInt(i[3],10):0,l=i[4].toUpperCase();if(s>=1&&s<=12&&n>=0&&n<=59&&o>=0&&o<=59)return l==="AM"?s===12&&(s=0):s!==12&&(s+=12),`${s.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}return null},save(){this.$emit("update:modelValue",this.tempTime),this.inputValue=this.formatForDisplay(this.tempTime),this.menu=!1},cancel(){this.tempTime=this.modelValue||"00:00:00",this.menu=!1},convertTo12Hour(t){if(!t)return"";const a=t.split(":");if(a.length<2)return t;let i=parseInt(a[0],10);const s=a[1],n=a.length>2?a[2]:"00",o=i>=12?"PM":"AM";return i=i%12,i=i||12,`${i.toString().padStart(2,"0")}:${s}:${n} ${o}`}}};function v(t,a,i,s,n,o){const l=e.resolveComponent("v-icon"),u=e.resolveComponent("v-time-picker"),m=e.resolveComponent("v-spacer"),d=e.resolveComponent("v-btn"),p=e.resolveComponent("v-card-actions"),c=e.resolveComponent("v-card"),f=e.resolveComponent("v-menu"),h=e.resolveComponent("v-text-field");return e.openBlock(),e.createBlock(h,{modelValue:n.inputValue,"onUpdate:modelValue":a[2]||(a[2]=r=>n.inputValue=r),label:i.label,rules:o.computedRules,"hide-details":i.hideDetails,variant:i.variant,density:i.density,style:e.normalizeStyle(o.computedStyle),class:e.normalizeClass(i.textFieldClass),disabled:i.disabled,"data-test":i.dataTest,onBlur:o.handleBlur,onKeydown:e.withKeys(o.handleBlur,["enter"])},{"prepend-inner":e.withCtx(()=>[e.createVNode(f,{modelValue:n.menu,"onUpdate:modelValue":a[1]||(a[1]=r=>n.menu=r),"close-on-content-click":!1,transition:"scale-transition",offset:"16"},{activator:e.withCtx(({props:r})=>[e.createVNode(l,e.mergeProps(r,{class:"cursor-pointer"}),{default:e.withCtx(()=>[...a[3]||(a[3]=[e.createTextVNode(" mdi-clock-outline ",-1)])]),_:1},16)]),default:e.withCtx(()=>[e.createVNode(c,{class:"time-picker-card"},{default:e.withCtx(()=>[e.createVNode(u,{modelValue:n.tempTime,"onUpdate:modelValue":a[0]||(a[0]=r=>n.tempTime=r),format:n.timeFormat,scrollable:"","use-seconds":"","hide-header":""},null,8,["modelValue","format"]),e.createVNode(p,null,{default:e.withCtx(()=>[e.createVNode(m),e.createVNode(d,{variant:"text",onClick:o.cancel},{default:e.withCtx(()=>[...a[4]||(a[4]=[e.createTextVNode("Cancel",-1)])]),_:1},8,["onClick"]),e.createVNode(d,{color:"primary",variant:"text",onClick:o.save},{default:e.withCtx(()=>[...a[5]||(a[5]=[e.createTextVNode("OK",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["modelValue","label","rules","hide-details","variant","density","style","class","disabled","data-test","onBlur","onKeydown"])}const C=_._export_sfc(y,[["render",v],["__scopeId","data-v-6afa73b6"]]);exports.OpenC3TimePicker=C;
2
+ //# sourceMappingURL=OpenC3TimePicker-4kqB_Chf.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenC3TimePicker-6pE8gGCO.cjs","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-text-field\n v-model=\"inputValue\"\n :label=\"label\"\n :rules=\"computedRules\"\n :hide-details=\"hideDetails\"\n :variant=\"variant\"\n :density=\"density\"\n :style=\"computedStyle\"\n :class=\"textFieldClass\"\n :disabled=\"disabled\"\n :data-test=\"dataTest\"\n @blur=\"handleBlur\"\n @keydown.enter=\"handleBlur\"\n >\n <template #prepend-inner>\n <v-menu\n v-model=\"menu\"\n :close-on-content-click=\"false\"\n transition=\"scale-transition\"\n offset=\"16\"\n >\n <template #activator=\"{ props: menuProps }\">\n <v-icon v-bind=\"menuProps\" class=\"cursor-pointer\">\n mdi-clock-outline\n </v-icon>\n </template>\n <v-card class=\"time-picker-card\">\n <v-time-picker\n v-model=\"tempTime\"\n :format=\"timeFormat\"\n scrollable\n use-seconds\n hide-header\n />\n <v-card-actions>\n <v-spacer />\n <v-btn variant=\"text\" @click=\"cancel\">Cancel</v-btn>\n <v-btn color=\"primary\" variant=\"text\" @click=\"save\">OK</v-btn>\n </v-card-actions>\n </v-card>\n </v-menu>\n </template>\n </v-text-field>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n inheritAttrs: false,\n props: {\n modelValue: {\n type: String,\n default: '',\n },\n label: {\n type: String,\n default: 'Time',\n },\n rules: {\n type: Array,\n default: () => [],\n },\n hideDetails: {\n type: [Boolean, String],\n default: false,\n },\n variant: {\n type: String,\n default: 'filled',\n },\n density: {\n type: String,\n default: 'default',\n },\n style: {\n type: [String, Object],\n default: '',\n },\n textFieldClass: {\n type: String,\n default: '',\n },\n dataTest: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:modelValue'],\n data() {\n return {\n menu: false,\n timeFormat: 'ampm',\n tempTime: null,\n inputValue: '',\n }\n },\n computed: {\n computedStyle() {\n if (typeof this.style === 'string') {\n return this.style\n }\n return this.style\n },\n computedRules() {\n // Wrap the passed rules to validate against the 24-hour modelValue\n return this.rules.map((rule) => {\n return () => {\n return rule(this.modelValue)\n }\n })\n },\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newVal) {\n // Update input display when modelValue changes externally\n if (!this.menu) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n inputValue(newVal) {\n // Immediately emit empty value when input is cleared for instant validation\n if (newVal === '' && this.modelValue !== '') {\n this.$emit('update:modelValue', '')\n }\n },\n menu(newVal) {\n if (newVal) {\n // When menu opens, initialize tempTime with current value\n this.tempTime = this.modelValue || '00:00:00'\n }\n },\n tempTime(newVal) {\n // Update input display in real-time when using the time picker\n if (this.menu && newVal) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n async created() {\n await this.loadTimeFormat()\n // Update display after loading time format\n this.inputValue = this.formatForDisplay(this.modelValue)\n },\n methods: {\n async loadTimeFormat() {\n try {\n const api = new OpenC3Api()\n const response = await api.get_setting('time_format')\n if (response) {\n this.timeFormat = response\n }\n } catch (error) {\n // Default to 'ampm' if setting is not found\n this.timeFormat = 'ampm'\n }\n },\n formatForDisplay(time24) {\n if (!time24) return ''\n if (this.timeFormat === '24hr') {\n return time24\n }\n return this.convertTo12Hour(time24)\n },\n handleBlur() {\n // Parse input and update modelValue\n const parsed = this.parseTimeInput(this.inputValue)\n if (parsed) {\n this.$emit('update:modelValue', parsed)\n this.inputValue = this.formatForDisplay(parsed)\n } else if (this.inputValue === '') {\n this.$emit('update:modelValue', '')\n } else {\n // Invalid input, revert to current modelValue display\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\n },\n parseTimeInput(input) {\n if (!input || input.trim() === '') return ''\n\n // Try to parse 24-hour format: HH:mm:ss or HH:mm\n const time24Match = input.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/)\n if (time24Match) {\n const hours = parseInt(time24Match[1], 10)\n const minutes = parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? parseInt(time24Match[3], 10) : 0\n if (\n hours >= 0 &&\n hours <= 23 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n // Try to parse 12-hour format: HH:mm:ss AM/PM or HH:mm AM/PM\n const time12Match = input.match(\n /^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s*(AM|PM|am|pm)$/i,\n )\n if (time12Match) {\n let hours = parseInt(time12Match[1], 10)\n const minutes = parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? parseInt(time12Match[3], 10) : 0\n const period = time12Match[4].toUpperCase()\n\n if (\n hours >= 1 &&\n hours <= 12 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n // Convert to 24-hour format\n if (period === 'AM') {\n if (hours === 12) hours = 0\n } else {\n if (hours !== 12) hours += 12\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n return null // Invalid format\n },\n save() {\n this.$emit('update:modelValue', this.tempTime)\n this.inputValue = this.formatForDisplay(this.tempTime)\n this.menu = false\n },\n cancel() {\n this.tempTime = this.modelValue || '00:00:00'\n this.menu = false\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = parseInt(parts[0], 10)\n const minutes = parts[1]\n const seconds = parts.length > 2 ? parts[2] : '00'\n const ampm = hours >= 12 ? 'PM' : 'AM'\n hours = hours % 12\n hours = hours ? hours : 12 // 0 should be 12\n const paddedHours = hours.toString().padStart(2, '0')\n return `${paddedHours}:${minutes}:${seconds} ${ampm}`\n },\n },\n}\n</script>\n\n<style scoped>\n.time-picker-card {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock__container) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock) {\n background-color: var(--color-background-base-default);\n}\n.time-picker-card :deep(.v-picker__header) {\n background-color: var(--color-background-surface-header);\n}\n.time-picker-card :deep(.v-picker-title) {\n background-color: var(--color-background-surface-header);\n}\n.cursor-pointer {\n cursor: pointer;\n}\n</style>\n"],"names":["_sfc_main","rule","newVal","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","parts","ampm","_createBlock","_component_v_text_field","$data","$event","$props","$options","_createVNode","_component_v_menu","_withCtx","menuProps","_component_v_icon","_mergeProps","_cache","_component_v_card","_component_v_time_picker","_component_v_card_actions","_component_v_spacer","_component_v_btn"],"mappings":"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"}
1
+ {"version":3,"file":"OpenC3TimePicker-4kqB_Chf.cjs","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-text-field\n v-model=\"inputValue\"\n :label=\"label\"\n :rules=\"computedRules\"\n :hide-details=\"hideDetails\"\n :variant=\"variant\"\n :density=\"density\"\n :style=\"computedStyle\"\n :class=\"textFieldClass\"\n :disabled=\"disabled\"\n :data-test=\"dataTest\"\n @blur=\"handleBlur\"\n @keydown.enter=\"handleBlur\"\n >\n <template #prepend-inner>\n <v-menu\n v-model=\"menu\"\n :close-on-content-click=\"false\"\n transition=\"scale-transition\"\n offset=\"16\"\n >\n <template #activator=\"{ props: menuProps }\">\n <v-icon v-bind=\"menuProps\" class=\"cursor-pointer\">\n mdi-clock-outline\n </v-icon>\n </template>\n <v-card class=\"time-picker-card\">\n <v-time-picker\n v-model=\"tempTime\"\n :format=\"timeFormat\"\n scrollable\n use-seconds\n hide-header\n />\n <v-card-actions>\n <v-spacer />\n <v-btn variant=\"text\" @click=\"cancel\">Cancel</v-btn>\n <v-btn color=\"primary\" variant=\"text\" @click=\"save\">OK</v-btn>\n </v-card-actions>\n </v-card>\n </v-menu>\n </template>\n </v-text-field>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n inheritAttrs: false,\n props: {\n modelValue: {\n type: String,\n default: '',\n },\n label: {\n type: String,\n default: 'Time',\n },\n rules: {\n type: Array,\n default: () => [],\n },\n hideDetails: {\n type: [Boolean, String],\n default: false,\n },\n variant: {\n type: String,\n default: 'filled',\n },\n density: {\n type: String,\n default: 'default',\n },\n style: {\n type: [String, Object],\n default: '',\n },\n textFieldClass: {\n type: String,\n default: '',\n },\n dataTest: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:modelValue'],\n data() {\n return {\n menu: false,\n timeFormat: 'ampm',\n tempTime: null,\n inputValue: '',\n }\n },\n computed: {\n computedStyle() {\n if (typeof this.style === 'string') {\n return this.style\n }\n return this.style\n },\n computedRules() {\n // Wrap the passed rules to validate against the 24-hour modelValue\n return this.rules.map((rule) => {\n return () => {\n return rule(this.modelValue)\n }\n })\n },\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newVal) {\n // Update input display when modelValue changes externally\n if (!this.menu) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n inputValue(newVal) {\n // Immediately emit empty value when input is cleared for instant validation\n if (newVal === '' && this.modelValue !== '') {\n this.$emit('update:modelValue', '')\n }\n },\n menu(newVal) {\n if (newVal) {\n // When menu opens, initialize tempTime with current value\n this.tempTime = this.modelValue || '00:00:00'\n }\n },\n tempTime(newVal) {\n // Update input display in real-time when using the time picker\n if (this.menu && newVal) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n async created() {\n await this.loadTimeFormat()\n // Update display after loading time format\n this.inputValue = this.formatForDisplay(this.modelValue)\n },\n methods: {\n async loadTimeFormat() {\n try {\n const api = new OpenC3Api()\n const response = await api.get_setting('time_format')\n if (response) {\n this.timeFormat = response\n }\n } catch (error) {\n // Default to 'ampm' if setting is not found\n this.timeFormat = 'ampm'\n }\n },\n formatForDisplay(time24) {\n if (!time24) return ''\n if (this.timeFormat === '24hr') {\n return time24\n }\n return this.convertTo12Hour(time24)\n },\n handleBlur() {\n // Parse input and update modelValue\n const parsed = this.parseTimeInput(this.inputValue)\n if (parsed) {\n this.$emit('update:modelValue', parsed)\n this.inputValue = this.formatForDisplay(parsed)\n } else if (this.inputValue === '') {\n this.$emit('update:modelValue', '')\n } else {\n // Invalid input, revert to current modelValue display\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\n },\n parseTimeInput(input) {\n if (!input || input.trim() === '') return ''\n\n // Try to parse 24-hour format: HH:mm:ss or HH:mm\n const time24Match = input.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/)\n if (time24Match) {\n const hours = parseInt(time24Match[1], 10)\n const minutes = parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? parseInt(time24Match[3], 10) : 0\n if (\n hours >= 0 &&\n hours <= 23 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n // Try to parse 12-hour format: HH:mm:ss AM/PM or HH:mm AM/PM\n const time12Match = input.match(\n /^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s*(AM|PM|am|pm)$/i,\n )\n if (time12Match) {\n let hours = parseInt(time12Match[1], 10)\n const minutes = parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? parseInt(time12Match[3], 10) : 0\n const period = time12Match[4].toUpperCase()\n\n if (\n hours >= 1 &&\n hours <= 12 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n // Convert to 24-hour format\n if (period === 'AM') {\n if (hours === 12) hours = 0\n } else {\n if (hours !== 12) hours += 12\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n return null // Invalid format\n },\n save() {\n this.$emit('update:modelValue', this.tempTime)\n this.inputValue = this.formatForDisplay(this.tempTime)\n this.menu = false\n },\n cancel() {\n this.tempTime = this.modelValue || '00:00:00'\n this.menu = false\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = parseInt(parts[0], 10)\n const minutes = parts[1]\n const seconds = parts.length > 2 ? parts[2] : '00'\n const ampm = hours >= 12 ? 'PM' : 'AM'\n hours = hours % 12\n hours = hours ? hours : 12 // 0 should be 12\n const paddedHours = hours.toString().padStart(2, '0')\n return `${paddedHours}:${minutes}:${seconds} ${ampm}`\n },\n },\n}\n</script>\n\n<style scoped>\n.time-picker-card {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock__container) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock) {\n background-color: var(--color-background-base-default);\n}\n.time-picker-card :deep(.v-picker__header) {\n background-color: var(--color-background-surface-header);\n}\n.time-picker-card :deep(.v-picker-title) {\n background-color: var(--color-background-surface-header);\n}\n.cursor-pointer {\n cursor: pointer;\n}\n</style>\n"],"names":["_sfc_main","rule","newVal","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","parts","ampm","_createBlock","_component_v_text_field","$data","$event","$props","$options","_createVNode","_component_v_menu","_withCtx","menuProps","_component_v_icon","_mergeProps","_cache","_component_v_card","_component_v_time_picker","_component_v_card_actions","_component_v_spacer","_component_v_btn"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { y as v } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js";
1
+ import { O as v } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-8uBNo_8r.js";
2
2
  import { resolveComponent as n, createBlock as S, openBlock as g, withKeys as T, normalizeClass as F, normalizeStyle as b, withCtx as r, createVNode as o, createTextVNode as d, mergeProps as k } from "vue";
3
3
  import { _ as C } from "./CustomIcon-B9m73Gqm.js";
4
4
  const x = {
@@ -216,4 +216,4 @@ const M = /* @__PURE__ */ C(x, [["render", I], ["__scopeId", "data-v-6afa73b6"]]
216
216
  export {
217
217
  M as O
218
218
  };
219
- //# sourceMappingURL=OpenC3TimePicker-D-_qqySI.js.map
219
+ //# sourceMappingURL=OpenC3TimePicker-C9CBFp3d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenC3TimePicker-D-_qqySI.js","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-text-field\n v-model=\"inputValue\"\n :label=\"label\"\n :rules=\"computedRules\"\n :hide-details=\"hideDetails\"\n :variant=\"variant\"\n :density=\"density\"\n :style=\"computedStyle\"\n :class=\"textFieldClass\"\n :disabled=\"disabled\"\n :data-test=\"dataTest\"\n @blur=\"handleBlur\"\n @keydown.enter=\"handleBlur\"\n >\n <template #prepend-inner>\n <v-menu\n v-model=\"menu\"\n :close-on-content-click=\"false\"\n transition=\"scale-transition\"\n offset=\"16\"\n >\n <template #activator=\"{ props: menuProps }\">\n <v-icon v-bind=\"menuProps\" class=\"cursor-pointer\">\n mdi-clock-outline\n </v-icon>\n </template>\n <v-card class=\"time-picker-card\">\n <v-time-picker\n v-model=\"tempTime\"\n :format=\"timeFormat\"\n scrollable\n use-seconds\n hide-header\n />\n <v-card-actions>\n <v-spacer />\n <v-btn variant=\"text\" @click=\"cancel\">Cancel</v-btn>\n <v-btn color=\"primary\" variant=\"text\" @click=\"save\">OK</v-btn>\n </v-card-actions>\n </v-card>\n </v-menu>\n </template>\n </v-text-field>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n inheritAttrs: false,\n props: {\n modelValue: {\n type: String,\n default: '',\n },\n label: {\n type: String,\n default: 'Time',\n },\n rules: {\n type: Array,\n default: () => [],\n },\n hideDetails: {\n type: [Boolean, String],\n default: false,\n },\n variant: {\n type: String,\n default: 'filled',\n },\n density: {\n type: String,\n default: 'default',\n },\n style: {\n type: [String, Object],\n default: '',\n },\n textFieldClass: {\n type: String,\n default: '',\n },\n dataTest: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:modelValue'],\n data() {\n return {\n menu: false,\n timeFormat: 'ampm',\n tempTime: null,\n inputValue: '',\n }\n },\n computed: {\n computedStyle() {\n if (typeof this.style === 'string') {\n return this.style\n }\n return this.style\n },\n computedRules() {\n // Wrap the passed rules to validate against the 24-hour modelValue\n return this.rules.map((rule) => {\n return () => {\n return rule(this.modelValue)\n }\n })\n },\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newVal) {\n // Update input display when modelValue changes externally\n if (!this.menu) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n inputValue(newVal) {\n // Immediately emit empty value when input is cleared for instant validation\n if (newVal === '' && this.modelValue !== '') {\n this.$emit('update:modelValue', '')\n }\n },\n menu(newVal) {\n if (newVal) {\n // When menu opens, initialize tempTime with current value\n this.tempTime = this.modelValue || '00:00:00'\n }\n },\n tempTime(newVal) {\n // Update input display in real-time when using the time picker\n if (this.menu && newVal) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n async created() {\n await this.loadTimeFormat()\n // Update display after loading time format\n this.inputValue = this.formatForDisplay(this.modelValue)\n },\n methods: {\n async loadTimeFormat() {\n try {\n const api = new OpenC3Api()\n const response = await api.get_setting('time_format')\n if (response) {\n this.timeFormat = response\n }\n } catch (error) {\n // Default to 'ampm' if setting is not found\n this.timeFormat = 'ampm'\n }\n },\n formatForDisplay(time24) {\n if (!time24) return ''\n if (this.timeFormat === '24hr') {\n return time24\n }\n return this.convertTo12Hour(time24)\n },\n handleBlur() {\n // Parse input and update modelValue\n const parsed = this.parseTimeInput(this.inputValue)\n if (parsed) {\n this.$emit('update:modelValue', parsed)\n this.inputValue = this.formatForDisplay(parsed)\n } else if (this.inputValue === '') {\n this.$emit('update:modelValue', '')\n } else {\n // Invalid input, revert to current modelValue display\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\n },\n parseTimeInput(input) {\n if (!input || input.trim() === '') return ''\n\n // Try to parse 24-hour format: HH:mm:ss or HH:mm\n const time24Match = input.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/)\n if (time24Match) {\n const hours = parseInt(time24Match[1], 10)\n const minutes = parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? parseInt(time24Match[3], 10) : 0\n if (\n hours >= 0 &&\n hours <= 23 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n // Try to parse 12-hour format: HH:mm:ss AM/PM or HH:mm AM/PM\n const time12Match = input.match(\n /^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s*(AM|PM|am|pm)$/i,\n )\n if (time12Match) {\n let hours = parseInt(time12Match[1], 10)\n const minutes = parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? parseInt(time12Match[3], 10) : 0\n const period = time12Match[4].toUpperCase()\n\n if (\n hours >= 1 &&\n hours <= 12 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n // Convert to 24-hour format\n if (period === 'AM') {\n if (hours === 12) hours = 0\n } else {\n if (hours !== 12) hours += 12\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n return null // Invalid format\n },\n save() {\n this.$emit('update:modelValue', this.tempTime)\n this.inputValue = this.formatForDisplay(this.tempTime)\n this.menu = false\n },\n cancel() {\n this.tempTime = this.modelValue || '00:00:00'\n this.menu = false\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = parseInt(parts[0], 10)\n const minutes = parts[1]\n const seconds = parts.length > 2 ? parts[2] : '00'\n const ampm = hours >= 12 ? 'PM' : 'AM'\n hours = hours % 12\n hours = hours ? hours : 12 // 0 should be 12\n const paddedHours = hours.toString().padStart(2, '0')\n return `${paddedHours}:${minutes}:${seconds} ${ampm}`\n },\n },\n}\n</script>\n\n<style scoped>\n.time-picker-card {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock__container) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock) {\n background-color: var(--color-background-base-default);\n}\n.time-picker-card :deep(.v-picker__header) {\n background-color: var(--color-background-surface-header);\n}\n.time-picker-card :deep(.v-picker-title) {\n background-color: var(--color-background-surface-header);\n}\n.cursor-pointer {\n cursor: pointer;\n}\n</style>\n"],"names":["_sfc_main","rule","newVal","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","parts","ampm","_createBlock","_component_v_text_field","$data","$event","$props","$options","_createVNode","_component_v_menu","_withCtx","menuProps","_component_v_icon","_mergeProps","_cache","_component_v_card","_component_v_time_picker","_component_v_card_actions","_component_v_spacer","_component_v_btn"],"mappings":"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"}
1
+ {"version":3,"file":"OpenC3TimePicker-C9CBFp3d.js","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-text-field\n v-model=\"inputValue\"\n :label=\"label\"\n :rules=\"computedRules\"\n :hide-details=\"hideDetails\"\n :variant=\"variant\"\n :density=\"density\"\n :style=\"computedStyle\"\n :class=\"textFieldClass\"\n :disabled=\"disabled\"\n :data-test=\"dataTest\"\n @blur=\"handleBlur\"\n @keydown.enter=\"handleBlur\"\n >\n <template #prepend-inner>\n <v-menu\n v-model=\"menu\"\n :close-on-content-click=\"false\"\n transition=\"scale-transition\"\n offset=\"16\"\n >\n <template #activator=\"{ props: menuProps }\">\n <v-icon v-bind=\"menuProps\" class=\"cursor-pointer\">\n mdi-clock-outline\n </v-icon>\n </template>\n <v-card class=\"time-picker-card\">\n <v-time-picker\n v-model=\"tempTime\"\n :format=\"timeFormat\"\n scrollable\n use-seconds\n hide-header\n />\n <v-card-actions>\n <v-spacer />\n <v-btn variant=\"text\" @click=\"cancel\">Cancel</v-btn>\n <v-btn color=\"primary\" variant=\"text\" @click=\"save\">OK</v-btn>\n </v-card-actions>\n </v-card>\n </v-menu>\n </template>\n </v-text-field>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n inheritAttrs: false,\n props: {\n modelValue: {\n type: String,\n default: '',\n },\n label: {\n type: String,\n default: 'Time',\n },\n rules: {\n type: Array,\n default: () => [],\n },\n hideDetails: {\n type: [Boolean, String],\n default: false,\n },\n variant: {\n type: String,\n default: 'filled',\n },\n density: {\n type: String,\n default: 'default',\n },\n style: {\n type: [String, Object],\n default: '',\n },\n textFieldClass: {\n type: String,\n default: '',\n },\n dataTest: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:modelValue'],\n data() {\n return {\n menu: false,\n timeFormat: 'ampm',\n tempTime: null,\n inputValue: '',\n }\n },\n computed: {\n computedStyle() {\n if (typeof this.style === 'string') {\n return this.style\n }\n return this.style\n },\n computedRules() {\n // Wrap the passed rules to validate against the 24-hour modelValue\n return this.rules.map((rule) => {\n return () => {\n return rule(this.modelValue)\n }\n })\n },\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newVal) {\n // Update input display when modelValue changes externally\n if (!this.menu) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n inputValue(newVal) {\n // Immediately emit empty value when input is cleared for instant validation\n if (newVal === '' && this.modelValue !== '') {\n this.$emit('update:modelValue', '')\n }\n },\n menu(newVal) {\n if (newVal) {\n // When menu opens, initialize tempTime with current value\n this.tempTime = this.modelValue || '00:00:00'\n }\n },\n tempTime(newVal) {\n // Update input display in real-time when using the time picker\n if (this.menu && newVal) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n async created() {\n await this.loadTimeFormat()\n // Update display after loading time format\n this.inputValue = this.formatForDisplay(this.modelValue)\n },\n methods: {\n async loadTimeFormat() {\n try {\n const api = new OpenC3Api()\n const response = await api.get_setting('time_format')\n if (response) {\n this.timeFormat = response\n }\n } catch (error) {\n // Default to 'ampm' if setting is not found\n this.timeFormat = 'ampm'\n }\n },\n formatForDisplay(time24) {\n if (!time24) return ''\n if (this.timeFormat === '24hr') {\n return time24\n }\n return this.convertTo12Hour(time24)\n },\n handleBlur() {\n // Parse input and update modelValue\n const parsed = this.parseTimeInput(this.inputValue)\n if (parsed) {\n this.$emit('update:modelValue', parsed)\n this.inputValue = this.formatForDisplay(parsed)\n } else if (this.inputValue === '') {\n this.$emit('update:modelValue', '')\n } else {\n // Invalid input, revert to current modelValue display\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\n },\n parseTimeInput(input) {\n if (!input || input.trim() === '') return ''\n\n // Try to parse 24-hour format: HH:mm:ss or HH:mm\n const time24Match = input.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/)\n if (time24Match) {\n const hours = parseInt(time24Match[1], 10)\n const minutes = parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? parseInt(time24Match[3], 10) : 0\n if (\n hours >= 0 &&\n hours <= 23 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n // Try to parse 12-hour format: HH:mm:ss AM/PM or HH:mm AM/PM\n const time12Match = input.match(\n /^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s*(AM|PM|am|pm)$/i,\n )\n if (time12Match) {\n let hours = parseInt(time12Match[1], 10)\n const minutes = parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? parseInt(time12Match[3], 10) : 0\n const period = time12Match[4].toUpperCase()\n\n if (\n hours >= 1 &&\n hours <= 12 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n // Convert to 24-hour format\n if (period === 'AM') {\n if (hours === 12) hours = 0\n } else {\n if (hours !== 12) hours += 12\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n return null // Invalid format\n },\n save() {\n this.$emit('update:modelValue', this.tempTime)\n this.inputValue = this.formatForDisplay(this.tempTime)\n this.menu = false\n },\n cancel() {\n this.tempTime = this.modelValue || '00:00:00'\n this.menu = false\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = parseInt(parts[0], 10)\n const minutes = parts[1]\n const seconds = parts.length > 2 ? parts[2] : '00'\n const ampm = hours >= 12 ? 'PM' : 'AM'\n hours = hours % 12\n hours = hours ? hours : 12 // 0 should be 12\n const paddedHours = hours.toString().padStart(2, '0')\n return `${paddedHours}:${minutes}:${seconds} ${ampm}`\n },\n },\n}\n</script>\n\n<style scoped>\n.time-picker-card {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock__container) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock) {\n background-color: var(--color-background-base-default);\n}\n.time-picker-card :deep(.v-picker__header) {\n background-color: var(--color-background-surface-header);\n}\n.time-picker-card :deep(.v-picker-title) {\n background-color: var(--color-background-surface-header);\n}\n.cursor-pointer {\n cursor: pointer;\n}\n</style>\n"],"names":["_sfc_main","rule","newVal","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","parts","ampm","_createBlock","_component_v_text_field","$data","$event","$props","$options","_createVNode","_component_v_menu","_withCtx","menuProps","_component_v_icon","_mergeProps","_cache","_component_v_card","_component_v_time_picker","_component_v_card_actions","_component_v_spacer","_component_v_btn"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { f as V, y as q, a as M, W as Z, e as X, l as H } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js";
2
- import { resolveComponent as d, createElementBlock as E, openBlock as f, createVNode as o, withCtx as r, createTextVNode as T, createElementVNode as _, withModifiers as O, normalizeStyle as B, toDisplayString as k, createBlock as x, withKeys as N, Fragment as L, renderList as P, ref as $, computed as Y, watch as K, createCommentVNode as I, withDirectives as F, vShow as z, normalizeProps as R, guardReactiveProps as U } from "vue";
1
+ import { E as V, O as q, a as M, W as Z, A as X, l as H } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-8uBNo_8r.js";
2
+ import { resolveComponent as d, createElementBlock as I, openBlock as f, createVNode as o, withCtx as r, createTextVNode as T, createElementVNode as _, withModifiers as O, normalizeStyle as B, toDisplayString as k, createBlock as x, withKeys as N, Fragment as R, renderList as P, ref as $, computed as Y, watch as K, createCommentVNode as E, withDirectives as F, vShow as z, normalizeProps as L, guardReactiveProps as U } from "vue";
3
3
  import { _ as A } from "./CustomIcon-B9m73Gqm.js";
4
4
  import { f as J } from "./fileIcon-DqRHb1_Z.js";
5
- import { A as j } from "./TopBar-DzxJ69Tt.js";
5
+ import { A as j } from "./TopBar-DcfK2Z2G.js";
6
6
  class Q {
7
7
  constructor() {
8
8
  V.get("/openc3-api/autocomplete/data/screen").then((t) => {
@@ -204,7 +204,7 @@ const ee = {
204
204
  }, te = { class: "screen-editor-container" };
205
205
  function ne(e, t, n, s, i, l) {
206
206
  const c = d("v-btn"), v = d("v-file-input"), h = d("v-spacer"), m = d("v-row"), y = d("v-list-item-title"), S = d("v-list-item"), w = d("v-divider"), u = d("v-list"), a = d("v-menu");
207
- return f(), E("div", te, [
207
+ return f(), I("div", te, [
208
208
  o(m, {
209
209
  "no-gutters": "",
210
210
  align: "center",
@@ -417,7 +417,7 @@ function oe(e, t, n, s, i, l) {
417
417
  }, null, 8, ["modelValue", "keywords", "filename"]),
418
418
  o(y, { style: { "max-height": "120px", "overflow-y": "auto" } }, {
419
419
  default: r(() => [
420
- (f(!0), E(L, null, P(l.editErrors, (a, g) => (f(), E("div", { key: g }, [
420
+ (f(!0), I(R, null, P(l.editErrors, (a, g) => (f(), I("div", { key: g }, [
421
421
  _("span", {
422
422
  class: "text-red",
423
423
  textContent: k(a)
@@ -753,7 +753,7 @@ function me(e, t, n, s, i, l) {
753
753
  _: 1
754
754
  }, 8, ["modelValue"]);
755
755
  }
756
- const Le = /* @__PURE__ */ A(ue, [["render", me]]), fe = { class: "tree-node" }, pe = { class: "content-wrapper" }, ge = ["tabindex"], ve = { key: 1 }, ye = {
756
+ const Re = /* @__PURE__ */ A(ue, [["render", me]]), fe = { class: "tree-node" }, pe = { class: "content-wrapper" }, ge = ["tabindex"], ve = { key: 1 }, ye = {
757
757
  key: 2,
758
758
  class: "children"
759
759
  }, _e = {
@@ -814,7 +814,7 @@ const Le = /* @__PURE__ */ A(ue, [["render", me]]), fe = { class: "tree-node" },
814
814
  };
815
815
  return (u, a) => {
816
816
  const g = d("v-tooltip"), p = d("v-icon"), b = d("v-btn"), C = d("tree-node", !0);
817
- return f(), E(L, null, [
817
+ return f(), I(R, null, [
818
818
  o(g, {
819
819
  modelValue: c.value.show,
820
820
  "onUpdate:modelValue": a[0] || (a[0] = (D) => c.value.show = D),
@@ -823,7 +823,7 @@ const Le = /* @__PURE__ */ A(ue, [["render", me]]), fe = { class: "tree-node" },
823
823
  style: B(`position: fixed; left: ${c.value.x}px; top: ${c.value.y}px; pointer-events: none;`)
824
824
  }, null, 8, ["modelValue", "text", "style"]),
825
825
  _("div", fe, [
826
- i.value ? (f(), E("div", {
826
+ i.value ? (f(), I("div", {
827
827
  key: 0,
828
828
  class: "node-content",
829
829
  onClick: a[4] || (a[4] = (D) => m(e.node))
@@ -838,7 +838,7 @@ const Le = /* @__PURE__ */ A(ue, [["render", me]]), fe = { class: "tree-node" },
838
838
  T(k(e.node.isOpen ? "mdi-menu-down" : "mdi-menu-right"), 1)
839
839
  ]),
840
840
  _: 1
841
- })) : I("", !0),
841
+ })) : E("", !0),
842
842
  e.node.children ? (f(), x(p, {
843
843
  key: 1,
844
844
  size: "small",
@@ -890,11 +890,11 @@ const Le = /* @__PURE__ */ A(ue, [["render", me]]), fe = { class: "tree-node" },
890
890
  style: { "margin-left": "auto" },
891
891
  "aria-label": "Delete",
892
892
  onClick: a[3] || (a[3] = (D) => l("delete"))
893
- })) : I("", !0)
893
+ })) : E("", !0)
894
894
  ])
895
- ])) : (f(), E("div", ve)),
896
- e.node.children && e.node.isOpen ? (f(), E("div", ye, [
897
- (f(!0), E(L, null, P(e.node.children, (D) => (f(), x(C, {
895
+ ])) : (f(), I("div", ve)),
896
+ e.node.children && e.node.isOpen ? (f(), I("div", ye, [
897
+ (f(!0), I(R, null, P(e.node.children, (D) => (f(), x(C, {
898
898
  key: D.id,
899
899
  node: D,
900
900
  search: e.search,
@@ -902,7 +902,7 @@ const Le = /* @__PURE__ */ A(ue, [["render", me]]), fe = { class: "tree-node" },
902
902
  onNodeToggled: S,
903
903
  onRequest: w
904
904
  }, null, 8, ["node", "search", "type"]))), 128))
905
- ])) : I("", !0)
905
+ ])) : E("", !0)
906
906
  ])
907
907
  ], 64);
908
908
  };
@@ -1182,7 +1182,7 @@ function Se(e, t, n, s, i, l) {
1182
1182
  _: 1
1183
1183
  }),
1184
1184
  _("div", ke, [
1185
- (f(!0), E(L, null, P(i.items, (b) => (f(), x(w, {
1185
+ (f(!0), I(R, null, P(i.items, (b) => (f(), x(w, {
1186
1186
  key: `${b.id}`,
1187
1187
  node: b,
1188
1188
  search: i.search,
@@ -1259,7 +1259,7 @@ function Se(e, t, n, s, i, l) {
1259
1259
  _: 1
1260
1260
  }, 8, ["modelValue"]);
1261
1261
  }
1262
- const Re = /* @__PURE__ */ A(xe, [["render", Se]]), W = 20, Te = {
1262
+ const Le = /* @__PURE__ */ A(xe, [["render", Se]]), W = 20, Te = {
1263
1263
  components: {
1264
1264
  EditScreenDialog: re
1265
1265
  },
@@ -1725,7 +1725,9 @@ const Re = /* @__PURE__ */ A(xe, [["render", Se]]), W = 20, Te = {
1725
1725
  this.cacheTimeout,
1726
1726
  e
1727
1727
  ).then((t) => {
1728
- t && t.length > 0 && this.updateValues(t);
1728
+ t && t.length > 0 && (this.updateValues(t), this.errors = this.errors.filter(
1729
+ (n) => n.type !== "error" || !n.message.includes("Request error")
1730
+ ));
1729
1731
  }).catch((t) => {
1730
1732
  let n = JSON.stringify(t, null, 2);
1731
1733
  this.errors.find((s) => s.message === n) || this.errors.length < W && this.errors.push({
@@ -1802,13 +1804,13 @@ const Re = /* @__PURE__ */ A(xe, [["render", Se]]), W = 20, Te = {
1802
1804
  class: "pa-1",
1803
1805
  style: { position: "relative" }
1804
1806
  };
1805
- function Ie(e, t, n, s, i, l) {
1807
+ function Ee(e, t, n, s, i, l) {
1806
1808
  const c = d("v-btn"), v = d("v-tooltip"), h = d("v-spacer"), m = d("v-toolbar"), y = d("v-overlay"), S = d("vertical-widget"), w = d("v-expand-transition"), u = d("v-card"), a = d("edit-screen-dialog"), g = d("v-textarea"), p = d("v-card-actions"), b = d("v-dialog");
1807
- return f(), E("div", {
1809
+ return f(), I("div", {
1808
1810
  ref: "bar",
1809
1811
  style: B(l.computedStyle)
1810
1812
  }, [
1811
- n.inline ? I("", !0) : (f(), x(u, {
1813
+ n.inline ? E("", !0) : (f(), x(u, {
1812
1814
  key: 0,
1813
1815
  "min-height": i.height,
1814
1816
  "min-width": i.width,
@@ -1837,13 +1839,13 @@ function Ie(e, t, n, s, i, l) {
1837
1839
  "aria-label": "Edit Screen",
1838
1840
  onClick: l.openEdit
1839
1841
  }, null, 8, ["onClick"]),
1840
- n.fixFloated ? I("", !0) : (f(), x(v, {
1842
+ n.fixFloated ? E("", !0) : (f(), x(v, {
1841
1843
  key: 0,
1842
1844
  "open-delay": 600,
1843
1845
  location: "top"
1844
1846
  }, {
1845
1847
  activator: r(({ props: C }) => [
1846
- _("div", R(U(C)), [
1848
+ _("div", L(U(C)), [
1847
1849
  o(c, {
1848
1850
  icon: i.floated ? "mdi-balloon" : "mdi-view-grid-outline",
1849
1851
  variant: "text",
@@ -1865,7 +1867,7 @@ function Ie(e, t, n, s, i, l) {
1865
1867
  location: "top"
1866
1868
  }, {
1867
1869
  activator: r(({ props: C }) => [
1868
- _("div", R(U(C)), [
1870
+ _("div", L(U(C)), [
1869
1871
  o(c, {
1870
1872
  icon: "mdi-arrow-up",
1871
1873
  variant: "text",
@@ -1880,14 +1882,14 @@ function Ie(e, t, n, s, i, l) {
1880
1882
  t[6] || (t[6] = _("span", null, " Move Screen Up ", -1))
1881
1883
  ]),
1882
1884
  _: 1
1883
- })) : I("", !0),
1885
+ })) : E("", !0),
1884
1886
  i.floated && i.zIndex > n.minZ ? (f(), x(v, {
1885
1887
  key: 2,
1886
1888
  "open-delay": 600,
1887
1889
  location: "top"
1888
1890
  }, {
1889
1891
  activator: r(({ props: C }) => [
1890
- _("div", R(U(C)), [
1892
+ _("div", L(U(C)), [
1891
1893
  o(c, {
1892
1894
  icon: "mdi-arrow-down",
1893
1895
  variant: "text",
@@ -1902,7 +1904,7 @@ function Ie(e, t, n, s, i, l) {
1902
1904
  t[7] || (t[7] = _("span", null, " Move Screen Down ", -1))
1903
1905
  ]),
1904
1906
  _: 1
1905
- })) : I("", !0),
1907
+ })) : E("", !0),
1906
1908
  o(h),
1907
1909
  _("span", null, k(n.target) + " " + k(n.screen), 1),
1908
1910
  o(h),
@@ -1931,19 +1933,18 @@ function Ie(e, t, n, s, i, l) {
1931
1933
  "data-test": "close-screen-icon",
1932
1934
  "aria-label": "Close Screen",
1933
1935
  onClick: t[1] || (t[1] = (C) => e.$emit("close-screen"))
1934
- })) : I("", !0)
1936
+ })) : E("", !0)
1935
1937
  ]),
1936
1938
  _: 1
1937
1939
  }),
1938
- i.editDialog ? I("", !0) : (f(), x(w, { key: 0 }, {
1940
+ i.editDialog ? E("", !0) : (f(), x(w, { key: 0 }, {
1939
1941
  default: r(() => [
1940
1942
  F(_("div", Ce, [
1941
1943
  o(y, {
1942
1944
  style: { "pointer-events": "none" },
1943
1945
  "model-value": i.errors.length !== 0,
1944
1946
  opacity: "0.8",
1945
- absolute: "",
1946
- attach: "",
1947
+ contained: "",
1947
1948
  "scroll-strategy": "none"
1948
1949
  }, null, 8, ["model-value"]),
1949
1950
  (f(), x(S, {
@@ -1966,13 +1967,12 @@ function Ie(e, t, n, s, i, l) {
1966
1967
  ]),
1967
1968
  _: 1
1968
1969
  }, 8, ["min-height", "min-width"])),
1969
- n.inline ? (f(), E("div", Ve, [
1970
+ n.inline ? (f(), I("div", Ve, [
1970
1971
  o(y, {
1971
1972
  style: { "pointer-events": "none" },
1972
1973
  "model-value": i.errors.length !== 0,
1973
1974
  opacity: "0.8",
1974
- absolute: "",
1975
- attach: "",
1975
+ contained: "",
1976
1976
  "scroll-strategy": "none"
1977
1977
  }, null, 8, ["model-value"]),
1978
1978
  F(o(c, {
@@ -1998,7 +1998,7 @@ function Ie(e, t, n, s, i, l) {
1998
1998
  onClose: l.close,
1999
1999
  onCloseAll: l.closeAll
2000
2000
  }, null, 8, ["widgets", "screen-values", "screen-time-zone", "onAddItem", "onDeleteItem", "onOpen", "onClose", "onCloseAll"]))
2001
- ])) : I("", !0),
2001
+ ])) : E("", !0),
2002
2002
  i.editDialog ? (f(), x(a, {
2003
2003
  key: 2,
2004
2004
  modelValue: i.editDialog,
@@ -2011,7 +2011,7 @@ function Ie(e, t, n, s, i, l) {
2011
2011
  onSave: l.saveEdit,
2012
2012
  onCancel: l.cancelEdit,
2013
2013
  onDelete: l.deleteScreen
2014
- }, null, 8, ["modelValue", "target", "screen", "definition", "keywords", "errors", "onSave", "onCancel", "onDelete"])) : I("", !0),
2014
+ }, null, 8, ["modelValue", "target", "screen", "definition", "keywords", "errors", "onSave", "onCancel", "onDelete"])) : E("", !0),
2015
2015
  o(b, {
2016
2016
  modelValue: i.errorDialog,
2017
2017
  "onUpdate:modelValue": t[5] || (t[5] = (C) => i.errorDialog = C),
@@ -2068,17 +2068,17 @@ function Ie(e, t, n, s, i, l) {
2068
2068
  }, 8, ["modelValue"])
2069
2069
  ], 4);
2070
2070
  }
2071
- const Ue = /* @__PURE__ */ A(Te, [["render", Ie], ["__scopeId", "data-v-5ff10871"]]);
2071
+ const Ue = /* @__PURE__ */ A(Te, [["render", Ee], ["__scopeId", "data-v-c69254c7"]]);
2072
2072
  export {
2073
2073
  ze as C,
2074
2074
  re as E,
2075
- Re as F,
2075
+ Le as F,
2076
2076
  Ue as O,
2077
2077
  Q as S,
2078
2078
  Ne as T,
2079
2079
  ie as a,
2080
- Le as b,
2080
+ Re as b,
2081
2081
  Fe as c,
2082
2082
  ae as g
2083
2083
  };
2084
- //# sourceMappingURL=Openc3Screen-DYJHNotN.js.map
2084
+ //# sourceMappingURL=Openc3Screen-BxuqrFPG.js.map