openc3-cosmos-tool-cmdtlmserver 5.17.1 → 5.18.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"js/328.js","mappings":"kyFAeY,OAAAA,EAAA,kBAAAC,CAAA,EAAAA,CAAA,CAAAD,IASZ,SACEE,MAAO,CACLC,gBAAiB,CACfC,QAAS,MAGbC,IAAAA,GACE,OADKL,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACE,CACLC,QAAS,KACTC,IAAK,KAET,EACAC,OAAAA,GAAUV,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACRI,KAAKF,IAAM,IAAIG,EAAAA,CACjB,EACAC,OAAAA,GAAUb,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACRI,KAAKG,eACP,EACAC,aAAAA,GAAgBf,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACM,MAAhBI,KAAKH,SAAiBR,IAAAgB,EAAA,QAAAhB,IAAAO,EAAA,KACxBU,cAAcN,KAAKH,SAAQR,IAAAO,EAAA,KAC3BI,KAAKH,QAAU,MAChBR,IAAAgB,EAAA,OACH,EACAE,MAAO,CAELf,gBAAiB,SAAUgB,EAAQC,GAAQpB,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACzCI,KAAKG,eACP,GAEFO,QAAS,CACPP,aAAAA,GAAgBd,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACM,MAAhBI,KAAKH,SAAiBR,IAAAgB,EAAA,QAAAhB,IAAAO,EAAA,KACxBU,cAAcN,KAAKH,SAAQR,IAAAO,EAAA,KAC3BI,KAAKH,QAAU,MAChBR,IAAAgB,EAAA,QAAAhB,IAAAO,EAAA,MACDI,KAAKH,QAAUc,aAAY,KAAMtB,IAAAM,EAAA,KAAAN,IAAAO,EAAA,MAC/BI,KAAKY,QAAQ,GACZZ,KAAKR,gBACV,G,qsEChDQ,OAAAqB,EAAA,kBAAAvB,CAAA,EAAAA,CAAA,C,iBAAAuB,IAAAA,IAAAjB,EAAA,KAfZ,IAAIkB,EAAS,WAAiBD,IAAAlB,EAAA,KAAC,IAAIoB,GAAGF,IAAAjB,EAAA,KAACI,MAAKgB,GAAEH,IAAAjB,EAAA,KAACmB,EAAIE,MAAMD,IAAG,OAAAH,IAAAjB,EAAA,KAAOoB,EAAG,MAAM,CAACE,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASC,MAAON,EAAIO,UAAWC,WAAW,cAAcC,IAAI,YAAYC,YAAY,aAAaC,MAAOX,EAAIY,eAAgB,CAACX,EAAG,SAAS,CAACA,EAAG,MAAM,CAACQ,IAAI,OAAO,CAACR,EAAG,eAAe,CAACA,EAAG,YAAY,CAACY,MAAM,CAAC,IAAM,IAAIC,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,UAAS,GAAEC,EAAE,MAAEL,IAAS,OAADf,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAAQ,CAACoB,EAAG,MAAMD,EAAImB,GAAGnB,EAAIoB,GAAG,CAAC,EAAE,MAAMP,GAAM,GAAOK,GAAI,CAACjB,EAAG,SAAS,CAACY,MAAM,CAAC,YAAY,aAAaK,GAAG,CAAC,MAAQlB,EAAIqB,cAAc,CAACrB,EAAIsB,GAAG,yDAAyD,GAAG,MAAM,CAACtB,EAAIsB,GAAG,KAAKrB,EAAG,OAAO,CAACD,EAAIsB,GAAG,cAActB,EAAIsB,GAAG,KAAKrB,EAAG,YAAY,CAACY,MAAM,CAAC,IAAM,IAAIC,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,UAAS,GAAEC,EAAE,MAAEL,IAAS,OAADf,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAAQ,CAACoB,EAAG,MAAMD,EAAImB,GAAGnB,EAAIoB,GAAG,CAAC,EAAE,MAAMP,GAAM,GAAOK,GAAI,CAACjB,EAAG,SAAS,CAACY,MAAM,CAAC,YAAY,YAAYK,GAAG,CAAC,MAAQlB,EAAIuB,kBAAkB,CAACvB,EAAIsB,GAAG,qDAAqD,GAAG,MAAM,CAACtB,EAAIsB,GAAG,KAAKrB,EAAG,OAAO,CAACD,EAAIsB,GAAG,kBAAkBtB,EAAIsB,GAAG,KAAKrB,EAAG,YAAYD,EAAIsB,GAAG,KAAKrB,EAAG,OAAO,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAIyB,MAAM,OAAOzB,EAAIsB,GAAG,KAAKrB,EAAG,YAAYD,EAAIsB,GAAG,KAAKrB,EAAG,YAAY,CAACY,MAAM,CAAC,IAAM,IAAIC,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,UAAS,GAAEC,EAAE,MAAEL,IAAS,OAADf,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAAQ,CAACoB,EAAG,MAAMD,EAAImB,GAAGnB,EAAIoB,GAAG,CAAC,EAAE,MAAMP,GAAM,GAAOK,GAAI,CAACjB,EAAG,SAAS,CAACY,MAAM,CAAC,YAAY,SAASK,GAAG,CAAC,MAAQ,SAASQ,GAAQ,OAAD5B,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAAQmB,EAAI2B,MAAM,QAAQ,IAAI,CAAC3B,EAAIsB,GAAG,sDAAsD,GAAG,MAAM,CAACtB,EAAIsB,GAAG,KAAKrB,EAAG,OAAO,CAACD,EAAIsB,GAAG,gBAAgB,IAAI,GAAGtB,EAAIsB,GAAG,KAAKrB,EAAG,eAAe,CAACA,EAAG,OAAO,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAI4B,QAAQ,OAAO5B,EAAIsB,GAAG,KAAKrB,EAAG,YAAYD,EAAIsB,GAAG,KAAKrB,EAAG,YAAY,CAACY,MAAM,CAAC,IAAM,IAAIC,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,UAAS,GAAEC,EAAE,MAAEL,IAAS,OAADf,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAAQ,CAACoB,EAAG,MAAMD,EAAImB,GAAGnB,EAAIoB,GAAG,CAAC,EAAE,MAAMP,GAAM,GAAOK,GAAI,CAACjB,EAAG,QAAQ,CAACY,MAAM,CAAC,KAAO,GAAG,YAAY,SAASK,GAAG,CAAC,MAAQlB,EAAI6B,QAAQ,CAAC5B,EAAG,SAAS,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAI8B,YAAY,QAAQ,IAAI,GAAG,MAAM,CAAC9B,EAAIsB,GAAG,KAAKrB,EAAG,OAAO,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAI+B,aAAa,UAAU,GAAG/B,EAAIsB,GAAG,KAAKrB,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACY,MAAM,CAAC,MAAQ,KAAK,CAACZ,EAAG,QAAQ,CAACY,MAAM,CAAC,KAAO,MAAM,CAACZ,EAAG,OAAO,CAACD,EAAIsB,GAAG,wBAAwBtB,EAAIsB,GAAG,KAAKrB,EAAG,QAAQ,CAACS,YAAY,cAAc,CAACT,EAAG,OAAO,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAIgC,cAAc,UAAU,GAAGhC,EAAIsB,GAAG,KAAKrB,EAAG,QAAQ,CAACY,MAAM,CAAC,MAAQ,KAAK,CAACZ,EAAG,QAAQ,CAACY,MAAM,CAAC,KAAO,MAAM,CAACZ,EAAG,OAAO,CAACD,EAAIsB,GAAG,gBAAgBtB,EAAIsB,GAAG,KAAKrB,EAAG,QAAQ,CAACS,YAAY,cAAc,CAACT,EAAG,OAAO,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAIiC,eAAe,UAAU,GAAGjC,EAAIsB,GAAG,KAAKrB,EAAG,aAAa,CAACS,YAAY,YAAYG,MAAM,CAAC,YAAY,GAAG,SAAW,IAAIqB,MAAM,CAAC5B,MAAON,EAAImC,QAASC,SAAS,SAAUC,GAAKvC,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAACmB,EAAImC,QAAQE,CAAG,EAAE7B,WAAW,cAAc,IAAI,IAAI,EAClmF,EACI8B,GAAexC,IAAAjB,EAAA,MAAG,I,+0wBCqHtB,OAAAiB,EAAA,kBAAAvB,CAAA,EAAAA,CAAA,CAAAuB,IAVA,SACAyC,OAAA,CAAAC,EAAAA,GACAhE,MAAA,CACAiD,KAAAgB,OACAC,QAAAC,QACAC,WAAAH,OACAI,WAAAJ,OACAK,OAAA,CACArB,KAAAsB,OACArE,QAAA,IAGAC,IAAAA,GACA,OADAmB,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KACA,CACA+C,OAAA,GACAI,aAAA,GACAG,QAAA,GACAa,QAAA,EACAf,cAAA,GACAgB,MAAA,EACAC,MAAA,EACAC,IAAA,EACAC,KAAA,EAEA,EACAC,SAAA,CACAtB,YAAA,WACA,OADAjC,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KACA,KAAAmE,QAAAlD,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,KACA,WACAiB,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,KACA,QAEA,EACAiD,WAAA,WACA,OADAhC,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KACA,KAAAmE,QAAAlD,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,KACA,aACAiB,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,KACA,YAEA,EACA0B,UAAA,CACA+C,IAAA,WACA,OADAxD,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KACA,KAAA6D,OACA,EAEAa,IAAA,SAAAC,GAAA1D,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KACA,KAAA+C,OAAA,GAAA9B,IAAAjB,EAAA,KACA,KAAAmD,aAAA,GAAAlC,IAAAjB,EAAA,MACA,KAAAsD,QAAA,GAAArC,IAAAjB,EAAA,MACA,KAAAoD,cAAA,GAAAnC,IAAAjB,EAAA,MACA,KAAAmE,QAAA,EAAAlD,IAAAjB,EAAA,MACA,KAAAkD,YAAA,QAAAjC,IAAAjB,EAAA,MACA,KAAA8C,MAAA,UAAA6B,EACA,GAEA5C,aAAAA,GAAAd,IAAAlB,EAAA,KACA,IAAA+B,GAAAb,IAAAjB,EAAA,UAIA,OAJAiB,IAAAjB,EAAA,MACA8B,EAAA,YAAAwC,IAAA,KAAArD,IAAAjB,EAAA,MACA8B,EAAA,aAAAyC,KAAA,KAAAtD,IAAAjB,EAAA,MACA8B,EAAA,gBAAAmC,OAAAhD,IAAAjB,EAAA,MACA8B,CACA,GAEAxB,OAAAA,GAAAW,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,MACA,KAAA4E,MAAAC,IAAAC,YAAA,KAAAC,cAAA9D,IAAAjB,EAAA,MACA,KAAA4E,MAAAI,UAAAC,UAAA,KAAAC,UACA,EACApE,QAAA,CACAoE,WAAA,SAAAC,GAAAlE,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,MACA,KAAA8C,MAAA,QACA,EACAiC,cAAA,SAAAI,GAAAlE,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,MACAiB,IAAAR,EAAA,QAAA0E,EAAAA,IAAAlE,IAAAR,EAAA,QAAA2E,OAAAC,OAAApE,IAAAjB,EAAA,MACAmF,EAAAG,iBACArE,IAAAjB,EAAA,MACA,KAAAoE,MAAAe,EAAAI,QAAAtE,IAAAjB,EAAA,MACA,KAAAqE,MAAAc,EAAAK,QAAAvE,IAAAjB,EAAA,MACAyF,SAAAR,UAAA,KAAAS,iBACAzE,IAAAjB,EAAA,MACAyF,SAAAE,YAAA,KAAAC,WACA,EACAA,YAAA,SAAAT,GAAAlE,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,MACAiB,IAAAR,EAAA,QAAA0E,EAAAA,IAAAlE,IAAAR,EAAA,QAAA2E,OAAAC,OAAApE,IAAAjB,EAAA,MACAmF,EAAAG,iBAEA,IAAAO,GAAA5E,IAAAjB,EAAA,WAAAoE,MAAAe,EAAAI,SACAO,GAAA7E,IAAAjB,EAAA,WAAAqE,MAAAc,EAAAK,SAAAvE,IAAAjB,EAAA,MACA,KAAAoE,MAAAe,EAAAI,QAAAtE,IAAAjB,EAAA,MACA,KAAAqE,MAAAc,EAAAK,QACAvE,IAAAjB,EAAA,MACA,KAAAsE,IAAA,KAAAM,MAAAC,IAAAkB,cAAAA,cAAAC,UAAAF,EAAA7E,IAAAjB,EAAA,MACA,KAAAuE,KACA,KAAAK,MAAAC,IAAAkB,cAAAA,cAAAE,WAAAJ,CACA,EACAH,iBAAA,WAAAzE,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MAEAyF,SAAAR,UAAA,KAAAhE,IAAAjB,EAAA,MACAyF,SAAAE,YAAA,IACA,EACAO,aAAA,WACA,OADAjF,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACA,QAAA+C,0BAAA,KAAAI,wBAAA,KAAAC,kBAAA,KAAAE,SACA,EACAd,YAAA,WAAAvB,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACAmG,UAAAC,UAAAC,UAAA,KAAAH,eACA,EACAxD,gBAAA,WAAAzB,IAAAlB,EAAA,MACA,MAAAuG,GAAArF,IAAAjB,EAAA,UAAAuG,KAAA,MAAAL,gBAAA,CACAtD,KAAA,gBAGA4D,GAAAvF,IAAAjB,EAAA,MAAAyF,SAAAgB,cAAA,MAAAxF,IAAAjB,EAAA,MACAwG,EAAAE,KAAAC,IAAAC,gBAAAN,GACA,MAAAO,GAAA5F,IAAAjB,EAAA,OAAA8G,EAAAA,EAAAA,IAAAC,KAAAC,MAAA,wBAAA/F,IAAAjB,EAAA,MACAwG,EAAAS,aACA,WACA,GAAAJ,KAAA,KAAA9C,cAAA,KAAAC,kBACA/C,IAAAjB,EAAA,MACAwG,EAAAU,OACA,EACAlE,MAAA,WAAA/B,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACA,KAAAmE,QAAA,KAAAA,MACA,EACAnD,OAAA,WACA,GADAC,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACAiB,IAAAR,EAAA,cAAAiB,YAAAT,IAAAR,EAAA,aAAA0D,QAAA,OAAAlD,IAAAR,EAAA,aAAAQ,IAAAjB,EAAA,MAAAiB,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACA,KAAA+C,OAAA,YAAAH,gBAAA,KAAAmB,cAAA,KAAAC,aAAA/C,IAAAjB,EAAA,MAEA,mBAAA4C,MAAA3B,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACA,KAAAmH,oBACAlG,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACA,KAAAoH,gBAEA,EACAD,gBAAA,WAAAlG,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACA,KAAAE,IACAmH,eAAA,KAAAtD,WAAA,KAAAC,YACAsD,MAAAC,IAAAtG,IAAAlB,EAAA,MACA,IAAAyH,GAAAvG,IAAAjB,EAAA,MAAAuH,EAAAE,QACA,GADAxG,IAAAjB,EAAA,WACA0H,IAAAF,EAAAG,IAAA1G,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACAwH,EAAAA,EAAAG,QACA,CAAA1G,IAAAR,EAAA,QACA,IAAAmH,GAAA3G,IAAAjB,EAAA,UAAA6H,aAAA5G,IAAAjB,EAAA,MACAwH,EAAAI,EAAAE,OAAAN,EACA,CAAAvG,IAAAjB,EAAA,MACA,KAAAmD,aAAA,IAAA4D,KAAAQ,EAAAQ,KAAA,KAAA9G,IAAAjB,EAAA,MACA,KAAAoD,cAAAmE,EAAAS,eAAA/G,IAAAjB,EAAA,MACA,KAAAsD,QACA,kJAEA,KAAA2E,aAAAT,EAAA,GAEA,EACAJ,cAAA,WAAAnG,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACA,KAAAE,IACAgI,eAAA,KAAAnE,WAAA,KAAAC,YACAsD,MAAAC,IAAAtG,IAAAlB,EAAA,MACA,IAAAyH,GAAAvG,IAAAjB,EAAA,MAAAuH,EAAAE,QACA,GADAxG,IAAAjB,EAAA,WACA0H,IAAAF,EAAAG,IAAA1G,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACAwH,EAAAA,EAAAG,QACA,CAAA1G,IAAAR,EAAA,QACA,IAAAmH,GAAA3G,IAAAjB,EAAA,UAAA6H,aAAA5G,IAAAjB,EAAA,MACAwH,EAAAI,EAAAE,OAAAN,EACA,CAAAvG,IAAAjB,EAAA,MACA,KAAAmD,aAAA,IAAA4D,KAAAQ,EAAAQ,KAAA,KAAA9G,IAAAjB,EAAA,MACA,KAAAoD,cAAAmE,EAAAS,eAAA/G,IAAAjB,EAAA,MACA,KAAAsD,QACA,kJAEA,KAAA2E,aAAAT,EAAA,GAEA,EAEAS,aAAA,SAAAR,GAAAxG,IAAAlB,EAAA,MACA,IAAAoI,GAAAlH,IAAAjB,EAAA,UACAoI,GAAAnH,IAAAjB,EAAA,SACAqI,GAAApH,IAAAjB,EAAA,UA2BA,GA3BAiB,IAAAjB,EAAA,MACAyH,EAAAa,SAAAC,IAAAtH,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACAoI,EAAA,QAAAnH,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACAmI,GAAA,KAAAK,OAAAJ,EAAA,SACAnH,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACAmI,GAAA,KAAAK,OAAAD,GAEAtH,IAAAjB,EAAA,MACAiB,IAAAR,EAAA,SAAA8H,GAAA,KAAAtH,IAAAR,EAAA,SAAA8H,GAAA,MAAAtH,IAAAR,EAAA,SAAAQ,IAAAjB,EAAA,MACAqI,GAAAzE,OAAA6E,aAAAF,KACAtH,IAAAR,EAAA,SAAAQ,IAAAjB,EAAA,MACAqI,GAAA,KACApH,IAAAjB,EAAA,MAEAoI,IAAAnH,IAAAjB,EAAA,MAEAoI,EAAA,QAAAnH,IAAAR,EAAA,SAAAQ,IAAAjB,EAAA,MACAmI,GAAA,KAAAE,EAAA,KAAApH,IAAAjB,EAAA,MACAqI,EAAA,KACApH,IAAAR,EAAA,SAAAQ,IAAAjB,EAAA,MACAmI,GAAA,IACA,IAKAlH,IAAAjB,EAAA,MACAoI,EAAA,OAAAnH,IAAAR,EAAA,SACA,IAAAiI,GAAAzH,IAAAjB,EAAA,MAAAoI,EAAA,KAAAA,EAAA,MAEAO,GAAA1H,IAAAjB,EAAA,UAAA4I,OAAA,GAAAF,IACAG,GAAA5H,IAAAjB,EAAA,UAAA4I,OAAA,GAAAP,EAAAS,SAAA7H,IAAAjB,EAAA,MACAmI,GAAAQ,EAAA,KAAAN,EAAAQ,CACA,MAAA5H,IAAAR,EAAA,SACA,OADAQ,IAAAjB,EAAA,MACAmI,CACA,EACAK,MAAAA,CAAAO,EAAAC,GAAA/H,IAAAR,EAAA,aAAAQ,IAAAlB,EAAA,MACA,IAAAkJ,GAAAhI,IAAAjB,EAAA,MAAA+I,EAAAG,SAAA,KACA,OADAjI,IAAAjB,EAAA,MACA,IAAA4I,OAAAI,EAAAC,EAAAH,QAAAG,CACA,IClUsT,I,sBCQlTE,GAAY,OACd,EACAjI,EACAuC,GACA,EACA,KACA,WACA,MAIF,QAAe0F,EAAiB,O,mGChB5BC,EAA0B,IAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,6fAA8f,KAEviB,S,iBCJA,IAAIC,EAAU,EAAQ,IACnBA,EAAQC,aAAYD,EAAUA,EAAQ3J,SACnB,kBAAZ2J,IAAsBA,EAAU,CAAC,CAACF,EAAOC,GAAIC,EAAS,MAC7DA,EAAQE,SAAQJ,EAAOK,QAAUH,EAAQE,QAE5C,IAAIE,EAAM,UACGA,EAAI,WAAYJ,GAAS,EAAM,CAAC,WAAY,EAAM,YAAa,G","sources":["webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/Updater.js","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/RawDialog.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?1a17","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?b7f3","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?a8b7","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?3534"],"sourcesContent":["/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n*/\n\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\n\nexport default {\n props: {\n refreshInterval: {\n default: 1000,\n },\n },\n data() {\n return {\n updater: null,\n api: null,\n }\n },\n created() {\n this.api = new OpenC3Api()\n },\n mounted() {\n this.changeUpdater()\n },\n beforeDestroy() {\n if (this.updater != null) {\n clearInterval(this.updater)\n this.updater = null\n }\n },\n watch: {\n // eslint-disable-next-line no-unused-vars\n refreshInterval: function (newVal, oldVal) {\n this.changeUpdater()\n },\n },\n methods: {\n changeUpdater() {\n if (this.updater != null) {\n clearInterval(this.updater)\n this.updater = null\n }\n this.updater = setInterval(() => {\n this.update()\n }, this.refreshInterval)\n },\n },\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isVisible),expression:\"isVisible\"}],ref:\"rawDialog\",staticClass:\"raw-dialog\",style:(_vm.computedStyle)},[_c('v-card',[_c('div',{ref:\"bar\"},[_c('v-system-bar',[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{attrs:{\"data-test\":\"copy-icon\"},on:{\"click\":_vm.copyRawData}},[_vm._v(\"\\n mdi-content-copy\\n \")])],1)]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\" Copy \")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{attrs:{\"data-test\":\"download\"},on:{\"click\":_vm.downloadRawData}},[_vm._v(\"\\n mdi-download\\n \")])],1)]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\" Download \")])]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.type)+\" \")]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{attrs:{\"data-test\":\"close\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\"\\n mdi-close-box\\n \")])],1)]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\" Close \")])])],1)],1),_vm._v(\" \"),_c('v-card-title',[_c('span',[_vm._v(\" \"+_vm._s(_vm.header)+\" \")]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-btn',{attrs:{\"icon\":\"\",\"data-test\":\"pause\"},on:{\"click\":_vm.pause}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.buttonIcon)+\" \")])],1)],1)]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.buttonLabel)+\" \")])])],1),_vm._v(\" \"),_c('v-card-text',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('span',[_vm._v(\" Received Time: \")])]),_vm._v(\" \"),_c('v-col',{staticClass:\"text-right\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.receivedTime)+\" \")])])],1),_vm._v(\" \"),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('span',[_vm._v(\" Count: \")])]),_vm._v(\" \"),_c('v-col',{staticClass:\"text-right\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.receivedCount)+\" \")])])],1),_vm._v(\" \"),_c('v-textarea',{staticClass:\"pa-0 ma-0\",attrs:{\"auto-grow\":\"\",\"readonly\":\"\"},model:{value:(_vm.rawData),callback:function ($$v) {_vm.rawData=$$v},expression:\"rawData\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\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 2023, 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-show=\"isVisible\"\n :style=\"computedStyle\"\n class=\"raw-dialog\"\n ref=\"rawDialog\"\n >\n <v-card>\n <div ref=\"bar\">\n <v-system-bar>\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-icon data-test=\"copy-icon\" @click=\"copyRawData\">\n mdi-content-copy\n </v-icon>\n </div>\n </template>\n <span> Copy </span>\n </v-tooltip>\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-icon data-test=\"download\" @click=\"downloadRawData\">\n mdi-download\n </v-icon>\n </div>\n </template>\n <span> Download </span>\n </v-tooltip>\n <v-spacer />\n <span> {{ type }} </span>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-icon data-test=\"close\" @click=\"$emit('close')\">\n mdi-close-box\n </v-icon>\n </div>\n </template>\n <span> Close </span>\n </v-tooltip>\n </v-system-bar>\n </div>\n <v-card-title>\n <span> {{ header }} </span>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-btn icon data-test=\"pause\" @click=\"pause\">\n <v-icon> {{ buttonIcon }} </v-icon>\n </v-btn>\n </div>\n </template>\n <span> {{ buttonLabel }} </span>\n </v-tooltip>\n </v-card-title>\n <v-card-text>\n <v-row dense>\n <v-col cols=\"4\">\n <span> Received Time: </span>\n </v-col>\n <v-col class=\"text-right\">\n <span> {{ receivedTime }} </span>\n </v-col>\n </v-row>\n <v-row dense>\n <v-col cols=\"4\">\n <span> Count: </span>\n </v-col>\n <v-col class=\"text-right\">\n <span> {{ receivedCount }} </span>\n </v-col>\n </v-row>\n <v-textarea v-model=\"rawData\" class=\"pa-0 ma-0\" auto-grow readonly />\n </v-card-text>\n </v-card>\n </div>\n</template>\n\n<script>\nimport { format } from 'date-fns'\n\nimport Updater from './Updater'\n\nexport default {\n mixins: [Updater],\n props: {\n type: String,\n visible: Boolean,\n targetName: String,\n packetName: String,\n zIndex: {\n type: Number,\n default: 1,\n },\n },\n data() {\n return {\n header: '',\n receivedTime: '',\n rawData: '',\n paused: false,\n receivedCount: '',\n dragX: 0,\n dragY: 0,\n top: 0,\n left: 0,\n }\n },\n computed: {\n buttonLabel: function () {\n if (this.paused) {\n return 'Resume'\n } else {\n return 'Pause'\n }\n },\n buttonIcon: function () {\n if (this.paused) {\n return 'mdi-play'\n } else {\n return 'mdi-pause'\n }\n },\n isVisible: {\n get: function () {\n return this.visible\n },\n // Reset all the data to defaults\n set: function (bool) {\n this.header = ''\n this.receivedTime = ''\n this.rawData = ''\n this.receivedCount = ''\n this.paused = false\n this.buttonLabel = 'Pause'\n this.$emit('display', bool)\n },\n },\n computedStyle() {\n let style = {}\n style['top'] = this.top + 'px'\n style['left'] = this.left + 'px'\n style['z-index'] = this.zIndex\n return style\n },\n },\n mounted() {\n this.$refs.bar.onmousedown = this.dragMouseDown\n this.$refs.rawDialog.onmouseup = this.focusEvent\n },\n methods: {\n focusEvent: function (e) {\n this.$emit('focus')\n },\n dragMouseDown: function (e) {\n e = e || window.event\n e.preventDefault()\n // get the mouse cursor position at startup:\n this.dragX = e.clientX\n this.dragY = e.clientY\n document.onmouseup = this.closeDragElement\n // call a function whenever the cursor moves:\n document.onmousemove = this.elementDrag\n },\n elementDrag: function (e) {\n e = e || window.event\n e.preventDefault()\n // calculate the new cursor position:\n let xOffset = this.dragX - e.clientX\n let yOffset = this.dragY - e.clientY\n this.dragX = e.clientX\n this.dragY = e.clientY\n // set the element's new position:\n this.top = this.$refs.bar.parentElement.parentElement.offsetTop - yOffset\n this.left =\n this.$refs.bar.parentElement.parentElement.offsetLeft - xOffset\n },\n closeDragElement: function () {\n // stop moving when mouse button is released\n document.onmouseup = null\n document.onmousemove = null\n },\n buildRawData: function () {\n return `${this.header}\\nReceived Time: ${this.receivedTime}\\nCount: ${this.receivedCount}\\n${this.rawData}`\n },\n copyRawData: function () {\n navigator.clipboard.writeText(this.buildRawData())\n },\n downloadRawData: function () {\n const blob = new Blob([this.buildRawData()], {\n type: 'plain/text',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n const dt = format(Date.now(), 'yyyy_MM_dd_HH_mm_ss')\n link.setAttribute(\n 'download',\n `${dt}_${this.targetName}_${this.packetName}.txt`,\n )\n link.click()\n },\n pause: function () {\n this.paused = !this.paused\n },\n update: function () {\n if (!this.isVisible || this.paused) return\n this.header = `Raw ${this.type} Packet: ${this.targetName} ${this.packetName}`\n\n if (this.type === 'Telemetry') {\n this.updateTelemetry()\n } else {\n this.updateCommand()\n }\n },\n updateTelemetry: function () {\n this.api\n .get_tlm_buffer(this.targetName, this.packetName)\n .then((result) => {\n let buffer_data = result.buffer\n if (buffer_data.raw !== undefined) {\n buffer_data = buffer_data.raw\n } else {\n let utf8Encode = new TextEncoder()\n buffer_data = utf8Encode.encode(buffer_data)\n }\n this.receivedTime = new Date(result.time / 1000000)\n this.receivedCount = result.received_count\n this.rawData =\n 'Address Data Ascii\\n' +\n '---------------------------------------------------------------------------\\n' +\n this.formatBuffer(buffer_data)\n })\n },\n updateCommand: function () {\n this.api\n .get_cmd_buffer(this.targetName, this.packetName)\n .then((result) => {\n let buffer_data = result.buffer\n if (buffer_data.raw !== undefined) {\n buffer_data = buffer_data.raw\n } else {\n let utf8Encode = new TextEncoder()\n buffer_data = utf8Encode.encode(buffer_data)\n }\n this.receivedTime = new Date(result.time / 1000000)\n this.receivedCount = result.received_count\n this.rawData =\n 'Address Data Ascii\\n' +\n '---------------------------------------------------------------------------\\n' +\n this.formatBuffer(buffer_data)\n })\n },\n // TODO: Perhaps move this to a utility library\n formatBuffer: function (buffer) {\n var string = ''\n var index = 0\n var ascii = ''\n buffer.forEach((byte) => {\n if (index % 16 === 0) {\n string += this.numHex(index, 8) + ': '\n }\n string += this.numHex(byte)\n\n // Create the ASCII representation if printable\n if (byte >= 32 && byte <= 126) {\n ascii += String.fromCharCode(byte)\n } else {\n ascii += ' '\n }\n\n index++\n\n if (index % 16 === 0) {\n string += ' ' + ascii + '\\n'\n ascii = ''\n } else {\n string += ' '\n }\n })\n\n // We're done printing all the bytes. Now check to see if we ended in the\n // middle of a line. If so we have to print out the final ASCII if\n // requested.\n if (index % 16 != 0) {\n var existing_length = (index % 16) - 1 + (index % 16) * 2\n // 47 is (16 * 2) + 15 separator spaces\n var filler = ' '.repeat(47 - existing_length)\n var ascii_filler = ' '.repeat(16 - ascii.length)\n string += filler + ' ' + ascii + ascii_filler\n }\n return string\n },\n numHex(num, width = 2) {\n var hex = num.toString(16)\n return '0'.repeat(width - hex.length) + hex\n },\n },\n}\n</script>\n<style scoped>\n.raw-dialog {\n position: absolute;\n top: 0px;\n left: 5px;\n z-index: 1;\n border: solid;\n border-width: 1px;\n border-color: white;\n resize: both;\n overflow: auto;\n max-height: 85vh;\n background-color: var(--color-background-base-selected);\n}\n.raw-dialog :deep(.v-card) {\n height: 100%;\n min-width: 800px;\n}\n.raw-dialog :deep(.v-card__text) {\n height: 100%;\n background-color: var(--color-background-base-selected);\n}\n.v-textarea :deep(textarea) {\n margin-top: 10px;\n font-family: 'Courier New', Courier, monospace;\n overflow-y: scroll;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawDialog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RawDialog.vue?vue&type=template&id=212f6e79&scoped=true\"\nimport script from \"./RawDialog.vue?vue&type=script&lang=js\"\nexport * from \"./RawDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./RawDialog.vue?vue&type=style&index=0&id=212f6e79&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"212f6e79\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.raw-dialog[data-v-212f6e79]{position:absolute;top:0;left:5px;z-index:1;border:solid;border-width:1px;border-color:#fff;resize:both;overflow:auto;max-height:85vh;background-color:var(--color-background-base-selected)}.raw-dialog[data-v-212f6e79] .v-card{height:100%;min-width:800px}.raw-dialog[data-v-212f6e79] .v-card__text{height:100%;background-color:var(--color-background-base-selected)}.v-textarea[data-v-212f6e79] textarea{margin-top:10px;font-family:Courier New,Courier,monospace;overflow-y:scroll}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawDialog.vue?vue&type=style&index=0&id=212f6e79&prod&scoped=true&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"82f5c260\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["cov_18iatml2cn","actualCoverage","props","refreshInterval","default","data","f","s","updater","api","created","this","OpenC3Api","mounted","changeUpdater","beforeDestroy","b","clearInterval","watch","newVal","oldVal","methods","setInterval","update","cov_2gt25r962d","render","_vm","_c","_self","directives","name","rawName","value","isVisible","expression","ref","staticClass","style","computedStyle","attrs","scopedSlots","_u","key","fn","on","_g","_b","copyRawData","_v","downloadRawData","_s","type","$event","$emit","header","pause","buttonIcon","buttonLabel","receivedTime","receivedCount","model","rawData","callback","$$v","staticRenderFns","mixins","Updater","String","visible","Boolean","targetName","packetName","zIndex","Number","paused","dragX","dragY","top","left","computed","get","set","bool","$refs","bar","onmousedown","dragMouseDown","rawDialog","onmouseup","focusEvent","e","window","event","preventDefault","clientX","clientY","document","closeDragElement","onmousemove","elementDrag","xOffset","yOffset","parentElement","offsetTop","offsetLeft","buildRawData","navigator","clipboard","writeText","blob","Blob","link","createElement","href","URL","createObjectURL","dt","format","Date","now","setAttribute","click","updateTelemetry","updateCommand","get_tlm_buffer","then","result","buffer_data","buffer","undefined","raw","utf8Encode","TextEncoder","encode","time","received_count","formatBuffer","get_cmd_buffer","string","index","ascii","forEach","byte","numHex","fromCharCode","existing_length","filler","repeat","ascii_filler","length","num","width","hex","toString","component","___CSS_LOADER_EXPORT___","push","module","id","content","__esModule","locals","exports","add"],"sourceRoot":""}
1
+ {"version":3,"file":"js/328.js","mappings":"kyFAeY,OAAAA,EAAA,kBAAAC,CAAA,EAAAA,CAAA,CAAAD,IASZ,SACEE,MAAO,CACLC,gBAAiB,CACfC,QAAS,MAGbC,IAAAA,GACE,OADKL,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACE,CACLC,QAAS,KACTC,IAAK,KAET,EACAC,OAAAA,GAAUV,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACRI,KAAKF,IAAM,IAAIG,EAAAA,CACjB,EACAC,OAAAA,GAAUb,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACRI,KAAKG,eACP,EACAC,aAAAA,GAAgBf,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACM,MAAhBI,KAAKH,SAAiBR,IAAAgB,EAAA,QAAAhB,IAAAO,EAAA,KACxBU,cAAcN,KAAKH,SAAQR,IAAAO,EAAA,KAC3BI,KAAKH,QAAU,MAChBR,IAAAgB,EAAA,OACH,EACAE,MAAO,CAELf,gBAAiB,SAAUgB,EAAQC,GAAQpB,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACzCI,KAAKG,eACP,GAEFO,QAAS,CACPP,aAAAA,GAAgBd,IAAAM,EAAA,KAAAN,IAAAO,EAAA,KACM,MAAhBI,KAAKH,SAAiBR,IAAAgB,EAAA,QAAAhB,IAAAO,EAAA,KACxBU,cAAcN,KAAKH,SAAQR,IAAAO,EAAA,KAC3BI,KAAKH,QAAU,MAChBR,IAAAgB,EAAA,QAAAhB,IAAAO,EAAA,MACDI,KAAKH,QAAUc,aAAY,KAAMtB,IAAAM,EAAA,KAAAN,IAAAO,EAAA,MAC/BI,KAAKY,QAAQ,GACZZ,KAAKR,gBACV,G,qsEChDQ,OAAAqB,EAAA,kBAAAvB,CAAA,EAAAA,CAAA,C,iBAAAuB,IAAAA,IAAAjB,EAAA,KAfZ,IAAIkB,EAAS,WAAiBD,IAAAlB,EAAA,KAAC,IAAIoB,GAAGF,IAAAjB,EAAA,KAACI,MAAKgB,GAAEH,IAAAjB,EAAA,KAACmB,EAAIE,MAAMD,IAAG,OAAAH,IAAAjB,EAAA,KAAOoB,EAAG,MAAM,CAACE,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASC,MAAON,EAAIO,UAAWC,WAAW,cAAcC,IAAI,YAAYC,YAAY,aAAaC,MAAOX,EAAIY,eAAgB,CAACX,EAAG,SAAS,CAACA,EAAG,MAAM,CAACQ,IAAI,OAAO,CAACR,EAAG,eAAe,CAACA,EAAG,YAAY,CAACY,MAAM,CAAC,IAAM,IAAIC,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,UAAS,GAAEC,EAAE,MAAEL,IAAS,OAADf,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAAQ,CAACoB,EAAG,MAAMD,EAAImB,GAAGnB,EAAIoB,GAAG,CAAC,EAAE,MAAMP,GAAM,GAAOK,GAAI,CAACjB,EAAG,SAAS,CAACY,MAAM,CAAC,YAAY,aAAaK,GAAG,CAAC,MAAQlB,EAAIqB,cAAc,CAACrB,EAAIsB,GAAG,yDAAyD,GAAG,MAAM,CAACtB,EAAIsB,GAAG,KAAKrB,EAAG,OAAO,CAACD,EAAIsB,GAAG,cAActB,EAAIsB,GAAG,KAAKrB,EAAG,YAAY,CAACY,MAAM,CAAC,IAAM,IAAIC,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,UAAS,GAAEC,EAAE,MAAEL,IAAS,OAADf,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAAQ,CAACoB,EAAG,MAAMD,EAAImB,GAAGnB,EAAIoB,GAAG,CAAC,EAAE,MAAMP,GAAM,GAAOK,GAAI,CAACjB,EAAG,SAAS,CAACY,MAAM,CAAC,YAAY,YAAYK,GAAG,CAAC,MAAQlB,EAAIuB,kBAAkB,CAACvB,EAAIsB,GAAG,qDAAqD,GAAG,MAAM,CAACtB,EAAIsB,GAAG,KAAKrB,EAAG,OAAO,CAACD,EAAIsB,GAAG,kBAAkBtB,EAAIsB,GAAG,KAAKrB,EAAG,YAAYD,EAAIsB,GAAG,KAAKrB,EAAG,OAAO,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAIyB,MAAM,OAAOzB,EAAIsB,GAAG,KAAKrB,EAAG,YAAYD,EAAIsB,GAAG,KAAKrB,EAAG,YAAY,CAACY,MAAM,CAAC,IAAM,IAAIC,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,UAAS,GAAEC,EAAE,MAAEL,IAAS,OAADf,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAAQ,CAACoB,EAAG,MAAMD,EAAImB,GAAGnB,EAAIoB,GAAG,CAAC,EAAE,MAAMP,GAAM,GAAOK,GAAI,CAACjB,EAAG,SAAS,CAACY,MAAM,CAAC,YAAY,SAASK,GAAG,CAAC,MAAQ,SAASQ,GAAQ,OAAD5B,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAAQmB,EAAI2B,MAAM,QAAQ,IAAI,CAAC3B,EAAIsB,GAAG,sDAAsD,GAAG,MAAM,CAACtB,EAAIsB,GAAG,KAAKrB,EAAG,OAAO,CAACD,EAAIsB,GAAG,gBAAgB,IAAI,GAAGtB,EAAIsB,GAAG,KAAKrB,EAAG,eAAe,CAACA,EAAG,OAAO,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAI4B,QAAQ,OAAO5B,EAAIsB,GAAG,KAAKrB,EAAG,YAAYD,EAAIsB,GAAG,KAAKrB,EAAG,YAAY,CAACY,MAAM,CAAC,IAAM,IAAIC,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,UAAS,GAAEC,EAAE,MAAEL,IAAS,OAADf,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAAQ,CAACoB,EAAG,MAAMD,EAAImB,GAAGnB,EAAIoB,GAAG,CAAC,EAAE,MAAMP,GAAM,GAAOK,GAAI,CAACjB,EAAG,QAAQ,CAACY,MAAM,CAAC,KAAO,GAAG,YAAY,SAASK,GAAG,CAAC,MAAQlB,EAAI6B,QAAQ,CAAC5B,EAAG,SAAS,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAI8B,YAAY,QAAQ,IAAI,GAAG,MAAM,CAAC9B,EAAIsB,GAAG,KAAKrB,EAAG,OAAO,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAI+B,aAAa,UAAU,GAAG/B,EAAIsB,GAAG,KAAKrB,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACY,MAAM,CAAC,MAAQ,KAAK,CAACZ,EAAG,QAAQ,CAACY,MAAM,CAAC,KAAO,MAAM,CAACZ,EAAG,OAAO,CAACD,EAAIsB,GAAG,wBAAwBtB,EAAIsB,GAAG,KAAKrB,EAAG,QAAQ,CAACS,YAAY,cAAc,CAACT,EAAG,OAAO,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAIgC,cAAc,UAAU,GAAGhC,EAAIsB,GAAG,KAAKrB,EAAG,QAAQ,CAACY,MAAM,CAAC,MAAQ,KAAK,CAACZ,EAAG,QAAQ,CAACY,MAAM,CAAC,KAAO,MAAM,CAACZ,EAAG,OAAO,CAACD,EAAIsB,GAAG,gBAAgBtB,EAAIsB,GAAG,KAAKrB,EAAG,QAAQ,CAACS,YAAY,cAAc,CAACT,EAAG,OAAO,CAACD,EAAIsB,GAAG,IAAItB,EAAIwB,GAAGxB,EAAIiC,eAAe,UAAU,GAAGjC,EAAIsB,GAAG,KAAKrB,EAAG,aAAa,CAACS,YAAY,YAAYG,MAAM,CAAC,YAAY,GAAG,SAAW,IAAIqB,MAAM,CAAC5B,MAAON,EAAImC,QAASC,SAAS,SAAUC,GAAKvC,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KAACmB,EAAImC,QAAQE,CAAG,EAAE7B,WAAW,cAAc,IAAI,IAAI,EAClmF,EACI8B,GAAexC,IAAAjB,EAAA,MAAG,I,u0wBCqHtB,OAAAiB,EAAA,kBAAAvB,CAAA,EAAAA,CAAA,CAAAuB,IAVA,SACAyC,OAAA,CAAAC,EAAAA,GACAhE,MAAA,CACAiD,KAAAgB,OACAC,QAAAC,QACAC,WAAAH,OACAI,WAAAJ,OACAK,OAAA,CACArB,KAAAsB,OACArE,QAAA,IAGAC,IAAAA,GACA,OADAmB,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KACA,CACA+C,OAAA,GACAI,aAAA,GACAG,QAAA,GACAa,QAAA,EACAf,cAAA,GACAgB,MAAA,EACAC,MAAA,EACAC,IAAA,EACAC,KAAA,EAEA,EACAC,SAAA,CACAtB,YAAA,WACA,OADAjC,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KACA,KAAAmE,QAAAlD,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,KACA,WACAiB,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,KACA,QAEA,EACAiD,WAAA,WACA,OADAhC,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KACA,KAAAmE,QAAAlD,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,KACA,aACAiB,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,KACA,YAEA,EACA0B,UAAA,CACA+C,IAAA,WACA,OADAxD,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KACA,KAAA6D,OACA,EAEAa,IAAA,SAAAC,GAAA1D,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,KACA,KAAA+C,OAAA,GAAA9B,IAAAjB,EAAA,KACA,KAAAmD,aAAA,GAAAlC,IAAAjB,EAAA,MACA,KAAAsD,QAAA,GAAArC,IAAAjB,EAAA,MACA,KAAAoD,cAAA,GAAAnC,IAAAjB,EAAA,MACA,KAAAmE,QAAA,EAAAlD,IAAAjB,EAAA,MACA,KAAAkD,YAAA,QAAAjC,IAAAjB,EAAA,MACA,KAAA8C,MAAA,UAAA6B,EACA,GAEA5C,aAAAA,GAAAd,IAAAlB,EAAA,KACA,IAAA+B,GAAAb,IAAAjB,EAAA,UAIA,OAJAiB,IAAAjB,EAAA,MACA8B,EAAA,YAAAwC,IAAA,KAAArD,IAAAjB,EAAA,MACA8B,EAAA,aAAAyC,KAAA,KAAAtD,IAAAjB,EAAA,MACA8B,EAAA,gBAAAmC,OAAAhD,IAAAjB,EAAA,MACA8B,CACA,GAEAxB,OAAAA,GAAAW,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,MACA,KAAA4E,MAAAC,IAAAC,YAAA,KAAAC,cAAA9D,IAAAjB,EAAA,MACA,KAAA4E,MAAAI,UAAAC,UAAA,KAAAC,UACA,EACApE,QAAA,CACAoE,WAAA,SAAAC,GAAAlE,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,MACA,KAAA8C,MAAA,QACA,EACAiC,cAAA,SAAAI,GAAAlE,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,MACAiB,IAAAR,EAAA,QAAA0E,EAAAA,IAAAlE,IAAAR,EAAA,QAAA2E,OAAAC,OAAApE,IAAAjB,EAAA,MACAmF,EAAAG,iBACArE,IAAAjB,EAAA,MACA,KAAAoE,MAAAe,EAAAI,QAAAtE,IAAAjB,EAAA,MACA,KAAAqE,MAAAc,EAAAK,QAAAvE,IAAAjB,EAAA,MACAyF,SAAAR,UAAA,KAAAS,iBACAzE,IAAAjB,EAAA,MACAyF,SAAAE,YAAA,KAAAC,WACA,EACAA,YAAA,SAAAT,GAAAlE,IAAAlB,EAAA,KAAAkB,IAAAjB,EAAA,MACAiB,IAAAR,EAAA,QAAA0E,EAAAA,IAAAlE,IAAAR,EAAA,QAAA2E,OAAAC,OAAApE,IAAAjB,EAAA,MACAmF,EAAAG,iBAEA,IAAAO,GAAA5E,IAAAjB,EAAA,WAAAoE,MAAAe,EAAAI,SACAO,GAAA7E,IAAAjB,EAAA,WAAAqE,MAAAc,EAAAK,SAAAvE,IAAAjB,EAAA,MACA,KAAAoE,MAAAe,EAAAI,QAAAtE,IAAAjB,EAAA,MACA,KAAAqE,MAAAc,EAAAK,QACAvE,IAAAjB,EAAA,MACA,KAAAsE,IAAA,KAAAM,MAAAC,IAAAkB,cAAAA,cAAAC,UAAAF,EAAA7E,IAAAjB,EAAA,MACA,KAAAuE,KACA,KAAAK,MAAAC,IAAAkB,cAAAA,cAAAE,WAAAJ,CACA,EACAH,iBAAA,WAAAzE,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MAEAyF,SAAAR,UAAA,KAAAhE,IAAAjB,EAAA,MACAyF,SAAAE,YAAA,IACA,EACAO,aAAA,WACA,OADAjF,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACA,QAAA+C,0BAAA,KAAAI,wBAAA,KAAAC,kBAAA,KAAAE,SACA,EACAd,YAAA,WAAAvB,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACAmG,UAAAC,UAAAC,UAAA,KAAAH,eACA,EACAxD,gBAAA,WAAAzB,IAAAlB,EAAA,MACA,MAAAuG,GAAArF,IAAAjB,EAAA,UAAAuG,KAAA,MAAAL,gBAAA,CACAtD,KAAA,gBAGA4D,GAAAvF,IAAAjB,EAAA,MAAAyF,SAAAgB,cAAA,MAAAxF,IAAAjB,EAAA,MACAwG,EAAAE,KAAAC,IAAAC,gBAAAN,GACA,MAAAO,GAAA5F,IAAAjB,EAAA,OAAA8G,EAAAA,EAAAA,IAAAC,KAAAC,MAAA,wBAAA/F,IAAAjB,EAAA,MACAwG,EAAAS,aACA,WACA,GAAAJ,KAAA,KAAA9C,cAAA,KAAAC,kBACA/C,IAAAjB,EAAA,MACAwG,EAAAU,OACA,EACAlE,MAAA,WAAA/B,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACA,KAAAmE,QAAA,KAAAA,MACA,EACAnD,OAAA,WACA,GADAC,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACAiB,IAAAR,EAAA,cAAAiB,YAAAT,IAAAR,EAAA,aAAA0D,QAAA,OAAAlD,IAAAR,EAAA,aAAAQ,IAAAjB,EAAA,MAAAiB,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACA,KAAA+C,OAAA,YAAAH,gBAAA,KAAAmB,cAAA,KAAAC,aAAA/C,IAAAjB,EAAA,MAEA,mBAAA4C,MAAA3B,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACA,KAAAmH,oBACAlG,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACA,KAAAoH,gBAEA,EACAD,gBAAA,WAAAlG,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACA,KAAAE,IACAmH,eAAA,KAAAtD,WAAA,KAAAC,YACAsD,MAAAC,IAAAtG,IAAAlB,EAAA,MACA,IAAAyH,GAAAvG,IAAAjB,EAAA,MAAAuH,EAAAE,QACA,GADAxG,IAAAjB,EAAA,WACA0H,IAAAF,EAAAG,IAAA1G,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACAwH,EAAAA,EAAAG,QACA,CAAA1G,IAAAR,EAAA,QACA,IAAAmH,GAAA3G,IAAAjB,EAAA,UAAA6H,aAAA5G,IAAAjB,EAAA,MACAwH,EAAAI,EAAAE,OAAAN,EACA,CAAAvG,IAAAjB,EAAA,MACA,KAAAmD,aAAA,IAAA4D,KAAAQ,EAAAQ,KAAA,KAAA9G,IAAAjB,EAAA,MACA,KAAAoD,cAAAmE,EAAAS,eAAA/G,IAAAjB,EAAA,MACA,KAAAsD,QACA,kJAEA,KAAA2E,aAAAT,EAAA,GAEA,EACAJ,cAAA,WAAAnG,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACA,KAAAE,IACAgI,eAAA,KAAAnE,WAAA,KAAAC,YACAsD,MAAAC,IAAAtG,IAAAlB,EAAA,MACA,IAAAyH,GAAAvG,IAAAjB,EAAA,MAAAuH,EAAAE,QACA,GADAxG,IAAAjB,EAAA,WACA0H,IAAAF,EAAAG,IAAA1G,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACAwH,EAAAA,EAAAG,QACA,CAAA1G,IAAAR,EAAA,QACA,IAAAmH,GAAA3G,IAAAjB,EAAA,UAAA6H,aAAA5G,IAAAjB,EAAA,MACAwH,EAAAI,EAAAE,OAAAN,EACA,CAAAvG,IAAAjB,EAAA,MACA,KAAAmD,aAAA,IAAA4D,KAAAQ,EAAAQ,KAAA,KAAA9G,IAAAjB,EAAA,MACA,KAAAoD,cAAAmE,EAAAS,eAAA/G,IAAAjB,EAAA,MACA,KAAAsD,QACA,kJAEA,KAAA2E,aAAAT,EAAA,GAEA,EAEAS,aAAA,SAAAR,GAAAxG,IAAAlB,EAAA,MACA,IAAAoI,GAAAlH,IAAAjB,EAAA,UACAoI,GAAAnH,IAAAjB,EAAA,SACAqI,GAAApH,IAAAjB,EAAA,UA2BA,GA3BAiB,IAAAjB,EAAA,MACAyH,EAAAa,SAAAC,IAAAtH,IAAAlB,EAAA,MAAAkB,IAAAjB,EAAA,MACAoI,EAAA,QAAAnH,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACAmI,GAAA,KAAAK,OAAAJ,EAAA,SACAnH,IAAAR,EAAA,QAAAQ,IAAAjB,EAAA,MACAmI,GAAA,KAAAK,OAAAD,GAEAtH,IAAAjB,EAAA,MACAiB,IAAAR,EAAA,SAAA8H,GAAA,KAAAtH,IAAAR,EAAA,SAAA8H,GAAA,MAAAtH,IAAAR,EAAA,SAAAQ,IAAAjB,EAAA,MACAqI,GAAAzE,OAAA6E,aAAAF,KACAtH,IAAAR,EAAA,SAAAQ,IAAAjB,EAAA,MACAqI,GAAA,KACApH,IAAAjB,EAAA,MAEAoI,IAAAnH,IAAAjB,EAAA,MAEAoI,EAAA,QAAAnH,IAAAR,EAAA,SAAAQ,IAAAjB,EAAA,MACAmI,GAAA,KAAAE,EAAA,KAAApH,IAAAjB,EAAA,MACAqI,EAAA,KACApH,IAAAR,EAAA,SAAAQ,IAAAjB,EAAA,MACAmI,GAAA,IACA,IAKAlH,IAAAjB,EAAA,MACAoI,EAAA,OAAAnH,IAAAR,EAAA,SACA,IAAAiI,GAAAzH,IAAAjB,EAAA,MAAAoI,EAAA,KAAAA,EAAA,MAEAO,GAAA1H,IAAAjB,EAAA,UAAA4I,OAAA,GAAAF,IACAG,GAAA5H,IAAAjB,EAAA,UAAA4I,OAAA,GAAAP,EAAAS,SAAA7H,IAAAjB,EAAA,MACAmI,GAAAQ,EAAA,KAAAN,EAAAQ,CACA,MAAA5H,IAAAR,EAAA,SACA,OADAQ,IAAAjB,EAAA,MACAmI,CACA,EACAK,MAAAA,CAAAO,EAAAC,GAAA/H,IAAAR,EAAA,aAAAQ,IAAAlB,EAAA,MACA,IAAAkJ,GAAAhI,IAAAjB,EAAA,MAAA+I,EAAAG,SAAA,KACA,OADAjI,IAAAjB,EAAA,MACA,IAAA4I,OAAAI,EAAAC,EAAAH,QAAAG,CACA,IClUsT,I,sBCQlTE,GAAY,OACd,EACAjI,EACAuC,GACA,EACA,KACA,WACA,MAIF,QAAe0F,EAAiB,O,mGChB5BC,EAA0B,IAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,6fAA8f,KAEviB,S,iBCJA,IAAIC,EAAU,EAAQ,IACnBA,EAAQC,aAAYD,EAAUA,EAAQ3J,SACnB,kBAAZ2J,IAAsBA,EAAU,CAAC,CAACF,EAAOC,GAAIC,EAAS,MAC7DA,EAAQE,SAAQJ,EAAOK,QAAUH,EAAQE,QAE5C,IAAIE,EAAM,UACGA,EAAI,WAAYJ,GAAS,EAAM,CAAC,WAAY,EAAM,YAAa,G","sources":["webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/Updater.js","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/src/tools/CmdTlmServer/RawDialog.vue","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?1a17","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?b7f3","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?a8b7","webpack://@openc3/cosmos-tool-cmdtlmserver/./src/tools/CmdTlmServer/RawDialog.vue?3534"],"sourcesContent":["/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n*/\n\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\n\nexport default {\n props: {\n refreshInterval: {\n default: 1000,\n },\n },\n data() {\n return {\n updater: null,\n api: null,\n }\n },\n created() {\n this.api = new OpenC3Api()\n },\n mounted() {\n this.changeUpdater()\n },\n beforeDestroy() {\n if (this.updater != null) {\n clearInterval(this.updater)\n this.updater = null\n }\n },\n watch: {\n // eslint-disable-next-line no-unused-vars\n refreshInterval: function (newVal, oldVal) {\n this.changeUpdater()\n },\n },\n methods: {\n changeUpdater() {\n if (this.updater != null) {\n clearInterval(this.updater)\n this.updater = null\n }\n this.updater = setInterval(() => {\n this.update()\n }, this.refreshInterval)\n },\n },\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isVisible),expression:\"isVisible\"}],ref:\"rawDialog\",staticClass:\"raw-dialog\",style:(_vm.computedStyle)},[_c('v-card',[_c('div',{ref:\"bar\"},[_c('v-system-bar',[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{attrs:{\"data-test\":\"copy-icon\"},on:{\"click\":_vm.copyRawData}},[_vm._v(\"\\n mdi-content-copy\\n \")])],1)]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\" Copy \")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{attrs:{\"data-test\":\"download\"},on:{\"click\":_vm.downloadRawData}},[_vm._v(\"\\n mdi-download\\n \")])],1)]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\" Download \")])]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.type)+\" \")]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{attrs:{\"data-test\":\"close\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\"\\n mdi-close-box\\n \")])],1)]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\" Close \")])])],1)],1),_vm._v(\" \"),_c('v-card-title',[_c('span',[_vm._v(\" \"+_vm._s(_vm.header)+\" \")]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-btn',{attrs:{\"icon\":\"\",\"data-test\":\"pause\"},on:{\"click\":_vm.pause}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.buttonIcon)+\" \")])],1)],1)]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.buttonLabel)+\" \")])])],1),_vm._v(\" \"),_c('v-card-text',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('span',[_vm._v(\" Received Time: \")])]),_vm._v(\" \"),_c('v-col',{staticClass:\"text-right\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.receivedTime)+\" \")])])],1),_vm._v(\" \"),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('span',[_vm._v(\" Count: \")])]),_vm._v(\" \"),_c('v-col',{staticClass:\"text-right\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.receivedCount)+\" \")])])],1),_vm._v(\" \"),_c('v-textarea',{staticClass:\"pa-0 ma-0\",attrs:{\"auto-grow\":\"\",\"readonly\":\"\"},model:{value:(_vm.rawData),callback:function ($$v) {_vm.rawData=$$v},expression:\"rawData\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\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 2023, 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-show=\"isVisible\"\n :style=\"computedStyle\"\n class=\"raw-dialog\"\n ref=\"rawDialog\"\n >\n <v-card>\n <div ref=\"bar\">\n <v-system-bar>\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-icon data-test=\"copy-icon\" @click=\"copyRawData\">\n mdi-content-copy\n </v-icon>\n </div>\n </template>\n <span> Copy </span>\n </v-tooltip>\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-icon data-test=\"download\" @click=\"downloadRawData\">\n mdi-download\n </v-icon>\n </div>\n </template>\n <span> Download </span>\n </v-tooltip>\n <v-spacer />\n <span> {{ type }} </span>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-icon data-test=\"close\" @click=\"$emit('close')\">\n mdi-close-box\n </v-icon>\n </div>\n </template>\n <span> Close </span>\n </v-tooltip>\n </v-system-bar>\n </div>\n <v-card-title>\n <span> {{ header }} </span>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-btn icon data-test=\"pause\" @click=\"pause\">\n <v-icon> {{ buttonIcon }} </v-icon>\n </v-btn>\n </div>\n </template>\n <span> {{ buttonLabel }} </span>\n </v-tooltip>\n </v-card-title>\n <v-card-text>\n <v-row dense>\n <v-col cols=\"4\">\n <span> Received Time: </span>\n </v-col>\n <v-col class=\"text-right\">\n <span> {{ receivedTime }} </span>\n </v-col>\n </v-row>\n <v-row dense>\n <v-col cols=\"4\">\n <span> Count: </span>\n </v-col>\n <v-col class=\"text-right\">\n <span> {{ receivedCount }} </span>\n </v-col>\n </v-row>\n <v-textarea v-model=\"rawData\" class=\"pa-0 ma-0\" auto-grow readonly />\n </v-card-text>\n </v-card>\n </div>\n</template>\n\n<script>\nimport { format } from 'date-fns'\n\nimport Updater from './Updater'\n\nexport default {\n mixins: [Updater],\n props: {\n type: String,\n visible: Boolean,\n targetName: String,\n packetName: String,\n zIndex: {\n type: Number,\n default: 1,\n },\n },\n data() {\n return {\n header: '',\n receivedTime: '',\n rawData: '',\n paused: false,\n receivedCount: '',\n dragX: 0,\n dragY: 0,\n top: 0,\n left: 0,\n }\n },\n computed: {\n buttonLabel: function () {\n if (this.paused) {\n return 'Resume'\n } else {\n return 'Pause'\n }\n },\n buttonIcon: function () {\n if (this.paused) {\n return 'mdi-play'\n } else {\n return 'mdi-pause'\n }\n },\n isVisible: {\n get: function () {\n return this.visible\n },\n // Reset all the data to defaults\n set: function (bool) {\n this.header = ''\n this.receivedTime = ''\n this.rawData = ''\n this.receivedCount = ''\n this.paused = false\n this.buttonLabel = 'Pause'\n this.$emit('display', bool)\n },\n },\n computedStyle() {\n let style = {}\n style['top'] = this.top + 'px'\n style['left'] = this.left + 'px'\n style['z-index'] = this.zIndex\n return style\n },\n },\n mounted() {\n this.$refs.bar.onmousedown = this.dragMouseDown\n this.$refs.rawDialog.onmouseup = this.focusEvent\n },\n methods: {\n focusEvent: function (e) {\n this.$emit('focus')\n },\n dragMouseDown: function (e) {\n e = e || window.event\n e.preventDefault()\n // get the mouse cursor position at startup:\n this.dragX = e.clientX\n this.dragY = e.clientY\n document.onmouseup = this.closeDragElement\n // call a function whenever the cursor moves:\n document.onmousemove = this.elementDrag\n },\n elementDrag: function (e) {\n e = e || window.event\n e.preventDefault()\n // calculate the new cursor position:\n let xOffset = this.dragX - e.clientX\n let yOffset = this.dragY - e.clientY\n this.dragX = e.clientX\n this.dragY = e.clientY\n // set the element's new position:\n this.top = this.$refs.bar.parentElement.parentElement.offsetTop - yOffset\n this.left =\n this.$refs.bar.parentElement.parentElement.offsetLeft - xOffset\n },\n closeDragElement: function () {\n // stop moving when mouse button is released\n document.onmouseup = null\n document.onmousemove = null\n },\n buildRawData: function () {\n return `${this.header}\\nReceived Time: ${this.receivedTime}\\nCount: ${this.receivedCount}\\n${this.rawData}`\n },\n copyRawData: function () {\n navigator.clipboard.writeText(this.buildRawData())\n },\n downloadRawData: function () {\n const blob = new Blob([this.buildRawData()], {\n type: 'plain/text',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n const dt = format(Date.now(), 'yyyy_MM_dd_HH_mm_ss')\n link.setAttribute(\n 'download',\n `${dt}_${this.targetName}_${this.packetName}.txt`,\n )\n link.click()\n },\n pause: function () {\n this.paused = !this.paused\n },\n update: function () {\n if (!this.isVisible || this.paused) return\n this.header = `Raw ${this.type} Packet: ${this.targetName} ${this.packetName}`\n\n if (this.type === 'Telemetry') {\n this.updateTelemetry()\n } else {\n this.updateCommand()\n }\n },\n updateTelemetry: function () {\n this.api\n .get_tlm_buffer(this.targetName, this.packetName)\n .then((result) => {\n let buffer_data = result.buffer\n if (buffer_data.raw !== undefined) {\n buffer_data = buffer_data.raw\n } else {\n let utf8Encode = new TextEncoder()\n buffer_data = utf8Encode.encode(buffer_data)\n }\n this.receivedTime = new Date(result.time / 1000000)\n this.receivedCount = result.received_count\n this.rawData =\n 'Address Data Ascii\\n' +\n '---------------------------------------------------------------------------\\n' +\n this.formatBuffer(buffer_data)\n })\n },\n updateCommand: function () {\n this.api\n .get_cmd_buffer(this.targetName, this.packetName)\n .then((result) => {\n let buffer_data = result.buffer\n if (buffer_data.raw !== undefined) {\n buffer_data = buffer_data.raw\n } else {\n let utf8Encode = new TextEncoder()\n buffer_data = utf8Encode.encode(buffer_data)\n }\n this.receivedTime = new Date(result.time / 1000000)\n this.receivedCount = result.received_count\n this.rawData =\n 'Address Data Ascii\\n' +\n '---------------------------------------------------------------------------\\n' +\n this.formatBuffer(buffer_data)\n })\n },\n // TODO: Perhaps move this to a utility library\n formatBuffer: function (buffer) {\n var string = ''\n var index = 0\n var ascii = ''\n buffer.forEach((byte) => {\n if (index % 16 === 0) {\n string += this.numHex(index, 8) + ': '\n }\n string += this.numHex(byte)\n\n // Create the ASCII representation if printable\n if (byte >= 32 && byte <= 126) {\n ascii += String.fromCharCode(byte)\n } else {\n ascii += ' '\n }\n\n index++\n\n if (index % 16 === 0) {\n string += ' ' + ascii + '\\n'\n ascii = ''\n } else {\n string += ' '\n }\n })\n\n // We're done printing all the bytes. Now check to see if we ended in the\n // middle of a line. If so we have to print out the final ASCII if\n // requested.\n if (index % 16 != 0) {\n var existing_length = (index % 16) - 1 + (index % 16) * 2\n // 47 is (16 * 2) + 15 separator spaces\n var filler = ' '.repeat(47 - existing_length)\n var ascii_filler = ' '.repeat(16 - ascii.length)\n string += filler + ' ' + ascii + ascii_filler\n }\n return string\n },\n numHex(num, width = 2) {\n var hex = num.toString(16)\n return '0'.repeat(width - hex.length) + hex\n },\n },\n}\n</script>\n<style scoped>\n.raw-dialog {\n position: absolute;\n top: 0px;\n left: 5px;\n z-index: 1;\n border: solid;\n border-width: 1px;\n border-color: white;\n resize: both;\n overflow: auto;\n max-height: 85vh;\n background-color: var(--color-background-base-selected);\n}\n.raw-dialog :deep(.v-card) {\n height: 100%;\n min-width: 800px;\n}\n.raw-dialog :deep(.v-card__text) {\n height: 100%;\n background-color: var(--color-background-base-selected);\n}\n.v-textarea :deep(textarea) {\n margin-top: 10px;\n font-family: 'Courier New', Courier, monospace;\n overflow-y: scroll;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawDialog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RawDialog.vue?vue&type=template&id=212f6e79&scoped=true\"\nimport script from \"./RawDialog.vue?vue&type=script&lang=js\"\nexport * from \"./RawDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./RawDialog.vue?vue&type=style&index=0&id=212f6e79&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"212f6e79\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.raw-dialog[data-v-212f6e79]{position:absolute;top:0;left:5px;z-index:1;border:solid;border-width:1px;border-color:#fff;resize:both;overflow:auto;max-height:85vh;background-color:var(--color-background-base-selected)}.raw-dialog[data-v-212f6e79] .v-card{height:100%;min-width:800px}.raw-dialog[data-v-212f6e79] .v-card__text{height:100%;background-color:var(--color-background-base-selected)}.v-textarea[data-v-212f6e79] textarea{margin-top:10px;font-family:Courier New,Courier,monospace;overflow-y:scroll}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawDialog.vue?vue&type=style&index=0&id=212f6e79&prod&scoped=true&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"82f5c260\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["cov_18iatml2cn","actualCoverage","props","refreshInterval","default","data","f","s","updater","api","created","this","OpenC3Api","mounted","changeUpdater","beforeDestroy","b","clearInterval","watch","newVal","oldVal","methods","setInterval","update","cov_2gt25r962d","render","_vm","_c","_self","directives","name","rawName","value","isVisible","expression","ref","staticClass","style","computedStyle","attrs","scopedSlots","_u","key","fn","on","_g","_b","copyRawData","_v","downloadRawData","_s","type","$event","$emit","header","pause","buttonIcon","buttonLabel","receivedTime","receivedCount","model","rawData","callback","$$v","staticRenderFns","mixins","Updater","String","visible","Boolean","targetName","packetName","zIndex","Number","paused","dragX","dragY","top","left","computed","get","set","bool","$refs","bar","onmousedown","dragMouseDown","rawDialog","onmouseup","focusEvent","e","window","event","preventDefault","clientX","clientY","document","closeDragElement","onmousemove","elementDrag","xOffset","yOffset","parentElement","offsetTop","offsetLeft","buildRawData","navigator","clipboard","writeText","blob","Blob","link","createElement","href","URL","createObjectURL","dt","format","Date","now","setAttribute","click","updateTelemetry","updateCommand","get_tlm_buffer","then","result","buffer_data","buffer","undefined","raw","utf8Encode","TextEncoder","encode","time","received_count","formatBuffer","get_cmd_buffer","string","index","ascii","forEach","byte","numHex","fromCharCode","existing_length","filler","repeat","ascii_filler","length","num","width","hex","toString","component","___CSS_LOADER_EXPORT___","push","module","id","content","__esModule","locals","exports","add"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]=self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]||[]).push([[364],{2673:(e,t,r)=>{r.d(t,{A:()=>i});var s=r(3816),n=r(1649);const _=new n["default"],c=s.A.create({baseURL:location.origin,timeout:6e4,params:{}});c.interceptors.response.use((e=>e),(e=>{if(e.response){if(401===e.response.status&&OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity,!0).then((function(e){e&&OpenC3Auth.setTokens()})),e.response.config.headers["Ignore-Errors"]&&e.response.config.headers["Ignore-Errors"].includes(e.response.status.toString()))return Promise.reject(e);let t=`HTTP ${e.response.status} - `;throw e.response?.statusText&&(t+=`${e.response.statusText} `),e.response?.config?.data&&(t+=`${e.response.config.data} `),e.response?.data?.message?t+=`${e.response.data.message}`:e.response?.data?.exception?t+=`${e.response.data.exception}`:e.response?.data?.error?.message?(e.response.data.error.class&&(t+=`${e.response.data.error.class} `),t+=`${e.response.data.error.message}`):t+=`${e.response?.data}`,_.$notify&&_.$notify.serious({title:"Network error",body:t}),e}throw e}));const i=c},4364:(e,t,r)=>{r.d(t,{x:()=>_});var s=r(814),n=(r(7107),r(2482),r(7067),r(4147),r(2682),r(785),r(8357),r(6196),r(821),r(6554),r(8472),r(7404),r(5803),r(3912),r(2673));class _{constructor(){(0,s.A)(this,"id",1)}async exec(e,t,r={},s={},_=6e4){try{let e=await OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity);e&&OpenC3Auth.setTokens()}catch(i){OpenC3Auth.login()}this.id=this.id+1;try{r["scope"]=window.openc3Scope,s["manual"]=!0;const c=await n.A.post("/openc3-api/api",{jsonrpc:"2.0",method:e,params:t,id:this.id,keyword_params:r},{headers:{Authorization:localStorage.openc3Token,"Content-Type":"application/json-rpc",...s},timeout:_});return c.data.result}catch(i){var c=new Error;throw i.response?(c.name=i.response.data.error.data.class,c.message=i.response.data.error.data.message):i.request?(c.name="Request error",c.message="Request error, no response received"):c.name="Unknown error",c}}decode_openc3_type(e){if(null!==e&&"object"===typeof e&&"Float"==e.json_class&&e.raw){if("NaN"==e.raw)return NaN;if("Infinity"==e.raw)return 1/0;if("-Infinity"==e.raw)return-1/0}return null}encode_openc3_type(e){return Number.isNaN(e)?{json_class:"Float",raw:"NaN"}:e==Number.POSITIVE_INFINITY?{json_class:"Float",raw:"Infinity"}:e==Number.NEGATIVE_INFINITY?{json_class:"Float",raw:"-Infinity"}:null}ensure_offline_access(){this.offline_access_needed().then((e=>{e&&(localStorage.openc3OfflineToken?this.set_offline_access(localStorage.openc3OfflineToken).then((()=>{delete localStorage.openc3OfflineToken})):OpenC3Auth.getOfflineAccess())}))}offline_access_needed(){return this.exec("offline_access_needed",[])}set_offline_access(e){return this.exec("set_offline_access",[e])}get_all_interface_info(){return this.exec("get_all_interface_info",[])}map_target_to_interface(e,t){return this.exec("map_target_to_interface",[e,t])}connect_interface(e,...t){return t.length>0?this.exec("connect_interface",[e,...t]):this.exec("connect_interface",[e])}disconnect_interface(e){return this.exec("disconnect_interface",[e])}interface_cmd(e,t,...r){return this.exec("interface_cmd",[e,t,...r])}get_all_router_info(){return this.exec("get_all_router_info",[])}connect_router(e){return this.exec("connect_router",[e])}disconnect_router(e){return this.exec("disconnect_router",[e])}get_target_interfaces(){return this.exec("get_target_interfaces",[])}get_all_target_info(){return this.exec("get_all_target_info",[])}get_tlm_cnts(e){return this.exec("get_tlm_cnts",[e])}get_item(e,t,r){return this.exec("get_item",[e,t,r])}get_param(e,t,r){return this.exec("get_param",[e,t,r])}get_parameter(e,t,r){return this.exec("get_parameter",[e,t,r])}get_limits_sets(){return this.exec("get_limits_sets",[])}get_limits_set(){return this.exec("get_limits_set",[])}set_limits_set(e){return this.exec("set_limits_set",[e])}get_target(e){return this.exec("get_target",[e])}get_target_names(){return this.exec("get_target_names",[])}get_target_list(){return this.exec("get_target_list",[])}get_tlm(e,t){return this.exec("get_tlm",[e,t])}get_telemetry(e,t){return this.exec("get_telemetry",[e,t])}get_all_tlm(e){return this.exec("get_all_tlm",[e])}get_all_telemetry(e){return this.exec("get_all_telemetry",[e])}get_all_tlm_names(e){return this.exec("get_all_tlm_names",[e])}get_all_telemetry_names(e){return this.exec("get_all_telemetry_names",[e])}async get_tlm_packet(e,t,r,s=30){const n=await this.exec("get_tlm_packet",[e,t],{type:r,stale_time:s});if(null!=n)for(var _=n.length,c=null,i=0;i<_;i++)c=this.decode_openc3_type(n[i][1]),null!==c&&(n[i][1]=c);return n}get_packet_derived_items(e,t){return this.exec("get_packet_derived_items",[e,t])}get_tlm_buffer(e,t){return this.exec("get_tlm_buffer",[e,t])}async get_tlm_values(e,t=30,r=null){let s={stale_time:t};null!==r&&(s["cache_timeout"]=r);const n=await this.exec("get_tlm_values",[e],s,{},1e4);for(var _=n[0].length,c=null,i=0;i<_;i++)c=this.decode_openc3_type(n[0][i]),null!==c&&(n[0][i]=c);return n}get_limits(e,t,r){return this.exec("get_limits",[e,t,r])}async tlm(e,t,r,s="CONVERTED"){let n=null;if(void 0===t)n=await this.exec("tlm",[e]);else if(void 0===r){if(!["RAW","CONVERTED","FORMATTED","WITH_UNITS"].includes(t)){var _=new Error;throw _.name="TypeError",_.message=`Invalid data type ${t}. Valid options are RAW, CONVERTED, FORMATTED, and WITH_UNITS.`,_}n=await this.exec("tlm",[e],{type:t})}else n=await this.exec("tlm",[e,t,r],{type:s});var c=this.decode_openc3_type(n);return null!==c&&(n=c),n}async inject_tlm(e,t,r=null,s="CONVERTED"){data=await this.exec("inject_tlm",[e,t,r],{type:s})}set_tlm(e,t,r,s){return this.exec("set_tlm",[e,t,r],{type:s})}override_tlm(e,t,r,s){return this.exec("override_tlm",[e,t,r],{type:s})}get_overrides(){return this.exec("get_overrides")}normalize_tlm(e,t,r,s){return this.exec("normalize_tlm",[e,t,r],{type:s})}get_all_cmds(e){return this.exec("get_all_cmds",[e])}get_all_commands(e){return this.exec("get_all_commands",[e])}get_all_cmd_names(e){return this.exec("get_all_cmd_names",[e])}get_all_command_names(e){return this.exec("get_all_command_names",[e])}get_cmd(e,t){return this.exec("get_cmd",[e,t])}get_command(e,t){return this.exec("get_command",[e,t])}get_cmd_cnts(e){return this.exec("get_cmd_cnts",[e])}get_cmd_value(e,t,r,s="CONVERTED"){return this.exec("get_cmd_value",[e,t,r,s])}get_cmd_buffer(e,t){return this.exec("get_cmd_buffer",[e,t])}_cmd(e,t,r,s,n){var _=null;for(var c in s)Object.prototype.hasOwnProperty.call(s,c)&&(_=this.encode_openc3_type(s[c]),null!==_&&(s[c]=_));return this.exec(e,[t,r,s],{},n)}get_cmd_hazardous(e,t,r){return void 0===t?this.exec("get_cmd_hazardous",e):this._cmd("get_cmd_hazardous",e,t,r)}cmd(e,t,r,s={}){return void 0===t?this.exec("cmd",e,{},s):this._cmd("cmd",e,t,r,s)}cmd_no_range_check(e,t,r){return void 0===t?this.exec("cmd_no_range_check",e):this._cmd("cmd_no_range_check",e,t,r)}cmd_raw(e,t,r){return void 0===t?this.exec("cmd_raw",e):this._cmd("cmd_raw",e,t,r)}cmd_raw_no_range_check(e,t,r){return void 0===t?this.exec("cmd_raw_no_range_check",e):this._cmd("cmd_raw_no_range_check",e,t,r)}cmd_no_hazardous_check(e,t,r){return void 0===t?this.exec("cmd_no_hazardous_check",e):this._cmd("cmd_no_hazardous_check",e,t,r)}cmd_no_checks(e,t,r){return void 0===t?this.exec("cmd_no_checks",e):this._cmd("cmd_no_checks",e,t,r)}cmd_raw_no_hazardous_check(e,t,r){return void 0===t?this.exec("cmd_raw_no_hazardous_check",e):this._cmd("cmd_raw_no_hazardous_check",e,t,r)}cmd_raw_no_checks(e,t,r){return void 0===t?this.exec("cmd_raw_no_checks",e):this._cmd("cmd_raw_no_checks",e,t,r)}build_cmd(e,t,r){return void 0===t?this.exec("build_cmd",e):this._cmd("build_cmd",e,t,r)}build_command(e,t,r){return void 0===t?this.exec("build_command",e):this._cmd("build_command",e,t,r)}get_interface_names(){return this.exec("get_interface_names",[])}send_raw(e,t){return this.exec("send_raw",[e,t])}list_configs(e){return this.exec("list_configs",[e])}load_config(e,t){return this.exec("load_config",[e,t])}save_config(e,t,r){return this.exec("save_config",[e,t,r])}delete_config(e,t){return this.exec("delete_config",[e,t])}enable_limits(e,t,r){return this.exec("enable_limits",[e,t,r])}disable_limits(e,t,r){return this.exec("disable_limits",[e,t,r])}get_out_of_limits(){return this.exec("get_out_of_limits",[])}get_overall_limits_state(e){return this.exec("get_overall_limits_state",[e])}list_settings(){return this.exec("list_settings",[])}get_all_settings(){return this.exec("get_all_settings",[])}get_setting(e){return this.exec("get_setting",[e])}get_settings(e){return this.exec("get_settings",e)}set_setting(e,t){return this.exec("set_setting",[e,t])}save_setting(e,t){return this.exec("save_setting",[e,t])}get_metrics(){return this.exec("get_metrics",[])}async hashString(e){if(window.isSecureContext){const t=(new TextEncoder).encode(e),r=await crypto.subtle.digest("SHA-256",t),s=new Uint8Array(r);return Array.from(s).map((e=>e.toString(16).padStart(2,"0"))).join("")}}}}}]);
2
+ //# sourceMappingURL=364.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/364.js","mappings":"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","sources":["webpack://@openc3/cosmos-tool-cmdtlmserver/../openc3-tool-common/src/services/axios.js","webpack://@openc3/cosmos-tool-cmdtlmserver/../openc3-tool-common/src/services/openc3-api.js"],"sourcesContent":["/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport axios from 'axios'\nimport Vue from 'vue'\n\nconst vueInstance = new Vue()\n\nconst axiosInstance = axios.create({\n baseURL: location.origin,\n timeout: 60000,\n params: {},\n})\n\naxiosInstance.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity, true).then(\n function (refreshed) {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n },\n )\n }\n // Individual tools can set 'Ignore-Errors' to an error code\n // they potentially expect, e.g. '500', in which case we ignore it\n // For example in CommandSender.vue:\n // obs = this.api.cmd(targetName, commandName, paramList, {\n // headers: {\n // 'Ignore-Errors': '404',\n // },\n // })\n if (\n error.response.config.headers['Ignore-Errors'] &&\n error.response.config.headers['Ignore-Errors'].includes(\n error.response.status.toString(),\n )\n ) {\n return Promise.reject(error)\n }\n let body = `HTTP ${error.response.status} - `\n if (error.response?.statusText) {\n body += `${error.response.statusText} `\n }\n if (error.response?.config?.data) {\n body += `${error.response.config.data} `\n }\n if (error.response?.data?.message) {\n body += `${error.response.data.message}`\n } else if (error.response?.data?.exception) {\n body += `${error.response.data.exception}`\n } else if (error.response?.data?.error?.message) {\n if (error.response.data.error.class) {\n body += `${error.response.data.error.class} `\n }\n body += `${error.response.data.error.message}`\n } else {\n body += `${error.response?.data}`\n }\n if (vueInstance.$notify) {\n vueInstance.$notify.serious({\n title: 'Network error',\n body,\n })\n }\n throw error\n } else {\n throw error\n }\n },\n)\n\nexport default axiosInstance\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport axios from './axios.js'\n\nexport class OpenC3Api {\n id = 1\n\n constructor() {}\n\n async exec(\n method,\n params,\n kwparams = {},\n headerOptions = {},\n timeout = 60000,\n ) {\n try {\n let refreshed = await OpenC3Auth.updateToken(\n OpenC3Auth.defaultMinValidity,\n )\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n } catch (error) {\n OpenC3Auth.login()\n }\n this.id = this.id + 1\n try {\n kwparams['scope'] = window.openc3Scope\n // Everything from the front-end is manual by default\n // The various api methods decide whether to pass the manual\n // flag to the authorize routine\n headerOptions['manual'] = true\n const response = await axios.post(\n '/openc3-api/api',\n {\n jsonrpc: '2.0',\n method: method,\n params: params,\n id: this.id,\n keyword_params: kwparams,\n },\n {\n headers: {\n Authorization: localStorage.openc3Token,\n 'Content-Type': 'application/json-rpc',\n ...headerOptions,\n },\n timeout: timeout,\n },\n )\n // var data = response.data\n // if (data.error) {\n // var err = new Error()\n // err.name = data.error.data.class\n // err.message = data.error.data.message\n // console.log(data.error.data.backtrace.join('\\n'))\n // throw err\n // }\n return response.data.result\n } catch (error) {\n var err = new Error()\n if (error.response) {\n // The request was made and the server responded with a\n // status code that falls out of the range of 2xx\n err.name = error.response.data.error.data.class\n err.message = error.response.data.error.data.message\n } else if (error.request) {\n // The request was made but no response was received, `error.request`\n // is an instance of XMLHttpRequest in the browser and an instance\n // of http.ClientRequest in Node.js\n err.name = 'Request error'\n // NOTE: Openc3Screen.vue uses this specific message to determine\n // if the CmdTlmApi server is down. Don't change unless also changing there.\n err.message = 'Request error, no response received'\n } else {\n // Something happened in setting up the request and triggered an Error\n err.name = 'Unknown error'\n }\n throw err\n }\n }\n\n decode_openc3_type(val) {\n if (val !== null && typeof val === 'object') {\n if (val.json_class == 'Float' && val.raw) {\n if (val.raw == 'NaN') {\n return NaN\n } else if (val.raw == 'Infinity') {\n return Infinity\n } else if (val.raw == '-Infinity') {\n return -Infinity\n }\n }\n }\n return null\n }\n\n encode_openc3_type(val) {\n if (Number.isNaN(val)) {\n return { json_class: 'Float', raw: 'NaN' }\n } else if (val == Number.POSITIVE_INFINITY) {\n return { json_class: 'Float', raw: 'Infinity' }\n } else if (val == Number.NEGATIVE_INFINITY) {\n return { json_class: 'Float', raw: '-Infinity' }\n }\n return null\n }\n\n ensure_offline_access() {\n this.offline_access_needed().then((needed) => {\n if (needed) {\n if (localStorage.openc3OfflineToken) {\n this.set_offline_access(localStorage.openc3OfflineToken).then(() => {\n delete localStorage.openc3OfflineToken\n })\n } else {\n OpenC3Auth.getOfflineAccess()\n }\n }\n })\n }\n\n // ***********************************************\n // The following APIs are used by the CmdTlmServer\n // ***********************************************\n\n offline_access_needed() {\n return this.exec('offline_access_needed', [])\n }\n\n set_offline_access(offline_access_token) {\n return this.exec('set_offline_access', [offline_access_token])\n }\n\n get_all_interface_info() {\n return this.exec('get_all_interface_info', [])\n }\n\n map_target_to_interface(target_name, interface_name) {\n return this.exec('map_target_to_interface', [target_name, interface_name])\n }\n\n connect_interface(interface_name, ...interface_params) {\n if (interface_params.length > 0) {\n return this.exec('connect_interface', [\n interface_name,\n ...interface_params,\n ])\n } else {\n return this.exec('connect_interface', [interface_name])\n }\n }\n\n disconnect_interface(interface_name) {\n return this.exec('disconnect_interface', [interface_name])\n }\n\n interface_cmd(interface_name, command_name, ...command_params) {\n return this.exec('interface_cmd', [\n interface_name,\n command_name,\n ...command_params,\n ])\n }\n\n get_all_router_info() {\n return this.exec('get_all_router_info', [])\n }\n\n connect_router(router_name) {\n return this.exec('connect_router', [router_name])\n }\n\n disconnect_router(router_name) {\n return this.exec('disconnect_router', [router_name])\n }\n\n get_target_interfaces() {\n return this.exec('get_target_interfaces', [])\n }\n\n // DEPRECATED\n get_all_target_info() {\n return this.exec('get_all_target_info', [])\n }\n\n get_tlm_cnts(target_commands) {\n return this.exec('get_tlm_cnts', [target_commands])\n }\n\n get_item(target, packet, item) {\n return this.exec('get_item', [target, packet, item])\n }\n\n get_param(target, packet, item) {\n return this.exec('get_param', [target, packet, item])\n }\n // DEPRECATED for get_param\n get_parameter(target, packet, item) {\n return this.exec('get_parameter', [target, packet, item])\n }\n\n get_limits_sets() {\n return this.exec('get_limits_sets', [])\n }\n\n get_limits_set() {\n return this.exec('get_limits_set', [])\n }\n\n set_limits_set(limits_set) {\n return this.exec('set_limits_set', [limits_set])\n }\n\n // ***********************************************\n // End CmdTlmServer APIs\n // ***********************************************\n\n get_target(target_name) {\n return this.exec('get_target', [target_name])\n }\n\n get_target_names() {\n return this.exec('get_target_names', [])\n }\n // DEPRECATED\n get_target_list() {\n return this.exec('get_target_list', [])\n }\n\n get_tlm(target_name, packet_name) {\n return this.exec('get_tlm', [target_name, packet_name])\n }\n // DEPRECATED\n get_telemetry(target_name, packet_name) {\n return this.exec('get_telemetry', [target_name, packet_name])\n }\n\n get_all_tlm(target_name) {\n return this.exec('get_all_tlm', [target_name])\n }\n // DEPREACTE\n get_all_telemetry(target_name) {\n return this.exec('get_all_telemetry', [target_name])\n }\n\n get_all_tlm_names(target_name) {\n return this.exec('get_all_tlm_names', [target_name])\n }\n // DEPRECATED\n get_all_telemetry_names(target_name) {\n return this.exec('get_all_telemetry_names', [target_name])\n }\n\n async get_tlm_packet(target_name, packet_name, value_type, stale_time = 30) {\n const data = await this.exec('get_tlm_packet', [target_name, packet_name], {\n type: value_type,\n stale_time: stale_time,\n })\n // Make sure data isn't null or undefined. Note this is the only valid use of == or !=\n if (data != null) {\n var len = data.length\n var converted = null\n for (var i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[i][1])\n if (converted !== null) {\n data[i][1] = converted\n }\n }\n }\n return data\n }\n\n get_packet_derived_items(target_name, packet_name) {\n return this.exec('get_packet_derived_items', [target_name, packet_name])\n }\n\n get_tlm_buffer(target_name, packet_name) {\n return this.exec('get_tlm_buffer', [target_name, packet_name])\n }\n\n async get_tlm_values(items, stale_time = 30, cache_timeout = null) {\n let kw_args = {\n stale_time: stale_time,\n }\n if (cache_timeout !== null) {\n kw_args['cache_timeout'] = cache_timeout\n }\n const data = await this.exec(\n 'get_tlm_values',\n [items],\n kw_args,\n {},\n 10000, // 10s timeout ... should never be this long\n )\n var len = data[0].length\n var converted = null\n for (var i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[0][i])\n if (converted !== null) {\n data[0][i] = converted\n }\n }\n return data\n }\n\n get_limits(target_name, packet_name, item_name) {\n return this.exec('get_limits', [target_name, packet_name, item_name])\n }\n\n async tlm(target_name, packet_name, item_name, value_type = 'CONVERTED') {\n let data = null\n // Check for the single string syntax: tlm(\"TGT PKT ITEM\")\n if (packet_name === undefined) {\n data = await this.exec('tlm', [target_name])\n // Check for the single string syntax with type: tlm(\"TGT PKT ITEM\", \"RAW\")\n } else if (item_name === undefined) {\n if (\n ['RAW', 'CONVERTED', 'FORMATTED', 'WITH_UNITS'].includes(packet_name)\n ) {\n data = await this.exec('tlm', [target_name], { type: packet_name })\n } else {\n var err = new Error()\n err.name = 'TypeError'\n err.message = `Invalid data type ${packet_name}. Valid options are RAW, CONVERTED, FORMATTED, and WITH_UNITS.`\n throw err\n }\n } else {\n data = await this.exec('tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n var converted = this.decode_openc3_type(data)\n if (converted !== null) {\n data = converted\n }\n return data\n }\n\n async inject_tlm(\n target_name,\n packet_name,\n item_hash = null,\n value_type = 'CONVERTED',\n ) {\n data = await this.exec(\n 'inject_tlm',\n [target_name, packet_name, item_hash],\n {\n type: value_type,\n },\n )\n }\n\n set_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('set_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n override_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('override_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n get_overrides() {\n return this.exec('get_overrides')\n }\n\n normalize_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('normalize_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n get_all_cmds(target_name) {\n return this.exec('get_all_cmds', [target_name])\n }\n // DEPRECATED for get_all_cmds\n get_all_commands(target_name) {\n return this.exec('get_all_commands', [target_name])\n }\n\n get_all_cmd_names(target_name) {\n return this.exec('get_all_cmd_names', [target_name])\n }\n // DEPRECATED for get_all_cmd_names\n get_all_command_names(target_name) {\n return this.exec('get_all_command_names', [target_name])\n }\n\n get_cmd(target_name, command_name) {\n return this.exec('get_cmd', [target_name, command_name])\n }\n // DEPRECATED for get_cmd\n get_command(target_name, command_name) {\n return this.exec('get_command', [target_name, command_name])\n }\n\n get_cmd_cnts(target_commands) {\n return this.exec('get_cmd_cnts', [target_commands])\n }\n\n get_cmd_value(\n target_name,\n packet_name,\n parameter_name,\n value_type = 'CONVERTED',\n ) {\n return this.exec('get_cmd_value', [\n target_name,\n packet_name,\n parameter_name,\n value_type,\n ])\n }\n\n get_cmd_buffer(target_name, packet_name) {\n return this.exec('get_cmd_buffer', [target_name, packet_name])\n }\n\n // Implementation of functionality shared by cmd methods with param_lists.\n _cmd(method, target_name, command_name, param_list, headerOptions) {\n var converted = null\n for (var key in param_list) {\n if (Object.prototype.hasOwnProperty.call(param_list, key)) {\n converted = this.encode_openc3_type(param_list[key])\n if (converted !== null) {\n param_list[key] = converted\n }\n }\n }\n return this.exec(\n method,\n [target_name, command_name, param_list],\n {},\n headerOptions,\n )\n }\n\n get_cmd_hazardous(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('get_cmd_hazardous', target_name)\n } else {\n return this._cmd(\n 'get_cmd_hazardous',\n target_name,\n command_name,\n param_list,\n )\n }\n }\n\n cmd(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('cmd', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_range_check',\n target_name,\n command_name,\n param_list,\n )\n }\n }\n\n cmd_raw(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw', target_name)\n } else {\n return this._cmd('cmd_raw', target_name, command_name, param_list)\n }\n }\n\n cmd_raw_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_range_check',\n target_name,\n command_name,\n param_list,\n )\n }\n }\n\n cmd_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_hazardous_check',\n target_name,\n command_name,\n param_list,\n )\n }\n }\n\n cmd_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_checks', target_name)\n } else {\n return this._cmd('cmd_no_checks', target_name, command_name, param_list)\n }\n }\n\n cmd_raw_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_hazardous_check',\n target_name,\n command_name,\n param_list,\n )\n }\n }\n\n cmd_raw_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_checks', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_checks',\n target_name,\n command_name,\n param_list,\n )\n }\n }\n\n build_cmd(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('build_cmd', target_name)\n } else {\n return this._cmd('build_cmd', target_name, command_name, param_list)\n }\n }\n // DEPRECATED for build_cmd\n build_command(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('build_command', target_name)\n } else {\n return this._cmd('build_command', target_name, command_name, param_list)\n }\n }\n\n get_interface_names() {\n return this.exec('get_interface_names', [])\n }\n\n send_raw(interface_name, data) {\n return this.exec('send_raw', [interface_name, data])\n }\n\n list_configs(tool) {\n return this.exec('list_configs', [tool])\n }\n\n load_config(tool, name) {\n return this.exec('load_config', [tool, name])\n }\n\n save_config(tool, name, data) {\n return this.exec('save_config', [tool, name, data])\n }\n\n delete_config(tool, name) {\n return this.exec('delete_config', [tool, name])\n }\n\n enable_limits(target, packet, item) {\n return this.exec('enable_limits', [target, packet, item])\n }\n\n disable_limits(target, packet, item) {\n return this.exec('disable_limits', [target, packet, item])\n }\n\n get_out_of_limits() {\n return this.exec('get_out_of_limits', [])\n }\n\n get_overall_limits_state(ignored) {\n return this.exec('get_overall_limits_state', [ignored])\n }\n\n list_settings() {\n return this.exec('list_settings', [])\n }\n\n get_all_settings() {\n return this.exec('get_all_settings', [])\n }\n\n get_setting(name) {\n return this.exec('get_setting', [name])\n }\n\n get_settings(array) {\n return this.exec('get_settings', array)\n }\n\n set_setting(name, data) {\n return this.exec('set_setting', [name, data])\n }\n\n // DEPRECATED\n save_setting(name, data) {\n return this.exec('save_setting', [name, data])\n }\n\n get_metrics() {\n return this.exec('get_metrics', [])\n }\n\n // TODO: Currently unused but seemed like a useful function\n async hashString(string) {\n if (window.isSecureContext) {\n // Encode the string as an arrayBuffer which the subtle crypto API uses\n const arrayBuffer = new TextEncoder().encode(string)\n // Use the subtle crypto API to perform a SHA256 Sum of the array buffer\n // The resulting hash is stored in an array buffer\n const hashAsArrayBuffer = await crypto.subtle.digest(\n 'SHA-256',\n arrayBuffer,\n )\n // To create a string we will get the hexadecimal value of each byte of the array buffer\n // This gets us an array where each byte of the array buffer becomes one item in the array\n const uint8ViewOfHash = new Uint8Array(hashAsArrayBuffer)\n // We then convert it to a regular array so we can convert each item to hexadecimal strings\n // Where to characters of 0-9 or a-f represent a number between 0 and 16, containing 4 bits of information, so 2 of them is 8 bits (1 byte).\n return Array.from(uint8ViewOfHash)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('')\n }\n // else ?\n }\n}\n"],"names":["vueInstance","Vue","axiosInstance","axios","create","baseURL","location","origin","timeout","params","interceptors","response","use","error","status","OpenC3Auth","updateToken","defaultMinValidity","then","refreshed","setTokens","config","headers","includes","toString","Promise","reject","body","statusText","data","message","exception","class","$notify","serious","title","OpenC3Api","constructor","_defineProperty","exec","method","kwparams","headerOptions","login","this","id","window","openc3Scope","post","jsonrpc","keyword_params","Authorization","localStorage","openc3Token","result","err","Error","name","request","decode_openc3_type","val","json_class","raw","NaN","Infinity","encode_openc3_type","Number","isNaN","POSITIVE_INFINITY","NEGATIVE_INFINITY","ensure_offline_access","offline_access_needed","needed","openc3OfflineToken","set_offline_access","getOfflineAccess","offline_access_token","get_all_interface_info","map_target_to_interface","target_name","interface_name","connect_interface","interface_params","length","disconnect_interface","interface_cmd","command_name","command_params","get_all_router_info","connect_router","router_name","disconnect_router","get_target_interfaces","get_all_target_info","get_tlm_cnts","target_commands","get_item","target","packet","item","get_param","get_parameter","get_limits_sets","get_limits_set","set_limits_set","limits_set","get_target","get_target_names","get_target_list","get_tlm","packet_name","get_telemetry","get_all_tlm","get_all_telemetry","get_all_tlm_names","get_all_telemetry_names","get_tlm_packet","value_type","stale_time","type","len","converted","i","get_packet_derived_items","get_tlm_buffer","get_tlm_values","items","cache_timeout","kw_args","get_limits","item_name","tlm","undefined","inject_tlm","item_hash","set_tlm","override_tlm","get_overrides","normalize_tlm","get_all_cmds","get_all_commands","get_all_cmd_names","get_all_command_names","get_cmd","get_command","get_cmd_cnts","get_cmd_value","parameter_name","get_cmd_buffer","_cmd","param_list","key","Object","prototype","hasOwnProperty","call","get_cmd_hazardous","cmd","cmd_no_range_check","cmd_raw","cmd_raw_no_range_check","cmd_no_hazardous_check","cmd_no_checks","cmd_raw_no_hazardous_check","cmd_raw_no_checks","build_cmd","build_command","get_interface_names","send_raw","list_configs","tool","load_config","save_config","delete_config","enable_limits","disable_limits","get_out_of_limits","get_overall_limits_state","ignored","list_settings","get_all_settings","get_setting","get_settings","array","set_setting","save_setting","get_metrics","hashString","string","isSecureContext","arrayBuffer","TextEncoder","encode","hashAsArrayBuffer","crypto","subtle","digest","uint8ViewOfHash","Uint8Array","Array","from","map","b","padStart","join"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]=self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]||[]).push([[467],{7752:(t,e,n)=>{n.d(e,{Be:()=>y,D$:()=>c});var i={logger:"undefined"!==typeof console?console:void 0,WebSocket:"undefined"!==typeof WebSocket?WebSocket:void 0},s={log(...t){this.enabled&&(t.push(Date.now()),i.logger.log("[ActionCable]",...t))}};const o=()=>(new Date).getTime(),r=t=>(o()-t)/1e3;class c{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=o(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),s.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=o(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),s.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordPing(){this.pingedAt=o()}recordConnect(){this.reconnectAttempts=0,this.recordPing(),delete this.disconnectedAt,s.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=o(),s.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){const{staleThreshold:t,reconnectionBackoffRate:e}=this.constructor,n=Math.pow(1+e,Math.min(this.reconnectAttempts,10)),i=0===this.reconnectAttempts?1:e,s=i*Math.random();return 1e3*t*n*(1+s)}reconnectIfStale(){this.connectionIsStale()&&(s.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${r(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?s.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${r(this.disconnectedAt)} s`):(s.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return r(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&r(this.disconnectedAt)<this.constructor.staleThreshold}visibilityDidChange(){"visible"===document.visibilityState&&setTimeout((()=>{!this.connectionIsStale()&&this.connection.isOpen()||(s.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}}c.staleThreshold=6,c.reconnectionBackoffRate=.15;var l={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart",remote:"remote"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]};const{message_types:a,protocols:u}=l,h=u.slice(0,u.length-1),d=[].indexOf;class p{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new c(this),this.disconnected=!0}send(t){return!!this.isOpen()&&(this.webSocket.send(JSON.stringify(t)),!0)}open(){if(this.isActive())return s.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{const t=[...u,...this.consumer.subprotocols||[]];return s.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${t}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new i.WebSocket(this.consumer.url,t),this.installEventHandlers(),this.monitor.start(),!0}}close({allowReconnect:t}={allowReconnect:!0}){if(t||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if(s.log(`Reopening WebSocket, current state is ${this.getState()}`),!this.isActive())return this.open();try{return this.close()}catch(t){s.log("Failed to reopen WebSocket",t)}finally{s.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}triedToReconnect(){return this.monitor.reconnectAttempts>0}isProtocolSupported(){return d.call(h,this.getProtocol())>=0}isState(...t){return d.call(t,this.getState())>=0}getState(){if(this.webSocket)for(let t in i.WebSocket)if(i.WebSocket[t]===this.webSocket.readyState)return t.toLowerCase();return null}installEventHandlers(){for(let t in this.events){const e=this.events[t].bind(this);this.webSocket[`on${t}`]=e}}uninstallEventHandlers(){for(let t in this.events)this.webSocket[`on${t}`]=function(){}}}p.reopenDelay=500,p.prototype.events={message(t){if(!this.isProtocolSupported())return;const{identifier:e,message:n,reason:i,reconnect:o,type:r}=JSON.parse(t.data);switch(r){case a.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case a.disconnect:return s.log(`Disconnecting. Reason: ${i}`),this.close({allowReconnect:o});case a.ping:return this.monitor.recordPing();case a.confirmation:return this.subscriptions.confirmSubscription(e),this.reconnectAttempted?(this.reconnectAttempted=!1,this.subscriptions.notify(e,"connected",{reconnected:!0})):this.subscriptions.notify(e,"connected",{reconnected:!1});case a.rejection:return this.subscriptions.reject(e);default:return this.subscriptions.notify(e,"received",n)}},open(){if(s.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return s.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(t){if(s.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){s.log("WebSocket onerror event")}};const g=function(t,e){if(null!=e)for(let n in e){const i=e[n];t[n]=i}return t};class f{constructor(t,e={},n){this.consumer=t,this.identifier=JSON.stringify(e),g(this,n)}perform(t,e={}){return e.action=t,this.send(e)}send(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}}class m{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){-1==this.pendingSubscriptions.indexOf(t)?(s.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):s.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){s.log(`SubscriptionGuarantor forgetting ${t.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter((e=>e!==t))}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout((()=>{this.subscriptions&&"function"===typeof this.subscriptions.subscribe&&this.pendingSubscriptions.map((t=>{s.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}}class b{constructor(t){this.consumer=t,this.guarantor=new m(this),this.subscriptions=[]}create(t,e){const n=t,i="object"===typeof n?n:{channel:n},s=new f(this.consumer,i,e);return this.add(s)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map((t=>(this.forget(t),this.notify(t,"rejected"),t)))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter((e=>e!==t)),t}findAll(t){return this.subscriptions.filter((e=>e.identifier===t))}reload(){return this.subscriptions.map((t=>this.subscribe(t)))}notifyAll(t,...e){return this.subscriptions.map((n=>this.notify(n,t,...e)))}notify(t,e,...n){let i;return i="string"===typeof t?this.findAll(t):[t],i.map((t=>"function"===typeof t[e]?t[e](...n):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){s.log(`Subscription confirmed ${t}`),this.findAll(t).map((t=>this.guarantor.forget(t)))}sendCommand(t,e){const{identifier:n}=t;return this.consumer.send({command:e,identifier:n})}}class S{constructor(t){this._url=t,this.subscriptions=new b(this),this.connection=new p(this),this.subprotocols=[]}get url(){return v(this._url)}send(t){return this.connection.send(t)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}addSubProtocol(t){this.subprotocols=[...this.subprotocols,t]}}function v(t){if("function"===typeof t&&(t=t()),t&&!/^wss?:/i.test(t)){const e=document.createElement("a");return e.href=t,e.href=e.href,e.protocol=e.protocol.replace("http","ws"),e.href}return t}function y(t=w("url")||l.default_mount_path){return new S(t)}function w(t){const e=document.head.querySelector(`meta[name='action-cable-${t}']`);if(e)return e.getAttribute("content")}},473:(t,e,n)=>{var i=n(831),s=n(8689),o=n(4282),r=o("match");t.exports=function(t){var e;return i(t)&&(void 0!==(e=t[r])?!!e:"RegExp"===s(t))}},3113:(t,e,n)=>{var i=n(9944),s=n(4418),o=n(4578),r=n(4932),c=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||"flags"in c||s(t,"flags")||!o(c,t)?e:i(r,t)}},8715:(t,e,n)=>{var i=n(5613),s=n(9944),o=n(6881),r=n(9509),c=n(4188),l=n(4318),a=n(473),u=n(2618),h=n(2913),d=n(3113),p=n(1113),g=n(4282),f=n(1942),m=g("replace"),b=TypeError,S=o("".indexOf),v=o("".replace),y=o("".slice),w=Math.max;i({target:"String",proto:!0},{replaceAll:function(t,e){var n,i,o,g,A,D,C,T,k,N=r(this),$=0,_=0,R="";if(!l(t)){if(n=a(t),n&&(i=u(r(d(t))),!~S(i,"g")))throw new b("`.replaceAll` does not allow non-global regexes");if(o=h(t,m),o)return s(o,t,N,e);if(f&&n)return v(u(N),t,e)}g=u(N),A=u(t),D=c(e),D||(e=u(e)),C=A.length,T=w(1,C),$=S(g,A);while(-1!==$)k=D?u(e(A,$,g)):p(A,g,$,[],void 0,e),R+=y(g,_,$)+k,_=$+C,$=$+T>g.length?-1:S(g,A,$+T);return _<g.length&&(R+=y(g,_)),R}})},7134:(t,e,n)=>{n.d(e,{H:()=>s});var i=n(8997);function s(t,e){const n=e?.additionalDigits??2,i=a(t);let s;if(i.date){const t=u(i.date,n);s=h(t.restDateString,t.year)}if(!s||isNaN(s.getTime()))return new Date(NaN);const o=s.getTime();let r,c=0;if(i.time&&(c=p(i.time),isNaN(c)))return new Date(NaN);if(!i.timezone){const t=new Date(o+c),e=new Date(0);return e.setFullYear(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()),e.setHours(t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),t.getUTCMilliseconds()),e}return r=f(i.timezone),isNaN(r)?new Date(NaN):new Date(o+c+r)}const o={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},r=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,c=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,l=/^([+-])(\d{2})(?::?(\d{2}))?$/;function a(t){const e={},n=t.split(o.dateTimeDelimiter);let i;if(n.length>2)return e;if(/:/.test(n[0])?i=n[0]:(e.date=n[0],i=n[1],o.timeZoneDelimiter.test(e.date)&&(e.date=t.split(o.timeZoneDelimiter)[0],i=t.substr(e.date.length,t.length))),i){const t=o.timezone.exec(i);t?(e.time=i.replace(t[1],""),e.timezone=t[1]):e.time=i}return e}function u(t,e){const n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+e)+"})|(\\d{2}|[+-]\\d{"+(2+e)+"})$)"),i=t.match(n);if(!i)return{year:NaN,restDateString:""};const s=i[1]?parseInt(i[1]):null,o=i[2]?parseInt(i[2]):null;return{year:null===o?s:100*o,restDateString:t.slice((i[1]||i[2]).length)}}function h(t,e){if(null===e)return new Date(NaN);const n=t.match(r);if(!n)return new Date(NaN);const i=!!n[4],s=d(n[1]),o=d(n[2])-1,c=d(n[3]),l=d(n[4]),a=d(n[5])-1;if(i)return w(e,l,a)?m(e,l,a):new Date(NaN);{const t=new Date(0);return v(e,o,c)&&y(e,s)?(t.setUTCFullYear(e,o,Math.max(s,c)),t):new Date(NaN)}}function d(t){return t?parseInt(t):1}function p(t){const e=t.match(c);if(!e)return NaN;const n=g(e[1]),s=g(e[2]),o=g(e[3]);return A(n,s,o)?n*i.s0+s*i.Cg+1e3*o:NaN}function g(t){return t&&parseFloat(t.replace(",","."))||0}function f(t){if("Z"===t)return 0;const e=t.match(l);if(!e)return 0;const n="+"===e[1]?-1:1,s=parseInt(e[2]),o=e[3]&&parseInt(e[3])||0;return D(s,o)?n*(s*i.s0+o*i.Cg):NaN}function m(t,e,n){const i=new Date(0);i.setUTCFullYear(t,0,4);const s=i.getUTCDay()||7,o=7*(e-1)+n+1-s;return i.setUTCDate(i.getUTCDate()+o),i}const b=[31,null,31,30,31,30,31,31,30,31,30,31];function S(t){return t%400===0||t%4===0&&t%100!==0}function v(t,e,n){return e>=0&&e<=11&&n>=1&&n<=(b[e]||(S(t)?29:28))}function y(t,e){return e>=1&&e<=(S(t)?366:365)}function w(t,e,n){return e>=1&&e<=53&&n>=0&&n<=6}function A(t,e,n){return 24===t?0===e&&0===n:n>=0&&n<60&&e>=0&&e<60&&t>=0&&t<25}function D(t,e){return e>=0&&e<=59}}}]);
1
+ "use strict";(self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]=self["webpackChunk_openc3_cosmos_tool_cmdtlmserver"]||[]).push([[467],{7752:(t,e,n)=>{n.d(e,{Be:()=>y,D$:()=>c});var i={logger:"undefined"!==typeof console?console:void 0,WebSocket:"undefined"!==typeof WebSocket?WebSocket:void 0},s={log(...t){this.enabled&&(t.push(Date.now()),i.logger.log("[ActionCable]",...t))}};const o=()=>(new Date).getTime(),r=t=>(o()-t)/1e3;class c{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=o(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),s.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=o(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),s.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordPing(){this.pingedAt=o()}recordConnect(){this.reconnectAttempts=0,this.recordPing(),delete this.disconnectedAt,s.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=o(),s.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout((()=>{this.reconnectIfStale(),this.poll()}),this.getPollInterval())}getPollInterval(){const{staleThreshold:t,reconnectionBackoffRate:e}=this.constructor,n=Math.pow(1+e,Math.min(this.reconnectAttempts,10)),i=0===this.reconnectAttempts?1:e,s=i*Math.random();return 1e3*t*n*(1+s)}reconnectIfStale(){this.connectionIsStale()&&(s.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${r(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?s.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${r(this.disconnectedAt)} s`):(s.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return r(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&r(this.disconnectedAt)<this.constructor.staleThreshold}visibilityDidChange(){"visible"===document.visibilityState&&setTimeout((()=>{!this.connectionIsStale()&&this.connection.isOpen()||(s.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())}),200)}}c.staleThreshold=6,c.reconnectionBackoffRate=.15;var l={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart",remote:"remote"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]};const{message_types:a,protocols:u}=l,h=u.slice(0,u.length-1),d=[].indexOf;class p{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new c(this),this.disconnected=!0}send(t){return!!this.isOpen()&&(this.webSocket.send(JSON.stringify(t)),!0)}open(){if(this.isActive())return s.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1;{const t=[...u,...this.consumer.subprotocols||[]];return s.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${t}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new i.WebSocket(this.consumer.url,t),this.installEventHandlers(),this.monitor.start(),!0}}close({allowReconnect:t}={allowReconnect:!0}){if(t||this.monitor.stop(),this.isOpen())return this.webSocket.close()}reopen(){if(s.log(`Reopening WebSocket, current state is ${this.getState()}`),!this.isActive())return this.open();try{return this.close()}catch(t){s.log("Failed to reopen WebSocket",t)}finally{s.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}triedToReconnect(){return this.monitor.reconnectAttempts>0}isProtocolSupported(){return d.call(h,this.getProtocol())>=0}isState(...t){return d.call(t,this.getState())>=0}getState(){if(this.webSocket)for(let t in i.WebSocket)if(i.WebSocket[t]===this.webSocket.readyState)return t.toLowerCase();return null}installEventHandlers(){for(let t in this.events){const e=this.events[t].bind(this);this.webSocket[`on${t}`]=e}}uninstallEventHandlers(){for(let t in this.events)this.webSocket[`on${t}`]=function(){}}}p.reopenDelay=500,p.prototype.events={message(t){if(!this.isProtocolSupported())return;const{identifier:e,message:n,reason:i,reconnect:o,type:r}=JSON.parse(t.data);switch(r){case a.welcome:return this.triedToReconnect()&&(this.reconnectAttempted=!0),this.monitor.recordConnect(),this.subscriptions.reload();case a.disconnect:return s.log(`Disconnecting. Reason: ${i}`),this.close({allowReconnect:o});case a.ping:return this.monitor.recordPing();case a.confirmation:return this.subscriptions.confirmSubscription(e),this.reconnectAttempted?(this.reconnectAttempted=!1,this.subscriptions.notify(e,"connected",{reconnected:!0})):this.subscriptions.notify(e,"connected",{reconnected:!1});case a.rejection:return this.subscriptions.reject(e);default:return this.subscriptions.notify(e,"received",n)}},open(){if(s.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return s.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(t){if(s.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){s.log("WebSocket onerror event")}};const g=function(t,e){if(null!=e)for(let n in e){const i=e[n];t[n]=i}return t};class f{constructor(t,e={},n){this.consumer=t,this.identifier=JSON.stringify(e),g(this,n)}perform(t,e={}){return e.action=t,this.send(e)}send(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}}class m{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){-1==this.pendingSubscriptions.indexOf(t)?(s.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):s.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){s.log(`SubscriptionGuarantor forgetting ${t.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter((e=>e!==t))}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout((()=>{this.subscriptions&&"function"===typeof this.subscriptions.subscribe&&this.pendingSubscriptions.map((t=>{s.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)}))}),500)}}class b{constructor(t){this.consumer=t,this.guarantor=new m(this),this.subscriptions=[]}create(t,e){const n=t,i="object"===typeof n?n:{channel:n},s=new f(this.consumer,i,e);return this.add(s)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map((t=>(this.forget(t),this.notify(t,"rejected"),t)))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter((e=>e!==t)),t}findAll(t){return this.subscriptions.filter((e=>e.identifier===t))}reload(){return this.subscriptions.map((t=>this.subscribe(t)))}notifyAll(t,...e){return this.subscriptions.map((n=>this.notify(n,t,...e)))}notify(t,e,...n){let i;return i="string"===typeof t?this.findAll(t):[t],i.map((t=>"function"===typeof t[e]?t[e](...n):void 0))}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){s.log(`Subscription confirmed ${t}`),this.findAll(t).map((t=>this.guarantor.forget(t)))}sendCommand(t,e){const{identifier:n}=t;return this.consumer.send({command:e,identifier:n})}}class S{constructor(t){this._url=t,this.subscriptions=new b(this),this.connection=new p(this),this.subprotocols=[]}get url(){return v(this._url)}send(t){return this.connection.send(t)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}addSubProtocol(t){this.subprotocols=[...this.subprotocols,t]}}function v(t){if("function"===typeof t&&(t=t()),t&&!/^wss?:/i.test(t)){const e=document.createElement("a");return e.href=t,e.href=e.href,e.protocol=e.protocol.replace("http","ws"),e.href}return t}function y(t=w("url")||l.default_mount_path){return new S(t)}function w(t){const e=document.head.querySelector(`meta[name='action-cable-${t}']`);if(e)return e.getAttribute("content")}},473:(t,e,n)=>{var i=n(831),s=n(8689),o=n(4282),r=o("match");t.exports=function(t){var e;return i(t)&&(void 0!==(e=t[r])?!!e:"RegExp"===s(t))}},3113:(t,e,n)=>{var i=n(9944),s=n(4418),o=n(4578),r=n(4932),c=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||"flags"in c||s(t,"flags")||!o(c,t)?e:i(r,t)}},8715:(t,e,n)=>{var i=n(5613),s=n(9944),o=n(6881),r=n(9509),c=n(4188),l=n(4318),a=n(473),u=n(2618),h=n(2913),d=n(3113),p=n(1113),g=n(4282),f=n(1942),m=g("replace"),b=TypeError,S=o("".indexOf),v=o("".replace),y=o("".slice),w=Math.max;i({target:"String",proto:!0},{replaceAll:function(t,e){var n,i,o,g,A,D,C,T,k,N,$=r(this),_=0,R="";if(!l(t)){if(n=a(t),n&&(i=u(r(d(t))),!~S(i,"g")))throw new b("`.replaceAll` does not allow non-global regexes");if(o=h(t,m),o)return s(o,t,$,e);if(f&&n)return v(u($),t,e)}g=u($),A=u(t),D=c(e),D||(e=u(e)),C=A.length,T=w(1,C),k=S(g,A);while(-1!==k)N=D?u(e(A,k,g)):p(A,g,k,[],void 0,e),R+=y(g,_,k)+N,_=k+C,k=k+T>g.length?-1:S(g,A,k+T);return _<g.length&&(R+=y(g,_)),R}})},7134:(t,e,n)=>{n.d(e,{H:()=>s});var i=n(8997);function s(t,e){const n=e?.additionalDigits??2,i=a(t);let s;if(i.date){const t=u(i.date,n);s=h(t.restDateString,t.year)}if(!s||isNaN(s.getTime()))return new Date(NaN);const o=s.getTime();let r,c=0;if(i.time&&(c=p(i.time),isNaN(c)))return new Date(NaN);if(!i.timezone){const t=new Date(o+c),e=new Date(0);return e.setFullYear(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()),e.setHours(t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),t.getUTCMilliseconds()),e}return r=f(i.timezone),isNaN(r)?new Date(NaN):new Date(o+c+r)}const o={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},r=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,c=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,l=/^([+-])(\d{2})(?::?(\d{2}))?$/;function a(t){const e={},n=t.split(o.dateTimeDelimiter);let i;if(n.length>2)return e;if(/:/.test(n[0])?i=n[0]:(e.date=n[0],i=n[1],o.timeZoneDelimiter.test(e.date)&&(e.date=t.split(o.timeZoneDelimiter)[0],i=t.substr(e.date.length,t.length))),i){const t=o.timezone.exec(i);t?(e.time=i.replace(t[1],""),e.timezone=t[1]):e.time=i}return e}function u(t,e){const n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+e)+"})|(\\d{2}|[+-]\\d{"+(2+e)+"})$)"),i=t.match(n);if(!i)return{year:NaN,restDateString:""};const s=i[1]?parseInt(i[1]):null,o=i[2]?parseInt(i[2]):null;return{year:null===o?s:100*o,restDateString:t.slice((i[1]||i[2]).length)}}function h(t,e){if(null===e)return new Date(NaN);const n=t.match(r);if(!n)return new Date(NaN);const i=!!n[4],s=d(n[1]),o=d(n[2])-1,c=d(n[3]),l=d(n[4]),a=d(n[5])-1;if(i)return w(e,l,a)?m(e,l,a):new Date(NaN);{const t=new Date(0);return v(e,o,c)&&y(e,s)?(t.setUTCFullYear(e,o,Math.max(s,c)),t):new Date(NaN)}}function d(t){return t?parseInt(t):1}function p(t){const e=t.match(c);if(!e)return NaN;const n=g(e[1]),s=g(e[2]),o=g(e[3]);return A(n,s,o)?n*i.s0+s*i.Cg+1e3*o:NaN}function g(t){return t&&parseFloat(t.replace(",","."))||0}function f(t){if("Z"===t)return 0;const e=t.match(l);if(!e)return 0;const n="+"===e[1]?-1:1,s=parseInt(e[2]),o=e[3]&&parseInt(e[3])||0;return D(s,o)?n*(s*i.s0+o*i.Cg):NaN}function m(t,e,n){const i=new Date(0);i.setUTCFullYear(t,0,4);const s=i.getUTCDay()||7,o=7*(e-1)+n+1-s;return i.setUTCDate(i.getUTCDate()+o),i}const b=[31,null,31,30,31,30,31,31,30,31,30,31];function S(t){return t%400===0||t%4===0&&t%100!==0}function v(t,e,n){return e>=0&&e<=11&&n>=1&&n<=(b[e]||(S(t)?29:28))}function y(t,e){return e>=1&&e<=(S(t)?366:365)}function w(t,e,n){return e>=1&&e<=53&&n>=0&&n<=6}function A(t,e,n){return 24===t?0===e&&0===n:n>=0&&n<60&&e>=0&&e<60&&t>=0&&t<25}function D(t,e){return e>=0&&e<=59}}}]);
2
2
  //# sourceMappingURL=467.js.map