cosmosc2-tool-autonomic 5.0.4 → 5.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2 @@
1
+ (self["webpackChunk_cosmosc2_tool_autonomic"]=self["webpackChunk_cosmosc2_tool_autonomic"]||[]).push([[99],{9985:function(n,e,t){"use strict";var o=t(8373),l=t(1720),a=t(9490),s=t(2741),i=function(){var n=(0,a.Z)((0,l.Z)().mark((function n(e,t){var o,a,i,r,c,u,d,A,m,p=arguments;return(0,l.Z)().wrap((function(n){while(1)switch(n.prev=n.next){case 0:if(o=p.length>2&&void 0!==p[2]?p[2]:{},a=o.data,i=o.params,r=void 0===i?{}:i,c=o.headers,u=o.noAuth,d=void 0!==u&&u,A=o.noScope,m=void 0!==A&&A,d){n.next=11;break}return n.prev=2,n.next=5,CosmosAuth.updateToken(CosmosAuth.defaultMinValidity);case 5:n.next=10;break;case 7:n.prev=7,n.t0=n["catch"](2),CosmosAuth.login();case 10:c["Authorization"]=localStorage.cosmosToken;case 11:return m||r["scope"]||(r["scope"]=localStorage.scope),n.abrupt("return",(0,s.Z)({method:e,url:t,data:a,params:r,headers:c}));case 13:case"end":return n.stop()}}),n,null,[[2,7]])})));return function(e,t){return n.apply(this,arguments)}}(),r={Accept:"application/json"},c=(0,o.Z)((0,o.Z)({},r),{},{"Content-Type":"application/json"});e["Z"]={get:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=e.params,o=e.headers,l=void 0===o?r:o,a=e.noScope,s=e.noAuth;return i("get",n,{params:t,headers:l,noScope:a,noAuth:s})},put:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=e.data,o=e.params,l=e.headers,a=void 0===l?c:l,s=e.noScope,r=e.noAuth;return i("put",n,{data:t,params:o,headers:a,noScope:s,noAuth:r})},post:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=e.data,o=e.params,l=e.headers,a=void 0===l?c:l,s=e.noScope,r=e.noAuth;return i("post",n,{data:t,params:o,headers:a,noScope:s,noAuth:r})},delete:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=e.params,o=e.headers,l=void 0===o?r:o,a=e.noScope,s=e.noAuth;return i("delete",n,{params:t,headers:l,noScope:a,noAuth:s})}}},2741:function(n,e,t){"use strict";t(8188),t(8233);var o=t(9644),l=t.n(o),a=t(4091),s=new a["default"],i=l().create({baseURL:location.origin,timeout:6e4,params:{}});i.interceptors.response.use((function(n){return n}),(function(n){if(n.response){if(401===n.response.status)delete localStorage.cosmosToken,CosmosAuth.login(location.href);else{var e,t,o,l,a,i,r,c,u,d;if(localStorage.axiosIgnoreResponse===n.response.status.toString())return Promise.reject(n);var A="HTTP ".concat(n.response.status," - ");if(null!==(e=n.response)&&void 0!==e&&e.statusText&&(A+="".concat(n.response.statusText," ")),null!==(t=n.response)&&void 0!==t&&null!==(o=t.config)&&void 0!==o&&o.data&&(A+="".concat(n.response.config.data," ")),null!==(l=n.response)&&void 0!==l&&null!==(a=l.data)&&void 0!==a&&a.message)A+="".concat(n.response.data.message);else if(null!==(i=n.response)&&void 0!==i&&null!==(r=i.data)&&void 0!==r&&r.exception)A+="".concat(n.response.data.exception);else if(null!==(c=n.response)&&void 0!==c&&null!==(u=c.data)&&void 0!==u&&null!==(d=u.error)&&void 0!==d&&d.message)n.response.data.error.class&&(A+="".concat(n.response.data.error.class," ")),A+="".concat(n.response.data.error.message);else{var m;A+="".concat(null===(m=n.response)||void 0===m?void 0:m.data)}s.$notify.serious({title:"Network error",body:A})}throw n}throw n})),e["Z"]=i},6911:function(n,e,t){"use strict";t.d(e,{Z:function(){return i}});var o=t(8373),l=t(6330),a=t(2209),s=t(3492);s.ConnectionMonitor.staleThreshold=60;var i=function(){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/cosmos-api/cable";(0,l.Z)(this,n),this._cable=s.createConsumer(e)}return(0,a.Z)(n,[{key:"disconnect",value:function(){this._cable.disconnect()}},{key:"createSubscription",value:function(n,e){var t=this,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return CosmosAuth.updateToken(CosmosAuth.defaultMinValidity).then((function(){return t._cable.subscriptions.create((0,o.Z)({channel:n,scope:e,token:localStorage.cosmosToken},a),l)}))}}]),n}()},1099:function(n,e,t){"use strict";t.r(e),t.d(e,{default:function(){return b}});var o=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",[t("v-card-title",{staticClass:"pb-0"},[t("v-tooltip",{attrs:{top:""},scopedSlots:n._u([{key:"activator",fn:function(e){var o=e.on,l=e.attrs;return[t("div",n._g(n._b({},"div",l,!1),o),[t("v-btn",{attrs:{icon:"","data-test":"group-download"},on:{click:n.downloadGroups}},[t("v-icon",[n._v(" mdi-download ")])],1)],1)]}}])},[t("span",[n._v(" Download Groups ")])]),t("div",{staticClass:"mx-2"},[n._v("Groups")]),t("v-spacer"),t("v-tooltip",{attrs:{top:""},scopedSlots:n._u([{key:"activator",fn:function(e){var o=e.on,l=e.attrs;return[t("div",n._g(n._b({},"div",l,!1),o),[t("v-btn",{attrs:{icon:"","data-test":"new-group"},on:{click:n.newGroup}},[t("v-icon",[n._v("mdi-database-plus")])],1)],1)]}}])},[t("span",[n._v(" New Group ")])])],1),t("v-card-title",[t("v-text-field",{attrs:{label:"Search","data-test":"group-search",dense:"",outlined:"","hide-details":""},model:{value:n.searchGroups,callback:function(e){n.searchGroups=e},expression:"searchGroups"}})],1),t("v-list",{attrs:{"data-test":"groupList"}},n._l(n.groups,(function(e,o){return t("div",{key:e.name},[t("v-list-item",[t("v-list-item-content",[t("v-list-item-title",[n._v(n._s(e.name))])],1),t("v-list-item-icon",[t("v-tooltip",{attrs:{bottom:""},scopedSlots:n._u([{key:"activator",fn:function(l){var a=l.on,s=l.attrs;return[t("div",n._g(n._b({},"div",s,!1),a),[t("v-btn",{attrs:{icon:"","data-test":"delete-group-"+o},on:{click:function(t){return n.deleteGroup(e)}}},[t("v-icon",[n._v(" mdi-delete ")])],1)],1)]}}],null,!0)},[t("span",[n._v("Delete Group")])])],1)],1),o<n.groups.length-1?t("v-divider",{key:o}):n._e()],1)})),0),t("v-card-title",{staticClass:"pb-0"},[t("v-tooltip",{attrs:{top:""},scopedSlots:n._u([{key:"activator",fn:function(e){var o=e.on,l=e.attrs;return[t("div",n._g(n._b({},"div",l,!1),o),[t("v-btn",{attrs:{icon:"","data-test":"events-download"},on:{click:n.downloadEvents}},[t("v-icon",[n._v(" mdi-download ")])],1)],1)]}}])},[t("span",[n._v(" Download Log ")])]),t("div",{staticClass:"mx-2"},[n._v("Events")]),t("v-spacer"),t("v-tooltip",{attrs:{top:""},scopedSlots:n._u([{key:"activator",fn:function(e){var o=e.on,l=e.attrs;return[t("div",n._g(n._b({},"div",l,!1),o),[t("v-btn",{attrs:{icon:"","data-test":"events-clear"},on:{click:n.clearEvents}},[t("v-icon",[n._v(" mdi-delete ")])],1)],1)]}}])},[t("span",[n._v(" Clear Log ")])])],1),t("v-card-title",[t("v-text-field",{attrs:{label:"Search","data-test":"events-search",dense:"",outlined:"","hide-details":""},model:{value:n.searchEvents,callback:function(e){n.searchEvents=e},expression:"searchEvents"}})],1),t("v-data-table",{attrs:{headers:n.headers,items:n.data,search:n.search,"calculate-widths":"","disable-pagination":"","hide-default-footer":"","multi-sort":"",dense:"",height:"55vh","data-test":"output-messages"}}),t("create-dialog",{attrs:{groups:n.triggerGroupNames},model:{value:n.showNewGroupDialog,callback:function(e){n.showNewGroupDialog=e},expression:"showNewGroupDialog"}})],1)},l=[],a=(t(3450),t(6710),t(8188),t(8673),t(6886),t(4121),t(523),t(9949),t(9805),t(8178),t(5881)),s=t(9985),i=t(6911),r=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",[t("v-dialog",{attrs:{width:"600"},model:{value:n.show,callback:function(e){n.show=e},expression:"show"}},[t("v-card",[t("form",{on:{submit:function(e){return e.preventDefault(),n.submitHandler.apply(null,arguments)}}},[t("v-system-bar",[t("v-spacer"),t("span",[n._v(" Create New Trigger Group ")]),t("v-spacer")],1),t("v-card-text",[t("div",{staticClass:"pa-3"},[t("v-text-field",{attrs:{label:"Group Name","data-test":"group-input-name",autofocus:"",dense:"",outlined:"","hide-details":""},model:{value:n.groupName,callback:function(e){n.groupName=e},expression:"groupName"}}),t("v-row",{attrs:{dense:""}},[t("v-sheet",{staticClass:"pa-4",attrs:{dark:""}},[t("pre",{domProps:{textContent:n._s(n.color)}})])],1),t("v-row",{attrs:{dense:"",align:"center",justify:"center"}},[t("v-color-picker",{attrs:{"hide-canvas":"","hide-inputs":"","hide-mode-switch":"","show-swatches":"",swatches:n.swatches,width:"100%","swatches-max-height":"100"},model:{value:n.color,callback:function(e){n.color=e},expression:"color"}})],1),t("v-row",{staticClass:"my-3"},[t("span",{directives:[{name:"show",rawName:"v-show",value:n.error,expression:"error"}],staticClass:"red--text"},[n._v(n._s(n.error))])]),t("v-row",[t("v-spacer"),t("v-btn",{staticClass:"mx-2",attrs:{outlined:"","data-test":"group-create-cancel-btn"},on:{click:n.clearHandler}},[n._v(" Cancel ")]),t("v-btn",{staticClass:"mx-2",attrs:{type:"submit",color:"primary","data-test":"group-create-submit-btn",disabled:!!n.error},on:{click:function(e){return e.preventDefault(),n.submitHandler.apply(null,arguments)}}},[n._v(" Ok ")])],1)],1)])],1)])],1)],1)},c=[];t(5794),t(9529),t(1235);function u(){var n="/cosmos/plugins/packages/cosmosc2-tool-autonomic/src/tools/Autonomic/Tabs/Overview/CreateDialog.vue",e="d2785ec907ac5ce169c4930761f7a6f58f026746",t=new Function("return this")(),o="__coverage__",l={path:"/cosmos/plugins/packages/cosmosc2-tool-autonomic/src/tools/Autonomic/Tabs/Overview/CreateDialog.vue",statementMap:{0:{start:{line:102,column:4},end:{line:115,column:5}},1:{start:{line:113,column:29},end:{line:113,column:50}},2:{start:{line:119,column:6},end:{line:121,column:7}},3:{start:{line:120,column:8},end:{line:120,column:52}},4:{start:{line:122,column:6},end:{line:124,column:7}},5:{start:{line:123,column:8},end:{line:123,column:73}},6:{start:{line:126,column:6},end:{line:128,column:7}},7:{start:{line:127,column:8},end:{line:127,column:94}},8:{start:{line:129,column:6},end:{line:129,column:17}},9:{start:{line:133,column:8},end:{line:133,column:25}},10:{start:{line:136,column:8},end:{line:136,column:34}},11:{start:{line:142,column:6},end:{line:142,column:28}},12:{start:{line:143,column:6},end:{line:143,column:25}},13:{start:{line:144,column:6},end:{line:144,column:28}},14:{start:{line:147,column:19},end:{line:147,column:48}},15:{start:{line:148,column:6},end:{line:153,column:31}},16:{start:{line:154,column:6},end:{line:154,column:25}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:101,column:2},end:{line:101,column:3}},loc:{start:{line:101,column:9},end:{line:116,column:3}},line:101},1:{name:"(anonymous_1)",decl:{start:{line:113,column:18},end:{line:113,column:19}},loc:{start:{line:113,column:29},end:{line:113,column:50}},line:113},2:{name:"(anonymous_2)",decl:{start:{line:118,column:11},end:{line:118,column:12}},loc:{start:{line:118,column:23},end:{line:130,column:5}},line:118},3:{name:"(anonymous_3)",decl:{start:{line:132,column:6},end:{line:132,column:7}},loc:{start:{line:132,column:12},end:{line:134,column:7}},line:132},4:{name:"(anonymous_4)",decl:{start:{line:135,column:6},end:{line:135,column:7}},loc:{start:{line:135,column:17},end:{line:137,column:7}},line:135},5:{name:"(anonymous_5)",decl:{start:{line:141,column:18},end:{line:141,column:19}},loc:{start:{line:141,column:30},end:{line:145,column:5}},line:141},6:{name:"(anonymous_6)",decl:{start:{line:146,column:4},end:{line:146,column:5}},loc:{start:{line:146,column:25},end:{line:155,column:5}},line:146},7:{name:"(anonymous_7)",decl:{start:{line:153,column:14},end:{line:153,column:15}},loc:{start:{line:153,column:28},end:{line:153,column:30}},line:153}},branchMap:{0:{loc:{start:{line:113,column:29},end:{line:113,column:50}},type:"binary-expr",locations:[{start:{line:113,column:29},end:{line:113,column:36}},{start:{line:113,column:40},end:{line:113,column:50}}],line:113},1:{loc:{start:{line:119,column:6},end:{line:121,column:7}},type:"if",locations:[{start:{line:119,column:6},end:{line:121,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:119},2:{loc:{start:{line:122,column:6},end:{line:124,column:7}},type:"if",locations:[{start:{line:122,column:6},end:{line:124,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:122},3:{loc:{start:{line:126,column:6},end:{line:128,column:7}},type:"if",locations:[{start:{line:126,column:6},end:{line:128,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:126}},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},f:{0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0]},inputSourceMap:{version:3,sources:["CreateDialog.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0FA;;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",file:"CreateDialog.vue",sourceRoot:"src/tools/Autonomic/Tabs/Overview",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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n--\x3e\n\n<template>\n <div>\n <v-dialog v-model="show" width="600">\n <v-card>\n <form v-on:submit.prevent="submitHandler">\n <v-system-bar>\n <v-spacer />\n <span> Create New Trigger Group </span>\n <v-spacer />\n </v-system-bar>\n <v-card-text>\n <div class="pa-3">\n <v-text-field\n v-model="groupName"\n label="Group Name"\n data-test="group-input-name"\n autofocus\n dense\n outlined\n hide-details\n />\n <v-row dense>\n <v-sheet dark class="pa-4">\n <pre v-text="color" />\n </v-sheet>\n </v-row>\n <v-row dense align="center" justify="center">\n <v-color-picker\n v-model="color"\n hide-canvas\n hide-inputs\n hide-mode-switch\n show-swatches\n :swatches="swatches"\n width="100%"\n swatches-max-height="100"\n />\n </v-row>\n <v-row class="my-3">\n <span class="red--text" v-show="error">{{ error }}</span>\n </v-row>\n <v-row>\n <v-spacer />\n <v-btn\n @click="clearHandler"\n outlined\n class="mx-2"\n data-test="group-create-cancel-btn"\n >\n Cancel\n </v-btn>\n <v-btn\n @click.prevent="submitHandler"\n class="mx-2"\n type="submit"\n color="primary"\n data-test="group-create-submit-btn"\n :disabled="!!error"\n >\n Ok\n </v-btn>\n </v-row>\n </div>\n </v-card-text>\n </form>\n </v-card>\n </v-dialog>\n </div>\n</template>\n\n<script>\nimport Api from \'@cosmosc2/tool-common/src/services/api\'\n\nexport default {\n props: {\n groups: {\n type: Array,\n required: true,\n },\n value: Boolean, // value is the default prop when using v-model\n },\n data() {\n return {\n groupName: \'\',\n color: \'#FF0000\',\n swatches: [\n [\'#FF0000\', \'#AA0000\', \'#550000\'],\n [\'#FFFF00\', \'#AAAA00\', \'#555500\'],\n [\'#00FF00\', \'#00AA00\', \'#005500\'],\n [\'#00FFFF\', \'#00AAAA\', \'#005555\'],\n [\'#0000FF\', \'#0000AA\', \'#000055\'],\n ],\n rules: {\n required: (value) => !!value || \'Required\',\n },\n }\n },\n computed: {\n error: function () {\n if (this.groupName.trim() === \'\') {\n return \'TriggerGroup name can not be blank.\'\n }\n if (this.groupName.includes(\'_\')) {\n return `TriggerGroup name can not contain an underscore [ \'_\' ].`\n }\n // Traditional for loop so we can return if we find a match\n if (this.groups.includes(this.groupName)) {\n return `TriggerGroup must have a unique name. Duplicate name found, ${this.groupName}`\n }\n return null\n },\n show: {\n get() {\n return this.value\n },\n set(value) {\n this.$emit(\'input\', value) // input is the default event when using v-model\n },\n },\n },\n methods: {\n clearHandler: function () {\n this.show = !this.show\n this.groupName = \'\'\n this.color = \'#FF0000\'\n },\n submitHandler(event) {\n const path = `/cosmos-api/autonomic/group`\n Api.post(path, {\n data: {\n name: this.groupName,\n color: this.color,\n },\n }).then((response) => {})\n this.clearHandler()\n },\n },\n}\n<\/script>\n\n<style scoped>\n.theme--dark .v-card__title,\n.theme--dark .v-card__subtitle {\n background-color: var(--v-secondary-darken3);\n}\n</style>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"d2785ec907ac5ce169c4930761f7a6f58f026746"},a=t[o]||(t[o]={});a[n]&&a[n].hash===e||(a[n]=l);var s=a[n];return u=function(){return s},s}u();var d={props:{groups:{type:Array,required:!0},value:Boolean},data:function(){return u().f[0]++,u().s[0]++,{groupName:"",color:"#FF0000",swatches:[["#FF0000","#AA0000","#550000"],["#FFFF00","#AAAA00","#555500"],["#00FF00","#00AA00","#005500"],["#00FFFF","#00AAAA","#005555"],["#0000FF","#0000AA","#000055"]],rules:{required:function(n){return u().f[1]++,u().s[1]++,u().b[0][0]++,!!n||(u().b[0][1]++,"Required")}}}},computed:{error:function(){return u().f[2]++,u().s[2]++,""===this.groupName.trim()?(u().b[1][0]++,u().s[3]++,"TriggerGroup name can not be blank."):(u().b[1][1]++,u().s[4]++,this.groupName.includes("_")?(u().b[2][0]++,u().s[5]++,"TriggerGroup name can not contain an underscore [ '_' ]."):(u().b[2][1]++,u().s[6]++,this.groups.includes(this.groupName)?(u().b[3][0]++,u().s[7]++,"TriggerGroup must have a unique name. Duplicate name found, ".concat(this.groupName)):(u().b[3][1]++,u().s[8]++,null)))},show:{get:function(){return u().f[3]++,u().s[9]++,this.value},set:function(n){u().f[4]++,u().s[10]++,this.$emit("input",n)}}},methods:{clearHandler:function(){u().f[5]++,u().s[11]++,this.show=!this.show,u().s[12]++,this.groupName="",u().s[13]++,this.color="#FF0000"},submitHandler:function(n){u().f[6]++;var e=(u().s[14]++,"/cosmos-api/autonomic/group");u().s[15]++,s.Z.post(e,{data:{name:this.groupName,color:this.color}}).then((function(n){u().f[7]++})),u().s[16]++,this.clearHandler()}}},A=d,m=(t(3495),t(3287)),p=(0,m.Z)(A,r,c,!1,null,"5e1550e4",null),v=p.exports;function h(){var n="/cosmos/plugins/packages/cosmosc2-tool-autonomic/src/tools/Autonomic/Tabs/Overview/Overview.vue",e="d11f2068d58114f11b2c7f515ea0f5abfa17ba61",t=new Function("return this")(),o="__coverage__",l={path:"/cosmos/plugins/packages/cosmosc2-tool-autonomic/src/tools/Autonomic/Tabs/Overview/Overview.vue",statementMap:{0:{start:{line:147,column:4},end:{line:161,column:5}},1:{start:{line:164,column:4},end:{line:164,column:20}},2:{start:{line:167,column:4},end:{line:167,column:20}},3:{start:{line:170,column:4},end:{line:172,column:5}},4:{start:{line:171,column:6},end:{line:171,column:37}},5:{start:{line:173,column:4},end:{line:173,column:27}},6:{start:{line:177,column:6},end:{line:179,column:8}},7:{start:{line:178,column:8},end:{line:178,column:25}},8:{start:{line:182,column:6},end:{line:186,column:7}},9:{start:{line:191,column:6},end:{line:193,column:8}},10:{start:{line:192,column:8},end:{line:192,column:35}},11:{start:{line:196,column:6},end:{line:196,column:36}},12:{start:{line:199,column:21},end:{line:199,column:57}},13:{start:{line:200,column:19},end:{line:202,column:8}},14:{start:{line:204,column:19},end:{line:204,column:46}},15:{start:{line:205,column:6},end:{line:205,column:43}},16:{start:{line:206,column:6},end:{line:209,column:7}},17:{start:{line:210,column:6},end:{line:210,column:18}},18:{start:{line:213,column:6},end:{line:229,column:10}},19:{start:{line:222,column:10},end:{line:222,column:72}},20:{start:{line:225,column:10},end:{line:228,column:12}},21:{start:{line:232,column:6},end:{line:232,column:34}},22:{start:{line:235,column:25},end:{line:237,column:7}},23:{start:{line:236,column:19},end:{line:236,column:49}},24:{start:{line:238,column:6},end:{line:240,column:7}},25:{start:{line:239,column:8},end:{line:239,column:44}},26:{start:{line:243,column:25},end:{line:245,column:7}},27:{start:{line:244,column:19},end:{line:244,column:49}},28:{start:{line:246,column:6},end:{line:246,column:61}},29:{start:{line:250,column:6},end:{line:256,column:10}},30:{start:{line:252,column:30},end:{line:252,column:49}},31:{start:{line:255,column:10},end:{line:255,column:42}},32:{start:{line:259,column:6},end:{line:259,column:43}},33:{start:{line:263,column:21},end:{line:263,column:55}},34:{start:{line:264,column:19},end:{line:266,column:8}},35:{start:{line:268,column:19},end:{line:268,column:46}},36:{start:{line:269,column:6},end:{line:269,column:43}},37:{start:{line:270,column:6},end:{line:273,column:7}},38:{start:{line:274,column:6},end:{line:274,column:18}},39:{start:{line:277,column:6},end:{line:284,column:10}},40:{start:{line:283,column:10},end:{line:283,column:24}},41:{start:{line:288,column:6},end:{line:296,column:7}},42:{start:{line:290,column:10},end:{line:290,column:64}},43:{start:{line:291,column:10},end:{line:291,column:59}},44:{start:{line:293,column:10},end:{line:293,column:82}},45:{start:{line:295,column:10},end:{line:295,column:59}},46:{start:{line:299,column:6},end:{line:301,column:7}},47:{start:{line:300,column:8},end:{line:300,column:54}},48:{start:{line:302,column:27},end:{line:309,column:8}},49:{start:{line:303,column:8},end:{line:303,column:47}},50:{start:{line:304,column:8},end:{line:308,column:9}},51:{start:{line:310,column:6},end:{line:310,column:58}},52:{start:{line:311,column:6},end:{line:313,column:7}},53:{start:{line:312,column:8},end:{line:312,column:45}}},fnMap:{0:{name:"(anonymous_0)",decl:{start:{line:146,column:2},end:{line:146,column:3}},loc:{start:{line:146,column:9},end:{line:162,column:3}},line:146},1:{name:"(anonymous_1)",decl:{start:{line:163,column:11},end:{line:163,column:12}},loc:{start:{line:163,column:23},end:{line:165,column:3}},line:163},2:{name:"(anonymous_2)",decl:{start:{line:166,column:11},end:{line:166,column:12}},loc:{start:{line:166,column:23},end:{line:168,column:3}},line:166},3:{name:"(anonymous_3)",decl:{start:{line:169,column:13},end:{line:169,column:14}},loc:{start:{line:169,column:25},end:{line:174,column:3}},line:169},4:{name:"(anonymous_4)",decl:{start:{line:176,column:23},end:{line:176,column:24}},loc:{start:{line:176,column:35},end:{line:180,column:5}},line:176},5:{name:"(anonymous_5)",decl:{start:{line:177,column:29},end:{line:177,column:30}},loc:{start:{line:177,column:40},end:{line:179,column:7}},line:177},6:{name:"(anonymous_6)",decl:{start:{line:181,column:32},end:{line:181,column:33}},loc:{start:{line:181,column:44},end:{line:187,column:5}},line:181},7:{name:"(anonymous_7)",decl:{start:{line:190,column:15},end:{line:190,column:16}},loc:{start:{line:190,column:27},end:{line:194,column:5}},line:190},8:{name:"(anonymous_8)",decl:{start:{line:191,column:57},end:{line:191,column:58}},loc:{start:{line:191,column:71},end:{line:193,column:7}},line:191},9:{name:"(anonymous_9)",decl:{start:{line:195,column:14},end:{line:195,column:15}},loc:{start:{line:195,column:26},end:{line:197,column:5}},line:195},10:{name:"(anonymous_10)",decl:{start:{line:198,column:4},end:{line:198,column:5}},loc:{start:{line:198,column:21},end:{line:211,column:5}},line:198},11:{name:"(anonymous_11)",decl:{start:{line:212,column:17},end:{line:212,column:18}},loc:{start:{line:212,column:34},end:{line:230,column:5}},line:212},12:{name:"(anonymous_12)",decl:{start:{line:221,column:14},end:{line:221,column:15}},loc:{start:{line:221,column:26},end:{line:223,column:9}},line:221},13:{name:"(anonymous_13)",decl:{start:{line:224,column:14},end:{line:224,column:15}},loc:{start:{line:224,column:28},end:{line:229,column:9}},line:224},14:{name:"(anonymous_14)",decl:{start:{line:231,column:27},end:{line:231,column:28}},loc:{start:{line:231,column:44},end:{line:233,column:5}},line:231},15:{name:"(anonymous_15)",decl:{start:{line:234,column:27},end:{line:234,column:28}},loc:{start:{line:234,column:44},end:{line:241,column:5}},line:234},16:{name:"(anonymous_16)",decl:{start:{line:236,column:8},end:{line:236,column:9}},loc:{start:{line:236,column:19},end:{line:236,column:49}},line:236},17:{name:"(anonymous_17)",decl:{start:{line:242,column:27},end:{line:242,column:28}},loc:{start:{line:242,column:44},end:{line:247,column:5}},line:242},18:{name:"(anonymous_18)",decl:{start:{line:244,column:8},end:{line:244,column:9}},loc:{start:{line:244,column:19},end:{line:244,column:49}},line:244},19:{name:"(anonymous_19)",decl:{start:{line:249,column:15},end:{line:249,column:16}},loc:{start:{line:249,column:27},end:{line:257,column:5}},line:249},20:{name:"(anonymous_20)",decl:{start:{line:252,column:20},end:{line:252,column:21}},loc:{start:{line:252,column:30},end:{line:252,column:49}},line:252},21:{name:"(anonymous_21)",decl:{start:{line:254,column:14},end:{line:254,column:15}},loc:{start:{line:254,column:32},end:{line:256,column:9}},line:254},22:{name:"(anonymous_22)",decl:{start:{line:258,column:14},end:{line:258,column:15}},loc:{start:{line:258,column:30},end:{line:260,column:5}},line:258},23:{name:"(anonymous_23)",decl:{start:{line:262,column:20},end:{line:262,column:21}},loc:{start:{line:262,column:32},end:{line:275,column:5}},line:262},24:{name:"(anonymous_24)",decl:{start:{line:276,column:17},end:{line:276,column:18}},loc:{start:{line:276,column:29},end:{line:285,column:5}},line:276},25:{name:"(anonymous_25)",decl:{start:{line:282,column:14},end:{line:282,column:15}},loc:{start:{line:282,column:26},end:{line:284,column:9}},line:282},26:{name:"(anonymous_26)",decl:{start:{line:286,column:21},end:{line:286,column:22}},loc:{start:{line:286,column:40},end:{line:297,column:5}},line:286},27:{name:"(anonymous_27)",decl:{start:{line:298,column:20},end:{line:298,column:21}},loc:{start:{line:298,column:40},end:{line:314,column:5}},line:298},28:{name:"(anonymous_28)",decl:{start:{line:302,column:40},end:{line:302,column:41}},loc:{start:{line:302,column:53},end:{line:309,column:7}},line:302}},branchMap:{0:{loc:{start:{line:170,column:4},end:{line:172,column:5}},type:"if",locations:[{start:{line:170,column:4},end:{line:172,column:5}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:170},1:{loc:{start:{line:238,column:6},end:{line:240,column:7}},type:"if",locations:[{start:{line:238,column:6},end:{line:240,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:238},2:{loc:{start:{line:246,column:37},end:{line:246,column:60}},type:"cond-expr",locations:[{start:{line:246,column:55},end:{line:246,column:56}},{start:{line:246,column:59},end:{line:246,column:60}}],line:246},3:{loc:{start:{line:288,column:6},end:{line:296,column:7}},type:"switch",locations:[{start:{line:289,column:8},end:{line:291,column:59}},{start:{line:292,column:8},end:{line:293,column:82}},{start:{line:294,column:8},end:{line:295,column:59}}],line:288},4:{loc:{start:{line:299,column:6},end:{line:301,column:7}},type:"if",locations:[{start:{line:299,column:6},end:{line:301,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],line:299},5:{loc:{start:{line:311,column:6},end:{line:313,column:7}},type:"if",locations:[{start:{line:311,column:6},end:{line:313,column:7}},{start:{line:void 0,column:void 0},end:{line:void 0,column:void 0}}],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,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53: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,26:0,27:0,28:0},b:{0:[0,0],1:[0,0],2:[0,0],3:[0,0,0],4:[0,0],5:[0,0]},inputSourceMap:{version:3,sources:["Overview.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuIA;AACA;AACA;;AAEA;;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;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:"Overview.vue",sourceRoot:"src/tools/Autonomic/Tabs/Overview",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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n--\x3e\n\n<template>\n <div>\n \x3c!-- The top bar of the screen to have buttons and actions --\x3e\n <v-card-title class="pb-0">\n <v-tooltip top>\n <template v-slot:activator="{ on, attrs }">\n <div v-on="on" v-bind="attrs">\n <v-btn icon data-test="group-download" @click="downloadGroups">\n <v-icon> mdi-download </v-icon>\n </v-btn>\n </div>\n </template>\n <span> Download Groups </span>\n </v-tooltip>\n <div class="mx-2">Groups</div>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator="{ on, attrs }">\n <div v-on="on" v-bind="attrs">\n <v-btn icon data-test="new-group" @click="newGroup">\n <v-icon>mdi-database-plus</v-icon>\n </v-btn>\n </div>\n </template>\n <span> New Group </span>\n </v-tooltip>\n </v-card-title>\n <v-card-title>\n <v-text-field\n v-model="searchGroups"\n label="Search"\n data-test="group-search"\n dense\n outlined\n hide-details\n />\n </v-card-title>\n \x3c!-- The main part of the screen to have lists and information --\x3e\n <v-list data-test="groupList">\n <div v-for="(group, index) in groups" :key="group.name">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title>{{ group.name }}</v-list-item-title>\n </v-list-item-content>\n <v-list-item-icon>\n <v-tooltip bottom>\n <template v-slot:activator="{ on, attrs }">\n <div v-on="on" v-bind="attrs">\n <v-btn\n icon\n :data-test="`delete-group-${index}`"\n @click="deleteGroup(group)"\n >\n <v-icon> mdi-delete </v-icon>\n </v-btn>\n </div>\n </template>\n <span>Delete Group</span>\n </v-tooltip>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if="index < groups.length - 1" :key="index" />\n </div>\n </v-list>\n \x3c!--- EVENTS ---\x3e\n <v-card-title class="pb-0">\n <v-tooltip top>\n <template v-slot:activator="{ on, attrs }">\n <div v-on="on" v-bind="attrs">\n <v-btn icon data-test="events-download" @click="downloadEvents">\n <v-icon> mdi-download </v-icon>\n </v-btn>\n </div>\n </template>\n <span> Download Log </span>\n </v-tooltip>\n <div class="mx-2">Events</div>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator="{ on, attrs }">\n <div v-on="on" v-bind="attrs">\n <v-btn icon data-test="events-clear" @click="clearEvents">\n <v-icon> mdi-delete </v-icon>\n </v-btn>\n </div>\n </template>\n <span> Clear Log </span>\n </v-tooltip>\n </v-card-title>\n <v-card-title>\n <v-text-field\n v-model="searchEvents"\n label="Search"\n data-test="events-search"\n dense\n outlined\n hide-details\n />\n </v-card-title>\n <v-data-table\n :headers="headers"\n :items="data"\n :search="search"\n calculate-widths\n disable-pagination\n hide-default-footer\n multi-sort\n dense\n height="55vh"\n data-test="output-messages"\n />\n <create-dialog v-model="showNewGroupDialog" :groups="triggerGroupNames" />\n </div>\n</template>\n\n<script>\nimport { format } from \'date-fns\'\nimport Api from \'@cosmosc2/tool-common/src/services/api\'\nimport Cable from \'@cosmosc2/tool-common/src/services/cable.js\'\n\nimport CreateDialog from \'@/tools/Autonomic/Tabs/Overview/CreateDialog\'\n\nexport default {\n components: {\n CreateDialog,\n },\n data() {\n return {\n searchGroups: \'\',\n groups: [],\n showNewGroupDialog: false,\n searchEvents: \'\',\n history_count: 100,\n data: [],\n headers: [\n { text: \'Time\', value: \'timestamp\' },\n { text: \'Type\', value: \'type\' },\n { text: \'Message\', value: \'log\' },\n ],\n cable: new Cable(),\n subscription: null,\n }\n },\n created: function () {\n this.subscribe()\n },\n mounted: function () {\n this.getGroups()\n },\n destroyed: function () {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.cable.disconnect()\n },\n computed: {\n triggerGroupNames: function () {\n return this.groups.map((group) => {\n return group.name\n })\n },\n eventGroupHandlerFunctions: function () {\n return {\n created: this.createdGroupFromEvent,\n updated: this.updatedGroupFromEvent,\n deleted: this.deletedGroupFromEvent,\n }\n },\n },\n methods: {\n getGroups: function () {\n return Api.get(\'/cosmos-api/autonomic/group\').then((response) => {\n this.groups = response.data\n })\n },\n newGroup: function () {\n this.showNewGroupDialog = true\n },\n downloadGroups() {\n const output = JSON.stringify(this.groups, null, 2)\n const blob = new Blob([output], {\n type: \'application/json\',\n })\n // Make a link and then \'click\' on it to start the download\n const link = document.createElement(\'a\')\n link.href = URL.createObjectURL(blob)\n link.setAttribute(\n \'download\',\n format(Date.now(), \'yyyy_MM_dd_HH_mm_ss\') + \'_autonomic_groups.json\'\n )\n link.click()\n },\n deleteGroup: function (group) {\n this.$dialog\n .confirm(\n `Are you sure you want to delete TriggerGroup: ${group.name}`,\n {\n okText: \'Delete\',\n cancelText: \'Cancel\',\n }\n )\n .then((dialog) => {\n return Api.delete(`/cosmos-api/autonomic/group/${group.name}`)\n })\n .then((response) => {\n this.$notify.normal({\n title: \'Removed TriggerGroup\',\n body: `TriggerGroup: ${group.name} has been deleted`,\n })\n })\n },\n createdGroupFromEvent: function (event) {\n this.groups.push(event.data)\n },\n updatedGroupFromEvent: function (event) {\n const groupIndex = this.groups.findIndex(\n (group) => group.name === event.data.name\n )\n if (groupIndex >= 0) {\n this.groups[groupIndex] = event.data\n }\n },\n deletedGroupFromEvent: function (event) {\n const groupIndex = this.groups.findIndex(\n (group) => group.name === event.data.name\n )\n this.groups.splice(groupIndex, groupIndex >= 0 ? 1 : 0)\n },\n // CABLE Methods\n subscribe: function () {\n this.cable\n .createSubscription(\'AutonomicEventsChannel\', localStorage.scope, {\n received: (data) => this.received(data),\n })\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data) {\n this.updateMessages(JSON.parse(data))\n },\n // EVENT Methods\n downloadEvents: function () {\n const output = JSON.stringify(this.data, null, 2)\n const blob = new Blob([output], {\n type: \'application/json\',\n })\n // Make a link and then \'click\' on it to start the download\n const link = document.createElement(\'a\')\n link.href = URL.createObjectURL(blob)\n link.setAttribute(\n \'download\',\n format(Date.now(), \'yyyy_MM_dd_HH_mm_ss\') + \'_autonomic_events.json\'\n )\n link.click()\n },\n clearEvents: function () {\n this.$dialog\n .confirm(\'Are you sure you want to clear the autonomic events logs?\', {\n okText: \'Clear\',\n cancelText: \'Cancel\',\n })\n .then((dialog) => {\n this.data = []\n })\n },\n generateMessage: function (message) {\n // console.log(\'DEBUG EVENTS >>>\', message)\n switch (message.type) {\n case \'group\':\n this.eventGroupHandlerFunctions[message.kind](message)\n return `${message.data.name} was ${message.kind}`\n case \'trigger\':\n return `${message.data.group}, ${message.data.name} was ${message.kind}`\n case \'reaction\':\n return `${message.data.name} was ${message.kind}`\n }\n },\n updateMessages: function (messages) {\n if (messages.length > this.history_count) {\n this.messages.splice(0, messages.length - 100)\n }\n const dataMessages = messages.map((message) => {\n message.data = JSON.parse(message.data)\n return {\n timestamp: new Date().toISOString(),\n type: message.type.toUpperCase(),\n log: this.generateMessage(message),\n }\n })\n this.data = dataMessages.reverse().concat(this.data)\n if (this.data.length > this.history_count) {\n this.data.length = this.history_count\n }\n },\n },\n}\n<\/script>\n']},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"d11f2068d58114f11b2c7f515ea0f5abfa17ba61"},a=t[o]||(t[o]={});a[n]&&a[n].hash===e||(a[n]=l);var s=a[n];return h=function(){return s},s}h();var g={components:{CreateDialog:v},data:function(){return h().f[0]++,h().s[0]++,{searchGroups:"",groups:[],showNewGroupDialog:!1,searchEvents:"",history_count:100,data:[],headers:[{text:"Time",value:"timestamp"},{text:"Type",value:"type"},{text:"Message",value:"log"}],cable:new i.Z,subscription:null}},created:function(){h().f[1]++,h().s[1]++,this.subscribe()},mounted:function(){h().f[2]++,h().s[2]++,this.getGroups()},destroyed:function(){h().f[3]++,h().s[3]++,this.subscription?(h().b[0][0]++,h().s[4]++,this.subscription.unsubscribe()):h().b[0][1]++,h().s[5]++,this.cable.disconnect()},computed:{triggerGroupNames:function(){return h().f[4]++,h().s[6]++,this.groups.map((function(n){return h().f[5]++,h().s[7]++,n.name}))},eventGroupHandlerFunctions:function(){return h().f[6]++,h().s[8]++,{created:this.createdGroupFromEvent,updated:this.updatedGroupFromEvent,deleted:this.deletedGroupFromEvent}}},methods:{getGroups:function(){var n=this;return h().f[7]++,h().s[9]++,s.Z.get("/cosmos-api/autonomic/group").then((function(e){h().f[8]++,h().s[10]++,n.groups=e.data}))},newGroup:function(){h().f[9]++,h().s[11]++,this.showNewGroupDialog=!0},downloadGroups:function(){h().f[10]++;var n=(h().s[12]++,JSON.stringify(this.groups,null,2)),e=(h().s[13]++,new Blob([n],{type:"application/json"})),t=(h().s[14]++,document.createElement("a"));h().s[15]++,t.href=URL.createObjectURL(e),h().s[16]++,t.setAttribute("download",(0,a.Z)(Date.now(),"yyyy_MM_dd_HH_mm_ss")+"_autonomic_groups.json"),h().s[17]++,t.click()},deleteGroup:function(n){var e=this;h().f[11]++,h().s[18]++,this.$dialog.confirm("Are you sure you want to delete TriggerGroup: ".concat(n.name),{okText:"Delete",cancelText:"Cancel"}).then((function(e){return h().f[12]++,h().s[19]++,s.Z["delete"]("/cosmos-api/autonomic/group/".concat(n.name))})).then((function(t){h().f[13]++,h().s[20]++,e.$notify.normal({title:"Removed TriggerGroup",body:"TriggerGroup: ".concat(n.name," has been deleted")})}))},createdGroupFromEvent:function(n){h().f[14]++,h().s[21]++,this.groups.push(n.data)},updatedGroupFromEvent:function(n){h().f[15]++;var e=(h().s[22]++,this.groups.findIndex((function(e){return h().f[16]++,h().s[23]++,e.name===n.data.name})));h().s[24]++,e>=0?(h().b[1][0]++,h().s[25]++,this.groups[e]=n.data):h().b[1][1]++},deletedGroupFromEvent:function(n){h().f[17]++;var e=(h().s[26]++,this.groups.findIndex((function(e){return h().f[18]++,h().s[27]++,e.name===n.data.name})));h().s[28]++,this.groups.splice(e,e>=0?(h().b[2][0]++,1):(h().b[2][1]++,0))},subscribe:function(){var n=this;h().f[19]++,h().s[29]++,this.cable.createSubscription("AutonomicEventsChannel",localStorage.scope,{received:function(e){return h().f[20]++,h().s[30]++,n.received(e)}}).then((function(e){h().f[21]++,h().s[31]++,n.subscription=e}))},received:function(n){h().f[22]++,h().s[32]++,this.updateMessages(JSON.parse(n))},downloadEvents:function(){h().f[23]++;var n=(h().s[33]++,JSON.stringify(this.data,null,2)),e=(h().s[34]++,new Blob([n],{type:"application/json"})),t=(h().s[35]++,document.createElement("a"));h().s[36]++,t.href=URL.createObjectURL(e),h().s[37]++,t.setAttribute("download",(0,a.Z)(Date.now(),"yyyy_MM_dd_HH_mm_ss")+"_autonomic_events.json"),h().s[38]++,t.click()},clearEvents:function(){var n=this;h().f[24]++,h().s[39]++,this.$dialog.confirm("Are you sure you want to clear the autonomic events logs?",{okText:"Clear",cancelText:"Cancel"}).then((function(e){h().f[25]++,h().s[40]++,n.data=[]}))},generateMessage:function(n){switch(h().f[26]++,h().s[41]++,n.type){case"group":return h().b[3][0]++,h().s[42]++,this.eventGroupHandlerFunctions[n.kind](n),h().s[43]++,"".concat(n.data.name," was ").concat(n.kind);case"trigger":return h().b[3][1]++,h().s[44]++,"".concat(n.data.group,", ").concat(n.data.name," was ").concat(n.kind);case"reaction":return h().b[3][2]++,h().s[45]++,"".concat(n.data.name," was ").concat(n.kind)}},updateMessages:function(n){var e=this;h().f[27]++,h().s[46]++,n.length>this.history_count?(h().b[4][0]++,h().s[47]++,this.messages.splice(0,n.length-100)):h().b[4][1]++;var t=(h().s[48]++,n.map((function(n){return h().f[28]++,h().s[49]++,n.data=JSON.parse(n.data),h().s[50]++,{timestamp:(new Date).toISOString(),type:n.type.toUpperCase(),log:e.generateMessage(n)}})));h().s[51]++,this.data=t.reverse().concat(this.data),h().s[52]++,this.data.length>this.history_count?(h().b[5][0]++,h().s[53]++,this.data.length=this.history_count):h().b[5][1]++}}},C=g,f=(0,m.Z)(C,o,l,!1,null,null,null),b=f.exports},9423:function(n,e,t){"use strict";t.r(e);var o=t(3467),l=t.n(o),a=t(8715),s=t.n(a),i=s()(l());i.push([n.id,".theme--dark .v-card__subtitle[data-v-5e1550e4],.theme--dark .v-card__title[data-v-5e1550e4]{background-color:var(--v-secondary-darken3)}",""]),e["default"]=i},3495:function(n,e,t){var o=t(9423);o.__esModule&&(o=o.default),"string"===typeof o&&(o=[[n.id,o,""]]),o.locals&&(n.exports=o.locals);var l=t(3514).Z;l("dd467ff4",o,!0,{sourceMap:!1,shadowMode:!1})}}]);
2
+ //# sourceMappingURL=99.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/99.js","mappings":"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","sources":["webpack://@cosmosc2/tool-autonomic/../cosmosc2-tool-common/src/services/api.js","webpack://@cosmosc2/tool-autonomic/../cosmosc2-tool-common/src/services/axios.js","webpack://@cosmosc2/tool-autonomic/../cosmosc2-tool-common/src/services/cable.js","webpack://@cosmosc2/tool-autonomic/./src/tools/Autonomic/Tabs/Overview/Overview.vue?50b8","webpack://@cosmosc2/tool-autonomic/./src/tools/Autonomic/Tabs/Overview/CreateDialog.vue?b22a","webpack://@cosmosc2/tool-autonomic/src/tools/Autonomic/Tabs/Overview/CreateDialog.vue","webpack://@cosmosc2/tool-autonomic/./src/tools/Autonomic/Tabs/Overview/CreateDialog.vue?d52b","webpack://@cosmosc2/tool-autonomic/./src/tools/Autonomic/Tabs/Overview/CreateDialog.vue","webpack://@cosmosc2/tool-autonomic/src/tools/Autonomic/Tabs/Overview/Overview.vue","webpack://@cosmosc2/tool-autonomic/./src/tools/Autonomic/Tabs/Overview/Overview.vue?5506","webpack://@cosmosc2/tool-autonomic/./src/tools/Autonomic/Tabs/Overview/Overview.vue","webpack://@cosmosc2/tool-autonomic/./src/tools/Autonomic/Tabs/Overview/CreateDialog.vue?9185","webpack://@cosmosc2/tool-autonomic/./src/tools/Autonomic/Tabs/Overview/CreateDialog.vue?e63b"],"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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport axios from './axios.js'\n\nconst request = async function (\n method,\n url,\n { data, params = {}, headers, noAuth = false, noScope = false } = {}\n) {\n if (!noAuth) {\n try {\n await CosmosAuth.updateToken(CosmosAuth.defaultMinValidity)\n } catch (error) {\n CosmosAuth.login()\n }\n headers['Authorization'] = localStorage.cosmosToken\n }\n if (!noScope && !params['scope']) {\n params['scope'] = localStorage.scope\n }\n return axios({\n method,\n url,\n data,\n params,\n headers,\n })\n}\n\nconst acceptOnlyDefaultHeaders = {\n Accept: 'application/json',\n}\n\nconst fullDefaultHeaders = {\n ...acceptOnlyDefaultHeaders,\n 'Content-Type': 'application/json',\n}\n\nexport default {\n get: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('get', path, { params, headers, noScope, noAuth })\n },\n\n put: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('put', path, { data, params, headers, noScope, noAuth })\n },\n\n post: function (\n path,\n { data, params, headers = fullDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('post', path, { data, params, headers, noScope, noAuth })\n },\n\n delete: function (\n path,\n { params, headers = acceptOnlyDefaultHeaders, noScope, noAuth } = {}\n ) {\n return request('delete', path, { params, headers, noScope, noAuth })\n },\n}\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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\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.cosmosToken\n CosmosAuth.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","/*\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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n*/\n\nimport * as ActionCable from '@rails/actioncable'\n//ActionCable.logger.enabled = true\nActionCable.ConnectionMonitor.staleThreshold = 60\n\nexport default class Cable {\n constructor(url = '/cosmos-api/cable') {\n this._cable = ActionCable.createConsumer(url)\n }\n disconnect() {\n this._cable.disconnect()\n }\n createSubscription(channel, scope, callbacks = {}, additionalOptions = {}) {\n return CosmosAuth.updateToken(CosmosAuth.defaultMinValidity).then(() => {\n return this._cable.subscriptions.create(\n {\n channel,\n scope,\n token: localStorage.cosmosToken,\n ...additionalOptions,\n },\n callbacks\n )\n })\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card-title',{staticClass:\"pb-0\"},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-btn',{attrs:{\"icon\":\"\",\"data-test\":\"group-download\"},on:{\"click\":_vm.downloadGroups}},[_c('v-icon',[_vm._v(\" mdi-download \")])],1)],1)]}}])},[_c('span',[_vm._v(\" Download Groups \")])]),_c('div',{staticClass:\"mx-2\"},[_vm._v(\"Groups\")]),_c('v-spacer'),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-btn',{attrs:{\"icon\":\"\",\"data-test\":\"new-group\"},on:{\"click\":_vm.newGroup}},[_c('v-icon',[_vm._v(\"mdi-database-plus\")])],1)],1)]}}])},[_c('span',[_vm._v(\" New Group \")])])],1),_c('v-card-title',[_c('v-text-field',{attrs:{\"label\":\"Search\",\"data-test\":\"group-search\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\"},model:{value:(_vm.searchGroups),callback:function ($$v) {_vm.searchGroups=$$v},expression:\"searchGroups\"}})],1),_c('v-list',{attrs:{\"data-test\":\"groupList\"}},_vm._l((_vm.groups),function(group,index){return _c('div',{key:group.name},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(group.name))])],1),_c('v-list-item-icon',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-btn',{attrs:{\"icon\":\"\",\"data-test\":(\"delete-group-\" + index)},on:{\"click\":function($event){return _vm.deleteGroup(group)}}},[_c('v-icon',[_vm._v(\" mdi-delete \")])],1)],1)]}}],null,true)},[_c('span',[_vm._v(\"Delete Group\")])])],1)],1),(index < _vm.groups.length - 1)?_c('v-divider',{key:index}):_vm._e()],1)}),0),_c('v-card-title',{staticClass:\"pb-0\"},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-btn',{attrs:{\"icon\":\"\",\"data-test\":\"events-download\"},on:{\"click\":_vm.downloadEvents}},[_c('v-icon',[_vm._v(\" mdi-download \")])],1)],1)]}}])},[_c('span',[_vm._v(\" Download Log \")])]),_c('div',{staticClass:\"mx-2\"},[_vm._v(\"Events\")]),_c('v-spacer'),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-btn',{attrs:{\"icon\":\"\",\"data-test\":\"events-clear\"},on:{\"click\":_vm.clearEvents}},[_c('v-icon',[_vm._v(\" mdi-delete \")])],1)],1)]}}])},[_c('span',[_vm._v(\" Clear Log \")])])],1),_c('v-card-title',[_c('v-text-field',{attrs:{\"label\":\"Search\",\"data-test\":\"events-search\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\"},model:{value:(_vm.searchEvents),callback:function ($$v) {_vm.searchEvents=$$v},expression:\"searchEvents\"}})],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.data,\"search\":_vm.search,\"calculate-widths\":\"\",\"disable-pagination\":\"\",\"hide-default-footer\":\"\",\"multi-sort\":\"\",\"dense\":\"\",\"height\":\"55vh\",\"data-test\":\"output-messages\"}}),_c('create-dialog',{attrs:{\"groups\":_vm.triggerGroupNames},model:{value:(_vm.showNewGroupDialog),callback:function ($$v) {_vm.showNewGroupDialog=$$v},expression:\"showNewGroupDialog\"}})],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('div',[_c('v-dialog',{attrs:{\"width\":\"600\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-card',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submitHandler.apply(null, arguments)}}},[_c('v-system-bar',[_c('v-spacer'),_c('span',[_vm._v(\" Create New Trigger Group \")]),_c('v-spacer')],1),_c('v-card-text',[_c('div',{staticClass:\"pa-3\"},[_c('v-text-field',{attrs:{\"label\":\"Group Name\",\"data-test\":\"group-input-name\",\"autofocus\":\"\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\"},model:{value:(_vm.groupName),callback:function ($$v) {_vm.groupName=$$v},expression:\"groupName\"}}),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-sheet',{staticClass:\"pa-4\",attrs:{\"dark\":\"\"}},[_c('pre',{domProps:{\"textContent\":_vm._s(_vm.color)}})])],1),_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\",\"justify\":\"center\"}},[_c('v-color-picker',{attrs:{\"hide-canvas\":\"\",\"hide-inputs\":\"\",\"hide-mode-switch\":\"\",\"show-swatches\":\"\",\"swatches\":_vm.swatches,\"width\":\"100%\",\"swatches-max-height\":\"100\"},model:{value:(_vm.color),callback:function ($$v) {_vm.color=$$v},expression:\"color\"}})],1),_c('v-row',{staticClass:\"my-3\"},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.error),expression:\"error\"}],staticClass:\"red--text\"},[_vm._v(_vm._s(_vm.error))])]),_c('v-row',[_c('v-spacer'),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"outlined\":\"\",\"data-test\":\"group-create-cancel-btn\"},on:{\"click\":_vm.clearHandler}},[_vm._v(\" Cancel \")]),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"type\":\"submit\",\"color\":\"primary\",\"data-test\":\"group-create-submit-btn\",\"disabled\":!!_vm.error},on:{\"click\":function($event){$event.preventDefault();return _vm.submitHandler.apply(null, arguments)}}},[_vm._v(\" Ok \")])],1)],1)])],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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <v-dialog v-model=\"show\" width=\"600\">\n <v-card>\n <form v-on:submit.prevent=\"submitHandler\">\n <v-system-bar>\n <v-spacer />\n <span> Create New Trigger Group </span>\n <v-spacer />\n </v-system-bar>\n <v-card-text>\n <div class=\"pa-3\">\n <v-text-field\n v-model=\"groupName\"\n label=\"Group Name\"\n data-test=\"group-input-name\"\n autofocus\n dense\n outlined\n hide-details\n />\n <v-row dense>\n <v-sheet dark class=\"pa-4\">\n <pre v-text=\"color\" />\n </v-sheet>\n </v-row>\n <v-row dense align=\"center\" justify=\"center\">\n <v-color-picker\n v-model=\"color\"\n hide-canvas\n hide-inputs\n hide-mode-switch\n show-swatches\n :swatches=\"swatches\"\n width=\"100%\"\n swatches-max-height=\"100\"\n />\n </v-row>\n <v-row class=\"my-3\">\n <span class=\"red--text\" v-show=\"error\">{{ error }}</span>\n </v-row>\n <v-row>\n <v-spacer />\n <v-btn\n @click=\"clearHandler\"\n outlined\n class=\"mx-2\"\n data-test=\"group-create-cancel-btn\"\n >\n Cancel\n </v-btn>\n <v-btn\n @click.prevent=\"submitHandler\"\n class=\"mx-2\"\n type=\"submit\"\n color=\"primary\"\n data-test=\"group-create-submit-btn\"\n :disabled=\"!!error\"\n >\n Ok\n </v-btn>\n </v-row>\n </div>\n </v-card-text>\n </form>\n </v-card>\n </v-dialog>\n </div>\n</template>\n\n<script>\nimport Api from '@cosmosc2/tool-common/src/services/api'\n\nexport default {\n props: {\n groups: {\n type: Array,\n required: true,\n },\n value: Boolean, // value is the default prop when using v-model\n },\n data() {\n return {\n groupName: '',\n color: '#FF0000',\n swatches: [\n ['#FF0000', '#AA0000', '#550000'],\n ['#FFFF00', '#AAAA00', '#555500'],\n ['#00FF00', '#00AA00', '#005500'],\n ['#00FFFF', '#00AAAA', '#005555'],\n ['#0000FF', '#0000AA', '#000055'],\n ],\n rules: {\n required: (value) => !!value || 'Required',\n },\n }\n },\n computed: {\n error: function () {\n if (this.groupName.trim() === '') {\n return 'TriggerGroup name can not be blank.'\n }\n if (this.groupName.includes('_')) {\n return `TriggerGroup name can not contain an underscore [ '_' ].`\n }\n // Traditional for loop so we can return if we find a match\n if (this.groups.includes(this.groupName)) {\n return `TriggerGroup must have a unique name. Duplicate name found, ${this.groupName}`\n }\n return null\n },\n show: {\n get() {\n return this.value\n },\n set(value) {\n this.$emit('input', value) // input is the default event when using v-model\n },\n },\n },\n methods: {\n clearHandler: function () {\n this.show = !this.show\n this.groupName = ''\n this.color = '#FF0000'\n },\n submitHandler(event) {\n const path = `/cosmos-api/autonomic/group`\n Api.post(path, {\n data: {\n name: this.groupName,\n color: this.color,\n },\n }).then((response) => {})\n this.clearHandler()\n },\n },\n}\n</script>\n\n<style scoped>\n.theme--dark .v-card__title,\n.theme--dark .v-card__subtitle {\n background-color: var(--v-secondary-darken3);\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[0].rules[0].use[1]!../../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateDialog.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[0].rules[0].use[1]!../../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CreateDialog.vue?vue&type=template&id=5e1550e4&scoped=true&\"\nimport script from \"./CreateDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CreateDialog.vue?vue&type=style&index=0&id=5e1550e4&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 \"5e1550e4\",\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# This program may also be used under the terms of a commercial or\n# enterprise edition license of COSMOS if purchased from the\n# copyright holder\n-->\n\n<template>\n <div>\n <!-- The top bar of the screen to have buttons and actions -->\n <v-card-title class=\"pb-0\">\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-btn icon data-test=\"group-download\" @click=\"downloadGroups\">\n <v-icon> mdi-download </v-icon>\n </v-btn>\n </div>\n </template>\n <span> Download Groups </span>\n </v-tooltip>\n <div class=\"mx-2\">Groups</div>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-btn icon data-test=\"new-group\" @click=\"newGroup\">\n <v-icon>mdi-database-plus</v-icon>\n </v-btn>\n </div>\n </template>\n <span> New Group </span>\n </v-tooltip>\n </v-card-title>\n <v-card-title>\n <v-text-field\n v-model=\"searchGroups\"\n label=\"Search\"\n data-test=\"group-search\"\n dense\n outlined\n hide-details\n />\n </v-card-title>\n <!-- The main part of the screen to have lists and information -->\n <v-list data-test=\"groupList\">\n <div v-for=\"(group, index) in groups\" :key=\"group.name\">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title>{{ group.name }}</v-list-item-title>\n </v-list-item-content>\n <v-list-item-icon>\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-btn\n icon\n :data-test=\"`delete-group-${index}`\"\n @click=\"deleteGroup(group)\"\n >\n <v-icon> mdi-delete </v-icon>\n </v-btn>\n </div>\n </template>\n <span>Delete Group</span>\n </v-tooltip>\n </v-list-item-icon>\n </v-list-item>\n <v-divider v-if=\"index < groups.length - 1\" :key=\"index\" />\n </div>\n </v-list>\n <!--- EVENTS --->\n <v-card-title class=\"pb-0\">\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-btn icon data-test=\"events-download\" @click=\"downloadEvents\">\n <v-icon> mdi-download </v-icon>\n </v-btn>\n </div>\n </template>\n <span> Download Log </span>\n </v-tooltip>\n <div class=\"mx-2\">Events</div>\n <v-spacer />\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\" v-bind=\"attrs\">\n <v-btn icon data-test=\"events-clear\" @click=\"clearEvents\">\n <v-icon> mdi-delete </v-icon>\n </v-btn>\n </div>\n </template>\n <span> Clear Log </span>\n </v-tooltip>\n </v-card-title>\n <v-card-title>\n <v-text-field\n v-model=\"searchEvents\"\n label=\"Search\"\n data-test=\"events-search\"\n dense\n outlined\n hide-details\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"data\"\n :search=\"search\"\n calculate-widths\n disable-pagination\n hide-default-footer\n multi-sort\n dense\n height=\"55vh\"\n data-test=\"output-messages\"\n />\n <create-dialog v-model=\"showNewGroupDialog\" :groups=\"triggerGroupNames\" />\n </div>\n</template>\n\n<script>\nimport { format } from 'date-fns'\nimport Api from '@cosmosc2/tool-common/src/services/api'\nimport Cable from '@cosmosc2/tool-common/src/services/cable.js'\n\nimport CreateDialog from '@/tools/Autonomic/Tabs/Overview/CreateDialog'\n\nexport default {\n components: {\n CreateDialog,\n },\n data() {\n return {\n searchGroups: '',\n groups: [],\n showNewGroupDialog: false,\n searchEvents: '',\n history_count: 100,\n data: [],\n headers: [\n { text: 'Time', value: 'timestamp' },\n { text: 'Type', value: 'type' },\n { text: 'Message', value: 'log' },\n ],\n cable: new Cable(),\n subscription: null,\n }\n },\n created: function () {\n this.subscribe()\n },\n mounted: function () {\n this.getGroups()\n },\n destroyed: function () {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.cable.disconnect()\n },\n computed: {\n triggerGroupNames: function () {\n return this.groups.map((group) => {\n return group.name\n })\n },\n eventGroupHandlerFunctions: function () {\n return {\n created: this.createdGroupFromEvent,\n updated: this.updatedGroupFromEvent,\n deleted: this.deletedGroupFromEvent,\n }\n },\n },\n methods: {\n getGroups: function () {\n return Api.get('/cosmos-api/autonomic/group').then((response) => {\n this.groups = response.data\n })\n },\n newGroup: function () {\n this.showNewGroupDialog = true\n },\n downloadGroups() {\n const output = JSON.stringify(this.groups, null, 2)\n const blob = new Blob([output], {\n type: 'application/json',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute(\n 'download',\n format(Date.now(), 'yyyy_MM_dd_HH_mm_ss') + '_autonomic_groups.json'\n )\n link.click()\n },\n deleteGroup: function (group) {\n this.$dialog\n .confirm(\n `Are you sure you want to delete TriggerGroup: ${group.name}`,\n {\n okText: 'Delete',\n cancelText: 'Cancel',\n }\n )\n .then((dialog) => {\n return Api.delete(`/cosmos-api/autonomic/group/${group.name}`)\n })\n .then((response) => {\n this.$notify.normal({\n title: 'Removed TriggerGroup',\n body: `TriggerGroup: ${group.name} has been deleted`,\n })\n })\n },\n createdGroupFromEvent: function (event) {\n this.groups.push(event.data)\n },\n updatedGroupFromEvent: function (event) {\n const groupIndex = this.groups.findIndex(\n (group) => group.name === event.data.name\n )\n if (groupIndex >= 0) {\n this.groups[groupIndex] = event.data\n }\n },\n deletedGroupFromEvent: function (event) {\n const groupIndex = this.groups.findIndex(\n (group) => group.name === event.data.name\n )\n this.groups.splice(groupIndex, groupIndex >= 0 ? 1 : 0)\n },\n // CABLE Methods\n subscribe: function () {\n this.cable\n .createSubscription('AutonomicEventsChannel', localStorage.scope, {\n received: (data) => this.received(data),\n })\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data) {\n this.updateMessages(JSON.parse(data))\n },\n // EVENT Methods\n downloadEvents: function () {\n const output = JSON.stringify(this.data, null, 2)\n const blob = new Blob([output], {\n type: 'application/json',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute(\n 'download',\n format(Date.now(), 'yyyy_MM_dd_HH_mm_ss') + '_autonomic_events.json'\n )\n link.click()\n },\n clearEvents: function () {\n this.$dialog\n .confirm('Are you sure you want to clear the autonomic events logs?', {\n okText: 'Clear',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n this.data = []\n })\n },\n generateMessage: function (message) {\n // console.log('DEBUG EVENTS >>>', message)\n switch (message.type) {\n case 'group':\n this.eventGroupHandlerFunctions[message.kind](message)\n return `${message.data.name} was ${message.kind}`\n case 'trigger':\n return `${message.data.group}, ${message.data.name} was ${message.kind}`\n case 'reaction':\n return `${message.data.name} was ${message.kind}`\n }\n },\n updateMessages: function (messages) {\n if (messages.length > this.history_count) {\n this.messages.splice(0, messages.length - 100)\n }\n const dataMessages = messages.map((message) => {\n message.data = JSON.parse(message.data)\n return {\n timestamp: new Date().toISOString(),\n type: message.type.toUpperCase(),\n log: this.generateMessage(message),\n }\n })\n this.data = dataMessages.reverse().concat(this.data)\n if (this.data.length > this.history_count) {\n this.data.length = this.history_count\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[0].rules[0].use[1]!../../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.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[0].rules[0].use[1]!../../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Overview.vue?vue&type=template&id=41a567a0&\"\nimport script from \"./Overview.vue?vue&type=script&lang=js&\"\nexport * from \"./Overview.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, \".theme--dark .v-card__subtitle[data-v-5e1550e4],.theme--dark .v-card__title[data-v-5e1550e4]{background-color:var(--v-secondary-darken3)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-12[0].rules[0].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[0].rules[0].use[2]!../../../../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12[0].rules[0].use[3]!../../../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateDialog.vue?vue&type=style&index=0&id=5e1550e4&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(\"dd467ff4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["request","method","url","data","params","headers","noAuth","noScope","CosmosAuth","updateToken","defaultMinValidity","login","localStorage","cosmosToken","scope","axios","acceptOnlyDefaultHeaders","Accept","fullDefaultHeaders","get","path","put","post","delete","vueInstance","Vue","axiosInstance","baseURL","location","origin","timeout","interceptors","response","use","error","status","href","axiosIgnoreResponse","toString","Promise","reject","body","statusText","config","message","exception","class","$notify","serious","title","ActionCable","Cable","this","_cable","disconnect","channel","callbacks","additionalOptions","then","subscriptions","create","token","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","scopedSlots","_u","key","fn","ref","on","_g","_b","downloadGroups","_v","newGroup","model","value","callback","$$v","searchGroups","expression","_l","group","index","name","_s","$event","deleteGroup","groups","length","_e","downloadEvents","clearEvents","searchEvents","search","triggerGroupNames","showNewGroupDialog","staticRenderFns","show","preventDefault","submitHandler","apply","arguments","groupName","domProps","color","swatches","directives","rawName","clearHandler","props","type","required","rules","computed","set","methods","event","Api","component","components","CreateDialog","history_count","text","cable","subscription","created","mounted","destroyed","eventGroupHandlerFunctions","updated","deleted","getGroups","link","format","confirm","okText","cancelText","createdGroupFromEvent","updatedGroupFromEvent","deletedGroupFromEvent","subscribe","createSubscription","received","generateMessage","updateMessages","timestamp","log","___CSS_LOADER_EXPORT___","push","module","id","content","__esModule","default","locals","exports","add"],"sourceRoot":""}