openc3-tool-admin 5.0.7 → 5.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/tools/admin/js/107.js +2 -0
  3. data/tools/admin/js/107.js.map +1 -0
  4. data/tools/admin/js/113.js +2 -0
  5. data/tools/admin/js/113.js.map +1 -0
  6. data/tools/admin/js/179.js +1 -1
  7. data/tools/admin/js/179.js.map +1 -1
  8. data/tools/admin/js/249.js +2 -0
  9. data/tools/admin/js/249.js.map +1 -0
  10. data/tools/admin/js/262.js +1 -1
  11. data/tools/admin/js/372.js +1 -1
  12. data/tools/admin/js/388.js +2 -0
  13. data/tools/admin/js/388.js.map +1 -0
  14. data/tools/admin/js/400.js +2 -0
  15. data/tools/admin/js/400.js.map +1 -0
  16. data/tools/admin/js/43.js +2 -0
  17. data/tools/admin/js/43.js.map +1 -0
  18. data/tools/admin/js/637.js +2 -0
  19. data/tools/admin/js/637.js.map +1 -0
  20. data/tools/admin/js/758.js +2 -0
  21. data/tools/admin/js/758.js.map +1 -0
  22. data/tools/admin/js/780.js +2 -0
  23. data/tools/admin/js/780.js.map +1 -0
  24. data/tools/admin/js/824.js +2 -0
  25. data/tools/admin/js/824.js.map +1 -0
  26. data/tools/admin/js/851.js +4 -0
  27. data/tools/admin/js/851.js.map +1 -0
  28. data/tools/admin/js/909.js +2 -0
  29. data/tools/admin/js/909.js.map +1 -0
  30. data/tools/admin/js/app.js +1 -1
  31. data/tools/admin/js/app.js.map +1 -1
  32. metadata +26 -28
  33. data/tools/admin/js/108.js +0 -2
  34. data/tools/admin/js/108.js.map +0 -1
  35. data/tools/admin/js/217.js +0 -2
  36. data/tools/admin/js/217.js.map +0 -1
  37. data/tools/admin/js/248.js +0 -2
  38. data/tools/admin/js/248.js.map +0 -1
  39. data/tools/admin/js/251.js +0 -2
  40. data/tools/admin/js/251.js.map +0 -1
  41. data/tools/admin/js/32.js +0 -2
  42. data/tools/admin/js/32.js.map +0 -1
  43. data/tools/admin/js/354.js +0 -2
  44. data/tools/admin/js/354.js.map +0 -1
  45. data/tools/admin/js/37.js +0 -2
  46. data/tools/admin/js/37.js.map +0 -1
  47. data/tools/admin/js/449.js +0 -2
  48. data/tools/admin/js/449.js.map +0 -1
  49. data/tools/admin/js/629.js +0 -2
  50. data/tools/admin/js/629.js.map +0 -1
  51. data/tools/admin/js/699.js +0 -2
  52. data/tools/admin/js/699.js.map +0 -1
  53. data/tools/admin/js/844.js +0 -4
  54. data/tools/admin/js/844.js.map +0 -1
  55. data/tools/admin/js/850.js +0 -2
  56. data/tools/admin/js/850.js.map +0 -1
  57. data/tools/admin/js/957.js +0 -2
  58. data/tools/admin/js/957.js.map +0 -1
@@ -1,2 +0,0 @@
1
- (self["webpackChunk_openc3_tool_admin"]=self["webpackChunk_openc3_tool_admin"]||[]).push([[248],{3093:function(e,n,t){"use strict";t(8188),t(8233);var l=t(9644),o=t.n(l),s=t(4091),r=new s["default"],a=o().create({baseURL:location.origin,timeout:6e4,params:{}});a.interceptors.response.use((function(e){return e}),(function(e){if(e.response){if(401===e.response.status)delete localStorage.openc3Token,OpenC3Auth.login(location.href);else{var n,t,l,o,s,a,i,c,u,d;if(localStorage.axiosIgnoreResponse===e.response.status.toString())return Promise.reject(e);var m="HTTP ".concat(e.response.status," - ");if(null!==(n=e.response)&&void 0!==n&&n.statusText&&(m+="".concat(e.response.statusText," ")),null!==(t=e.response)&&void 0!==t&&null!==(l=t.config)&&void 0!==l&&l.data&&(m+="".concat(e.response.config.data," ")),null!==(o=e.response)&&void 0!==o&&null!==(s=o.data)&&void 0!==s&&s.message)m+="".concat(e.response.data.message);else if(null!==(a=e.response)&&void 0!==a&&null!==(i=a.data)&&void 0!==i&&i.exception)m+="".concat(e.response.data.exception);else if(null!==(c=e.response)&&void 0!==c&&null!==(u=c.data)&&void 0!==u&&null!==(d=u.error)&&void 0!==d&&d.message)e.response.data.error.class&&(m+="".concat(e.response.data.error.class," ")),m+="".concat(e.response.data.error.message);else{var A;m+="".concat(null===(A=e.response)||void 0===A?void 0:A.data)}r.$notify.serious({title:"Network error",body:m})}throw e}throw e})),n["Z"]=a},6748:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return L}});var l=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",[t("v-card",[t("v-card-title",[e._v(" Reset suppressed warnings ")]),t("v-card-subtitle",[e._v(' This resets "don\'t show this again" dialogs on this browser ')]),t("v-card-text",{staticClass:"pb-0 ml-2"},[e.suppressedWarnings.length?[t("v-checkbox",{staticClass:"mt-0",attrs:{label:"Select all","data-test":"select-all-suppressed-warnings"},model:{value:e.selectAllSuppressedWarnings,callback:function(n){e.selectAllSuppressedWarnings=n},expression:"selectAllSuppressedWarnings"}}),e._l(e.suppressedWarnings,(function(n){return t("v-checkbox",{key:n.key,staticClass:"mt-0",attrs:{label:n.text,value:n.key,dense:""},model:{value:e.selectedSuppressedWarnings,callback:function(n){e.selectedSuppressedWarnings=n},expression:"selectedSuppressedWarnings"}})}))]:[e._v(" No warnings to reset ")]],2),t("v-card-actions",[t("v-btn",{staticClass:"ml-2",attrs:{disabled:!e.selectedSuppressedWarnings.length,color:"warning",text:"","data-test":"reset-suppressed-warnings"},on:{click:e.resetSuppressedWarnings}},[e._v(" Reset ")])],1)],1),t("v-divider"),t("v-card",[t("v-card-title",[e._v(" Clear recent configs ")]),t("v-card-subtitle",[e._v(" This clears the most recently saved/loaded tool configs on this browser ")]),t("v-card-text",{staticClass:"pb-0 ml-2"},[e.lastConfigs.length?[t("v-checkbox",{staticClass:"mt-0",attrs:{label:"Select all","data-test":"select-all-last-configs"},model:{value:e.selectAllLastConfigs,callback:function(n){e.selectAllLastConfigs=n},expression:"selectAllLastConfigs"}}),e._l(e.lastConfigs,(function(n){return t("v-checkbox",{key:n.key,staticClass:"mt-0",attrs:{label:n.text+" ("+n.value+")",value:n.key,dense:""},model:{value:e.selectedLastConfigs,callback:function(n){e.selectedLastConfigs=n},expression:"selectedLastConfigs"}})}))]:[e._v(" No configs to clear ")]],2),t("v-card-actions",[t("v-btn",{staticClass:"ml-2",attrs:{disabled:!e.selectedLastConfigs.length,color:"warning",text:"","data-test":"clear-last-configs"},on:{click:e.clearLastConfigs}},[e._v(" Clear ")])],1)],1),t("v-divider"),t("classification-banner-settings"),t("v-divider"),t("v-card",[t("v-card-title",[e._v(" Source code URL ")]),t("v-card-subtitle",[e._v(' This sets the URL for the "Source" link in the footer. This is required under the AGPL license. ')]),t("v-card-text",{staticClass:"pb-0 ml-2"},[t("v-text-field",{attrs:{label:"Source URL","data-test":"source-url"},model:{value:e.sourceUrl,callback:function(n){e.sourceUrl=n},expression:"sourceUrl"}})],1),t("v-card-actions",[t("v-container",{staticClass:"pt-0"},[t("v-row",{attrs:{dense:""}},[t("v-col",{staticClass:"pl-0"},[t("v-btn",{attrs:{color:"success",text:"","data-test":"save-source-url"},on:{click:e.saveSourceUrl}},[e._v(" Save ")])],1)],1),t("v-alert",{attrs:{type:"error",dismissible:"",dense:""},model:{value:e.errorSaving,callback:function(n){e.errorSaving=n},expression:"errorSaving"}},[e._v(" Error saving ")]),t("v-alert",{attrs:{type:"success",dismissible:"",dense:""},model:{value:e.successSaving,callback:function(n){e.successSaving=n},expression:"successSaving"}},[e._v(" Saved! (Refresh the page to see changes) ")])],1)],1)],1),t("v-divider"),t("v-card",[t("v-card-title",[e._v(" Rubygems URL ")]),t("v-card-subtitle",[e._v(" This sets the URL for installing dependency rubygems. Also used for rubygem discovery. ")]),t("v-card-text",{staticClass:"pb-0 ml-2"},[t("v-text-field",{attrs:{label:"Rubygems URL","data-test":"rubygems-url"},model:{value:e.rubygemsUrl,callback:function(n){e.rubygemsUrl=n},expression:"rubygemsUrl"}})],1),t("v-card-actions",[t("v-container",{staticClass:"pt-0"},[t("v-row",{attrs:{dense:""}},[t("v-col",{staticClass:"pl-0"},[t("v-btn",{attrs:{color:"success",text:"","data-test":"save-rubygems-url"},on:{click:e.saveRubygemsUrl}},[e._v(" Save ")])],1)],1),t("v-alert",{attrs:{type:"error",dismissible:"",dense:""},model:{value:e.errorSaving,callback:function(n){e.errorSaving=n},expression:"errorSaving"}},[e._v(" Error saving ")]),t("v-alert",{attrs:{type:"success",dismissible:"",dense:""},model:{value:e.successSaving,callback:function(n){e.successSaving=n},expression:"successSaving"}},[e._v(" Saved! (Refresh the page to see changes) ")])],1)],1)],1)],1)},o=[],s=t(1150);t(3450),t(5342),t(8188),t(4769),t(4112),t(7950),t(5940),t(1639),t(8319),t(2501),t(1372);function r(e){throw new TypeError('"'+e+'" is read-only')}var a=t(578),i=t(6625),c=t(5627),u=t(7105),d=t(6455),m=t(1901),A=(t(1245),t(3675),t(4898),t(5825),t(7170),t(8857),t(8329),t(6279),t(427),t(1159),t(2516),t(4349),t(5273),t(6729),t(1801),t(574),t(5787),t(9271),t(3160),t(5688),t(3157),t(1700),t(315),t(556),t(9224),t(6297),t(8882),t(7233),t(8673),t(5734),t(8233),t(3093)),v=function(){function e(){(0,u.Z)(this,e),(0,m.Z)(this,"id",1)}return(0,d.Z)(e,[{key:"exec",value:function(){var e=(0,c.Z)((0,i.Z)().mark((function e(n,t){var l,o,s,r=arguments;return(0,i.Z)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return l=r.length>2&&void 0!==r[2]?r[2]:{},e.prev=1,e.next=4,OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity);case 4:e.next=9;break;case 6:e.prev=6,e.t0=e["catch"](1),OpenC3Auth.login();case 9:return this.id=this.id+1,e.prev=10,l["scope"]=localStorage.scope,e.next=14,A.Z.post("/openc3-api/api",{jsonrpc:"2.0",method:n,params:t,id:this.id,keyword_params:l},{headers:{Authorization:localStorage.openc3Token,"Content-Type":"application/json-rpc"}});case 14:return o=e.sent,e.abrupt("return",o.data.result);case 18:throw e.prev=18,e.t1=e["catch"](10),s=new Error,e.t1.response?(s.name=e.t1.response.data.error.data.class,s.message=e.t1.response.data.error.data.message):e.t1.request?(s.name="Request error",s.message="Request error, no response received"):s.name="Unknown error",s;case 23:case"end":return e.stop()}}),e,this,[[1,6],[10,18]])})));function n(n,t){return e.apply(this,arguments)}return n}()},{key:"decode_openc3_type",value:function(e){if(null!==e&&"object"===(0,a.Z)(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}},{key:"encode_openc3_type",value:function(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}},{key:"get_all_interface_info",value:function(){return this.exec("get_all_interface_info",[])}},{key:"connect_interface",value:function(e){return this.exec("connect_interface",[e])}},{key:"disconnect_interface",value:function(e){return this.exec("disconnect_interface",[e])}},{key:"get_all_router_info",value:function(){return this.exec("get_all_router_info",[])}},{key:"connect_router",value:function(e){return this.exec("connect_router",[e])}},{key:"disconnect_router",value:function(e){return this.exec("disconnect_router",[e])}},{key:"get_all_target_info",value:function(){return this.exec("get_all_target_info",[])}},{key:"get_tlm_cnts",value:function(e){return this.exec("get_tlm_cnts",[e])}},{key:"get_item",value:function(e,n,t){return this.exec("get_item",[e,n,t])}},{key:"get_parameter",value:function(e,n,t){return this.exec("get_parameter",[e,n,t])}},{key:"get_all_packet_logger_info",value:function(){return this.exec("get_all_packet_logger_info",[])}},{key:"start_logging",value:function(){return this.exec("start_logging",[])}},{key:"stop_logging",value:function(){return this.exec("stop_logging",[])}},{key:"start_cmd_log",value:function(e){return this.exec("start_cmd_log",[e])}},{key:"start_tlm_log",value:function(e){return this.exec("start_tlm_log",[e])}},{key:"stop_cmd_log",value:function(e){return this.exec("stop_cmd_log",[e])}},{key:"stop_tlm_log",value:function(e){return this.exec("stop_tlm_log",[e])}},{key:"get_server_status",value:function(){return this.exec("get_server_status",[])}},{key:"get_limits_sets",value:function(){return this.exec("get_limits_sets",[])}},{key:"get_limits_set",value:function(){return this.exec("get_limits_set",[])}},{key:"set_limits_set",value:function(e){return this.exec("set_limits_set",[e])}},{key:"get_background_tasks",value:function(){return this.exec("get_background_tasks",[])}},{key:"start_background_task",value:function(e){return this.exec("start_background_task",[e])}},{key:"stop_background_task",value:function(e){return this.exec("stop_background_task",[e])}},{key:"get_oldest_logfile",value:function(){return this.exec("get_oldest_logfile",[])}},{key:"get_target",value:function(e){return this.exec("get_target",[e])}},{key:"get_target_list",value:function(){return this.exec("get_target_list",[])}},{key:"get_telemetry",value:function(e,n){return this.exec("get_telemetry",[e,n])}},{key:"get_all_telemetry",value:function(e){return this.exec("get_all_telemetry",[e])}},{key:"get_all_telemetry_names",value:function(e){return this.exec("get_all_telemetry_names",[e])}},{key:"get_tlm_packet",value:function(){var e=(0,c.Z)((0,i.Z)().mark((function e(n,t,l){var o,s,r,a;return(0,i.Z)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.exec("get_tlm_packet",[n,t],{type:l});case 2:if(o=e.sent,null!=o)for(s=o.length,r=null,a=0;a<s;a++)r=this.decode_openc3_type(o[a][1]),null!==r&&(o[a][1]=r);return e.abrupt("return",o);case 5:case"end":return e.stop()}}),e,this)})));function n(n,t,l){return e.apply(this,arguments)}return n}()},{key:"get_packet_derived_items",value:function(e,n){return this.exec("get_packet_derived_items",[e,n])}},{key:"get_tlm_buffer",value:function(e,n){return this.exec("get_tlm_buffer",[e,n])}},{key:"get_tlm_values",value:function(){var e=(0,c.Z)((0,i.Z)().mark((function e(n){var t,l,o,s;return(0,i.Z)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.exec("get_tlm_values",[n]);case 2:for(t=e.sent,l=t[0].length,o=null,s=0;s<l;s++)o=this.decode_openc3_type(t[0][s]),null!==o&&(t[0][s]=o);return e.abrupt("return",t);case 7:case"end":return e.stop()}}),e,this)})));function n(n){return e.apply(this,arguments)}return n}()},{key:"get_limits",value:function(e,n,t){return this.exec("get_limits",[e,n,t])}},{key:"tlm",value:function(){var e=(0,c.Z)((0,i.Z)().mark((function e(n,t,l){var o,s;return(0,i.Z)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.exec("tlm",[n,t,l]);case 2:return o=e.sent,s=this.decode_openc3_type(o),null!==s&&r("data"),e.abrupt("return",o);case 6:case"end":return e.stop()}}),e,this)})));function n(n,t,l){return e.apply(this,arguments)}return n}()},{key:"get_all_commands",value:function(e){return this.exec("get_all_commands",[e])}},{key:"get_all_command_names",value:function(e){return this.exec("get_all_command_names",[e])}},{key:"get_command",value:function(e,n){return this.exec("get_command",[e,n])}},{key:"get_cmd_cnts",value:function(e){return this.exec("get_cmd_cnts",[e])}},{key:"get_cmd_value",value:function(e,n,t){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"CONVERTED";return this.exec("get_cmd_value",[e,n,t,l])}},{key:"get_cmd_buffer",value:function(e,n){return this.exec("get_cmd_buffer",[e,n])}},{key:"_cmd",value:function(e,n,t,l){var o=null;for(var s in l)Object.prototype.hasOwnProperty.call(l,s)&&(o=this.encode_openc3_type(l[s]),null!==o&&(l[s]=o));return this.exec(e,[n,t,l])}},{key:"get_cmd_hazardous",value:function(e,n,t){return void 0===n?this.exec("get_cmd_hazardous",e):this._cmd("get_cmd_hazardous",e,n,t)}},{key:"cmd",value:function(e,n,t){return void 0===n?this.exec("cmd",e):this._cmd("cmd",e,n,t)}},{key:"cmd_no_range_check",value:function(e,n,t){return void 0===n?this.exec("cmd_no_range_check",e):this._cmd("cmd_no_range_check",e,n,t)}},{key:"cmd_raw",value:function(e,n,t){return void 0===n?this.exec("cmd_raw",e):this._cmd("cmd_raw",e,n,t)}},{key:"cmd_raw_no_range_check",value:function(e,n,t){return void 0===n?this.exec("cmd_raw_no_range_check",e):this._cmd("cmd_raw_no_range_check",e,n,t)}},{key:"cmd_no_hazardous_check",value:function(e,n,t){return void 0===n?this.exec("cmd_no_hazardous_check",e):this._cmd("cmd_no_hazardous_check",e,n,t)}},{key:"cmd_no_checks",value:function(e,n,t){return void 0===n?this.exec("cmd_no_checks",e):this._cmd("cmd_no_checks",e,n,t)}},{key:"cmd_raw_no_hazardous_check",value:function(e,n,t){return void 0===n?this.exec("cmd_raw_no_hazardous_check",e):this._cmd("cmd_raw_no_hazardous_check",e,n,t)}},{key:"cmd_raw_no_checks",value:function(e,n,t){return void 0===n?this.exec("cmd_raw_no_checks",e):this._cmd("cmd_raw_no_checks",e,n,t)}},{key:"get_interface_names",value:function(){return this.exec("get_interface_names",[])}},{key:"send_raw",value:function(e,n){return this.exec("send_raw",[e,n])}},{key:"list_configs",value:function(e){return this.exec("list_configs",[e])}},{key:"load_config",value:function(e,n){return this.exec("load_config",[e,n])}},{key:"save_config",value:function(e,n,t){return this.exec("save_config",[e,n,t])}},{key:"delete_config",value:function(e,n){return this.exec("delete_config",[e,n])}},{key:"get_out_of_limits",value:function(){return this.exec("get_out_of_limits",[])}},{key:"get_overall_limits_state",value:function(e){return this.exec("get_overall_limits_state",[e])}},{key:"list_settings",value:function(){return this.exec("list_settings",[])}},{key:"get_all_settings",value:function(){return this.exec("get_all_settings",[])}},{key:"get_setting",value:function(e){return this.exec("get_setting",[e])}},{key:"get_settings",value:function(e){return this.exec("get_settings",e)}},{key:"save_setting",value:function(e,n){return this.exec("save_setting",[e,n])}},{key:"hashString",value:function(){var e=(0,c.Z)((0,i.Z)().mark((function e(n){var t,l,o;return(0,i.Z)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!window.isSecureContext){e.next=7;break}return t=(new TextEncoder).encode(n),e.next=4,crypto.subtle.digest("SHA-256",t);case 4:return l=e.sent,o=new Uint8Array(l),e.abrupt("return",Array.from(o).map((function(e){return e.toString(16).padStart(2,"0")})).join(""));case 7:case"end":return e.stop()}}),e)})));function n(n){return e.apply(this,arguments)}return n}()}]),e}(),p=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("v-card",[t("v-card-title",[e._v("Classification Banner Settings")]),t("v-card-text",{staticClass:"pb-0"},[t("v-alert",{attrs:{type:"error",dismissible:"",dense:""},model:{value:e.errorLoading,callback:function(n){e.errorLoading=n},expression:"errorLoading"}},[e._v(" Error loading previous configuration ")]),t("v-container",{staticClass:"pb-0"},[t("v-row",{attrs:{dense:""}},[t("v-col",[t("v-text-field",{attrs:{label:"Text","data-test":"classification-banner-text"},model:{value:e.text,callback:function(n){e.text=n},expression:"text"}})],1)],1),t("v-row",{attrs:{dense:""}},[t("v-col",[t("v-select",{attrs:{label:"Background color",items:e.colors,"data-test":"classification-banner-background-color"},scopedSlots:e._u([e.selectedBackgroundColor?{key:"prepend-inner",fn:function(){return[t("v-icon",{attrs:{color:e.selectedBackgroundColor}},[e._v(" mdi-square ")])]},proxy:!0}:null,{key:"item",fn:function(n){return[n.item.value?t("v-icon",{staticClass:"pr-1",attrs:{color:n.item.value}},[e._v(" mdi-square ")]):e._e(),e._v(" "+e._s(n.item.text)+" ")]}}],null,!0),model:{value:e.selectedBackgroundColor,callback:function(n){e.selectedBackgroundColor=n},expression:"selectedBackgroundColor"}})],1),t("v-col",[t("v-text-field",{attrs:{label:"Custom background color",hint:e.customColorHint,disabled:!1!==e.selectedBackgroundColor,rules:[e.rules.customColor],"data-test":"classification-banner-custom-background-color"},scopedSlots:e._u([{key:"prepend-inner",fn:function(){return[t("v-icon",{directives:[{name:"show",rawName:"v-show",value:!e.selectedBackgroundColor,expression:"!selectedBackgroundColor"}],attrs:{color:e.customBackgroundColor}},[e._v(" mdi-square ")])]},proxy:!0}]),model:{value:e.customBackgroundColor,callback:function(n){e.customBackgroundColor=n},expression:"customBackgroundColor"}})],1),t("v-col",[t("v-select",{attrs:{label:"Font color",items:e.colors,"data-test":"classification-banner-font-color"},scopedSlots:e._u([e.selectedFontColor?{key:"prepend-inner",fn:function(){return[t("v-icon",{directives:[{name:"show",rawName:"v-show",value:e.selectedFontColor,expression:"selectedFontColor"}],attrs:{color:e.selectedFontColor}},[e._v(" mdi-square ")])]},proxy:!0}:null,{key:"item",fn:function(n){return[n.item.value?t("v-icon",{staticClass:"pr-1",attrs:{color:n.item.value}},[e._v(" mdi-square ")]):e._e(),e._v(" "+e._s(n.item.text)+" ")]}}],null,!0),model:{value:e.selectedFontColor,callback:function(n){e.selectedFontColor=n},expression:"selectedFontColor"}})],1),t("v-col",[t("v-text-field",{attrs:{label:"Custom font color",hint:e.customColorHint,disabled:!1!==e.selectedFontColor,rules:[e.rules.customColor],"data-test":"classification-banner-custom-font-color"},scopedSlots:e._u([{key:"prepend-inner",fn:function(){return[t("v-icon",{directives:[{name:"show",rawName:"v-show",value:!e.selectedFontColor,expression:"!selectedFontColor"}],attrs:{color:e.customFontColor}},[e._v(" mdi-square ")])]},proxy:!0}]),model:{value:e.customFontColor,callback:function(n){e.customFontColor=n},expression:"customFontColor"}})],1)],1),t("v-row",{attrs:{dense:""}},[t("v-col",[t("v-switch",{attrs:{label:"Display top banner","data-test":"display-top-banner"},model:{value:e.displayTopBanner,callback:function(n){e.displayTopBanner=n},expression:"displayTopBanner"}})],1),t("v-col",[t("v-text-field",{attrs:{label:"Top height",disabled:!e.displayTopBanner,type:"number",suffix:"px","data-test":"classification-banner-top-height"},model:{value:e.topHeight,callback:function(n){e.topHeight=n},expression:"topHeight"}})],1),t("v-col",[t("v-switch",{attrs:{label:"Display bottom banner","data-test":"display-bottom-banner"},model:{value:e.displayBottomBanner,callback:function(n){e.displayBottomBanner=n},expression:"displayBottomBanner"}})],1),t("v-col",[t("v-text-field",{attrs:{label:"Bottom height",disabled:!e.displayBottomBanner,type:"number",suffix:"px","data-test":"classification-banner-bottom-height"},model:{value:e.bottomHeight,callback:function(n){e.bottomHeight=n},expression:"bottomHeight"}})],1)],1)],1)],1),t("v-card-actions",[t("v-container",{staticClass:"pt-0"},[t("v-row",{attrs:{dense:""}},[t("v-col",{staticClass:"pl-0"},[t("v-btn",{attrs:{disabled:!e.formValid,color:"success",text:"","data-test":"save-classification-banner"},on:{click:e.save}},[e._v(" Save ")])],1)],1),t("v-alert",{attrs:{type:"error",dismissible:"",dense:""},model:{value:e.errorSaving,callback:function(n){e.errorSaving=n},expression:"errorSaving"}},[e._v(" Error saving ")]),t("v-alert",{attrs:{type:"success",dismissible:"",dense:""},model:{value:e.successSaving,callback:function(n){e.successSaving=n},expression:"successSaving"}},[e._v(" Saved! (Refresh the page to see changes) ")])],1)],1)],1)},g=[];t(1850),t(6710),t(9644);function f(){var e="/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/ClassificationBannerSettings.vue",n="7fadd344af84d54a38982cf727ae8a17ac0d96d8",t=new Function("return this")(),l="__coverage__",o={path:"/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/ClassificationBannerSettings.vue",statementMap:{0:{start:{line:188,column:20},end:{line:188,column:43}},1:{start:{line:191,column:4},end:{line:251,column:5}},2:{start:{line:246,column:10},end:{line:248,column:11}},3:{start:{line:255,column:6},end:{line:262,column:8}},4:{start:{line:265,column:6},end:{line:270,column:7}},5:{start:{line:275,column:6},end:{line:277,column:7}},6:{start:{line:276,column:8},end:{line:276,column:40}},7:{start:{line:280,column:6},end:{line:282,column:7}},8:{start:{line:281,column:8},end:{line:281,column:46}},9:{start:{line:286,column:4},end:{line:286,column:30}},10:{start:{line:287,column:4},end:{line:287,column:15}},11:{start:{line:291,column:6},end:{line:322,column:10}},12:{start:{line:294,column:10},end:{line:294,column:35}},13:{start:{line:295,column:10},end:{line:317,column:11}},14:{start:{line:296,column:27},end:{line:296,column:47}},15:{start:{line:297,column:12},end:{line:297,column:35}},16:{start:{line:298,column:12},end:{line:298,column:45}},17:{start:{line:299,column:12},end:{line:299,column:51}},18:{start:{line:300,column:12},end:{line:300,column:58}},19:{start:{line:301,column:12},end:{line:301,column:64}},20:{start:{line:302,column:12},end:{line:310,column:13}},21:{start:{line:306,column:14},end:{line:306,column:65}},22:{start:{line:307,column:14},end:{line:307,column:50}},23:{start:{line:309,column:14},end:{line:309,column:67}},24:{start:{line:311,column:12},end:{line:316,column:13}},25:{start:{line:312,column:14},end:{line:312,column:53}},26:{start:{line:313,column:14},end:{line:313,column:44}},27:{start:{line:315,column:14},end:{line:315,column:55}},28:{start:{line:321,column:10},end:{line:321,column:34}},29:{start:{line:325,column:6},end:{line:334,column:10}},30:{start:{line:328,column:10},end:{line:328,column:34}},31:{start:{line:329,column:10},end:{line:329,column:35}},32:{start:{line:333,column:10},end:{line:333,column:33}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:190,column:2},end:{line:190,column:3}},loc:{start:{line:190,column:9},end:{line:252,column:3}},line:190},1:{name:"(anonymous_1)",decl:{start:{line:245,column:21},end:{line:245,column:22}},loc:{start:{line:245,column:32},end:{line:249,column:9}},line:245},2:{name:"(anonymous_2)",decl:{start:{line:254,column:13},end:{line:254,column:14}},loc:{start:{line:254,column:25},end:{line:263,column:5}},line:254},3:{name:"(anonymous_3)",decl:{start:{line:264,column:15},end:{line:264,column:16}},loc:{start:{line:264,column:27},end:{line:271,column:5}},line:264},4:{name:"(anonymous_4)",decl:{start:{line:274,column:21},end:{line:274,column:22}},loc:{start:{line:274,column:36},end:{line:278,column:5}},line:274},5:{name:"(anonymous_5)",decl:{start:{line:279,column:27},end:{line:279,column:28}},loc:{start:{line:279,column:42},end:{line:283,column:5}},line:279},6:{name:"(anonymous_6)",decl:{start:{line:285,column:2},end:{line:285,column:3}},loc:{start:{line:285,column:12},end:{line:288,column:3}},line:285},7:{name:"(anonymous_7)",decl:{start:{line:290,column:10},end:{line:290,column:11}},loc:{start:{line:290,column:22},end:{line:323,column:5}},line:290},8:{name:"(anonymous_8)",decl:{start:{line:293,column:14},end:{line:293,column:15}},loc:{start:{line:293,column:28},end:{line:318,column:9}},line:293},9:{name:"(anonymous_9)",decl:{start:{line:319,column:15},end:{line:319,column:16}},loc:{start:{line:319,column:26},end:{line:322,column:9}},line:319},10:{name:"(anonymous_10)",decl:{start:{line:324,column:10},end:{line:324,column:11}},loc:{start:{line:324,column:22},end:{line:335,column:5}},line:324},11:{name:"(anonymous_11)",decl:{start:{line:327,column:14},end:{line:327,column:15}},loc:{start:{line:327,column:28},end:{line:330,column:9}},line:327},12:{name:"(anonymous_12)",decl:{start:{line:331,column:15},end:{line:331,column:16}},loc:{start:{line:331,column:26},end:{line:334,column:9}},line:331}},branchMap:{0:{loc:{start:{line:247,column:12},end:{line:247,column:76}},type:"binary-expr",locations:[{start:{line:247,column:12},end:{line:247,column:52}},{start:{line:247,column:56},end:{line:247,column:76}}],line:247},1:{loc:{start:{line:257,column:19},end:{line:257,column:65}},type:"binary-expr",locations:[{start:{line:257,column:19},end:{line:257,column:41}},{start:{line:257,column:45},end:{line:257,column:65}}],line:257},2:{loc:{start:{line:259,column:10},end:{line:259,column:68}},type:"binary-expr",locations:[{start:{line:259,column:10},end:{line:259,column:38}},{start:{line:259,column:42},end:{line:259,column:68}}],line:259},3:{loc:{start:{line:260,column:19},end:{line:260,column:61}},type:"cond-expr",locations:[{start:{line:260,column:43},end:{line:260,column:57}},{start:{line:260,column:60},end:{line:260,column:61}}],line:260},4:{loc:{start:{line:261,column:22},end:{line:261,column:70}},type:"cond-expr",locations:[{start:{line:261,column:49},end:{line:261,column:66}},{start:{line:261,column:69},end:{line:261,column:70}}],line:261},5:{loc:{start:{line:266,column:8},end:{line:269,column:70}},type:"binary-expr",locations:[{start:{line:266,column:9},end:{line:266,column:31}},{start:{line:267,column:10},end:{line:267,column:63}},{start:{line:268,column:9},end:{line:268,column:37}},{start:{line:269,column:10},end:{line:269,column:69}}],line:266},6:{loc:{start:{line:275,column:6},end:{line:277,column:7}},type:"if",locations:[{start:{line:275,column:6},end:{line:277,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:275},7:{loc:{start:{line:275,column:10},end:{line:275,column:51}},type:"binary-expr",locations:[{start:{line:275,column:10},end:{line:275,column:13}},{start:{line:275,column:17},end:{line:275,column:27}},{start:{line:275,column:31},end:{line:275,column:51}}],line:275},8:{loc:{start:{line:280,column:6},end:{line:282,column:7}},type:"if",locations:[{start:{line:280,column:6},end:{line:282,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:280},9:{loc:{start:{line:280,column:10},end:{line:280,column:51}},type:"binary-expr",locations:[{start:{line:280,column:10},end:{line:280,column:13}},{start:{line:280,column:17},end:{line:280,column:27}},{start:{line:280,column:31},end:{line:280,column:51}}],line:280},10:{loc:{start:{line:295,column:10},end:{line:317,column:11}},type:"if",locations:[{start:{line:295,column:10},end:{line:317,column:11}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:295},11:{loc:{start:{line:302,column:12},end:{line:310,column:13}},type:"if",locations:[{start:{line:302,column:12},end:{line:310,column:13}},{start:{line:308,column:19},end:{line:310,column:13}}],line:302},12:{loc:{start:{line:303,column:14},end:{line:304,column:52}},type:"binary-expr",locations:[{start:{line:303,column:14},end:{line:303,column:36}},{start:{line:304,column:14},end:{line:304,column:52}}],line:303},13:{loc:{start:{line:311,column:12},end:{line:316,column:13}},type:"if",locations:[{start:{line:311,column:12},end:{line:316,column:13}},{start:{line:314,column:19},end:{line:316,column:13}}],line:311},14:{loc:{start:{line:311,column:16},end:{line:311,column:68}},type:"binary-expr",locations:[{start:{line:311,column:16},end:{line:311,column:32}},{start:{line:311,column:36},end:{line:311,column:68}}],line:311}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0],4:[0,0],5:[0,0,0,0],6:[0,0],7:[0,0,0],8:[0,0],9:[0,0,0],10:[0,0],11:[0,0],12:[0,0],13:[0,0],14:[0,0]},inputSourceMap:{version:3,sources:["ClassificationBannerSettings.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwLA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"ClassificationBannerSettings.vue",sourceRoot:"src/tools/OpenC3Admin",sourcesContent:['\x3c!--\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--\x3e\n\n<template>\n <v-card>\n <v-card-title>Classification Banner Settings</v-card-title>\n <v-card-text class="pb-0">\n <v-alert v-model="errorLoading" type="error" dismissible dense>\n Error loading previous configuration\n </v-alert>\n <v-container class="pb-0">\n <v-row dense>\n <v-col>\n <v-text-field\n label="Text"\n v-model="text"\n data-test="classification-banner-text"\n />\n </v-col>\n </v-row>\n <v-row dense>\n <v-col>\n <v-select\n label="Background color"\n :items="colors"\n v-model="selectedBackgroundColor"\n data-test="classification-banner-background-color"\n >\n <template v-slot:prepend-inner v-if="selectedBackgroundColor">\n <v-icon :color="selectedBackgroundColor"> mdi-square </v-icon>\n </template>\n <template v-slot:item="data">\n <v-icon\n :color="data.item.value"\n v-if="data.item.value"\n class="pr-1"\n >\n mdi-square\n </v-icon>\n {{ data.item.text }}\n </template>\n </v-select>\n </v-col>\n <v-col>\n <v-text-field\n label="Custom background color"\n :hint="customColorHint"\n :disabled="selectedBackgroundColor !== false"\n v-model="customBackgroundColor"\n :rules="[rules.customColor]"\n data-test="classification-banner-custom-background-color"\n >\n <template v-slot:prepend-inner>\n <v-icon\n v-show="!selectedBackgroundColor"\n :color="customBackgroundColor"\n >\n mdi-square\n </v-icon>\n </template>\n </v-text-field>\n </v-col>\n <v-col>\n <v-select\n label="Font color"\n :items="colors"\n v-model="selectedFontColor"\n data-test="classification-banner-font-color"\n >\n <template v-slot:prepend-inner v-if="selectedFontColor">\n <v-icon v-show="selectedFontColor" :color="selectedFontColor">\n mdi-square\n </v-icon>\n </template>\n <template slot="item" slot-scope="data">\n <v-icon\n v-if="data.item.value"\n :color="data.item.value"\n class="pr-1"\n >\n mdi-square\n </v-icon>\n {{ data.item.text }}\n </template>\n </v-select>\n </v-col>\n <v-col>\n <v-text-field\n label="Custom font color"\n :hint="customColorHint"\n :disabled="selectedFontColor !== false"\n v-model="customFontColor"\n :rules="[rules.customColor]"\n data-test="classification-banner-custom-font-color"\n >\n <template v-slot:prepend-inner>\n <v-icon v-show="!selectedFontColor" :color="customFontColor">\n mdi-square\n </v-icon>\n </template>\n </v-text-field>\n </v-col>\n </v-row>\n <v-row dense>\n <v-col>\n <v-switch\n label="Display top banner"\n v-model="displayTopBanner"\n data-test="display-top-banner"\n />\n </v-col>\n <v-col>\n <v-text-field\n label="Top height"\n :disabled="!displayTopBanner"\n type="number"\n suffix="px"\n v-model="topHeight"\n data-test="classification-banner-top-height"\n />\n </v-col>\n <v-col>\n <v-switch\n label="Display bottom banner"\n v-model="displayBottomBanner"\n data-test="display-bottom-banner"\n />\n </v-col>\n <v-col>\n <v-text-field\n label="Bottom height"\n :disabled="!displayBottomBanner"\n type="number"\n suffix="px"\n v-model="bottomHeight"\n data-test="classification-banner-bottom-height"\n />\n </v-col>\n </v-row>\n </v-container>\n </v-card-text>\n <v-card-actions>\n <v-container class="pt-0">\n <v-row dense>\n <v-col class="pl-0">\n <v-btn\n :disabled="!formValid"\n @click="save"\n color="success"\n text\n data-test="save-classification-banner"\n >\n Save\n </v-btn>\n </v-col>\n </v-row>\n <v-alert v-model="errorSaving" type="error" dismissible dense>\n Error saving\n </v-alert>\n <v-alert v-model="successSaving" type="success" dismissible dense>\n Saved! (Refresh the page to see changes)\n </v-alert>\n </v-container>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport axios from \'axios\'\nimport { OpenC3Api } from \'@openc3/tool-common/src/services/openc3-api\'\n\nconst settingName = \'classification_banner\'\nexport default {\n data() {\n return {\n api: null,\n errorLoading: false,\n errorSaving: false,\n successSaving: false,\n text: \'\',\n displayTopBanner: false,\n displayBottomBanner: false,\n topHeight: 0,\n bottomHeight: 0,\n selectedBackgroundColor: \'red\',\n customBackgroundColor: \'\',\n selectedFontColor: \'white\',\n customFontColor: \'\',\n customColorHint: \'Enter a 3 or 6-digit hex color code\',\n colors: [\n {\n text: \'Yellow\',\n value: \'yellow\',\n },\n {\n text: \'Orange\',\n value: \'orange\',\n },\n {\n text: \'Red\',\n value: \'red\',\n },\n {\n text: \'Purple\',\n value: \'purple\',\n },\n {\n text: \'Blue\',\n value: \'blue\',\n },\n {\n text: \'Green\',\n value: \'green\',\n },\n {\n text: \'Black\',\n value: \'black\',\n },\n {\n text: \'White\',\n value: \'white\',\n },\n {\n text: \'Custom\',\n value: false,\n },\n ],\n rules: {\n customColor: (value) => {\n return (\n /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value) || this.customColorHint\n )\n },\n },\n }\n },\n computed: {\n saveObj: function () {\n return JSON.stringify({\n text: this.text,\n fontColor: this.selectedFontColor || this.customFontColor,\n backgroundColor:\n this.selectedBackgroundColor || this.customBackgroundColor,\n topHeight: this.displayTopBanner ? this.topHeight : 0,\n bottomHeight: this.displayBottomBanner ? this.bottomHeight : 0,\n })\n },\n formValid: function () {\n return (\n (this.selectedFontColor ||\n this.rules.customColor(this.customFontColor) === true) &&\n (this.selectedBackgroundColor ||\n this.rules.customColor(this.customBackgroundColor) === true)\n )\n },\n },\n watch: {\n customFontColor: function (val) {\n if (val && val.length && !val.startsWith(\'#\')) {\n this.customFontColor = `#${val}`\n }\n },\n customBackgroundColor: function (val) {\n if (val && val.length && !val.startsWith(\'#\')) {\n this.customBackgroundColor = `#${val}`\n }\n },\n },\n created() {\n this.api = new OpenC3Api()\n this.load()\n },\n methods: {\n load: function () {\n this.api\n .get_setting(settingName)\n .then((response) => {\n this.errorLoading = false\n if (response) {\n const parsed = JSON.parse(response)\n this.text = parsed.text\n this.topHeight = parsed.topHeight\n this.bottomHeight = parsed.bottomHeight\n this.displayTopBanner = parsed.topHeight !== 0\n this.displayBottomBanner = parsed.bottomHeight !== 0\n if (\n parsed.backgroundColor &&\n parsed.backgroundColor.startsWith(\'#\')\n ) {\n this.customBackgroundColor = parsed.backgroundColor\n this.selectedBackgroundColor = false\n } else {\n this.selectedBackgroundColor = parsed.backgroundColor\n }\n if (parsed.fontColor && parsed.fontColor.startsWith(\'#\')) {\n this.customFontColor = parsed.fontColor\n this.selectedFontColor = false\n } else {\n this.selectedFontColor = parsed.fontColor\n }\n }\n })\n .catch((error) => {\n //console.error(error)\n this.errorLoading = true\n })\n },\n save: function () {\n this.api\n .save_setting(settingName, this.saveObj)\n .then((response) => {\n this.errorSaving = false\n this.successSaving = true\n })\n .catch((error) => {\n //console.error(error)\n this.errorSaving = true\n })\n },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"7fadd344af84d54a38982cf727ae8a17ac0d96d8"},s=t[l]||(t[l]={});s[e]&&s[e].hash===n||(s[e]=o);var r=s[e];return f=function(){return r},r}f();var h=(f().s[0]++,"classification_banner"),C={data:function(){var e=this;return f().f[0]++,f().s[1]++,{api:null,errorLoading:!1,errorSaving:!1,successSaving:!1,text:"",displayTopBanner:!1,displayBottomBanner:!1,topHeight:0,bottomHeight:0,selectedBackgroundColor:"red",customBackgroundColor:"",selectedFontColor:"white",customFontColor:"",customColorHint:"Enter a 3 or 6-digit hex color code",colors:[{text:"Yellow",value:"yellow"},{text:"Orange",value:"orange"},{text:"Red",value:"red"},{text:"Purple",value:"purple"},{text:"Blue",value:"blue"},{text:"Green",value:"green"},{text:"Black",value:"black"},{text:"White",value:"white"},{text:"Custom",value:!1}],rules:{customColor:function(n){return f().f[1]++,f().s[2]++,f().b[0][0]++,/^#(?:[0-9a-fA-F]{3}){1,2}$/.test(n)||(f().b[0][1]++,e.customColorHint)}}}},computed:{saveObj:function(){return f().f[2]++,f().s[3]++,JSON.stringify({text:this.text,fontColor:(f().b[1][0]++,this.selectedFontColor||(f().b[1][1]++,this.customFontColor)),backgroundColor:(f().b[2][0]++,this.selectedBackgroundColor||(f().b[2][1]++,this.customBackgroundColor)),topHeight:this.displayTopBanner?(f().b[3][0]++,this.topHeight):(f().b[3][1]++,0),bottomHeight:this.displayBottomBanner?(f().b[4][0]++,this.bottomHeight):(f().b[4][1]++,0)})},formValid:function(){return f().f[3]++,f().s[4]++,f().b[5][0]++,(this.selectedFontColor||(f().b[5][1]++,!0===this.rules.customColor(this.customFontColor)))&&(f().b[5][2]++,this.selectedBackgroundColor||(f().b[5][3]++,!0===this.rules.customColor(this.customBackgroundColor)))}},watch:{customFontColor:function(e){f().f[4]++,f().s[5]++,f().b[7][0]++,e&&(f().b[7][1]++,e.length)&&(f().b[7][2]++,!e.startsWith("#"))?(f().b[6][0]++,f().s[6]++,this.customFontColor="#".concat(e)):f().b[6][1]++},customBackgroundColor:function(e){f().f[5]++,f().s[7]++,f().b[9][0]++,e&&(f().b[9][1]++,e.length)&&(f().b[9][2]++,!e.startsWith("#"))?(f().b[8][0]++,f().s[8]++,this.customBackgroundColor="#".concat(e)):f().b[8][1]++}},created:function(){f().f[6]++,f().s[9]++,this.api=new v,f().s[10]++,this.load()},methods:{load:function(){var e=this;f().f[7]++,f().s[11]++,this.api.get_setting(h).then((function(n){if(f().f[8]++,f().s[12]++,e.errorLoading=!1,f().s[13]++,n){f().b[10][0]++;var t=(f().s[14]++,JSON.parse(n));f().s[15]++,e.text=t.text,f().s[16]++,e.topHeight=t.topHeight,f().s[17]++,e.bottomHeight=t.bottomHeight,f().s[18]++,e.displayTopBanner=0!==t.topHeight,f().s[19]++,e.displayBottomBanner=0!==t.bottomHeight,f().s[20]++,f().b[12][0]++,t.backgroundColor&&(f().b[12][1]++,t.backgroundColor.startsWith("#"))?(f().b[11][0]++,f().s[21]++,e.customBackgroundColor=t.backgroundColor,f().s[22]++,e.selectedBackgroundColor=!1):(f().b[11][1]++,f().s[23]++,e.selectedBackgroundColor=t.backgroundColor),f().s[24]++,f().b[14][0]++,t.fontColor&&(f().b[14][1]++,t.fontColor.startsWith("#"))?(f().b[13][0]++,f().s[25]++,e.customFontColor=t.fontColor,f().s[26]++,e.selectedFontColor=!1):(f().b[13][1]++,f().s[27]++,e.selectedFontColor=t.fontColor)}else f().b[10][1]++})).catch((function(n){f().f[9]++,f().s[28]++,e.errorLoading=!0}))},save:function(){var e=this;f().f[10]++,f().s[29]++,this.api.save_setting(h,this.saveObj).then((function(n){f().f[11]++,f().s[30]++,e.errorSaving=!1,f().s[31]++,e.successSaving=!0})).catch((function(n){f().f[12]++,f().s[32]++,e.errorSaving=!0}))}}},_=C,b=t(3287),y=(0,b.Z)(_,p,g,!1,null,null,null),k=y.exports;function x(){var e="/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/SettingsTab.vue",n="4277da6b2ba0b1ac1b2d7692bad3a6f6e2c228a3",t=new Function("return this")(),l="__coverage__",o={path:"/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/SettingsTab.vue",statementMap:{0:{start:{line:187,column:4},end:{line:199,column:5}},1:{start:{line:203,column:6},end:{line:209,column:7}},2:{start:{line:204,column:8},end:{line:206,column:9}},3:{start:{line:205,column:23},end:{line:205,column:34}},4:{start:{line:208,column:8},end:{line:208,column:44}},5:{start:{line:212,column:6},end:{line:216,column:7}},6:{start:{line:213,column:8},end:{line:213,column:79}},7:{start:{line:213,column:68},end:{line:213,column:78}},8:{start:{line:215,column:8},end:{line:215,column:37}},9:{start:{line:220,column:4},end:{line:220,column:33}},10:{start:{line:221,column:4},end:{line:221,column:26}},11:{start:{line:222,column:4},end:{line:222,column:24}},12:{start:{line:223,column:4},end:{line:223,column:26}},13:{start:{line:227,column:6},end:{line:231,column:49}},14:{start:{line:229,column:10},end:{line:229,column:52}},15:{start:{line:232,column:6},end:{line:232,column:42}},16:{start:{line:235,column:6},end:{line:235,column:66}},17:{start:{line:236,column:6},end:{line:236,column:35}},18:{start:{line:239,column:6},end:{line:243,column:49}},19:{start:{line:241,column:10},end:{line:241,column:47}},20:{start:{line:244,column:6},end:{line:244,column:35}},21:{start:{line:247,column:6},end:{line:247,column:59}},22:{start:{line:248,column:6},end:{line:248,column:28}},23:{start:{line:251,column:6},end:{line:253,column:7}},24:{start:{line:252,column:8},end:{line:252,column:32}},25:{start:{line:256,column:19},end:{line:256,column:58}},26:{start:{line:257,column:6},end:{line:261,column:7}},27:{start:{line:264,column:6},end:{line:271,column:10}},28:{start:{line:267,column:10},end:{line:267,column:35}},29:{start:{line:270,column:10},end:{line:270,column:61}},30:{start:{line:274,column:6},end:{line:282,column:10}},31:{start:{line:277,column:10},end:{line:277,column:34}},32:{start:{line:278,column:10},end:{line:278,column:35}},33:{start:{line:281,column:10},end:{line:281,column:33}},34:{start:{line:285,column:6},end:{line:292,column:10}},35:{start:{line:288,column:10},end:{line:288,column:37}},36:{start:{line:291,column:10},end:{line:291,column:51}},37:{start:{line:295,column:6},end:{line:303,column:10}},38:{start:{line:298,column:10},end:{line:298,column:34}},39:{start:{line:299,column:10},end:{line:299,column:35}},40:{start:{line:302,column:10},end:{line:302,column:33}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:186,column:2},end:{line:186,column:3}},loc:{start:{line:186,column:9},end:{line:200,column:3}},line:186},1:{name:"(anonymous_1)",decl:{start:{line:202,column:33},end:{line:202,column:34}},loc:{start:{line:202,column:48},end:{line:210,column:5}},line:202},2:{name:"(anonymous_2)",decl:{start:{line:205,column:10},end:{line:205,column:11}},loc:{start:{line:205,column:23},end:{line:205,column:34}},line:205},3:{name:"(anonymous_3)",decl:{start:{line:211,column:26},end:{line:211,column:27}},loc:{start:{line:211,column:41},end:{line:217,column:5}},line:211},4:{name:"(anonymous_4)",decl:{start:{line:213,column:56},end:{line:213,column:57}},loc:{start:{line:213,column:68},end:{line:213,column:78}},line:213},5:{name:"(anonymous_5)",decl:{start:{line:219,column:2},end:{line:219,column:3}},loc:{start:{line:219,column:12},end:{line:224,column:3}},line:219},6:{name:"(anonymous_6)",decl:{start:{line:226,column:28},end:{line:226,column:29}},loc:{start:{line:226,column:40},end:{line:233,column:5}},line:226},7:{name:"(anonymous_7)",decl:{start:{line:228,column:16},end:{line:228,column:17}},loc:{start:{line:228,column:25},end:{line:230,column:9}},line:228},8:{name:"(anonymous_8)",decl:{start:{line:234,column:29},end:{line:234,column:30}},loc:{start:{line:234,column:41},end:{line:237,column:5}},line:234},9:{name:"(anonymous_9)",decl:{start:{line:238,column:21},end:{line:238,column:22}},loc:{start:{line:238,column:33},end:{line:245,column:5}},line:238},10:{name:"(anonymous_10)",decl:{start:{line:240,column:16},end:{line:240,column:17}},loc:{start:{line:240,column:25},end:{line:242,column:9}},line:240},11:{name:"(anonymous_11)",decl:{start:{line:246,column:22},end:{line:246,column:23}},loc:{start:{line:246,column:34},end:{line:249,column:5}},line:246},12:{name:"(anonymous_12)",decl:{start:{line:250,column:28},end:{line:250,column:29}},loc:{start:{line:250,column:44},end:{line:254,column:5}},line:250},13:{name:"(anonymous_13)",decl:{start:{line:255,column:36},end:{line:255,column:37}},loc:{start:{line:255,column:51},end:{line:262,column:5}},line:255},14:{name:"(anonymous_14)",decl:{start:{line:263,column:19},end:{line:263,column:20}},loc:{start:{line:263,column:31},end:{line:272,column:5}},line:263},15:{name:"(anonymous_15)",decl:{start:{line:266,column:14},end:{line:266,column:15}},loc:{start:{line:266,column:28},end:{line:268,column:9}},line:266},16:{name:"(anonymous_16)",decl:{start:{line:269,column:15},end:{line:269,column:16}},loc:{start:{line:269,column:21},end:{line:271,column:9}},line:269},17:{name:"(anonymous_17)",decl:{start:{line:273,column:19},end:{line:273,column:20}},loc:{start:{line:273,column:31},end:{line:283,column:5}},line:273},18:{name:"(anonymous_18)",decl:{start:{line:276,column:14},end:{line:276,column:15}},loc:{start:{line:276,column:28},end:{line:279,column:9}},line:276},19:{name:"(anonymous_19)",decl:{start:{line:280,column:15},end:{line:280,column:16}},loc:{start:{line:280,column:26},end:{line:282,column:9}},line:280},20:{name:"(anonymous_20)",decl:{start:{line:284,column:21},end:{line:284,column:22}},loc:{start:{line:284,column:33},end:{line:293,column:5}},line:284},21:{name:"(anonymous_21)",decl:{start:{line:287,column:14},end:{line:287,column:15}},loc:{start:{line:287,column:28},end:{line:289,column:9}},line:287},22:{name:"(anonymous_22)",decl:{start:{line:290,column:15},end:{line:290,column:16}},loc:{start:{line:290,column:21},end:{line:292,column:9}},line:290},23:{name:"(anonymous_23)",decl:{start:{line:294,column:21},end:{line:294,column:22}},loc:{start:{line:294,column:33},end:{line:304,column:5}},line:294},24:{name:"(anonymous_24)",decl:{start:{line:297,column:14},end:{line:297,column:15}},loc:{start:{line:297,column:28},end:{line:300,column:9}},line:297},25:{name:"(anonymous_25)",decl:{start:{line:301,column:15},end:{line:301,column:16}},loc:{start:{line:301,column:26},end:{line:303,column:9}},line:301}},branchMap:{0:{loc:{start:{line:203,column:6},end:{line:209,column:7}},type:"if",locations:[{start:{line:203,column:6},end:{line:209,column:7}},{start:{line:207,column:13},end:{line:209,column:7}}],line:203},1:{loc:{start:{line:212,column:6},end:{line:216,column:7}},type:"if",locations:[{start:{line:212,column:6},end:{line:216,column:7}},{start:{line:214,column:13},end:{line:216,column:7}}],line:212}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0},b:{0:[0,0],1:[0,0]},inputSourceMap:{version:3,sources:["SettingsTab.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkLA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"SettingsTab.vue",sourceRoot:"src/tools/OpenC3Admin/tabs",sourcesContent:['\x3c!--\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--\x3e\n\n<template>\n <div>\n <v-card>\n <v-card-title> Reset suppressed warnings </v-card-title>\n <v-card-subtitle>\n This resets "don\'t show this again" dialogs on this browser\n </v-card-subtitle>\n <v-card-text class="pb-0 ml-2">\n <template v-if="suppressedWarnings.length">\n <v-checkbox\n v-model="selectAllSuppressedWarnings"\n label="Select all"\n class="mt-0"\n data-test="select-all-suppressed-warnings"\n />\n <v-checkbox\n v-for="warning in suppressedWarnings"\n :key="warning.key"\n v-model="selectedSuppressedWarnings"\n :label="warning.text"\n :value="warning.key"\n class="mt-0"\n dense\n />\n </template>\n <template v-else> No warnings to reset </template>\n </v-card-text>\n <v-card-actions>\n <v-btn\n :disabled="!selectedSuppressedWarnings.length"\n @click="resetSuppressedWarnings"\n color="warning"\n text\n class="ml-2"\n data-test="reset-suppressed-warnings"\n >\n Reset\n </v-btn>\n </v-card-actions>\n </v-card>\n <v-divider />\n <v-card>\n <v-card-title> Clear recent configs </v-card-title>\n <v-card-subtitle>\n This clears the most recently saved/loaded tool configs on this browser\n </v-card-subtitle>\n <v-card-text class="pb-0 ml-2">\n <template v-if="lastConfigs.length">\n <v-checkbox\n v-model="selectAllLastConfigs"\n label="Select all"\n class="mt-0"\n data-test="select-all-last-configs"\n />\n <v-checkbox\n v-for="config in lastConfigs"\n :key="config.key"\n v-model="selectedLastConfigs"\n :label="`${config.text} (${config.value})`"\n :value="config.key"\n class="mt-0"\n dense\n />\n </template>\n <template v-else> No configs to clear </template>\n </v-card-text>\n <v-card-actions>\n <v-btn\n :disabled="!selectedLastConfigs.length"\n @click="clearLastConfigs"\n color="warning"\n text\n class="ml-2"\n data-test="clear-last-configs"\n >\n Clear\n </v-btn>\n </v-card-actions>\n </v-card>\n <v-divider />\n <classification-banner-settings />\n <v-divider />\n <v-card>\n <v-card-title> Source code URL </v-card-title>\n <v-card-subtitle>\n This sets the URL for the "Source" link in the footer. This is required\n under the AGPL license.\n </v-card-subtitle>\n <v-card-text class="pb-0 ml-2">\n <v-text-field\n label="Source URL"\n v-model="sourceUrl"\n data-test="source-url"\n />\n </v-card-text>\n <v-card-actions>\n <v-container class="pt-0">\n <v-row dense>\n <v-col class="pl-0">\n <v-btn\n @click="saveSourceUrl"\n color="success"\n text\n data-test="save-source-url"\n >\n Save\n </v-btn>\n </v-col>\n </v-row>\n <v-alert v-model="errorSaving" type="error" dismissible dense>\n Error saving\n </v-alert>\n <v-alert v-model="successSaving" type="success" dismissible dense>\n Saved! (Refresh the page to see changes)\n </v-alert>\n </v-container>\n </v-card-actions>\n </v-card>\n <v-divider />\n <v-card>\n <v-card-title> Rubygems URL </v-card-title>\n <v-card-subtitle>\n This sets the URL for installing dependency rubygems. Also used for\n rubygem discovery.\n </v-card-subtitle>\n <v-card-text class="pb-0 ml-2">\n <v-text-field\n label="Rubygems URL"\n v-model="rubygemsUrl"\n data-test="rubygems-url"\n />\n </v-card-text>\n <v-card-actions>\n <v-container class="pt-0">\n <v-row dense>\n <v-col class="pl-0">\n <v-btn\n @click="saveRubygemsUrl"\n color="success"\n text\n data-test="save-rubygems-url"\n >\n Save\n </v-btn>\n </v-col>\n </v-row>\n <v-alert v-model="errorSaving" type="error" dismissible dense>\n Error saving\n </v-alert>\n <v-alert v-model="successSaving" type="success" dismissible dense>\n Saved! (Refresh the page to see changes)\n </v-alert>\n </v-container>\n </v-card-actions>\n </v-card>\n </div>\n</template>\n\n<script>\nimport { OpenC3Api } from \'@openc3/tool-common/src/services/openc3-api\'\nimport ClassificationBannerSettings from \'@/tools/OpenC3Admin/ClassificationBannerSettings.vue\'\n\nexport default {\n components: {\n ClassificationBannerSettings,\n },\n data() {\n return {\n api: new OpenC3Api(),\n suppressedWarnings: [],\n selectedSuppressedWarnings: [],\n selectAllSuppressedWarnings: false,\n lastConfigs: [],\n selectedLastConfigs: [],\n selectAllLastConfigs: false,\n sourceUrl: \'\',\n rubygemsUrl: \'\',\n errorSaving: false,\n successSaving: false,\n }\n },\n watch: {\n selectAllSuppressedWarnings: function (val) {\n if (val) {\n this.selectedSuppressedWarnings = this.suppressedWarnings.map(\n (warning) => warning.key\n )\n } else {\n this.selectedSuppressedWarnings = []\n }\n },\n selectAllLastConfigs: function (val) {\n if (val) {\n this.selectedLastConfigs = this.lastConfigs.map((config) => config.key)\n } else {\n this.selectedLastConfigs = []\n }\n },\n },\n created() {\n this.loadSuppressedWarnings()\n this.loadLastConfigs()\n this.loadSourceUrl()\n this.loadRubygemsUrl()\n },\n methods: {\n loadSuppressedWarnings: function () {\n this.suppressedWarnings = Object.keys(localStorage)\n .filter((key) => {\n return key.startsWith(\'suppresswarning__\')\n })\n .map(this.localStorageKeyToDisplayObject)\n this.selectedSuppressedWarnings = []\n },\n resetSuppressedWarnings: function () {\n this.deleteLocalStorageKeys(this.selectedSuppressedWarnings)\n this.loadSuppressedWarnings()\n },\n loadLastConfigs: function () {\n this.lastConfigs = Object.keys(localStorage)\n .filter((key) => {\n return key.startsWith(\'lastconfig__\')\n })\n .map(this.localStorageKeyToDisplayObject)\n this.selectedLastConfigs = []\n },\n clearLastConfigs: function () {\n this.deleteLocalStorageKeys(this.selectedLastConfigs)\n this.loadLastConfigs()\n },\n deleteLocalStorageKeys: function (keys) {\n for (const key of keys) {\n delete localStorage[key]\n }\n },\n localStorageKeyToDisplayObject: function (key) {\n const name = key.split(\'__\')[1].replaceAll(\'_\', \' \')\n return {\n key,\n text: name.charAt(0).toUpperCase() + name.slice(1),\n value: localStorage[key],\n }\n },\n loadSourceUrl: function () {\n this.api\n .get_setting(\'source_url\')\n .then((response) => {\n this.sourceUrl = response\n })\n .catch(() => {\n this.sourceUrl = \'https://github.com/OpenC3/openc3\'\n })\n },\n saveSourceUrl: function () {\n this.api\n .save_setting(\'source_url\', this.sourceUrl)\n .then((response) => {\n this.errorSaving = false\n this.successSaving = true\n })\n .catch((error) => {\n this.errorSaving = true\n })\n },\n loadRubygemsUrl: function () {\n this.api\n .get_setting(\'rubygems_url\')\n .then((response) => {\n this.rubygemsUrl = response\n })\n .catch(() => {\n this.rubygemsUrl = \'https://rubygems.org\'\n })\n },\n saveRubygemsUrl: function () {\n this.api\n .save_setting(\'rubygems_url\', this.rubygemsUrl)\n .then((response) => {\n this.errorSaving = false\n this.successSaving = true\n })\n .catch((error) => {\n this.errorSaving = true\n })\n },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"4277da6b2ba0b1ac1b2d7692bad3a6f6e2c228a3"},s=t[l]||(t[l]={});s[e]&&s[e].hash===n||(s[e]=o);var r=s[e];return x=function(){return r},r}x();var S={components:{ClassificationBannerSettings:k},data:function(){return x().f[0]++,x().s[0]++,{api:new v,suppressedWarnings:[],selectedSuppressedWarnings:[],selectAllSuppressedWarnings:!1,lastConfigs:[],selectedLastConfigs:[],selectAllLastConfigs:!1,sourceUrl:"",rubygemsUrl:"",errorSaving:!1,successSaving:!1}},watch:{selectAllSuppressedWarnings:function(e){x().f[1]++,x().s[1]++,e?(x().b[0][0]++,x().s[2]++,this.selectedSuppressedWarnings=this.suppressedWarnings.map((function(e){return x().f[2]++,x().s[3]++,e.key}))):(x().b[0][1]++,x().s[4]++,this.selectedSuppressedWarnings=[])},selectAllLastConfigs:function(e){x().f[3]++,x().s[5]++,e?(x().b[1][0]++,x().s[6]++,this.selectedLastConfigs=this.lastConfigs.map((function(e){return x().f[4]++,x().s[7]++,e.key}))):(x().b[1][1]++,x().s[8]++,this.selectedLastConfigs=[])}},created:function(){x().f[5]++,x().s[9]++,this.loadSuppressedWarnings(),x().s[10]++,this.loadLastConfigs(),x().s[11]++,this.loadSourceUrl(),x().s[12]++,this.loadRubygemsUrl()},methods:{loadSuppressedWarnings:function(){x().f[6]++,x().s[13]++,this.suppressedWarnings=Object.keys(localStorage).filter((function(e){return x().f[7]++,x().s[14]++,e.startsWith("suppresswarning__")})).map(this.localStorageKeyToDisplayObject),x().s[15]++,this.selectedSuppressedWarnings=[]},resetSuppressedWarnings:function(){x().f[8]++,x().s[16]++,this.deleteLocalStorageKeys(this.selectedSuppressedWarnings),x().s[17]++,this.loadSuppressedWarnings()},loadLastConfigs:function(){x().f[9]++,x().s[18]++,this.lastConfigs=Object.keys(localStorage).filter((function(e){return x().f[10]++,x().s[19]++,e.startsWith("lastconfig__")})).map(this.localStorageKeyToDisplayObject),x().s[20]++,this.selectedLastConfigs=[]},clearLastConfigs:function(){x().f[11]++,x().s[21]++,this.deleteLocalStorageKeys(this.selectedLastConfigs),x().s[22]++,this.loadLastConfigs()},deleteLocalStorageKeys:function(e){x().f[12]++,x().s[23]++;var n,t=(0,s.Z)(e);try{for(t.s();!(n=t.n()).done;){var l=n.value;x().s[24]++,delete localStorage[l]}}catch(o){t.e(o)}finally{t.f()}},localStorageKeyToDisplayObject:function(e){x().f[13]++;var n=(x().s[25]++,e.split("__")[1].replaceAll("_"," "));return x().s[26]++,{key:e,text:n.charAt(0).toUpperCase()+n.slice(1),value:localStorage[e]}},loadSourceUrl:function(){var e=this;x().f[14]++,x().s[27]++,this.api.get_setting("source_url").then((function(n){x().f[15]++,x().s[28]++,e.sourceUrl=n})).catch((function(){x().f[16]++,x().s[29]++,e.sourceUrl="https://github.com/OpenC3/openc3"}))},saveSourceUrl:function(){var e=this;x().f[17]++,x().s[30]++,this.api.save_setting("source_url",this.sourceUrl).then((function(n){x().f[18]++,x().s[31]++,e.errorSaving=!1,x().s[32]++,e.successSaving=!0})).catch((function(n){x().f[19]++,x().s[33]++,e.errorSaving=!0}))},loadRubygemsUrl:function(){var e=this;x().f[20]++,x().s[34]++,this.api.get_setting("rubygems_url").then((function(n){x().f[21]++,x().s[35]++,e.rubygemsUrl=n})).catch((function(){x().f[22]++,x().s[36]++,e.rubygemsUrl="https://rubygems.org"}))},saveRubygemsUrl:function(){var e=this;x().f[23]++,x().s[37]++,this.api.save_setting("rubygems_url",this.rubygemsUrl).then((function(n){x().f[24]++,x().s[38]++,e.errorSaving=!1,x().s[39]++,e.successSaving=!0})).catch((function(n){x().f[25]++,x().s[40]++,e.errorSaving=!0}))}}},w=S,B=(0,b.Z)(w,l,o,!1,null,null,null),L=B.exports},8312:function(e,n,t){var l=t(4768);e.exports=function(e,n,t){for(var o in n)l(e,o,n[o],t);return e}},7456:function(e,n,t){var l=t(598);e.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(l)},6650:function(e,n,t){var l=t(5968),o=t(4237),s=t(3326),r=t(3124),a=t(8885),i=l(r),c=l("".slice),u=Math.ceil,d=function(e){return function(n,t,l){var r,d,m=s(a(n)),A=o(t),v=m.length,p=void 0===l?" ":s(l);return A<=v||""==p?m:(r=A-v,d=i(p,u(r/p.length)),d.length>r&&(d=c(d,0,r)),e?m+d:d+m)}};e.exports={start:d(!1),end:d(!0)}},5734:function(e,n,t){"use strict";var l=t(3103),o=t(6650).start,s=t(7456);l({target:"String",proto:!0,forced:s},{padStart:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},1639:function(e,n,t){"use strict";var l=t(3103),o=t(266),s=t(5968),r=t(8885),a=t(6733),i=t(8311),c=t(3326),u=t(5300),d=t(3349),m=t(17),A=t(95),v=t(4231),p=A("replace"),g=TypeError,f=s("".indexOf),h=s("".replace),C=s("".slice),_=Math.max,b=function(e,n,t){return t>e.length?-1:""===n?t:f(e,n,t)};l({target:"String",proto:!0},{replaceAll:function(e,n){var t,l,s,A,y,k,x,S,w,B=r(this),L=0,T=0,U="";if(null!=e){if(t=i(e),t&&(l=c(r(d(e))),!~f(l,"g")))throw g("`.replaceAll` does not allow non-global regexes");if(s=u(e,p),s)return o(s,e,B,n);if(v&&t)return h(c(B),e,n)}A=c(B),y=c(e),k=a(n),k||(n=c(n)),x=y.length,S=_(1,x),L=b(A,y,0);while(-1!==L)w=k?c(n(y,L,A)):m(y,A,L,[],void 0,n),U+=C(A,T,L)+w,T=L+x,L=b(A,y,L+S);return T<A.length&&(U+=C(A,T)),U}})},1150:function(e,n,t){"use strict";t.d(n,{Z:function(){return o}});t(4115),t(634),t(8188),t(796),t(8673),t(6886),t(1372);var l=t(8709);function o(e,n){var t="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=(0,l.Z)(e))||n&&e&&"number"===typeof e.length){t&&(e=t);var o=0,s=function(){};return{s:s,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:s}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,a=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return a=e.done,e},e:function(e){i=!0,r=e},f:function(){try{a||null==t["return"]||t["return"]()}finally{if(i)throw r}}}}}}]);
2
- //# sourceMappingURL=248.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/248.js","mappings":"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","sources":["webpack://@openc3/tool-admin/../openc3-tool-common/src/services/axios.js","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/SettingsTab.vue?cd89","webpack://@openc3/tool-admin/../../node_modules/@babel/runtime/helpers/esm/readOnlyError.js","webpack://@openc3/tool-admin/../openc3-tool-common/src/services/openc3-api.js","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/ClassificationBannerSettings.vue?96ad","webpack://@openc3/tool-admin/src/tools/OpenC3Admin/ClassificationBannerSettings.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/ClassificationBannerSettings.vue?3e5f","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/ClassificationBannerSettings.vue","webpack://@openc3/tool-admin/src/tools/OpenC3Admin/tabs/SettingsTab.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/SettingsTab.vue?215e","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/tabs/SettingsTab.vue","webpack://@openc3/tool-admin/../../node_modules/core-js/internals/define-built-ins.js","webpack://@openc3/tool-admin/../../node_modules/core-js/internals/string-pad-webkit-bug.js","webpack://@openc3/tool-admin/../../node_modules/core-js/internals/string-pad.js","webpack://@openc3/tool-admin/../../node_modules/core-js/modules/es.string.pad-start.js","webpack://@openc3/tool-admin/../../node_modules/core-js/modules/es.string.replace-all.js","webpack://@openc3/tool-admin/../../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.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\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 delete localStorage.openc3Token\n OpenC3Auth.login(location.href)\n } else {\n // Individual tools can set axiosIgnoreResponse to an error code\n // they potentially expect, e.g. '404', in which case we ignore it\n // Since localStorage only supports strings call toString on the status\n if (\n localStorage.axiosIgnoreResponse === error.response.status.toString()\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 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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card',[_c('v-card-title',[_vm._v(\" Reset suppressed warnings \")]),_c('v-card-subtitle',[_vm._v(\" This resets \\\"don't show this again\\\" dialogs on this browser \")]),_c('v-card-text',{staticClass:\"pb-0 ml-2\"},[(_vm.suppressedWarnings.length)?[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":\"Select all\",\"data-test\":\"select-all-suppressed-warnings\"},model:{value:(_vm.selectAllSuppressedWarnings),callback:function ($$v) {_vm.selectAllSuppressedWarnings=$$v},expression:\"selectAllSuppressedWarnings\"}}),_vm._l((_vm.suppressedWarnings),function(warning){return _c('v-checkbox',{key:warning.key,staticClass:\"mt-0\",attrs:{\"label\":warning.text,\"value\":warning.key,\"dense\":\"\"},model:{value:(_vm.selectedSuppressedWarnings),callback:function ($$v) {_vm.selectedSuppressedWarnings=$$v},expression:\"selectedSuppressedWarnings\"}})})]:[_vm._v(\" No warnings to reset \")]],2),_c('v-card-actions',[_c('v-btn',{staticClass:\"ml-2\",attrs:{\"disabled\":!_vm.selectedSuppressedWarnings.length,\"color\":\"warning\",\"text\":\"\",\"data-test\":\"reset-suppressed-warnings\"},on:{\"click\":_vm.resetSuppressedWarnings}},[_vm._v(\" Reset \")])],1)],1),_c('v-divider'),_c('v-card',[_c('v-card-title',[_vm._v(\" Clear recent configs \")]),_c('v-card-subtitle',[_vm._v(\" This clears the most recently saved/loaded tool configs on this browser \")]),_c('v-card-text',{staticClass:\"pb-0 ml-2\"},[(_vm.lastConfigs.length)?[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":\"Select all\",\"data-test\":\"select-all-last-configs\"},model:{value:(_vm.selectAllLastConfigs),callback:function ($$v) {_vm.selectAllLastConfigs=$$v},expression:\"selectAllLastConfigs\"}}),_vm._l((_vm.lastConfigs),function(config){return _c('v-checkbox',{key:config.key,staticClass:\"mt-0\",attrs:{\"label\":((config.text) + \" (\" + (config.value) + \")\"),\"value\":config.key,\"dense\":\"\"},model:{value:(_vm.selectedLastConfigs),callback:function ($$v) {_vm.selectedLastConfigs=$$v},expression:\"selectedLastConfigs\"}})})]:[_vm._v(\" No configs to clear \")]],2),_c('v-card-actions',[_c('v-btn',{staticClass:\"ml-2\",attrs:{\"disabled\":!_vm.selectedLastConfigs.length,\"color\":\"warning\",\"text\":\"\",\"data-test\":\"clear-last-configs\"},on:{\"click\":_vm.clearLastConfigs}},[_vm._v(\" Clear \")])],1)],1),_c('v-divider'),_c('classification-banner-settings'),_c('v-divider'),_c('v-card',[_c('v-card-title',[_vm._v(\" Source code URL \")]),_c('v-card-subtitle',[_vm._v(\" This sets the URL for the \\\"Source\\\" link in the footer. This is required under the AGPL license. \")]),_c('v-card-text',{staticClass:\"pb-0 ml-2\"},[_c('v-text-field',{attrs:{\"label\":\"Source URL\",\"data-test\":\"source-url\"},model:{value:(_vm.sourceUrl),callback:function ($$v) {_vm.sourceUrl=$$v},expression:\"sourceUrl\"}})],1),_c('v-card-actions',[_c('v-container',{staticClass:\"pt-0\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"pl-0\"},[_c('v-btn',{attrs:{\"color\":\"success\",\"text\":\"\",\"data-test\":\"save-source-url\"},on:{\"click\":_vm.saveSourceUrl}},[_vm._v(\" Save \")])],1)],1),_c('v-alert',{attrs:{\"type\":\"error\",\"dismissible\":\"\",\"dense\":\"\"},model:{value:(_vm.errorSaving),callback:function ($$v) {_vm.errorSaving=$$v},expression:\"errorSaving\"}},[_vm._v(\" Error saving \")]),_c('v-alert',{attrs:{\"type\":\"success\",\"dismissible\":\"\",\"dense\":\"\"},model:{value:(_vm.successSaving),callback:function ($$v) {_vm.successSaving=$$v},expression:\"successSaving\"}},[_vm._v(\" Saved! (Refresh the page to see changes) \")])],1)],1)],1),_c('v-divider'),_c('v-card',[_c('v-card-title',[_vm._v(\" Rubygems URL \")]),_c('v-card-subtitle',[_vm._v(\" This sets the URL for installing dependency rubygems. Also used for rubygem discovery. \")]),_c('v-card-text',{staticClass:\"pb-0 ml-2\"},[_c('v-text-field',{attrs:{\"label\":\"Rubygems URL\",\"data-test\":\"rubygems-url\"},model:{value:(_vm.rubygemsUrl),callback:function ($$v) {_vm.rubygemsUrl=$$v},expression:\"rubygemsUrl\"}})],1),_c('v-card-actions',[_c('v-container',{staticClass:\"pt-0\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"pl-0\"},[_c('v-btn',{attrs:{\"color\":\"success\",\"text\":\"\",\"data-test\":\"save-rubygems-url\"},on:{\"click\":_vm.saveRubygemsUrl}},[_vm._v(\" Save \")])],1)],1),_c('v-alert',{attrs:{\"type\":\"error\",\"dismissible\":\"\",\"dense\":\"\"},model:{value:(_vm.errorSaving),callback:function ($$v) {_vm.errorSaving=$$v},expression:\"errorSaving\"}},[_vm._v(\" Error saving \")]),_c('v-alert',{attrs:{\"type\":\"success\",\"dismissible\":\"\",\"dense\":\"\"},model:{value:(_vm.successSaving),callback:function ($$v) {_vm.successSaving=$$v},expression:\"successSaving\"}},[_vm._v(\" Saved! (Refresh the page to see changes) \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _readOnlyError(name) {\n throw new TypeError(\"\\\"\" + name + \"\\\" is read-only\");\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 2022, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport axios from './axios.js'\n\nexport class OpenC3Api {\n id = 1\n\n constructor() {}\n\n // This is hacky Json-rpc for now. Should probably use a jsonrpc library.\n async exec(method, params, kwparams = {}) {\n try {\n await OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity)\n } catch (error) {\n OpenC3Auth.login()\n }\n this.id = this.id + 1\n try {\n kwparams['scope'] = localStorage.scope\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 },\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 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 //console.log(error)\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 // ***********************************************\n // The following APIs are used by the CmdTlmServer\n // ***********************************************\n get_all_interface_info() {\n return this.exec('get_all_interface_info', [])\n }\n\n connect_interface(interface_name) {\n return this.exec('connect_interface', [interface_name])\n }\n\n disconnect_interface(interface_name) {\n return this.exec('disconnect_interface', [interface_name])\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_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_parameter(target, packet, item) {\n return this.exec('get_parameter', [target, packet, item])\n }\n\n get_all_packet_logger_info() {\n return this.exec('get_all_packet_logger_info', [])\n }\n\n start_logging() {\n return this.exec('start_logging', [])\n }\n\n stop_logging() {\n return this.exec('stop_logging', [])\n }\n\n start_cmd_log(log_writer_name) {\n return this.exec('start_cmd_log', [log_writer_name])\n }\n\n start_tlm_log(log_writer_name) {\n return this.exec('start_tlm_log', [log_writer_name])\n }\n\n stop_cmd_log(log_writer_name) {\n return this.exec('stop_cmd_log', [log_writer_name])\n }\n\n stop_tlm_log(log_writer_name) {\n return this.exec('stop_tlm_log', [log_writer_name])\n }\n\n get_server_status() {\n return this.exec('get_server_status', [])\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 get_background_tasks() {\n return this.exec('get_background_tasks', [])\n }\n\n start_background_task(name) {\n return this.exec('start_background_task', [name])\n }\n\n stop_background_task(name) {\n return this.exec('stop_background_task', [name])\n }\n\n // ***********************************************\n // End CmdTlmServer APIs\n // ***********************************************\n\n get_oldest_logfile() {\n return this.exec('get_oldest_logfile', [])\n }\n\n get_target(target_name) {\n return this.exec('get_target', [target_name])\n }\n\n get_target_list() {\n return this.exec('get_target_list', [])\n }\n\n get_telemetry(target_name, packet_name) {\n return this.exec('get_telemetry', [target_name, packet_name])\n }\n\n get_all_telemetry(target_name) {\n return this.exec('get_all_telemetry', [target_name])\n }\n\n get_all_telemetry_names(target_name) {\n return this.exec('get_all_telemetry_names', [target_name])\n }\n\n // Called by PacketViewerComponent\n async get_tlm_packet(target_name, packet_name, value_type) {\n const data = await this.exec('get_tlm_packet', [target_name, packet_name], {\n type: value_type,\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 // Called by PacketViewerComponent\n get_packet_derived_items(target_name, packet_name) {\n return this.exec('get_packet_derived_items', [target_name, packet_name])\n }\n\n // Called by CmdTlmServer Tlm Packets tab\n get_tlm_buffer(target_name, packet_name) {\n return this.exec('get_tlm_buffer', [target_name, packet_name])\n }\n\n // Called by OpenC3ScreenComponent\n async get_tlm_values(items) {\n const data = await this.exec('get_tlm_values', [items])\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 // Called by LimitsbarWidget\n get_limits(target_name, packet_name, item_name) {\n return this.exec('get_limits', [target_name, packet_name, item_name])\n }\n\n // Called by LimitsMonitorComponent\n async tlm(target_name, packet_name, item_name) {\n const data = await this.exec('tlm', [target_name, packet_name, item_name])\n var converted = this.decode_openc3_type(data)\n if (converted !== null) {\n data = converted\n }\n return data\n }\n\n get_all_commands(target_name) {\n return this.exec('get_all_commands', [target_name])\n }\n\n get_all_command_names(target_name) {\n return this.exec('get_all_command_names', [target_name])\n }\n\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 // Called by CmdTlmServer Cmd Packets tab\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) {\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(method, [target_name, command_name, param_list])\n }\n\n // Called by CmdSenderComponent\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 // Called by CmdSenderComponent\n cmd(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd', target_name)\n } else {\n return this._cmd('cmd', target_name, command_name, param_list)\n }\n }\n\n // Called by CmdSenderComponent\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 // Called by CmdSenderComponent\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 // Called by CmdSenderComponent\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 // Called by CmdSenderComponent\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 // Called by CmdSenderComponent\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 // Called by CmdSenderComponent\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 // Called by CmdSenderComponent\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 // Called by CmdSenderComponent\n get_interface_names() {\n return this.exec('get_interface_names', [])\n }\n\n // Called by CmdSenderComponent\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 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 save_setting(name, data) {\n return this.exec('save_setting', [name, data])\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',[_vm._v(\"Classification Banner Settings\")]),_c('v-card-text',{staticClass:\"pb-0\"},[_c('v-alert',{attrs:{\"type\":\"error\",\"dismissible\":\"\",\"dense\":\"\"},model:{value:(_vm.errorLoading),callback:function ($$v) {_vm.errorLoading=$$v},expression:\"errorLoading\"}},[_vm._v(\" Error loading previous configuration \")]),_c('v-container',{staticClass:\"pb-0\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-text-field',{attrs:{\"label\":\"Text\",\"data-test\":\"classification-banner-text\"},model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-select',{attrs:{\"label\":\"Background color\",\"items\":_vm.colors,\"data-test\":\"classification-banner-background-color\"},scopedSlots:_vm._u([(_vm.selectedBackgroundColor)?{key:\"prepend-inner\",fn:function(){return [_c('v-icon',{attrs:{\"color\":_vm.selectedBackgroundColor}},[_vm._v(\" mdi-square \")])]},proxy:true}:null,{key:\"item\",fn:function(data){return [(data.item.value)?_c('v-icon',{staticClass:\"pr-1\",attrs:{\"color\":data.item.value}},[_vm._v(\" mdi-square \")]):_vm._e(),_vm._v(\" \"+_vm._s(data.item.text)+\" \")]}}],null,true),model:{value:(_vm.selectedBackgroundColor),callback:function ($$v) {_vm.selectedBackgroundColor=$$v},expression:\"selectedBackgroundColor\"}})],1),_c('v-col',[_c('v-text-field',{attrs:{\"label\":\"Custom background color\",\"hint\":_vm.customColorHint,\"disabled\":_vm.selectedBackgroundColor !== false,\"rules\":[_vm.rules.customColor],\"data-test\":\"classification-banner-custom-background-color\"},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.selectedBackgroundColor),expression:\"!selectedBackgroundColor\"}],attrs:{\"color\":_vm.customBackgroundColor}},[_vm._v(\" mdi-square \")])]},proxy:true}]),model:{value:(_vm.customBackgroundColor),callback:function ($$v) {_vm.customBackgroundColor=$$v},expression:\"customBackgroundColor\"}})],1),_c('v-col',[_c('v-select',{attrs:{\"label\":\"Font color\",\"items\":_vm.colors,\"data-test\":\"classification-banner-font-color\"},scopedSlots:_vm._u([(_vm.selectedFontColor)?{key:\"prepend-inner\",fn:function(){return [_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedFontColor),expression:\"selectedFontColor\"}],attrs:{\"color\":_vm.selectedFontColor}},[_vm._v(\" mdi-square \")])]},proxy:true}:null,{key:\"item\",fn:function(data){return [(data.item.value)?_c('v-icon',{staticClass:\"pr-1\",attrs:{\"color\":data.item.value}},[_vm._v(\" mdi-square \")]):_vm._e(),_vm._v(\" \"+_vm._s(data.item.text)+\" \")]}}],null,true),model:{value:(_vm.selectedFontColor),callback:function ($$v) {_vm.selectedFontColor=$$v},expression:\"selectedFontColor\"}})],1),_c('v-col',[_c('v-text-field',{attrs:{\"label\":\"Custom font color\",\"hint\":_vm.customColorHint,\"disabled\":_vm.selectedFontColor !== false,\"rules\":[_vm.rules.customColor],\"data-test\":\"classification-banner-custom-font-color\"},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.selectedFontColor),expression:\"!selectedFontColor\"}],attrs:{\"color\":_vm.customFontColor}},[_vm._v(\" mdi-square \")])]},proxy:true}]),model:{value:(_vm.customFontColor),callback:function ($$v) {_vm.customFontColor=$$v},expression:\"customFontColor\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-switch',{attrs:{\"label\":\"Display top banner\",\"data-test\":\"display-top-banner\"},model:{value:(_vm.displayTopBanner),callback:function ($$v) {_vm.displayTopBanner=$$v},expression:\"displayTopBanner\"}})],1),_c('v-col',[_c('v-text-field',{attrs:{\"label\":\"Top height\",\"disabled\":!_vm.displayTopBanner,\"type\":\"number\",\"suffix\":\"px\",\"data-test\":\"classification-banner-top-height\"},model:{value:(_vm.topHeight),callback:function ($$v) {_vm.topHeight=$$v},expression:\"topHeight\"}})],1),_c('v-col',[_c('v-switch',{attrs:{\"label\":\"Display bottom banner\",\"data-test\":\"display-bottom-banner\"},model:{value:(_vm.displayBottomBanner),callback:function ($$v) {_vm.displayBottomBanner=$$v},expression:\"displayBottomBanner\"}})],1),_c('v-col',[_c('v-text-field',{attrs:{\"label\":\"Bottom height\",\"disabled\":!_vm.displayBottomBanner,\"type\":\"number\",\"suffix\":\"px\",\"data-test\":\"classification-banner-bottom-height\"},model:{value:(_vm.bottomHeight),callback:function ($$v) {_vm.bottomHeight=$$v},expression:\"bottomHeight\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-container',{staticClass:\"pt-0\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"pl-0\"},[_c('v-btn',{attrs:{\"disabled\":!_vm.formValid,\"color\":\"success\",\"text\":\"\",\"data-test\":\"save-classification-banner\"},on:{\"click\":_vm.save}},[_vm._v(\" Save \")])],1)],1),_c('v-alert',{attrs:{\"type\":\"error\",\"dismissible\":\"\",\"dense\":\"\"},model:{value:(_vm.errorSaving),callback:function ($$v) {_vm.errorSaving=$$v},expression:\"errorSaving\"}},[_vm._v(\" Error saving \")]),_c('v-alert',{attrs:{\"type\":\"success\",\"dismissible\":\"\",\"dense\":\"\"},model:{value:(_vm.successSaving),callback:function ($$v) {_vm.successSaving=$$v},expression:\"successSaving\"}},[_vm._v(\" Saved! (Refresh the page to see changes) \")])],1)],1)],1)}\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 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\n\n<template>\n <v-card>\n <v-card-title>Classification Banner Settings</v-card-title>\n <v-card-text class=\"pb-0\">\n <v-alert v-model=\"errorLoading\" type=\"error\" dismissible dense>\n Error loading previous configuration\n </v-alert>\n <v-container class=\"pb-0\">\n <v-row dense>\n <v-col>\n <v-text-field\n label=\"Text\"\n v-model=\"text\"\n data-test=\"classification-banner-text\"\n />\n </v-col>\n </v-row>\n <v-row dense>\n <v-col>\n <v-select\n label=\"Background color\"\n :items=\"colors\"\n v-model=\"selectedBackgroundColor\"\n data-test=\"classification-banner-background-color\"\n >\n <template v-slot:prepend-inner v-if=\"selectedBackgroundColor\">\n <v-icon :color=\"selectedBackgroundColor\"> mdi-square </v-icon>\n </template>\n <template v-slot:item=\"data\">\n <v-icon\n :color=\"data.item.value\"\n v-if=\"data.item.value\"\n class=\"pr-1\"\n >\n mdi-square\n </v-icon>\n {{ data.item.text }}\n </template>\n </v-select>\n </v-col>\n <v-col>\n <v-text-field\n label=\"Custom background color\"\n :hint=\"customColorHint\"\n :disabled=\"selectedBackgroundColor !== false\"\n v-model=\"customBackgroundColor\"\n :rules=\"[rules.customColor]\"\n data-test=\"classification-banner-custom-background-color\"\n >\n <template v-slot:prepend-inner>\n <v-icon\n v-show=\"!selectedBackgroundColor\"\n :color=\"customBackgroundColor\"\n >\n mdi-square\n </v-icon>\n </template>\n </v-text-field>\n </v-col>\n <v-col>\n <v-select\n label=\"Font color\"\n :items=\"colors\"\n v-model=\"selectedFontColor\"\n data-test=\"classification-banner-font-color\"\n >\n <template v-slot:prepend-inner v-if=\"selectedFontColor\">\n <v-icon v-show=\"selectedFontColor\" :color=\"selectedFontColor\">\n mdi-square\n </v-icon>\n </template>\n <template slot=\"item\" slot-scope=\"data\">\n <v-icon\n v-if=\"data.item.value\"\n :color=\"data.item.value\"\n class=\"pr-1\"\n >\n mdi-square\n </v-icon>\n {{ data.item.text }}\n </template>\n </v-select>\n </v-col>\n <v-col>\n <v-text-field\n label=\"Custom font color\"\n :hint=\"customColorHint\"\n :disabled=\"selectedFontColor !== false\"\n v-model=\"customFontColor\"\n :rules=\"[rules.customColor]\"\n data-test=\"classification-banner-custom-font-color\"\n >\n <template v-slot:prepend-inner>\n <v-icon v-show=\"!selectedFontColor\" :color=\"customFontColor\">\n mdi-square\n </v-icon>\n </template>\n </v-text-field>\n </v-col>\n </v-row>\n <v-row dense>\n <v-col>\n <v-switch\n label=\"Display top banner\"\n v-model=\"displayTopBanner\"\n data-test=\"display-top-banner\"\n />\n </v-col>\n <v-col>\n <v-text-field\n label=\"Top height\"\n :disabled=\"!displayTopBanner\"\n type=\"number\"\n suffix=\"px\"\n v-model=\"topHeight\"\n data-test=\"classification-banner-top-height\"\n />\n </v-col>\n <v-col>\n <v-switch\n label=\"Display bottom banner\"\n v-model=\"displayBottomBanner\"\n data-test=\"display-bottom-banner\"\n />\n </v-col>\n <v-col>\n <v-text-field\n label=\"Bottom height\"\n :disabled=\"!displayBottomBanner\"\n type=\"number\"\n suffix=\"px\"\n v-model=\"bottomHeight\"\n data-test=\"classification-banner-bottom-height\"\n />\n </v-col>\n </v-row>\n </v-container>\n </v-card-text>\n <v-card-actions>\n <v-container class=\"pt-0\">\n <v-row dense>\n <v-col class=\"pl-0\">\n <v-btn\n :disabled=\"!formValid\"\n @click=\"save\"\n color=\"success\"\n text\n data-test=\"save-classification-banner\"\n >\n Save\n </v-btn>\n </v-col>\n </v-row>\n <v-alert v-model=\"errorSaving\" type=\"error\" dismissible dense>\n Error saving\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" dismissible dense>\n Saved! (Refresh the page to see changes)\n </v-alert>\n </v-container>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport axios from 'axios'\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\n\nconst settingName = 'classification_banner'\nexport default {\n data() {\n return {\n api: null,\n errorLoading: false,\n errorSaving: false,\n successSaving: false,\n text: '',\n displayTopBanner: false,\n displayBottomBanner: false,\n topHeight: 0,\n bottomHeight: 0,\n selectedBackgroundColor: 'red',\n customBackgroundColor: '',\n selectedFontColor: 'white',\n customFontColor: '',\n customColorHint: 'Enter a 3 or 6-digit hex color code',\n colors: [\n {\n text: 'Yellow',\n value: 'yellow',\n },\n {\n text: 'Orange',\n value: 'orange',\n },\n {\n text: 'Red',\n value: 'red',\n },\n {\n text: 'Purple',\n value: 'purple',\n },\n {\n text: 'Blue',\n value: 'blue',\n },\n {\n text: 'Green',\n value: 'green',\n },\n {\n text: 'Black',\n value: 'black',\n },\n {\n text: 'White',\n value: 'white',\n },\n {\n text: 'Custom',\n value: false,\n },\n ],\n rules: {\n customColor: (value) => {\n return (\n /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value) || this.customColorHint\n )\n },\n },\n }\n },\n computed: {\n saveObj: function () {\n return JSON.stringify({\n text: this.text,\n fontColor: this.selectedFontColor || this.customFontColor,\n backgroundColor:\n this.selectedBackgroundColor || this.customBackgroundColor,\n topHeight: this.displayTopBanner ? this.topHeight : 0,\n bottomHeight: this.displayBottomBanner ? this.bottomHeight : 0,\n })\n },\n formValid: function () {\n return (\n (this.selectedFontColor ||\n this.rules.customColor(this.customFontColor) === true) &&\n (this.selectedBackgroundColor ||\n this.rules.customColor(this.customBackgroundColor) === true)\n )\n },\n },\n watch: {\n customFontColor: function (val) {\n if (val && val.length && !val.startsWith('#')) {\n this.customFontColor = `#${val}`\n }\n },\n customBackgroundColor: function (val) {\n if (val && val.length && !val.startsWith('#')) {\n this.customBackgroundColor = `#${val}`\n }\n },\n },\n created() {\n this.api = new OpenC3Api()\n this.load()\n },\n methods: {\n load: function () {\n this.api\n .get_setting(settingName)\n .then((response) => {\n this.errorLoading = false\n if (response) {\n const parsed = JSON.parse(response)\n this.text = parsed.text\n this.topHeight = parsed.topHeight\n this.bottomHeight = parsed.bottomHeight\n this.displayTopBanner = parsed.topHeight !== 0\n this.displayBottomBanner = parsed.bottomHeight !== 0\n if (\n parsed.backgroundColor &&\n parsed.backgroundColor.startsWith('#')\n ) {\n this.customBackgroundColor = parsed.backgroundColor\n this.selectedBackgroundColor = false\n } else {\n this.selectedBackgroundColor = parsed.backgroundColor\n }\n if (parsed.fontColor && parsed.fontColor.startsWith('#')) {\n this.customFontColor = parsed.fontColor\n this.selectedFontColor = false\n } else {\n this.selectedFontColor = parsed.fontColor\n }\n }\n })\n .catch((error) => {\n //console.error(error)\n this.errorLoading = true\n })\n },\n save: function () {\n this.api\n .save_setting(settingName, this.saveObj)\n .then((response) => {\n this.errorSaving = false\n this.successSaving = true\n })\n .catch((error) => {\n //console.error(error)\n this.errorSaving = true\n })\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/@vue/cli-plugin-babel/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/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ClassificationBannerSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/@vue/cli-plugin-babel/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/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ClassificationBannerSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClassificationBannerSettings.vue?vue&type=template&id=4f08cb8c&\"\nimport script from \"./ClassificationBannerSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./ClassificationBannerSettings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\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\n<template>\n <div>\n <v-card>\n <v-card-title> Reset suppressed warnings </v-card-title>\n <v-card-subtitle>\n This resets \"don't show this again\" dialogs on this browser\n </v-card-subtitle>\n <v-card-text class=\"pb-0 ml-2\">\n <template v-if=\"suppressedWarnings.length\">\n <v-checkbox\n v-model=\"selectAllSuppressedWarnings\"\n label=\"Select all\"\n class=\"mt-0\"\n data-test=\"select-all-suppressed-warnings\"\n />\n <v-checkbox\n v-for=\"warning in suppressedWarnings\"\n :key=\"warning.key\"\n v-model=\"selectedSuppressedWarnings\"\n :label=\"warning.text\"\n :value=\"warning.key\"\n class=\"mt-0\"\n dense\n />\n </template>\n <template v-else> No warnings to reset </template>\n </v-card-text>\n <v-card-actions>\n <v-btn\n :disabled=\"!selectedSuppressedWarnings.length\"\n @click=\"resetSuppressedWarnings\"\n color=\"warning\"\n text\n class=\"ml-2\"\n data-test=\"reset-suppressed-warnings\"\n >\n Reset\n </v-btn>\n </v-card-actions>\n </v-card>\n <v-divider />\n <v-card>\n <v-card-title> Clear recent configs </v-card-title>\n <v-card-subtitle>\n This clears the most recently saved/loaded tool configs on this browser\n </v-card-subtitle>\n <v-card-text class=\"pb-0 ml-2\">\n <template v-if=\"lastConfigs.length\">\n <v-checkbox\n v-model=\"selectAllLastConfigs\"\n label=\"Select all\"\n class=\"mt-0\"\n data-test=\"select-all-last-configs\"\n />\n <v-checkbox\n v-for=\"config in lastConfigs\"\n :key=\"config.key\"\n v-model=\"selectedLastConfigs\"\n :label=\"`${config.text} (${config.value})`\"\n :value=\"config.key\"\n class=\"mt-0\"\n dense\n />\n </template>\n <template v-else> No configs to clear </template>\n </v-card-text>\n <v-card-actions>\n <v-btn\n :disabled=\"!selectedLastConfigs.length\"\n @click=\"clearLastConfigs\"\n color=\"warning\"\n text\n class=\"ml-2\"\n data-test=\"clear-last-configs\"\n >\n Clear\n </v-btn>\n </v-card-actions>\n </v-card>\n <v-divider />\n <classification-banner-settings />\n <v-divider />\n <v-card>\n <v-card-title> Source code URL </v-card-title>\n <v-card-subtitle>\n This sets the URL for the \"Source\" link in the footer. This is required\n under the AGPL license.\n </v-card-subtitle>\n <v-card-text class=\"pb-0 ml-2\">\n <v-text-field\n label=\"Source URL\"\n v-model=\"sourceUrl\"\n data-test=\"source-url\"\n />\n </v-card-text>\n <v-card-actions>\n <v-container class=\"pt-0\">\n <v-row dense>\n <v-col class=\"pl-0\">\n <v-btn\n @click=\"saveSourceUrl\"\n color=\"success\"\n text\n data-test=\"save-source-url\"\n >\n Save\n </v-btn>\n </v-col>\n </v-row>\n <v-alert v-model=\"errorSaving\" type=\"error\" dismissible dense>\n Error saving\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" dismissible dense>\n Saved! (Refresh the page to see changes)\n </v-alert>\n </v-container>\n </v-card-actions>\n </v-card>\n <v-divider />\n <v-card>\n <v-card-title> Rubygems URL </v-card-title>\n <v-card-subtitle>\n This sets the URL for installing dependency rubygems. Also used for\n rubygem discovery.\n </v-card-subtitle>\n <v-card-text class=\"pb-0 ml-2\">\n <v-text-field\n label=\"Rubygems URL\"\n v-model=\"rubygemsUrl\"\n data-test=\"rubygems-url\"\n />\n </v-card-text>\n <v-card-actions>\n <v-container class=\"pt-0\">\n <v-row dense>\n <v-col class=\"pl-0\">\n <v-btn\n @click=\"saveRubygemsUrl\"\n color=\"success\"\n text\n data-test=\"save-rubygems-url\"\n >\n Save\n </v-btn>\n </v-col>\n </v-row>\n <v-alert v-model=\"errorSaving\" type=\"error\" dismissible dense>\n Error saving\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" dismissible dense>\n Saved! (Refresh the page to see changes)\n </v-alert>\n </v-container>\n </v-card-actions>\n </v-card>\n </div>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\nimport ClassificationBannerSettings from '@/tools/OpenC3Admin/ClassificationBannerSettings.vue'\n\nexport default {\n components: {\n ClassificationBannerSettings,\n },\n data() {\n return {\n api: new OpenC3Api(),\n suppressedWarnings: [],\n selectedSuppressedWarnings: [],\n selectAllSuppressedWarnings: false,\n lastConfigs: [],\n selectedLastConfigs: [],\n selectAllLastConfigs: false,\n sourceUrl: '',\n rubygemsUrl: '',\n errorSaving: false,\n successSaving: false,\n }\n },\n watch: {\n selectAllSuppressedWarnings: function (val) {\n if (val) {\n this.selectedSuppressedWarnings = this.suppressedWarnings.map(\n (warning) => warning.key\n )\n } else {\n this.selectedSuppressedWarnings = []\n }\n },\n selectAllLastConfigs: function (val) {\n if (val) {\n this.selectedLastConfigs = this.lastConfigs.map((config) => config.key)\n } else {\n this.selectedLastConfigs = []\n }\n },\n },\n created() {\n this.loadSuppressedWarnings()\n this.loadLastConfigs()\n this.loadSourceUrl()\n this.loadRubygemsUrl()\n },\n methods: {\n loadSuppressedWarnings: function () {\n this.suppressedWarnings = Object.keys(localStorage)\n .filter((key) => {\n return key.startsWith('suppresswarning__')\n })\n .map(this.localStorageKeyToDisplayObject)\n this.selectedSuppressedWarnings = []\n },\n resetSuppressedWarnings: function () {\n this.deleteLocalStorageKeys(this.selectedSuppressedWarnings)\n this.loadSuppressedWarnings()\n },\n loadLastConfigs: function () {\n this.lastConfigs = Object.keys(localStorage)\n .filter((key) => {\n return key.startsWith('lastconfig__')\n })\n .map(this.localStorageKeyToDisplayObject)\n this.selectedLastConfigs = []\n },\n clearLastConfigs: function () {\n this.deleteLocalStorageKeys(this.selectedLastConfigs)\n this.loadLastConfigs()\n },\n deleteLocalStorageKeys: function (keys) {\n for (const key of keys) {\n delete localStorage[key]\n }\n },\n localStorageKeyToDisplayObject: function (key) {\n const name = key.split('__')[1].replaceAll('_', ' ')\n return {\n key,\n text: name.charAt(0).toUpperCase() + name.slice(1),\n value: localStorage[key],\n }\n },\n loadSourceUrl: function () {\n this.api\n .get_setting('source_url')\n .then((response) => {\n this.sourceUrl = response\n })\n .catch(() => {\n this.sourceUrl = 'https://github.com/OpenC3/openc3'\n })\n },\n saveSourceUrl: function () {\n this.api\n .save_setting('source_url', this.sourceUrl)\n .then((response) => {\n this.errorSaving = false\n this.successSaving = true\n })\n .catch((error) => {\n this.errorSaving = true\n })\n },\n loadRubygemsUrl: function () {\n this.api\n .get_setting('rubygems_url')\n .then((response) => {\n this.rubygemsUrl = response\n })\n .catch(() => {\n this.rubygemsUrl = 'https://rubygems.org'\n })\n },\n saveRubygemsUrl: function () {\n this.api\n .save_setting('rubygems_url', this.rubygemsUrl)\n .then((response) => {\n this.errorSaving = false\n this.successSaving = true\n })\n .catch((error) => {\n this.errorSaving = true\n })\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../../node_modules/@vue/cli-plugin-babel/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/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SettingsTab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/@vue/cli-plugin-babel/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/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SettingsTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SettingsTab.vue?vue&type=template&id=ea8d7ea4&\"\nimport script from \"./SettingsTab.vue?vue&type=script&lang=js&\"\nexport * from \"./SettingsTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (searchValue != null) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}"],"names":["vueInstance","Vue","axiosInstance","axios","baseURL","location","origin","timeout","params","interceptors","response","use","error","status","localStorage","openc3Token","OpenC3Auth","login","href","axiosIgnoreResponse","toString","Promise","reject","body","statusText","config","data","message","exception","class","$notify","serious","title","render","_vm","this","_h","$createElement","_c","_self","_v","staticClass","suppressedWarnings","attrs","model","value","callback","$$v","selectAllSuppressedWarnings","expression","_l","warning","key","text","selectedSuppressedWarnings","length","on","resetSuppressedWarnings","lastConfigs","selectAllLastConfigs","selectedLastConfigs","clearLastConfigs","sourceUrl","saveSourceUrl","errorSaving","successSaving","rubygemsUrl","saveRubygemsUrl","staticRenderFns","_readOnlyError","name","TypeError","OpenC3Api","method","kwparams","updateToken","defaultMinValidity","id","scope","jsonrpc","keyword_params","headers","Authorization","result","err","Error","request","val","json_class","raw","NaN","Infinity","Number","isNaN","POSITIVE_INFINITY","NEGATIVE_INFINITY","exec","interface_name","router_name","target_commands","target","packet","item","log_writer_name","limits_set","target_name","packet_name","value_type","type","len","converted","i","decode_openc3_type","items","item_name","command_name","parameter_name","param_list","Object","prototype","hasOwnProperty","call","encode_openc3_type","undefined","_cmd","tool","ignored","array","string","window","isSecureContext","arrayBuffer","TextEncoder","encode","crypto","subtle","digest","hashAsArrayBuffer","uint8ViewOfHash","Uint8Array","Array","from","map","b","padStart","join","errorLoading","colors","scopedSlots","_u","fn","selectedBackgroundColor","proxy","_e","_s","customColorHint","rules","customColor","directives","rawName","customBackgroundColor","selectedFontColor","customFontColor","displayTopBanner","topHeight","displayBottomBanner","bottomHeight","formValid","save","api","computed","saveObj","fontColor","backgroundColor","watch","created","methods","load","get_setting","settingName","then","parsed","catch","save_setting","component","components","ClassificationBannerSettings","loadSuppressedWarnings","filter","loadLastConfigs","deleteLocalStorageKeys","keys","localStorageKeyToDisplayObject","loadSourceUrl","loadRubygemsUrl","defineBuiltIn","module","exports","src","options","userAgent","test","uncurryThis","toLength","$repeat","requireObjectCoercible","repeat","stringSlice","slice","ceil","Math","createMethod","IS_END","$this","maxLength","fillString","fillLen","stringFiller","S","intMaxLength","stringLength","fillStr","start","end","$","$padStart","WEBKIT_BUG","proto","forced","arguments","isCallable","isRegExp","getMethod","getRegExpFlags","getSubstitution","wellKnownSymbol","IS_PURE","REPLACE","$TypeError","indexOf","replace","max","stringIndexOf","searchValue","fromIndex","replaceAll","replaceValue","IS_REG_EXP","flags","replacer","searchString","functionalReplace","searchLength","advanceBy","replacement","O","position","endOfLastMatch","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","isArray","unsupportedIterableToArray","F","s","n","done","e","f","normalCompletion","didErr","step","next","_e2"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (self["webpackChunk_openc3_tool_admin"]=self["webpackChunk_openc3_tool_admin"]||[]).push([[251],{3251:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return A}});var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("top-bar",{attrs:{title:e.title}}),n("v-card",[n("v-tabs",{attrs:{"fixed-tabs":""},model:{value:e.curTab,callback:function(t){e.curTab=t},expression:"curTab"}},e._l(e.tabs,(function(t,a){return n("v-tab",{key:a,attrs:{to:t.path}},[e._v(" "+e._s(t.displayName)+" ")])})),1),n("router-view")],1)],1)},o=[],r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("mounting-portal",{attrs:{"mount-to":"#openc3-menu",append:""}},[n("div",{staticClass:"v-toolbar__content"},[e._l(e.menus,(function(t,a){return n("v-menu",{key:a,attrs:{"offset-y":""},scopedSlots:e._u([{key:"activator",fn:function(a){var o=a.on,r=a.attrs;return[n("v-btn",e._g(e._b({staticClass:"mx-1",attrs:{outlined:"","data-test":e.formatDT(e.title+" "+t.label)}},"v-btn",r,!1),o),[n("span",{domProps:{textContent:e._s(t.label)}}),n("v-icon",{attrs:{right:""}},[e._v(" mdi-menu-down ")])],1)]}}],null,!0)},[n("v-list",[n("v-radio-group",{staticClass:"ma-0 pa-0",attrs:{value:t.radioGroup,"hide-details":"",dense:""}},[e._l(t.items,(function(a,o){return[a.divider?n("v-divider"):n("v-list-item",{key:o,attrs:{disabled:a.disabled,"data-test":e.formatDT(e.title+" "+t.label+" "+a.label)},on:{click:a.command}},[a.radio?n("v-list-item-action",[n("v-radio",{attrs:{color:"secondary",label:a.label,value:a.label}})],1):e._e(),a.checkbox?n("v-list-item-action",[n("v-checkbox",{attrs:{color:"secondary",label:a.label,value:a.label},model:{value:e.checked,callback:function(t){e.checked=t},expression:"checked"}})],1):e._e(),a.icon?n("v-list-item-icon",[n("v-icon",{attrs:{disabled:a.disabled}},[e._v(e._s(a.icon))])],1):e._e(),a.radio||a.checkbox?e._e():n("v-list-item-title",{style:"cursor: pointer;"+(a.disabled?"opacity: 0.2":"")},[e._v(e._s(a.label))])],1)]}))],2)],1)],1)})),n("v-spacer"),n("v-toolbar-title",[e._v(e._s(e.title))]),n("v-spacer")],2)])},i=[],l=(n(7950),n(5940),n(1639),{props:{menus:{type:Array,default:function(){return[]}},title:{type:String,default:""}},methods:{formatDT:function(e){return e.replaceAll(" ","-").toLowerCase()}}}),s=l,c=(n(5741),n(3287)),u=(0,c.Z)(s,r,i,!1,null,"3237297b",null),d=u.exports,p=n(8229);function m(){var e="/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/OpenC3Admin.vue",t="d5227e1585af3e9a401f09d6e5b29e26f1e79aba",n=new Function("return this")(),a="__coverage__",o={path:"/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/OpenC3Admin.vue",statementMap:{0:{start:{line:43,column:4},end:{line:47,column:5}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:42,column:2},end:{line:42,column:3}},loc:{start:{line:42,column:9},end:{line:48,column:3}},line:42}},branchMap:{},s:{0:0},f:{0:0},b:{},inputSourceMap:{version:3,sources:["OpenC3Admin.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"OpenC3Admin.vue",sourceRoot:"src/tools/OpenC3Admin",sourcesContent:['\x3c!--\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--\x3e\n\n<template>\n <div>\n <top-bar :title="title" />\n <v-card>\n <v-tabs v-model="curTab" fixed-tabs>\n <v-tab v-for="(tab, index) in tabs" :key="index" :to="tab.path">\n {{ tab.displayName }}\n </v-tab>\n </v-tabs>\n <router-view />\n </v-card>\n </div>\n</template>\n\n<script>\nimport TopBar from \'@openc3/tool-common/src/components/TopBar\'\nimport { TabsList } from \'./tabs\'\n\nexport default {\n components: {\n TopBar,\n },\n data() {\n return {\n title: \'OpenC3 Administrator Console\',\n curTab: null,\n tabs: TabsList,\n }\n },\n methods: {},\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"d5227e1585af3e9a401f09d6e5b29e26f1e79aba"},r=n[a]||(n[a]={});r[e]&&r[e].hash===t||(r[e]=o);var i=r[e];return m=function(){return i},i}m();var v={components:{TopBar:d},data:function(){return m().f[0]++,m().s[0]++,{title:"OpenC3 Administrator Console",curTab:null,tabs:p.d}},methods:{}},b=v,f=(0,c.Z)(b,a,o,!1,null,null,null),A=f.exports},7764:function(e,t,n){"use strict";n.r(t);var a=n(3467),o=n.n(a),r=n(8715),i=n.n(r),l=i()(o());l.push([e.id,".v-list[data-v-3237297b] .v-label{margin-left:5px}.v-list-item__icon[data-v-3237297b]{margin-right:15px!important}.v-list-item__title[data-v-3237297b]{color:#fff}",""]),t["default"]=l},1639:function(e,t,n){"use strict";var a=n(3103),o=n(266),r=n(5968),i=n(8885),l=n(6733),s=n(8311),c=n(3326),u=n(5300),d=n(3349),p=n(17),m=n(95),v=n(4231),b=m("replace"),f=TypeError,A=r("".indexOf),h=r("".replace),_=r("".slice),C=Math.max,g=function(e,t,n){return n>e.length?-1:""===t?n:A(e,t,n)};a({target:"String",proto:!0},{replaceAll:function(e,t){var n,a,r,m,T,y,x,k,w,O=i(this),R=0,S=0,M="";if(null!=e){if(n=s(e),n&&(a=c(i(d(e))),!~A(a,"g")))throw f("`.replaceAll` does not allow non-global regexes");if(r=u(e,b),r)return o(r,e,O,t);if(v&&n)return h(c(O),e,t)}m=c(O),T=c(e),y=l(t),y||(t=c(t)),x=T.length,k=C(1,x),R=g(m,T,0);while(-1!==R)w=y?c(t(T,R,m)):p(T,m,R,[],void 0,t),M+=_(m,S,R)+w,S=R+x,R=g(m,T,R+k);return S<m.length&&(M+=_(m,S)),M}})},5741:function(e,t,n){var a=n(7764);a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[e.id,a,""]]),a.locals&&(e.exports=a.locals);var o=n(3514).Z;o("9f637652",a,!0,{sourceMap:!1,shadowMode:!1})}}]);
2
- //# sourceMappingURL=251.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/251.js","mappings":"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","sources":["webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/OpenC3Admin.vue?4a83","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/TopBar.vue?79bd","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/TopBar.vue","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/TopBar.vue?231a","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/TopBar.vue?d9e2","webpack://@openc3/tool-admin/src/tools/OpenC3Admin/OpenC3Admin.vue","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/OpenC3Admin.vue?bac4","webpack://@openc3/tool-admin/./src/tools/OpenC3Admin/OpenC3Admin.vue","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/TopBar.vue?bfe1","webpack://@openc3/tool-admin/../../node_modules/core-js/modules/es.string.replace-all.js","webpack://@openc3/tool-admin/../openc3-tool-common/src/components/TopBar.vue?1e7c"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('top-bar',{attrs:{\"title\":_vm.title}}),_c('v-card',[_c('v-tabs',{attrs:{\"fixed-tabs\":\"\"},model:{value:(_vm.curTab),callback:function ($$v) {_vm.curTab=$$v},expression:\"curTab\"}},_vm._l((_vm.tabs),function(tab,index){return _c('v-tab',{key:index,attrs:{\"to\":tab.path}},[_vm._v(\" \"+_vm._s(tab.displayName)+\" \")])}),1),_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('mounting-portal',{attrs:{\"mount-to\":\"#openc3-menu\",\"append\":\"\"}},[_c('div',{staticClass:\"v-toolbar__content\"},[_vm._l((_vm.menus),function(menu,i){return _c('v-menu',{key:i,attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mx-1\",attrs:{\"outlined\":\"\",\"data-test\":_vm.formatDT((_vm.title + \" \" + (menu.label)))}},'v-btn',attrs,false),on),[_c('span',{domProps:{\"textContent\":_vm._s(menu.label)}}),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-menu-down \")])],1)]}}],null,true)},[_c('v-list',[_c('v-radio-group',{staticClass:\"ma-0 pa-0\",attrs:{\"value\":menu.radioGroup,\"hide-details\":\"\",\"dense\":\"\"}},[_vm._l((menu.items),function(option,j){return [(option.divider)?_c('v-divider'):_c('v-list-item',{key:j,attrs:{\"disabled\":option.disabled,\"data-test\":_vm.formatDT((_vm.title + \" \" + (menu.label) + \" \" + (option.label)))},on:{\"click\":option.command}},[(option.radio)?_c('v-list-item-action',[_c('v-radio',{attrs:{\"color\":\"secondary\",\"label\":option.label,\"value\":option.label}})],1):_vm._e(),(option.checkbox)?_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"color\":\"secondary\",\"label\":option.label,\"value\":option.label},model:{value:(_vm.checked),callback:function ($$v) {_vm.checked=$$v},expression:\"checked\"}})],1):_vm._e(),(option.icon)?_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":option.disabled}},[_vm._v(_vm._s(option.icon))])],1):_vm._e(),(!option.radio && !option.checkbox)?_c('v-list-item-title',{style:('cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : ''))},[_vm._v(_vm._s(option.label))]):_vm._e()],1)]})],2)],1)],1)}),_c('v-spacer'),_c('v-toolbar-title',[_vm._v(_vm._s(_vm.title))]),_c('v-spacer')],2)])}\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 2022, OpenC3, Inc.\n# All Rights Reserved\n-->\n\n<template>\n <mounting-portal mount-to=\"#openc3-menu\" append>\n <div class=\"v-toolbar__content\">\n <v-menu offset-y v-for=\"(menu, i) in menus\" :key=\"i\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn\n outlined\n v-bind=\"attrs\"\n v-on=\"on\"\n class=\"mx-1\"\n :data-test=\"formatDT(`${title} ${menu.label}`)\"\n >\n <span v-text=\"menu.label\" />\n <v-icon right> mdi-menu-down </v-icon>\n </v-btn>\n </template>\n <v-list>\n <!-- The radio-group is necessary in case the application wants radio buttons -->\n <v-radio-group\n :value=\"menu.radioGroup\"\n hide-details\n dense\n class=\"ma-0 pa-0\"\n >\n <template v-for=\"(option, j) in menu.items\">\n <v-divider v-if=\"option.divider\" />\n <v-list-item\n v-else\n @click=\"option.command\"\n :disabled=\"option.disabled\"\n :data-test=\"formatDT(`${title} ${menu.label} ${option.label}`)\"\n :key=\"j\"\n >\n <v-list-item-action v-if=\"option.radio\">\n <v-radio\n color=\"secondary\"\n :label=\"option.label\"\n :value=\"option.label\"\n />\n </v-list-item-action>\n <v-list-item-action v-if=\"option.checkbox\">\n <v-checkbox\n v-model=\"checked\"\n color=\"secondary\"\n :label=\"option.label\"\n :value=\"option.label\"\n />\n </v-list-item-action>\n <v-list-item-icon v-if=\"option.icon\">\n <v-icon :disabled=\"option.disabled\">{{ option.icon }}</v-icon>\n </v-list-item-icon>\n <v-list-item-title\n v-if=\"!option.radio && !option.checkbox\"\n :style=\"\n 'cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : '')\n \"\n >{{ option.label }}</v-list-item-title\n >\n </v-list-item>\n </template>\n </v-radio-group>\n </v-list>\n </v-menu>\n <v-spacer />\n <v-toolbar-title>{{ title }}</v-toolbar-title>\n <v-spacer />\n </div>\n </mounting-portal>\n</template>\n\n<script>\nexport default {\n props: {\n menus: {\n type: Array,\n default: function () {\n return []\n },\n },\n title: {\n type: String,\n default: '',\n },\n },\n methods: {\n // Convert the string to a standard data-test format\n formatDT: function (string) {\n return string.replaceAll(' ', '-').toLowerCase()\n },\n },\n}\n</script>\n\n<style scoped>\n.v-list >>> .v-label {\n margin-left: 5px;\n}\n.v-list-item__icon {\n /* For some reason the default margin-right is huge */\n margin-right: 15px !important;\n}\n.v-list-item__title {\n color: white;\n}\n</style>\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-babel/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/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-babel/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/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TopBar.vue?vue&type=template&id=3237297b&scoped=true&\"\nimport script from \"./TopBar.vue?vue&type=script&lang=js&\"\nexport * from \"./TopBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TopBar.vue?vue&type=style&index=0&id=3237297b&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3237297b\",\n null\n \n)\n\nexport default component.exports","<!--\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\n<template>\n <div>\n <top-bar :title=\"title\" />\n <v-card>\n <v-tabs v-model=\"curTab\" fixed-tabs>\n <v-tab v-for=\"(tab, index) in tabs\" :key=\"index\" :to=\"tab.path\">\n {{ tab.displayName }}\n </v-tab>\n </v-tabs>\n <router-view />\n </v-card>\n </div>\n</template>\n\n<script>\nimport TopBar from '@openc3/tool-common/src/components/TopBar'\nimport { TabsList } from './tabs'\n\nexport default {\n components: {\n TopBar,\n },\n data() {\n return {\n title: 'OpenC3 Administrator Console',\n curTab: null,\n tabs: TabsList,\n }\n },\n methods: {},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/@vue/cli-plugin-babel/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/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OpenC3Admin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/@vue/cli-plugin-babel/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/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OpenC3Admin.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OpenC3Admin.vue?vue&type=template&id=20aac7b9&\"\nimport script from \"./OpenC3Admin.vue?vue&type=script&lang=js&\"\nexport * from \"./OpenC3Admin.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/@vue/cli-service/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, \".v-list[data-v-3237297b] .v-label{margin-left:5px}.v-list-item__icon[data-v-3237297b]{margin-right:15px!important}.v-list-item__title[data-v-3237297b]{color:#fff}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (searchValue != null) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=style&index=0&id=3237297b&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(\"9f637652\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","title","model","value","callback","$$v","curTab","expression","_l","tab","index","key","path","_v","_s","displayName","staticRenderFns","staticClass","menu","i","scopedSlots","_u","fn","ref","on","_g","_b","formatDT","domProps","label","radioGroup","option","j","disabled","command","_e","checked","icon","radio","checkbox","style","props","menus","type","default","methods","component","components","TopBar","data","tabs","___CSS_LOADER_EXPORT___","push","module","id","$","call","uncurryThis","requireObjectCoercible","isCallable","isRegExp","toString","getMethod","getRegExpFlags","getSubstitution","wellKnownSymbol","IS_PURE","REPLACE","$TypeError","TypeError","indexOf","replace","stringSlice","slice","max","Math","stringIndexOf","string","searchValue","fromIndex","length","target","proto","replaceAll","replaceValue","IS_REG_EXP","flags","replacer","searchString","functionalReplace","searchLength","advanceBy","replacement","O","position","endOfLastMatch","result","undefined","content","__esModule","locals","exports","add"],"sourceRoot":""}
data/tools/admin/js/32.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";(self["webpackChunk_openc3_tool_admin"]=self["webpackChunk_openc3_tool_admin"]||[]).push([[32],{1032:function(n,e,t){t.r(e),t.d(e,{default:function(){return C}});var i=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",[t("v-list",{attrs:{"data-test":"microserviceList"}},n._l(n.microservices,(function(e,i){return t("div",{key:e},[t("v-list-item",[t("v-list-item-content",[t("v-list-item-title",[n._v(n._s(e))]),n.microservice_status[e]?t("v-list-item-subtitle",[n._v(" Updated: "+n._s(n.microservice_status[e].updated_at)+", State: "+n._s(n.microservice_status[e].state)+", Count: "+n._s(n.microservice_status[e].count)+" ")]):n._e()],1),t("div",{directives:[{name:"show",rawName:"v-show",value:!!n.microservice_status[e].error,expression:"!!microservice_status[microservice].error"}]},[t("v-list-item-icon",[t("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(i){var o=i.on,s=i.attrs;return[t("v-icon",n._g(n._b({on:{click:function(t){return n.showMicroserviceError(e)}}},"v-icon",s,!1),o),[n._v(" mdi-alert ")])]}}],null,!0)},[t("span",[n._v("View Error")])])],1)],1),t("v-list-item-icon",[t("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(i){var o=i.on,s=i.attrs;return[t("v-icon",n._g(n._b({on:{click:function(t){return n.showMicroservice(e)}}},"v-icon",s,!1),o),[n._v(" mdi-eye ")])]}}],null,!0)},[t("span",[n._v("Edit Microservice")])])],1)],1),i<n.microservices.length-1?t("v-divider",{key:i}):n._e()],1)})),0),n.showDialog?t("edit-dialog",{attrs:{content:n.jsonContent,title:"Microservice: "+n.dialogTitle,readonly:""},on:{submit:n.dialogCallback},model:{value:n.showDialog,callback:function(e){n.showDialog=e},expression:"showDialog"}}):n._e(),n.showError?t("text-box-dialog",{attrs:{text:n.jsonContent,title:n.dialogTitle},model:{value:n.showError,callback:function(e){n.showError=e},expression:"showError"}}):n._e()],1)},o=[],s=(t(6710),t(1261)),l=t(8221),c=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("v-dialog",{attrs:{width:"600"},model:{value:n.show,callback:function(e){n.show=e},expression:"show"}},[t("v-card",[t("v-system-bar",[t("v-spacer"),t("span",[n._v(" "+n._s(n.title)+" ")]),t("v-spacer"),t("div",{staticClass:"mx-2"},[t("v-tooltip",{attrs:{top:""},scopedSlots:n._u([{key:"activator",fn:function(e){var i=e.on,o=e.attrs;return[t("div",n._g(n._b({},"div",o,!1),i),[t("v-icon",{attrs:{"data-test":"downloadIcon"},on:{click:n.download}},[n._v(" mdi-download ")])],1)]}}])},[t("span",[n._v(" Download ")])])],1)],1),t("div",{staticClass:"pa-2"},[t("v-card-text",[t("v-textarea",{attrs:{readonly:"",rows:"15","data-test":"dialogText"},model:{value:n.dialogText,callback:function(e){n.dialogText=e},expression:"dialogText"}})],1)],1),t("v-card-actions",[t("v-spacer"),t("v-btn",{staticClass:"mx-2",attrs:{color:"primary"},on:{click:function(e){n.show=!n.show}}},[n._v(" Ok ")])],1)],1)],1)},r=[],a=(t(8188),t(8673),t(6886),t(4121),t(523),{props:{value:Boolean,text:String,title:String},computed:{dialogText:function(){return this.text},show:{get:function(){return this.value},set:function(n){this.$emit("input",n)}}},methods:{download:function(){var n=new Blob([this.dialogText],{type:"text/plain"}),e=document.createElement("a");e.href=URL.createObjectURL(n),e.setAttribute("download","".concat(this.title,"__error.txt")),e.click()}}}),m=a,u=t(3287),d=(0,u.Z)(m,c,r,!1,null,null,null),A=d.exports;function v(){var n="/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/MicroservicesTab.vue",e="327b7c98d580f3c017cfb41bf4cd3d1c334ff8d8",t=new Function("return this")(),i="__coverage__",o={path:"/openc3/plugins/packages/openc3-tool-admin/src/tools/OpenC3Admin/tabs/MicroservicesTab.vue",statementMap:{0:{start:{line:95,column:4},end:{line:103,column:5}},1:{start:{line:106,column:4},end:{line:106,column:17}},2:{start:{line:110,column:6},end:{line:112,column:8}},3:{start:{line:111,column:8},end:{line:111,column:48}},4:{start:{line:113,column:6},end:{line:115,column:8}},5:{start:{line:114,column:8},end:{line:114,column:42}},6:{start:{line:118,column:6},end:{line:123,column:8}},7:{start:{line:119,column:8},end:{line:119,column:35}},8:{start:{line:120,column:8},end:{line:120,column:31}},9:{start:{line:121,column:8},end:{line:121,column:68}},10:{start:{line:122,column:8},end:{line:122,column:30}},11:{start:{line:126,column:6},end:{line:126,column:29}},12:{start:{line:127,column:16},end:{line:127,column:52}},13:{start:{line:128,column:6},end:{line:128,column:54}},14:{start:{line:129,column:6},end:{line:129,column:27}},15:{start:{line:132,column:6},end:{line:132,column:29}},16:{start:{line:133,column:6},end:{line:155,column:7}},17:{start:{line:134,column:21},end:{line:134,column:40}},18:{start:{line:135,column:21},end:{line:135,column:26}},19:{start:{line:136,column:18},end:{line:136,column:69}},20:{start:{line:137,column:8},end:{line:140,column:9}},21:{start:{line:138,column:10},end:{line:138,column:25}},22:{start:{line:139,column:10},end:{line:139,column:43}},23:{start:{line:142,column:8},end:{line:154,column:10}},24:{start:{line:147,column:10},end:{line:147,column:46}},25:{start:{line:148,column:10},end:{line:148,column:36}},26:{start:{line:149,column:10},end:{line:149,column:31}},27:{start:{line:150,column:10},end:{line:152,column:18}},28:{start:{line:151,column:12},end:{line:151,column:34}},29:{start:{line:153,column:10},end:{line:153,column:23}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:94,column:2},end:{line:94,column:3}},loc:{start:{line:94,column:9},end:{line:104,column:3}},line:94},1:{name:"(anonymous_1)",decl:{start:{line:105,column:2},end:{line:105,column:3}},loc:{start:{line:105,column:12},end:{line:107,column:3}},line:105},2:{name:"(anonymous_2)",decl:{start:{line:109,column:12},end:{line:109,column:13}},loc:{start:{line:109,column:24},end:{line:116,column:5}},line:109},3:{name:"(anonymous_3)",decl:{start:{line:110,column:58},end:{line:110,column:59}},loc:{start:{line:110,column:72},end:{line:112,column:7}},line:110},4:{name:"(anonymous_4)",decl:{start:{line:113,column:48},end:{line:113,column:49}},loc:{start:{line:113,column:62},end:{line:115,column:7}},line:113},5:{name:"(anonymous_5)",decl:{start:{line:117,column:22},end:{line:117,column:23}},loc:{start:{line:117,column:38},end:{line:124,column:5}},line:117},6:{name:"(anonymous_6)",decl:{start:{line:118,column:56},end:{line:118,column:57}},loc:{start:{line:118,column:70},end:{line:123,column:7}},line:118},7:{name:"(anonymous_7)",decl:{start:{line:125,column:27},end:{line:125,column:28}},loc:{start:{line:125,column:43},end:{line:130,column:5}},line:125},8:{name:"(anonymous_8)",decl:{start:{line:131,column:20},end:{line:131,column:21}},loc:{start:{line:131,column:39},end:{line:156,column:5}},line:131},9:{name:"(anonymous_9)",decl:{start:{line:146,column:16},end:{line:146,column:17}},loc:{start:{line:146,column:30},end:{line:154,column:9}},line:146},10:{name:"(anonymous_10)",decl:{start:{line:150,column:21},end:{line:150,column:22}},loc:{start:{line:150,column:27},end:{line:152,column:11}},line:150}},branchMap:{0:{loc:{start:{line:133,column:6},end:{line:155,column:7}},type:"if",locations:[{start:{line:133,column:6},end:{line:155,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:133},1:{loc:{start:{line:137,column:8},end:{line:140,column:9}},type:"if",locations:[{start:{line:137,column:8},end:{line:140,column:9}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:137}},s:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0},b:{0:[0,0],1:[0,0]},inputSourceMap:{version:3,sources:["MicroservicesTab.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",file:"MicroservicesTab.vue",sourceRoot:"src/tools/OpenC3Admin/tabs",sourcesContent:['\x3c!--\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--\x3e\n\n<template>\n <div>\n <v-list data-test="microserviceList">\n <div v-for="(microservice, index) in microservices" :key="microservice">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title>{{ microservice }}</v-list-item-title>\n <v-list-item-subtitle v-if="microservice_status[microservice]">\n Updated: {{ microservice_status[microservice].updated_at }},\n State: {{ microservice_status[microservice].state }}, Count:\n {{ microservice_status[microservice].count }}\n </v-list-item-subtitle>\n </v-list-item-content>\n <div v-show="!!microservice_status[microservice].error">\n <v-list-item-icon>\n <v-tooltip bottom>\n <template v-slot:activator="{ on, attrs }">\n <v-icon\n @click="showMicroserviceError(microservice)"\n v-bind="attrs"\n v-on="on"\n >\n mdi-alert\n </v-icon>\n </template>\n <span>View Error</span>\n </v-tooltip>\n </v-list-item-icon>\n </div>\n <v-list-item-icon>\n <v-tooltip bottom>\n <template v-slot:activator="{ on, attrs }">\n <v-icon\n @click="showMicroservice(microservice)"\n v-bind="attrs"\n v-on="on"\n >\n mdi-eye\n </v-icon>\n </template>\n <span>Edit Microservice</span>\n </v-tooltip>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if="index < microservices.length - 1" :key="index" />\n </div>\n </v-list>\n <edit-dialog\n v-model="showDialog"\n v-if="showDialog"\n :content="jsonContent"\n :title="`Microservice: ${dialogTitle}`"\n readonly\n @submit="dialogCallback"\n />\n <text-box-dialog\n v-model="showError"\n v-if="showError"\n :text="jsonContent"\n :title="dialogTitle"\n />\n </div>\n</template>\n\n<script>\nimport Api from \'@openc3/tool-common/src/services/api\'\nimport EditDialog from \'@/tools/OpenC3Admin/EditDialog\'\nimport TextBoxDialog from \'@openc3/tool-common/src/components/TextBoxDialog\'\n\nexport default {\n components: {\n EditDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: \'\',\n dialogTitle: \'\',\n showDialog: false,\n showError: false,\n }\n },\n mounted() {\n this.update()\n },\n methods: {\n update: function () {\n Api.get(\'/openc3-api/microservice_status/all\').then((response) => {\n this.microservice_status = response.data\n })\n Api.get(\'/openc3-api/microservices\').then((response) => {\n this.microservices = response.data\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, \'\\t\')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, \'\\t\')\n this.showError = true\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = \'put\'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed[\'name\'] !== this.microservice_id) {\n method = \'post\'\n url = \'/openc3-api/microservices\'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = \'Modified Microservice\'\n this.alertType = \'success\'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"327b7c98d580f3c017cfb41bf4cd3d1c334ff8d8"},s=t[i]||(t[i]={});s[n]&&s[n].hash===e||(s[n]=o);var l=s[n];return v=function(){return l},l}v();var p={components:{EditDialog:l.Z,TextBoxDialog:A},data:function(){return v().f[0]++,v().s[0]++,{microservices:[],microservice_status:{},microservice_id:null,jsonContent:"",dialogTitle:"",showDialog:!1,showError:!1}},mounted:function(){v().f[1]++,v().s[1]++,this.update()},methods:{update:function(){var n=this;v().f[2]++,v().s[2]++,s.Z.get("/openc3-api/microservice_status/all").then((function(e){v().f[3]++,v().s[3]++,n.microservice_status=e.data})),v().s[4]++,s.Z.get("/openc3-api/microservices").then((function(e){v().f[4]++,v().s[5]++,n.microservices=e.data}))},showMicroservice:function(n){var e=this;v().f[5]++,v().s[6]++,s.Z.get("/openc3-api/microservices/".concat(n)).then((function(t){v().f[6]++,v().s[7]++,e.microservice_id=n,v().s[8]++,e.dialogTitle=n,v().s[9]++,e.jsonContent=JSON.stringify(t.data,null,"\t"),v().s[10]++,e.showDialog=!0}))},showMicroserviceError:function(n){v().f[7]++,v().s[11]++,this.dialogTitle=n;var e=(v().s[12]++,this.microservice_status[n].error);v().s[13]++,this.jsonContent=JSON.stringify(e,null,"\t"),v().s[14]++,this.showError=!0},dialogCallback:function(n){var e=this;if(v().f[8]++,v().s[15]++,this.showDialog=!1,v().s[16]++,null!==n){v().b[0][0]++;var t=(v().s[17]++,JSON.parse(n)),i=(v().s[18]++,"put"),o=(v().s[19]++,"/openc3-api/microservices/".concat(this.microservice_id));v().s[20]++,t["name"]!==this.microservice_id?(v().b[1][0]++,v().s[21]++,i="post",v().s[22]++,o="/openc3-api/microservices"):v().b[1][1]++,v().s[23]++,s.Z[i](o,{data:{json:n}}).then((function(n){v().f[9]++,v().s[24]++,e.alert="Modified Microservice",v().s[25]++,e.alertType="success",v().s[26]++,e.showAlert=!0,v().s[27]++,setTimeout((function(){v().f[10]++,v().s[28]++,e.showAlert=!1}),5e3),v().s[29]++,e.update()}))}else v().b[0][1]++}}},h=p,f=(0,u.Z)(h,i,o,!1,null,null,null),C=f.exports}}]);
2
- //# sourceMappingURL=32.js.map