openc3-cosmos-tool-admin 7.2.1 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/tools/admin/ArrayWidget-5XQXgMtp-80db1e3027ca0f38008d.js +2 -0
  3. data/tools/admin/{ArrayplotWidget-fdXLhGAl-bb78ab3e4fdecdfebd67.js → ArrayplotWidget-pk7OINvA-33482371ab3dd9c8a3e1.js} +1 -1
  4. data/tools/admin/{BarColumn-Bb305iCi-1d14dd1f021f8d8d5f6a.js → BarColumn-JQ552zb0-71f940da624cf74a8ac7.js} +1 -1
  5. data/tools/admin/{BlockWidget-Do3W6tZh-30b366b735726d3e884d.js → BlockWidget-B_5TnoG_-07bb5d5276892a455ef5.js} +2 -2
  6. data/tools/admin/ButtonWidget-CiZGNEls-b36f8511f142106bb716.js +1 -0
  7. data/tools/admin/{CanvasWidget-BRdVWln5-68610c4a029476073178.js → CanvasWidget-CzLQAoHY-05569d347e30d7c90f9f.js} +1 -1
  8. data/tools/admin/CanvasdotWidget-CcI1HwAp-131410357e5f5cb7c5cf.js +1 -0
  9. data/tools/admin/{CanvasimageWidget-Czbq1GuF-5f841f468351c7d6bdbf.js → CanvasimageWidget-CYg1rKr_-9d04ce25dc613fc2ccc6.js} +1 -1
  10. data/tools/admin/{CanvasimagevalueWidget-DKt5JgEt-c79bbec74e5403f7b6ec.js → CanvasimagevalueWidget-e0p2honY-c0ebf132498eedba3031.js} +1 -1
  11. data/tools/admin/{CanvaslabelWidget-DW2I1ra1-bf0c322f7c308654cfc2.js → CanvaslabelWidget-CgECf4wH-8a62168c6b54ce7dc69d.js} +1 -1
  12. data/tools/admin/{CanvaslabelvalueWidget-BhzvZVfD-ba39d0f36fbf3db6cd9c.js → CanvaslabelvalueWidget-bCIPWE4c-c301a198a35d0ba429cc.js} +1 -1
  13. data/tools/admin/CanvaslineWidget-Tw1B6RTA-30b7fce14bb17223c180.js +1 -0
  14. data/tools/admin/{CanvaslinevalueWidget-ihI97G8T-a7ccb7b7ca2d2628fdd5.js → CanvaslinevalueWidget-GvTic9rq-8cdbcb115d2e04007db0.js} +1 -1
  15. data/tools/admin/CheckbuttonWidget-DV6xeneq-c00e62096beb7d93a1c9.js +1 -0
  16. data/tools/admin/ComboboxWidget-BO31bWzg-5d5f35fb019f925d5ae2.js +1 -0
  17. data/tools/admin/DateWidget-DYviZFhJ-3517b8d8c507bb623800.js +1 -0
  18. data/tools/admin/{DetailsDialog-DE7lK17G-434a9ce6dcc8e6636a47.js → DetailsDialog-DHi4t3xd-23cd6112e439aa7c2e72.js} +1 -1
  19. data/tools/admin/{DynamicWidget-BuSbQVhf-f880988884028652fefc.js → DynamicWidget-BuSbQVhf-8c7a3d8e99d5fbadb524.js} +1 -1
  20. data/tools/admin/{FilechecksumWidget-DRnOt_UE-b118998ed499ab04e025.js → FilechecksumWidget-rJe1KvzY-a8b35d82b279ce437fe6.js} +1 -1
  21. data/tools/admin/{FiledisplayWidget-26R46EjS-312ad25b3132af381df5.js → FiledisplayWidget-CbTWgtBy-a4fcca29c88afb5c536d.js} +1 -1
  22. data/tools/admin/{FormatvalueWidget-BxyscMJc-9965b0bd2806cfbe79cb.js → FormatvalueWidget-B9Giwzaz-d95836be56ebf9a9fbae.js} +1 -1
  23. data/tools/admin/{Graph-BKw7xw1a-947d95e03148698e323f.js → Graph-xc7TNnsk-b819fee23f66c94861f9.js} +1 -1
  24. data/tools/admin/{GraphWidget-Cs9mvqUu-f9a29adafa014c1e26e4.js → GraphWidget-COvVOlEn-9d0cb68fec73a5f3454a.js} +1 -1
  25. data/tools/admin/{HorizontalWidget-fWLFj7Kg-46768f166783e7c59c1c.js → HorizontalWidget-BfdjRLGe-792a24c12a95a38bd847.js} +1 -1
  26. data/tools/admin/{HorizontalboxWidget-DEaXhKEz-b0ba376ca37ee17a7d70.js → HorizontalboxWidget-B1b9uNaB-e4ec787dc7d063c45fe0.js} +1 -1
  27. data/tools/admin/HorizontallineWidget-CHz4o6Gi-b60cc8d253fd53f17c8c.js +1 -0
  28. data/tools/admin/{IframeWidget-B143k4lo-47d90846ad305990fd45.js → IframeWidget-BCtrIgD1-5aac9e4f21efaab8f6fe.js} +1 -1
  29. data/tools/admin/{ImageLoader-BCpmQHIl-90267960b7246cba4d23.js → ImageLoader-BzE4VsHW-1b90e52f729ac92ee450.js} +1 -1
  30. data/tools/admin/{ImageviewerWidget-CLrvr6dw-6adafd871908af16336a.js → ImageviewerWidget-DKMBE3tQ-fc341ef1324e0620d71c.js} +1 -1
  31. data/tools/admin/InterfacesTab-C_AsAMrL-72de0290999c83b4f01f.js +1 -0
  32. data/tools/admin/{LabelWidget-CA1bTX2B-cf65a81edc2678cf21d0.js → LabelWidget-B0nE0ImW-54b49f3830be1cee8eb4.js} +1 -1
  33. data/tools/admin/LabelledWidget-DrZHj_lR-012360847b59e5acbd03.js +1 -0
  34. data/tools/admin/LabelprogressbarWidget-K9NphQp0-4fb2ed553ea5457e745e.js +1 -0
  35. data/tools/admin/{LabelsparklineWidget-B27xXxWg-46ed8faac17cc5e23e2c.js → LabelsparklineWidget-cn1OJvL3-126a26c9f5cf70def931.js} +1 -1
  36. data/tools/admin/LabelvalueWidget-DxJbd9nR-01ee83f67cecd181a9ef.js +1 -0
  37. data/tools/admin/LabelvaluedescWidget-B-RiUnpl-2189f2eada48bafa7426.js +1 -0
  38. data/tools/admin/LabelvaluelimitsbarWidget-BF94rtl8-3534b25320e1cd09f5a8.js +1 -0
  39. data/tools/admin/LabelvaluelimitscolumnWidget-UOfPu8D1-3bc11e94676b61fa03fa.js +1 -0
  40. data/tools/admin/LabelvaluerangebarWidget-EVON-Tv8-48083be1abd02e2b22dd.js +1 -0
  41. data/tools/admin/{Layout--_zNJWnw-a75e57affb59e71889ad.js → Layout-BLS4Yi3m-9a851fc81da50b5a0f78.js} +1 -1
  42. data/tools/admin/{LedWidget-D2uxHxe3-b432e645d6f5ac424a50.js → LedWidget-DqVfh3zJ-44a2c97be736ccc6b1b3.js} +1 -1
  43. data/tools/admin/{LimitsBar-DN1s8-MS-5fcc0dd234e18f768e31.js → LimitsBar-BqpvMpXM-299f056c19106e6b75fb.js} +1 -1
  44. data/tools/admin/{LimitsbarWidget-Cqhh7LKU-68bbd725e553a8fbb473.js → LimitsbarWidget-rEJIGKCx-c5d60ebf1e9e1a4ffb48.js} +1 -1
  45. data/tools/admin/{LimitscolorWidget-haGB4RbY-2bbe52d1c80aded0cc12.js → LimitscolorWidget-DVXho9Mm-43c53230d0556a4f1a5f.js} +1 -1
  46. data/tools/admin/{LimitscolumnWidget-B1GdmlR_-ea359135deab006453c1.js → LimitscolumnWidget-DSQAdlZS-5e2e3f51c3376782328c.js} +1 -1
  47. data/tools/admin/LinegraphWidget-CQRwZ0N6-0f570138c80d809f9285.js +1 -0
  48. data/tools/admin/{MatrixbycolumnsWidget-coHlLETG-860f23fb48426b9fd387.js → MatrixbycolumnsWidget-CJJ7SugT-ecba1687b1c179dcc8b9.js} +1 -1
  49. data/tools/admin/{MicroservicesTab-eR0hpoO1-90e70bfd68ca8cece876.js → MicroservicesTab-9I1i19SB-24a09c3bcdfbca7af3d8.js} +2 -2
  50. data/tools/admin/{OpenC3TimePicker-B8Vu9GBz-c1433e91ea28dd0e883e.js → OpenC3TimePicker-Cww9L2Ij-d23c4fb5d7d8178a137a.js} +1 -1
  51. data/tools/admin/{OutputDialog-B0DR879Y-1fe936426c84cb442ac4.js → OutputDialog-B-bk2nex-d22c9e9f81462796cf40.js} +1 -1
  52. data/tools/admin/PackagesTab-Cjj7tXrq-89408e61c959392ec84f.js +2 -0
  53. data/tools/admin/PluginsTab-VN4Z4v7e-ca0878630e8a775a0987.js +5 -0
  54. data/tools/admin/{ProgressbarWidget-D_yFssIZ-d10aa4e57145b3259669.js → ProgressbarWidget-VTd49uhi-4bf2baaad3eb99165018.js} +1 -1
  55. data/tools/admin/RadiobuttonWidget-DqsantxO-b47f08b4f7a848b82b4f.js +1 -0
  56. data/tools/admin/{RadiogroupWidget-2-td69IA-a20b41e0ee16fca8216f.js → RadiogroupWidget-Bht6RZPH-83314c896de2afd6894d.js} +1 -1
  57. data/tools/admin/{RangebarWidget-i2mlnxys-4eec6df5412c7c011047.js → RangebarWidget-CN11Oqws-3a133c58d66ddb2b34bf.js} +1 -1
  58. data/tools/admin/{RedisTab-WR7ODfau-47151697811af67bb310.js → RedisTab-CCtPxcYg-c331ecd0ae21eb136f39.js} +1 -1
  59. data/tools/admin/{RollupWidget-BEJ2Icg1-e244836ce5d601a70583.js → RollupWidget-cgl9Ghle-3fa38b3554127b346b0c.js} +1 -1
  60. data/tools/admin/RoutersTab-Duiv_o6g-4ca3fd52ef99712d30f7.js +1 -0
  61. data/tools/admin/{ScrollwindowWidget-BU1cRpL8-db955ba3d4a28aa695c0.js → ScrollwindowWidget-BFK-ihvZ-64da6ce3ba0f3118fd18.js} +1 -1
  62. data/tools/admin/{SecretsTab-CkjjSxCg-e1665e5ecea3aed8dad6.js → SecretsTab-BNyb54pD-fb3beba957358443d32e.js} +1 -1
  63. data/tools/admin/SettingsTab-Cvq3542H-57575239a634ca02206a.js +10 -0
  64. data/tools/admin/{SignalWidget-hiTkeem9-803814029a9fe6a17581.js → SignalWidget-Be7Z5pJD-0f9024939f3d5e4a418c.js} +1 -1
  65. data/tools/admin/{SimpleTextDialog-tGqcHHCx-aac1d333cbb9a93606d6.js → SimpleTextDialog-dn_TSiQ7-20dabd0df19c3059cf0f.js} +1 -1
  66. data/tools/admin/{SpacerWidget-CBmzzS_X-207fd991cbf6a40fe4b0.js → SpacerWidget-uKPA-f_0-03d7409692e75916a63f.js} +1 -1
  67. data/tools/admin/{SparklineWidget-CizRh6QR-125aeb303d4965c33db7.js → SparklineWidget-Wu5iFbly-10e00bf9372154d3ca85.js} +1 -1
  68. data/tools/admin/{TabbookWidget-CvL3Ozmx-392ae93cab5b7cbb9764.js → TabbookWidget-D3FrIoV4-b544084d75bde4b9d356.js} +1 -1
  69. data/tools/admin/{TargetsTab-KTV_gfLE-3a9c157196f584e54664.js → TargetsTab-CS7JjyjH-81370500aff926af0e8c.js} +1 -1
  70. data/tools/admin/TextboxWidget-f6wEcoI0-1ac8f94e536838694fa5.js +1 -0
  71. data/tools/admin/TextfieldWidget-D72Sey-h-acb374e2d0018cea37ae.js +1 -0
  72. data/tools/admin/TimeWidget-BBuxr7Db-234581053c602d1f9998.js +1 -0
  73. data/tools/admin/TitleWidget-Dfp5mPH2-ce6048efc981fc37f10b.js +1 -0
  74. data/tools/admin/{ToolsTab-yFxYcJ-o-7c21c60dd470d658fe4d.js → ToolsTab-VLEsXTJH-111d5d1fcf5683ad1d36.js} +1 -1
  75. data/tools/admin/{TsdbTab-B0BR-V6A-ab626c8be8b9836c1c78.js → TsdbTab-D_P34-tF-8717f03395909927e332.js} +1 -1
  76. data/tools/admin/{VWidget-5qOYva88-4db083a6475508bbf7ce.js → VWidget-5FjwlURU-6a72b64b7cc840033418.js} +1 -1
  77. data/tools/admin/{ValueWidget-CAkuc_w_-6037c5f1b4e7c0e9c790.js → ValueWidget-CpptSOvJ-71518e3093457d3a3e99.js} +1 -1
  78. data/tools/admin/ValuelimitsbarWidget-AgeOlPAV-191d4ad91bd9fcdb2e92.js +1 -0
  79. data/tools/admin/{ValuelimitscolumnWidget-iOjB_fCj-c8c67d58522b7f505b4f.js → ValuelimitscolumnWidget-CfTt7Q8a-6457391b1f8ce6e84aae.js} +1 -1
  80. data/tools/admin/ValuerangebarWidget-E3CtttJk-0521a131ef8b3c7d9461.js +1 -0
  81. data/tools/admin/{VerticalWidget-C6O0dhRU-7511fd89efa71860286e.js → VerticalWidget-B_eheXmK-3714fd0477bb202504f1.js} +1 -1
  82. data/tools/admin/{VerticalboxWidget-B-CoqRJG-29951e73bb5144b9ca2c.js → VerticalboxWidget-Bf8XJiY9-f18ae386e10f607a8128.js} +1 -1
  83. data/tools/admin/{Widget-CtYQauzA-ae8839a2e4146c799aec.js → Widget-CSgnvwEG-bc4dec83d0fc9039b821.js} +1 -1
  84. data/tools/admin/main-6a328857fae6aab0f418.js +1496 -0
  85. data/tools/admin/main.js +1 -1
  86. data/tools/admin/{settings-BrhbKDEv-791c3f57ac7979ee13b6.js → settings-CEBZz77m-520d12b72b93c319ccfd.js} +1 -1
  87. metadata +85 -85
  88. data/tools/admin/ArrayWidget-DMSm_P6c-efc7746a4ba953cd6808.js +0 -2
  89. data/tools/admin/ButtonWidget-DukCQt0F-c8a88a1d238108f85fc0.js +0 -2
  90. data/tools/admin/CanvasdotWidget-DV8PeDWz-da21bd87f779b9139269.js +0 -1
  91. data/tools/admin/CanvaslineWidget-DsjY37tp-97707caf9ea6147f085e.js +0 -1
  92. data/tools/admin/CheckbuttonWidget-B778Z-Zo-9dbaeff7a2a74130539a.js +0 -1
  93. data/tools/admin/ComboboxWidget-CuuvOL9K-838f18b5b010cb3d71ae.js +0 -1
  94. data/tools/admin/DateWidget-COvQTAeo-fdab60f30b292f493736.js +0 -1
  95. data/tools/admin/HorizontallineWidget-Bvu1QP3S-2ef01995448de3e2d6b7.js +0 -1
  96. data/tools/admin/InterfacesTab-zhl06TGR-269bf95691e1ca1133d0.js +0 -1
  97. data/tools/admin/LabelledWidget-BDhvr03J-d661081e5e66658337e8.js +0 -1
  98. data/tools/admin/LabelprogressbarWidget-g7A5CE8S-3e6d2543cbb4356e663b.js +0 -1
  99. data/tools/admin/LabelvalueWidget-DFn8o6LC-83776b27319b83d8f0db.js +0 -1
  100. data/tools/admin/LabelvaluedescWidget-BQpaxFaB-577f3f571587fc3e28a8.js +0 -1
  101. data/tools/admin/LabelvaluelimitsbarWidget-C-z96q8z-05aedeebb4882527347a.js +0 -1
  102. data/tools/admin/LabelvaluelimitscolumnWidget-D2TMEv9O-8f2ba12f3d8541a80f4f.js +0 -1
  103. data/tools/admin/LabelvaluerangebarWidget-D99dZCjz-f2a7ecfb05831ee9ece6.js +0 -1
  104. data/tools/admin/LinegraphWidget-COSOQ0uM-d51c56629154333d44e4.js +0 -1
  105. data/tools/admin/PackagesTab-aA0fmiQh-fb563fc6f35c8b0be850.js +0 -1
  106. data/tools/admin/PluginsTab-C-ItW862-32d7ee9164d04691765d.js +0 -5
  107. data/tools/admin/RadiobuttonWidget-DL0jVTcb-3c465bd94a1d1501b9aa.js +0 -1
  108. data/tools/admin/RoutersTab-DUvEd6IA-b95f4c2224cc6903fd12.js +0 -1
  109. data/tools/admin/SettingsTab-CJp0hFpx-bae27f27a99072352713.js +0 -6
  110. data/tools/admin/TextboxWidget-BtEwXzDO-e4893abb472b9a687d25.js +0 -1
  111. data/tools/admin/TextfieldWidget-BDbb57HP-51b0d1e6a5aa914e5ac8.js +0 -1
  112. data/tools/admin/TimeWidget-DzD8U8l8-2591897a5196cb54b68d.js +0 -1
  113. data/tools/admin/TitleWidget-CL53vf14-6e11a61576950ccd39fd.js +0 -1
  114. data/tools/admin/ValuelimitsbarWidget-Y8sO05E1-c51344904eca186c081f.js +0 -1
  115. data/tools/admin/ValuerangebarWidget-DsCoeAm6-a486168810aca7f0e206.js +0 -1
  116. data/tools/admin/main-040488697a5f3eed5115.js +0 -1502
@@ -1,4 +1,4 @@
1
- System.register(["./main-040488697a5f3eed5115.js","vue","vue-router","pinia","single-spa","vuetify"],(function(H,Ve){"use strict";var N,G,r,u,p,s,i,h,R,l,c,f,D,A,U,z;return{setters:[y=>{N=y.k,G=y.D},y=>{r=y.resolveComponent,u=y.openBlock,p=y.createElementBlock,s=y.createVNode,i=y.withCtx,h=y.createTextVNode,R=y.createBlock,l=y.createElementVNode,c=y.toDisplayString,f=y.createCommentVNode,D=y.Fragment,A=y.renderList,U=y.normalizeClass,z=y.mergeProps},null,null,null,null],execute:(function(){const y={downloading:"Downloading files…",enabling_dedup:"Enabling DEDUP…",ingesting:"Ingesting packets…",dedup_cooldown:"Waiting for DEDUP cooldown…",disabling_dedup:"Disabling DEDUP…"},Q={props:{modelValue:{type:Boolean,default:!1},context:{type:Object,required:!0}},emits:["update:modelValue","complete"],data(){return{loadingCandidates:!1,candidates:[],selectedKeys:[],targetVersion:"as_logged",bucketEnv:null,path:null,candidateHeaders:[{title:"File",key:"filename"},{title:"Key",key:"key"}],jobId:null,jobStatus:null,pollHandle:null,errorMessage:null,confirmCloseOpen:!1}},computed:{isRunning(){return this.jobStatus?["Queued","Running"].includes(this.jobStatus.state):!1},phaseLabel(){const a=this.jobStatus?.progress_phase;if(!a)return this.jobStatus?.state||"";if(a==="dedup_cooldown"){const e=this.cooldownRemaining;if(e!=null)return`Waiting for DEDUP cooldown (${e}s)…`}return y[a]||a},cooldownRemaining(){const a=this.jobStatus?.dedup_enabled_at,e=this.jobStatus?.dedup_cooldown_seconds;if(!a||!e)return null;const n=Date.now()/1e3,o=new Date(a).getTime()/1e3,t=Math.round(o+e-n);return Math.max(t,0)},progressPercent(){const a=this.jobStatus;return a?a.state==="Complete"?100:!a.progress_total||a.progress_total===0?0:Math.round(a.progress_current/a.progress_total*100):0}},watch:{modelValue(a){a&&this.fetchCandidates()}},mounted(){this.modelValue&&this.fetchCandidates()},beforeUnmount(){this.stopPolling()},methods:{close(){this.stopPolling();const a=this.jobStatus?.state==="Complete";this.resetState(),this.$emit("update:modelValue",!1),a&&this.$emit("complete")},attemptClose(){this.isRunning?this.confirmCloseOpen=!0:this.close()},confirmClose(){this.confirmCloseOpen=!1,this.close()},resetState(){this.candidates=[],this.selectedKeys=[],this.targetVersion="as_logged",this.bucketEnv=null,this.path=null,this.jobId=null,this.jobStatus=null,this.errorMessage=null,this.loadingCandidates=!1,this.confirmCloseOpen=!1},async fetchCandidates(){this.resetState(),this.loadingCandidates=!0;try{const a=await G.get("/openc3-api/storage/repair_candidates",{params:{scope:this.context.scope,target:this.context.target,packet:this.context.packet,cmd_or_tlm:this.context.cmdOrTlm,start_time:this.context.gap.startIso,end_time:this.context.gap.endIso}});this.candidates=a.data.files||[],this.bucketEnv=a.data.bucket,this.path=a.data.path,this.selectedKeys=this.candidates.map(e=>e.key)}catch(a){this.errorMessage=a.response?.data?.message||a.message}finally{this.loadingCandidates=!1}},async startReingest(){this.errorMessage=null;const a=this.selectedKeys.map(e=>this.path&&e.startsWith(this.path)?e.slice(this.path.length):e.split("/").pop());try{const e=await G.post("/openc3-api/storage/reingest",{data:{scope:this.context.scope,bucket:this.bucketEnv,path:this.path,files:a,target_version:this.targetVersion}});this.jobId=e.data.job_id,this.jobStatus={state:e.data.state},this.startPolling()}catch(e){this.errorMessage=e.response?.data?.message||e.message}},startPolling(){this.stopPolling(),this.pollHandle=setInterval(this.pollStatus,2e3),this.pollStatus()},stopPolling(){this.pollHandle&&(clearInterval(this.pollHandle),this.pollHandle=null)},async pollStatus(){if(this.jobId)try{const a=await G.get(`/openc3-api/storage/reingest/${this.jobId}`,{params:{scope:this.context.scope}});this.jobStatus=a.data,this.isRunning||this.stopPolling()}catch(a){this.errorMessage=a.response?.data?.message||a.message,this.stopPolling()}}}},F={key:0,class:"text-red monospace mb-4"},q={key:0,class:"d-flex align-center mb-4"},W={key:0,class:"text-medium-emphasis"},Y={class:"mb-2"},Z={class:"mt-4"},J={key:0},X={key:1},ee={key:2},te={class:"text-red"},ae={key:3},se={class:"text-orange"};function le(a,e,n,o,t,d){const b=r("v-card-title"),E=r("v-card-subtitle"),S=r("v-progress-circular"),L=r("v-data-table"),x=r("v-radio"),I=r("v-radio-group"),_=r("v-table"),V=r("v-progress-linear"),C=r("v-card-text"),g=r("v-spacer"),v=r("v-btn"),w=r("v-card-actions"),T=r("v-card"),B=r("v-dialog");return u(),R(B,{"model-value":n.modelValue,"max-width":"900",persistent:""},{default:i(()=>[s(T,null,{default:i(()=>[s(b,{class:"d-flex align-center"},{default:i(()=>[h(" Repair Gap: "+c(n.context.target)+" "+c(n.context.packet),1)]),_:1}),n.context.gap?(u(),R(E,{key:0},{default:i(()=>[h(c(n.context.gap.start)+" — "+c(n.context.gap.end)+" ("+c(n.context.gap.duration)+") ",1)]),_:1})):f("",!0),s(C,{style:{"max-height":"75vh","overflow-y":"auto"}},{default:i(()=>[t.errorMessage?(u(),p("div",F," Error: "+c(t.errorMessage),1)):f("",!0),t.jobId?t.jobStatus?(u(),p(D,{key:2},[s(_,{density:"compact",class:"monospace mb-4"},{default:i(()=>[l("tbody",null,[l("tr",null,[e[8]||(e[8]=l("td",{class:"font-weight-bold"},"Job",-1)),l("td",null,c(t.jobId),1)]),l("tr",null,[e[9]||(e[9]=l("td",{class:"font-weight-bold"},"State",-1)),l("td",null,c(t.jobStatus.state),1)]),l("tr",null,[e[10]||(e[10]=l("td",{class:"font-weight-bold"},"Phase",-1)),l("td",null,c(d.phaseLabel),1)]),t.jobStatus.target_version?(u(),p("tr",J,[e[11]||(e[11]=l("td",{class:"font-weight-bold"},"Target Version",-1)),l("td",null,c(t.jobStatus.target_version),1)])):f("",!0),t.jobStatus.packets_written!==void 0?(u(),p("tr",X,[e[12]||(e[12]=l("td",{class:"font-weight-bold"},"Packets Written",-1)),l("td",null,c(t.jobStatus.packets_written.toLocaleString()),1)])):f("",!0),t.jobStatus.error?(u(),p("tr",ee,[e[13]||(e[13]=l("td",{class:"font-weight-bold text-red"},"Error",-1)),l("td",te,c(t.jobStatus.error),1)])):f("",!0),t.jobStatus.warnings&&t.jobStatus.warnings.length?(u(),p("tr",ae,[e[14]||(e[14]=l("td",{class:"font-weight-bold text-orange"},"Warnings",-1)),l("td",se,[(u(!0),p(D,null,A(t.jobStatus.warnings,(M,K)=>(u(),p("div",{key:K},c(M),1))),128))])])):f("",!0)])]),_:1}),s(V,{"model-value":d.progressPercent,indeterminate:d.progressPercent===0&&d.isRunning,class:"mb-2"},null,8,["model-value","indeterminate"])],64)):f("",!0):(u(),p(D,{key:1},[t.loadingCandidates?(u(),p("div",q,[s(S,{indeterminate:"",size:"24",class:"mr-3"}),e[4]||(e[4]=h(" Searching bucket for raw log files that cover this gap… ",-1))])):(u(),p(D,{key:1},[t.candidates.length===0?(u(),p("div",W," No raw log files cover this gap window. Reingest is not available — the data may have been written from a source that skipped raw logging, or the logs have been deleted. ")):(u(),p(D,{key:1},[l("div",Y,c(t.candidates.length)+" raw log file(s) overlap this window. Select which to reingest: ",1),s(L,{modelValue:t.selectedKeys,"onUpdate:modelValue":e[0]||(e[0]=M=>t.selectedKeys=M),headers:t.candidateHeaders,items:t.candidates,"item-value":"key","show-select":"",class:"monospace","items-per-page":20,density:"compact","data-test":"repair-candidates"},null,8,["modelValue","headers","items"]),l("div",Z,[e[7]||(e[7]=l("div",{class:"text-subtitle-2 font-weight-bold mb-1"}," Target Definition Version ",-1)),s(I,{modelValue:t.targetVersion,"onUpdate:modelValue":e[1]||(e[1]=M=>t.targetVersion=M),"hide-details":"",density:"compact","data-test":"repair-version"},{default:i(()=>[s(x,{value:"as_logged","data-test":"repair-version-as-logged"},{label:i(()=>[...e[5]||(e[5]=[l("div",{style:{"padding-left":"10px"}},[l("div",null,"As logged (default)"),l("div",{class:"text-caption text-medium-emphasis"}," Decode each file with the cmd/tlm definition that was in effect when the data was originally logged. Safest for historical fidelity — preserves packet layouts as they existed at that time. "),l("div",{class:"text-caption text-medium-emphasis mt-1"}," If an item's type has changed since the log was written (e.g. STRING → FLOAT), QuestDB column types are kept as-is; historical values are cast to fit the current column, and any values that can't cast are stored as NULL. ")],-1)])]),_:1}),s(x,{value:"current","data-test":"repair-version-current"},{label:i(()=>[...e[6]||(e[6]=[l("div",{style:{"padding-left":"10px"}},[l("div",null,"Current"),l("div",{class:"text-caption text-medium-emphasis"}," Decode all files with the latest cmd/tlm definition. Choose this when the historical definition had a bug that you've since fixed, and you want the reingested data decoded with the corrected layout. ")],-1)])]),_:1})]),_:1},8,["modelValue"])])],64))],64))],64))]),_:1}),s(w,{class:"px-4 pb-4"},{default:i(()=>[s(g),t.jobId?f("",!0):(u(),R(v,{key:0,color:"warning",variant:"elevated",disabled:t.loadingCandidates||t.candidates.length===0||t.selectedKeys.length===0,"data-test":"repair-reingest",onClick:d.startReingest},{default:i(()=>[h(" Reingest "+c(t.selectedKeys.length),1)]),_:1},8,["disabled","onClick"])),s(v,{variant:"text","data-test":"repair-close",onClick:d.attemptClose},{default:i(()=>[...e[15]||(e[15]=[h(" Close ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1}),s(B,{modelValue:t.confirmCloseOpen,"onUpdate:modelValue":e[3]||(e[3]=M=>t.confirmCloseOpen=M),"max-width":"500",persistent:""},{default:i(()=>[s(T,null,{default:i(()=>[s(b,null,{default:i(()=>[...e[16]||(e[16]=[h("Reingest Still Running",-1)])]),_:1}),s(C,null,{default:i(()=>[...e[17]||(e[17]=[h(" The reingest job is still in progress. Closing this dialog will not stop the job, but you will lose visibility into its status. Are you sure you want to close? ",-1)])]),_:1}),s(w,{class:"px-4 pb-4"},{default:i(()=>[s(g),s(v,{variant:"text","data-test":"repair-close-cancel",onClick:e[2]||(e[2]=M=>t.confirmCloseOpen=!1)},{default:i(()=>[...e[18]||(e[18]=[h(" Keep Watching ",-1)])]),_:1}),s(v,{color:"warning",variant:"elevated","data-test":"repair-close-confirm",onClick:d.confirmClose},{default:i(()=>[...e[19]||(e[19]=[h(" Close Anyway ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["model-value"])}const ie=N(Q,[["render",le],["__scopeId","data-v-2ab87eb9"]]);async function P(a,e,n=3){for(let o=1;o<=n;o++)try{let t="/openc3-api/tsdb/exec";return e&&e!==0&&(t+=`?db_shard=${e}`),await G.post(t,{data:a,headers:{Accept:"application/json","Content-Type":"text/plain"}})}catch(t){const d=t.response?.data?.message||t.message||"";if((d.includes("PQconsumeInput")||d.includes("server closed the connection"))&&o<n){await new Promise(b=>setTimeout(b,1e3*o));continue}throw t}}const oe={components:{RepairGapDialog:ie},data(){return{metricsRows:[],metricsError:null,metricsLoading:!1,metricsGroupBy:[{key:"target",order:"asc"}],metricsHeaders:[{title:"Packet",key:"packet"},{title:"Table Name",key:"tableName"},{title:"Partition Count",key:"partitionCount"},{title:"Row Count",key:"rowCount"},{title:"Disk Size",key:"diskSize"},{title:"Actions",key:"actions",sortable:!1}],gapDialog:!1,gapDialogTitle:"",gapLoading:!1,gapProgress:0,gapError:null,gapSummary:null,gapGroupResults:null,gapHeaders:[{title:"Gap Start",key:"start"},{title:"Gap End",key:"end"},{title:"Duration",key:"duration"},{title:"Actions",key:"actions",sortable:!1,width:80}],repairDialog:!1,repairContext:null,gapSampleInterval:"1m",db_shard:0}},computed:{sections(){return[{title:"Telemetry",items:this.metricsRows.filter(a=>a.type==="TLM")},{title:"Commands",items:this.metricsRows.filter(a=>a.type==="CMD")}]}},mounted(){this.fetchMetrics()},methods:{groupRowCount(a){return a.reduce((e,n)=>e+Number((n.raw||n).rowCount||0),0)},groupDiskSize(a){return a.reduce((e,n)=>e+Number((n.raw||n).diskSize||0),0)},formatBytes(a){if(a===0)return"0 B";const e=["B","KB","MB","GB","TB"],n=1024,o=Math.floor(Math.log(a)/Math.log(n));return`${(a/Math.pow(n,o)).toFixed(o===0?0:1)} ${e[o]}`},fetchMetrics(){this.metricsError=null,this.metricsRows=[],this.metricsLoading=!0,P("SELECT tableName, partitionCount, rowCount, diskSize FROM table_storage;",this.db_shard).then(a=>{const e=a.data.columns;this.metricsRows=a.data.rows.map(n=>{const o={};e.forEach((d,b)=>{o[d]=n[b]});const t=(o.tableName||"").split("__");return o.type=t[1]||"",o.target=t[2]||"",o.packet=t[3]||"",o})}).catch(a=>{a.response&&a.response.data?this.metricsError=a.response.data.message:this.metricsError=a.message}).finally(()=>{this.metricsLoading=!1})},dropTable(a){return P(`DROP TABLE '${a}';`,this.db_shard)},deleteTable(a){let e=a.split("__")[2]||a,n=a.split("__")[3]||a;this.$dialog.confirm(`Are you sure you want to drop table: ${a}? This removes ALL decommutated data for ${e} ${n}!`,{okText:"Delete",cancelText:"Cancel"}).then(()=>{this.dropTable(a).then(()=>{this.metricsRows=this.metricsRows.filter(o=>o.tableName!==a)}).catch(o=>{o.response&&o.response.data?this.metricsError=o.response.data.message:this.metricsError=o.message})})},deleteGroup(a){const e=a.map(o=>(o.raw||o).tableName);let n=e[0].split("__")[2];this.$dialog.confirm(`Are you sure you want to drop ${e.length} tables? This removes ALL decommutated data for ${n}!
1
+ System.register(["./main-6a328857fae6aab0f418.js","vue","vue-router","pinia","single-spa","vuetify"],(function(H,Ve){"use strict";var N,G,r,u,p,s,i,h,R,l,c,f,D,A,U,z;return{setters:[y=>{N=y.k,G=y.S},y=>{r=y.resolveComponent,u=y.openBlock,p=y.createElementBlock,s=y.createVNode,i=y.withCtx,h=y.createTextVNode,R=y.createBlock,l=y.createElementVNode,c=y.toDisplayString,f=y.createCommentVNode,D=y.Fragment,A=y.renderList,U=y.normalizeClass,z=y.mergeProps},null,null,null,null],execute:(function(){const y={downloading:"Downloading files…",enabling_dedup:"Enabling DEDUP…",ingesting:"Ingesting packets…",dedup_cooldown:"Waiting for DEDUP cooldown…",disabling_dedup:"Disabling DEDUP…"},Q={props:{modelValue:{type:Boolean,default:!1},context:{type:Object,required:!0}},emits:["update:modelValue","complete"],data(){return{loadingCandidates:!1,candidates:[],selectedKeys:[],targetVersion:"as_logged",bucketEnv:null,path:null,candidateHeaders:[{title:"File",key:"filename"},{title:"Key",key:"key"}],jobId:null,jobStatus:null,pollHandle:null,errorMessage:null,confirmCloseOpen:!1}},computed:{isRunning(){return this.jobStatus?["Queued","Running"].includes(this.jobStatus.state):!1},phaseLabel(){const a=this.jobStatus?.progress_phase;if(!a)return this.jobStatus?.state||"";if(a==="dedup_cooldown"){const e=this.cooldownRemaining;if(e!=null)return`Waiting for DEDUP cooldown (${e}s)…`}return y[a]||a},cooldownRemaining(){const a=this.jobStatus?.dedup_enabled_at,e=this.jobStatus?.dedup_cooldown_seconds;if(!a||!e)return null;const n=Date.now()/1e3,o=new Date(a).getTime()/1e3,t=Math.round(o+e-n);return Math.max(t,0)},progressPercent(){const a=this.jobStatus;return a?a.state==="Complete"?100:!a.progress_total||a.progress_total===0?0:Math.round(a.progress_current/a.progress_total*100):0}},watch:{modelValue(a){a&&this.fetchCandidates()}},mounted(){this.modelValue&&this.fetchCandidates()},beforeUnmount(){this.stopPolling()},methods:{close(){this.stopPolling();const a=this.jobStatus?.state==="Complete";this.resetState(),this.$emit("update:modelValue",!1),a&&this.$emit("complete")},attemptClose(){this.isRunning?this.confirmCloseOpen=!0:this.close()},confirmClose(){this.confirmCloseOpen=!1,this.close()},resetState(){this.candidates=[],this.selectedKeys=[],this.targetVersion="as_logged",this.bucketEnv=null,this.path=null,this.jobId=null,this.jobStatus=null,this.errorMessage=null,this.loadingCandidates=!1,this.confirmCloseOpen=!1},async fetchCandidates(){this.resetState(),this.loadingCandidates=!0;try{const a=await G.get("/openc3-api/storage/repair_candidates",{params:{scope:this.context.scope,target:this.context.target,packet:this.context.packet,cmd_or_tlm:this.context.cmdOrTlm,start_time:this.context.gap.startIso,end_time:this.context.gap.endIso}});this.candidates=a.data.files||[],this.bucketEnv=a.data.bucket,this.path=a.data.path,this.selectedKeys=this.candidates.map(e=>e.key)}catch(a){this.errorMessage=a.response?.data?.message||a.message}finally{this.loadingCandidates=!1}},async startReingest(){this.errorMessage=null;const a=this.selectedKeys.map(e=>this.path&&e.startsWith(this.path)?e.slice(this.path.length):e.split("/").pop());try{const e=await G.post("/openc3-api/storage/reingest",{data:{scope:this.context.scope,bucket:this.bucketEnv,path:this.path,files:a,target_version:this.targetVersion}});this.jobId=e.data.job_id,this.jobStatus={state:e.data.state},this.startPolling()}catch(e){this.errorMessage=e.response?.data?.message||e.message}},startPolling(){this.stopPolling(),this.pollHandle=setInterval(this.pollStatus,2e3),this.pollStatus()},stopPolling(){this.pollHandle&&(clearInterval(this.pollHandle),this.pollHandle=null)},async pollStatus(){if(this.jobId)try{const a=await G.get(`/openc3-api/storage/reingest/${this.jobId}`,{params:{scope:this.context.scope}});this.jobStatus=a.data,this.isRunning||this.stopPolling()}catch(a){this.errorMessage=a.response?.data?.message||a.message,this.stopPolling()}}}},F={key:0,class:"text-red monospace mb-4"},q={key:0,class:"d-flex align-center mb-4"},W={key:0,class:"text-medium-emphasis"},Y={class:"mb-2"},Z={class:"mt-4"},J={key:0},X={key:1},ee={key:2},te={class:"text-red"},ae={key:3},se={class:"text-orange"};function le(a,e,n,o,t,d){const b=r("v-card-title"),E=r("v-card-subtitle"),S=r("v-progress-circular"),L=r("v-data-table"),x=r("v-radio"),I=r("v-radio-group"),_=r("v-table"),V=r("v-progress-linear"),C=r("v-card-text"),g=r("v-spacer"),v=r("v-btn"),w=r("v-card-actions"),T=r("v-card"),B=r("v-dialog");return u(),R(B,{"model-value":n.modelValue,"max-width":"900",persistent:""},{default:i(()=>[s(T,null,{default:i(()=>[s(b,{class:"d-flex align-center"},{default:i(()=>[h(" Repair Gap: "+c(n.context.target)+" "+c(n.context.packet),1)]),_:1}),n.context.gap?(u(),R(E,{key:0},{default:i(()=>[h(c(n.context.gap.start)+" — "+c(n.context.gap.end)+" ("+c(n.context.gap.duration)+") ",1)]),_:1})):f("",!0),s(C,{style:{"max-height":"75vh","overflow-y":"auto"}},{default:i(()=>[t.errorMessage?(u(),p("div",F," Error: "+c(t.errorMessage),1)):f("",!0),t.jobId?t.jobStatus?(u(),p(D,{key:2},[s(_,{density:"compact",class:"monospace mb-4"},{default:i(()=>[l("tbody",null,[l("tr",null,[e[8]||(e[8]=l("td",{class:"font-weight-bold"},"Job",-1)),l("td",null,c(t.jobId),1)]),l("tr",null,[e[9]||(e[9]=l("td",{class:"font-weight-bold"},"State",-1)),l("td",null,c(t.jobStatus.state),1)]),l("tr",null,[e[10]||(e[10]=l("td",{class:"font-weight-bold"},"Phase",-1)),l("td",null,c(d.phaseLabel),1)]),t.jobStatus.target_version?(u(),p("tr",J,[e[11]||(e[11]=l("td",{class:"font-weight-bold"},"Target Version",-1)),l("td",null,c(t.jobStatus.target_version),1)])):f("",!0),t.jobStatus.packets_written!==void 0?(u(),p("tr",X,[e[12]||(e[12]=l("td",{class:"font-weight-bold"},"Packets Written",-1)),l("td",null,c(t.jobStatus.packets_written.toLocaleString()),1)])):f("",!0),t.jobStatus.error?(u(),p("tr",ee,[e[13]||(e[13]=l("td",{class:"font-weight-bold text-red"},"Error",-1)),l("td",te,c(t.jobStatus.error),1)])):f("",!0),t.jobStatus.warnings&&t.jobStatus.warnings.length?(u(),p("tr",ae,[e[14]||(e[14]=l("td",{class:"font-weight-bold text-orange"},"Warnings",-1)),l("td",se,[(u(!0),p(D,null,A(t.jobStatus.warnings,(M,K)=>(u(),p("div",{key:K},c(M),1))),128))])])):f("",!0)])]),_:1}),s(V,{"model-value":d.progressPercent,indeterminate:d.progressPercent===0&&d.isRunning,class:"mb-2"},null,8,["model-value","indeterminate"])],64)):f("",!0):(u(),p(D,{key:1},[t.loadingCandidates?(u(),p("div",q,[s(S,{indeterminate:"",size:"24",class:"mr-3"}),e[4]||(e[4]=h(" Searching bucket for raw log files that cover this gap… ",-1))])):(u(),p(D,{key:1},[t.candidates.length===0?(u(),p("div",W," No raw log files cover this gap window. Reingest is not available — the data may have been written from a source that skipped raw logging, or the logs have been deleted. ")):(u(),p(D,{key:1},[l("div",Y,c(t.candidates.length)+" raw log file(s) overlap this window. Select which to reingest: ",1),s(L,{modelValue:t.selectedKeys,"onUpdate:modelValue":e[0]||(e[0]=M=>t.selectedKeys=M),headers:t.candidateHeaders,items:t.candidates,"item-value":"key","show-select":"",class:"monospace","items-per-page":20,density:"compact","data-test":"repair-candidates"},null,8,["modelValue","headers","items"]),l("div",Z,[e[7]||(e[7]=l("div",{class:"text-subtitle-2 font-weight-bold mb-1"}," Target Definition Version ",-1)),s(I,{modelValue:t.targetVersion,"onUpdate:modelValue":e[1]||(e[1]=M=>t.targetVersion=M),"hide-details":"",density:"compact","data-test":"repair-version"},{default:i(()=>[s(x,{value:"as_logged","data-test":"repair-version-as-logged"},{label:i(()=>[...e[5]||(e[5]=[l("div",{style:{"padding-left":"10px"}},[l("div",null,"As logged (default)"),l("div",{class:"text-caption text-medium-emphasis"}," Decode each file with the cmd/tlm definition that was in effect when the data was originally logged. Safest for historical fidelity — preserves packet layouts as they existed at that time. "),l("div",{class:"text-caption text-medium-emphasis mt-1"}," If an item's type has changed since the log was written (e.g. STRING → FLOAT), QuestDB column types are kept as-is; historical values are cast to fit the current column, and any values that can't cast are stored as NULL. ")],-1)])]),_:1}),s(x,{value:"current","data-test":"repair-version-current"},{label:i(()=>[...e[6]||(e[6]=[l("div",{style:{"padding-left":"10px"}},[l("div",null,"Current"),l("div",{class:"text-caption text-medium-emphasis"}," Decode all files with the latest cmd/tlm definition. Choose this when the historical definition had a bug that you've since fixed, and you want the reingested data decoded with the corrected layout. ")],-1)])]),_:1})]),_:1},8,["modelValue"])])],64))],64))],64))]),_:1}),s(w,{class:"px-4 pb-4"},{default:i(()=>[s(g),t.jobId?f("",!0):(u(),R(v,{key:0,color:"warning",variant:"elevated",disabled:t.loadingCandidates||t.candidates.length===0||t.selectedKeys.length===0,"data-test":"repair-reingest",onClick:d.startReingest},{default:i(()=>[h(" Reingest "+c(t.selectedKeys.length),1)]),_:1},8,["disabled","onClick"])),s(v,{variant:"text","data-test":"repair-close",onClick:d.attemptClose},{default:i(()=>[...e[15]||(e[15]=[h(" Close ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1}),s(B,{modelValue:t.confirmCloseOpen,"onUpdate:modelValue":e[3]||(e[3]=M=>t.confirmCloseOpen=M),"max-width":"500",persistent:""},{default:i(()=>[s(T,null,{default:i(()=>[s(b,null,{default:i(()=>[...e[16]||(e[16]=[h("Reingest Still Running",-1)])]),_:1}),s(C,null,{default:i(()=>[...e[17]||(e[17]=[h(" The reingest job is still in progress. Closing this dialog will not stop the job, but you will lose visibility into its status. Are you sure you want to close? ",-1)])]),_:1}),s(w,{class:"px-4 pb-4"},{default:i(()=>[s(g),s(v,{variant:"text","data-test":"repair-close-cancel",onClick:e[2]||(e[2]=M=>t.confirmCloseOpen=!1)},{default:i(()=>[...e[18]||(e[18]=[h(" Keep Watching ",-1)])]),_:1}),s(v,{color:"warning",variant:"elevated","data-test":"repair-close-confirm",onClick:d.confirmClose},{default:i(()=>[...e[19]||(e[19]=[h(" Close Anyway ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["model-value"])}const ie=N(Q,[["render",le],["__scopeId","data-v-2ab87eb9"]]);async function P(a,e,n=3){for(let o=1;o<=n;o++)try{let t="/openc3-api/tsdb/exec";return e&&e!==0&&(t+=`?db_shard=${e}`),await G.post(t,{data:a,headers:{Accept:"application/json","Content-Type":"text/plain"}})}catch(t){const d=t.response?.data?.message||t.message||"";if((d.includes("PQconsumeInput")||d.includes("server closed the connection"))&&o<n){await new Promise(b=>setTimeout(b,1e3*o));continue}throw t}}const oe={components:{RepairGapDialog:ie},data(){return{metricsRows:[],metricsError:null,metricsLoading:!1,metricsGroupBy:[{key:"target",order:"asc"}],metricsHeaders:[{title:"Packet",key:"packet"},{title:"Table Name",key:"tableName"},{title:"Partition Count",key:"partitionCount"},{title:"Row Count",key:"rowCount"},{title:"Disk Size",key:"diskSize"},{title:"Actions",key:"actions",sortable:!1}],gapDialog:!1,gapDialogTitle:"",gapLoading:!1,gapProgress:0,gapError:null,gapSummary:null,gapGroupResults:null,gapHeaders:[{title:"Gap Start",key:"start"},{title:"Gap End",key:"end"},{title:"Duration",key:"duration"},{title:"Actions",key:"actions",sortable:!1,width:80}],repairDialog:!1,repairContext:null,gapSampleInterval:"1m",db_shard:0}},computed:{sections(){return[{title:"Telemetry",items:this.metricsRows.filter(a=>a.type==="TLM")},{title:"Commands",items:this.metricsRows.filter(a=>a.type==="CMD")}]}},mounted(){this.fetchMetrics()},methods:{groupRowCount(a){return a.reduce((e,n)=>e+Number((n.raw||n).rowCount||0),0)},groupDiskSize(a){return a.reduce((e,n)=>e+Number((n.raw||n).diskSize||0),0)},formatBytes(a){if(a===0)return"0 B";const e=["B","KB","MB","GB","TB"],n=1024,o=Math.floor(Math.log(a)/Math.log(n));return`${(a/Math.pow(n,o)).toFixed(o===0?0:1)} ${e[o]}`},fetchMetrics(){this.metricsError=null,this.metricsRows=[],this.metricsLoading=!0,P("SELECT tableName, partitionCount, rowCount, diskSize FROM table_storage;",this.db_shard).then(a=>{const e=a.data.columns;this.metricsRows=a.data.rows.map(n=>{const o={};e.forEach((d,b)=>{o[d]=n[b]});const t=(o.tableName||"").split("__");return o.type=t[1]||"",o.target=t[2]||"",o.packet=t[3]||"",o})}).catch(a=>{a.response&&a.response.data?this.metricsError=a.response.data.message:this.metricsError=a.message}).finally(()=>{this.metricsLoading=!1})},dropTable(a){return P(`DROP TABLE '${a}';`,this.db_shard)},deleteTable(a){let e=a.split("__")[2]||a,n=a.split("__")[3]||a;this.$dialog.confirm(`Are you sure you want to drop table: ${a}? This removes ALL decommutated data for ${e} ${n}!`,{okText:"Delete",cancelText:"Cancel"}).then(()=>{this.dropTable(a).then(()=>{this.metricsRows=this.metricsRows.filter(o=>o.tableName!==a)}).catch(o=>{o.response&&o.response.data?this.metricsError=o.response.data.message:this.metricsError=o.message})})},deleteGroup(a){const e=a.map(o=>(o.raw||o).tableName);let n=e[0].split("__")[2];this.$dialog.confirm(`Are you sure you want to drop ${e.length} tables? This removes ALL decommutated data for ${n}!
2
2
 
3
3
  ${e.join(`
4
4
  `)}`,{okText:"Delete",cancelText:"Cancel"}).then(()=>{const o=new Set(e);Promise.all(e.map(t=>this.dropTable(t))).then(()=>{this.metricsRows=this.metricsRows.filter(t=>!o.has(t.tableName))}).catch(t=>{t.response&&t.response.data?this.metricsError=t.response.data.message:this.metricsError=t.message})})},formatDuration(a){const e=Math.floor(a/1e3),n=Math.floor(e/86400),o=Math.floor(e%86400/3600),t=Math.floor(e%3600/60),d=[];return n&&d.push(`${n}d`),o&&d.push(`${o}h`),t&&d.push(`${t}m`),d.length||d.push(`${e}s`),d.join(" ")},formatTimestamp(a){return new Date(a).toISOString().replace("T"," ").replace(".000Z","Z")},parseSampleIntervalMs(a){const e=String(a||"").trim().match(/^(\d+)\s*([smhd])$/i);return e?Number.parseInt(e[1],10)*{s:1e3,m:6e4,h:36e5,d:864e5}[e[2].toLowerCase()]:null},async fetchTableGaps(a){const e=(this.gapSampleInterval||"1m").trim(),n=this.parseSampleIntervalMs(e);if(!n)throw new Error(`Invalid sample interval '${e}'. Use a number followed by s, m, h, or d (e.g. 5s, 1m, 2h).`);const o=await P(`SELECT first(PACKET_TIMESECONDS) as first_ts, last(PACKET_TIMESECONDS) as last_ts FROM '${a}';`,this.db_shard),t=o.data.columns,d=o.data.rows[0],b={};t.forEach((g,v)=>{b[g]=d[v]});const E=b.first_ts,S=b.last_ts,L=new Date(S)-new Date(E),x=await P(`(SELECT PACKET_TIMESECONDS, count() as cnt FROM '${a}' SAMPLE BY ${e} FILL(NULL)) WHERE cnt IS NULL`,this.db_shard),I=x.data.columns,_=x.data.rows.map(g=>{const v={};return I.forEach((w,T)=>{v[w]=g[T]}),v}),V=[],C=(g,v)=>{const w=new Date(g).getTime(),T=new Date(v).getTime()+n;return{start:this.formatTimestamp(g),end:this.formatTimestamp(new Date(T)),duration:this.formatDuration(T-w),startIso:new Date(w).toISOString(),endIso:new Date(T).toISOString()}};if(_.length>0){let g=_[0].PACKET_TIMESECONDS,v=g;for(let w=1;w<_.length;w++){const T=new Date(v);new Date(_[w].PACKET_TIMESECONDS)-T>n&&(V.push(C(g,v)),g=_[w].PACKET_TIMESECONDS),v=_[w].PACKET_TIMESECONDS}V.push(C(g,v))}return{firstTs:this.formatTimestamp(E),lastTs:this.formatTimestamp(S),timeSpan:this.formatDuration(L),gaps:V}},async analyzeDataGap(a){this.gapDialogTitle=a,this.gapDialog=!0,this.gapLoading=!0,this.gapProgress=0,this.gapError=null,this.gapSummary=null,this.gapGroupResults=null;try{this.gapSummary=await this.fetchTableGaps(a)}catch(e){this.gapError=e.response?.data?.message||e.message}finally{this.gapLoading=!1}},async analyzeGroupDataGap(a){const e=a.map(o=>(o.raw||o).tableName),n=(a[0].raw||a[0]).target;this.gapDialogTitle=`${n} (${e.length} tables)`,this.gapDialog=!0,this.gapLoading=!0,this.gapProgress=0,this.gapError=null,this.gapSummary=null,this.gapGroupResults=null;try{const o=[];for(let t=0;t<e.length;t++){this.gapProgress=Math.round((t+1)/e.length*100);try{const d=await this.fetchTableGaps(e[t]);if(d.gaps.length>0){const b=e[t].split("__");o.push({tableName:e[t],packet:b[3]||e[t],...d})}}catch{}}this.gapGroupResults={totalTables:e.length,withGaps:o}}catch(o){this.gapError=o.response?.data?.message||o.message}finally{this.gapLoading=!1}},parseTableName(a){const e=a.split("__");return e.length<4?null:{scope:e[0],cmdOrTlm:e[1],target:e[2],packet:e[3]}},isTlmTable(a){return this.parseTableName(a)?.cmdOrTlm==="TLM"},openRepair(a,e){const n=this.parseTableName(e);n&&(this.repairContext={tableName:e,...n,gap:a},this.repairDialog=!0)},onRepairComplete(){this.gapGroupResults||this.gapDialogTitle&&this.analyzeDataGap(this.gapDialogTitle)}}},re={key:0,class:"mt-2 text-red monospace"},ne={key:0},de=["colspan"],ce={class:"font-weight-bold"},ue={class:"ml-4 text-medium-emphasis"},pe={key:1,class:"text-red monospace mb-4"},me={key:0},he={key:1,class:"text-medium-emphasis"},ge={key:0,class:"text-medium-emphasis"},fe={key:1},be={class:"mb-4 text-medium-emphasis"},ye={class:"text-subtitle-1 font-weight-bold mb-1"},ve={class:"text-medium-emphasis monospace mb-2"};function we(a,e,n,o,t,d){const b=r("v-card-title"),E=r("v-card-text"),S=r("v-btn"),L=r("v-number-input"),x=r("v-spacer"),I=r("v-text-field"),_=r("v-card-actions"),V=r("v-icon"),C=r("v-list-item"),g=r("v-list"),v=r("v-menu"),w=r("v-data-table"),T=r("v-card"),B=r("v-progress-linear"),M=r("v-table"),K=r("v-dialog"),Ee=r("repair-gap-dialog");return u(),p("div",null,[s(T,null,{default:i(()=>[s(b,null,{default:i(()=>[...e[5]||(e[5]=[h(" QuestDB Table Storage Metrics ",-1)])]),_:1}),s(E,null,{default:i(()=>[t.metricsError?(u(),p("div",re," Error: "+c(t.metricsError),1)):f("",!0)]),_:1}),s(_,{class:"px-2"},{default:i(()=>[s(S,{loading:t.metricsLoading,color:"success",variant:"text","data-test":"tsdb-metrics-refresh",onClick:d.fetchMetrics},{default:i(()=>[...e[6]||(e[6]=[h(" Refresh ",-1)])]),_:1},8,["loading","onClick"]),s(L,{modelValue:t.db_shard,"onUpdate:modelValue":e[0]||(e[0]=m=>t.db_shard=m),"control-variant":"stacked",min:0,label:"DB Shard",hint:"DB Shard is N/A in Core","hide-details":"",density:"compact",style:{"max-width":"100px"},class:"ml-4"},null,8,["modelValue"]),s(x),s(I,{modelValue:t.gapSampleInterval,"onUpdate:modelValue":e[1]||(e[1]=m=>t.gapSampleInterval=m),label:"Data Gap Sample Interval",hint:"QuestDB SAMPLE BY duration (e.g. 5s, 1m, 10m, 1h)","persistent-hint":"",density:"compact","hide-details":"auto",style:{"max-width":"260px"},"data-test":"gap-sample-interval"},null,8,["modelValue"])]),_:1}),t.metricsRows.length?(u(),p("div",ne,[(u(!0),p(D,null,A(d.sections,(m,O)=>(u(),p(D,{key:m.title},[l("h3",{class:U(["text-h6 ml-2",O===0?"mt-4":"mt-6"])},c(m.title),3),s(w,{headers:t.metricsHeaders,items:m.items,"group-by":t.metricsGroupBy,class:"monospace","items-per-page":50,density:"compact"},{"group-header":i(({item:k,columns:j,toggleGroup:Re,isGroupOpen:Le})=>[l("tr",null,[l("td",{colspan:j.length-1},[s(S,{icon:Le(k)?"$expand":"$next",size:"small",variant:"text",onClick:$=>Re(k)},null,8,["icon","onClick"]),l("span",ce,c(k.value),1),l("span",ue," Packets: "+c(k.items.length)+" — Rows: "+c(d.groupRowCount(k.items).toLocaleString())+" — Disk: "+c(d.formatBytes(d.groupDiskSize(k.items))),1)],8,de),l("td",null,[s(v,null,{activator:i(({props:$})=>[s(V,z({ref_for:!0},$,{icon:"mdi-dots-horizontal","data-test":"group-actions"}),null,16)]),default:i(()=>[s(g,null,{default:i(()=>[s(C,{title:"Analyze Data Gaps","prepend-icon":"mdi-chart-timeline-variant-shimmer","data-test":"group-analyze-gap",onClick:$=>d.analyzeGroupDataGap(k.items)},null,8,["onClick"]),s(C,{title:"Delete All","prepend-icon":"mdi-delete","data-test":"group-delete",onClick:$=>d.deleteGroup(k.items)},null,8,["onClick"])]),_:2},1024)]),_:2},1024)])])]),"item.diskSize":i(({item:k})=>[h(c(d.formatBytes(k.diskSize)),1)]),"item.rowCount":i(({item:k})=>[h(c(Number(k.rowCount).toLocaleString()),1)]),"item.actions":i(({item:k})=>[s(v,null,{activator:i(({props:j})=>[s(V,z({ref_for:!0},j,{icon:"mdi-dots-horizontal","data-test":"row-actions"}),null,16)]),default:i(()=>[s(g,null,{default:i(()=>[s(C,{title:"Analyze Data Gap","prepend-icon":"mdi-chart-timeline-variant-shimmer","data-test":"row-analyze-gap",onClick:j=>d.analyzeDataGap(k.tableName)},null,8,["onClick"]),s(C,{title:"Delete","prepend-icon":"mdi-delete","data-test":"row-delete",onClick:j=>d.deleteTable(k.tableName)},null,8,["onClick"])]),_:2},1024)]),_:2},1024)]),_:1},8,["headers","items","group-by"])],64))),128))])):f("",!0)]),_:1}),s(K,{modelValue:t.gapDialog,"onUpdate:modelValue":e[3]||(e[3]=m=>t.gapDialog=m),"max-width":"900"},{default:i(()=>[s(T,null,{default:i(()=>[s(b,{class:"d-flex align-center"},{default:i(()=>[h(" Data Gap Analysis: "+c(t.gapDialogTitle)+" ",1),s(x),s(S,{icon:"mdi-close",variant:"text",onClick:e[2]||(e[2]=m=>t.gapDialog=!1)})]),_:1}),s(E,{style:{"max-height":"80vh","overflow-y":"auto"}},{default:i(()=>[t.gapLoading?(u(),R(B,{key:0,"model-value":t.gapProgress,indeterminate:t.gapProgress===0,class:"mb-4"},null,8,["model-value","indeterminate"])):f("",!0),t.gapError?(u(),p("div",pe," Error: "+c(t.gapError),1)):f("",!0),!t.gapLoading&&!t.gapError&&t.gapSummary?(u(),p(D,{key:2},[s(M,{density:"compact",class:"monospace mb-4"},{default:i(()=>[l("tbody",null,[l("tr",null,[e[7]||(e[7]=l("td",{class:"font-weight-bold"},"First Record",-1)),l("td",null,c(t.gapSummary.firstTs),1)]),l("tr",null,[e[8]||(e[8]=l("td",{class:"font-weight-bold"},"Last Record",-1)),l("td",null,c(t.gapSummary.lastTs),1)]),l("tr",null,[e[9]||(e[9]=l("td",{class:"font-weight-bold"},"Total Time Span",-1)),l("td",null,c(t.gapSummary.timeSpan),1)]),l("tr",null,[e[10]||(e[10]=l("td",{class:"font-weight-bold"},"Gaps Found",-1)),l("td",null,c(t.gapSummary.gaps.length),1)])])]),_:1}),t.gapSummary.gaps.length?(u(),p("div",me,[e[11]||(e[11]=l("h4",{class:"text-subtitle-1 font-weight-bold mb-2"}," Data Gaps (periods with no data) ",-1)),s(w,{headers:t.gapHeaders,items:t.gapSummary.gaps,class:"monospace","items-per-page":20,density:"compact"},{"item.actions":i(({item:m})=>[d.isTlmTable(t.gapDialogTitle)?(u(),R(S,{key:0,icon:"mdi-wrench",size:"small",variant:"text","data-test":"gap-repair",title:"Repair (reingest raw logs)",onClick:O=>d.openRepair(m,t.gapDialogTitle)},null,8,["onClick"])):f("",!0)]),_:1},8,["headers","items"])])):(u(),p("div",he," No data gaps detected (sampled at "+c(t.gapSampleInterval)+" intervals). ",1))],64)):f("",!0),!t.gapLoading&&!t.gapError&&t.gapGroupResults?(u(),p(D,{key:3},[t.gapGroupResults.withGaps.length===0?(u(),p("div",ge," No data gaps detected across "+c(t.gapGroupResults.totalTables)+" tables (sampled at "+c(t.gapSampleInterval)+" intervals). ",1)):(u(),p("div",fe,[l("div",be,c(t.gapGroupResults.withGaps.length)+" of "+c(t.gapGroupResults.totalTables)+" tables have data gaps. ",1),(u(!0),p(D,null,A(t.gapGroupResults.withGaps,m=>(u(),p("div",{key:m.tableName,class:"mb-6"},[l("h4",ye,c(m.packet),1),l("div",ve,c(m.firstTs)+" to "+c(m.lastTs)+" ("+c(m.timeSpan)+") — "+c(m.gaps.length)+" gap(s) ",1),s(w,{headers:t.gapHeaders,items:m.gaps,class:"monospace","items-per-page":10,density:"compact"},{"item.actions":i(({item:O})=>[d.isTlmTable(m.tableName)?(u(),R(S,{key:0,icon:"mdi-wrench",size:"small",variant:"text","data-test":"gap-repair",title:"Repair (reingest raw logs)",onClick:k=>d.openRepair(O,m.tableName)},null,8,["onClick"])):f("",!0)]),_:2},1032,["headers","items"])]))),128))]))],64)):f("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue"]),t.repairContext?(u(),R(Ee,{key:0,modelValue:t.repairDialog,"onUpdate:modelValue":e[4]||(e[4]=m=>t.repairDialog=m),context:t.repairContext,onComplete:d.onRepairComplete},null,8,["modelValue","context","onComplete"])):f("",!0)])}const _e=N(oe,[["render",we],["__scopeId","data-v-97b64cc5"]]),ke={data(){return{sqlText:"",db_shard:0,columns:[],rows:[],errorMessage:null,loading:!1}},computed:{tableHeaders(){return this.columns.map(a=>({title:a,key:a}))}},methods:{commandKeydown(a){(a.metaKey||a.ctrlKey)&&a.key==="Enter"&&this.executeQuery()},executeQuery(){this.errorMessage=null,this.columns=[],this.rows=[],this.loading=!0,P(this.sqlText,this.db_shard).then(a=>{this.columns=a.data.columns,this.rows=a.data.rows.map(e=>{const n={};return this.columns.forEach((o,t)=>{n[o]=e[t]}),n})}).catch(a=>{a.response&&a.response.data?this.errorMessage=a.response.data.message:this.errorMessage=a.message}).finally(()=>{this.loading=!1})}}},Se={key:0,class:"mt-2 text-red monospace"};function Te(a,e,n,o,t,d){const b=r("v-card-title"),E=r("v-card-subtitle"),S=r("v-textarea"),L=r("v-card-text"),x=r("v-btn"),I=r("v-number-input"),_=r("v-card-actions"),V=r("v-data-table"),C=r("v-card");return u(),R(C,null,{default:i(()=>[s(b,null,{default:i(()=>[...e[2]||(e[2]=[h(" Send SQL Queries to QuestDB ",-1)])]),_:1}),s(E,null,{default:i(()=>[...e[3]||(e[3]=[h(" THIS IS DANGEROUS! This allows you to interact directly with the underlying QuestDB time series database, making it easy to modify or delete data. ",-1),l("br",null,null,-1),l("br",null,null,-1),h(" Enter SQL queries like: ",-1),l("code",null," SELECT * FROM DEFAULT__TLM__INST__HEALTH_STATUS LIMIT 10 ",-1),h(" or ",-1),l("code",null,"SHOW TABLES",-1)])]),_:1}),s(L,{class:"pb-0 ml-2"},{default:i(()=>[s(S,{modelValue:t.sqlText,"onUpdate:modelValue":e[0]||(e[0]=g=>t.sqlText=g),"hide-details":"",label:"SQL query",class:"monospace",rows:"3",onKeydown:d.commandKeydown},null,8,["modelValue","onKeydown"]),t.errorMessage?(u(),p("div",Se," Error: "+c(t.errorMessage),1)):f("",!0)]),_:1}),s(_,{class:"px-2"},{default:i(()=>[s(x,{disabled:!t.sqlText.length,loading:t.loading,color:"success",variant:"text","data-test":"tsdb-execute",onClick:d.executeQuery},{default:i(()=>[...e[4]||(e[4]=[h(" Execute ",-1)])]),_:1},8,["disabled","loading","onClick"]),s(I,{modelValue:t.db_shard,"onUpdate:modelValue":e[1]||(e[1]=g=>t.db_shard=g),"control-variant":"stacked",min:0,label:"DB Shard","hide-details":"",density:"compact",style:{"max-width":"100px"},class:"ml-4"},null,8,["modelValue"])]),_:1}),t.columns.length?(u(),R(V,{key:0,headers:d.tableHeaders,items:t.rows,class:"monospace","items-per-page":50,density:"compact"},null,8,["headers","items"])):f("",!0)]),_:1})}const xe=N(ke,[["render",Te],["__scopeId","data-v-cb31f0ce"]]),Ce={components:{TsdbMetrics:_e,TsdbQueries:xe},data(){return{activeTab:"metrics"}}};function De(a,e,n,o,t,d){const b=r("v-tab"),E=r("v-tabs"),S=r("tsdb-metrics"),L=r("v-window-item"),x=r("tsdb-queries"),I=r("v-window");return u(),p("div",null,[s(E,{modelValue:t.activeTab,"onUpdate:modelValue":e[0]||(e[0]=_=>t.activeTab=_)},{default:i(()=>[s(b,{value:"metrics","data-test":"tsdb-metrics-tab"},{default:i(()=>[...e[2]||(e[2]=[h("Metrics",-1)])]),_:1}),s(b,{value:"queries","data-test":"tsdb-queries-tab"},{default:i(()=>[...e[3]||(e[3]=[h("Queries",-1)])]),_:1})]),_:1},8,["modelValue"]),s(I,{modelValue:t.activeTab,"onUpdate:modelValue":e[1]||(e[1]=_=>t.activeTab=_)},{default:i(()=>[s(L,{value:"metrics"},{default:i(()=>[s(S)]),_:1}),s(L,{value:"queries"},{default:i(()=>[s(x)]),_:1})]),_:1},8,["modelValue"])])}const Me=H("default",N(Ce,[["render",De]]))})}}));
@@ -1 +1 @@
1
- System.register(["./main-040488697a5f3eed5115.js","./Widget-CtYQauzA-ae8839a2e4146c799aec.js","./LimitsColor-CBcpB-la-3bd861951380f642016e.js"],(function(f,v){"use strict";var u,o,h,c;return{setters:[i=>{u=i.R},i=>{o=i.h},i=>{h=i.a,c=i.r}],execute:(function(){const i={methods:{formatValueBase(e,t){return this.isJsonString(e)?this.formatJsonString(e):Array.isArray(e)?JSON.stringify(e).replace(/\\n/g,""):this.isObject(e)?JSON.stringify(e).replace(/\\n/g,""):t&&e?typeof e=="bigint"?this.formatBigInt(e,t):sprintf(t,e):e==null?"null":String(e)},formatBigInt(e,t){const a=t.match(/^([^%]*)%([#0 +-]*)(\d+)?\.?(\d+)?([diouxX])(.*)$/);if(a){const[,g,l,m,,r,I]=a;let d=e<0n,n=d?-e:e,s;switch(r){case"d":case"i":case"u":s=n.toString(10);break;case"o":s=n.toString(8);break;case"x":s=n.toString(16);break;case"X":s=n.toString(16).toUpperCase();break}if(l.includes("#")&&(r==="x"?s="0x"+s:r==="X"?s="0X"+s:r==="o"&&!s.startsWith("0")&&(s="0"+s)),d&&(r==="d"||r==="i")&&(s="-"+s),m){const p=Number.parseInt(m);l.includes("-")?s=s.padEnd(p," "):s=s.padStart(p,l.includes("0")?"0":" ")}return g+s+I}return e.toString()},isJsonString(e){return e&&e.json_class==="String"&&e.raw!==void 0},formatJsonString(e){let t=Array.from(e.raw.slice(0,32),a=>("0"+(a&255).toString(16)).slice(-2)).join(" ").toUpperCase();return e.raw.length>32&&(t+="..."),t},formatArray(e){return"["+e.map(t=>typeof t=="string"?`"${t}"`:t).join(", ")+"]"},isObject(e){return Object.prototype.toString.call(e).slice(8,-1)==="Object"}}},S=f("T",{mixins:[o,u,i],props:{value:{default:null},limitsState:{type:String,default:null},counter:{default:null},formatString:null,timeZone:{type:String,default:"local"}},emits:["addItem","deleteItem","open"],data(){return{appliedTimeZone:"local",curValue:null,prevValue:null,grayLevel:80,grayRate:5,valueId:null,arrayIndex:null,viewDetails:!1,contextMenuShown:!1,x:0,y:0,contextMenuOptions:[{title:"Details",action:()=>{this.contextMenuShown=!1,this.viewDetails=!0}},{title:"Graph",action:()=>{window.open(this.tlmGrapherUrl,"_blank")}}]}},watch:{_counter:function(e,t){this.curValue!==this.prevValue?this.grayLevel=80:(this.grayLevel-=this.grayRate,this.grayLevel<30&&(this.grayLevel=30)),this.prevValue=this.curValue}},computed:{_value:function(){return this.curValue=this.value,this.curValue===null&&(this.screenValues?this.screenValues[this.valueId]&&(this.arrayIndex!==null&&this.screenValues[this.valueId][0]?this.curValue=this.screenValues[this.valueId][0][this.arrayIndex]:this.curValue=this.screenValues[this.valueId][0]):this.curValue=null),this.curValue=this.formatValue(this.curValue),this.curValue},_limitsState:function(){let e=this.limitsState;return e===null&&(this.screenValues?this.screenValues[this.valueId]&&(e=this.screenValues[this.valueId][1]):e=null),e},_counter:function(){let e=this.counter;return e===null&&(this.screenValues?this.screenValues[this.valueId]&&(e=this.screenValues[this.valueId][2]):e=null),e},valueClass:function(){return"value shrink pa-1 openc3-"+this.limitsColor},limitsColor(){return c(this._limitsState)},astroStatus(){return h(this.limitsColor)},limitsLetter(){let e=this._limitsState;if(e!=null){let t=e.charAt(0);return e.endsWith("_LOW")&&(t=t.toLowerCase()),t}return""},tlmGrapherUrl(){let e="/tools/tlmgrapher/"+encodeURIComponent(this.parameters[0])+"/"+encodeURIComponent(this.parameters[1])+"/"+encodeURIComponent(this.parameters[2]);return this.arrayIndex!==null&&(e+=encodeURIComponent(`[${this.arrayIndex}]`)),e+"/"}},created(){if(this.value===null||this.limitsState===null){const e=this.parseItemName(this.parameters[2]);this.parameters[2]=e.name,this.arrayIndex=e.arrayIndex,this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${this.getType()}`,this.$emit("addItem",this.valueId),this.screenTimeZone?this.appliedTimeZone=this.screenTimeZone:this.appliedTimeZone=this.timeZone}},destroyed(){(this.value===null||this.limitsState===null)&&this.$emit("deleteItem",this.valueId)},methods:{getType(){let e="FORMATTED";return this.parameters[3]&&(e=this.parameters[3]),e},formatValue(e){try{return e&&this.valueId&&(this.valueId.toUpperCase().includes("PACKET_TIMEFORMATTED")||this.valueId.toUpperCase().includes("RECEIVED_TIMEFORMATTED"))&&(e=this.formatUtcToLocal(new Date(e.replaceAll("/","-")),this.appliedTimeZone)),this.formatValueBase(e,this.formatString)}catch(t){return console.log(`${this.valueId} formatValue on ${e} with ${this.formatString} failed due to ${t}`),e}},showContextMenu(e){e.preventDefault(),this.contextMenuShown=!1,this.x=e.clientX,this.y=e.clientY,this.$nextTick(()=>{this.contextMenuShown=!0})}}})})}}));
1
+ System.register(["./main-6a328857fae6aab0f418.js","./Widget-CSgnvwEG-bc4dec83d0fc9039b821.js","./LimitsColor-CBcpB-la-3bd861951380f642016e.js"],(function(f,v){"use strict";var u,o,h,c;return{setters:[i=>{u=i.R},i=>{o=i.f},i=>{h=i.a,c=i.r}],execute:(function(){const i={methods:{formatValueBase(e,t){return this.isJsonString(e)?this.formatJsonString(e):Array.isArray(e)?JSON.stringify(e).replace(/\\n/g,""):this.isObject(e)?JSON.stringify(e).replace(/\\n/g,""):t&&e?typeof e=="bigint"?this.formatBigInt(e,t):sprintf(t,e):e==null?"null":String(e)},formatBigInt(e,t){const a=t.match(/^([^%]*)%([#0 +-]*)(\d+)?\.?(\d+)?([diouxX])(.*)$/);if(a){const[,g,l,m,,r,I]=a;let d=e<0n,n=d?-e:e,s;switch(r){case"d":case"i":case"u":s=n.toString(10);break;case"o":s=n.toString(8);break;case"x":s=n.toString(16);break;case"X":s=n.toString(16).toUpperCase();break}if(l.includes("#")&&(r==="x"?s="0x"+s:r==="X"?s="0X"+s:r==="o"&&!s.startsWith("0")&&(s="0"+s)),d&&(r==="d"||r==="i")&&(s="-"+s),m){const p=Number.parseInt(m);l.includes("-")?s=s.padEnd(p," "):s=s.padStart(p,l.includes("0")?"0":" ")}return g+s+I}return e.toString()},isJsonString(e){return e&&e.json_class==="String"&&e.raw!==void 0},formatJsonString(e){let t=Array.from(e.raw.slice(0,32),a=>("0"+(a&255).toString(16)).slice(-2)).join(" ").toUpperCase();return e.raw.length>32&&(t+="..."),t},formatArray(e){return"["+e.map(t=>typeof t=="string"?`"${t}"`:t).join(", ")+"]"},isObject(e){return Object.prototype.toString.call(e).slice(8,-1)==="Object"}}},S=f("T",{mixins:[o,u,i],props:{value:{default:null},limitsState:{type:String,default:null},counter:{default:null},formatString:null,timeZone:{type:String,default:"local"}},emits:["addItem","deleteItem","open"],data(){return{appliedTimeZone:"local",curValue:null,prevValue:null,grayLevel:80,grayRate:5,valueId:null,arrayIndex:null,viewDetails:!1,contextMenuShown:!1,x:0,y:0,contextMenuOptions:[{title:"Details",action:()=>{this.contextMenuShown=!1,this.viewDetails=!0}},{title:"Graph",action:()=>{window.open(this.tlmGrapherUrl,"_blank")}}]}},watch:{_counter:function(e,t){this.curValue!==this.prevValue?this.grayLevel=80:(this.grayLevel-=this.grayRate,this.grayLevel<30&&(this.grayLevel=30)),this.prevValue=this.curValue}},computed:{_value:function(){return this.curValue=this.value,this.curValue===null&&(this.screenValues?this.screenValues[this.valueId]&&(this.arrayIndex!==null&&this.screenValues[this.valueId][0]?this.curValue=this.screenValues[this.valueId][0][this.arrayIndex]:this.curValue=this.screenValues[this.valueId][0]):this.curValue=null),this.curValue=this.formatValue(this.curValue),this.curValue},_limitsState:function(){let e=this.limitsState;return e===null&&(this.screenValues?this.screenValues[this.valueId]&&(e=this.screenValues[this.valueId][1]):e=null),e},_counter:function(){let e=this.counter;return e===null&&(this.screenValues?this.screenValues[this.valueId]&&(e=this.screenValues[this.valueId][2]):e=null),e},valueClass:function(){return"value shrink pa-1 openc3-"+this.limitsColor},limitsColor(){return c(this._limitsState)},astroStatus(){return h(this.limitsColor)},limitsLetter(){let e=this._limitsState;if(e!=null){let t=e.charAt(0);return e.endsWith("_LOW")&&(t=t.toLowerCase()),t}return""},tlmGrapherUrl(){let e="/tools/tlmgrapher/"+encodeURIComponent(this.parameters[0])+"/"+encodeURIComponent(this.parameters[1])+"/"+encodeURIComponent(this.parameters[2]);return this.arrayIndex!==null&&(e+=encodeURIComponent(`[${this.arrayIndex}]`)),e+"/"}},created(){if(this.value===null||this.limitsState===null){const e=this.parseItemName(this.parameters[2]);this.parameters[2]=e.name,this.arrayIndex=e.arrayIndex,this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${this.getType()}`,this.$emit("addItem",this.valueId),this.screenTimeZone?this.appliedTimeZone=this.screenTimeZone:this.appliedTimeZone=this.timeZone}},destroyed(){(this.value===null||this.limitsState===null)&&this.$emit("deleteItem",this.valueId)},methods:{getType(){let e="FORMATTED";return this.parameters[3]&&(e=this.parameters[3]),e},formatValue(e){try{return e&&this.valueId&&(this.valueId.toUpperCase().includes("PACKET_TIMEFORMATTED")||this.valueId.toUpperCase().includes("RECEIVED_TIMEFORMATTED"))&&(e=this.formatUtcToLocal(new Date(e.replaceAll("/","-")),this.appliedTimeZone)),this.formatValueBase(e,this.formatString)}catch(t){return console.error(`${this.valueId} formatValue on ${e} with ${this.formatString} failed due to ${t}`),e}},showContextMenu(e){e.preventDefault(),this.contextMenuShown=!1,this.x=e.clientX,this.y=e.clientY,this.$nextTick(()=>{this.contextMenuShown=!0})}}})})}}));
@@ -1 +1 @@
1
- System.register(["./main-040488697a5f3eed5115.js","vue","./DetailsDialog-DE7lK17G-434a9ce6dcc8e6636a47.js","single-spa","./VWidget-5qOYva88-4db083a6475508bbf7ce.js","vue-router","pinia","vuetify","./LimitsBar-DN1s8-MS-5fcc0dd234e18f768e31.js","./LimitsColor-CBcpB-la-3bd861951380f642016e.js","./Widget-CtYQauzA-ae8839a2e4146c799aec.js"],(function(D,P){"use strict";var m,a,i,u,p,o,v,c,n,l,g,d,f,h,y,C,x,k,S;return{setters:[t=>{m=t.k},t=>{a=t.resolveComponent,i=t.openBlock,u=t.createElementBlock,p=t.normalizeStyle,o=t.createBlock,v=t.normalizeClass,c=t.createSlots,n=t.withCtx,l=t.createVNode,g=t.createElementVNode,d=t.toDisplayString,f=t.mergeProps,h=t.Fragment,y=t.renderList,C=t.withModifiers,x=t.createTextVNode},t=>{k=t.Z},null,t=>{S=t.T},null,null,null,null,null,null],execute:(function(){const E={components:{DetailsDialog:k},mixins:[S],data:function(){return{width:16}},computed:{fullName(){return this.parameters[0]+" "+this.parameters[1]+" "+this.parameters[2]},aging(){return{"--aging":this.grayLevel}}},created(){this.verifyNumParams("VALUE",3,5,"VALUE <TARGET> <PACKET> <ITEM> <TYPE> <WIDTH>"),this.setWidth(Number.parseInt(this.parameters[4])+4,"ch",this.width)}};function N(e,r,W,I,Y,V){const w=a("rux-status"),_=a("v-text-field"),T=a("v-tooltip"),B=a("v-list-item-title"),M=a("v-list-item"),L=a("v-list"),z=a("v-menu"),j=a("details-dialog");return i(),u("div",{class:"value-widget-container",style:p([e.computedStyle,V.aging])},[e.tooltipText?(i(),o(_,{key:1,variant:"solo",density:"compact",flat:"",readonly:"","hide-details":"","model-value":e._value,class:v(e.valueClass),"data-test":"value",onContextmenu:e.showContextMenu},c({_:2},[e.astroStatus?{name:"prepend-inner",fn:n(()=>[l(w,{status:e.astroStatus},null,8,["status"])]),key:"0"}:void 0]),1032,["model-value","class","onContextmenu"])):(i(),o(T,{key:0,"open-delay":600,location:"top"},{activator:n(({props:s})=>[l(_,f({variant:"solo",density:"compact",flat:"",readonly:"","hide-details":"","model-value":e._value,class:e.valueClass,"data-test":"value"},s,{onContextmenu:e.showContextMenu}),c({_:2},[e.astroStatus?{name:"prepend-inner",fn:n(()=>[l(w,{status:e.astroStatus},null,8,["status"])]),key:"0"}:void 0]),1040,["model-value","class","onContextmenu"])]),default:n(()=>[g("span",null,d(V.fullName),1)]),_:1})),l(z,{modelValue:e.contextMenuShown,"onUpdate:modelValue":r[0]||(r[0]=s=>e.contextMenuShown=s),target:[e.x,e.y],style:{"z-index":"3000"}},{default:n(()=>[l(L,null,{default:n(()=>[(i(!0),u(h,null,y(e.contextMenuOptions,(s,A)=>(i(),o(M,{key:A,onClick:C(s.action,["stop"])},{default:n(()=>[l(B,null,{default:n(()=>[x(d(s.title),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["modelValue","target"]),l(j,{modelValue:e.viewDetails,"onUpdate:modelValue":r[1]||(r[1]=s=>e.viewDetails=s),"target-name":e.parameters[0],"packet-name":e.parameters[1],"item-name":e.parameters[2]},null,8,["modelValue","target-name","packet-name","item-name"])],4)}const U=D("default",m(E,[["render",N],["__scopeId","data-v-8340df7d"]]))})}}));
1
+ System.register(["./main-6a328857fae6aab0f418.js","vue","./DetailsDialog-DHi4t3xd-23cd6112e439aa7c2e72.js","single-spa","./VWidget-5FjwlURU-6a72b64b7cc840033418.js","vue-router","pinia","vuetify","./LimitsBar-BqpvMpXM-299f056c19106e6b75fb.js","./LimitsColor-CBcpB-la-3bd861951380f642016e.js","./Widget-CSgnvwEG-bc4dec83d0fc9039b821.js"],(function(B,P){"use strict";var m,a,i,u,p,o,v,c,n,l,g,d,f,h,y,x,C,k,w;return{setters:[t=>{m=t.k},t=>{a=t.resolveComponent,i=t.openBlock,u=t.createElementBlock,p=t.normalizeStyle,o=t.createBlock,v=t.normalizeClass,c=t.createSlots,n=t.withCtx,l=t.createVNode,g=t.createElementVNode,d=t.toDisplayString,f=t.mergeProps,h=t.Fragment,y=t.renderList,x=t.withModifiers,C=t.createTextVNode},t=>{k=t.Z},null,t=>{w=t.T},null,null,null,null,null,null],execute:(function(){const E={components:{DetailsDialog:k},mixins:[w],data:function(){return{width:16}},computed:{fullName(){return this.parameters[0]+" "+this.parameters[1]+" "+this.parameters[2]},aging(){return{"--aging":this.grayLevel}}},created(){this.verifyNumParams("VALUE",3,5,"VALUE <TARGET> <PACKET> <ITEM> <TYPE> <WIDTH>"),this.setWidth(Number.parseInt(this.parameters[4])+4,"ch",this.width)}};function T(e,r,A,I,F,S){const V=a("rux-status"),_=a("v-text-field"),D=a("v-tooltip"),M=a("v-list-item-title"),N=a("v-list-item"),L=a("v-list"),j=a("v-menu"),U=a("details-dialog");return i(),u("div",{class:"value-widget-container",style:p([e.computedStyle,S.aging])},[e.tooltipText?(i(),o(_,{key:1,variant:"solo",density:"compact",flat:"",readonly:"","hide-details":"","model-value":e._value,class:v(e.valueClass),"data-test":"value",onContextmenu:e.showContextMenu},c({_:2},[e.astroStatus?{name:"prepend-inner",fn:n(()=>[l(V,{status:e.astroStatus},null,8,["status"])]),key:"0"}:void 0]),1032,["model-value","class","onContextmenu"])):(i(),o(D,{key:0,"open-delay":600,location:"top"},{activator:n(({props:s})=>[l(_,f({variant:"solo",density:"compact",flat:"",readonly:"","hide-details":"","model-value":e._value,class:e.valueClass,"data-test":"value"},s,{onContextmenu:e.showContextMenu}),c({_:2},[e.astroStatus?{name:"prepend-inner",fn:n(()=>[l(V,{status:e.astroStatus},null,8,["status"])]),key:"0"}:void 0]),1040,["model-value","class","onContextmenu"])]),default:n(()=>[g("span",null,d(S.fullName),1)]),_:1})),l(j,{modelValue:e.contextMenuShown,"onUpdate:modelValue":r[0]||(r[0]=s=>e.contextMenuShown=s),target:[e.x,e.y],style:{"z-index":"3000"}},{default:n(()=>[l(L,null,{default:n(()=>[(i(!0),u(h,null,y(e.contextMenuOptions,(s,z)=>(i(),o(N,{key:z,onClick:x(s.action,["stop"])},{default:n(()=>[l(M,null,{default:n(()=>[C(d(s.title),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["modelValue","target"]),l(U,{modelValue:e.viewDetails,"onUpdate:modelValue":r[1]||(r[1]=s=>e.viewDetails=s),"target-name":e.parameters[0],"packet-name":e.parameters[1],"item-name":e.parameters[2]},null,8,["modelValue","target-name","packet-name","item-name"])],4)}const W=B("default",m(E,[["render",T],["__scopeId","data-v-8340df7d"]]))})}}));
@@ -0,0 +1 @@
1
+ System.register(["./ValueWidget-CpptSOvJ-71518e3093457d3a3e99.js","./LimitsbarWidget-rEJIGKCx-c5d60ebf1e9e1a4ffb48.js","./Widget-CSgnvwEG-bc4dec83d0fc9039b821.js","vue","./main-6a328857fae6aab0f418.js","./DetailsDialog-DHi4t3xd-23cd6112e439aa7c2e72.js","./LimitsBar-BqpvMpXM-299f056c19106e6b75fb.js","./LimitsColor-CBcpB-la-3bd861951380f642016e.js","single-spa","./VWidget-5FjwlURU-6a72b64b7cc840033418.js","vue-router","pinia","vuetify","./BarColumn-JQ552zb0-71f940da624cf74a8ac7.js"],(function(p,f){"use strict";var r,i,a,n,u,c,o,s,l,m;return{setters:[e=>{r=e.default},e=>{i=e.default},e=>{a=e.f},e=>{n=e.resolveComponent,u=e.openBlock,c=e.createElementBlock,o=e.normalizeStyle,s=e.createVNode,l=e.mergeProps},e=>{m=e.k},null,null,null,null,null,null,null,null,null],execute:(function(){const e={components:{ValueWidget:r,LimitsbarWidget:i},mixins:[a]};function g(t,B,b,w,x,C){const d=n("value-widget"),v=n("limitsbar-widget");return u(),c("div",{ref:"container",class:"d-flex flex-row",style:o(t.computedStyle)},[s(d,l(t.$attrs,{parameters:t.parameters,settings:[...t.appliedSettings],"screen-values":t.screenValues,"screen-time-zone":t.screenTimeZone,"widget-index":0}),null,16,["parameters","settings","screen-values","screen-time-zone"]),s(v,l(t.$attrs,{parameters:t.parameters.slice(0,3),settings:[...t.appliedSettings],"screen-values":t.screenValues,"widget-index":1,line:t.line,"line-number":t.lineNumber}),null,16,["parameters","settings","screen-values","line","line-number"])],4)}const j=p("default",m(e,[["render",g]]))})}}));
@@ -1 +1 @@
1
- System.register(["./ValueWidget-CAkuc_w_-6037c5f1b4e7c0e9c790.js","./LimitscolumnWidget-B1GdmlR_-ea359135deab006453c1.js","./Widget-CtYQauzA-ae8839a2e4146c799aec.js","vue","./main-040488697a5f3eed5115.js","./DetailsDialog-DE7lK17G-434a9ce6dcc8e6636a47.js","./LimitsBar-DN1s8-MS-5fcc0dd234e18f768e31.js","./LimitsColor-CBcpB-la-3bd861951380f642016e.js","single-spa","./VWidget-5qOYva88-4db083a6475508bbf7ce.js","vue-router","pinia","vuetify","./BarColumn-Bb305iCi-1d14dd1f021f8d8d5f6a.js"],(function(d,f){"use strict";var i,r,a,n,u,o,c,s,l,m;return{setters:[e=>{i=e.default},e=>{r=e.default},e=>{a=e.h},e=>{n=e.resolveComponent,u=e.openBlock,o=e.createElementBlock,c=e.normalizeStyle,s=e.createVNode,l=e.mergeProps},e=>{m=e.k},null,null,null,null,null,null,null,null,null],execute:(function(){const e={components:{ValueWidget:i,LimitscolumnWidget:r},mixins:[a]};function g(t,j,C,V,S,k){const p=n("limitscolumn-widget"),v=n("value-widget");return u(),o("div",{ref:"container",style:c(t.computedStyle)},[s(p,l(t.$attrs,{parameters:t.parameters,settings:[...t.appliedSettings],"screen-values":t.screenValues,"widget-index":1,line:t.line,"line-number":t.lineNumber}),null,16,["parameters","settings","screen-values","line","line-number"]),s(v,l(t.$attrs,{parameters:t.parameters,settings:[...t.appliedSettings],"screen-values":t.screenValues,"screen-time-zone":t.screenTimeZone,"widget-index":0}),null,16,["parameters","settings","screen-values","screen-time-zone"])],4)}const B=d("default",m(e,[["render",g]]))})}}));
1
+ System.register(["./ValueWidget-CpptSOvJ-71518e3093457d3a3e99.js","./LimitscolumnWidget-DSQAdlZS-5e2e3f51c3376782328c.js","./Widget-CSgnvwEG-bc4dec83d0fc9039b821.js","vue","./main-6a328857fae6aab0f418.js","./DetailsDialog-DHi4t3xd-23cd6112e439aa7c2e72.js","./LimitsBar-BqpvMpXM-299f056c19106e6b75fb.js","./LimitsColor-CBcpB-la-3bd861951380f642016e.js","single-spa","./VWidget-5FjwlURU-6a72b64b7cc840033418.js","vue-router","pinia","vuetify","./BarColumn-JQ552zb0-71f940da624cf74a8ac7.js"],(function(p,f){"use strict";var i,r,a,n,u,o,c,s,l,m;return{setters:[e=>{i=e.default},e=>{r=e.default},e=>{a=e.f},e=>{n=e.resolveComponent,u=e.openBlock,o=e.createElementBlock,c=e.normalizeStyle,s=e.createVNode,l=e.mergeProps},e=>{m=e.k},null,null,null,null,null,null,null,null,null],execute:(function(){const e={components:{ValueWidget:i,LimitscolumnWidget:r},mixins:[a]};function d(t,S,B,C,V,w){const g=n("limitscolumn-widget"),v=n("value-widget");return u(),o("div",{ref:"container",style:c(t.computedStyle)},[s(g,l(t.$attrs,{parameters:t.parameters,settings:[...t.appliedSettings],"screen-values":t.screenValues,"widget-index":1,line:t.line,"line-number":t.lineNumber}),null,16,["parameters","settings","screen-values","line","line-number"]),s(v,l(t.$attrs,{parameters:t.parameters,settings:[...t.appliedSettings],"screen-values":t.screenValues,"screen-time-zone":t.screenTimeZone,"widget-index":0}),null,16,["parameters","settings","screen-values","screen-time-zone"])],4)}const j=p("default",m(e,[["render",d]]))})}}));
@@ -0,0 +1 @@
1
+ System.register(["./ValueWidget-CpptSOvJ-71518e3093457d3a3e99.js","./RangebarWidget-CN11Oqws-3a133c58d66ddb2b34bf.js","./Widget-CSgnvwEG-bc4dec83d0fc9039b821.js","vue","./main-6a328857fae6aab0f418.js","./DetailsDialog-DHi4t3xd-23cd6112e439aa7c2e72.js","./LimitsBar-BqpvMpXM-299f056c19106e6b75fb.js","./LimitsColor-CBcpB-la-3bd861951380f642016e.js","single-spa","./VWidget-5FjwlURU-6a72b64b7cc840033418.js","vue-router","pinia","vuetify"],(function(g,h){"use strict";var n,i,l,r,p,m,u,s,a,o;return{setters:[e=>{n=e.default},e=>{i=e.default},e=>{l=e.f},e=>{r=e.resolveComponent,p=e.openBlock,m=e.createElementBlock,u=e.normalizeStyle,s=e.createVNode,a=e.mergeProps},e=>{o=e.k},null,null,null,null,null,null,null,null],execute:(function(){const e={components:{ValueWidget:n,RangebarWidget:i},mixins:[l],computed:{valueParameters(){return[this.parameters[0],this.parameters[1],this.parameters[2],this.parameters[5],this.parameters[6]]},rangeBarParameters(){return[this.parameters[0],this.parameters[1],this.parameters[2],this.parameters[3],this.parameters[4],this.parameters[5],this.parameters[7],this.parameters[8]]}}};function d(t,j,w,S,x,c){const v=r("value-widget"),f=r("rangebar-widget");return p(),m("div",{ref:"container",class:"d-flex flex-row",style:u(t.computedStyle)},[s(v,a(t.$attrs,{parameters:c.valueParameters,settings:[...t.appliedSettings],"screen-values":t.screenValues,"screen-time-zone":t.screenTimeZone,"widget-index":0}),null,16,["parameters","settings","screen-values","screen-time-zone"]),s(f,a(t.$attrs,{parameters:c.rangeBarParameters,settings:[...t.appliedSettings],"screen-values":t.screenValues,"widget-index":1}),null,16,["parameters","settings","screen-values"])],4)}const B=g("default",o(e,[["render",d]]))})}}));
@@ -1 +1 @@
1
- System.register(["./Layout--_zNJWnw-a75e57affb59e71889ad.js","vue","./main-040488697a5f3eed5115.js","./Widget-CtYQauzA-ae8839a2e4146c799aec.js","vue-router","pinia","single-spa","vuetify"],(function(k,T){"use strict";var g,u,n,s,v,l,y,i,o,f,d,c,p,w;return{setters:[t=>{g=t.r},t=>{u=t.resolveComponent,n=t.openBlock,s=t.createElementBlock,v=t.normalizeStyle,l=t.Fragment,y=t.renderList,i=t.createBlock,o=t.withCtx,f=t.createElementVNode,d=t.toDisplayString,c=t.resolveDynamicComponent,p=t.mergeProps},t=>{w=t.k},null,null,null,null,null],execute:(function(){const t={mixins:[g],created:function(){if(this.parameters[0]){let r=this.parameters[0];this.widgets.forEach(m=>{m.settings.find(a=>a[0]==="MARGIN"||a[0].startsWith("RAW")&&a[1].toUpperCase().includes("MARGIN"))===void 0&&m.settings.push(["MARGIN",r])})}}};function h(r,m,a,B,b,x){const z=u("v-tooltip");return n(),s("div",{ref:"container",style:v(r.computedStyle)},[(n(!0),s(l,null,y(r.widgets,(e,C)=>(n(),s(l,{key:C},[r.getTooltipText(e)?(n(),i(z,{key:0,"open-delay":r.getTooltipDelay(e),location:"top","activator-props":r.getTooltipActivatorProps(e)},{activator:o(({props:N})=>[(n(),i(c(e.type),p({ref_for:!0},{...r.listeners,...N},{target:e.target,parameters:e.parameters,settings:e.settings,"screen-values":r.screenValues,"screen-time-zone":r.screenTimeZone,widgets:e.widgets,name:e.name,line:e.line,"line-number":e.lineNumber}),null,16,["target","parameters","settings","screen-values","screen-time-zone","widgets","name","line","line-number"]))]),default:o(()=>[f("span",null,d(r.getTooltipText(e)),1)]),_:2},1032,["open-delay","activator-props"])):(n(),i(c(e.type),p({key:1,ref_for:!0},r.listeners,{target:e.target,parameters:e.parameters,settings:e.settings,"screen-values":r.screenValues,"screen-time-zone":r.screenTimeZone,widgets:e.widgets,name:e.name,line:e.line,"line-number":e.lineNumber}),null,16,["target","parameters","settings","screen-values","screen-time-zone","widgets","name","line","line-number"]))],64))),128))],4)}const A=k("default",w(t,[["render",h]]))})}}));
1
+ System.register(["./Layout-BLS4Yi3m-9a851fc81da50b5a0f78.js","vue","./main-6a328857fae6aab0f418.js","./Widget-CSgnvwEG-bc4dec83d0fc9039b821.js","vue-router","pinia","single-spa","vuetify"],(function(k,S){"use strict";var g,u,n,s,v,l,y,i,o,f,d,c,p,w;return{setters:[t=>{g=t.r},t=>{u=t.resolveComponent,n=t.openBlock,s=t.createElementBlock,v=t.normalizeStyle,l=t.Fragment,y=t.renderList,i=t.createBlock,o=t.withCtx,f=t.createElementVNode,d=t.toDisplayString,c=t.resolveDynamicComponent,p=t.mergeProps},t=>{w=t.k},null,null,null,null,null],execute:(function(){const t={mixins:[g],created:function(){if(this.parameters[0]){let r=this.parameters[0];this.widgets.forEach(m=>{m.settings.find(a=>a[0]==="MARGIN"||a[0].startsWith("RAW")&&a[1].toUpperCase().includes("MARGIN"))===void 0&&m.settings.push(["MARGIN",r])})}}};function h(r,m,a,z,b,x){const C=u("v-tooltip");return n(),s("div",{ref:"container",style:v(r.computedStyle)},[(n(!0),s(l,null,y(r.widgets,(e,B)=>(n(),s(l,{key:B},[r.getTooltipText(e)?(n(),i(C,{key:0,"open-delay":r.getTooltipDelay(e),location:"top","activator-props":r.getTooltipActivatorProps(e)},{activator:o(({props:N})=>[(n(),i(c(e.type),p({ref_for:!0},{...r.listeners,...N},{target:e.target,parameters:e.parameters,settings:e.settings,"screen-values":r.screenValues,"screen-time-zone":r.screenTimeZone,widgets:e.widgets,name:e.name,line:e.line,"line-number":e.lineNumber}),null,16,["target","parameters","settings","screen-values","screen-time-zone","widgets","name","line","line-number"]))]),default:o(()=>[f("span",null,d(r.getTooltipText(e)),1)]),_:2},1032,["open-delay","activator-props"])):(n(),i(c(e.type),p({key:1,ref_for:!0},r.listeners,{target:e.target,parameters:e.parameters,settings:e.settings,"screen-values":r.screenValues,"screen-time-zone":r.screenTimeZone,widgets:e.widgets,name:e.name,line:e.line,"line-number":e.lineNumber}),null,16,["target","parameters","settings","screen-values","screen-time-zone","widgets","name","line","line-number"]))],64))),128))],4)}const T=k("default",w(t,[["render",h]]))})}}));
@@ -1 +1 @@
1
- System.register(["./LabelWidget-CA1bTX2B-cf65a81edc2678cf21d0.js","./HorizontallineWidget-Bvu1QP3S-2ef01995448de3e2d6b7.js","./VerticalWidget-C6O0dhRU-7511fd89efa71860286e.js","./Layout--_zNJWnw-a75e57affb59e71889ad.js","vue","./main-040488697a5f3eed5115.js","./Widget-CtYQauzA-ae8839a2e4146c799aec.js","vue-router","pinia","single-spa","vuetify"],(function(m,W){"use strict";var r,l,a,o,n,s,g,c,d,i,u,p;return{setters:[e=>{r=e.default},e=>{l=e.default},e=>{a=e.default},e=>{o=e.r},e=>{n=e.resolveComponent,s=e.openBlock,g=e.createElementBlock,c=e.createBlock,d=e.createCommentVNode,i=e.createVNode,u=e.mergeProps},e=>{p=e.k},null,null,null,null,null],execute:(function(){const e={components:{LabelWidget:r,HorizontalLineWidget:l,VerticalWidget:a},mixins:[o],created(){this.labelSettings=[...this.appliedSettings],this.labelSettings.find(t=>t[0]==="0"&&t[1].startsWith("RAW")&&t[2]==="font-weight")||this.labelSettings.push(["0","RAW__font-weight","font-weight","bold"])}};function f(t,S,B,k,z,C){const h=n("label-widget"),w=n("horizontal-line-widget"),v=n("vertical-widget");return s(),g("div",null,[t.parameters.length>0?(s(),c(h,{key:0,parameters:t.parameters.slice(0,1),settings:[...t.labelSettings],"widget-index":0},null,8,["parameters","settings"])):d("",!0),i(w,{settings:[...t.appliedSettings],"widget-index":1},null,8,["settings"]),i(v,u(t.listeners,{parameters:t.parameters.slice(1),settings:t.settings,widgets:t.widgets,"screen-values":t.screenValues,"screen-time-zone":t.screenTimeZone}),null,16,["parameters","settings","widgets","screen-values","screen-time-zone"])])}const b=m("default",p(e,[["render",f]]))})}}));
1
+ System.register(["./LabelWidget-B0nE0ImW-54b49f3830be1cee8eb4.js","./HorizontallineWidget-CHz4o6Gi-b60cc8d253fd53f17c8c.js","./VerticalWidget-B_eheXmK-3714fd0477bb202504f1.js","./Layout-BLS4Yi3m-9a851fc81da50b5a0f78.js","vue","./main-6a328857fae6aab0f418.js","./Widget-CSgnvwEG-bc4dec83d0fc9039b821.js","vue-router","pinia","single-spa","vuetify"],(function(p,W){"use strict";var r,l,a,o,n,s,g,c,d,i,u,m;return{setters:[e=>{r=e.default},e=>{l=e.default},e=>{a=e.default},e=>{o=e.r},e=>{n=e.resolveComponent,s=e.openBlock,g=e.createElementBlock,c=e.createBlock,d=e.createCommentVNode,i=e.createVNode,u=e.mergeProps},e=>{m=e.k},null,null,null,null,null],execute:(function(){const e={components:{LabelWidget:r,HorizontalLineWidget:l,VerticalWidget:a},mixins:[o],created(){this.labelSettings=[...this.appliedSettings],this.labelSettings.find(t=>t[0]==="0"&&t[1].startsWith("RAW")&&t[2]==="font-weight")||this.labelSettings.push(["0","RAW__font-weight","font-weight","bold"])}};function f(t,B,b,k,V,j){const h=n("label-widget"),w=n("horizontal-line-widget"),v=n("vertical-widget");return s(),g("div",null,[t.parameters.length>0?(s(),c(h,{key:0,parameters:t.parameters.slice(0,1),settings:[...t.labelSettings],"widget-index":0},null,8,["parameters","settings"])):d("",!0),i(w,{settings:[...t.appliedSettings],"widget-index":1},null,8,["settings"]),i(v,u(t.listeners,{parameters:t.parameters.slice(1),settings:t.settings,widgets:t.widgets,"screen-values":t.screenValues,"screen-time-zone":t.screenTimeZone}),null,16,["parameters","settings","widgets","screen-values","screen-time-zone"])])}const S=p("default",m(e,[["render",f]]))})}}));
@@ -1 +1 @@
1
- System.register(["./main-040488697a5f3eed5115.js"],(function(d,h){"use strict";var p,n,o;return{setters:[a=>{p=a.w,n=a.K,o=a.h}],execute:(function(){const a=d("h",{mixins:[p],props:{widgetIndex:{type:Number,default:null},parameters:{type:Array,default:()=>[]},settings:{type:Array,default:()=>[]},screenValues:{type:Object,default:()=>{}},screenTimeZone:{type:String,default:"local"},namedWidgets:{type:Object,default:{}},line:{type:String,default:""},lineNumber:{type:Number,default:0}},data(){return{appliedSettings:[],appliedStyle:{},widgetName:null,screenId:"NO_SCREEN"}},computed:{tooltipText:function(){const t=this.appliedSettings.find(e=>e[0]==="TOOLTIP");return t?t[1]:null},tooltipDelay:function(){const t=this.appliedSettings.find(e=>e[0]==="TOOLTIP");return t&&t[2]?parseInt(t[2]):600},computedStyle:function(){return this.appliedSettings.forEach(t=>{this.applyStyleSetting(t)}),this.appliedStyle.width===void 0&&this.appliedStyle.height===void 0&&(this.appliedStyle.flex="1 1 auto"),this.appliedStyle},screen:function(){const t=this;return{getNamedWidget:function(e){return t.store.namedWidget(t.toQualifiedWidgetName(e))},open:function(e,i){t.$emit("open",e,i)},close:function(e,i){t.$emit("close",e,i)},closeAll:function(){t.$emit("closeAll")}}},listeners:function(){return Object.entries(this.$attrs).reduce((t,e)=>e[0].startsWith("on")?{...t,[e[0]]:e[1]}:t,{})}},created(){this.store=o(this.$pinia),this.screenId=this.settings.find(t=>t[0]==="__SCREEN_ID__")?.at(1),this.widgetName=this.settings.find(t=>t[0]==="NAMED_WIDGET")?.at(1),this.widgetName&&this.store.setNamedWidget({[this.toQualifiedWidgetName(this.widgetName)]:this}),this.appliedSettings=this.settings.map(t=>{const e=parseInt(t[0]);if(Number.isNaN(e)||this.widgetIndex===null)return t;if(this.widgetIndex===e)return t.slice(1)}).filter(t=>t!==void 0)},beforeUnmount(){this.widgetName&&this.store.clearNamedWidget(this.toQualifiedWidgetName(this.widgetName))},methods:{applyStyleSetting(t){switch(t[0]){case"TEXTALIGN":this.appliedStyle["text-align"]=t[1].toLowerCase()+" !important",this.appliedStyle["--text-align"]=t[1].toLowerCase();break;case"PADDING":Number.isFinite(Number(t[1]))&&(t[1]+="px"),this.appliedStyle.padding=t[1]+" !important";break;case"MARGIN":Number.isFinite(Number(t[1]))&&(t[1]+="px"),this.appliedStyle.margin=t[1]+" !important";break;case"BACKCOLOR":this.appliedStyle["background-color"]=this.getColor(t.slice(1))+" !important";break;case"TEXTCOLOR":this.appliedStyle.color=this.getColor(t.slice(1))+" !important";break;case"BORDERCOLOR":this.appliedStyle["border-width"]="1px!important",this.appliedStyle["border-style"]="solid!important",this.appliedStyle["border-color"]=this.getColor(t.slice(1))+" !important";break;case"WIDTH":Number.isFinite(Number(t[1]))&&(t[1]+="px"),this.appliedStyle.width=t[1]+" !important";break;case"HEIGHT":Number.isFinite(Number(t[1]))&&(t[1]+="px"),this.appliedStyle.height=t[1]+" !important";break;default:t[0].startsWith("RAW")&&(this.appliedStyle[t[1].toLowerCase()]=t[2]+" !important");break}},verifyNumParams(t,e,i,s=""){let r={line:this.line,lineNumber:this.lineNumber,keyword:t,parameters:this.parameters};for(let l=1;l<=e;l++)if(this.parameters[l-1]===void 0)throw new n(r,`Not enough parameters for ${t}.`,s,"https://docs.openc3.com/docs/configuration");if(i!==null&&this.parameters.length>i)throw new n(r,`Too many parameters for ${t}.`,s,"https://docs.openc3.com/docs/configuration")},setWidth(t,e="px",i="120"){let s=this.appliedSettings.find(r=>r[0]==="WIDTH");return s?s.WIDTH:t?(this.appliedSettings.push(["WIDTH",`${t}${e}`]),parseInt(t)):(this.appliedSettings.push(["WIDTH",`${i}${e}`]),parseInt(i))},setHeight(t,e="px",i="20"){let s=null;return s=this.appliedSettings.find(r=>r[0]==="HEIGHT"),s?s.HEIGHT:t?(this.appliedSettings.push(["HEIGHT",`${t}${e}`]),parseInt(t)):(this.appliedSettings.push(["HEIGHT",`${i}${e}`]),parseInt(i))},getColor(t){switch(t.length){case 1:return t[0].toLowerCase();case 3:return`rgb(${t[0]},${t[1]},${t[2]})`}},toQualifiedWidgetName(t){return`${this.screenId}:${t}`},parseItemName(t){if(t.includes("[[")){const i=t.replaceAll("[[","[").replaceAll("]]","]");return{name:i,arrayIndex:null,display:i}}const e=t.match(/\[(\d+)\]/);return e?{name:t.replace(e[0],""),arrayIndex:Number.parseInt(e[1]),display:t}:{name:t,arrayIndex:null,display:t}}}})})}}));
1
+ System.register(["./main-6a328857fae6aab0f418.js"],(function(c,u){"use strict";var p,o,d;return{setters:[l=>{p=l.w,o=l.J,d=l.j}],execute:(function(){const l=c("f",{mixins:[p],props:{widgetIndex:{type:Number,default:null},parameters:{type:Array,default:()=>[]},settings:{type:Array,default:()=>[]},screenValues:{type:Object,default:()=>{}},screenTimeZone:{type:String,default:"local"},namedWidgets:{type:Object,default:{}},line:{type:String,default:""},lineNumber:{type:Number,default:0}},data(){return{appliedSettings:[],appliedStyle:{},widgetName:null,screenId:"NO_SCREEN"}},computed:{tooltipText:function(){const t=this.appliedSettings.find(e=>e[0]==="TOOLTIP");return t?t[1]:null},tooltipDelay:function(){const t=this.appliedSettings.find(e=>e[0]==="TOOLTIP");return t&&t[2]?parseInt(t[2]):600},computedStyle:function(){return this.appliedSettings.forEach(t=>{this.applyStyleSetting(t)}),this.appliedStyle.width===void 0&&this.appliedStyle.height===void 0&&(this.appliedStyle.flex="1 1 auto"),this.appliedStyle},screen:function(){const t=this;return{getNamedWidget:function(e){return t.store.namedWidget(t.toQualifiedWidgetName(e))},open:function(e,i){t.$emit("open",e,i)},close:function(e,i){t.$emit("close",e,i)},closeAll:function(){t.$emit("closeAll")}}},listeners:function(){return Object.entries(this.$attrs).reduce((t,e)=>e[0].startsWith("on")?{...t,[e[0]]:e[1]}:t,{})}},created(){this.store=d(this.$pinia),this.screenId=this.settings.find(t=>t[0]==="__SCREEN_ID__")?.at(1),this.widgetName=this.settings.find(t=>t[0]==="NAMED_WIDGET")?.at(1),this.widgetName&&this.store.setNamedWidget({[this.toQualifiedWidgetName(this.widgetName)]:this}),this.appliedSettings=this.settings.map(t=>{const e=parseInt(t[0]);if(Number.isNaN(e)||this.widgetIndex===null)return t;if(this.widgetIndex===e)return t.slice(1)}).filter(t=>t!==void 0)},beforeUnmount(){this.widgetName&&this.store.clearNamedWidget(this.toQualifiedWidgetName(this.widgetName))},methods:{applyStyleSetting(t){switch(t[0]){case"TEXTALIGN":this.appliedStyle["text-align"]=t[1].toLowerCase()+" !important",this.appliedStyle["--text-align"]=t[1].toLowerCase();break;case"PADDING":Number.isFinite(Number(t[1]))&&(t[1]+="px"),this.appliedStyle.padding=t[1]+" !important";break;case"MARGIN":Number.isFinite(Number(t[1]))&&(t[1]+="px"),this.appliedStyle.margin=t[1]+" !important";break;case"BACKCOLOR":this.appliedStyle["background-color"]=this.getColor(t.slice(1))+" !important";break;case"TEXTCOLOR":this.appliedStyle.color=this.getColor(t.slice(1))+" !important";break;case"BORDERCOLOR":this.appliedStyle["border-width"]="1px!important",this.appliedStyle["border-style"]="solid!important",this.appliedStyle["border-color"]=this.getColor(t.slice(1))+" !important";break;case"WIDTH":Number.isFinite(Number(t[1]))&&(t[1]+="px"),this.appliedStyle.width=t[1]+" !important";break;case"HEIGHT":Number.isFinite(Number(t[1]))&&(t[1]+="px"),this.appliedStyle.height=t[1]+" !important";break;default:t[0].startsWith("RAW")&&(this.appliedStyle[t[1].toLowerCase()]=t[2]+" !important");break}},verifyNumParams(t,e,i,n=""){let s={line:this.line,lineNumber:this.lineNumber,keyword:t,parameters:this.parameters};for(let a=1;a<=e;a++)if(this.parameters[a-1]===void 0)throw new o(s,`Not enough parameters for ${t}.`,n,"https://docs.openc3.com/docs/configuration");if(i!==null&&this.parameters.length>i)throw new o(s,`Too many parameters for ${t}.`,n,"https://docs.openc3.com/docs/configuration")},setWidth(t,e="px",i="120"){let n=this.appliedSettings.find(s=>s[0]==="WIDTH");return n?n.WIDTH:t?(this.appliedSettings.push(["WIDTH",`${t}${e}`]),parseInt(t)):(this.appliedSettings.push(["WIDTH",`${i}${e}`]),parseInt(i))},setHeight(t,e="px",i="20"){let n=null;return n=this.appliedSettings.find(s=>s[0]==="HEIGHT"),n?n.HEIGHT:t?(this.appliedSettings.push(["HEIGHT",`${t}${e}`]),parseInt(t)):(this.appliedSettings.push(["HEIGHT",`${i}${e}`]),parseInt(i))},getColor(t){switch(t.length){case 1:return t[0].toLowerCase();case 3:return`rgb(${t[0]},${t[1]},${t[2]})`}},toQualifiedWidgetName(t){return`${this.screenId}:${String(t).toUpperCase()}`},namedWidgetsSnapshot(){const t={},e=`${this.screenId}:`,i=this.store.namedWidgets;for(const n in i){if(!n.startsWith(e))continue;const s=i[n];if(!s)continue;const a={};typeof s.text=="function"&&(a.text=s.text()),typeof s.selected=="function"&&(a.selected=s.selected()),typeof s.checked=="function"&&(a.checked=s.checked()),typeof s.date=="function"&&(a.date=s.date()),typeof s.time=="function"&&(a.time=s.time());const r=s.value;(r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean")&&(a.value=r),t[n.slice(e.length)]=a}return t},setNamedWidgetValue(t,e){const i=this.store.namedWidget(this.toQualifiedWidgetName(t));i&&(i.value=e)},parseItemName(t){if(t.includes("[[")){const i=t.replaceAll("[[","[").replaceAll("]]","]");return{name:i,arrayIndex:null,display:i}}const e=t.match(/\[(\d+)\]/);return e?{name:t.replace(e[0],""),arrayIndex:Number.parseInt(e[1]),display:t}:{name:t,arrayIndex:null,display:t}}}})})}}));