diff --git a/CHANGELOG.md b/CHANGELOG.md index ebbaafc..8161ece 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## [0.1.2](https://github.com/socketio/socket.io-admin-ui/compare/0.1.1...0.1.2) (2021-06-02) + + +### Bug Fixes + +* **server:** add support for dynamic namespaces ([74f1c20](https://github.com/socketio/socket.io-admin-ui/commit/74f1c20f6ad878c3d11c5fc80dd8d12ee02d7bfb)) +* **server:** only serialize required handshake attributes ([1cf991e](https://github.com/socketio/socket.io-admin-ui/commit/1cf991e49a1e2b172acca40ca3d259dad9c22915)) +* **ui:** allow to specify the connection path ([7ad384d](https://github.com/socketio/socket.io-admin-ui/commit/7ad384dd3485b8500217a489f8a376d2641d81e0)) + + + ## [0.1.1](https://github.com/socketio/socket.io-admin-ui/compare/0.1.0...0.1.1) (2021-05-09) diff --git a/package-lock.json b/package-lock.json index 87f6bda..077156d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@socket.io/admin-ui", - "version": "0.1.1", + "version": "0.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 5347e67..12ef48d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@socket.io/admin-ui", - "version": "0.1.1", + "version": "0.1.2", "description": "Admin UI for Socket.IO", "files": [ "dist/", diff --git a/ui/dist/index.html b/ui/dist/index.html index 50b6aa6..3050d67 100644 --- a/ui/dist/index.html +++ b/ui/dist/index.html @@ -1 +1 @@ -Socket.IO Admin UI
\ No newline at end of file +Socket.IO Admin UI
\ No newline at end of file diff --git a/ui/dist/js/app.d75e9cfb.js b/ui/dist/js/app.d75e9cfb.js deleted file mode 100644 index f6bc9c9..0000000 --- a/ui/dist/js/app.d75e9cfb.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(t){function e(e){for(var s,r,i=e[0],c=e[1],l=e[2],d=0,m=[];de.meta.index?"v-slide-y-reverse-transition":"v-slide-y-transition":this.transitionName=t.meta.topLevel?"v-slide-x-transition":"v-slide-x-reverse-transition"}},methods:{tryConnect:function(t,e,n){var s=this;this.isConnecting=!0,xt.socket&&(xt.socket.disconnect(),xt.socket.off("connect"),xt.socket.off("connect_error"),xt.socket.off("disconnect"));var o=Object(ht["io"])(t,{forceNew:!0,reconnection:!1,withCredentials:!0,transports:n?["websocket"]:["polling","websocket"],auth:e});o.once("connect",(function(){s.showConnectionModal=!1,s.connectionError="",s.isConnecting=!1,o.io.reconnection(!0),s.$store.commit("connection/saveConfig",{serverUrl:t,wsOnly:n}),xt.socket=o,s.registerEventListeners(o)})),o.on("connect",(function(){s.$store.commit("connection/connect")})),o.on("connect_error",(function(t){(s.isConnecting||"invalid credentials"===t.message)&&(s.showConnectionModal=!0,s.connectionError=t.message,s.isConnecting=!1)})),o.on("disconnect",(function(){s.$store.commit("connection/disconnect")}))},registerEventListeners:function(t){var e=this;t.on("session",(function(t){e.$store.commit("connection/saveSessionId",t)})),t.on("config",(function(t){e.$store.commit("config/updateConfig",t)})),t.on("server_stats",(function(t){e.$store.commit("servers/onServerStats",t)})),t.on("all_sockets",(function(t){e.$store.commit("main/onAllSockets",t)})),t.on("socket_connected",(function(t){e.$store.commit("main/onSocketConnected",t)})),t.on("socket_updated",(function(t){e.$store.commit("main/onSocketUpdated",t)})),t.on("socket_disconnected",(function(t,n,s){e.$store.commit("main/onSocketDisconnected",{nsp:t,id:n,reason:s})})),t.on("room_joined",(function(t,n,s){e.$store.commit("main/onRoomJoined",{nsp:t,room:n,id:s})})),t.on("room_left",(function(t,n,s){e.$store.commit("main/onRoomLeft",{nsp:t,room:n,id:s})}))},onSubmit:function(t){this.tryConnect(t.serverUrl,{username:t.username,password:t.password},t.wsOnly)}},created:function(){if(this.$vuetify.theme.dark=this.$store.state.config.darkTheme,this.serverUrl){var t=this.$store.state.connection.sessionId,e=this.$store.state.connection.wsOnly;this.tryConnect(this.serverUrl,{sessionId:t},e)}else this.showConnectionModal=!0}},Tt=wt,Dt=n("7496"),It=n("a523"),Rt=n("f6c4"),Nt=Object(b["a"])(Tt,o,a,!1,null,null,null),Et=Nt.exports;_()(Nt,{VApp:Dt["a"],VContainer:It["a"],VMain:Rt["a"]});var Pt,Lt,Ut=n("8c4f"),Bt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),n("v-container",{attrs:{fluid:""}},[n("v-row",[n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("ClientsOverview")],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("ServersOverview")],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("NamespacesOverview")],1)],1)],1)],1)},Mt=[],At=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",[n("v-card-title",{staticClass:"text-center"},[t._v(" "+t._s(t.$t("clients.title"))+" "),n("v-spacer"),n("v-btn",{attrs:{to:{name:"clients"},small:""}},[n("v-icon",[t._v("mdi-dots-horizontal")])],1)],1),n("v-card-text",[n("v-row",[n("Doughnut",{staticClass:"chart",attrs:{"chart-data":t.data}}),n("v-simple-table",{staticClass:"grow align-self-center",scopedSlots:t._u([{key:"default",fn:function(){return[n("tbody",[n("tr",[n("th",[t._v(t._s(t.$t("sockets.transport")))]),n("th",[t._v("#")])]),t._l(t.transports,(function(e){return n("tr",{key:e},[n("td",[n("Transport",{attrs:{transport:e}})],1),n("td",[n("div",[n("h2",[t._v(t._s(t.transportRepartition[e]||0))])]),n("div",[t._v(" "+t._s(t.percentage(t.transportRepartition[e]||0,t.clients.length))+" % ")])])])}))],2)]},proxy:!0}])})],1)],1)],1)},qt=[],Ft=(n("13d5"),n("4de4"),n("d81d"),n("1fca")),zt=Ft["b"].reactiveProp,Ht={extends:Ft["a"],mixins:[zt],props:["options"],mounted:function(){this.renderChart(this.chartData,{legend:!1})}},Jt=Ht,Wt=Object(b["a"])(Jt,Pt,Lt,!1,null,null,null),Kt=Wt.exports,Qt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-chip",{attrs:{small:"",color:t.color,outlined:""}},[t._v(t._s(t.label))])},Xt=[],Yt={name:"Transport",props:{transport:String},computed:{label:function(){switch(this.transport){case"polling":return"HTTP long-polling";case"websocket":return"WebSocket";default:return this.transport}},color:function(){switch(this.transport){case"polling":return v["a"].orange.base;case"websocket":return v["a"].green.base;default:return v["a"].grey.base}}}},Zt=Yt,Gt=Object(b["a"])(Zt,Qt,Xt,!1,null,null,null),te=Gt.exports;_()(Gt,{VChip:g["a"]});var ee=n("53ca"),ne=(n("a15b"),n("a434"),n("caad"),n("2532"),n("b680"),n("1c8f")),se=function(){var t="test";try{return localStorage.setItem(t,t),localStorage.removeItem(t),!0}catch(e){return!1}},oe=se();function ae(t){var e=Math.ceil(Math.max(t,0)),n=Math.floor(e/86400),s=Math.floor((e-86400*n)/3600),o=Math.floor((e-86400*n-3600*s)/60),a=Math.ceil(e)-86400*n-3600*s-60*o,r=[];return n>0&&r.push(n+"d"),(n>0||s>0)&&r.push(s+"h"),(n>0||s>0||o>0)&&r.push(o+"m"),r.push(a+"s"),r.join(" ")}function re(t,e){var n="object"===Object(ee["a"])(e)?Object(ne["a"])(t,e):t.indexOf(e);return-1===n?[]:t.splice(n,1)}function ie(t,e){t.includes(e)||t.push(e)}function ce(t,e){return 0===e?0:(t/e*100).toFixed(1)}var le={name:"ClientsOverview",components:{Transport:te,Doughnut:Kt},data:function(){return{transports:["websocket","polling"]}},computed:Object(r["a"])(Object(r["a"])({},Object(l["d"])({clients:function(t){return t.main.clients},darkTheme:function(t){return t.config.darkTheme}})),{},{transportRepartition:function(){return this.clients.map((function(t){return t.sockets[0]})).filter((function(t){return!!t})).reduce((function(t,e){return t[e.transport]=t[e.transport]||0,t[e.transport]++,t}),{})},data:function(){return{labels:["WebSocket","HTTP long-polling"],datasets:[{backgroundColor:[v["a"].green.base,v["a"].orange.base],borderColor:this.darkTheme?"black":"white",data:[this.transportRepartition["websocket"],this.transportRepartition["polling"]]}]}}}),methods:{percentage:ce}},ue=le,de=(n("1016"),n("0fd9")),me=n("1f4f"),pe=Object(b["a"])(ue,At,qt,!1,null,"58987bf8",null),ve=pe.exports;_()(pe,{VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VCardTitle:St["b"],VIcon:ct["a"],VRow:de["a"],VSimpleTable:me["a"],VSpacer:R["a"]});var fe=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",[n("v-card-title",{staticClass:"text-center"},[t._v(" "+t._s(t.$t("servers.title"))+" "),n("v-spacer"),n("v-btn",{attrs:{to:{name:"servers"},small:""}},[n("v-icon",[t._v("mdi-dots-horizontal")])],1)],1),n("v-card-text",[n("v-row",[n("Doughnut",{staticClass:"chart",attrs:{"chart-data":t.data}}),n("v-simple-table",{staticClass:"grow align-self-center",scopedSlots:t._u([{key:"default",fn:function(){return[n("tbody",[n("tr",[n("th",[t._v(t._s(t.$t("status")))]),n("th",[t._v("#")])]),n("tr",[n("td",[n("ServerStatus",{attrs:{healthy:""}})],1),n("td",[n("div",[n("h2",[t._v(t._s(t.healthyServers))])]),n("div",[t._v(t._s(t.percentage(t.healthyServers,t.totalServers))+" %")])])]),n("tr",[n("td",[n("ServerStatus")],1),n("td",[n("div",[n("h2",[t._v(t._s(t.totalServers-t.healthyServers))])]),n("div",[t._v(" "+t._s(t.percentage(t.totalServers-t.healthyServers,t.totalServers))+" % ")])])])])]},proxy:!0}])})],1)],1)],1)},he=[],be=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("Status",{attrs:{value:t.healthy,"ok-label":t.$t("servers.healthy"),"ko-label":t.$t("servers.unhealthy")}})},ke=[],_e={name:"ServerStatus",components:{Status:S},props:{healthy:Boolean}},ge=_e,ye=Object(b["a"])(ge,be,ke,!1,null,null,null),Se=ye.exports,Ce={name:"ServersOverview",components:{ServerStatus:Se,Doughnut:Kt},computed:Object(r["a"])(Object(r["a"])({},Object(l["d"])({healthyServers:function(t){return t.servers.servers.filter((function(t){return t.healthy})).length},totalServers:function(t){return t.servers.servers.length},darkTheme:function(t){return t.config.darkTheme}})),{},{data:function(){return{labels:[this.$t("servers.healthy"),this.$t("servers.unhealthy")],datasets:[{backgroundColor:[v["a"].green.base,v["a"].red.base],borderColor:this.darkTheme?"black":"white",data:[this.healthyServers,this.totalServers-this.healthyServers]}]}}}),methods:{percentage:ce}},Oe=Ce,$e=(n("db72"),Object(b["a"])(Oe,fe,he,!1,null,"d6482f56",null)),je=$e.exports;_()($e,{VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VCardTitle:St["b"],VIcon:ct["a"],VRow:de["a"],VSimpleTable:me["a"],VSpacer:R["a"]});var xe=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",{staticClass:"text-center"},[t._v(" "+t._s(t.$t("namespaces"))+" "),n("v-spacer"),n("v-btn",{attrs:{to:{name:"sockets"},small:""}},[n("v-icon",[t._v("mdi-dots-horizontal")])],1)],1),n("v-simple-table",{scopedSlots:t._u([{key:"default",fn:function(){return[n("thead",[n("tr",[n("th",[t._v(t._s(t.$t("name")))]),n("th",[t._v(t._s(t.$t("rooms.sockets-count")))])])]),n("tbody",t._l(t.namespaces,(function(e){return n("tr",{key:e.name},[n("td",{staticClass:"key-column"},[n("code",[t._v(t._s(e.name))])]),n("td",[t._v(t._s(e.sockets.length))])])})),0)]},proxy:!0}])})],1)},Ve=[],we=n("d66c"),Te={name:"NamespacesOverview",computed:Object(r["a"])({},Object(l["d"])({namespaces:function(t){return Object(we["a"])(t.main.namespaces,"name")}}))},De=Te,Ie=Object(b["a"])(De,xe,Ve,!1,null,"0de70938",null),Re=Ie.exports;_()(Ie,{VBtn:D["a"],VCard:yt["a"],VCardTitle:St["b"],VIcon:ct["a"],VSimpleTable:me["a"],VSpacer:R["a"]});var Ne={name:"Dashboard",components:{NamespacesOverview:Re,ServersOverview:je,ClientsOverview:ve},computed:{breadcrumbItems:function(){return[{text:this.$t("dashboard.title"),disabled:!0}]}}},Ee=Ne,Pe=n("2bc5"),Le=n("62ad"),Ue=Object(b["a"])(Ee,Bt,Mt,!1,null,null,null),Be=Ue.exports;_()(Ue,{VBreadcrumbs:Pe["a"],VCol:Le["a"],VContainer:It["a"],VRow:de["a"]});var Me=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),n("v-card",[n("v-card-text",[n("NamespaceSelector")],1),n("v-data-table",{attrs:{headers:t.headers,items:t.sockets,"footer-props":t.footerProps},scopedSlots:t._u([{key:"item.transport",fn:function(t){var e=t.value;return[n("Transport",{attrs:{transport:e}})]}},{key:"item.actions",fn:function(e){var s=e.item;return[t.isSocketDisconnectSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnect(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.disconnect")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.displayDetails")))])])]}}])})],1)],1)},Ae=[],qe=(n("b0c0"),function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-select",{staticClass:"selector",attrs:{value:t.selectedNamespace,items:t.namespaces,"item-text":"name","item-value":"name",label:t.$t("select-namespace"),"persistent-hint":"","return-object":""},on:{change:t.selectNamespace}})}),Fe=[],ze={name:"NamespaceSelector",computed:Object(r["a"])({},Object(l["d"])({selectedNamespace:function(t){return t.main.selectedNamespace},namespaces:function(t){return Object(we["a"])(t.main.namespaces,"name")}})),methods:Object(r["a"])({},Object(l["c"])("main",["selectNamespace"]))},He=ze,Je=(n("f712"),Object(b["a"])(He,qe,Fe,!1,null,"2c330798",null)),We=Je.exports;_()(Je,{VSelect:F["a"]});var Ke={name:"Sockets",components:{Transport:te,NamespaceSelector:We},data:function(){return{footerProps:{"items-per-page-options":[20,100,-1]}}},computed:Object(r["a"])(Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("sockets.title"),disabled:!0}]},headers:function(){return[{text:"#",value:"id",align:"start"},{text:this.$t("sockets.address"),value:"handshake.address"},{text:this.$t("sockets.transport"),value:"transport"},{value:"actions",align:"end",sortable:!1}]}},Object(l["b"])("main",["sockets"])),Object(l["d"])({selectedNamespace:function(t){return t.main.selectedNamespace},isReadonly:function(t){return t.config.readonly},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{disconnect:function(t){xt.socket.emit("_disconnect",t.nsp,!1,t.id)},displayDetails:function(t){this.$router.push({name:"socket",params:{nsp:this.selectedNamespace.name,id:t.id}})}}},Qe=Ke,Xe=n("8fea"),Ye=n("3a2f"),Ze=Object(b["a"])(Qe,Me,Ae,!1,null,null,null),Ge=Ze.exports;_()(Ze,{VBreadcrumbs:Pe["a"],VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VDataTable:Xe["a"],VIcon:ct["a"],VTooltip:Ye["a"]});var tn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),t.socket?n("v-container",{attrs:{fluid:""}},[n("v-row",[n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("SocketDetails",{attrs:{socket:t.socket,client:t.client}})],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("InitialRequest",{attrs:{socket:t.socket}})],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("SocketRooms",{attrs:{socket:t.socket}})],1)],1)],1):t._e()],1)},en=[],nn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",[t._v(t._s(t.$t("rooms.title")))]),n("v-data-table",{attrs:{headers:t.headers,items:t.roomsAsObjects,dense:""},scopedSlots:t._u([{key:"item.actions",fn:function(e){var s=e.item;return[t.isSocketLeaveSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.leave(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-tag-off-outline")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.leave")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("rooms.displayDetails")))])])]}}])}),n("v-card-text",[n("form",{on:{submit:function(e){return e.preventDefault(),t.onSubmit(e)}}},[n("v-combobox",{staticClass:"select-room d-inline-block mr-3",attrs:{"search-input":t.newRoom,label:t.$t("sockets.join-a-room"),items:t.availableRooms,"item-value":"name","item-text":"name",disabled:t.isReadonly,"return-object":!1},on:{"update:searchInput":function(e){t.newRoom=e},"update:search-input":function(e){t.newRoom=e}}}),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({attrs:{type:"submit",small:"",disabled:t.isReadonly}},"v-btn",o,!1),s),[n("v-icon",[t._v("mdi-tag-plus-outline")])],1)]}}])},[n("span",[t._v(t._s(t.$t("sockets.join")))])])],1)])],1)},sn=[],on=(n("fb6a"),n("1775")),an={name:"SocketRooms",props:{socket:Object},data:function(){return{newRoom:""}},computed:Object(r["a"])(Object(r["a"])({headers:function(){return[{text:this.$t("id"),value:"name",align:"start"},{value:"actions",align:"end",sortable:!1}]},roomsAsObjects:function(){return this.socket.rooms.slice(0).sort().map((function(t){return{name:t}}))},availableRooms:function(){return Object(on["a"])(this.findRoomsByNamespace(this.socket.nsp),this.roomsAsObjects,"name")}},Object(l["d"])({selectedNamespace:function(t){return t.main.selectedNamespace},isReadonly:function(t){return t.config.readonly},isSocketLeaveSupported:function(t){return t.config.supportedFeatures.includes("LEAVE")},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),Object(l["b"])("main",["findRoomsByNamespace"])),methods:{emit:function(){},onSubmit:function(){xt.socket.emit("join",this.socket.nsp,this.newRoom,this.socket.id),this.newRoom=""},leave:function(t){xt.socket.emit("leave",this.socket.nsp,t.name,this.socket.id)},disconnect:function(){xt.socket.emit("_disconnect",this.socket.nsp,!1,this.socket.id)},displayDetails:function(t){this.$router.push({name:"room",params:{nsp:this.socket.nsp,name:t.name}})}}},rn=an,cn=(n("633d"),n("2b5d")),ln=Object(b["a"])(rn,nn,sn,!1,null,"d014ee1e",null),un=ln.exports;_()(ln,{VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VCardTitle:St["b"],VCombobox:cn["a"],VDataTable:Xe["a"],VIcon:ct["a"],VTooltip:Ye["a"]});var dn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",[t._v(t._s(t.$t("details")))]),n("v-card-text",[n("h4",[t._v(t._s(t.$t("sockets.client")))])]),n("v-simple-table",{attrs:{dense:""}},[[n("tbody",[n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("id")))]),n("td",[t._v(" "+t._s(t.client.id)+" ")]),n("td",{attrs:{align:"right"}},[t.client.connected?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.navigateToClient()}}},"v-btn",o,!1),s),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!1,898213143)},[n("span",[t._v(t._s(t.$t("clients.displayDetails")))])]):t._e()],1)]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("status")))]),n("td",[n("ConnectionStatus",{attrs:{connected:t.client.connected}})],1),n("td",{attrs:{align:"right"}},[t.isSocketDisconnectSupported&&t.client.connected?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnectClient()}}},"v-btn",o,!1),s),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!1,1004975867)},[n("span",[t._v(t._s(t.$t("clients.disconnect")))])]):t._e()],1)]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("sockets.transport")))]),n("td",[n("Transport",{attrs:{transport:t.socket.transport}})],1),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("sockets.address")))]),n("td",[t._v(t._s(t.socket.handshake.address))]),n("td")])])]],2),n("v-card-text",[n("h4",[t._v(t._s(t.$t("sockets.socket")))])]),n("v-simple-table",{attrs:{dense:""},scopedSlots:t._u([{key:"default",fn:function(){return[n("tbody",[n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("namespace")))]),n("td",[n("code",[t._v(t._s(t.socket.nsp))])]),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("id")))]),n("td",[t._v(t._s(t.socket.id))]),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("status")))]),n("td",[n("ConnectionStatus",{attrs:{connected:t.socket.connected}})],1),n("td",{attrs:{align:"right"}},[t.isSocketDisconnectSupported&&t.socket.connected?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnectSocket()}}},"v-btn",o,!1),s),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!1,2351110648)},[n("span",[t._v(t._s(t.$t("sockets.disconnect")))])]):t._e()],1)]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("sockets.creation-date")))]),n("td",[t._v(t._s(t.creationDate))]),n("td")])])]},proxy:!0}])})],1)},mn=[],pn={name:"SocketDetails",components:{ConnectionStatus:j,Transport:te},props:{socket:Object,client:Object},computed:Object(r["a"])({creationDate:function(){return new Date(this.socket.handshake.issued).toISOString()}},Object(l["d"])({isReadonly:function(t){return t.config.readonly},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{navigateToClient:function(){this.$router.push({name:"client",params:{id:this.client.id}})},disconnectClient:function(){xt.socket.emit("_disconnect",this.socket.nsp,!0,this.socket.id)},disconnectSocket:function(){xt.socket.emit("_disconnect",this.socket.nsp,!1,this.socket.id)}}},vn=pn,fn=(n("9073"),Object(b["a"])(vn,dn,mn,!1,null,"1a6e3452",null)),hn=fn.exports;_()(fn,{VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VCardTitle:St["b"],VIcon:ct["a"],VSimpleTable:me["a"],VTooltip:Ye["a"]});var bn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",[t._v(t._s(t.$t("sockets.initial-request")))]),n("v-card-text",[n("h4",[t._v(t._s(t.$t("sockets.headers")))])]),n("KeyValueTable",{attrs:{object:t.socket.handshake.headers}}),n("v-card-text",[n("h4",[t._v(t._s(t.$t("sockets.query-params")))])]),n("KeyValueTable",{attrs:{object:t.socket.handshake.query}})],1)},kn=[],_n=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-simple-table",{attrs:{dense:""},scopedSlots:t._u([{key:"default",fn:function(){return[n("thead",[n("tr",[n("th",[t._v(t._s(t.$t("name")))]),n("th",[t._v(t._s(t.$t("value")))])])]),n("tbody",t._l(t.items,(function(e){var s=e.key,o=e.value;return n("tr",{key:s},[n("td",{staticClass:"key-column"},[t._v(t._s(s))]),n("td",[t._v(t._s(o))])])})),0)]},proxy:!0}])})},gn=[],yn=(n("b64b"),{name:"KeyValueTable",props:{object:Object},computed:{items:function(){var t=this,e=Object.keys(this.object);return e.sort().map((function(e){return{key:e,value:t.object[e]}}))}}}),Sn=yn,Cn=(n("786c"),Object(b["a"])(Sn,_n,gn,!1,null,"18284f59",null)),On=Cn.exports;_()(Cn,{VSimpleTable:me["a"]});var $n={name:"InitialRequest",components:{KeyValueTable:On},props:{socket:Object}},jn=$n,xn=Object(b["a"])(jn,bn,kn,!1,null,null,null),Vn=xn.exports;_()(xn,{VCard:yt["a"],VCardText:St["a"],VCardTitle:St["b"]});var wn={name:"Socket",components:{InitialRequest:Vn,SocketDetails:hn,SocketRooms:un},data:function(){return{socket:null,client:null}},computed:Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("sockets.title"),to:{name:"sockets"}},{text:this.$t("sockets.details"),disabled:!0}]}},Object(l["b"])("main",["findSocketById","findClientById"])),mounted:function(){this.socket=this.findSocketById(this.$route.params.nsp,this.$route.params.id),this.socket&&(this.client=this.findClientById(this.socket.clientId))}},Tn=wn,Dn=Object(b["a"])(Tn,tn,en,!1,null,"14172ed0",null),In=Dn.exports;_()(Dn,{VBreadcrumbs:Pe["a"],VCol:Le["a"],VContainer:It["a"],VRow:de["a"]});var Rn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),n("v-card",[n("v-card-text",{staticClass:"d-flex"},[n("NamespaceSelector"),n("v-switch",{staticClass:"ml-3",attrs:{label:t.$t("rooms.show-private"),inset:"",dense:""},on:{change:t.onPrivateRoomsUpdate},model:{value:t.showPrivateRooms,callback:function(e){t.showPrivateRooms=e},expression:"showPrivateRooms"}})],1),n("v-data-table",{attrs:{headers:t.headers,items:t.filteredRooms,"footer-props":t.footerProps},scopedSlots:t._u([{key:"item.sockets",fn:function(e){var n=e.item;return[t._v(" "+t._s(n.sockets.length)+" ")]}},{key:"item.isPrivate",fn:function(t){var e=t.value;return[n("RoomType",{attrs:{"is-private":e}})]}},{key:"item.actions",fn:function(e){var s=e.item;return[t.isMultiLeaveSupported&&!s.isPrivate?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.clear(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-tag-off-outline")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("rooms.clear")))])]):t._e(),t.isMultiDisconnectSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnect(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("rooms.disconnect")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("rooms.displayDetails")))])])]}}])})],1)],1)},Nn=[],En=(n("5319"),n("ac1f"),function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("Status",{attrs:{value:!t.isPrivate,"ok-label":t.$t("rooms.public"),"ko-label":t.$t("rooms.private")}})}),Pn=[],Ln={name:"RoomType",components:{Status:S},props:{isPrivate:Boolean}},Un=Ln,Bn=Object(b["a"])(Un,En,Pn,!1,null,null,null),Mn=Bn.exports,An={name:"Rooms",components:{RoomType:Mn,NamespaceSelector:We},data:function(){return{showPrivateRooms:!1,footerProps:{"items-per-page-options":[20,100,-1]}}},computed:Object(r["a"])(Object(r["a"])(Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("rooms.title"),disabled:!0}]},headers:function(){return[{text:this.$t("id"),value:"name",align:"start"},{text:this.$t("type"),value:"isPrivate"},{text:this.$t("rooms.sockets-count"),value:"sockets"},{value:"actions",align:"end",sortable:!1}]}},Object(l["b"])("main",["rooms"])),Object(l["d"])({selectedNamespace:function(t){return t.main.selectedNamespace},isReadonly:function(t){return t.config.readonly},isMultiLeaveSupported:function(t){return t.config.supportedFeatures.includes("MLEAVE")},isMultiDisconnectSupported:function(t){return t.config.supportedFeatures.includes("MDISCONNECT")}})),{},{filteredRooms:function(){var t=this.showPrivateRooms?this.rooms:this.rooms.filter((function(t){return!t.isPrivate}));return Object(we["a"])(t,"name")}}),methods:{clear:function(t){xt.socket.emit("leave",this.selectedNamespace.name,t.name)},disconnect:function(t){xt.socket.emit("_disconnect",this.selectedNamespace.name,!1,t.name)},displayDetails:function(t){this.$router.push({name:"room",params:{nsp:this.selectedNamespace.name,name:t.name}})},onPrivateRoomsUpdate:function(t){var e=t?{p:1}:{};this.$router.replace({name:"rooms",query:e})}},mounted:function(){this.showPrivateRooms="1"===this.$route.query.p}},qn=An,Fn=Object(b["a"])(qn,Rn,Nn,!1,null,null,null),zn=Fn.exports;_()(Fn,{VBreadcrumbs:Pe["a"],VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VDataTable:Xe["a"],VIcon:ct["a"],VSwitch:X["a"],VTooltip:Ye["a"]});var Hn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),n("v-card",[n("v-data-table",{attrs:{headers:t.headers,items:t.clients,"footer-props":t.footerProps},scopedSlots:t._u([{key:"item.address",fn:function(e){var s=e.item;return[s.sockets.length?n("span",[t._v(t._s(s.sockets[0].handshake.address))]):t._e()]}},{key:"item.transport",fn:function(e){var s=e.item;return[s.sockets.length?n("Transport",{attrs:{transport:s.sockets[0].transport}}):t._e()]}},{key:"item.sockets",fn:function(e){var n=e.item;return[t._v(" "+t._s(n.sockets.length)+" ")]}},{key:"item.actions",fn:function(e){var s=e.item;return[t.isSocketDisconnectSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnect(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("clients.disconnect")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("clients.displayDetails")))])])]}}])})],1)],1)},Jn=[],Wn={name:"Clients",components:{Transport:te},data:function(){return{footerProps:{"items-per-page-options":[20,100,-1]}}},computed:Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("clients.title"),disabled:!0}]},headers:function(){return[{text:"#",value:"id",align:"start"},{text:this.$t("sockets.address"),value:"address"},{text:this.$t("sockets.transport"),value:"transport"},{text:this.$t("clients.sockets-count"),value:"sockets"},{value:"actions",align:"end",sortable:!1}]}},Object(l["d"])({clients:function(t){return t.main.clients},isReadonly:function(t){return t.config.readonly},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{disconnect:function(t){var e=t.sockets[0];e&&xt.socket.emit("_disconnect",e.nsp,!0,e.id)},displayDetails:function(t){this.$router.push({name:"client",params:{id:t.id}})}}},Kn=Wn,Qn=Object(b["a"])(Kn,Hn,Jn,!1,null,null,null),Xn=Qn.exports;_()(Qn,{VBreadcrumbs:Pe["a"],VBtn:D["a"],VCard:yt["a"],VDataTable:Xe["a"],VIcon:ct["a"],VTooltip:Ye["a"]});var Yn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),t.client?n("v-container",{attrs:{fluid:""}},[n("v-row",[n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("ClientDetails",{attrs:{client:t.client,socket:t.socket}})],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[t.socket?n("InitialRequest",{attrs:{socket:t.socket}}):t._e()],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("ClientSockets",{attrs:{sockets:t.client.sockets}})],1)],1)],1):t._e()],1)},Zn=[],Gn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",[t._v(t._s(t.$t("details")))]),n("v-simple-table",{attrs:{dense:""}},[[n("tbody",[n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("id")))]),n("td",[t._v(" "+t._s(t.client.id)+" ")]),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("status")))]),n("td",[n("ConnectionStatus",{attrs:{connected:t.client.connected}})],1),n("td",{attrs:{align:"right"}},[t.isSocketDisconnectSupported&&t.client.connected?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnectClient()}}},"v-btn",o,!1),s),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!1,1004975867)},[n("span",[t._v(t._s(t.$t("clients.disconnect")))])]):t._e()],1)]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("sockets.transport")))]),n("td",[n("Transport",{attrs:{transport:t.socket.transport}})],1),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("sockets.address")))]),n("td",[t._v(t._s(t.socket.handshake.address))]),n("td")])])]],2)],1)},ts=[],es={name:"ClientDetails",components:{ConnectionStatus:j,Transport:te},props:{client:Object,socket:Object},computed:Object(r["a"])({},Object(l["d"])({isReadonly:function(t){return t.config.readonly},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{disconnectClient:function(){var t=this.client.sockets[0];t&&xt.socket.emit("_disconnect",t.nsp,!0,t.id)}}},ns=es,ss=(n("6602"),Object(b["a"])(ns,Gn,ts,!1,null,"8d2424e4",null)),os=ss.exports;_()(ss,{VBtn:D["a"],VCard:yt["a"],VCardTitle:St["b"],VIcon:ct["a"],VSimpleTable:me["a"],VTooltip:Ye["a"]});var as=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",[n("v-card-title",[t._v(t._s(t.$t("sockets.title")))]),n("v-data-table",{attrs:{headers:t.headers,items:t.sockets,dense:""},scopedSlots:t._u([{key:"item.nsp",fn:function(e){var s=e.value;return[n("code",[t._v(t._s(s))])]}},{key:"item.actions",fn:function(e){var s=e.item;return[t.isSocketDisconnectSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnect(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.disconnect")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.displayDetails")))])])]}}])})],1)},rs=[],is={name:"ClientSockets",props:{sockets:Array},computed:Object(r["a"])({headers:function(){return[{text:"#",value:"id",align:"start"},{text:this.$t("namespace"),value:"nsp"},{value:"actions",align:"end",sortable:!1}]}},Object(l["d"])({isReadonly:function(t){return t.config.readonly},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{disconnect:function(t){xt.socket.emit("_disconnect",t.nsp,!1,t.id)},displayDetails:function(t){this.$router.push({name:"socket",params:{nsp:t.nsp,id:t.id}})}}},cs=is,ls=Object(b["a"])(cs,as,rs,!1,null,null,null),us=ls.exports;_()(ls,{VBtn:D["a"],VCard:yt["a"],VCardTitle:St["b"],VDataTable:Xe["a"],VIcon:ct["a"],VTooltip:Ye["a"]});var ds={name:"Client",components:{ClientSockets:us,InitialRequest:Vn,ClientDetails:os},data:function(){return{socket:null,client:null}},computed:Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("clients.title"),to:{name:"clients"},exact:!0},{text:this.$t("clients.details"),disabled:!0}]}},Object(l["b"])("main",["findClientById"])),mounted:function(){this.client=this.findClientById(this.$route.params.id),this.client&&(this.socket=this.client.sockets[0])}},ms=ds,ps=Object(b["a"])(ms,Yn,Zn,!1,null,"3d554d12",null),vs=ps.exports;_()(ps,{VBreadcrumbs:Pe["a"],VCol:Le["a"],VContainer:It["a"],VRow:de["a"]});var fs=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),n("v-card",[n("v-data-table",{attrs:{headers:t.headers,items:t.servers,"footer-props":t.footerProps},scopedSlots:t._u([{key:"item.uptime",fn:function(e){var n=e.value;return[t._v(" "+t._s(t.formatDuration(n))+" ")]}},{key:"item.lastPing",fn:function(e){var n=e.value;return[t._v(" "+t._s(t.delaySinceLastPing(n))+" ")]}},{key:"item.healthy",fn:function(t){var e=t.value;return[n("ServerStatus",{attrs:{healthy:e}})]}},{key:"item.actions",fn:function(e){var s=e.item;return[s.healthy?t._e():n("v-btn",{attrs:{small:""},on:{click:function(e){return t.removeServer(s)}}},[n("v-icon",[t._v("mdi-delete-outline")])],1)]}}])})],1)],1)},hs=[],bs={name:"Servers",components:{ServerStatus:Se},data:function(){return{footerProps:{"items-per-page-options":[20,100,-1]},now:Date.now()}},created:function(){var t=this;this.interval=setInterval((function(){t.now=Date.now()}),1e3)},beforeDestroy:function(){clearInterval(this.interval)},computed:Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("servers.title"),disabled:!0}]},headers:function(){return[{text:this.$t("id"),value:"serverId"},{text:this.$t("servers.hostname"),value:"hostname"},{text:this.$t("servers.pid"),value:"pid"},{text:this.$t("servers.uptime"),value:"uptime"},{text:this.$t("servers.clients-count"),value:"clientsCount"},{text:this.$t("servers.last-ping"),value:"lastPing"},{text:this.$t("status"),value:"healthy"},{value:"actions",align:"end",sortable:!1}]}},Object(l["d"])({servers:function(t){return Object(we["a"])(t.servers.servers,"serverId")}})),methods:{formatDuration:ae,delaySinceLastPing:function(t){var e=this.now-t;return"".concat(ae(e/1e3)," ago")},removeServer:function(t){this.$store.commit("servers/removeServer",t.serverId)}}},ks=bs,_s=Object(b["a"])(ks,fs,hs,!1,null,null,null),gs=_s.exports;_()(_s,{VBreadcrumbs:Pe["a"],VBtn:D["a"],VCard:yt["a"],VDataTable:Xe["a"],VIcon:ct["a"]});var ys=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),t.room?n("v-container",{attrs:{fluid:""}},[n("v-row",[n("v-col",{attrs:{sm:"12",md:"4"}},[n("RoomDetails",{attrs:{room:t.room,nsp:t.$route.params.nsp}})],1),n("v-col",{attrs:{sm:"12",md:"8"}},[n("RoomSockets",{attrs:{room:t.room}})],1)],1)],1):t._e()],1)},Ss=[],Cs=function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.room?n("v-card",[n("v-card-title",[t._v(t._s(t.$t("sockets.title")))]),n("v-data-table",{attrs:{headers:t.headers,items:t.room.sockets,"footer-props":t.footerProps},scopedSlots:t._u([{key:"item.transport",fn:function(t){var e=t.value;return[n("Transport",{attrs:{transport:e}})]}},{key:"item.actions",fn:function(e){var s=e.item;return[t.isSocketLeaveSupported&&!t.room.isPrivate?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.leave(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-tag-off-outline")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("rooms.leave")))])]):t._e(),t.isSocketDisconnectSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnect(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.disconnect")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var o=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",a,!1),o),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.displayDetails")))])])]}}],null,!1,1092228050)})],1):t._e()},Os=[],$s={name:"RoomSockets",components:{Transport:te},props:{room:Object},data:function(){return{footerProps:{"items-per-page-options":[20,100,-1]}}},computed:Object(r["a"])(Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("rooms.title"),to:{name:"rooms"}},{text:this.$t("rooms.details"),disabled:!0}]},headers:function(){return[{text:this.$t("id"),value:"id",align:"start"},{text:this.$t("sockets.address"),value:"handshake.address"},{text:this.$t("sockets.transport"),value:"transport"},{value:"actions",align:"end",sortable:!1}]}},Object(l["b"])("main",["findRoomByName"])),Object(l["d"])({isReadonly:function(t){return t.config.readonly},isSocketLeaveSupported:function(t){return t.config.supportedFeatures.includes("LEAVE")},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{leave:function(t){xt.socket.emit("leave",t.nsp,this.room.name,t.id)},disconnect:function(t){xt.socket.emit("_disconnect",t.nsp,!1,t.id)},displayDetails:function(t){this.$router.push({name:"socket",params:{nsp:this.$route.params.nsp,id:t.id}})}}},js=$s,xs=Object(b["a"])(js,Cs,Os,!1,null,null,null),Vs=xs.exports;_()(xs,{VBtn:D["a"],VCard:yt["a"],VCardTitle:St["b"],VDataTable:Xe["a"],VIcon:ct["a"],VTooltip:Ye["a"]});var ws=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",[t._v(t._s(t.$t("details")))]),n("v-simple-table",{attrs:{dense:""}},[[n("tbody",[n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("namespace")))]),n("td",[n("code",[t._v(t._s(t.nsp))])]),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("id")))]),n("td",[t._v(" "+t._s(t.room.name)+" ")]),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("status")))]),n("td",[n("RoomStatus",{attrs:{active:t.room.active}})],1),n("td",{attrs:{align:"right"}},[t.isMultiLeaveSupported&&!t.room.isPrivate?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.clear()}}},"v-btn",o,!1),s),[n("v-icon",[t._v("mdi-tag-off-outline")])],1)]}}],null,!1,464351539)},[n("span",[t._v(t._s(t.$t("rooms.clear")))])]):t._e()],1)]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("type")))]),n("td",[n("RoomType",{attrs:{"is-private":t.room.isPrivate}})],1),n("td")])])]],2)],1)},Ts=[],Ds=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("Status",{attrs:{value:t.active,"ok-label":t.$t("rooms.active"),"ko-label":t.$t("rooms.deleted")}})},Is=[],Rs={name:"RoomStatus",components:{Status:S},props:{active:Boolean}},Ns=Rs,Es=Object(b["a"])(Ns,Ds,Is,!1,null,null,null),Ps=Es.exports,Ls={name:"RoomDetails",components:{RoomType:Mn,RoomStatus:Ps},props:{room:Object,nsp:String},computed:Object(r["a"])({},Object(l["d"])({isReadonly:function(t){return t.config.readonly},isMultiLeaveSupported:function(t){return t.config.supportedFeatures.includes("MLEAVE")}})),methods:{clear:function(){xt.socket.emit("leave",this.nsp,this.room.name)}}},Us=Ls,Bs=Object(b["a"])(Us,ws,Ts,!1,null,"7b3793ea",null),Ms=Bs.exports;_()(Bs,{VBtn:D["a"],VCard:yt["a"],VCardTitle:St["b"],VIcon:ct["a"],VSimpleTable:me["a"],VTooltip:Ye["a"]});var As={name:"Sockets",components:{RoomDetails:Ms,RoomSockets:Vs},data:function(){return{room:null}},computed:Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("rooms.title"),to:{name:"rooms"}},{text:this.$t("rooms.details"),disabled:!0}]}},Object(l["b"])("main",["findRoomByName"])),mounted:function(){this.room=this.findRoomByName(this.$route.params.nsp,this.$route.params.name)}},qs=As,Fs=Object(b["a"])(qs,ys,Ss,!1,null,null,null),zs=Fs.exports;_()(Fs,{VBreadcrumbs:Pe["a"],VCol:Le["a"],VContainer:It["a"],VRow:de["a"]}),s["a"].use(Ut["a"]);var Hs=[{path:"/",name:"dashboard",component:Be,meta:{topLevel:!0,index:0}},{path:"/sockets/",name:"sockets",component:Ge,meta:{topLevel:!0,index:1}},{path:"/n/:nsp/sockets/:id",name:"socket",component:In,meta:{topLevel:!1}},{path:"/rooms/",name:"rooms",component:zn,meta:{topLevel:!0,index:2}},{path:"/n/:nsp/rooms/:name",name:"room",component:zs,meta:{topLevel:!1}},{path:"/clients/",name:"clients",component:Xn,meta:{topLevel:!0,index:3}},{path:"/clients/:id",name:"client",component:vs,meta:{topLevel:!1}},{path:"/servers/",name:"servers",component:gs,meta:{topLevel:!0,index:4}}],Js=new Ut["a"]({mode:"hash",base:"/",routes:Hs}),Ws=Js,Ks=(n("159b"),n("d3b7"),n("ddb0"),n("466d"),n("a925"));function Qs(){var t=n("49f8"),e={};return t.keys().forEach((function(n){var s=n.match(/([A-Za-z0-9-_]+)\./i);if(s&&s.length>1){var o=s[1];e[o]=t(n)}})),e}s["a"].use(Ks["a"]);var Xs=new Ks["a"]({locale:"en",fallbackLocale:"en",messages:Qs()}),Ys={namespaced:!0,state:{darkTheme:!1,readonly:!1,lang:"en",supportedFeatures:[]},mutations:{init:function(t){oe&&(t.darkTheme="true"===localStorage.getItem("dark_theme"),t.readonly="true"===localStorage.getItem("readonly"),t.lang=localStorage.getItem("lang")||"en")},selectTheme:function(t,e){t.darkTheme=e,oe&&localStorage.setItem("dark_theme",e)},selectLang:function(t,e){t.lang=e,oe&&localStorage.setItem("lang",e)},toggleReadonly:function(t){t.readonly=!t.readonly,oe&&localStorage.setItem("readonly",t.readonly)},updateConfig:function(t,e){t.supportedFeatures=e.supportedFeatures}}},Zs={namespaced:!0,state:{serverUrl:"",wsOnly:!1,sessionId:"",connected:!1},mutations:{init:function(t){oe&&(t.serverUrl=localStorage.getItem("server_url"),t.wsOnly="true"===localStorage.getItem("ws_only"),t.sessionId=localStorage.getItem("session_id"))},saveConfig:function(t,e){var n=e.serverUrl,s=e.wsOnly;t.serverUrl=n,t.wsOnly=s,oe&&(localStorage.setItem("server_url",n),localStorage.setItem("ws_only",s))},saveSessionId:function(t,e){t.sessionId=e,oe&&localStorage.setItem("session_id",e)},connect:function(t){t.connected=!0},disconnect:function(t){t.connected=!1}}},Gs=n("3835"),to=n("0a94"),eo=n("a1a3"),no=function(t,e){var n=Object(to["a"])(t,{name:e});return n||(n={name:e,sockets:[],rooms:[]},t.push(n),n)},so=function(t,e){var n=Object(to["a"])(t.rooms,{name:e});return n||(n={name:e,active:!0,sockets:[]},t.rooms.push(n),n)},oo=function(t,e){var n=Object(to["a"])(t,{id:e});return n||(n={id:e,connected:!0,sockets:[]},t.push(n),n)},ao=function(t,e){var n=no(t.namespaces,e.nsp);e.connected=!0,Object(to["a"])(n.sockets,{id:e.id})||n.sockets.push(e),e.rooms.forEach((function(t){var s=so(n,t);s.isPrivate=t===e.id,Object(to["a"])(s.sockets,{id:e.id})||s.sockets.push(e)}));var s=oo(t.clients,e.clientId);Object(to["a"])(s.sockets,{id:e.id})||s.sockets.push(e)},ro={namespaced:!0,state:{namespaces:[],clients:[],selectedNamespace:null},getters:{findSocketById:function(t){return function(e,n){var s=Object(to["a"])(t.namespaces,{name:e});if(s)return Object(to["a"])(s.sockets,{id:n})}},findClientById:function(t){return function(e){return Object(to["a"])(t.clients,{id:e})}},findRoomByName:function(t){return function(e,n){var s=Object(to["a"])(t.namespaces,{name:e});if(s)return Object(to["a"])(s.rooms,{name:n})}},findRoomsByNamespace:function(t){return function(e){var n=Object(to["a"])(t.namespaces,{name:e});return n?n.rooms:[]}},sockets:function(t){return t.selectedNamespace?t.selectedNamespace.sockets:[]},rooms:function(t){return t.selectedNamespace?t.selectedNamespace.rooms:[]}},mutations:{selectNamespace:function(t,e){t.selectedNamespace=e},onAllSockets:function(t,e){t.namespaces.forEach((function(t){t.sockets.splice(0),t.rooms.splice(0)})),t.clients.splice(0),e.forEach((function(e){return ao(t,e)})),t.selectedNamespace||(t.selectedNamespace=Object(to["a"])(t.namespaces,{name:"/"})||t.namespaces[0])},onSocketConnected:function(t,e){ao(t,e)},onSocketUpdated:function(t,e){var n=no(t.namespaces,e.nsp),s=Object(to["a"])(n.sockets,{id:e.id});s&&Object(eo["a"])(s,e)},onSocketDisconnected:function(t,e){var n=e.nsp,s=e.id,o=no(t.namespaces,n),a=re(o.sockets,{id:s}),r=Object(Gs["a"])(a,1),i=r[0];if(i){i.connected=!1;var c=oo(t.clients,i.clientId);re(c.sockets,{id:s}),0===c.sockets.length&&(c.connected=!1,re(t.clients,{id:i.clientId}))}},onRoomJoined:function(t,e){var n=e.nsp,s=e.room,o=e.id,a=no(t.namespaces,n),r=Object(to["a"])(a.sockets,{id:o});if(r){ie(r.rooms,s);var i=so(a,s);i.sockets.push(r)}},onRoomLeft:function(t,e){var n=e.nsp,s=e.room,o=e.id,a=no(t.namespaces,n),r=Object(to["a"])(a.sockets,{id:o});r&&re(r.rooms,s);var i=so(a,s);re(i.sockets,{id:o}),0===i.sockets.length&&(i.active=!1,re(a.rooms,{name:s}))}}},io=1e4,co={namespaced:!0,state:{servers:[]},mutations:{onServerStats:function(t,e){e.lastPing=Date.now();var n=Object(to["a"])(t.servers,{serverId:e.serverId});n?Object(eo["a"])(n,e):(e.healthy=!0,t.servers.push(e))},removeServer:function(t,e){re(t.servers,{serverId:e})},updateState:function(t){t.servers.forEach((function(t){t.healthy=Date.now()-t.lastPing\n {{\n label\n }}\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Status.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Status.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Status.vue?vue&type=template&id=87034bbc&\"\nimport script from \"./Status.vue?vue&type=script&lang=js&\"\nexport * from \"./Status.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\ninstallComponents(component, {VChip})\n","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionStatus.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionStatus.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConnectionStatus.vue?vue&type=template&id=65b30979&\"\nimport script from \"./ConnectionStatus.vue?vue&type=script&lang=js&\"\nexport * from \"./ConnectionStatus.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppBar.vue?vue&type=template&id=07946445&\"\nimport script from \"./AppBar.vue?vue&type=script&lang=js&\"\nexport * from \"./AppBar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAppBar,VBtn,VImg,VSpacer,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-navigation-drawer',{staticClass:\"elevation-3\",attrs:{\"app\":\"\",\"clipped\":\"\",\"permanent\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-divider'),_c('div',{staticClass:\"pa-3 pt-10\"},[_c('LangSelector'),_c('ThemeSelector'),_c('ReadonlyToggle')],1)]},proxy:true}])},[_c('v-list',{attrs:{\"dense\":\"\",\"nav\":\"\"}},_vm._l((_vm.items),function(item){return _c('v-list-item',{key:item.title,attrs:{\"to\":item.to,\"exact\":item.exact}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(item.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)],1)}),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('v-select',{attrs:{\"dense\":\"\",\"value\":_vm.lang,\"items\":_vm.languages,\"label\":_vm.$t('config.language')},on:{\"change\":_vm.onSelectLang}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LangSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LangSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LangSelector.vue?vue&type=template&id=d0f72ccc&\"\nimport script from \"./LangSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./LangSelector.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-switch',{attrs:{\"input-value\":_vm.darkTheme,\"label\":_vm.$t('config.dark-theme'),\"inset\":\"\",\"dense\":\"\"},on:{\"change\":_vm.onSelectTheme}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThemeSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThemeSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ThemeSelector.vue?vue&type=template&id=65fd31ec&\"\nimport script from \"./ThemeSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./ThemeSelector.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VSwitch})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-switch',{attrs:{\"input-value\":_vm.readonly,\"label\":_vm.$t('config.readonly'),\"disabled\":_vm.disabled,\"inset\":\"\",\"dense\":\"\"},on:{\"change\":_vm.toggleReadonly}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadonlyToggle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadonlyToggle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ReadonlyToggle.vue?vue&type=template&id=5b271066&\"\nimport script from \"./ReadonlyToggle.vue?vue&type=script&lang=js&\"\nexport * from \"./ReadonlyToggle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VSwitch})\n","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NavigationDrawer.vue?vue&type=template&id=5de9075c&\"\nimport script from \"./NavigationDrawer.vue?vue&type=script&lang=js&\"\nexport * from \"./NavigationDrawer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\ninstallComponents(component, {VDivider,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VNavigationDrawer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.isOpen,\"transition\":\"dialog-bottom-transition\",\"max-width\":\"300\",\"persistent\":\"\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"connection.title\")))]),_c('v-card-text',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('connection.serverUrl'),\"placeholder\":\"https://example.com/admin\",\"required\":\"\"},model:{value:(_vm.serverUrl),callback:function ($$v) {_vm.serverUrl=$$v},expression:\"serverUrl\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('connection.username')},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('connection.password'),\"type\":\"password\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('v-switch',{attrs:{\"label\":_vm.$t('connection.websocket-only'),\"inset\":\"\",\"dense\":\"\"},model:{value:(_vm.wsOnly),callback:function ($$v) {_vm.wsOnly=$$v},expression:\"wsOnly\"}}),_c('v-btn',{staticClass:\"primary\",attrs:{\"loading\":_vm.isConnecting,\"disabled\":_vm.isConnecting || !_vm.isValid,\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.$t(\"connection.connect\")))]),(_vm.error)?_c('div',{staticClass:\"red--text mt-3\"},[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")]):_vm._e()],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConnectionModal.vue?vue&type=template&id=8d164a72&scoped=true&\"\nimport script from \"./ConnectionModal.vue?vue&type=script&lang=js&\"\nexport * from \"./ConnectionModal.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8d164a72\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VDialog,VSwitch,VTextField})\n","export default {\n set socket(socket) {\n this._socket = socket;\n },\n\n get socket() {\n return this._socket;\n },\n};\n","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=00dffacb&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VContainer,VMain})\n","var render, staticRenderFns\nimport script from \"./Doughnut.vue?vue&type=script&lang=js&\"\nexport * from \"./Doughnut.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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 render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('ClientsOverview')],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('ServersOverview')],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('NamespacesOverview')],1)],1)],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('v-card',[_c('v-card-title',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"clients.title\"))+\" \"),_c('v-spacer'),_c('v-btn',{attrs:{\"to\":{ name: 'clients' },\"small\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)],1),_c('v-card-text',[_c('v-row',[_c('Doughnut',{staticClass:\"chart\",attrs:{\"chart-data\":_vm.data}}),_c('v-simple-table',{staticClass:\"grow align-self-center\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"sockets.transport\")))]),_c('th',[_vm._v(\"#\")])]),_vm._l((_vm.transports),function(transport){return _c('tr',{key:transport},[_c('td',[_c('Transport',{attrs:{\"transport\":transport}})],1),_c('td',[_c('div',[_c('h2',[_vm._v(_vm._s(_vm.transportRepartition[transport] || 0))])]),_c('div',[_vm._v(\" \"+_vm._s(_vm.percentage( _vm.transportRepartition[transport] || 0, _vm.clients.length ))+\" % \")])])])})],2)]},proxy:true}])})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Doughnut.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Doughnut.vue?vue&type=script&lang=js&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-chip',{attrs:{\"small\":\"\",\"color\":_vm.color,\"outlined\":\"\"}},[_vm._v(_vm._s(_vm.label))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Transport.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Transport.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Transport.vue?vue&type=template&id=54f750af&\"\nimport script from \"./Transport.vue?vue&type=script&lang=js&\"\nexport * from \"./Transport.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\ninstallComponents(component, {VChip})\n","import { findIndex } from \"lodash-es\";\n\nconst testLocalStorage = () => {\n const test = \"test\";\n try {\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nexport const isLocalStorageAvailable = testLocalStorage();\n\nexport function formatDuration(duration) {\n const d = Math.ceil(Math.max(duration, 0));\n const days = Math.floor(d / 86400);\n const hours = Math.floor((d - days * 86400) / 3600);\n const minutes = Math.floor((d - days * 86400 - hours * 3600) / 60);\n const seconds = Math.ceil(d) - days * 86400 - hours * 3600 - minutes * 60;\n\n const output = [];\n if (days > 0) {\n output.push(days + \"d\");\n }\n if (days > 0 || hours > 0) {\n output.push(hours + \"h\");\n }\n if (days > 0 || hours > 0 || minutes > 0) {\n output.push(minutes + \"m\");\n }\n output.push(seconds + \"s\");\n return output.join(\" \");\n}\n\n/**\n * lodash remove() does not play well with Vue.js\n */\nexport function remove(array, predicate) {\n const index =\n typeof predicate === \"object\"\n ? findIndex(array, predicate)\n : array.indexOf(predicate);\n return index === -1 ? [] : array.splice(index, 1);\n}\n\nexport function pushUniq(array, elem) {\n if (!array.includes(elem)) {\n array.push(elem);\n }\n}\n\nexport function percentage(value, total) {\n return total === 0 ? 0 : ((value / total) * 100).toFixed(1);\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientsOverview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientsOverview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClientsOverview.vue?vue&type=template&id=58987bf8&scoped=true&\"\nimport script from \"./ClientsOverview.vue?vue&type=script&lang=js&\"\nexport * from \"./ClientsOverview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ClientsOverview.vue?vue&type=style&index=0&id=58987bf8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"58987bf8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VIcon,VRow,VSimpleTable,VSpacer})\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',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"servers.title\"))+\" \"),_c('v-spacer'),_c('v-btn',{attrs:{\"to\":{ name: 'servers' },\"small\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)],1),_c('v-card-text',[_c('v-row',[_c('Doughnut',{staticClass:\"chart\",attrs:{\"chart-data\":_vm.data}}),_c('v-simple-table',{staticClass:\"grow align-self-center\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"status\")))]),_c('th',[_vm._v(\"#\")])]),_c('tr',[_c('td',[_c('ServerStatus',{attrs:{\"healthy\":\"\"}})],1),_c('td',[_c('div',[_c('h2',[_vm._v(_vm._s(_vm.healthyServers))])]),_c('div',[_vm._v(_vm._s(_vm.percentage(_vm.healthyServers, _vm.totalServers))+\" %\")])])]),_c('tr',[_c('td',[_c('ServerStatus')],1),_c('td',[_c('div',[_c('h2',[_vm._v(_vm._s(_vm.totalServers - _vm.healthyServers))])]),_c('div',[_vm._v(\" \"+_vm._s(_vm.percentage(_vm.totalServers - _vm.healthyServers, _vm.totalServers))+\" % \")])])])])]},proxy:true}])})],1)],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('Status',{attrs:{\"value\":_vm.healthy,\"ok-label\":_vm.$t('servers.healthy'),\"ko-label\":_vm.$t('servers.unhealthy')}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServerStatus.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServerStatus.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ServerStatus.vue?vue&type=template&id=76035ea6&\"\nimport script from \"./ServerStatus.vue?vue&type=script&lang=js&\"\nexport * from \"./ServerStatus.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServersOverview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServersOverview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ServersOverview.vue?vue&type=template&id=d6482f56&scoped=true&\"\nimport script from \"./ServersOverview.vue?vue&type=script&lang=js&\"\nexport * from \"./ServersOverview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ServersOverview.vue?vue&type=style&index=0&id=d6482f56&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d6482f56\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VIcon,VRow,VSimpleTable,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"namespaces\"))+\" \"),_c('v-spacer'),_c('v-btn',{attrs:{\"to\":{ name: 'sockets' },\"small\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)],1),_c('v-simple-table',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"name\")))]),_c('th',[_vm._v(_vm._s(_vm.$t(\"rooms.sockets-count\")))])])]),_c('tbody',_vm._l((_vm.namespaces),function(namespace){return _c('tr',{key:namespace.name},[_c('td',{staticClass:\"key-column\"},[_c('code',[_vm._v(_vm._s(namespace.name))])]),_c('td',[_vm._v(_vm._s(namespace.sockets.length))])])}),0)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NamespacesOverview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NamespacesOverview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NamespacesOverview.vue?vue&type=template&id=0de70938&scoped=true&\"\nimport script from \"./NamespacesOverview.vue?vue&type=script&lang=js&\"\nexport * from \"./NamespacesOverview.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0de70938\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VIcon,VSimpleTable,VSpacer})\n","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=2764d552&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBreadcrumbs,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),_c('v-card',[_c('v-card-text',[_c('NamespaceSelector')],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.sockets,\"footer-props\":_vm.footerProps},scopedSlots:_vm._u([{key:\"item.transport\",fn:function(ref){\nvar value = ref.value;\nreturn [_c('Transport',{attrs:{\"transport\":value}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isSocketDisconnectSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnect(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.disconnect\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.displayDetails\")))])])]}}])})],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('v-select',{staticClass:\"selector\",attrs:{\"value\":_vm.selectedNamespace,\"items\":_vm.namespaces,\"item-text\":\"name\",\"item-value\":\"name\",\"label\":_vm.$t('select-namespace'),\"persistent-hint\":\"\",\"return-object\":\"\"},on:{\"change\":_vm.selectNamespace}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NamespaceSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NamespaceSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NamespaceSelector.vue?vue&type=template&id=2c330798&scoped=true&\"\nimport script from \"./NamespaceSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./NamespaceSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NamespaceSelector.vue?vue&type=style&index=0&id=2c330798&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c330798\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\n","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sockets.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sockets.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Sockets.vue?vue&type=template&id=23b04124&\"\nimport script from \"./Sockets.vue?vue&type=script&lang=js&\"\nexport * from \"./Sockets.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBreadcrumbs,VBtn,VCard,VCardText,VDataTable,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),(_vm.socket)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('SocketDetails',{attrs:{\"socket\":_vm.socket,\"client\":_vm.client}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('InitialRequest',{attrs:{\"socket\":_vm.socket}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('SocketRooms',{attrs:{\"socket\":_vm.socket}})],1)],1)],1):_vm._e()],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('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"rooms.title\")))]),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.roomsAsObjects,\"dense\":\"\"},scopedSlots:_vm._u([{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isSocketLeaveSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.leave(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-tag-off-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.leave\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.displayDetails\")))])])]}}])}),_c('v-card-text',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('v-combobox',{staticClass:\"select-room d-inline-block mr-3\",attrs:{\"search-input\":_vm.newRoom,\"label\":_vm.$t('sockets.join-a-room'),\"items\":_vm.availableRooms,\"item-value\":\"name\",\"item-text\":\"name\",\"disabled\":_vm.isReadonly,\"return-object\":false},on:{\"update:searchInput\":function($event){_vm.newRoom=$event},\"update:search-input\":function($event){_vm.newRoom=$event}}}),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"type\":\"submit\",\"small\":\"\",\"disabled\":_vm.isReadonly}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-tag-plus-outline\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.join\")))])])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketRooms.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketRooms.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SocketRooms.vue?vue&type=template&id=d014ee1e&scoped=true&\"\nimport script from \"./SocketRooms.vue?vue&type=script&lang=js&\"\nexport * from \"./SocketRooms.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SocketRooms.vue?vue&type=style&index=0&id=d014ee1e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d014ee1e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCombobox,VDataTable,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"details\")))]),_c('v-card-text',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sockets.client\")))])]),_c('v-simple-table',{attrs:{\"dense\":\"\"}},[[_c('tbody',[_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"id\")))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.client.id)+\" \")]),_c('td',{attrs:{\"align\":\"right\"}},[(_vm.client.connected)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.navigateToClient()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,false,898213143)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"clients.displayDetails\")))])]):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"status\")))]),_c('td',[_c('ConnectionStatus',{attrs:{\"connected\":_vm.client.connected}})],1),_c('td',{attrs:{\"align\":\"right\"}},[(_vm.isSocketDisconnectSupported && _vm.client.connected)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnectClient()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,false,1004975867)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"clients.disconnect\")))])]):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"sockets.transport\")))]),_c('td',[_c('Transport',{attrs:{\"transport\":_vm.socket.transport}})],1),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"sockets.address\")))]),_c('td',[_vm._v(_vm._s(_vm.socket.handshake.address))]),_c('td')])])]],2),_c('v-card-text',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sockets.socket\")))])]),_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',[_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"namespace\")))]),_c('td',[_c('code',[_vm._v(_vm._s(_vm.socket.nsp))])]),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"id\")))]),_c('td',[_vm._v(_vm._s(_vm.socket.id))]),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"status\")))]),_c('td',[_c('ConnectionStatus',{attrs:{\"connected\":_vm.socket.connected}})],1),_c('td',{attrs:{\"align\":\"right\"}},[(_vm.isSocketDisconnectSupported && _vm.socket.connected)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnectSocket()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,false,2351110648)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.disconnect\")))])]):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"sockets.creation-date\")))]),_c('td',[_vm._v(_vm._s(_vm.creationDate))]),_c('td')])])]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SocketDetails.vue?vue&type=template&id=1a6e3452&scoped=true&\"\nimport script from \"./SocketDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./SocketDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SocketDetails.vue?vue&type=style&index=0&id=1a6e3452&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a6e3452\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VIcon,VSimpleTable,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"sockets.initial-request\")))]),_c('v-card-text',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sockets.headers\")))])]),_c('KeyValueTable',{attrs:{\"object\":_vm.socket.handshake.headers}}),_c('v-card-text',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sockets.query-params\")))])]),_c('KeyValueTable',{attrs:{\"object\":_vm.socket.handshake.query}})],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('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"name\")))]),_c('th',[_vm._v(_vm._s(_vm.$t(\"value\")))])])]),_c('tbody',_vm._l((_vm.items),function(ref){\nvar key = ref.key;\nvar value = ref.value;\nreturn _c('tr',{key:key},[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(key))]),_c('td',[_vm._v(_vm._s(value))])])}),0)]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyValueTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyValueTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KeyValueTable.vue?vue&type=template&id=18284f59&scoped=true&\"\nimport script from \"./KeyValueTable.vue?vue&type=script&lang=js&\"\nexport * from \"./KeyValueTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KeyValueTable.vue?vue&type=style&index=0&id=18284f59&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18284f59\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VSimpleTable})\n","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InitialRequest.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InitialRequest.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InitialRequest.vue?vue&type=template&id=02abed88&\"\nimport script from \"./InitialRequest.vue?vue&type=script&lang=js&\"\nexport * from \"./InitialRequest.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCard,VCardText,VCardTitle})\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Socket.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Socket.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Socket.vue?vue&type=template&id=14172ed0&scoped=true&\"\nimport script from \"./Socket.vue?vue&type=script&lang=js&\"\nexport * from \"./Socket.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14172ed0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBreadcrumbs,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),_c('v-card',[_c('v-card-text',{staticClass:\"d-flex\"},[_c('NamespaceSelector'),_c('v-switch',{staticClass:\"ml-3\",attrs:{\"label\":_vm.$t('rooms.show-private'),\"inset\":\"\",\"dense\":\"\"},on:{\"change\":_vm.onPrivateRoomsUpdate},model:{value:(_vm.showPrivateRooms),callback:function ($$v) {_vm.showPrivateRooms=$$v},expression:\"showPrivateRooms\"}})],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.filteredRooms,\"footer-props\":_vm.footerProps},scopedSlots:_vm._u([{key:\"item.sockets\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.sockets.length)+\" \")]}},{key:\"item.isPrivate\",fn:function(ref){\nvar value = ref.value;\nreturn [_c('RoomType',{attrs:{\"is-private\":value}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isMultiLeaveSupported && !item.isPrivate)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.clear(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-tag-off-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.clear\")))])]):_vm._e(),(_vm.isMultiDisconnectSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnect(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.disconnect\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.displayDetails\")))])])]}}])})],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('Status',{attrs:{\"value\":!_vm.isPrivate,\"ok-label\":_vm.$t('rooms.public'),\"ko-label\":_vm.$t('rooms.private')}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomType.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomType.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoomType.vue?vue&type=template&id=65e67f84&\"\nimport script from \"./RoomType.vue?vue&type=script&lang=js&\"\nexport * from \"./RoomType.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rooms.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rooms.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Rooms.vue?vue&type=template&id=04cd8de4&\"\nimport script from \"./Rooms.vue?vue&type=script&lang=js&\"\nexport * from \"./Rooms.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBreadcrumbs,VBtn,VCard,VCardText,VDataTable,VIcon,VSwitch,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),_c('v-card',[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.clients,\"footer-props\":_vm.footerProps},scopedSlots:_vm._u([{key:\"item.address\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.sockets.length)?_c('span',[_vm._v(_vm._s(item.sockets[0].handshake.address))]):_vm._e()]}},{key:\"item.transport\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.sockets.length)?_c('Transport',{attrs:{\"transport\":item.sockets[0].transport}}):_vm._e()]}},{key:\"item.sockets\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.sockets.length)+\" \")]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isSocketDisconnectSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnect(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"clients.disconnect\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"clients.displayDetails\")))])])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Clients.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Clients.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Clients.vue?vue&type=template&id=6a3ffff4&\"\nimport script from \"./Clients.vue?vue&type=script&lang=js&\"\nexport * from \"./Clients.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBreadcrumbs,VBtn,VCard,VDataTable,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),(_vm.client)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('ClientDetails',{attrs:{\"client\":_vm.client,\"socket\":_vm.socket}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[(_vm.socket)?_c('InitialRequest',{attrs:{\"socket\":_vm.socket}}):_vm._e()],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('ClientSockets',{attrs:{\"sockets\":_vm.client.sockets}})],1)],1)],1):_vm._e()],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('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"details\")))]),_c('v-simple-table',{attrs:{\"dense\":\"\"}},[[_c('tbody',[_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"id\")))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.client.id)+\" \")]),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"status\")))]),_c('td',[_c('ConnectionStatus',{attrs:{\"connected\":_vm.client.connected}})],1),_c('td',{attrs:{\"align\":\"right\"}},[(_vm.isSocketDisconnectSupported && _vm.client.connected)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnectClient()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,false,1004975867)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"clients.disconnect\")))])]):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"sockets.transport\")))]),_c('td',[_c('Transport',{attrs:{\"transport\":_vm.socket.transport}})],1),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"sockets.address\")))]),_c('td',[_vm._v(_vm._s(_vm.socket.handshake.address))]),_c('td')])])]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClientDetails.vue?vue&type=template&id=8d2424e4&scoped=true&\"\nimport script from \"./ClientDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./ClientDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ClientDetails.vue?vue&type=style&index=0&id=8d2424e4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8d2424e4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VIcon,VSimpleTable,VTooltip})\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(_vm._s(_vm.$t(\"sockets.title\")))]),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.sockets,\"dense\":\"\"},scopedSlots:_vm._u([{key:\"item.nsp\",fn:function(ref){\nvar value = ref.value;\nreturn [_c('code',[_vm._v(_vm._s(value))])]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isSocketDisconnectSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnect(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.disconnect\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.displayDetails\")))])])]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientSockets.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientSockets.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClientSockets.vue?vue&type=template&id=92f31530&\"\nimport script from \"./ClientSockets.vue?vue&type=script&lang=js&\"\nexport * from \"./ClientSockets.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VDataTable,VIcon,VTooltip})\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Client.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Client.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Client.vue?vue&type=template&id=3d554d12&scoped=true&\"\nimport script from \"./Client.vue?vue&type=script&lang=js&\"\nexport * from \"./Client.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d554d12\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBreadcrumbs,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),_c('v-card',[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.servers,\"footer-props\":_vm.footerProps},scopedSlots:_vm._u([{key:\"item.uptime\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.formatDuration(value))+\" \")]}},{key:\"item.lastPing\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.delaySinceLastPing(value))+\" \")]}},{key:\"item.healthy\",fn:function(ref){\nvar value = ref.value;\nreturn [_c('ServerStatus',{attrs:{\"healthy\":value}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(!item.healthy)?_c('v-btn',{attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.removeServer(item)}}},[_c('v-icon',[_vm._v(\"mdi-delete-outline\")])],1):_vm._e()]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Servers.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Servers.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Servers.vue?vue&type=template&id=3241ef20&\"\nimport script from \"./Servers.vue?vue&type=script&lang=js&\"\nexport * from \"./Servers.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBreadcrumbs,VBtn,VCard,VDataTable,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),(_vm.room)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"4\"}},[_c('RoomDetails',{attrs:{\"room\":_vm.room,\"nsp\":_vm.$route.params.nsp}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"8\"}},[_c('RoomSockets',{attrs:{\"room\":_vm.room}})],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.room)?_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"sockets.title\")))]),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.room.sockets,\"footer-props\":_vm.footerProps},scopedSlots:_vm._u([{key:\"item.transport\",fn:function(ref){\nvar value = ref.value;\nreturn [_c('Transport',{attrs:{\"transport\":value}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isSocketLeaveSupported && !_vm.room.isPrivate)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.leave(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-tag-off-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.leave\")))])]):_vm._e(),(_vm.isSocketDisconnectSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnect(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.disconnect\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.displayDetails\")))])])]}}],null,false,1092228050)})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomSockets.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomSockets.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoomSockets.vue?vue&type=template&id=53b1a037&\"\nimport script from \"./RoomSockets.vue?vue&type=script&lang=js&\"\nexport * from \"./RoomSockets.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VDataTable,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"details\")))]),_c('v-simple-table',{attrs:{\"dense\":\"\"}},[[_c('tbody',[_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"namespace\")))]),_c('td',[_c('code',[_vm._v(_vm._s(_vm.nsp))])]),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"id\")))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.room.name)+\" \")]),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"status\")))]),_c('td',[_c('RoomStatus',{attrs:{\"active\":_vm.room.active}})],1),_c('td',{attrs:{\"align\":\"right\"}},[(_vm.isMultiLeaveSupported && !_vm.room.isPrivate)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.clear()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-tag-off-outline\")])],1)]}}],null,false,464351539)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.clear\")))])]):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"type\")))]),_c('td',[_c('RoomType',{attrs:{\"is-private\":_vm.room.isPrivate}})],1),_c('td')])])]],2)],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('Status',{attrs:{\"value\":_vm.active,\"ok-label\":_vm.$t('rooms.active'),\"ko-label\":_vm.$t('rooms.deleted')}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomStatus.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomStatus.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoomStatus.vue?vue&type=template&id=65459954&\"\nimport script from \"./RoomStatus.vue?vue&type=script&lang=js&\"\nexport * from \"./RoomStatus.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoomDetails.vue?vue&type=template&id=7b3793ea&scoped=true&\"\nimport script from \"./RoomDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./RoomDetails.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b3793ea\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VIcon,VSimpleTable,VTooltip})\n","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Room.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Room.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Room.vue?vue&type=template&id=07f5be08&\"\nimport script from \"./Room.vue?vue&type=script&lang=js&\"\nexport * from \"./Room.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBreadcrumbs,VCol,VContainer,VRow})\n","import Vue from \"vue\";\nimport VueRouter from \"vue-router\";\nimport Dashboard from \"../views/Dashboard\";\nimport Sockets from \"../views/Sockets\";\nimport Socket from \"../views/Socket\";\nimport Rooms from \"../views/Rooms\";\nimport Clients from \"../views/Clients\";\nimport Client from \"../views/Client\";\nimport Servers from \"../views/Servers\";\nimport Room from \"../views/Room\";\n\nVue.use(VueRouter);\n\nconst routes = [\n {\n path: \"/\",\n name: \"dashboard\",\n component: Dashboard,\n meta: {\n topLevel: true,\n index: 0,\n },\n },\n {\n path: \"/sockets/\",\n name: \"sockets\",\n component: Sockets,\n meta: {\n topLevel: true,\n index: 1,\n },\n },\n {\n path: \"/n/:nsp/sockets/:id\",\n name: \"socket\",\n component: Socket,\n meta: {\n topLevel: false,\n },\n },\n {\n path: \"/rooms/\",\n name: \"rooms\",\n component: Rooms,\n meta: {\n topLevel: true,\n index: 2,\n },\n },\n {\n path: \"/n/:nsp/rooms/:name\",\n name: \"room\",\n component: Room,\n meta: {\n topLevel: false,\n },\n },\n {\n path: \"/clients/\",\n name: \"clients\",\n component: Clients,\n meta: {\n topLevel: true,\n index: 3,\n },\n },\n {\n path: \"/clients/:id\",\n name: \"client\",\n component: Client,\n meta: {\n topLevel: false,\n },\n },\n {\n path: \"/servers/\",\n name: \"servers\",\n component: Servers,\n meta: {\n topLevel: true,\n index: 4,\n },\n },\n];\n\nconst router = new VueRouter({\n mode: \"hash\",\n base: process.env.BASE_URL,\n routes,\n});\n\nexport default router;\n","import Vue from \"vue\";\nimport VueI18n from \"vue-i18n\";\n\nVue.use(VueI18n);\n\nfunction loadLocaleMessages() {\n const locales = require.context(\n \"./locales\",\n true,\n /[A-Za-z0-9-_,\\s]+\\.json$/i\n );\n const messages = {};\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i);\n if (matched && matched.length > 1) {\n const locale = matched[1];\n messages[locale] = locales(key);\n }\n });\n return messages;\n}\n\nexport default new VueI18n({\n locale: process.env.VUE_APP_I18N_LOCALE || \"en\",\n fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || \"en\",\n messages: loadLocaleMessages(),\n});\n","import { isLocalStorageAvailable } from \"../../util\";\n\nexport default {\n namespaced: true,\n state: {\n darkTheme: false,\n readonly: false,\n lang: \"en\",\n supportedFeatures: [],\n },\n mutations: {\n init(state) {\n if (isLocalStorageAvailable) {\n state.darkTheme = localStorage.getItem(\"dark_theme\") === \"true\";\n state.readonly = localStorage.getItem(\"readonly\") === \"true\";\n state.lang = localStorage.getItem(\"lang\") || \"en\";\n }\n },\n selectTheme(state, darkTheme) {\n state.darkTheme = darkTheme;\n if (isLocalStorageAvailable) {\n localStorage.setItem(\"dark_theme\", darkTheme);\n }\n },\n selectLang(state, lang) {\n state.lang = lang;\n if (isLocalStorageAvailable) {\n localStorage.setItem(\"lang\", lang);\n }\n },\n toggleReadonly(state) {\n state.readonly = !state.readonly;\n if (isLocalStorageAvailable) {\n localStorage.setItem(\"readonly\", state.readonly);\n }\n },\n updateConfig(state, config) {\n state.supportedFeatures = config.supportedFeatures;\n },\n },\n};\n","import { isLocalStorageAvailable } from \"../../util\";\n\nexport default {\n namespaced: true,\n state: {\n serverUrl: \"\",\n wsOnly: false,\n sessionId: \"\",\n connected: false,\n },\n mutations: {\n init(state) {\n if (isLocalStorageAvailable) {\n state.serverUrl = localStorage.getItem(\"server_url\");\n state.wsOnly = localStorage.getItem(\"ws_only\") === \"true\";\n state.sessionId = localStorage.getItem(\"session_id\");\n }\n },\n saveConfig(state, { serverUrl, wsOnly }) {\n state.serverUrl = serverUrl;\n state.wsOnly = wsOnly;\n if (isLocalStorageAvailable) {\n localStorage.setItem(\"server_url\", serverUrl);\n localStorage.setItem(\"ws_only\", wsOnly);\n }\n },\n saveSessionId(state, sessionId) {\n state.sessionId = sessionId;\n if (isLocalStorageAvailable) {\n localStorage.setItem(\"session_id\", sessionId);\n }\n },\n connect(state) {\n state.connected = true;\n },\n disconnect(state) {\n state.connected = false;\n },\n },\n};\n","import { find, merge } from \"lodash-es\";\nimport { pushUniq, remove } from \"../../util\";\n\nconst getOrCreateNamespace = (namespaces, name) => {\n let namespace = find(namespaces, { name });\n if (namespace) {\n return namespace;\n }\n namespace = {\n name,\n sockets: [],\n rooms: [],\n };\n namespaces.push(namespace);\n return namespace;\n};\n\nconst getOrCreateRoom = (namespace, name) => {\n let room = find(namespace.rooms, { name });\n if (room) {\n return room;\n }\n room = {\n name,\n active: true,\n sockets: [],\n };\n namespace.rooms.push(room);\n return room;\n};\n\nconst getOrCreateClient = (clients, id) => {\n let client = find(clients, { id });\n if (client) {\n return client;\n }\n client = {\n id,\n connected: true,\n sockets: [],\n };\n clients.push(client);\n return client;\n};\n\nconst addSocket = (state, socket) => {\n const namespace = getOrCreateNamespace(state.namespaces, socket.nsp);\n socket.connected = true;\n if (!find(namespace.sockets, { id: socket.id })) {\n namespace.sockets.push(socket);\n }\n\n socket.rooms.forEach((name) => {\n const room = getOrCreateRoom(namespace, name);\n room.isPrivate = name === socket.id;\n if (!find(room.sockets, { id: socket.id })) {\n room.sockets.push(socket);\n }\n });\n\n const client = getOrCreateClient(state.clients, socket.clientId);\n if (!find(client.sockets, { id: socket.id })) {\n client.sockets.push(socket);\n }\n};\n\nexport default {\n namespaced: true,\n state: {\n namespaces: [],\n clients: [],\n selectedNamespace: null,\n },\n getters: {\n findSocketById: (state) => (nsp, id) => {\n const namespace = find(state.namespaces, { name: nsp });\n if (namespace) {\n return find(namespace.sockets, { id });\n }\n },\n findClientById: (state) => (id) => {\n return find(state.clients, { id });\n },\n findRoomByName: (state) => (nsp, name) => {\n const namespace = find(state.namespaces, { name: nsp });\n if (namespace) {\n return find(namespace.rooms, { name });\n }\n },\n findRoomsByNamespace: (state) => (nsp) => {\n const namespace = find(state.namespaces, { name: nsp });\n return namespace ? namespace.rooms : [];\n },\n sockets: (state) => {\n return state.selectedNamespace ? state.selectedNamespace.sockets : [];\n },\n rooms: (state) => {\n return state.selectedNamespace ? state.selectedNamespace.rooms : [];\n },\n },\n mutations: {\n selectNamespace(state, namespace) {\n state.selectedNamespace = namespace;\n },\n onAllSockets(state, sockets) {\n state.namespaces.forEach((namespace) => {\n namespace.sockets.splice(0);\n namespace.rooms.splice(0);\n });\n state.clients.splice(0);\n sockets.forEach((socket) => addSocket(state, socket));\n if (!state.selectedNamespace) {\n state.selectedNamespace =\n find(state.namespaces, { name: \"/\" }) || state.namespaces[0];\n }\n },\n onSocketConnected(state, socket) {\n addSocket(state, socket);\n },\n onSocketUpdated(state, socket) {\n const namespace = getOrCreateNamespace(state.namespaces, socket.nsp);\n const existingSocket = find(namespace.sockets, { id: socket.id });\n if (existingSocket) {\n merge(existingSocket, socket);\n }\n },\n onSocketDisconnected(state, { nsp, id }) {\n const namespace = getOrCreateNamespace(state.namespaces, nsp);\n const [socket] = remove(namespace.sockets, { id });\n if (socket) {\n socket.connected = false;\n\n const client = getOrCreateClient(state.clients, socket.clientId);\n remove(client.sockets, { id });\n if (client.sockets.length === 0) {\n client.connected = false;\n remove(state.clients, { id: socket.clientId });\n }\n }\n },\n onRoomJoined(state, { nsp, room, id }) {\n const namespace = getOrCreateNamespace(state.namespaces, nsp);\n const socket = find(namespace.sockets, { id });\n if (socket) {\n pushUniq(socket.rooms, room);\n const _room = getOrCreateRoom(namespace, room);\n _room.sockets.push(socket);\n }\n },\n onRoomLeft(state, { nsp, room, id }) {\n const namespace = getOrCreateNamespace(state.namespaces, nsp);\n const socket = find(namespace.sockets, { id });\n if (socket) {\n remove(socket.rooms, room);\n }\n const _room = getOrCreateRoom(namespace, room);\n remove(_room.sockets, { id });\n if (_room.sockets.length === 0) {\n _room.active = false;\n remove(namespace.rooms, { name: room });\n }\n },\n },\n};\n","import { find, merge } from \"lodash-es\";\nimport { remove } from \"../../util\";\n\nconst HEALTHY_THRESHOLD = 10000;\n\nexport default {\n namespaced: true,\n state: {\n servers: [],\n },\n mutations: {\n onServerStats(state, stats) {\n stats.lastPing = Date.now();\n const server = find(state.servers, { serverId: stats.serverId });\n if (server) {\n merge(server, stats);\n } else {\n stats.healthy = true;\n state.servers.push(stats);\n }\n },\n removeServer(state, serverId) {\n remove(state.servers, { serverId });\n },\n updateState(state) {\n state.servers.forEach((server) => {\n server.healthy = Date.now() - server.lastPing < HEALTHY_THRESHOLD;\n });\n },\n },\n};\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport config from \"./modules/config\";\nimport connection from \"./modules/connection\";\nimport main from \"./modules/main\";\nimport servers from \"./modules/servers\";\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n modules: {\n config,\n connection,\n main,\n servers,\n },\n});\n","import Vue from \"vue\";\nimport Vuetify from \"vuetify/lib/framework\";\n\nVue.use(Vuetify);\n\nexport default new Vuetify({});\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport i18n from \"./i18n\";\nimport store from \"./store\";\nimport vuetify from \"./plugins/vuetify\";\n\nVue.config.productionTip = false;\n\nstore.commit(\"config/init\");\nstore.commit(\"connection/init\");\n\ni18n.locale = store.state.config.lang;\n\nsetInterval(() => {\n store.commit(\"servers/updateState\");\n}, 1000);\n\nnew Vue({\n router,\n i18n,\n store,\n vuetify,\n render: (h) => h(App),\n}).$mount(\"#app\");\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketRooms.vue?vue&type=style&index=0&id=d014ee1e&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetails.vue?vue&type=style&index=0&id=8d2424e4&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyValueTable.vue?vue&type=style&index=0&id=18284f59&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketDetails.vue?vue&type=style&index=0&id=1a6e3452&scoped=true&lang=css&\"","if(typeof moment === 'undefined') {var e = new Error(\"Cannot find module 'moment'\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\nmodule.exports = moment;","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServersOverview.vue?vue&type=style&index=0&id=d6482f56&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/logo-light.73342c25.svg\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NamespaceSelector.vue?vue&type=style&index=0&id=2c330798&scoped=true&lang=css&\""],"sourceRoot":""} \ No newline at end of file diff --git a/ui/dist/js/app.e79d7bb5.js b/ui/dist/js/app.e79d7bb5.js new file mode 100644 index 0000000..9b5f7d2 --- /dev/null +++ b/ui/dist/js/app.e79d7bb5.js @@ -0,0 +1,2 @@ +(function(t){function e(e){for(var s,r,i=e[0],c=e[1],l=e[2],d=0,m=[];de.meta.index?"v-slide-y-reverse-transition":"v-slide-y-transition":this.transitionName=t.meta.topLevel?"v-slide-x-transition":"v-slide-x-reverse-transition"}},methods:{tryConnect:function(t,e,n,s){var a=this;this.isConnecting=!0,xt.socket&&(xt.socket.disconnect(),xt.socket.off("connect"),xt.socket.off("connect_error"),xt.socket.off("disconnect"));var o=Object(ht["io"])(t,{forceNew:!0,reconnection:!1,withCredentials:!0,transports:n?["websocket"]:["polling","websocket"],path:s,auth:e});o.once("connect",(function(){a.showConnectionModal=!1,a.connectionError="",a.isConnecting=!1,o.io.reconnection(!0),a.$store.commit("connection/saveConfig",{serverUrl:t,wsOnly:n,path:s}),xt.socket=o,a.registerEventListeners(o)})),o.on("connect",(function(){a.$store.commit("connection/connect")})),o.on("connect_error",(function(t){(a.isConnecting||"invalid credentials"===t.message)&&(a.showConnectionModal=!0,a.connectionError=t.message,a.isConnecting=!1)})),o.on("disconnect",(function(){a.$store.commit("connection/disconnect")}))},registerEventListeners:function(t){var e=this;t.on("session",(function(t){e.$store.commit("connection/saveSessionId",t)})),t.on("config",(function(t){e.$store.commit("config/updateConfig",t)})),t.on("server_stats",(function(t){e.$store.commit("servers/onServerStats",t)})),t.on("all_sockets",(function(t){e.$store.commit("main/onAllSockets",t)})),t.on("socket_connected",(function(t){e.$store.commit("main/onSocketConnected",t)})),t.on("socket_updated",(function(t){e.$store.commit("main/onSocketUpdated",t)})),t.on("socket_disconnected",(function(t,n,s){e.$store.commit("main/onSocketDisconnected",{nsp:t,id:n,reason:s})})),t.on("room_joined",(function(t,n,s){e.$store.commit("main/onRoomJoined",{nsp:t,room:n,id:s})})),t.on("room_left",(function(t,n,s){e.$store.commit("main/onRoomLeft",{nsp:t,room:n,id:s})}))},onSubmit:function(t){this.tryConnect(t.serverUrl,{username:t.username,password:t.password},t.wsOnly,t.path)}},created:function(){if(this.$vuetify.theme.dark=this.$store.state.config.darkTheme,this.serverUrl){var t=this.$store.state.connection.sessionId;this.tryConnect(this.serverUrl,{sessionId:t},this.wsOnly,this.path)}else this.showConnectionModal=!0}},Tt=wt,Dt=n("7496"),It=n("a523"),Rt=n("f6c4"),Nt=Object(b["a"])(Tt,a,o,!1,null,null,null),Pt=Nt.exports;_()(Nt,{VApp:Dt["a"],VContainer:It["a"],VMain:Rt["a"]});var Et,Lt,Ut=n("8c4f"),Bt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),n("v-container",{attrs:{fluid:""}},[n("v-row",[n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("ClientsOverview")],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("ServersOverview")],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("NamespacesOverview")],1)],1)],1)],1)},Mt=[],At=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",[n("v-card-title",{staticClass:"text-center"},[t._v(" "+t._s(t.$t("clients.title"))+" "),n("v-spacer"),n("v-btn",{attrs:{to:{name:"clients"},small:""}},[n("v-icon",[t._v("mdi-dots-horizontal")])],1)],1),n("v-card-text",[n("v-row",[n("Doughnut",{staticClass:"chart",attrs:{"chart-data":t.data}}),n("v-simple-table",{staticClass:"grow align-self-center",scopedSlots:t._u([{key:"default",fn:function(){return[n("tbody",[n("tr",[n("th",[t._v(t._s(t.$t("sockets.transport")))]),n("th",[t._v("#")])]),t._l(t.transports,(function(e){return n("tr",{key:e},[n("td",[n("Transport",{attrs:{transport:e}})],1),n("td",[n("div",[n("h2",[t._v(t._s(t.transportRepartition[e]||0))])]),n("div",[t._v(" "+t._s(t.percentage(t.transportRepartition[e]||0,t.clients.length))+" % ")])])])}))],2)]},proxy:!0}])})],1)],1)],1)},qt=[],Ft=(n("13d5"),n("4de4"),n("d81d"),n("1fca")),Ht=Ft["b"].reactiveProp,zt={extends:Ft["a"],mixins:[Ht],props:["options"],mounted:function(){this.renderChart(this.chartData,{legend:!1})}},Jt=zt,Wt=Object(b["a"])(Jt,Et,Lt,!1,null,null,null),Kt=Wt.exports,Qt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-chip",{attrs:{small:"",color:t.color,outlined:""}},[t._v(t._s(t.label))])},Xt=[],Yt={name:"Transport",props:{transport:String},computed:{label:function(){switch(this.transport){case"polling":return"HTTP long-polling";case"websocket":return"WebSocket";default:return this.transport}},color:function(){switch(this.transport){case"polling":return v["a"].orange.base;case"websocket":return v["a"].green.base;default:return v["a"].grey.base}}}},Zt=Yt,Gt=Object(b["a"])(Zt,Qt,Xt,!1,null,null,null),te=Gt.exports;_()(Gt,{VChip:g["a"]});var ee=n("53ca"),ne=(n("a15b"),n("a434"),n("caad"),n("2532"),n("b680"),n("1c8f")),se=function(){var t="test";try{return localStorage.setItem(t,t),localStorage.removeItem(t),!0}catch(e){return!1}},ae=se();function oe(t){var e=Math.ceil(Math.max(t,0)),n=Math.floor(e/86400),s=Math.floor((e-86400*n)/3600),a=Math.floor((e-86400*n-3600*s)/60),o=Math.ceil(e)-86400*n-3600*s-60*a,r=[];return n>0&&r.push(n+"d"),(n>0||s>0)&&r.push(s+"h"),(n>0||s>0||a>0)&&r.push(a+"m"),r.push(o+"s"),r.join(" ")}function re(t,e){var n="object"===Object(ee["a"])(e)?Object(ne["a"])(t,e):t.indexOf(e);return-1===n?[]:t.splice(n,1)}function ie(t,e){t.includes(e)||t.push(e)}function ce(t,e){return 0===e?0:(t/e*100).toFixed(1)}var le={name:"ClientsOverview",components:{Transport:te,Doughnut:Kt},data:function(){return{transports:["websocket","polling"]}},computed:Object(r["a"])(Object(r["a"])({},Object(l["d"])({clients:function(t){return t.main.clients},darkTheme:function(t){return t.config.darkTheme}})),{},{transportRepartition:function(){return this.clients.map((function(t){return t.sockets[0]})).filter((function(t){return!!t})).reduce((function(t,e){return t[e.transport]=t[e.transport]||0,t[e.transport]++,t}),{})},data:function(){return{labels:["WebSocket","HTTP long-polling"],datasets:[{backgroundColor:[v["a"].green.base,v["a"].orange.base],borderColor:this.darkTheme?"black":"white",data:[this.transportRepartition["websocket"],this.transportRepartition["polling"]]}]}}}),methods:{percentage:ce}},ue=le,de=(n("1016"),n("0fd9")),me=n("1f4f"),pe=Object(b["a"])(ue,At,qt,!1,null,"58987bf8",null),ve=pe.exports;_()(pe,{VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VCardTitle:St["b"],VIcon:ct["a"],VRow:de["a"],VSimpleTable:me["a"],VSpacer:R["a"]});var fe=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",[n("v-card-title",{staticClass:"text-center"},[t._v(" "+t._s(t.$t("servers.title"))+" "),n("v-spacer"),n("v-btn",{attrs:{to:{name:"servers"},small:""}},[n("v-icon",[t._v("mdi-dots-horizontal")])],1)],1),n("v-card-text",[n("v-row",[n("Doughnut",{staticClass:"chart",attrs:{"chart-data":t.data}}),n("v-simple-table",{staticClass:"grow align-self-center",scopedSlots:t._u([{key:"default",fn:function(){return[n("tbody",[n("tr",[n("th",[t._v(t._s(t.$t("status")))]),n("th",[t._v("#")])]),n("tr",[n("td",[n("ServerStatus",{attrs:{healthy:""}})],1),n("td",[n("div",[n("h2",[t._v(t._s(t.healthyServers))])]),n("div",[t._v(t._s(t.percentage(t.healthyServers,t.totalServers))+" %")])])]),n("tr",[n("td",[n("ServerStatus")],1),n("td",[n("div",[n("h2",[t._v(t._s(t.totalServers-t.healthyServers))])]),n("div",[t._v(" "+t._s(t.percentage(t.totalServers-t.healthyServers,t.totalServers))+" % ")])])])])]},proxy:!0}])})],1)],1)],1)},he=[],be=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("Status",{attrs:{value:t.healthy,"ok-label":t.$t("servers.healthy"),"ko-label":t.$t("servers.unhealthy")}})},ke=[],_e={name:"ServerStatus",components:{Status:S},props:{healthy:Boolean}},ge=_e,ye=Object(b["a"])(ge,be,ke,!1,null,null,null),Se=ye.exports,Ce={name:"ServersOverview",components:{ServerStatus:Se,Doughnut:Kt},computed:Object(r["a"])(Object(r["a"])({},Object(l["d"])({healthyServers:function(t){return t.servers.servers.filter((function(t){return t.healthy})).length},totalServers:function(t){return t.servers.servers.length},darkTheme:function(t){return t.config.darkTheme}})),{},{data:function(){return{labels:[this.$t("servers.healthy"),this.$t("servers.unhealthy")],datasets:[{backgroundColor:[v["a"].green.base,v["a"].red.base],borderColor:this.darkTheme?"black":"white",data:[this.healthyServers,this.totalServers-this.healthyServers]}]}}}),methods:{percentage:ce}},Oe=Ce,$e=(n("db72"),Object(b["a"])(Oe,fe,he,!1,null,"d6482f56",null)),je=$e.exports;_()($e,{VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VCardTitle:St["b"],VIcon:ct["a"],VRow:de["a"],VSimpleTable:me["a"],VSpacer:R["a"]});var xe=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",{staticClass:"text-center"},[t._v(" "+t._s(t.$t("namespaces"))+" "),n("v-spacer"),n("v-btn",{attrs:{to:{name:"sockets"},small:""}},[n("v-icon",[t._v("mdi-dots-horizontal")])],1)],1),n("v-simple-table",{scopedSlots:t._u([{key:"default",fn:function(){return[n("thead",[n("tr",[n("th",[t._v(t._s(t.$t("name")))]),n("th",[t._v(t._s(t.$t("rooms.sockets-count")))])])]),n("tbody",t._l(t.namespaces,(function(e){return n("tr",{key:e.name},[n("td",{staticClass:"key-column"},[n("code",[t._v(t._s(e.name))])]),n("td",[t._v(t._s(e.sockets.length))])])})),0)]},proxy:!0}])})],1)},Ve=[],we=n("d66c"),Te={name:"NamespacesOverview",computed:Object(r["a"])({},Object(l["d"])({namespaces:function(t){return Object(we["a"])(t.main.namespaces,"name")}}))},De=Te,Ie=Object(b["a"])(De,xe,Ve,!1,null,"0de70938",null),Re=Ie.exports;_()(Ie,{VBtn:D["a"],VCard:yt["a"],VCardTitle:St["b"],VIcon:ct["a"],VSimpleTable:me["a"],VSpacer:R["a"]});var Ne={name:"Dashboard",components:{NamespacesOverview:Re,ServersOverview:je,ClientsOverview:ve},computed:{breadcrumbItems:function(){return[{text:this.$t("dashboard.title"),disabled:!0}]}}},Pe=Ne,Ee=n("2bc5"),Le=n("62ad"),Ue=Object(b["a"])(Pe,Bt,Mt,!1,null,null,null),Be=Ue.exports;_()(Ue,{VBreadcrumbs:Ee["a"],VCol:Le["a"],VContainer:It["a"],VRow:de["a"]});var Me=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),n("v-card",[n("v-card-text",[n("NamespaceSelector")],1),n("v-data-table",{attrs:{headers:t.headers,items:t.sockets,"footer-props":t.footerProps},scopedSlots:t._u([{key:"item.transport",fn:function(t){var e=t.value;return[n("Transport",{attrs:{transport:e}})]}},{key:"item.actions",fn:function(e){var s=e.item;return[t.isSocketDisconnectSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnect(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.disconnect")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.displayDetails")))])])]}}])})],1)],1)},Ae=[],qe=(n("b0c0"),function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-select",{staticClass:"selector",attrs:{value:t.selectedNamespace,items:t.namespaces,"item-text":"name","item-value":"name",label:t.$t("select-namespace"),"persistent-hint":"","return-object":""},on:{change:t.selectNamespace}})}),Fe=[],He={name:"NamespaceSelector",computed:Object(r["a"])({},Object(l["d"])({selectedNamespace:function(t){return t.main.selectedNamespace},namespaces:function(t){return Object(we["a"])(t.main.namespaces,"name")}})),methods:Object(r["a"])({},Object(l["c"])("main",["selectNamespace"]))},ze=He,Je=(n("f712"),Object(b["a"])(ze,qe,Fe,!1,null,"2c330798",null)),We=Je.exports;_()(Je,{VSelect:F["a"]});var Ke={name:"Sockets",components:{Transport:te,NamespaceSelector:We},data:function(){return{footerProps:{"items-per-page-options":[20,100,-1]}}},computed:Object(r["a"])(Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("sockets.title"),disabled:!0}]},headers:function(){return[{text:"#",value:"id",align:"start"},{text:this.$t("sockets.address"),value:"handshake.address"},{text:this.$t("sockets.transport"),value:"transport"},{value:"actions",align:"end",sortable:!1}]}},Object(l["b"])("main",["sockets"])),Object(l["d"])({selectedNamespace:function(t){return t.main.selectedNamespace},isReadonly:function(t){return t.config.readonly},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{disconnect:function(t){xt.socket.emit("_disconnect",t.nsp,!1,t.id)},displayDetails:function(t){this.$router.push({name:"socket",params:{nsp:this.selectedNamespace.name,id:t.id}})}}},Qe=Ke,Xe=n("8fea"),Ye=n("3a2f"),Ze=Object(b["a"])(Qe,Me,Ae,!1,null,null,null),Ge=Ze.exports;_()(Ze,{VBreadcrumbs:Ee["a"],VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VDataTable:Xe["a"],VIcon:ct["a"],VTooltip:Ye["a"]});var tn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),t.socket?n("v-container",{attrs:{fluid:""}},[n("v-row",[n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("SocketDetails",{attrs:{socket:t.socket,client:t.client}})],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("InitialRequest",{attrs:{socket:t.socket}})],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("SocketRooms",{attrs:{socket:t.socket}})],1)],1)],1):t._e()],1)},en=[],nn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",[t._v(t._s(t.$t("rooms.title")))]),n("v-data-table",{attrs:{headers:t.headers,items:t.roomsAsObjects,dense:""},scopedSlots:t._u([{key:"item.actions",fn:function(e){var s=e.item;return[t.isSocketLeaveSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.leave(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-tag-off-outline")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.leave")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("rooms.displayDetails")))])])]}}])}),n("v-card-text",[n("form",{on:{submit:function(e){return e.preventDefault(),t.onSubmit(e)}}},[n("v-combobox",{staticClass:"select-room d-inline-block mr-3",attrs:{"search-input":t.newRoom,label:t.$t("sockets.join-a-room"),items:t.availableRooms,"item-value":"name","item-text":"name",disabled:t.isReadonly,"return-object":!1},on:{"update:searchInput":function(e){t.newRoom=e},"update:search-input":function(e){t.newRoom=e}}}),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({attrs:{type:"submit",small:"",disabled:t.isReadonly}},"v-btn",a,!1),s),[n("v-icon",[t._v("mdi-tag-plus-outline")])],1)]}}])},[n("span",[t._v(t._s(t.$t("sockets.join")))])])],1)])],1)},sn=[],an=(n("fb6a"),n("1775")),on={name:"SocketRooms",props:{socket:Object},data:function(){return{newRoom:""}},computed:Object(r["a"])(Object(r["a"])({headers:function(){return[{text:this.$t("id"),value:"name",align:"start"},{value:"actions",align:"end",sortable:!1}]},roomsAsObjects:function(){return this.socket.rooms.slice(0).sort().map((function(t){return{name:t}}))},availableRooms:function(){return Object(an["a"])(this.findRoomsByNamespace(this.socket.nsp),this.roomsAsObjects,"name")}},Object(l["d"])({selectedNamespace:function(t){return t.main.selectedNamespace},isReadonly:function(t){return t.config.readonly},isSocketLeaveSupported:function(t){return t.config.supportedFeatures.includes("LEAVE")},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),Object(l["b"])("main",["findRoomsByNamespace"])),methods:{emit:function(){},onSubmit:function(){xt.socket.emit("join",this.socket.nsp,this.newRoom,this.socket.id),this.newRoom=""},leave:function(t){xt.socket.emit("leave",this.socket.nsp,t.name,this.socket.id)},disconnect:function(){xt.socket.emit("_disconnect",this.socket.nsp,!1,this.socket.id)},displayDetails:function(t){this.$router.push({name:"room",params:{nsp:this.socket.nsp,name:t.name}})}}},rn=on,cn=(n("633d"),n("2b5d")),ln=Object(b["a"])(rn,nn,sn,!1,null,"d014ee1e",null),un=ln.exports;_()(ln,{VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VCardTitle:St["b"],VCombobox:cn["a"],VDataTable:Xe["a"],VIcon:ct["a"],VTooltip:Ye["a"]});var dn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",[t._v(t._s(t.$t("details")))]),n("v-card-text",[n("h4",[t._v(t._s(t.$t("sockets.client")))])]),n("v-simple-table",{attrs:{dense:""}},[[n("tbody",[n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("id")))]),n("td",[t._v(" "+t._s(t.client.id)+" ")]),n("td",{attrs:{align:"right"}},[t.client.connected?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.navigateToClient()}}},"v-btn",a,!1),s),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!1,898213143)},[n("span",[t._v(t._s(t.$t("clients.displayDetails")))])]):t._e()],1)]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("status")))]),n("td",[n("ConnectionStatus",{attrs:{connected:t.client.connected}})],1),n("td",{attrs:{align:"right"}},[t.isSocketDisconnectSupported&&t.client.connected?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnectClient()}}},"v-btn",a,!1),s),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!1,1004975867)},[n("span",[t._v(t._s(t.$t("clients.disconnect")))])]):t._e()],1)]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("sockets.transport")))]),n("td",[n("Transport",{attrs:{transport:t.socket.transport}})],1),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("sockets.address")))]),n("td",[t._v(t._s(t.socket.handshake.address))]),n("td")])])]],2),n("v-card-text",[n("h4",[t._v(t._s(t.$t("sockets.socket")))])]),n("v-simple-table",{attrs:{dense:""},scopedSlots:t._u([{key:"default",fn:function(){return[n("tbody",[n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("namespace")))]),n("td",[n("code",[t._v(t._s(t.socket.nsp))])]),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("id")))]),n("td",[t._v(t._s(t.socket.id))]),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("status")))]),n("td",[n("ConnectionStatus",{attrs:{connected:t.socket.connected}})],1),n("td",{attrs:{align:"right"}},[t.isSocketDisconnectSupported&&t.socket.connected?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnectSocket()}}},"v-btn",a,!1),s),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!1,2351110648)},[n("span",[t._v(t._s(t.$t("sockets.disconnect")))])]):t._e()],1)]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("sockets.creation-date")))]),n("td",[t._v(t._s(t.creationDate))]),n("td")])])]},proxy:!0}])})],1)},mn=[],pn={name:"SocketDetails",components:{ConnectionStatus:j,Transport:te},props:{socket:Object,client:Object},computed:Object(r["a"])({creationDate:function(){return new Date(this.socket.handshake.issued).toISOString()}},Object(l["d"])({isReadonly:function(t){return t.config.readonly},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{navigateToClient:function(){this.$router.push({name:"client",params:{id:this.client.id}})},disconnectClient:function(){xt.socket.emit("_disconnect",this.socket.nsp,!0,this.socket.id)},disconnectSocket:function(){xt.socket.emit("_disconnect",this.socket.nsp,!1,this.socket.id)}}},vn=pn,fn=(n("9073"),Object(b["a"])(vn,dn,mn,!1,null,"1a6e3452",null)),hn=fn.exports;_()(fn,{VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VCardTitle:St["b"],VIcon:ct["a"],VSimpleTable:me["a"],VTooltip:Ye["a"]});var bn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",[t._v(t._s(t.$t("sockets.initial-request")))]),n("v-card-text",[n("h4",[t._v(t._s(t.$t("sockets.headers")))])]),n("KeyValueTable",{attrs:{object:t.socket.handshake.headers}}),n("v-card-text",[n("h4",[t._v(t._s(t.$t("sockets.query-params")))])]),n("KeyValueTable",{attrs:{object:t.socket.handshake.query}})],1)},kn=[],_n=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-simple-table",{attrs:{dense:""},scopedSlots:t._u([{key:"default",fn:function(){return[n("thead",[n("tr",[n("th",[t._v(t._s(t.$t("name")))]),n("th",[t._v(t._s(t.$t("value")))])])]),n("tbody",t._l(t.items,(function(e){var s=e.key,a=e.value;return n("tr",{key:s},[n("td",{staticClass:"key-column"},[t._v(t._s(s))]),n("td",[t._v(t._s(a))])])})),0)]},proxy:!0}])})},gn=[],yn=(n("b64b"),{name:"KeyValueTable",props:{object:Object},computed:{items:function(){var t=this,e=Object.keys(this.object);return e.sort().map((function(e){return{key:e,value:t.object[e]}}))}}}),Sn=yn,Cn=(n("786c"),Object(b["a"])(Sn,_n,gn,!1,null,"18284f59",null)),On=Cn.exports;_()(Cn,{VSimpleTable:me["a"]});var $n={name:"InitialRequest",components:{KeyValueTable:On},props:{socket:Object}},jn=$n,xn=Object(b["a"])(jn,bn,kn,!1,null,null,null),Vn=xn.exports;_()(xn,{VCard:yt["a"],VCardText:St["a"],VCardTitle:St["b"]});var wn={name:"Socket",components:{InitialRequest:Vn,SocketDetails:hn,SocketRooms:un},data:function(){return{socket:null,client:null}},computed:Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("sockets.title"),to:{name:"sockets"}},{text:this.$t("sockets.details"),disabled:!0}]}},Object(l["b"])("main",["findSocketById","findClientById"])),mounted:function(){this.socket=this.findSocketById(this.$route.params.nsp,this.$route.params.id),this.socket&&(this.client=this.findClientById(this.socket.clientId))}},Tn=wn,Dn=Object(b["a"])(Tn,tn,en,!1,null,"14172ed0",null),In=Dn.exports;_()(Dn,{VBreadcrumbs:Ee["a"],VCol:Le["a"],VContainer:It["a"],VRow:de["a"]});var Rn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),n("v-card",[n("v-card-text",{staticClass:"d-flex"},[n("NamespaceSelector"),n("v-switch",{staticClass:"ml-3",attrs:{label:t.$t("rooms.show-private"),inset:"",dense:""},on:{change:t.onPrivateRoomsUpdate},model:{value:t.showPrivateRooms,callback:function(e){t.showPrivateRooms=e},expression:"showPrivateRooms"}})],1),n("v-data-table",{attrs:{headers:t.headers,items:t.filteredRooms,"footer-props":t.footerProps},scopedSlots:t._u([{key:"item.sockets",fn:function(e){var n=e.item;return[t._v(" "+t._s(n.sockets.length)+" ")]}},{key:"item.isPrivate",fn:function(t){var e=t.value;return[n("RoomType",{attrs:{"is-private":e}})]}},{key:"item.actions",fn:function(e){var s=e.item;return[t.isMultiLeaveSupported&&!s.isPrivate?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.clear(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-tag-off-outline")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("rooms.clear")))])]):t._e(),t.isMultiDisconnectSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnect(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("rooms.disconnect")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("rooms.displayDetails")))])])]}}])})],1)],1)},Nn=[],Pn=(n("5319"),n("ac1f"),function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("Status",{attrs:{value:!t.isPrivate,"ok-label":t.$t("rooms.public"),"ko-label":t.$t("rooms.private")}})}),En=[],Ln={name:"RoomType",components:{Status:S},props:{isPrivate:Boolean}},Un=Ln,Bn=Object(b["a"])(Un,Pn,En,!1,null,null,null),Mn=Bn.exports,An={name:"Rooms",components:{RoomType:Mn,NamespaceSelector:We},data:function(){return{showPrivateRooms:!1,footerProps:{"items-per-page-options":[20,100,-1]}}},computed:Object(r["a"])(Object(r["a"])(Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("rooms.title"),disabled:!0}]},headers:function(){return[{text:this.$t("id"),value:"name",align:"start"},{text:this.$t("type"),value:"isPrivate"},{text:this.$t("rooms.sockets-count"),value:"sockets"},{value:"actions",align:"end",sortable:!1}]}},Object(l["b"])("main",["rooms"])),Object(l["d"])({selectedNamespace:function(t){return t.main.selectedNamespace},isReadonly:function(t){return t.config.readonly},isMultiLeaveSupported:function(t){return t.config.supportedFeatures.includes("MLEAVE")},isMultiDisconnectSupported:function(t){return t.config.supportedFeatures.includes("MDISCONNECT")}})),{},{filteredRooms:function(){var t=this.showPrivateRooms?this.rooms:this.rooms.filter((function(t){return!t.isPrivate}));return Object(we["a"])(t,"name")}}),methods:{clear:function(t){xt.socket.emit("leave",this.selectedNamespace.name,t.name)},disconnect:function(t){xt.socket.emit("_disconnect",this.selectedNamespace.name,!1,t.name)},displayDetails:function(t){this.$router.push({name:"room",params:{nsp:this.selectedNamespace.name,name:t.name}})},onPrivateRoomsUpdate:function(t){var e=t?{p:1}:{};this.$router.replace({name:"rooms",query:e})}},mounted:function(){this.showPrivateRooms="1"===this.$route.query.p}},qn=An,Fn=Object(b["a"])(qn,Rn,Nn,!1,null,null,null),Hn=Fn.exports;_()(Fn,{VBreadcrumbs:Ee["a"],VBtn:D["a"],VCard:yt["a"],VCardText:St["a"],VDataTable:Xe["a"],VIcon:ct["a"],VSwitch:X["a"],VTooltip:Ye["a"]});var zn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),n("v-card",[n("v-data-table",{attrs:{headers:t.headers,items:t.clients,"footer-props":t.footerProps},scopedSlots:t._u([{key:"item.address",fn:function(e){var s=e.item;return[s.sockets.length?n("span",[t._v(t._s(s.sockets[0].handshake.address))]):t._e()]}},{key:"item.transport",fn:function(e){var s=e.item;return[s.sockets.length?n("Transport",{attrs:{transport:s.sockets[0].transport}}):t._e()]}},{key:"item.sockets",fn:function(e){var n=e.item;return[t._v(" "+t._s(n.sockets.length)+" ")]}},{key:"item.actions",fn:function(e){var s=e.item;return[t.isSocketDisconnectSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnect(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("clients.disconnect")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("clients.displayDetails")))])])]}}])})],1)],1)},Jn=[],Wn={name:"Clients",components:{Transport:te},data:function(){return{footerProps:{"items-per-page-options":[20,100,-1]}}},computed:Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("clients.title"),disabled:!0}]},headers:function(){return[{text:"#",value:"id",align:"start"},{text:this.$t("sockets.address"),value:"address"},{text:this.$t("sockets.transport"),value:"transport"},{text:this.$t("clients.sockets-count"),value:"sockets"},{value:"actions",align:"end",sortable:!1}]}},Object(l["d"])({clients:function(t){return t.main.clients},isReadonly:function(t){return t.config.readonly},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{disconnect:function(t){var e=t.sockets[0];e&&xt.socket.emit("_disconnect",e.nsp,!0,e.id)},displayDetails:function(t){this.$router.push({name:"client",params:{id:t.id}})}}},Kn=Wn,Qn=Object(b["a"])(Kn,zn,Jn,!1,null,null,null),Xn=Qn.exports;_()(Qn,{VBreadcrumbs:Ee["a"],VBtn:D["a"],VCard:yt["a"],VDataTable:Xe["a"],VIcon:ct["a"],VTooltip:Ye["a"]});var Yn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),t.client?n("v-container",{attrs:{fluid:""}},[n("v-row",[n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("ClientDetails",{attrs:{client:t.client,socket:t.socket}})],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[t.socket?n("InitialRequest",{attrs:{socket:t.socket}}):t._e()],1),n("v-col",{attrs:{sm:"12",md:"6",lg:"4"}},[n("ClientSockets",{attrs:{sockets:t.client.sockets}})],1)],1)],1):t._e()],1)},Zn=[],Gn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",[t._v(t._s(t.$t("details")))]),n("v-simple-table",{attrs:{dense:""}},[[n("tbody",[n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("id")))]),n("td",[t._v(" "+t._s(t.client.id)+" ")]),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("status")))]),n("td",[n("ConnectionStatus",{attrs:{connected:t.client.connected}})],1),n("td",{attrs:{align:"right"}},[t.isSocketDisconnectSupported&&t.client.connected?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnectClient()}}},"v-btn",a,!1),s),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!1,1004975867)},[n("span",[t._v(t._s(t.$t("clients.disconnect")))])]):t._e()],1)]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("sockets.transport")))]),n("td",[n("Transport",{attrs:{transport:t.socket.transport}})],1),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("sockets.address")))]),n("td",[t._v(t._s(t.socket.handshake.address))]),n("td")])])]],2)],1)},ts=[],es={name:"ClientDetails",components:{ConnectionStatus:j,Transport:te},props:{client:Object,socket:Object},computed:Object(r["a"])({},Object(l["d"])({isReadonly:function(t){return t.config.readonly},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{disconnectClient:function(){var t=this.client.sockets[0];t&&xt.socket.emit("_disconnect",t.nsp,!0,t.id)}}},ns=es,ss=(n("6602"),Object(b["a"])(ns,Gn,ts,!1,null,"8d2424e4",null)),as=ss.exports;_()(ss,{VBtn:D["a"],VCard:yt["a"],VCardTitle:St["b"],VIcon:ct["a"],VSimpleTable:me["a"],VTooltip:Ye["a"]});var os=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",[n("v-card-title",[t._v(t._s(t.$t("sockets.title")))]),n("v-data-table",{attrs:{headers:t.headers,items:t.sockets,dense:""},scopedSlots:t._u([{key:"item.nsp",fn:function(e){var s=e.value;return[n("code",[t._v(t._s(s))])]}},{key:"item.actions",fn:function(e){var s=e.item;return[t.isSocketDisconnectSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnect(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.disconnect")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.displayDetails")))])])]}}])})],1)},rs=[],is={name:"ClientSockets",props:{sockets:Array},computed:Object(r["a"])({headers:function(){return[{text:"#",value:"id",align:"start"},{text:this.$t("namespace"),value:"nsp"},{value:"actions",align:"end",sortable:!1}]}},Object(l["d"])({isReadonly:function(t){return t.config.readonly},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{disconnect:function(t){xt.socket.emit("_disconnect",t.nsp,!1,t.id)},displayDetails:function(t){this.$router.push({name:"socket",params:{nsp:t.nsp,id:t.id}})}}},cs=is,ls=Object(b["a"])(cs,os,rs,!1,null,null,null),us=ls.exports;_()(ls,{VBtn:D["a"],VCard:yt["a"],VCardTitle:St["b"],VDataTable:Xe["a"],VIcon:ct["a"],VTooltip:Ye["a"]});var ds={name:"Client",components:{ClientSockets:us,InitialRequest:Vn,ClientDetails:as},data:function(){return{socket:null,client:null}},computed:Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("clients.title"),to:{name:"clients"},exact:!0},{text:this.$t("clients.details"),disabled:!0}]}},Object(l["b"])("main",["findClientById"])),mounted:function(){this.client=this.findClientById(this.$route.params.id),this.client&&(this.socket=this.client.sockets[0])}},ms=ds,ps=Object(b["a"])(ms,Yn,Zn,!1,null,"3d554d12",null),vs=ps.exports;_()(ps,{VBreadcrumbs:Ee["a"],VCol:Le["a"],VContainer:It["a"],VRow:de["a"]});var fs=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),n("v-card",[n("v-data-table",{attrs:{headers:t.headers,items:t.servers,"footer-props":t.footerProps},scopedSlots:t._u([{key:"item.uptime",fn:function(e){var n=e.value;return[t._v(" "+t._s(t.formatDuration(n))+" ")]}},{key:"item.lastPing",fn:function(e){var n=e.value;return[t._v(" "+t._s(t.delaySinceLastPing(n))+" ")]}},{key:"item.healthy",fn:function(t){var e=t.value;return[n("ServerStatus",{attrs:{healthy:e}})]}},{key:"item.actions",fn:function(e){var s=e.item;return[s.healthy?t._e():n("v-btn",{attrs:{small:""},on:{click:function(e){return t.removeServer(s)}}},[n("v-icon",[t._v("mdi-delete-outline")])],1)]}}])})],1)],1)},hs=[],bs={name:"Servers",components:{ServerStatus:Se},data:function(){return{footerProps:{"items-per-page-options":[20,100,-1]},now:Date.now()}},created:function(){var t=this;this.interval=setInterval((function(){t.now=Date.now()}),1e3)},beforeDestroy:function(){clearInterval(this.interval)},computed:Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("servers.title"),disabled:!0}]},headers:function(){return[{text:this.$t("id"),value:"serverId"},{text:this.$t("servers.hostname"),value:"hostname"},{text:this.$t("servers.pid"),value:"pid"},{text:this.$t("servers.uptime"),value:"uptime"},{text:this.$t("servers.clients-count"),value:"clientsCount"},{text:this.$t("servers.last-ping"),value:"lastPing"},{text:this.$t("status"),value:"healthy"},{value:"actions",align:"end",sortable:!1}]}},Object(l["d"])({servers:function(t){return Object(we["a"])(t.servers.servers,"serverId")}})),methods:{formatDuration:oe,delaySinceLastPing:function(t){var e=this.now-t;return"".concat(oe(e/1e3)," ago")},removeServer:function(t){this.$store.commit("servers/removeServer",t.serverId)}}},ks=bs,_s=Object(b["a"])(ks,fs,hs,!1,null,null,null),gs=_s.exports;_()(_s,{VBreadcrumbs:Ee["a"],VBtn:D["a"],VCard:yt["a"],VDataTable:Xe["a"],VIcon:ct["a"]});var ys=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-breadcrumbs",{attrs:{items:t.breadcrumbItems}}),t.room?n("v-container",{attrs:{fluid:""}},[n("v-row",[n("v-col",{attrs:{sm:"12",md:"4"}},[n("RoomDetails",{attrs:{room:t.room,nsp:t.$route.params.nsp}})],1),n("v-col",{attrs:{sm:"12",md:"8"}},[n("RoomSockets",{attrs:{room:t.room}})],1)],1)],1):t._e()],1)},Ss=[],Cs=function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.room?n("v-card",[n("v-card-title",[t._v(t._s(t.$t("sockets.title")))]),n("v-data-table",{attrs:{headers:t.headers,items:t.room.sockets,"footer-props":t.footerProps},scopedSlots:t._u([{key:"item.transport",fn:function(t){var e=t.value;return[n("Transport",{attrs:{transport:e}})]}},{key:"item.actions",fn:function(e){var s=e.item;return[t.isSocketLeaveSupported&&!t.room.isPrivate?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.leave(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-tag-off-outline")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("rooms.leave")))])]):t._e(),t.isSocketDisconnectSupported?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.disconnect(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-logout")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.disconnect")))])]):t._e(),n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var a=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{small:""},on:{click:function(e){return t.displayDetails(s)}}},"v-btn",o,!1),a),[n("v-icon",[t._v("mdi-dots-horizontal")])],1)]}}],null,!0)},[n("span",[t._v(t._s(t.$t("sockets.displayDetails")))])])]}}],null,!1,1092228050)})],1):t._e()},Os=[],$s={name:"RoomSockets",components:{Transport:te},props:{room:Object},data:function(){return{footerProps:{"items-per-page-options":[20,100,-1]}}},computed:Object(r["a"])(Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("rooms.title"),to:{name:"rooms"}},{text:this.$t("rooms.details"),disabled:!0}]},headers:function(){return[{text:this.$t("id"),value:"id",align:"start"},{text:this.$t("sockets.address"),value:"handshake.address"},{text:this.$t("sockets.transport"),value:"transport"},{value:"actions",align:"end",sortable:!1}]}},Object(l["b"])("main",["findRoomByName"])),Object(l["d"])({isReadonly:function(t){return t.config.readonly},isSocketLeaveSupported:function(t){return t.config.supportedFeatures.includes("LEAVE")},isSocketDisconnectSupported:function(t){return t.config.supportedFeatures.includes("DISCONNECT")}})),methods:{leave:function(t){xt.socket.emit("leave",t.nsp,this.room.name,t.id)},disconnect:function(t){xt.socket.emit("_disconnect",t.nsp,!1,t.id)},displayDetails:function(t){this.$router.push({name:"socket",params:{nsp:this.$route.params.nsp,id:t.id}})}}},js=$s,xs=Object(b["a"])(js,Cs,Os,!1,null,null,null),Vs=xs.exports;_()(xs,{VBtn:D["a"],VCard:yt["a"],VCardTitle:St["b"],VDataTable:Xe["a"],VIcon:ct["a"],VTooltip:Ye["a"]});var ws=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"fill-height"},[n("v-card-title",[t._v(t._s(t.$t("details")))]),n("v-simple-table",{attrs:{dense:""}},[[n("tbody",[n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("namespace")))]),n("td",[n("code",[t._v(t._s(t.nsp))])]),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("id")))]),n("td",[t._v(" "+t._s(t.room.name)+" ")]),n("td")]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("status")))]),n("td",[n("RoomStatus",{attrs:{active:t.room.active}})],1),n("td",{attrs:{align:"right"}},[t.isMultiLeaveSupported&&!t.room.isPrivate?n("v-tooltip",{attrs:{bottom:""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on,a=e.attrs;return[n("v-btn",t._g(t._b({staticClass:"ml-3",attrs:{disabled:t.isReadonly,small:""},on:{click:function(e){return t.clear()}}},"v-btn",a,!1),s),[n("v-icon",[t._v("mdi-tag-off-outline")])],1)]}}],null,!1,464351539)},[n("span",[t._v(t._s(t.$t("rooms.clear")))])]):t._e()],1)]),n("tr",[n("td",{staticClass:"key-column"},[t._v(t._s(t.$t("type")))]),n("td",[n("RoomType",{attrs:{"is-private":t.room.isPrivate}})],1),n("td")])])]],2)],1)},Ts=[],Ds=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("Status",{attrs:{value:t.active,"ok-label":t.$t("rooms.active"),"ko-label":t.$t("rooms.deleted")}})},Is=[],Rs={name:"RoomStatus",components:{Status:S},props:{active:Boolean}},Ns=Rs,Ps=Object(b["a"])(Ns,Ds,Is,!1,null,null,null),Es=Ps.exports,Ls={name:"RoomDetails",components:{RoomType:Mn,RoomStatus:Es},props:{room:Object,nsp:String},computed:Object(r["a"])({},Object(l["d"])({isReadonly:function(t){return t.config.readonly},isMultiLeaveSupported:function(t){return t.config.supportedFeatures.includes("MLEAVE")}})),methods:{clear:function(){xt.socket.emit("leave",this.nsp,this.room.name)}}},Us=Ls,Bs=Object(b["a"])(Us,ws,Ts,!1,null,"7b3793ea",null),Ms=Bs.exports;_()(Bs,{VBtn:D["a"],VCard:yt["a"],VCardTitle:St["b"],VIcon:ct["a"],VSimpleTable:me["a"],VTooltip:Ye["a"]});var As={name:"Sockets",components:{RoomDetails:Ms,RoomSockets:Vs},data:function(){return{room:null}},computed:Object(r["a"])({breadcrumbItems:function(){return[{text:this.$t("rooms.title"),to:{name:"rooms"}},{text:this.$t("rooms.details"),disabled:!0}]}},Object(l["b"])("main",["findRoomByName"])),mounted:function(){this.room=this.findRoomByName(this.$route.params.nsp,this.$route.params.name)}},qs=As,Fs=Object(b["a"])(qs,ys,Ss,!1,null,null,null),Hs=Fs.exports;_()(Fs,{VBreadcrumbs:Ee["a"],VCol:Le["a"],VContainer:It["a"],VRow:de["a"]}),s["a"].use(Ut["a"]);var zs=[{path:"/",name:"dashboard",component:Be,meta:{topLevel:!0,index:0}},{path:"/sockets/",name:"sockets",component:Ge,meta:{topLevel:!0,index:1}},{path:"/n/:nsp/sockets/:id",name:"socket",component:In,meta:{topLevel:!1}},{path:"/rooms/",name:"rooms",component:Hn,meta:{topLevel:!0,index:2}},{path:"/n/:nsp/rooms/:name",name:"room",component:Hs,meta:{topLevel:!1}},{path:"/clients/",name:"clients",component:Xn,meta:{topLevel:!0,index:3}},{path:"/clients/:id",name:"client",component:vs,meta:{topLevel:!1}},{path:"/servers/",name:"servers",component:gs,meta:{topLevel:!0,index:4}}],Js=new Ut["a"]({mode:"hash",base:"/",routes:zs}),Ws=Js,Ks=(n("159b"),n("d3b7"),n("ddb0"),n("466d"),n("a925"));function Qs(){var t=n("49f8"),e={};return t.keys().forEach((function(n){var s=n.match(/([A-Za-z0-9-_]+)\./i);if(s&&s.length>1){var a=s[1];e[a]=t(n)}})),e}s["a"].use(Ks["a"]);var Xs=new Ks["a"]({locale:"en",fallbackLocale:"en",messages:Qs()}),Ys={namespaced:!0,state:{darkTheme:!1,readonly:!1,lang:"en",supportedFeatures:[]},mutations:{init:function(t){ae&&(t.darkTheme="true"===localStorage.getItem("dark_theme"),t.readonly="true"===localStorage.getItem("readonly"),t.lang=localStorage.getItem("lang")||"en")},selectTheme:function(t,e){t.darkTheme=e,ae&&localStorage.setItem("dark_theme",e)},selectLang:function(t,e){t.lang=e,ae&&localStorage.setItem("lang",e)},toggleReadonly:function(t){t.readonly=!t.readonly,ae&&localStorage.setItem("readonly",t.readonly)},updateConfig:function(t,e){t.supportedFeatures=e.supportedFeatures}}},Zs={namespaced:!0,state:{serverUrl:"",wsOnly:!1,path:"/socket.io",sessionId:"",connected:!1},mutations:{init:function(t){ae&&(t.serverUrl=localStorage.getItem("server_url"),t.wsOnly="true"===localStorage.getItem("ws_only"),t.sessionId=localStorage.getItem("session_id"),t.path=localStorage.getItem("path")||"/socket.io")},saveConfig:function(t,e){var n=e.serverUrl,s=e.wsOnly,a=e.path;t.serverUrl=n,t.wsOnly=s,t.path=a,ae&&(localStorage.setItem("server_url",n),localStorage.setItem("ws_only",s),localStorage.setItem("path",a))},saveSessionId:function(t,e){t.sessionId=e,ae&&localStorage.setItem("session_id",e)},connect:function(t){t.connected=!0},disconnect:function(t){t.connected=!1}}},Gs=n("3835"),ta=n("0a94"),ea=n("a1a3"),na=function(t,e){var n=Object(ta["a"])(t,{name:e});return n||(n={name:e,sockets:[],rooms:[]},t.push(n),n)},sa=function(t,e){var n=Object(ta["a"])(t.rooms,{name:e});return n||(n={name:e,active:!0,sockets:[]},t.rooms.push(n),n)},aa=function(t,e){var n=Object(ta["a"])(t,{id:e});return n||(n={id:e,connected:!0,sockets:[]},t.push(n),n)},oa=function(t,e){var n=na(t.namespaces,e.nsp);e.connected=!0,Object(ta["a"])(n.sockets,{id:e.id})||n.sockets.push(e),e.rooms.forEach((function(t){var s=sa(n,t);s.isPrivate=t===e.id,Object(ta["a"])(s.sockets,{id:e.id})||s.sockets.push(e)}));var s=aa(t.clients,e.clientId);Object(ta["a"])(s.sockets,{id:e.id})||s.sockets.push(e)},ra={namespaced:!0,state:{namespaces:[],clients:[],selectedNamespace:null},getters:{findSocketById:function(t){return function(e,n){var s=Object(ta["a"])(t.namespaces,{name:e});if(s)return Object(ta["a"])(s.sockets,{id:n})}},findClientById:function(t){return function(e){return Object(ta["a"])(t.clients,{id:e})}},findRoomByName:function(t){return function(e,n){var s=Object(ta["a"])(t.namespaces,{name:e});if(s)return Object(ta["a"])(s.rooms,{name:n})}},findRoomsByNamespace:function(t){return function(e){var n=Object(ta["a"])(t.namespaces,{name:e});return n?n.rooms:[]}},sockets:function(t){return t.selectedNamespace?t.selectedNamespace.sockets:[]},rooms:function(t){return t.selectedNamespace?t.selectedNamespace.rooms:[]}},mutations:{selectNamespace:function(t,e){t.selectedNamespace=e},onAllSockets:function(t,e){t.namespaces.forEach((function(t){t.sockets.splice(0),t.rooms.splice(0)})),t.clients.splice(0),e.forEach((function(e){return oa(t,e)})),t.selectedNamespace||(t.selectedNamespace=Object(ta["a"])(t.namespaces,{name:"/"})||t.namespaces[0])},onSocketConnected:function(t,e){oa(t,e)},onSocketUpdated:function(t,e){var n=na(t.namespaces,e.nsp),s=Object(ta["a"])(n.sockets,{id:e.id});s&&Object(ea["a"])(s,e)},onSocketDisconnected:function(t,e){var n=e.nsp,s=e.id,a=na(t.namespaces,n),o=re(a.sockets,{id:s}),r=Object(Gs["a"])(o,1),i=r[0];if(i){i.connected=!1;var c=aa(t.clients,i.clientId);re(c.sockets,{id:s}),0===c.sockets.length&&(c.connected=!1,re(t.clients,{id:i.clientId}))}},onRoomJoined:function(t,e){var n=e.nsp,s=e.room,a=e.id,o=na(t.namespaces,n),r=Object(ta["a"])(o.sockets,{id:a});if(r){ie(r.rooms,s);var i=sa(o,s);i.sockets.push(r)}},onRoomLeft:function(t,e){var n=e.nsp,s=e.room,a=e.id,o=na(t.namespaces,n),r=Object(ta["a"])(o.sockets,{id:a});r&&re(r.rooms,s);var i=sa(o,s);re(i.sockets,{id:a}),0===i.sockets.length&&(i.active=!1,re(o.rooms,{name:s}))}}},ia=1e4,ca={namespaced:!0,state:{servers:[]},mutations:{onServerStats:function(t,e){e.lastPing=Date.now();var n=Object(ta["a"])(t.servers,{serverId:e.serverId});n?Object(ea["a"])(n,e):(e.healthy=!0,t.servers.push(e))},removeServer:function(t,e){re(t.servers,{serverId:e})},updateState:function(t){t.servers.forEach((function(t){t.healthy=Date.now()-t.lastPing\n {{\n label\n }}\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Status.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Status.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Status.vue?vue&type=template&id=87034bbc&\"\nimport script from \"./Status.vue?vue&type=script&lang=js&\"\nexport * from \"./Status.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\ninstallComponents(component, {VChip})\n","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionStatus.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionStatus.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConnectionStatus.vue?vue&type=template&id=65b30979&\"\nimport script from \"./ConnectionStatus.vue?vue&type=script&lang=js&\"\nexport * from \"./ConnectionStatus.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppBar.vue?vue&type=template&id=07946445&\"\nimport script from \"./AppBar.vue?vue&type=script&lang=js&\"\nexport * from \"./AppBar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAppBar,VBtn,VImg,VSpacer,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-navigation-drawer',{staticClass:\"elevation-3\",attrs:{\"app\":\"\",\"clipped\":\"\",\"permanent\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-divider'),_c('div',{staticClass:\"pa-3 pt-10\"},[_c('LangSelector'),_c('ThemeSelector'),_c('ReadonlyToggle')],1)]},proxy:true}])},[_c('v-list',{attrs:{\"dense\":\"\",\"nav\":\"\"}},_vm._l((_vm.items),function(item){return _c('v-list-item',{key:item.title,attrs:{\"to\":item.to,\"exact\":item.exact}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(item.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)],1)}),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('v-select',{attrs:{\"dense\":\"\",\"value\":_vm.lang,\"items\":_vm.languages,\"label\":_vm.$t('config.language')},on:{\"change\":_vm.onSelectLang}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LangSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LangSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LangSelector.vue?vue&type=template&id=d0f72ccc&\"\nimport script from \"./LangSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./LangSelector.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-switch',{attrs:{\"input-value\":_vm.darkTheme,\"label\":_vm.$t('config.dark-theme'),\"inset\":\"\",\"dense\":\"\"},on:{\"change\":_vm.onSelectTheme}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThemeSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThemeSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ThemeSelector.vue?vue&type=template&id=65fd31ec&\"\nimport script from \"./ThemeSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./ThemeSelector.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VSwitch})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-switch',{attrs:{\"input-value\":_vm.readonly,\"label\":_vm.$t('config.readonly'),\"disabled\":_vm.disabled,\"inset\":\"\",\"dense\":\"\"},on:{\"change\":_vm.toggleReadonly}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadonlyToggle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadonlyToggle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ReadonlyToggle.vue?vue&type=template&id=5b271066&\"\nimport script from \"./ReadonlyToggle.vue?vue&type=script&lang=js&\"\nexport * from \"./ReadonlyToggle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VSwitch})\n","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NavigationDrawer.vue?vue&type=template&id=5de9075c&\"\nimport script from \"./NavigationDrawer.vue?vue&type=script&lang=js&\"\nexport * from \"./NavigationDrawer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\ninstallComponents(component, {VDivider,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VNavigationDrawer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.isOpen,\"transition\":\"dialog-bottom-transition\",\"max-width\":\"300\",\"persistent\":\"\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"connection.title\")))]),_c('v-card-text',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('connection.serverUrl'),\"placeholder\":\"https://example.com/admin\",\"required\":\"\"},model:{value:(_vm.serverUrl),callback:function ($$v) {_vm.serverUrl=$$v},expression:\"serverUrl\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('connection.username')},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('connection.password'),\"type\":\"password\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('v-switch',{attrs:{\"label\":_vm.$t('connection.websocket-only'),\"inset\":\"\",\"dense\":\"\"},model:{value:(_vm.wsOnly),callback:function ($$v) {_vm.wsOnly=$$v},expression:\"wsOnly\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('connection.path')},model:{value:(_vm.path),callback:function ($$v) {_vm.path=$$v},expression:\"path\"}}),_c('v-btn',{staticClass:\"primary\",attrs:{\"loading\":_vm.isConnecting,\"disabled\":_vm.isConnecting || !_vm.isValid,\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.$t(\"connection.connect\")))]),(_vm.error)?_c('div',{staticClass:\"red--text mt-3\"},[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")]):_vm._e()],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectionModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConnectionModal.vue?vue&type=template&id=3499bb0d&scoped=true&\"\nimport script from \"./ConnectionModal.vue?vue&type=script&lang=js&\"\nexport * from \"./ConnectionModal.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3499bb0d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VDialog,VSwitch,VTextField})\n","export default {\n set socket(socket) {\n this._socket = socket;\n },\n\n get socket() {\n return this._socket;\n },\n};\n","\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=7654b75d&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VContainer,VMain})\n","var render, staticRenderFns\nimport script from \"./Doughnut.vue?vue&type=script&lang=js&\"\nexport * from \"./Doughnut.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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 render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('ClientsOverview')],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('ServersOverview')],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('NamespacesOverview')],1)],1)],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('v-card',[_c('v-card-title',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"clients.title\"))+\" \"),_c('v-spacer'),_c('v-btn',{attrs:{\"to\":{ name: 'clients' },\"small\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)],1),_c('v-card-text',[_c('v-row',[_c('Doughnut',{staticClass:\"chart\",attrs:{\"chart-data\":_vm.data}}),_c('v-simple-table',{staticClass:\"grow align-self-center\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"sockets.transport\")))]),_c('th',[_vm._v(\"#\")])]),_vm._l((_vm.transports),function(transport){return _c('tr',{key:transport},[_c('td',[_c('Transport',{attrs:{\"transport\":transport}})],1),_c('td',[_c('div',[_c('h2',[_vm._v(_vm._s(_vm.transportRepartition[transport] || 0))])]),_c('div',[_vm._v(\" \"+_vm._s(_vm.percentage( _vm.transportRepartition[transport] || 0, _vm.clients.length ))+\" % \")])])])})],2)]},proxy:true}])})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Doughnut.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Doughnut.vue?vue&type=script&lang=js&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-chip',{attrs:{\"small\":\"\",\"color\":_vm.color,\"outlined\":\"\"}},[_vm._v(_vm._s(_vm.label))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Transport.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Transport.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Transport.vue?vue&type=template&id=54f750af&\"\nimport script from \"./Transport.vue?vue&type=script&lang=js&\"\nexport * from \"./Transport.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\ninstallComponents(component, {VChip})\n","import { findIndex } from \"lodash-es\";\n\nconst testLocalStorage = () => {\n const test = \"test\";\n try {\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nexport const isLocalStorageAvailable = testLocalStorage();\n\nexport function formatDuration(duration) {\n const d = Math.ceil(Math.max(duration, 0));\n const days = Math.floor(d / 86400);\n const hours = Math.floor((d - days * 86400) / 3600);\n const minutes = Math.floor((d - days * 86400 - hours * 3600) / 60);\n const seconds = Math.ceil(d) - days * 86400 - hours * 3600 - minutes * 60;\n\n const output = [];\n if (days > 0) {\n output.push(days + \"d\");\n }\n if (days > 0 || hours > 0) {\n output.push(hours + \"h\");\n }\n if (days > 0 || hours > 0 || minutes > 0) {\n output.push(minutes + \"m\");\n }\n output.push(seconds + \"s\");\n return output.join(\" \");\n}\n\n/**\n * lodash remove() does not play well with Vue.js\n */\nexport function remove(array, predicate) {\n const index =\n typeof predicate === \"object\"\n ? findIndex(array, predicate)\n : array.indexOf(predicate);\n return index === -1 ? [] : array.splice(index, 1);\n}\n\nexport function pushUniq(array, elem) {\n if (!array.includes(elem)) {\n array.push(elem);\n }\n}\n\nexport function percentage(value, total) {\n return total === 0 ? 0 : ((value / total) * 100).toFixed(1);\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientsOverview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientsOverview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClientsOverview.vue?vue&type=template&id=58987bf8&scoped=true&\"\nimport script from \"./ClientsOverview.vue?vue&type=script&lang=js&\"\nexport * from \"./ClientsOverview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ClientsOverview.vue?vue&type=style&index=0&id=58987bf8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"58987bf8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VIcon,VRow,VSimpleTable,VSpacer})\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',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"servers.title\"))+\" \"),_c('v-spacer'),_c('v-btn',{attrs:{\"to\":{ name: 'servers' },\"small\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)],1),_c('v-card-text',[_c('v-row',[_c('Doughnut',{staticClass:\"chart\",attrs:{\"chart-data\":_vm.data}}),_c('v-simple-table',{staticClass:\"grow align-self-center\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"status\")))]),_c('th',[_vm._v(\"#\")])]),_c('tr',[_c('td',[_c('ServerStatus',{attrs:{\"healthy\":\"\"}})],1),_c('td',[_c('div',[_c('h2',[_vm._v(_vm._s(_vm.healthyServers))])]),_c('div',[_vm._v(_vm._s(_vm.percentage(_vm.healthyServers, _vm.totalServers))+\" %\")])])]),_c('tr',[_c('td',[_c('ServerStatus')],1),_c('td',[_c('div',[_c('h2',[_vm._v(_vm._s(_vm.totalServers - _vm.healthyServers))])]),_c('div',[_vm._v(\" \"+_vm._s(_vm.percentage(_vm.totalServers - _vm.healthyServers, _vm.totalServers))+\" % \")])])])])]},proxy:true}])})],1)],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('Status',{attrs:{\"value\":_vm.healthy,\"ok-label\":_vm.$t('servers.healthy'),\"ko-label\":_vm.$t('servers.unhealthy')}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServerStatus.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServerStatus.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ServerStatus.vue?vue&type=template&id=76035ea6&\"\nimport script from \"./ServerStatus.vue?vue&type=script&lang=js&\"\nexport * from \"./ServerStatus.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServersOverview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServersOverview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ServersOverview.vue?vue&type=template&id=d6482f56&scoped=true&\"\nimport script from \"./ServersOverview.vue?vue&type=script&lang=js&\"\nexport * from \"./ServersOverview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ServersOverview.vue?vue&type=style&index=0&id=d6482f56&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d6482f56\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VIcon,VRow,VSimpleTable,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"namespaces\"))+\" \"),_c('v-spacer'),_c('v-btn',{attrs:{\"to\":{ name: 'sockets' },\"small\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)],1),_c('v-simple-table',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"name\")))]),_c('th',[_vm._v(_vm._s(_vm.$t(\"rooms.sockets-count\")))])])]),_c('tbody',_vm._l((_vm.namespaces),function(namespace){return _c('tr',{key:namespace.name},[_c('td',{staticClass:\"key-column\"},[_c('code',[_vm._v(_vm._s(namespace.name))])]),_c('td',[_vm._v(_vm._s(namespace.sockets.length))])])}),0)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NamespacesOverview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NamespacesOverview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NamespacesOverview.vue?vue&type=template&id=0de70938&scoped=true&\"\nimport script from \"./NamespacesOverview.vue?vue&type=script&lang=js&\"\nexport * from \"./NamespacesOverview.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0de70938\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VIcon,VSimpleTable,VSpacer})\n","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=2764d552&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBreadcrumbs,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),_c('v-card',[_c('v-card-text',[_c('NamespaceSelector')],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.sockets,\"footer-props\":_vm.footerProps},scopedSlots:_vm._u([{key:\"item.transport\",fn:function(ref){\nvar value = ref.value;\nreturn [_c('Transport',{attrs:{\"transport\":value}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isSocketDisconnectSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnect(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.disconnect\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.displayDetails\")))])])]}}])})],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('v-select',{staticClass:\"selector\",attrs:{\"value\":_vm.selectedNamespace,\"items\":_vm.namespaces,\"item-text\":\"name\",\"item-value\":\"name\",\"label\":_vm.$t('select-namespace'),\"persistent-hint\":\"\",\"return-object\":\"\"},on:{\"change\":_vm.selectNamespace}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NamespaceSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NamespaceSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NamespaceSelector.vue?vue&type=template&id=2c330798&scoped=true&\"\nimport script from \"./NamespaceSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./NamespaceSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NamespaceSelector.vue?vue&type=style&index=0&id=2c330798&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c330798\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\n","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sockets.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sockets.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Sockets.vue?vue&type=template&id=23b04124&\"\nimport script from \"./Sockets.vue?vue&type=script&lang=js&\"\nexport * from \"./Sockets.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBreadcrumbs,VBtn,VCard,VCardText,VDataTable,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),(_vm.socket)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('SocketDetails',{attrs:{\"socket\":_vm.socket,\"client\":_vm.client}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('InitialRequest',{attrs:{\"socket\":_vm.socket}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('SocketRooms',{attrs:{\"socket\":_vm.socket}})],1)],1)],1):_vm._e()],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('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"rooms.title\")))]),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.roomsAsObjects,\"dense\":\"\"},scopedSlots:_vm._u([{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isSocketLeaveSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.leave(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-tag-off-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.leave\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.displayDetails\")))])])]}}])}),_c('v-card-text',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('v-combobox',{staticClass:\"select-room d-inline-block mr-3\",attrs:{\"search-input\":_vm.newRoom,\"label\":_vm.$t('sockets.join-a-room'),\"items\":_vm.availableRooms,\"item-value\":\"name\",\"item-text\":\"name\",\"disabled\":_vm.isReadonly,\"return-object\":false},on:{\"update:searchInput\":function($event){_vm.newRoom=$event},\"update:search-input\":function($event){_vm.newRoom=$event}}}),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"type\":\"submit\",\"small\":\"\",\"disabled\":_vm.isReadonly}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-tag-plus-outline\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.join\")))])])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketRooms.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketRooms.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SocketRooms.vue?vue&type=template&id=d014ee1e&scoped=true&\"\nimport script from \"./SocketRooms.vue?vue&type=script&lang=js&\"\nexport * from \"./SocketRooms.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SocketRooms.vue?vue&type=style&index=0&id=d014ee1e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d014ee1e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCombobox,VDataTable,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"details\")))]),_c('v-card-text',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sockets.client\")))])]),_c('v-simple-table',{attrs:{\"dense\":\"\"}},[[_c('tbody',[_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"id\")))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.client.id)+\" \")]),_c('td',{attrs:{\"align\":\"right\"}},[(_vm.client.connected)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.navigateToClient()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,false,898213143)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"clients.displayDetails\")))])]):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"status\")))]),_c('td',[_c('ConnectionStatus',{attrs:{\"connected\":_vm.client.connected}})],1),_c('td',{attrs:{\"align\":\"right\"}},[(_vm.isSocketDisconnectSupported && _vm.client.connected)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnectClient()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,false,1004975867)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"clients.disconnect\")))])]):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"sockets.transport\")))]),_c('td',[_c('Transport',{attrs:{\"transport\":_vm.socket.transport}})],1),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"sockets.address\")))]),_c('td',[_vm._v(_vm._s(_vm.socket.handshake.address))]),_c('td')])])]],2),_c('v-card-text',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sockets.socket\")))])]),_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',[_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"namespace\")))]),_c('td',[_c('code',[_vm._v(_vm._s(_vm.socket.nsp))])]),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"id\")))]),_c('td',[_vm._v(_vm._s(_vm.socket.id))]),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"status\")))]),_c('td',[_c('ConnectionStatus',{attrs:{\"connected\":_vm.socket.connected}})],1),_c('td',{attrs:{\"align\":\"right\"}},[(_vm.isSocketDisconnectSupported && _vm.socket.connected)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnectSocket()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,false,2351110648)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.disconnect\")))])]):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"sockets.creation-date\")))]),_c('td',[_vm._v(_vm._s(_vm.creationDate))]),_c('td')])])]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SocketDetails.vue?vue&type=template&id=1a6e3452&scoped=true&\"\nimport script from \"./SocketDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./SocketDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SocketDetails.vue?vue&type=style&index=0&id=1a6e3452&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a6e3452\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VIcon,VSimpleTable,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"sockets.initial-request\")))]),_c('v-card-text',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sockets.headers\")))])]),_c('KeyValueTable',{attrs:{\"object\":_vm.socket.handshake.headers}}),_c('v-card-text',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sockets.query-params\")))])]),_c('KeyValueTable',{attrs:{\"object\":_vm.socket.handshake.query}})],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('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"name\")))]),_c('th',[_vm._v(_vm._s(_vm.$t(\"value\")))])])]),_c('tbody',_vm._l((_vm.items),function(ref){\nvar key = ref.key;\nvar value = ref.value;\nreturn _c('tr',{key:key},[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(key))]),_c('td',[_vm._v(_vm._s(value))])])}),0)]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyValueTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyValueTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KeyValueTable.vue?vue&type=template&id=18284f59&scoped=true&\"\nimport script from \"./KeyValueTable.vue?vue&type=script&lang=js&\"\nexport * from \"./KeyValueTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KeyValueTable.vue?vue&type=style&index=0&id=18284f59&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18284f59\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VSimpleTable})\n","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InitialRequest.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InitialRequest.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InitialRequest.vue?vue&type=template&id=02abed88&\"\nimport script from \"./InitialRequest.vue?vue&type=script&lang=js&\"\nexport * from \"./InitialRequest.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCard,VCardText,VCardTitle})\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Socket.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Socket.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Socket.vue?vue&type=template&id=14172ed0&scoped=true&\"\nimport script from \"./Socket.vue?vue&type=script&lang=js&\"\nexport * from \"./Socket.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14172ed0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBreadcrumbs,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),_c('v-card',[_c('v-card-text',{staticClass:\"d-flex\"},[_c('NamespaceSelector'),_c('v-switch',{staticClass:\"ml-3\",attrs:{\"label\":_vm.$t('rooms.show-private'),\"inset\":\"\",\"dense\":\"\"},on:{\"change\":_vm.onPrivateRoomsUpdate},model:{value:(_vm.showPrivateRooms),callback:function ($$v) {_vm.showPrivateRooms=$$v},expression:\"showPrivateRooms\"}})],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.filteredRooms,\"footer-props\":_vm.footerProps},scopedSlots:_vm._u([{key:\"item.sockets\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.sockets.length)+\" \")]}},{key:\"item.isPrivate\",fn:function(ref){\nvar value = ref.value;\nreturn [_c('RoomType',{attrs:{\"is-private\":value}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isMultiLeaveSupported && !item.isPrivate)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.clear(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-tag-off-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.clear\")))])]):_vm._e(),(_vm.isMultiDisconnectSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnect(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.disconnect\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.displayDetails\")))])])]}}])})],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('Status',{attrs:{\"value\":!_vm.isPrivate,\"ok-label\":_vm.$t('rooms.public'),\"ko-label\":_vm.$t('rooms.private')}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomType.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomType.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoomType.vue?vue&type=template&id=65e67f84&\"\nimport script from \"./RoomType.vue?vue&type=script&lang=js&\"\nexport * from \"./RoomType.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rooms.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rooms.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Rooms.vue?vue&type=template&id=04cd8de4&\"\nimport script from \"./Rooms.vue?vue&type=script&lang=js&\"\nexport * from \"./Rooms.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBreadcrumbs,VBtn,VCard,VCardText,VDataTable,VIcon,VSwitch,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),_c('v-card',[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.clients,\"footer-props\":_vm.footerProps},scopedSlots:_vm._u([{key:\"item.address\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.sockets.length)?_c('span',[_vm._v(_vm._s(item.sockets[0].handshake.address))]):_vm._e()]}},{key:\"item.transport\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.sockets.length)?_c('Transport',{attrs:{\"transport\":item.sockets[0].transport}}):_vm._e()]}},{key:\"item.sockets\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.sockets.length)+\" \")]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isSocketDisconnectSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnect(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"clients.disconnect\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"clients.displayDetails\")))])])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Clients.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Clients.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Clients.vue?vue&type=template&id=6a3ffff4&\"\nimport script from \"./Clients.vue?vue&type=script&lang=js&\"\nexport * from \"./Clients.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBreadcrumbs,VBtn,VCard,VDataTable,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),(_vm.client)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('ClientDetails',{attrs:{\"client\":_vm.client,\"socket\":_vm.socket}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[(_vm.socket)?_c('InitialRequest',{attrs:{\"socket\":_vm.socket}}):_vm._e()],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('ClientSockets',{attrs:{\"sockets\":_vm.client.sockets}})],1)],1)],1):_vm._e()],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('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"details\")))]),_c('v-simple-table',{attrs:{\"dense\":\"\"}},[[_c('tbody',[_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"id\")))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.client.id)+\" \")]),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"status\")))]),_c('td',[_c('ConnectionStatus',{attrs:{\"connected\":_vm.client.connected}})],1),_c('td',{attrs:{\"align\":\"right\"}},[(_vm.isSocketDisconnectSupported && _vm.client.connected)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnectClient()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,false,1004975867)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"clients.disconnect\")))])]):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"sockets.transport\")))]),_c('td',[_c('Transport',{attrs:{\"transport\":_vm.socket.transport}})],1),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"sockets.address\")))]),_c('td',[_vm._v(_vm._s(_vm.socket.handshake.address))]),_c('td')])])]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClientDetails.vue?vue&type=template&id=8d2424e4&scoped=true&\"\nimport script from \"./ClientDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./ClientDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ClientDetails.vue?vue&type=style&index=0&id=8d2424e4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8d2424e4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VIcon,VSimpleTable,VTooltip})\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(_vm._s(_vm.$t(\"sockets.title\")))]),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.sockets,\"dense\":\"\"},scopedSlots:_vm._u([{key:\"item.nsp\",fn:function(ref){\nvar value = ref.value;\nreturn [_c('code',[_vm._v(_vm._s(value))])]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isSocketDisconnectSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnect(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.disconnect\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.displayDetails\")))])])]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientSockets.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientSockets.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ClientSockets.vue?vue&type=template&id=92f31530&\"\nimport script from \"./ClientSockets.vue?vue&type=script&lang=js&\"\nexport * from \"./ClientSockets.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VDataTable,VIcon,VTooltip})\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Client.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Client.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Client.vue?vue&type=template&id=3d554d12&scoped=true&\"\nimport script from \"./Client.vue?vue&type=script&lang=js&\"\nexport * from \"./Client.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d554d12\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBreadcrumbs,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),_c('v-card',[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.servers,\"footer-props\":_vm.footerProps},scopedSlots:_vm._u([{key:\"item.uptime\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.formatDuration(value))+\" \")]}},{key:\"item.lastPing\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.delaySinceLastPing(value))+\" \")]}},{key:\"item.healthy\",fn:function(ref){\nvar value = ref.value;\nreturn [_c('ServerStatus',{attrs:{\"healthy\":value}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(!item.healthy)?_c('v-btn',{attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.removeServer(item)}}},[_c('v-icon',[_vm._v(\"mdi-delete-outline\")])],1):_vm._e()]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Servers.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Servers.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Servers.vue?vue&type=template&id=3241ef20&\"\nimport script from \"./Servers.vue?vue&type=script&lang=js&\"\nexport * from \"./Servers.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBreadcrumbs,VBtn,VCard,VDataTable,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-breadcrumbs',{attrs:{\"items\":_vm.breadcrumbItems}}),(_vm.room)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"4\"}},[_c('RoomDetails',{attrs:{\"room\":_vm.room,\"nsp\":_vm.$route.params.nsp}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"8\"}},[_c('RoomSockets',{attrs:{\"room\":_vm.room}})],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.room)?_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"sockets.title\")))]),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.room.sockets,\"footer-props\":_vm.footerProps},scopedSlots:_vm._u([{key:\"item.transport\",fn:function(ref){\nvar value = ref.value;\nreturn [_c('Transport',{attrs:{\"transport\":value}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.isSocketLeaveSupported && !_vm.room.isPrivate)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.leave(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-tag-off-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.leave\")))])]):_vm._e(),(_vm.isSocketDisconnectSupported)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.disconnect(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.disconnect\")))])]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.displayDetails(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"sockets.displayDetails\")))])])]}}],null,false,1092228050)})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomSockets.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomSockets.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoomSockets.vue?vue&type=template&id=53b1a037&\"\nimport script from \"./RoomSockets.vue?vue&type=script&lang=js&\"\nexport * from \"./RoomSockets.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VDataTable,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"details\")))]),_c('v-simple-table',{attrs:{\"dense\":\"\"}},[[_c('tbody',[_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"namespace\")))]),_c('td',[_c('code',[_vm._v(_vm._s(_vm.nsp))])]),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"id\")))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.room.name)+\" \")]),_c('td')]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"status\")))]),_c('td',[_c('RoomStatus',{attrs:{\"active\":_vm.room.active}})],1),_c('td',{attrs:{\"align\":\"right\"}},[(_vm.isMultiLeaveSupported && !_vm.room.isPrivate)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},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:\"ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"small\":\"\"},on:{\"click\":function($event){return _vm.clear()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-tag-off-outline\")])],1)]}}],null,false,464351539)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"rooms.clear\")))])]):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"key-column\"},[_vm._v(_vm._s(_vm.$t(\"type\")))]),_c('td',[_c('RoomType',{attrs:{\"is-private\":_vm.room.isPrivate}})],1),_c('td')])])]],2)],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('Status',{attrs:{\"value\":_vm.active,\"ok-label\":_vm.$t('rooms.active'),\"ko-label\":_vm.$t('rooms.deleted')}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomStatus.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomStatus.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoomStatus.vue?vue&type=template&id=65459954&\"\nimport script from \"./RoomStatus.vue?vue&type=script&lang=js&\"\nexport * from \"./RoomStatus.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoomDetails.vue?vue&type=template&id=7b3793ea&scoped=true&\"\nimport script from \"./RoomDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./RoomDetails.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b3793ea\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VIcon,VSimpleTable,VTooltip})\n","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Room.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Room.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Room.vue?vue&type=template&id=07f5be08&\"\nimport script from \"./Room.vue?vue&type=script&lang=js&\"\nexport * from \"./Room.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBreadcrumbs,VCol,VContainer,VRow})\n","import Vue from \"vue\";\nimport VueRouter from \"vue-router\";\nimport Dashboard from \"../views/Dashboard\";\nimport Sockets from \"../views/Sockets\";\nimport Socket from \"../views/Socket\";\nimport Rooms from \"../views/Rooms\";\nimport Clients from \"../views/Clients\";\nimport Client from \"../views/Client\";\nimport Servers from \"../views/Servers\";\nimport Room from \"../views/Room\";\n\nVue.use(VueRouter);\n\nconst routes = [\n {\n path: \"/\",\n name: \"dashboard\",\n component: Dashboard,\n meta: {\n topLevel: true,\n index: 0,\n },\n },\n {\n path: \"/sockets/\",\n name: \"sockets\",\n component: Sockets,\n meta: {\n topLevel: true,\n index: 1,\n },\n },\n {\n path: \"/n/:nsp/sockets/:id\",\n name: \"socket\",\n component: Socket,\n meta: {\n topLevel: false,\n },\n },\n {\n path: \"/rooms/\",\n name: \"rooms\",\n component: Rooms,\n meta: {\n topLevel: true,\n index: 2,\n },\n },\n {\n path: \"/n/:nsp/rooms/:name\",\n name: \"room\",\n component: Room,\n meta: {\n topLevel: false,\n },\n },\n {\n path: \"/clients/\",\n name: \"clients\",\n component: Clients,\n meta: {\n topLevel: true,\n index: 3,\n },\n },\n {\n path: \"/clients/:id\",\n name: \"client\",\n component: Client,\n meta: {\n topLevel: false,\n },\n },\n {\n path: \"/servers/\",\n name: \"servers\",\n component: Servers,\n meta: {\n topLevel: true,\n index: 4,\n },\n },\n];\n\nconst router = new VueRouter({\n mode: \"hash\",\n base: process.env.BASE_URL,\n routes,\n});\n\nexport default router;\n","import Vue from \"vue\";\nimport VueI18n from \"vue-i18n\";\n\nVue.use(VueI18n);\n\nfunction loadLocaleMessages() {\n const locales = require.context(\n \"./locales\",\n true,\n /[A-Za-z0-9-_,\\s]+\\.json$/i\n );\n const messages = {};\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i);\n if (matched && matched.length > 1) {\n const locale = matched[1];\n messages[locale] = locales(key);\n }\n });\n return messages;\n}\n\nexport default new VueI18n({\n locale: process.env.VUE_APP_I18N_LOCALE || \"en\",\n fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || \"en\",\n messages: loadLocaleMessages(),\n});\n","import { isLocalStorageAvailable } from \"../../util\";\n\nexport default {\n namespaced: true,\n state: {\n darkTheme: false,\n readonly: false,\n lang: \"en\",\n supportedFeatures: [],\n },\n mutations: {\n init(state) {\n if (isLocalStorageAvailable) {\n state.darkTheme = localStorage.getItem(\"dark_theme\") === \"true\";\n state.readonly = localStorage.getItem(\"readonly\") === \"true\";\n state.lang = localStorage.getItem(\"lang\") || \"en\";\n }\n },\n selectTheme(state, darkTheme) {\n state.darkTheme = darkTheme;\n if (isLocalStorageAvailable) {\n localStorage.setItem(\"dark_theme\", darkTheme);\n }\n },\n selectLang(state, lang) {\n state.lang = lang;\n if (isLocalStorageAvailable) {\n localStorage.setItem(\"lang\", lang);\n }\n },\n toggleReadonly(state) {\n state.readonly = !state.readonly;\n if (isLocalStorageAvailable) {\n localStorage.setItem(\"readonly\", state.readonly);\n }\n },\n updateConfig(state, config) {\n state.supportedFeatures = config.supportedFeatures;\n },\n },\n};\n","import { isLocalStorageAvailable } from \"../../util\";\n\nexport default {\n namespaced: true,\n state: {\n serverUrl: \"\",\n wsOnly: false,\n path: \"/socket.io\",\n sessionId: \"\",\n connected: false,\n },\n mutations: {\n init(state) {\n if (isLocalStorageAvailable) {\n state.serverUrl = localStorage.getItem(\"server_url\");\n state.wsOnly = localStorage.getItem(\"ws_only\") === \"true\";\n state.sessionId = localStorage.getItem(\"session_id\");\n state.path = localStorage.getItem(\"path\") || \"/socket.io\";\n }\n },\n saveConfig(state, { serverUrl, wsOnly, path }) {\n state.serverUrl = serverUrl;\n state.wsOnly = wsOnly;\n state.path = path;\n if (isLocalStorageAvailable) {\n localStorage.setItem(\"server_url\", serverUrl);\n localStorage.setItem(\"ws_only\", wsOnly);\n localStorage.setItem(\"path\", path);\n }\n },\n saveSessionId(state, sessionId) {\n state.sessionId = sessionId;\n if (isLocalStorageAvailable) {\n localStorage.setItem(\"session_id\", sessionId);\n }\n },\n connect(state) {\n state.connected = true;\n },\n disconnect(state) {\n state.connected = false;\n },\n },\n};\n","import { find, merge } from \"lodash-es\";\nimport { pushUniq, remove } from \"../../util\";\n\nconst getOrCreateNamespace = (namespaces, name) => {\n let namespace = find(namespaces, { name });\n if (namespace) {\n return namespace;\n }\n namespace = {\n name,\n sockets: [],\n rooms: [],\n };\n namespaces.push(namespace);\n return namespace;\n};\n\nconst getOrCreateRoom = (namespace, name) => {\n let room = find(namespace.rooms, { name });\n if (room) {\n return room;\n }\n room = {\n name,\n active: true,\n sockets: [],\n };\n namespace.rooms.push(room);\n return room;\n};\n\nconst getOrCreateClient = (clients, id) => {\n let client = find(clients, { id });\n if (client) {\n return client;\n }\n client = {\n id,\n connected: true,\n sockets: [],\n };\n clients.push(client);\n return client;\n};\n\nconst addSocket = (state, socket) => {\n const namespace = getOrCreateNamespace(state.namespaces, socket.nsp);\n socket.connected = true;\n if (!find(namespace.sockets, { id: socket.id })) {\n namespace.sockets.push(socket);\n }\n\n socket.rooms.forEach((name) => {\n const room = getOrCreateRoom(namespace, name);\n room.isPrivate = name === socket.id;\n if (!find(room.sockets, { id: socket.id })) {\n room.sockets.push(socket);\n }\n });\n\n const client = getOrCreateClient(state.clients, socket.clientId);\n if (!find(client.sockets, { id: socket.id })) {\n client.sockets.push(socket);\n }\n};\n\nexport default {\n namespaced: true,\n state: {\n namespaces: [],\n clients: [],\n selectedNamespace: null,\n },\n getters: {\n findSocketById: (state) => (nsp, id) => {\n const namespace = find(state.namespaces, { name: nsp });\n if (namespace) {\n return find(namespace.sockets, { id });\n }\n },\n findClientById: (state) => (id) => {\n return find(state.clients, { id });\n },\n findRoomByName: (state) => (nsp, name) => {\n const namespace = find(state.namespaces, { name: nsp });\n if (namespace) {\n return find(namespace.rooms, { name });\n }\n },\n findRoomsByNamespace: (state) => (nsp) => {\n const namespace = find(state.namespaces, { name: nsp });\n return namespace ? namespace.rooms : [];\n },\n sockets: (state) => {\n return state.selectedNamespace ? state.selectedNamespace.sockets : [];\n },\n rooms: (state) => {\n return state.selectedNamespace ? state.selectedNamespace.rooms : [];\n },\n },\n mutations: {\n selectNamespace(state, namespace) {\n state.selectedNamespace = namespace;\n },\n onAllSockets(state, sockets) {\n state.namespaces.forEach((namespace) => {\n namespace.sockets.splice(0);\n namespace.rooms.splice(0);\n });\n state.clients.splice(0);\n sockets.forEach((socket) => addSocket(state, socket));\n if (!state.selectedNamespace) {\n state.selectedNamespace =\n find(state.namespaces, { name: \"/\" }) || state.namespaces[0];\n }\n },\n onSocketConnected(state, socket) {\n addSocket(state, socket);\n },\n onSocketUpdated(state, socket) {\n const namespace = getOrCreateNamespace(state.namespaces, socket.nsp);\n const existingSocket = find(namespace.sockets, { id: socket.id });\n if (existingSocket) {\n merge(existingSocket, socket);\n }\n },\n onSocketDisconnected(state, { nsp, id }) {\n const namespace = getOrCreateNamespace(state.namespaces, nsp);\n const [socket] = remove(namespace.sockets, { id });\n if (socket) {\n socket.connected = false;\n\n const client = getOrCreateClient(state.clients, socket.clientId);\n remove(client.sockets, { id });\n if (client.sockets.length === 0) {\n client.connected = false;\n remove(state.clients, { id: socket.clientId });\n }\n }\n },\n onRoomJoined(state, { nsp, room, id }) {\n const namespace = getOrCreateNamespace(state.namespaces, nsp);\n const socket = find(namespace.sockets, { id });\n if (socket) {\n pushUniq(socket.rooms, room);\n const _room = getOrCreateRoom(namespace, room);\n _room.sockets.push(socket);\n }\n },\n onRoomLeft(state, { nsp, room, id }) {\n const namespace = getOrCreateNamespace(state.namespaces, nsp);\n const socket = find(namespace.sockets, { id });\n if (socket) {\n remove(socket.rooms, room);\n }\n const _room = getOrCreateRoom(namespace, room);\n remove(_room.sockets, { id });\n if (_room.sockets.length === 0) {\n _room.active = false;\n remove(namespace.rooms, { name: room });\n }\n },\n },\n};\n","import { find, merge } from \"lodash-es\";\nimport { remove } from \"../../util\";\n\nconst HEALTHY_THRESHOLD = 10000;\n\nexport default {\n namespaced: true,\n state: {\n servers: [],\n },\n mutations: {\n onServerStats(state, stats) {\n stats.lastPing = Date.now();\n const server = find(state.servers, { serverId: stats.serverId });\n if (server) {\n merge(server, stats);\n } else {\n stats.healthy = true;\n state.servers.push(stats);\n }\n },\n removeServer(state, serverId) {\n remove(state.servers, { serverId });\n },\n updateState(state) {\n state.servers.forEach((server) => {\n server.healthy = Date.now() - server.lastPing < HEALTHY_THRESHOLD;\n });\n },\n },\n};\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport config from \"./modules/config\";\nimport connection from \"./modules/connection\";\nimport main from \"./modules/main\";\nimport servers from \"./modules/servers\";\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n modules: {\n config,\n connection,\n main,\n servers,\n },\n});\n","import Vue from \"vue\";\nimport Vuetify from \"vuetify/lib/framework\";\n\nVue.use(Vuetify);\n\nexport default new Vuetify({});\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport i18n from \"./i18n\";\nimport store from \"./store\";\nimport vuetify from \"./plugins/vuetify\";\n\nVue.config.productionTip = false;\n\nstore.commit(\"config/init\");\nstore.commit(\"connection/init\");\n\ni18n.locale = store.state.config.lang;\n\nsetInterval(() => {\n store.commit(\"servers/updateState\");\n}, 1000);\n\nnew Vue({\n router,\n i18n,\n store,\n vuetify,\n render: (h) => h(App),\n}).$mount(\"#app\");\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketRooms.vue?vue&type=style&index=0&id=d014ee1e&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientDetails.vue?vue&type=style&index=0&id=8d2424e4&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyValueTable.vue?vue&type=style&index=0&id=18284f59&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketDetails.vue?vue&type=style&index=0&id=1a6e3452&scoped=true&lang=css&\"","if(typeof moment === 'undefined') {var e = new Error(\"Cannot find module 'moment'\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\nmodule.exports = moment;","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServersOverview.vue?vue&type=style&index=0&id=d6482f56&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/logo-light.73342c25.svg\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NamespaceSelector.vue?vue&type=style&index=0&id=2c330798&scoped=true&lang=css&\""],"sourceRoot":""} \ No newline at end of file diff --git a/ui/dist/js/chunk-vendors.88c4cac1.js b/ui/dist/js/chunk-vendors.d91c80d5.js similarity index 99% rename from ui/dist/js/chunk-vendors.88c4cac1.js rename to ui/dist/js/chunk-vendors.d91c80d5.js index a238a61..c7ce8e6 100644 --- a/ui/dist/js/chunk-vendors.88c4cac1.js +++ b/ui/dist/js/chunk-vendors.d91c80d5.js @@ -16,7 +16,7 @@ function i(t){var e=Number(t.version.split(".")[0]);if(e>=2)t.mixin({beforeCreat * (c) 2020 Chart.js Contributors * Released under the MIT License */ -(function(e,i){t.exports=i(function(){try{return n("c32d")}catch(t){}}())})(0,(function(t){"use strict";function e(t,e){return e={exports:{}},t(e,e.exports),e.exports}function n(t){return t&&t["default"]||t}t=t&&t.hasOwnProperty("default")?t["default"]:t;var i={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},r=e((function(t){var e={};for(var n in i)i.hasOwnProperty(n)&&(e[i[n]]=n);var r=t.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var a in r)if(r.hasOwnProperty(a)){if(!("channels"in r[a]))throw new Error("missing channels property: "+a);if(!("labels"in r[a]))throw new Error("missing channel labels property: "+a);if(r[a].labels.length!==r[a].channels)throw new Error("channel and label counts mismatch: "+a);var o=r[a].channels,s=r[a].labels;delete r[a].channels,delete r[a].labels,Object.defineProperty(r[a],"channels",{value:o}),Object.defineProperty(r[a],"labels",{value:s})}function c(t,e){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)+Math.pow(t[2]-e[2],2)}r.rgb.hsl=function(t){var e,n,i,r=t[0]/255,a=t[1]/255,o=t[2]/255,s=Math.min(r,a,o),c=Math.max(r,a,o),l=c-s;return c===s?e=0:r===c?e=(a-o)/l:a===c?e=2+(o-r)/l:o===c&&(e=4+(r-a)/l),e=Math.min(60*e,360),e<0&&(e+=360),i=(s+c)/2,n=c===s?0:i<=.5?l/(c+s):l/(2-c-s),[e,100*n,100*i]},r.rgb.hsv=function(t){var e,n,i,r,a,o=t[0]/255,s=t[1]/255,c=t[2]/255,l=Math.max(o,s,c),u=l-Math.min(o,s,c),h=function(t){return(l-t)/6/u+.5};return 0===u?r=a=0:(a=u/l,e=h(o),n=h(s),i=h(c),o===l?r=i-n:s===l?r=1/3+e-i:c===l&&(r=2/3+n-e),r<0?r+=1:r>1&&(r-=1)),[360*r,100*a,100*l]},r.rgb.hwb=function(t){var e=t[0],n=t[1],i=t[2],a=r.rgb.hsl(t)[0],o=1/255*Math.min(e,Math.min(n,i));return i=1-1/255*Math.max(e,Math.max(n,i)),[a,100*o,100*i]},r.rgb.cmyk=function(t){var e,n,i,r,a=t[0]/255,o=t[1]/255,s=t[2]/255;return r=Math.min(1-a,1-o,1-s),e=(1-a-r)/(1-r)||0,n=(1-o-r)/(1-r)||0,i=(1-s-r)/(1-r)||0,[100*e,100*n,100*i,100*r]},r.rgb.keyword=function(t){var n=e[t];if(n)return n;var r,a=1/0;for(var o in i)if(i.hasOwnProperty(o)){var s=i[o],l=c(t,s);l.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92;var r=.4124*e+.3576*n+.1805*i,a=.2126*e+.7152*n+.0722*i,o=.0193*e+.1192*n+.9505*i;return[100*r,100*a,100*o]},r.rgb.lab=function(t){var e,n,i,a=r.rgb.xyz(t),o=a[0],s=a[1],c=a[2];return o/=95.047,s/=100,c/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,s=s>.008856?Math.pow(s,1/3):7.787*s+16/116,c=c>.008856?Math.pow(c,1/3):7.787*c+16/116,e=116*s-16,n=500*(o-s),i=200*(s-c),[e,n,i]},r.hsl.rgb=function(t){var e,n,i,r,a,o=t[0]/360,s=t[1]/100,c=t[2]/100;if(0===s)return a=255*c,[a,a,a];n=c<.5?c*(1+s):c+s-c*s,e=2*c-n,r=[0,0,0];for(var l=0;l<3;l++)i=o+1/3*-(l-1),i<0&&i++,i>1&&i--,a=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,r[l]=255*a;return r},r.hsl.hsv=function(t){var e,n,i=t[0],r=t[1]/100,a=t[2]/100,o=r,s=Math.max(a,.01);return a*=2,r*=a<=1?a:2-a,o*=s<=1?s:2-s,n=(a+r)/2,e=0===a?2*o/(s+o):2*r/(a+r),[i,100*e,100*n]},r.hsv.rgb=function(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,r=Math.floor(e)%6,a=e-Math.floor(e),o=255*i*(1-n),s=255*i*(1-n*a),c=255*i*(1-n*(1-a));switch(i*=255,r){case 0:return[i,c,o];case 1:return[s,i,o];case 2:return[o,i,c];case 3:return[o,s,i];case 4:return[c,o,i];case 5:return[i,o,s]}},r.hsv.hsl=function(t){var e,n,i,r=t[0],a=t[1]/100,o=t[2]/100,s=Math.max(o,.01);return i=(2-a)*o,e=(2-a)*s,n=a*s,n/=e<=1?e:2-e,n=n||0,i/=2,[r,100*n,100*i]},r.hwb.rgb=function(t){var e,n,i,r,a,o,s,c=t[0]/360,l=t[1]/100,u=t[2]/100,h=l+u;switch(h>1&&(l/=h,u/=h),e=Math.floor(6*c),n=1-u,i=6*c-e,0!==(1&e)&&(i=1-i),r=l+i*(n-l),e){default:case 6:case 0:a=n,o=r,s=l;break;case 1:a=r,o=n,s=l;break;case 2:a=l,o=n,s=r;break;case 3:a=l,o=r,s=n;break;case 4:a=r,o=l,s=n;break;case 5:a=n,o=l,s=r;break}return[255*a,255*o,255*s]},r.cmyk.rgb=function(t){var e,n,i,r=t[0]/100,a=t[1]/100,o=t[2]/100,s=t[3]/100;return e=1-Math.min(1,r*(1-s)+s),n=1-Math.min(1,a*(1-s)+s),i=1-Math.min(1,o*(1-s)+s),[255*e,255*n,255*i]},r.xyz.rgb=function(t){var e,n,i,r=t[0]/100,a=t[1]/100,o=t[2]/100;return e=3.2406*r+-1.5372*a+-.4986*o,n=-.9689*r+1.8758*a+.0415*o,i=.0557*r+-.204*a+1.057*o,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:12.92*i,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),i=Math.min(Math.max(0,i),1),[255*e,255*n,255*i]},r.xyz.lab=function(t){var e,n,i,r=t[0],a=t[1],o=t[2];return r/=95.047,a/=100,o/=108.883,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,e=116*a-16,n=500*(r-a),i=200*(a-o),[e,n,i]},r.lab.xyz=function(t){var e,n,i,r=t[0],a=t[1],o=t[2];n=(r+16)/116,e=a/500+n,i=n-o/200;var s=Math.pow(n,3),c=Math.pow(e,3),l=Math.pow(i,3);return n=s>.008856?s:(n-16/116)/7.787,e=c>.008856?c:(e-16/116)/7.787,i=l>.008856?l:(i-16/116)/7.787,e*=95.047,n*=100,i*=108.883,[e,n,i]},r.lab.lch=function(t){var e,n,i,r=t[0],a=t[1],o=t[2];return e=Math.atan2(o,a),n=360*e/2/Math.PI,n<0&&(n+=360),i=Math.sqrt(a*a+o*o),[r,i,n]},r.lch.lab=function(t){var e,n,i,r=t[0],a=t[1],o=t[2];return i=o/360*2*Math.PI,e=a*Math.cos(i),n=a*Math.sin(i),[r,e,n]},r.rgb.ansi16=function(t){var e=t[0],n=t[1],i=t[2],a=1 in arguments?arguments[1]:r.rgb.hsv(t)[2];if(a=Math.round(a/50),0===a)return 30;var o=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(e/255));return 2===a&&(o+=60),o},r.hsv.ansi16=function(t){return r.rgb.ansi16(r.hsv.rgb(t),t[2])},r.rgb.ansi256=function(t){var e=t[0],n=t[1],i=t[2];if(e===n&&n===i)return e<8?16:e>248?231:Math.round((e-8)/247*24)+232;var r=16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5);return r},r.ansi16.rgb=function(t){var e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];var n=.5*(1+~~(t>50)),i=(1&e)*n*255,r=(e>>1&1)*n*255,a=(e>>2&1)*n*255;return[i,r,a]},r.ansi256.rgb=function(t){if(t>=232){var e=10*(t-232)+8;return[e,e,e]}var n;t-=16;var i=Math.floor(t/36)/5*255,r=Math.floor((n=t%36)/6)/5*255,a=n%6/5*255;return[i,r,a]},r.rgb.hex=function(t){var e=((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2])),n=e.toString(16).toUpperCase();return"000000".substring(n.length)+n},r.hex.rgb=function(t){var e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];var n=e[0];3===e[0].length&&(n=n.split("").map((function(t){return t+t})).join(""));var i=parseInt(n,16),r=i>>16&255,a=i>>8&255,o=255&i;return[r,a,o]},r.rgb.hcg=function(t){var e,n,i=t[0]/255,r=t[1]/255,a=t[2]/255,o=Math.max(Math.max(i,r),a),s=Math.min(Math.min(i,r),a),c=o-s;return e=c<1?s/(1-c):0,n=c<=0?0:o===i?(r-a)/c%6:o===r?2+(a-i)/c:4+(i-r)/c+4,n/=6,n%=1,[360*n,100*c,100*e]},r.hsl.hcg=function(t){var e=t[1]/100,n=t[2]/100,i=1,r=0;return i=n<.5?2*e*n:2*e*(1-n),i<1&&(r=(n-.5*i)/(1-i)),[t[0],100*i,100*r]},r.hsv.hcg=function(t){var e=t[1]/100,n=t[2]/100,i=e*n,r=0;return i<1&&(r=(n-i)/(1-i)),[t[0],100*i,100*r]},r.hcg.rgb=function(t){var e=t[0]/360,n=t[1]/100,i=t[2]/100;if(0===n)return[255*i,255*i,255*i];var r=[0,0,0],a=e%1*6,o=a%1,s=1-o,c=0;switch(Math.floor(a)){case 0:r[0]=1,r[1]=o,r[2]=0;break;case 1:r[0]=s,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=o;break;case 3:r[0]=0,r[1]=s,r[2]=1;break;case 4:r[0]=o,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=s}return c=(1-n)*i,[255*(n*r[0]+c),255*(n*r[1]+c),255*(n*r[2]+c)]},r.hcg.hsv=function(t){var e=t[1]/100,n=t[2]/100,i=e+n*(1-e),r=0;return i>0&&(r=e/i),[t[0],100*r,100*i]},r.hcg.hsl=function(t){var e=t[1]/100,n=t[2]/100,i=n*(1-e)+.5*e,r=0;return i>0&&i<.5?r=e/(2*i):i>=.5&&i<1&&(r=e/(2*(1-i))),[t[0],100*r,100*i]},r.hcg.hwb=function(t){var e=t[1]/100,n=t[2]/100,i=e+n*(1-e);return[t[0],100*(i-e),100*(1-i)]},r.hwb.hcg=function(t){var e=t[1]/100,n=t[2]/100,i=1-n,r=i-e,a=0;return r<1&&(a=(i-r)/(1-r)),[t[0],100*r,100*a]},r.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},r.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},r.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},r.gray.hsl=r.gray.hsv=function(t){return[0,0,t[0]]},r.gray.hwb=function(t){return[0,100,t[0]]},r.gray.cmyk=function(t){return[0,0,0,t[0]]},r.gray.lab=function(t){return[t[0],0,0]},r.gray.hex=function(t){var e=255&Math.round(t[0]/100*255),n=(e<<16)+(e<<8)+e,i=n.toString(16).toUpperCase();return"000000".substring(i.length)+i},r.rgb.gray=function(t){var e=(t[0]+t[1]+t[2])/3;return[e/255*100]}}));r.rgb,r.hsl,r.hsv,r.hwb,r.cmyk,r.xyz,r.lab,r.lch,r.hex,r.keyword,r.ansi16,r.ansi256,r.hcg,r.apple,r.gray;function a(){for(var t={},e=Object.keys(r),n=e.length,i=0;i1&&(e=Array.prototype.slice.call(arguments)),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}function f(t){var e=function(e){if(void 0===e||null===e)return e;arguments.length>1&&(e=Array.prototype.slice.call(arguments));var n=t(e);if("object"===typeof n)for(var i=n.length,r=0;r=0&&e<1?E(Math.round(255*e)):"")}function k(t,e){return e<1||t[3]&&t[3]<1?S(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"}function S(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function C(t,e){if(e<1||t[3]&&t[3]<1)return j(t,e);var n=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),r=Math.round(t[2]/255*100);return"rgb("+n+"%, "+i+"%, "+r+"%)"}function j(t,e){var n=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),r=Math.round(t[2]/255*100);return"rgba("+n+"%, "+i+"%, "+r+"%, "+(e||t[3]||1)+")"}function A(t,e){return e<1||t[3]&&t[3]<1?I(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"}function I(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function M(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"}function T(t){return P[t.slice(0,3)]}function $(t,e,n){return Math.min(Math.max(e,t),n)}function E(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var P={};for(var L in v)P[v[L]]=L;var D=function(t){return t instanceof D?t:this instanceof D?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"===typeof t?(e=g.getRgba(t),e?this.setValues("rgb",e):(e=g.getHsla(t))?this.setValues("hsl",e):(e=g.getHwb(t))&&this.setValues("hwb",e)):"object"===typeof t&&(e=t,void 0!==e.r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new D(t);var e};D.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t%=360,t=t<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return g.hexString(this.values.rgb)},rgbString:function(){return g.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return g.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return g.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return g.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return g.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return g.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return g.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],n=0;nn?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb,e=(299*t[0]+587*t[1]+114*t[2])/1e3;return e<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=this,i=t,r=void 0===e?.5:e,a=2*r-1,o=n.alpha()-i.alpha(),s=((a*o===-1?a:(a+o)/(1+a*o))+1)/2,c=1-s;return this.rgb(s*n.red()+c*i.red(),s*n.green()+c*i.green(),s*n.blue()+c*i.blue()).alpha(n.alpha()*r+i.alpha()*(1-r))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new D,i=this.values,r=n.values;for(var a in i)i.hasOwnProperty(a)&&(t=i[a],e={}.toString.call(t),"[object Array]"===e?r[a]=t.slice(0):"[object Number]"===e?r[a]=t:console.error("unexpected color value:",t));return n}},D.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},D.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},D.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i=0;r--)e.call(n,t[r],r);else for(r=0;r=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2===(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-V.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*V.easeInBounce(2*t):.5*V.easeOutBounce(2*t-1)+.5}},z={effects:V};R.easingEffects=V;var W=Math.PI,H=W/180,q=2*W,U=W/2,Y=W/4,G=2*W/3,K={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,r,a){if(a){var o=Math.min(a,r/2,i/2),s=e+o,c=n+o,l=e+i-o,u=n+r-o;t.moveTo(e,c),se.left-n&&t.xe.top-n&&t.y0&&t.requestAnimationFrame()},advance:function(){var t,e,n,i,r=this.animations,a=0;while(a=n?(ut.callback(t.onAnimationComplete,[t],e),e.animating=!1,r.splice(a,1)):++a}},wt=ut.options.resolve,Ot=["push","pop","shift","splice","unshift"];function kt(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),Ot.forEach((function(e){var n="onData"+e.charAt(0).toUpperCase()+e.slice(1),i=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),r=i.apply(this,e);return ut.each(t._chartjs.listeners,(function(t){"function"===typeof t[n]&&t[n].apply(t,e)})),r}})})))}function St(t,e){var n=t._chartjs;if(n){var i=n.listeners,r=i.indexOf(e);-1!==r&&i.splice(r,1),i.length>0||(Ot.forEach((function(e){delete t[e]})),delete t._chartjs)}}var Ct=function(t,e){this.initialize(t,e)};ut.extend(Ct.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements(),n._type=n.getMeta().type},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.chart,i=n.scales,r=t.getDataset(),a=n.options.scales;null!==e.xAxisID&&e.xAxisID in i&&!r.xAxisID||(e.xAxisID=r.xAxisID||a.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in i&&!r.yAxisID||(e.yAxisID=r.yAxisID||a.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&St(this._data,this)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,n=e.dataElementType;return n&&new n({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,n=this,i=n.getMeta(),r=n.getDataset().data||[],a=i.data;for(t=0,e=r.length;ti&&t.insertElements(i,r-i)},insertElements:function(t,e){for(var n=0;nr?(a=r/e.innerRadius,t.arc(o,s,e.innerRadius-r,i+a,n-a,!0)):t.arc(o,s,r,i+Math.PI/2,n-Math.PI/2),t.closePath(),t.clip()}function Mt(t,e,n,i){var r,a=n.endAngle;for(i&&(n.endAngle=n.startAngle+At,It(t,n),n.endAngle=a,n.endAngle===n.startAngle&&n.fullCircles&&(n.endAngle+=At,n.fullCircles--)),t.beginPath(),t.arc(n.x,n.y,n.innerRadius,n.startAngle+At,n.startAngle,!0),r=0;rs)r-=At;while(r=o&&r<=s,l=a>=n.innerRadius&&a<=n.outerRadius;return c&&l}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t,e=this._chart.ctx,n=this._view,i="inner"===n.borderAlign?.33:0,r={x:n.x,y:n.y,innerRadius:n.innerRadius,outerRadius:Math.max(n.outerRadius-i,0),pixelMargin:i,startAngle:n.startAngle,endAngle:n.endAngle,fullCircles:Math.floor(n.circumference/At)};if(e.save(),e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,r.fullCircles){for(r.endAngle=r.startAngle+At,e.beginPath(),e.arc(r.x,r.y,r.outerRadius,r.startAngle,r.endAngle),e.arc(r.x,r.y,r.innerRadius,r.endAngle,r.startAngle,!0),e.closePath(),t=0;tt.x&&(e=Ht(e,"left","right")):t.basen?n:i,r:c.right||r<0?0:r>e?e:r,b:c.bottom||a<0?0:a>n?n:a,l:c.left||o<0?0:o>e?e:o}}function Yt(t){var e=Wt(t),n=e.right-e.left,i=e.bottom-e.top,r=Ut(t,n/2,i/2);return{outer:{x:e.left,y:e.top,w:n,h:i},inner:{x:e.left+r.l,y:e.top+r.t,w:n-r.l-r.r,h:i-r.t-r.b}}}function Gt(t,e,n){var i=null===e,r=null===n,a=!(!t||i&&r)&&Wt(t);return a&&(i||e>=a.left&&e<=a.right)&&(r||n>=a.top&&n<=a.bottom)}J._set("global",{elements:{rectangle:{backgroundColor:Vt,borderColor:Vt,borderSkipped:"bottom",borderWidth:0}}});var Kt=bt.extend({_type:"rectangle",draw:function(){var t=this._chart.ctx,e=this._view,n=Yt(e),i=n.outer,r=n.inner;t.fillStyle=e.backgroundColor,t.fillRect(i.x,i.y,i.w,i.h),i.w===r.w&&i.h===r.h||(t.save(),t.beginPath(),t.rect(i.x,i.y,i.w,i.h),t.clip(),t.fillStyle=e.borderColor,t.rect(r.x,r.y,r.w,r.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return Gt(this._view,t,e)},inLabelRange:function(t,e){var n=this._view;return zt(n)?Gt(n,t,null):Gt(n,null,e)},inXRange:function(t){return Gt(this._view,t,null)},inYRange:function(t){return Gt(this._view,null,t)},getCenterPoint:function(){var t,e,n=this._view;return zt(n)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return zt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),Xt={},Zt=$t,Jt=Lt,Qt=Rt,te=Kt;Xt.Arc=Zt,Xt.Line=Jt,Xt.Point=Qt,Xt.Rectangle=te;var ee=ut._deprecated,ne=ut.valueOrDefault;function ie(t,e){var n,i,r,a,o=t._length;for(r=1,a=e.length;r0?Math.min(o,Math.abs(i-n)):o,n=i;return o}function re(t,e,n){var i,r,a=n.barThickness,o=e.stackCount,s=e.pixels[t],c=ut.isNullOrUndef(a)?ie(e.scale,e.pixels):-1;return ut.isNullOrUndef(a)?(i=c*n.categoryPercentage,r=n.barPercentage):(i=a*o,r=1),{chunk:i/o,ratio:r,start:s-i/2}}function ae(t,e,n){var i,r,a=e.pixels,o=a[t],s=t>0?a[t-1]:null,c=t=0&&g.min>=0?g.min:g.max,_=void 0===g.start?g.end:g.max>=0&&g.min>=0?g.max-g.min:g.min-g.max,w=v.length;if(b||void 0===b&&void 0!==y)for(i=0;i=0&&l.max>=0?l.max:l.min,(g.min<0&&a<0||g.max>=0&&a>0)&&(x+=a))}return o=d.getPixelForValue(x),s=d.getPixelForValue(x+_),c=s-o,void 0!==m&&Math.abs(c)=0&&!f||_<0&&f?o-m:o+m),{size:c,base:o,head:s,center:s+c/2}},calculateBarIndexPixels:function(t,e,n,i){var r=this,a="flex"===i.barThickness?ae(e,n,i):re(e,n,i),o=r.getStackIndex(t,r.getMeta().stack),s=a.start+a.chunk*o+a.chunk/2,c=Math.min(ne(i.maxBarThickness,1/0),a.chunk*a.ratio);return{base:s-c/2,head:s+c/2,center:s,size:c}},draw:function(){var t=this,e=t.chart,n=t._getValueScale(),i=t.getMeta().data,r=t.getDataset(),a=i.length,o=0;for(ut.canvas.clipArea(e.ctx,e.chartArea);o=he?-de:b<-he?de:0;var y=b+g,x=Math.cos(b),_=Math.sin(b),w=Math.cos(y),O=Math.sin(y),k=b<=0&&y>=0||y>=de,S=b<=fe&&y>=fe||y>=de+fe,C=b===-he||y>=he,j=b<=-fe&&y>=-fe||y>=he+fe,A=C?-1:Math.min(x,x*v,w,w*v),I=j?-1:Math.min(_,_*v,O,O*v),M=k?1:Math.max(x,x*v,w,w*v),T=S?1:Math.max(_,_*v,O,O*v);l=(M-A)/2,u=(T-I)/2,h=-(M+A)/2,d=-(T+I)/2}for(i=0,r=p.length;i0&&!isNaN(t)?de*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,n,i,r,a,o,s,c,l=this,u=0,h=l.chart;if(!t)for(e=0,n=h.data.datasets.length;eu?s:u,u=c>u?c:u);return u},setHoverStyle:function(t){var e=t._model,n=t._options,i=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=ue(n.hoverBackgroundColor,i(n.backgroundColor)),e.borderColor=ue(n.hoverBorderColor,i(n.borderColor)),e.borderWidth=ue(n.hoverBorderWidth,n.borderWidth)},_getRingWeightOffset:function(t){for(var e=0,n=0;n0&&be(l[t-1]._model,c)&&(n.controlPointPreviousX=u(n.controlPointPreviousX,c.left,c.right),n.controlPointPreviousY=u(n.controlPointPreviousY,c.top,c.bottom)),t0&&(a=t.getDatasetMeta(a[0]._datasetIndex).data),a},"x-axis":function(t,e){return Le(t,e,{intersect:!1})},point:function(t,e){var n=Me(e,t);return $e(t,n)},nearest:function(t,e,n){var i=Me(e,t);n.axis=n.axis||"xy";var r=Pe(n.axis);return Ee(t,i,n.intersect,r)},x:function(t,e,n){var i=Me(e,t),r=[],a=!1;return Te(t,(function(t){t.inXRange(i.x)&&r.push(t),t.inRange(i.x,i.y)&&(a=!0)})),n.intersect&&!a&&(r=[]),r},y:function(t,e,n){var i=Me(e,t),r=[],a=!1;return Te(t,(function(t){t.inYRange(i.y)&&r.push(t),t.inRange(i.x,i.y)&&(a=!0)})),n.intersect&&!a&&(r=[]),r}}},Be=ut.extend;function Fe(t,e){return ut.where(t,(function(t){return t.pos===e}))}function Ne(t,e){return t.sort((function(t,n){var i=e?n:t,r=e?t:n;return i.weight===r.weight?i.index-r.index:i.weight-r.weight}))}function Re(t){var e,n,i,r=[];for(e=0,n=(t||[]).length;e div {\r\n\tposition: absolute;\r\n\twidth: 1000000px;\r\n\theight: 1000000px;\r\n\tleft: 0;\r\n\ttop: 0;\r\n}\r\n\r\n.chartjs-size-monitor-shrink > div {\r\n\tposition: absolute;\r\n\twidth: 200%;\r\n\theight: 200%;\r\n\tleft: 0;\r\n\ttop: 0;\r\n}\r\n",Je=Object.freeze({__proto__:null,default:Ze}),Qe=n(Je),tn="$chartjs",en="chartjs-",nn=en+"size-monitor",rn=en+"render-monitor",an=en+"render-animation",on=["animationstart","webkitAnimationStart"],sn={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function cn(t,e){var n=ut.getStyle(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?Number(i[1]):void 0}function ln(t,e){var n=t.style,i=t.getAttribute("height"),r=t.getAttribute("width");if(t[tn]={initial:{height:i,width:r,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===r||""===r){var a=cn(t,"width");void 0!==a&&(t.width=a)}if(null===i||""===i)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var o=cn(t,"height");void 0!==a&&(t.height=o)}return t}var un=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(n){}return t}(),hn=!!un&&{passive:!0};function dn(t,e,n){t.addEventListener(e,n,hn)}function fn(t,e,n){t.removeEventListener(e,n,hn)}function pn(t,e,n,i,r){return{type:t,chart:e,native:r||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function vn(t,e){var n=sn[t.type]||t.type,i=ut.getRelativePosition(t,e);return pn(n,e,i.x,i.y,t)}function gn(t,e){var n=!1,i=[];return function(){i=Array.prototype.slice.call(arguments),e=e||this,n||(n=!0,ut.requestAnimFrame.call(window,(function(){n=!1,t.apply(e,i)})))}}function mn(t){var e=document.createElement("div");return e.className=t||"",e}function bn(t){var e=1e6,n=mn(nn),i=mn(nn+"-expand"),r=mn(nn+"-shrink");i.appendChild(mn()),r.appendChild(mn()),n.appendChild(i),n.appendChild(r),n._reset=function(){i.scrollLeft=e,i.scrollTop=e,r.scrollLeft=e,r.scrollTop=e};var a=function(){n._reset(),t()};return dn(i,"scroll",a.bind(i,"expand")),dn(r,"scroll",a.bind(r,"shrink")),n}function yn(t,e){var n=t[tn]||(t[tn]={}),i=n.renderProxy=function(t){t.animationName===an&&e()};ut.each(on,(function(e){dn(t,e,i)})),n.reflow=!!t.offsetParent,t.classList.add(rn)}function xn(t){var e=t[tn]||{},n=e.renderProxy;n&&(ut.each(on,(function(e){fn(t,e,n)})),delete e.renderProxy),t.classList.remove(rn)}function _n(t,e,n){var i=t[tn]||(t[tn]={}),r=i.resizer=bn(gn((function(){if(i.resizer){var r=n.options.maintainAspectRatio&&t.parentNode,a=r?r.clientWidth:0;e(pn("resize",n)),r&&r.clientWidth0){var a=t[0];a.label?n=a.label:a.xLabel?n=a.xLabel:r>0&&a.index-1?t.split("\n"):t}function Pn(t){var e=t._xScale,n=t._yScale||t._scale,i=t._index,r=t._datasetIndex,a=t._chart.getDatasetMeta(r).controller,o=a._getIndexScale(),s=a._getValueScale();return{xLabel:e?e.getLabelForIndex(i,r):"",yLabel:n?n.getLabelForIndex(i,r):"",label:o?""+o.getLabelForIndex(i,r):"",value:s?""+s.getLabelForIndex(i,r):"",index:i,datasetIndex:r,x:t._model.x,y:t._model.y}}function Ln(t){var e=J.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,rtl:t.rtl,textDirection:t.textDirection,bodyFontColor:t.bodyFontColor,_bodyFontFamily:In(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:In(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:In(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:In(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:In(t.titleFontStyle,e.defaultFontStyle),titleFontSize:In(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:In(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:In(t.footerFontStyle,e.defaultFontStyle),footerFontSize:In(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Dn(t,e){var n=t._chart.ctx,i=2*e.yPadding,r=0,a=e.body,o=a.reduce((function(t,e){return t+e.before.length+e.lines.length+e.after.length}),0);o+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,c=e.footer.length,l=e.titleFontSize,u=e.bodyFontSize,h=e.footerFontSize;i+=s*l,i+=s?(s-1)*e.titleSpacing:0,i+=s?e.titleMarginBottom:0,i+=o*u,i+=o?(o-1)*e.bodySpacing:0,i+=c?e.footerMarginTop:0,i+=c*h,i+=c?(c-1)*e.footerSpacing:0;var d=0,f=function(t){r=Math.max(r,n.measureText(t).width+d)};return n.font=ut.fontString(l,e._titleFontStyle,e._titleFontFamily),ut.each(e.title,f),n.font=ut.fontString(u,e._bodyFontStyle,e._bodyFontFamily),ut.each(e.beforeBody.concat(e.afterBody),f),d=e.displayColors?u+2:0,ut.each(a,(function(t){ut.each(t.before,f),ut.each(t.lines,f),ut.each(t.after,f)})),d=0,n.font=ut.fontString(h,e._footerFontStyle,e._footerFontFamily),ut.each(e.footer,f),r+=2*e.xPadding,{width:r,height:i}}function Bn(t,e){var n,i,r,a,o,s=t._model,c=t._chart,l=t._chart.chartArea,u="center",h="center";s.yc.height-e.height&&(h="bottom");var d=(l.left+l.right)/2,f=(l.top+l.bottom)/2;"center"===h?(n=function(t){return t<=d},i=function(t){return t>d}):(n=function(t){return t<=e.width/2},i=function(t){return t>=c.width-e.width/2}),r=function(t){return t+e.width+s.caretSize+s.caretPadding>c.width},a=function(t){return t-e.width-s.caretSize-s.caretPadding<0},o=function(t){return t<=f?"top":"bottom"},n(s.x)?(u="left",r(s.x)&&(u="center",h=o(s.y))):i(s.x)&&(u="right",a(s.x)&&(u="center",h=o(s.y)));var p=t._options;return{xAlign:p.xAlign?p.xAlign:u,yAlign:p.yAlign?p.yAlign:h}}function Fn(t,e,n,i){var r=t.x,a=t.y,o=t.caretSize,s=t.caretPadding,c=t.cornerRadius,l=n.xAlign,u=n.yAlign,h=o+s,d=c+s;return"right"===l?r-=e.width:"center"===l&&(r-=e.width/2,r+e.width>i.width&&(r=i.width-e.width),r<0&&(r=0)),"top"===u?a+=h:a-="bottom"===u?e.height+h:e.height/2,"center"===u?"left"===l?r+=h:"right"===l&&(r-=h):"left"===l?r-=d:"right"===l&&(r+=d),{x:r,y:a}}function Nn(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function Rn(t){return $n([],En(t))}var Vn=bt.extend({initialize:function(){this._model=Ln(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options,n=e.callbacks,i=n.beforeTitle.apply(t,arguments),r=n.title.apply(t,arguments),a=n.afterTitle.apply(t,arguments),o=[];return o=$n(o,En(i)),o=$n(o,En(r)),o=$n(o,En(a)),o},getBeforeBody:function(){return Rn(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var n=this,i=n._options.callbacks,r=[];return ut.each(t,(function(t){var a={before:[],lines:[],after:[]};$n(a.before,En(i.beforeLabel.call(n,t,e))),$n(a.lines,i.label.call(n,t,e)),$n(a.after,En(i.afterLabel.call(n,t,e))),r.push(a)})),r},getAfterBody:function(){return Rn(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this,e=t._options.callbacks,n=e.beforeFooter.apply(t,arguments),i=e.footer.apply(t,arguments),r=e.afterFooter.apply(t,arguments),a=[];return a=$n(a,En(n)),a=$n(a,En(i)),a=$n(a,En(r)),a},update:function(t){var e,n,i=this,r=i._options,a=i._model,o=i._model=Ln(r),s=i._active,c=i._data,l={xAlign:a.xAlign,yAlign:a.yAlign},u={x:a.x,y:a.y},h={width:a.width,height:a.height},d={x:a.caretX,y:a.caretY};if(s.length){o.opacity=1;var f=[],p=[];d=Tn[r.position].call(i,s,i._eventPosition);var v=[];for(e=0,n=s.length;e0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},r=Math.abs(e.opacity<.001)?0:e.opacity,a=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&a&&(t.save(),t.globalAlpha=r,this.drawBackground(i,e,t,n),i.y+=e.yPadding,ut.rtl.overrideTextDirection(t,e.textDirection),this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),ut.rtl.restoreTextDirection(t,e.textDirection),t.restore())}},handleEvent:function(t){var e=this,n=e._options,i=!1;return e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:(e._active=e._chart.getElementsAtEventForMode(t,n.mode,n),n.reverse&&e._active.reverse()),i=!ut.arrayEquals(e._active,e._lastActive),i&&(e._lastActive=e._active,(n.enabled||n.custom)&&(e._eventPosition={x:t.x,y:t.y},e.update(!0),e.pivot())),i}}),zn=Tn,Wn=Vn;Wn.positioners=zn;var Hn=ut.valueOrDefault;function qn(){return ut.merge(Object.create(null),[].slice.call(arguments),{merger:function(t,e,n,i){if("xAxes"===t||"yAxes"===t){var r,a,o,s=n[t].length;for(e[t]||(e[t]=[]),r=0;r=e[t].length&&e[t].push({}),!e[t][r].type||o.type&&o.type!==e[t][r].type?ut.merge(e[t][r],[An.getScaleDefaults(a),o]):ut.merge(e[t][r],o)}else ut._merger(t,e,n,i)}})}function Un(){return ut.merge(Object.create(null),[].slice.call(arguments),{merger:function(t,e,n,i){var r=e[t]||Object.create(null),a=n[t];"scales"===t?e[t]=qn(r,a):"scale"===t?e[t]=ut.merge(r,[An.getScaleDefaults(a.type),a]):ut._merger(t,e,n,i)}})}function Yn(t){t=t||Object.create(null);var e=t.data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=Un(J.global,J[t.type],t.options||{}),t}function Gn(t){var e=t.options;ut.each(t.scales,(function(e){Ke.removeBox(t,e)})),e=Un(J.global,J[t.config.type],e),t.options=t.config.options=e,t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.tooltip._options=e.tooltips,t.tooltip.initialize()}function Kn(t,e,n){var i,r=function(t){return t.id===i};do{i=e+n++}while(ut.findIndex(t,r)>=0);return i}function Xn(t){return"top"===t||"bottom"===t}function Zn(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}J._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Jn=function(t,e){return this.construct(t,e),this};ut.extend(Jn.prototype,{construct:function(t,e){var n=this;e=Yn(e);var i=Cn.acquireContext(t,e),r=i&&i.canvas,a=r&&r.height,o=r&&r.width;n.id=ut.uid(),n.ctx=i,n.canvas=r,n.config=e,n.width=o,n.height=a,n.aspectRatio=a?o/a:null,n.options=e.options,n._bufferedRender=!1,n._layers=[],n.chart=n,n.controller=n,Jn.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(t){n.config.data=t}}),i&&r?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return jn.notify(t,"beforeInit"),ut.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.initToolTip(),jn.notify(t,"afterInit"),t},clear:function(){return ut.canvas.clear(this),this},stop:function(){return _t.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,r=n.maintainAspectRatio&&e.aspectRatio||null,a=Math.max(0,Math.floor(ut.getMaximumWidth(i))),o=Math.max(0,Math.floor(r?a/r:ut.getMaximumHeight(i)));if((e.width!==a||e.height!==o)&&(i.width=e.width=a,i.height=e.height=o,i.style.width=a+"px",i.style.height=o+"px",ut.retinaScale(e,n.devicePixelRatio),!t)){var s={width:a,height:o};jn.notify(e,"resize",[s]),n.onResize&&n.onResize(e,s),e.stop(),e.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;ut.each(e.xAxes,(function(t,n){t.id||(t.id=Kn(e.xAxes,"x-axis-",n))})),ut.each(e.yAxes,(function(t,n){t.id||(t.id=Kn(e.yAxes,"y-axis-",n))})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,n=t.scales||{},i=[],r=Object.keys(n).reduce((function(t,e){return t[e]=!1,t}),{});e.scales&&(i=i.concat((e.scales.xAxes||[]).map((function(t){return{options:t,dtype:"category",dposition:"bottom"}})),(e.scales.yAxes||[]).map((function(t){return{options:t,dtype:"linear",dposition:"left"}})))),e.scale&&i.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),ut.each(i,(function(e){var i=e.options,a=i.id,o=Hn(i.type,e.dtype);Xn(i.position)!==Xn(e.dposition)&&(i.position=e.dposition),r[a]=!0;var s=null;if(a in n&&n[a].type===o)s=n[a],s.options=i,s.ctx=t.ctx,s.chart=t;else{var c=An.getScaleConstructor(o);if(!c)return;s=new c({id:a,type:o,options:i,ctx:t.ctx,chart:t}),n[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)})),ut.each(r,(function(t,e){t||delete n[e]})),t.scales=n,An.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t,e,n=this,i=[],r=n.data.datasets;for(t=0,e=r.length;t=0;--n)i.drawDataset(e[n],t);jn.notify(i,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this,i={meta:t,index:t.index,easingValue:e};!1!==jn.notify(n,"beforeDatasetDraw",[i])&&(t.controller.draw(e),jn.notify(n,"afterDatasetDraw",[i]))},_drawTooltip:function(t){var e=this,n=e.tooltip,i={tooltip:n,easingValue:t};!1!==jn.notify(e,"beforeTooltipDraw",[i])&&(n.draw(),jn.notify(e,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return De.modes.single(this,t)},getElementsAtEvent:function(t){return De.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return De.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=De.modes[e];return"function"===typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return De.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this,n=e.data.datasets[t];n._meta||(n._meta={});var i=n._meta[e.id];return i||(i=n._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n.order||0,index:t}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e=0;i--){var r=t[i];if(e(r))return r}},ut.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},ut.almostEquals=function(t,e,n){return Math.abs(t-e)=t},ut.max=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.max(t,e)}),Number.NEGATIVE_INFINITY)},ut.min=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.min(t,e)}),Number.POSITIVE_INFINITY)},ut.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return t=+t,0===t||isNaN(t)?t:t>0?1:-1},ut.toRadians=function(t){return t*(Math.PI/180)},ut.toDegrees=function(t){return t*(180/Math.PI)},ut._decimalPlaces=function(t){if(ut.isFinite(t)){var e=1,n=0;while(Math.round(t*e)/e!==t)e*=10,n++;return n}},ut.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,r=Math.sqrt(n*n+i*i),a=Math.atan2(i,n);return a<-.5*Math.PI&&(a+=2*Math.PI),{angle:a,distance:r}},ut.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},ut.aliasPixel=function(t){return t%2===0?0:.5},ut._alignPixel=function(t,e,n){var i=t.currentDevicePixelRatio,r=n/2;return Math.round((e-r)*i)/i+r},ut.splineCurve=function(t,e,n,i){var r=t.skip?e:t,a=e,o=n.skip?e:n,s=Math.sqrt(Math.pow(a.x-r.x,2)+Math.pow(a.y-r.y,2)),c=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=s/(s+c),u=c/(s+c);l=isNaN(l)?0:l,u=isNaN(u)?0:u;var h=i*l,d=i*u;return{previous:{x:a.x-h*(o.x-r.x),y:a.y-h*(o.y-r.y)},next:{x:a.x+d*(o.x-r.x),y:a.y+d*(o.y-r.y)}}},ut.EPSILON=Number.EPSILON||1e-14,ut.splineCurveMonotone=function(t){var e,n,i,r,a,o,s,c,l,u=(t||[]).map((function(t){return{model:t._model,deltaK:0,mK:0}})),h=u.length;for(e=0;e0?u[e-1]:null,r=e0?u[e-1]:null,r=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},ut.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},ut.niceNum=function(t,e){var n,i=Math.floor(ut.log10(t)),r=t/Math.pow(10,i);return n=e?r<1.5?1:r<3?2:r<7?5:10:r<=1?1:r<=2?2:r<=5?5:10,n*Math.pow(10,i)},ut.requestAnimFrame=function(){return"undefined"===typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}(),ut.getRelativePosition=function(t,e){var n,i,r=t.originalEvent||t,a=t.target||t.srcElement,o=a.getBoundingClientRect(),s=r.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=r.clientX,i=r.clientY);var c=parseFloat(ut.getStyle(a,"padding-left")),l=parseFloat(ut.getStyle(a,"padding-top")),u=parseFloat(ut.getStyle(a,"padding-right")),h=parseFloat(ut.getStyle(a,"padding-bottom")),d=o.right-o.left-c-u,f=o.bottom-o.top-l-h;return n=Math.round((n-o.left-c)/d*a.width/e.currentDevicePixelRatio),i=Math.round((i-o.top-l)/f*a.height/e.currentDevicePixelRatio),{x:n,y:i}},ut.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},ut.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},ut._calculatePadding=function(t,e,n){return e=ut.getStyle(t,e),e.indexOf("%")>-1?n*parseInt(e,10)/100:parseInt(e,10)},ut._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},ut.getMaximumWidth=function(t){var e=ut._getParentNode(t);if(!e)return t.clientWidth;var n=e.clientWidth,i=ut._calculatePadding(e,"padding-left",n),r=ut._calculatePadding(e,"padding-right",n),a=n-i-r,o=ut.getConstraintWidth(t);return isNaN(o)?a:Math.min(a,o)},ut.getMaximumHeight=function(t){var e=ut._getParentNode(t);if(!e)return t.clientHeight;var n=e.clientHeight,i=ut._calculatePadding(e,"padding-top",n),r=ut._calculatePadding(e,"padding-bottom",n),a=n-i-r,o=ut.getConstraintHeight(t);return isNaN(o)?a:Math.min(a,o)},ut.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},ut.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||"undefined"!==typeof window&&window.devicePixelRatio||1;if(1!==n){var i=t.canvas,r=t.height,a=t.width;i.height=r*n,i.width=a*n,t.ctx.scale(n,n),i.style.height||i.style.width||(i.style.height=r+"px",i.style.width=a+"px")}},ut.fontString=function(t,e,n){return e+" "+t+"px "+n},ut.longestText=function(t,e,n,i){i=i||{};var r=i.data=i.data||{},a=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(r=i.data={},a=i.garbageCollect=[],i.font=e),t.font=e;var o,s,c,l,u,h=0,d=n.length;for(o=0;on.length){for(o=0;oi&&(i=a),i},ut.numberOfLabelLines=function(t){var e=1;return ut.each(t,(function(t){ut.isArray(t)&&t.length>e&&(e=t.length)})),e},ut.color=B?function(t){return t instanceof CanvasGradient&&(t=J.global.defaultColor),B(t)}:function(t){return console.error("Color.js not found!"),t},ut.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:ut.color(t).saturate(.5).darken(.1).rgbString()}};function ei(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function ni(t){this.options=t||{}}ut.extend(ni.prototype,{formats:ei,parse:ei,format:ei,add:ei,diff:ei,startOf:ei,endOf:ei,_create:function(t){return t}}),ni.override=function(t){ut.extend(ni.prototype,t)};var ii=ni,ri={_date:ii},ai={formatters:{values:function(t){return ut.isArray(t)?t:""+t},linear:function(t,e,n){var i=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(i)>1&&t!==Math.floor(t)&&(i=t-Math.floor(t));var r=ut.log10(Math.abs(i)),a="";if(0!==t){var o=Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]));if(o<1e-4){var s=ut.log10(Math.abs(t)),c=Math.floor(s)-Math.floor(r);c=Math.max(Math.min(c,20),0),a=t.toExponential(c)}else{var l=-1*Math.floor(r);l=Math.max(Math.min(l,20),0),a=t.toFixed(l)}}else a="0";return a},logarithmic:function(t,e,n){var i=t/Math.pow(10,Math.floor(ut.log10(t)));return 0===t?"0":1===i||2===i||5===i||0===e||e===n.length-1?t.toExponential():""}}},oi=ut.isArray,si=ut.isNullOrUndef,ci=ut.valueOrDefault,li=ut.valueAtIndexOrDefault;function ui(t,e){for(var n=[],i=t.length/e,r=0,a=t.length;rc+l)))return o}function di(t,e){ut.each(t,(function(t){var n,i=t.gc,r=i.length/2;if(r>e){for(n=0;nl)return a;return Math.max(l,1)}function _i(t){var e,n,i=[];for(e=0,n=t.length;e=d||u<=1||!s.isHorizontal()?s.labelRotation=h:(t=s._getLabelSizes(),e=t.widest.width,n=t.highest.height-t.highest.offset,i=Math.min(s.maxWidth,s.chart.width-e),r=c.offset?s.maxWidth/u:i/(u-1),e+6>r&&(r=i/(u-(c.offset?.5:1)),a=s.maxHeight-pi(c.gridLines)-l.padding-vi(c.scaleLabel),o=Math.sqrt(e*e+n*n),f=ut.toDegrees(Math.min(Math.asin(Math.min((t.highest.height+6)/r,1)),Math.asin(Math.min(a/o,1))-Math.asin(n/o))),f=Math.max(h,Math.min(d,f))),s.labelRotation=f)},afterCalculateTickRotation:function(){ut.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){ut.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},n=t.chart,i=t.options,r=i.ticks,a=i.scaleLabel,o=i.gridLines,s=t._isVisible(),c="bottom"===i.position,l=t.isHorizontal();if(l?e.width=t.maxWidth:s&&(e.width=pi(o)+vi(a)),l?s&&(e.height=pi(o)+vi(a)):e.height=t.maxHeight,r.display&&s){var u=mi(r),h=t._getLabelSizes(),d=h.first,f=h.last,p=h.widest,v=h.highest,g=.4*u.minor.lineHeight,m=r.padding;if(l){var b=0!==t.labelRotation,y=ut.toRadians(t.labelRotation),x=Math.cos(y),_=Math.sin(y),w=_*p.width+x*(v.height-(b?v.offset:0))+(b?0:g);e.height=Math.min(t.maxHeight,e.height+w+m);var O,k,S=t.getPixelForTick(0)-t.left,C=t.right-t.getPixelForTick(t.getTicks().length-1);b?(O=c?x*d.width+_*d.offset:_*(d.height-d.offset),k=c?_*(f.height-f.offset):x*f.width+_*f.offset):(O=d.width/2,k=f.width/2),t.paddingLeft=Math.max((O-S)*t.width/(t.width-S),0)+3,t.paddingRight=Math.max((k-C)*t.width/(t.width-C),0)+3}else{var j=r.mirror?0:p.width+m+g;e.width=Math.min(t.maxWidth,e.width+j),t.paddingTop=d.height/2,t.paddingBottom=f.height/2}}t.handleMargins(),l?(t.width=t._length=n.width-t.margins.left-t.margins.right,t.height=e.height):(t.width=e.width,t.height=t._length=n.height-t.margins.top-t.margins.bottom)},handleMargins:function(){var t=this;t.margins&&(t.margins.left=Math.max(t.paddingLeft,t.margins.left),t.margins.top=Math.max(t.paddingTop,t.margins.top),t.margins.right=Math.max(t.paddingRight,t.margins.right),t.margins.bottom=Math.max(t.paddingBottom,t.margins.bottom))},afterFit:function(){ut.callback(this.options.afterFit,[this])},isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(si(t))return NaN;if(("number"===typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},_convertTicksToLabels:function(t){var e,n,i,r=this;for(r.ticks=t.map((function(t){return t.value})),r.beforeTickToLabelConversion(),e=r.convertTicksToLabels(t)||r.ticks,r.afterTickToLabelConversion(),n=0,i=t.length;ni-1?null:e.getPixelForDecimal(t*r+(n?r/2:0))},getPixelForDecimal:function(t){var e=this;return e._reversePixels&&(t=1-t),e._startPixel+t*e._length},getDecimalForPixel:function(t){var e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,n=t.max;return t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0},_autoSkip:function(t){var e,n,i,r,a=this,o=a.options.ticks,s=a._length,c=o.maxTicksLimit||s/a._tickSize()+1,l=o.major.enabled?_i(t):[],u=l.length,h=l[0],d=l[u-1];if(u>c)return wi(t,l,u/c),bi(t);if(i=xi(l,t,s,c),u>0){for(e=0,n=u-1;e1?(d-h)/(u-1):null,Oi(t,i,ut.isNullOrUndef(r)?0:h-r,h),Oi(t,i,d,ut.isNullOrUndef(r)?t.length:d+r),bi(t)}return Oi(t,i),bi(t)},_tickSize:function(){var t=this,e=t.options.ticks,n=ut.toRadians(t.labelRotation),i=Math.abs(Math.cos(n)),r=Math.abs(Math.sin(n)),a=t._getLabelSizes(),o=e.autoSkipPadding||0,s=a?a.widest.width+o:0,c=a?a.highest.height+o:0;return t.isHorizontal()?c*i>s*r?s/i:c/r:c*r=0&&(o=t)),void 0!==a&&(t=n.indexOf(a),t>=0&&(s=t)),e.minIndex=o,e.maxIndex=s,e.min=n[o],e.max=n[s]},buildTicks:function(){var t=this,e=t._getLabels(),n=t.minIndex,i=t.maxIndex;t.ticks=0===n&&i===e.length-1?e:e.slice(n,i+1)},getLabelForIndex:function(t,e){var n=this,i=n.chart;return i.getDatasetMeta(e).controller._getValueScaleId()===n.id?n.getRightValue(i.data.datasets[e].data[t]):n._getLabels()[t]},_configure:function(){var t=this,e=t.options.offset,n=t.ticks;Si.prototype._configure.call(t),t.isHorizontal()||(t._reversePixels=!t._reversePixels),n&&(t._startValue=t.minIndex-(e?.5:0),t._valueRange=Math.max(n.length-(e?0:1),1))},getPixelForValue:function(t,e,n){var i,r,a,o=this;return Ci(e)||Ci(n)||(t=o.chart.data.datasets[n].data[e]),Ci(t)||(i=o.isHorizontal()?t.x:t.y),(void 0!==i||void 0!==t&&isNaN(e))&&(r=o._getLabels(),t=ut.valueOrDefault(i,t),a=r.indexOf(t),e=-1!==a?a:e,isNaN(e)&&(e=t)),o.getPixelForDecimal((e-o._startValue)/o._valueRange)},getPixelForTick:function(t){var e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t],t+this.minIndex)},getValueForPixel:function(t){var e=this,n=Math.round(e._startValue+e.getDecimalForPixel(t)*e._valueRange);return Math.min(Math.max(n,0),e.ticks.length-1)},getBasePixel:function(){return this.bottom}}),Ii=ji;Ai._defaults=Ii;var Mi=ut.noop,Ti=ut.isNullOrUndef;function $i(t,e){var n,i,r,a,o=[],s=1e-14,c=t.stepSize,l=c||1,u=t.maxTicks-1,h=t.min,d=t.max,f=t.precision,p=e.min,v=e.max,g=ut.niceNum((v-p)/u/l)*l;if(gu&&(g=ut.niceNum(a*g/u/l)*l),c||Ti(f)?n=Math.pow(10,ut._decimalPlaces(g)):(n=Math.pow(10,f),g=Math.ceil(g*n)/n),i=Math.floor(p/g)*g,r=Math.ceil(v/g)*g,c&&(!Ti(h)&&ut.almostWhole(h/g,g/1e3)&&(i=h),!Ti(d)&&ut.almostWhole(d/g,g/1e3)&&(r=d)),a=(r-i)/g,a=ut.almostEquals(a,Math.round(a),g/1e3)?Math.round(a):Math.ceil(a),i=Math.round(i*n)/n,r=Math.round(r*n)/n,o.push(Ti(h)?i:h);for(var m=1;m0&&r>0&&(t.min=0)}var a=void 0!==n.min||void 0!==n.suggestedMin,o=void 0!==n.max||void 0!==n.suggestedMax;void 0!==n.min?t.min=n.min:void 0!==n.suggestedMin&&(null===t.min?t.min=n.suggestedMin:t.min=Math.min(t.min,n.suggestedMin)),void 0!==n.max?t.max=n.max:void 0!==n.suggestedMax&&(null===t.max?t.max=n.suggestedMax:t.max=Math.max(t.max,n.suggestedMax)),a!==o&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,n.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this,n=e.options.ticks,i=n.stepSize,r=n.maxTicksLimit;return i?t=Math.ceil(e.max/i)-Math.floor(e.min/i)+1:(t=e._computeTickLimit(),r=r||11),r&&(t=Math.min(r,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:Mi,buildTicks:function(){var t=this,e=t.options,n=e.ticks,i=t.getTickLimit();i=Math.max(2,i);var r={maxTicks:i,min:n.min,max:n.max,precision:n.precision,stepSize:ut.valueOrDefault(n.fixedStepSize,n.stepSize)},a=t.ticks=$i(r,t);t.handleDirectionalChanges(),t.max=ut.max(a),t.min=ut.min(a),n.reverse?(a.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),Si.prototype.convertTicksToLabels.call(t)},_configure:function(){var t,e=this,n=e.getTicks(),i=e.min,r=e.max;Si.prototype._configure.call(e),e.options.offset&&n.length&&(t=(r-i)/Math.max(n.length-1,1)/2,i-=t,r+=t),e._startValue=i,e._endValue=r,e._valueRange=r-i}}),Pi={position:"left",ticks:{callback:ai.formatters.linear}},Li=0,Di=1;function Bi(t,e,n){var i=[n.type,void 0===e&&void 0===n.stack?n.index:"",n.stack].join(".");return void 0===t[i]&&(t[i]={pos:[],neg:[]}),t[i]}function Fi(t,e,n,i){var r,a,o=t.options,s=o.stacked,c=Bi(e,s,n),l=c.pos,u=c.neg,h=i.length;for(r=0;re.length-1?null:this.getPixelForValue(e[t])}}),Vi=Pi;Ri._defaults=Vi;var zi=ut.valueOrDefault,Wi=ut.math.log10;function Hi(t,e){var n,i,r=[],a=zi(t.min,Math.pow(10,Math.floor(Wi(e.min)))),o=Math.floor(Wi(e.max)),s=Math.ceil(e.max/Math.pow(10,o));0===a?(n=Math.floor(Wi(e.minNotZero)),i=Math.floor(e.minNotZero/Math.pow(10,n)),r.push(a),a=i*Math.pow(10,n)):(n=Math.floor(Wi(a)),i=Math.floor(a/Math.pow(10,n)));var c=n<0?Math.pow(10,Math.abs(n)):1;do{r.push(a),++i,10===i&&(i=1,++n,c=n>=0?1:c),a=Math.round(i*Math.pow(10,n)*c)/c}while(n=0?t:e}var Yi=Si.extend({determineDataLimits:function(){var t,e,n,i,r,a,o=this,s=o.options,c=o.chart,l=c.data.datasets,u=o.isHorizontal();function h(t){return u?t.xAxisID===o.id:t.yAxisID===o.id}o.min=Number.POSITIVE_INFINITY,o.max=Number.NEGATIVE_INFINITY,o.minNotZero=Number.POSITIVE_INFINITY;var d=s.stacked;if(void 0===d)for(t=0;t0){var e=ut.min(t),n=ut.max(t);o.min=Math.min(o.min,e),o.max=Math.max(o.max,n)}}))}else for(t=0;t0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(Wi(t.max))):t.minNotZero=n)},buildTicks:function(){var t=this,e=t.options.ticks,n=!t.isHorizontal(),i={min:Ui(e.min),max:Ui(e.max)},r=t.ticks=Hi(i,t);t.max=ut.max(r),t.min=ut.min(r),e.reverse?(n=!n,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),n&&r.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),Si.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return this._getScaleLabel(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){var e=this.tickValues;return t<0||t>e.length-1?null:this.getPixelForValue(e[t])},_getFirstTickValue:function(t){var e=Math.floor(Wi(t)),n=Math.floor(t/Math.pow(10,e));return n*Math.pow(10,e)},_configure:function(){var t=this,e=t.min,n=0;Si.prototype._configure.call(t),0===e&&(e=t._getFirstTickValue(t.minNotZero),n=zi(t.options.ticks.fontSize,J.global.defaultFontSize)/t._length),t._startValue=Wi(e),t._valueOffset=n,t._valueRange=(Wi(t.max)-Wi(e))/(1-n)},getPixelForValue:function(t){var e=this,n=0;return t=+e.getRightValue(t),t>e.min&&t>0&&(n=(Wi(t)-e._startValue)/e._valueRange+e._valueOffset),e.getPixelForDecimal(n)},getValueForPixel:function(t){var e=this,n=e.getDecimalForPixel(t);return 0===n&&0===e.min?0:Math.pow(10,e._startValue+(n-e._valueOffset)*e._valueRange)}}),Gi=qi;Yi._defaults=Gi;var Ki=ut.valueOrDefault,Xi=ut.valueAtIndexOrDefault,Zi=ut.options.resolve,Ji={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:ai.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function Qi(t){var e=t.ticks;return e.display&&t.display?Ki(e.fontSize,J.global.defaultFontSize)+2*e.backdropPaddingY:0}function tr(t,e,n){return ut.isArray(n)?{w:ut.longestText(t,t.font,n),h:n.length*e}:{w:t.measureText(n).width,h:e}}function er(t,e,n,i,r){return t===i||t===r?{start:e-n/2,end:e+n/2}:tr?{start:e-n,end:e}:{start:e,end:e+n}}function nr(t){var e,n,i,r=ut.options._parseFont(t.options.pointLabels),a={l:0,r:t.width,t:0,b:t.height-t.paddingTop},o={};t.ctx.font=r.string,t._pointLabelSizes=[];var s=t.chart.data.labels.length;for(e=0;ea.r&&(a.r=u.end,o.r=c),h.starta.b&&(a.b=h.end,o.b=c)}t.setReductions(t.drawingArea,a,o)}function ir(t){return 0===t||180===t?"center":t<180?"left":"right"}function rr(t,e,n,i){var r,a,o=n.y+i/2;if(ut.isArray(e))for(r=0,a=e.length;r270||t<90)&&(n.y-=e.h)}function or(t){var e=t.ctx,n=t.options,i=n.pointLabels,r=Qi(n),a=t.getDistanceFromCenterForValue(n.ticks.reverse?t.min:t.max),o=ut.options._parseFont(i);e.save(),e.font=o.string,e.textBaseline="middle";for(var s=t.chart.data.labels.length-1;s>=0;s--){var c=0===s?r/2:0,l=t.getPointPosition(s,a+c+5),u=Xi(i.fontColor,s,J.global.defaultFontColor);e.fillStyle=u;var h=t.getIndexAngle(s),d=ut.toDegrees(h);e.textAlign=ir(d),ar(d,t._pointLabelSizes[s],l),rr(e,t.pointLabels[s],l,o.lineHeight)}e.restore()}function sr(t,e,n,i){var r,a=t.ctx,o=e.circular,s=t.chart.data.labels.length,c=Xi(e.color,i-1),l=Xi(e.lineWidth,i-1);if((o||s)&&c&&l){if(a.save(),a.strokeStyle=c,a.lineWidth=l,a.setLineDash&&(a.setLineDash(e.borderDash||[]),a.lineDashOffset=e.borderDashOffset||0),a.beginPath(),o)a.arc(t.xCenter,t.yCenter,n,0,2*Math.PI);else{r=t.getPointPosition(0,n),a.moveTo(r.x,r.y);for(var u=1;u0&&i>0?n:0)},_drawGrid:function(){var t,e,n,i=this,r=i.ctx,a=i.options,o=a.gridLines,s=a.angleLines,c=Ki(s.lineWidth,o.lineWidth),l=Ki(s.color,o.color);if(a.pointLabels.display&&or(i),o.display&&ut.each(i.ticks,(function(t,n){0!==n&&(e=i.getDistanceFromCenterForValue(i.ticksAsNumbers[n]),sr(i,o,e,n))})),s.display&&c&&l){for(r.save(),r.lineWidth=c,r.strokeStyle=l,r.setLineDash&&(r.setLineDash(Zi([s.borderDash,o.borderDash,[]])),r.lineDashOffset=Zi([s.borderDashOffset,o.borderDashOffset,0])),t=i.chart.data.labels.length-1;t>=0;t--)e=i.getDistanceFromCenterForValue(a.ticks.reverse?i.min:i.max),n=i.getPointPosition(t,e),r.beginPath(),r.moveTo(i.xCenter,i.yCenter),r.lineTo(n.x,n.y),r.stroke();r.restore()}},_drawLabels:function(){var t=this,e=t.ctx,n=t.options,i=n.ticks;if(i.display){var r,a,o=t.getIndexAngle(0),s=ut.options._parseFont(i),c=Ki(i.fontColor,J.global.defaultFontColor);e.save(),e.font=s.string,e.translate(t.xCenter,t.yCenter),e.rotate(o),e.textAlign="center",e.textBaseline="middle",ut.each(t.ticks,(function(n,o){(0!==o||i.reverse)&&(r=t.getDistanceFromCenterForValue(t.ticksAsNumbers[o]),i.showLabelBackdrop&&(a=e.measureText(n).width,e.fillStyle=i.backdropColor,e.fillRect(-a/2-i.backdropPaddingX,-r-s.size/2-i.backdropPaddingY,a+2*i.backdropPaddingX,s.size+2*i.backdropPaddingY)),e.fillStyle=c,e.fillText(n,0,-r))})),e.restore()}},_drawTitle:ut.noop}),ur=Ji;lr._defaults=ur;var hr=ut._deprecated,dr=ut.options.resolve,fr=ut.valueOrDefault,pr=Number.MIN_SAFE_INTEGER||-9007199254740991,vr=Number.MAX_SAFE_INTEGER||9007199254740991,gr={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},mr=Object.keys(gr);function br(t,e){return t-e}function yr(t){var e,n,i,r={},a=[];for(e=0,n=t.length;ee&&s=0&&o<=s){if(i=o+s>>1,r=t[i-1]||null,a=t[i],!r)return{lo:null,hi:a};if(a[e]n))return{lo:r,hi:a};s=i-1}}return{lo:a,hi:null}}function kr(t,e,n,i){var r=Or(t,e,n),a=r.lo?r.hi?r.lo:t[t.length-2]:t[0],o=r.lo?r.hi?r.hi:t[t.length-1]:t[1],s=o[e]-a[e],c=s?(n-a[e])/s:0,l=(o[i]-a[i])*c;return a[i]+l}function Sr(t,e){var n=t._adapter,i=t.options.time,r=i.parser,a=r||i.format,o=e;return"function"===typeof r&&(o=r(o)),ut.isFinite(o)||(o="string"===typeof a?n.parse(o,a):n.parse(o)),null!==o?+o:(r||"function"!==typeof a||(o=a(e),ut.isFinite(o)||(o=n.parse(o))),o)}function Cr(t,e){if(ut.isNullOrUndef(e))return null;var n=t.options.time,i=Sr(t,t.getRightValue(e));return null===i||n.round&&(i=+t._adapter.startOf(i,n.round)),i}function jr(t,e,n,i){var r,a,o,s=mr.length;for(r=mr.indexOf(t);r=mr.indexOf(n);a--)if(o=mr[a],gr[o].common&&t._adapter.diff(r,i,o)>=e-1)return o;return mr[n?mr.indexOf(n):0]}function Ir(t){for(var e=mr.indexOf(t)+1,n=mr.length;e1e5*l)throw e+" and "+n+" are too far apart with stepSize of "+l+" "+c;for(r=h;r=0&&(e[a].major=!0);return e}function Er(t,e,n){var i,r,a=[],o={},s=e.length;for(i=0;i1?yr(p).sort(br):p.sort(br),d=Math.min(d,p[0]),f=Math.max(f,p[p.length-1])),d=Cr(s,xr(u))||d,f=Cr(s,_r(u))||f,d=d===vr?+l.startOf(Date.now(),h):d,f=f===pr?+l.endOf(Date.now(),h)+1:f,s.min=Math.min(d,f),s.max=Math.max(d+1,f),s._table=[],s._timestamps={data:p,datasets:v,labels:g}},buildTicks:function(){var t,e,n,i=this,r=i.min,a=i.max,o=i.options,s=o.ticks,c=o.time,l=i._timestamps,u=[],h=i.getLabelCapacity(r),d=s.source,f=o.distribution;for(l="data"===d||"auto"===d&&"series"===f?l.data:"labels"===d?l.labels:Mr(i,r,a,h),"ticks"===o.bounds&&l.length&&(r=l[0],a=l[l.length-1]),r=Cr(i,xr(o))||r,a=Cr(i,_r(o))||a,t=0,e=l.length;t=r&&n<=a&&u.push(n);return i.min=r,i.max=a,i._unit=c.unit||(s.autoSkip?jr(c.minUnit,i.min,i.max,h):Ar(i,u.length,c.minUnit,i.min,i.max)),i._majorUnit=s.major.enabled&&"year"!==i._unit?Ir(i._unit):void 0,i._table=wr(i._timestamps.data,r,a,f),i._offsets=Tr(i._table,u,r,a,o),s.reverse&&u.reverse(),Er(i,u,i._majorUnit)},getLabelForIndex:function(t,e){var n=this,i=n._adapter,r=n.chart.data,a=n.options.time,o=r.labels&&t=0&&t0?s:1}}),Dr=Pr;Lr._defaults=Dr;var Br={category:Ai,linear:Ri,logarithmic:Yi,radialLinear:lr,time:Lr},Fr={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};ri._date.override("function"===typeof t?{_id:"moment",formats:function(){return Fr},parse:function(e,n){return"string"===typeof e&&"string"===typeof n?e=t(e,n):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,n){return t(e).format(n)},add:function(e,n,i){return t(e).add(n,i).valueOf()},diff:function(e,n,i){return t(e).diff(t(n),i)},startOf:function(e,n,i){return e=t(e),"isoWeek"===n?e.isoWeekday(i).valueOf():e.startOf(n).valueOf()},endOf:function(e,n){return t(e).endOf(n).valueOf()},_create:function(e){return t(e)}}:{}),J._set("global",{plugins:{filler:{propagate:!0}}});var Nr={dataset:function(t){var e=t.fill,n=t.chart,i=n.getDatasetMeta(e),r=i&&n.isDatasetVisible(e),a=r&&i.dataset._children||[],o=a.length||0;return o?function(t,e){return e=n)&&i;switch(a){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return a;default:return!1}}function Vr(t){var e,n=t.el._model||{},i=t.el._scale||{},r=t.fill,a=null;if(isFinite(r))return null;if("start"===r?a=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===r?a=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?a=n.scaleZero:i.getBasePixel&&(a=i.getBasePixel()),void 0!==a&&null!==a){if(void 0!==a.x&&void 0!==a.y)return a;if(ut.isFinite(a))return e=i.isHorizontal(),{x:e?a:null,y:e?null:a}}return null}function zr(t){var e,n,i,r,a,o=t.el._scale,s=o.options,c=o.chart.data.labels.length,l=t.fill,u=[];if(!c)return null;for(e=s.ticks.reverse?o.max:o.min,n=s.ticks.reverse?o.min:o.max,i=o.getPointPositionForValue(0,e),r=0;r0;--a)ut.canvas.lineTo(t,n[a],n[a-1],!0);else for(o=n[0].cx,s=n[0].cy,c=Math.sqrt(Math.pow(n[0].x-o,2)+Math.pow(n[0].y-s,2)),a=r-1;a>0;--a)t.arc(o,s,c,n[a].angle,n[a-1].angle,!0)}}function Gr(t,e,n,i,r,a){var o,s,c,l,u,h,d,f,p=e.length,v=i.spanGaps,g=[],m=[],b=0,y=0;for(t.beginPath(),o=0,s=p;o=0;--n)e=c[n].$filler,e&&e.visible&&(i=e.el,r=i._view,a=i._children||[],o=e.mapper,s=r.backgroundColor||J.global.defaultColor,o&&s&&a.length&&(ut.canvas.clipArea(l,t.chartArea),Gr(l,a,o,r,s,i._loop),ut.canvas.unclipArea(l)))}},Xr=ut.rtl.getRtlAdapter,Zr=ut.noop,Jr=ut.valueOrDefault;function Qr(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}J._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,i=this.chart,r=i.getDatasetMeta(n);r.hidden=null===r.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data.datasets,n=t.options.legend||{},i=n.labels&&n.labels.usePointStyle;return t._getSortedDatasetMetas().map((function(n){var r=n.controller.getStyle(i?0:void 0);return{text:e[n.index].label,fillStyle:r.backgroundColor,hidden:!t.isDatasetVisible(n.index),lineCap:r.borderCapStyle,lineDash:r.borderDash,lineDashOffset:r.borderDashOffset,lineJoin:r.borderJoinStyle,lineWidth:r.borderWidth,strokeStyle:r.borderColor,pointStyle:r.pointStyle,rotation:r.rotation,datasetIndex:n.index}}),this)}}},legendCallback:function(t){var e,n,i,r,a=document.createElement("ul"),o=t.data.datasets;for(a.setAttribute("class",t.id+"-legend"),e=0,n=o.length;ec.width)&&(h+=o+n.padding,u[u.length-(e>0?0:1)]=0),s[e]={left:0,top:0,width:a,height:o},u[u.length-1]+=a+n.padding})),c.height+=h}else{var d=n.padding,f=t.columnWidths=[],p=t.columnHeights=[],v=n.padding,g=0,m=0;ut.each(t.legendItems,(function(t,e){var i=Qr(n,o),a=i+o/2+r.measureText(t.text).width;e>0&&m+o+2*d>c.height&&(v+=g+n.padding,f.push(g),p.push(m),g=0,m=0),g=Math.max(g,a),m+=o+d,s[e]={left:0,top:0,width:a,height:o}})),v+=g,f.push(g),p.push(m),c.width+=v}t.width=c.width,t.height=c.height}else t.width=c.width=t.height=c.height=0},afterFit:Zr,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,n=e.labels,i=J.global,r=i.defaultColor,a=i.elements.line,o=t.height,s=t.columnHeights,c=t.width,l=t.lineWidths;if(e.display){var u,h=Xr(e.rtl,t.left,t.minSize.width),d=t.ctx,f=Jr(n.fontColor,i.defaultFontColor),p=ut.options._parseFont(n),v=p.size;d.textAlign=h.textAlign("left"),d.textBaseline="middle",d.lineWidth=.5,d.strokeStyle=f,d.fillStyle=f,d.font=p.string;var g=Qr(n,v),m=t.legendHitBoxes,b=function(t,e,i){if(!(isNaN(g)||g<=0)){d.save();var o=Jr(i.lineWidth,a.borderWidth);if(d.fillStyle=Jr(i.fillStyle,r),d.lineCap=Jr(i.lineCap,a.borderCapStyle),d.lineDashOffset=Jr(i.lineDashOffset,a.borderDashOffset),d.lineJoin=Jr(i.lineJoin,a.borderJoinStyle),d.lineWidth=o,d.strokeStyle=Jr(i.strokeStyle,r),d.setLineDash&&d.setLineDash(Jr(i.lineDash,a.borderDash)),n&&n.usePointStyle){var s=g*Math.SQRT2/2,c=h.xPlus(t,g/2),l=e+v/2;ut.canvas.drawPoint(d,i.pointStyle,s,c,l,i.rotation)}else d.fillRect(h.leftForLtr(t,g),e,g,v),0!==o&&d.strokeRect(h.leftForLtr(t,g),e,g,v);d.restore()}},y=function(t,e,n,i){var r=v/2,a=h.xPlus(t,g+r),o=e+r;d.fillText(n.text,a,o),n.hidden&&(d.beginPath(),d.lineWidth=2,d.moveTo(a,o),d.lineTo(h.xPlus(a,i),o),d.stroke())},x=function(t,i){switch(e.align){case"start":return n.padding;case"end":return t-i;default:return(t-i+n.padding)/2}},_=t.isHorizontal();u=_?{x:t.left+x(c,l[0]),y:t.top+n.padding,line:0}:{x:t.left+n.padding,y:t.top+x(o,s[0]),line:0},ut.rtl.overrideTextDirection(t.ctx,e.textDirection);var w=v+n.padding;ut.each(t.legendItems,(function(e,i){var r=d.measureText(e.text).width,a=g+v/2+r,f=u.x,p=u.y;h.setWidth(t.minSize.width),_?i>0&&f+a+n.padding>t.left+t.minSize.width&&(p=u.y+=w,u.line++,f=u.x=t.left+x(c,l[u.line])):i>0&&p+w>t.top+t.minSize.height&&(f=u.x=f+t.columnWidths[u.line]+n.padding,u.line++,p=u.y=t.top+x(o,s[u.line]));var O=h.x(f);b(O,p,e),m[i].left=h.leftForLtr(O,m[i].width),m[i].top=p,y(O,p,e,r),_?u.x+=a+n.padding:u.y+=w})),ut.rtl.restoreTextDirection(t.ctx,e.textDirection)}},_getLegendItemAt:function(t,e){var n,i,r,a=this;if(t>=a.left&&t<=a.right&&e>=a.top&&e<=a.bottom)for(r=a.legendHitBoxes,n=0;n=i.left&&t<=i.left+i.width&&e>=i.top&&e<=i.top+i.height)return a.legendItems[n];return null},handleEvent:function(t){var e,n=this,i=n.options,r="mouseup"===t.type?"click":t.type;if("mousemove"===r){if(!i.onHover&&!i.onLeave)return}else{if("click"!==r)return;if(!i.onClick)return}e=n._getLegendItemAt(t.x,t.y),"click"===r?e&&i.onClick&&i.onClick.call(n,t.native,e):(i.onLeave&&e!==n._hoveredItem&&(n._hoveredItem&&i.onLeave.call(n,t.native,n._hoveredItem),n._hoveredItem=e),i.onHover&&e&&i.onHover.call(n,t.native,e))}});function ea(t,e){var n=new ta({ctx:t.ctx,options:e,chart:t});Ke.configure(t,n,e),Ke.addBox(t,n),t.legend=n}var na={id:"legend",_element:ta,beforeInit:function(t){var e=t.options.legend;e&&ea(t,e)},beforeUpdate:function(t){var e=t.options.legend,n=t.legend;e?(ut.mergeIf(e,J.global.legend),n?(Ke.configure(t,n,e),n.options=e):ea(t,e)):n&&(Ke.removeBox(t,n),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}},ia=ut.noop;J._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var ra=bt.extend({initialize:function(t){var e=this;ut.extend(e,t),e.legendHitBoxes=[]},beforeUpdate:ia,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:ia,beforeSetDimensions:ia,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:ia,beforeBuildLabels:ia,buildLabels:ia,afterBuildLabels:ia,beforeFit:ia,fit:function(){var t,e,n=this,i=n.options,r=n.minSize={},a=n.isHorizontal();i.display?(t=ut.isArray(i.text)?i.text.length:1,e=t*ut.options._parseFont(i).lineHeight+2*i.padding,n.width=r.width=a?n.maxWidth:e,n.height=r.height=a?e:n.maxHeight):n.width=r.width=n.height=r.height=0},afterFit:ia,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=t.options;if(n.display){var i,r,a,o=ut.options._parseFont(n),s=o.lineHeight,c=s/2+n.padding,l=0,u=t.top,h=t.left,d=t.bottom,f=t.right;e.fillStyle=ut.valueOrDefault(n.fontColor,J.global.defaultFontColor),e.font=o.string,t.isHorizontal()?(r=h+(f-h)/2,a=u+c,i=f-h):(r="left"===n.position?h+c:f-c,a=u+(d-u)/2,i=d-u,l=Math.PI*("left"===n.position?-.5:.5)),e.save(),e.translate(r,a),e.rotate(l),e.textAlign="center",e.textBaseline="middle";var p=n.text;if(ut.isArray(p))for(var v=0,g=0;g=31||"undefined"!==typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function r(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;e.splice(1,0,n,"color: inherit");let i=0,r=0;e[0].replace(/%[a-zA-Z%]/g,t=>{"%%"!==t&&(i++,"%c"===t&&(r=i))}),e.splice(r,0,n)}function a(t){try{t?e.storage.setItem("debug",t):e.storage.removeItem("debug")}catch(n){}}function o(){let t;try{t=e.storage.getItem("debug")}catch(n){}return!t&&"undefined"!==typeof process&&"env"in process&&(t=Object({NODE_ENV:"production",VUE_APP_I18N_LOCALE:"en",VUE_APP_I18N_FALLBACK_LOCALE:"en",BASE_URL:"/",VERSION:"0.1.1"}).DEBUG),t}function s(){try{return localStorage}catch(t){}}e.formatArgs=r,e.save=a,e.load=o,e.useColors=i,e.storage=s(),e.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],e.log=console.debug||console.log||(()=>{}),t.exports=n("dc90")(e);const{formatters:c}=t.exports;c.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},"34ef":function(t,e,n){"use strict";var i=n("cc20");e["a"]=i["a"]},"35a1":function(t,e,n){var i=n("f5df"),r=n("3f8c"),a=n("b622"),o=a("iterator");t.exports=function(t){if(void 0!=t)return t[o]||t["@@iterator"]||r[i(t)]}},"368e":function(t,e,n){},"36a7":function(t,e,n){},"37e8":function(t,e,n){var i=n("83ab"),r=n("9bf2"),a=n("825a"),o=n("df75");t.exports=i?Object.defineProperties:function(t,e){a(t);var n,i=o(e),s=i.length,c=0;while(s>c)r.f(t,n=i[c++],e[n]);return t}},3835:function(t,e,n){"use strict";function i(t){if(Array.isArray(t))return t}n.d(e,"a",(function(){return s}));n("a4d3"),n("e01a"),n("d3b7"),n("d28b"),n("3ca3"),n("ddb0");function r(t,e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t)){var n=[],i=!0,r=!1,a=void 0;try{for(var o,s=t[Symbol.iterator]();!(i=(o=s.next()).done);i=!0)if(n.push(o.value),e&&n.length===e)break}catch(c){r=!0,a=c}finally{try{i||null==s["return"]||s["return"]()}finally{if(r)throw a}}return n}}var a=n("06c5");function o(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(t,e){return i(t)||r(t,e)||Object(a["a"])(t,e)||o()}},"38cb":function(t,e,n){"use strict";var i=n("53ca"),r=(n("a9e3"),n("fb6a"),n("a9ad")),a=n("7560"),o=n("3206"),s=n("80d2"),c=n("d9bd"),l=n("58df"),u=Object(l["a"])(r["a"],Object(o["a"])("form"),a["a"]);e["a"]=u.extend({name:"validatable",props:{disabled:Boolean,error:Boolean,errorCount:{type:[Number,String],default:1},errorMessages:{type:[String,Array],default:function(){return[]}},messages:{type:[String,Array],default:function(){return[]}},readonly:Boolean,rules:{type:Array,default:function(){return[]}},success:Boolean,successMessages:{type:[String,Array],default:function(){return[]}},validateOnBlur:Boolean,value:{required:!1}},data:function(){return{errorBucket:[],hasColor:!1,hasFocused:!1,hasInput:!1,isFocused:!1,isResetting:!1,lazyValue:this.value,valid:!1}},computed:{computedColor:function(){if(!this.isDisabled)return this.color?this.color:this.isDark&&!this.appIsDark?"white":"primary"},hasError:function(){return this.internalErrorMessages.length>0||this.errorBucket.length>0||this.error},hasSuccess:function(){return this.internalSuccessMessages.length>0||this.success},externalError:function(){return this.internalErrorMessages.length>0||this.error},hasMessages:function(){return this.validationTarget.length>0},hasState:function(){return!this.isDisabled&&(this.hasSuccess||this.shouldValidate&&this.hasError)},internalErrorMessages:function(){return this.genInternalMessages(this.errorMessages)},internalMessages:function(){return this.genInternalMessages(this.messages)},internalSuccessMessages:function(){return this.genInternalMessages(this.successMessages)},internalValue:{get:function(){return this.lazyValue},set:function(t){this.lazyValue=t,this.$emit("input",t)}},isDisabled:function(){return this.disabled||!!this.form&&this.form.disabled},isInteractive:function(){return!this.isDisabled&&!this.isReadonly},isReadonly:function(){return this.readonly||!!this.form&&this.form.readonly},shouldValidate:function(){return!!this.externalError||!this.isResetting&&(this.validateOnBlur?this.hasFocused&&!this.isFocused:this.hasInput||this.hasFocused)},validations:function(){return this.validationTarget.slice(0,Number(this.errorCount))},validationState:function(){if(!this.isDisabled)return this.hasError&&this.shouldValidate?"error":this.hasSuccess?"success":this.hasColor?this.computedColor:void 0},validationTarget:function(){return this.internalErrorMessages.length>0?this.internalErrorMessages:this.successMessages&&this.successMessages.length>0?this.internalSuccessMessages:this.messages&&this.messages.length>0?this.internalMessages:this.shouldValidate?this.errorBucket:[]}},watch:{rules:{handler:function(t,e){Object(s["i"])(t,e)||this.validate()},deep:!0},internalValue:function(){this.hasInput=!0,this.validateOnBlur||this.$nextTick(this.validate)},isFocused:function(t){t||this.isDisabled||(this.hasFocused=!0,this.validateOnBlur&&this.$nextTick(this.validate))},isResetting:function(){var t=this;setTimeout((function(){t.hasInput=!1,t.hasFocused=!1,t.isResetting=!1,t.validate()}),0)},hasError:function(t){this.shouldValidate&&this.$emit("update:error",t)},value:function(t){this.lazyValue=t}},beforeMount:function(){this.validate()},created:function(){this.form&&this.form.register(this)},beforeDestroy:function(){this.form&&this.form.unregister(this)},methods:{genInternalMessages:function(t){return t?Array.isArray(t)?t:[t]:[]},reset:function(){this.isResetting=!0,this.internalValue=Array.isArray(this.internalValue)?[]:null},resetValidation:function(){this.isResetting=!0},validate:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1?arguments[1]:void 0,n=[];e=e||this.internalValue,t&&(this.hasInput=this.hasFocused=!0);for(var r=0;r'",this)},methods:{activate:function(){this.updateDimensions(),requestAnimationFrame(this.startTransition)},deactivate:function(){this.runDelay("close")},genActivatorListeners:function(){var t=this,e=r["a"].options.methods.genActivatorListeners.call(this);return e.focus=function(e){t.getActivator(e),t.runDelay("open")},e.blur=function(e){t.getActivator(e),t.runDelay("close")},e.keydown=function(e){e.keyCode===h["w"].esc&&(t.getActivator(e),t.runDelay("close"))},e},genActivatorAttributes:function(){return{"aria-haspopup":!0,"aria-expanded":String(this.isActive)}},genTransition:function(){var t=this.genContent();return this.computedTransition?this.$createElement("transition",{props:{name:this.computedTransition}},[t]):t},genContent:function(){var t;return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-tooltip__content",class:(t={},Object(i["a"])(t,this.contentClass,!0),Object(i["a"])(t,"menuable__content__active",this.isActive),Object(i["a"])(t,"v-tooltip__content--fixed",this.activatorFixed),t),style:this.styles,attrs:this.getScopeIdAttrs(),directives:[{name:"show",value:this.isContentActive}],ref:"content"}),this.getContentSlot())}},render:function(t){var e=this;return t(this.tag,{staticClass:"v-tooltip",class:this.classes},[this.showLazyContent((function(){return[e.genTransition()]})),this.genActivator()])}})},"3a66":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var i=n("fe6c"),r=n("58df");function a(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object(r["a"])(Object(i["b"])(["absolute","fixed"])).extend({name:"applicationable",props:{app:Boolean},computed:{applicationProperty:function(){return t}},watch:{app:function(t,e){e?this.removeApplication(!0):this.callUpdate()},applicationProperty:function(t,e){this.$vuetify.application.unregister(this._uid,e)}},activated:function(){this.callUpdate()},created:function(){for(var t=0,n=e.length;t0&&void 0!==arguments[0]&&arguments[0];(t||this.app)&&this.$vuetify.application.unregister(this._uid,this.applicationProperty)},updateApplication:function(){return 0}}})}},"3ad0":function(t,e,n){},"3bbe":function(t,e,n){var i=n("861d");t.exports=function(t){if(!i(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},"3c93":function(t,e,n){},"3ca3":function(t,e,n){"use strict";var i=n("6547").charAt,r=n("69f3"),a=n("7dd0"),o="String Iterator",s=r.set,c=r.getterFor(o);a(String,"String",(function(t){s(this,{type:o,string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,r=e.index;return r>=n.length?{value:void 0,done:!0}:(t=i(n,r),e.index+=t.length,{value:t,done:!1})}))},"3d54":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Manager=void 0;const i=n("94ac"),r=n("7851"),a=n("8205"),o=n("072b"),s=n("0b64"),c=n("e13a"),l=n("34eb")("socket.io-client:manager");class u extends c.StrictEventEmitter{constructor(t,e){super(),this.nsps={},this.subs=[],t&&"object"===typeof t&&(e=t,t=void 0),e=e||{},e.path=e.path||"/socket.io",this.opts=e,this.reconnection(!1!==e.reconnection),this.reconnectionAttempts(e.reconnectionAttempts||1/0),this.reconnectionDelay(e.reconnectionDelay||1e3),this.reconnectionDelayMax(e.reconnectionDelayMax||5e3),this.randomizationFactor(e.randomizationFactor||.5),this.backoff=new s({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==e.timeout?2e4:e.timeout),this._readyState="closed",this.uri=t;const n=e.parser||a;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this._autoConnect=!1!==e.autoConnect,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,this):this._reconnection}reconnectionAttempts(t){return void 0===t?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var e;return void 0===t?this._reconnectionDelay:(this._reconnectionDelay=t,null===(e=this.backoff)||void 0===e||e.setMin(t),this)}randomizationFactor(t){var e;return void 0===t?this._randomizationFactor:(this._randomizationFactor=t,null===(e=this.backoff)||void 0===e||e.setJitter(t),this)}reconnectionDelayMax(t){var e;return void 0===t?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,null===(e=this.backoff)||void 0===e||e.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(t){if(l("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;l("opening %s",this.uri),this.engine=i(this.uri,this.opts);const e=this.engine,n=this;this._readyState="opening",this.skipReconnect=!1;const r=o.on(e,"open",(function(){n.onopen(),t&&t()})),a=o.on(e,"error",e=>{l("error"),n.cleanup(),n._readyState="closed",this.emitReserved("error",e),t?t(e):n.maybeReconnectOnOpen()});if(!1!==this._timeout){const t=this._timeout;l("connect attempt will timeout after %d",t),0===t&&r();const n=setTimeout(()=>{l("connect attempt timed out after %d",t),r(),e.close(),e.emit("error",new Error("timeout"))},t);this.opts.autoUnref&&n.unref(),this.subs.push((function(){clearTimeout(n)}))}return this.subs.push(r),this.subs.push(a),this}connect(t){return this.open(t)}onopen(){l("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(o.on(t,"ping",this.onping.bind(this)),o.on(t,"data",this.ondata.bind(this)),o.on(t,"error",this.onerror.bind(this)),o.on(t,"close",this.onclose.bind(this)),o.on(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){this.decoder.add(t)}ondecoded(t){this.emitReserved("packet",t)}onerror(t){l("error",t),this.emitReserved("error",t)}socket(t,e){let n=this.nsps[t];return n||(n=new r.Socket(this,t,e),this.nsps[t]=n),n}_destroy(t){const e=Object.keys(this.nsps);for(const n of e){const t=this.nsps[n];if(t.active)return void l("socket %s is still active, skipping close",n)}this._close()}_packet(t){l("writing packet %j",t);const e=this.encoder.encode(t);for(let n=0;nt()),this.subs.length=0,this.decoder.destroy()}_close(){l("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,"opening"===this._readyState&&this.cleanup(),this.backoff.reset(),this._readyState="closed",this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(t){l("onclose"),this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)l("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const e=this.backoff.duration();l("will wait %dms before reconnect attempt",e),this._reconnecting=!0;const n=setTimeout(()=>{t.skipReconnect||(l("attempting reconnect"),this.emitReserved("reconnect_attempt",t.backoff.attempts),t.skipReconnect||t.open(e=>{e?(l("reconnect attempt error"),t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",e)):(l("reconnect success"),t.onreconnect())}))},e);this.opts.autoUnref&&n.unref(),this.subs.push((function(){clearTimeout(n)}))}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}e.Manager=u},"3ea3":function(t,e,n){var i=n("23e7"),r=n("f748"),a=Math.abs,o=Math.pow;i({target:"Math",stat:!0},{cbrt:function(t){return r(t=+t)*o(a(t),1/3)}})},"3f8c":function(t,e){t.exports={}},"408a":function(t,e,n){var i=n("c6b6");t.exports=function(t){if("number"!=typeof t&&"Number"!=i(t))throw TypeError("Incorrect invocation");return+t}},"40dc":function(t,e,n){"use strict";var i=n("5530"),r=(n("c7cd"),n("a9e3"),n("8b0d"),n("71d9")),a=n("53ca");function o(t,e){var n=e.modifiers||{},i=n.self,r=void 0!==i&&i,o=e.value,s="object"===Object(a["a"])(o)&&o.options||{passive:!0},c="function"===typeof o||"handleEvent"in o?o:o.handler,l=r?t:e.arg?document.querySelector(e.arg):window;l&&(l.addEventListener("scroll",c,s),t._onScroll={handler:c,options:s,target:r?void 0:l})}function s(t){if(t._onScroll){var e=t._onScroll,n=e.handler,i=e.options,r=e.target,a=void 0===r?t:r;a.removeEventListener("scroll",n,i),delete t._onScroll}}var c={inserted:o,unbind:s},l=c,u=n("3a66"),h=n("d9bd"),d=n("2b0e"),f=d["a"].extend({name:"scrollable",directives:{Scroll:c},props:{scrollTarget:String,scrollThreshold:[String,Number]},data:function(){return{currentScroll:0,currentThreshold:0,isActive:!1,isScrollingUp:!1,previousScroll:0,savedScroll:0,target:null}},computed:{canScroll:function(){return"undefined"!==typeof window},computedScrollThreshold:function(){return this.scrollThreshold?Number(this.scrollThreshold):300}},watch:{isScrollingUp:function(){this.savedScroll=this.savedScroll||this.currentScroll},isActive:function(){this.savedScroll=0}},mounted:function(){this.scrollTarget&&(this.target=document.querySelector(this.scrollTarget),this.target||Object(h["c"])("Unable to locate element with identifier ".concat(this.scrollTarget),this))},methods:{onScroll:function(){var t=this;this.canScroll&&(this.previousScroll=this.currentScroll,this.currentScroll=this.target?this.target.scrollTop:window.pageYOffset,this.isScrollingUp=this.currentScrollt.computedScrollThreshold&&t.thresholdMet()})))},thresholdMet:function(){}}}),p=n("d10f"),v=n("f2e7"),g=n("80d2"),m=n("58df"),b=Object(m["a"])(r["a"],f,p["a"],v["a"],Object(u["a"])("top",["clippedLeft","clippedRight","computedHeight","invertedScroll","isExtended","isProminent","value"]));e["a"]=b.extend({name:"v-app-bar",directives:{Scroll:l},provide:function(){return{VAppBar:this}},props:{clippedLeft:Boolean,clippedRight:Boolean,collapseOnScroll:Boolean,elevateOnScroll:Boolean,fadeImgOnScroll:Boolean,hideOnScroll:Boolean,invertedScroll:Boolean,scrollOffScreen:Boolean,shrinkOnScroll:Boolean,value:{type:Boolean,default:!0}},data:function(){return{isActive:this.value}},computed:{applicationProperty:function(){return this.bottom?"bottom":"top"},canScroll:function(){return f.options.computed.canScroll.call(this)&&(this.invertedScroll||this.elevateOnScroll||this.hideOnScroll||this.collapseOnScroll||this.isBooted||!this.value)},classes:function(){return Object(i["a"])(Object(i["a"])({},r["a"].options.computed.classes.call(this)),{},{"v-toolbar--collapse":this.collapse||this.collapseOnScroll,"v-app-bar":!0,"v-app-bar--clipped":this.clippedLeft||this.clippedRight,"v-app-bar--fade-img-on-scroll":this.fadeImgOnScroll,"v-app-bar--elevate-on-scroll":this.elevateOnScroll,"v-app-bar--fixed":!this.absolute&&(this.app||this.fixed),"v-app-bar--hide-shadow":this.hideShadow,"v-app-bar--is-scrolled":this.currentScroll>0,"v-app-bar--shrink-on-scroll":this.shrinkOnScroll})},scrollRatio:function(){var t=this.computedScrollThreshold;return Math.max((t-this.currentScroll)/t,0)},computedContentHeight:function(){if(!this.shrinkOnScroll)return r["a"].options.computed.computedContentHeight.call(this);var t=this.dense?48:56,e=this.computedOriginalHeight;return t+(e-t)*this.scrollRatio},computedFontSize:function(){if(this.isProminent){var t=1.25,e=1.5;return t+(e-t)*this.scrollRatio}},computedLeft:function(){return!this.app||this.clippedLeft?0:this.$vuetify.application.left},computedMarginTop:function(){return this.app?this.$vuetify.application.bar:0},computedOpacity:function(){if(this.fadeImgOnScroll)return this.scrollRatio},computedOriginalHeight:function(){var t=r["a"].options.computed.computedContentHeight.call(this);return this.isExtended&&(t+=parseInt(this.extensionHeight)),t},computedRight:function(){return!this.app||this.clippedRight?0:this.$vuetify.application.right},computedScrollThreshold:function(){return this.scrollThreshold?Number(this.scrollThreshold):this.computedOriginalHeight-(this.dense?48:56)},computedTransform:function(){if(!this.canScroll||this.elevateOnScroll&&0===this.currentScroll&&this.isActive)return 0;if(this.isActive)return 0;var t=this.scrollOffScreen?this.computedHeight:this.computedContentHeight;return this.bottom?t:-t},hideShadow:function(){return this.elevateOnScroll&&this.isExtended?this.currentScroll0:r["a"].options.computed.isCollapsed.call(this)},isProminent:function(){return r["a"].options.computed.isProminent.call(this)||this.shrinkOnScroll},styles:function(){return Object(i["a"])(Object(i["a"])({},r["a"].options.computed.styles.call(this)),{},{fontSize:Object(g["g"])(this.computedFontSize,"rem"),marginTop:Object(g["g"])(this.computedMarginTop),transform:"translateY(".concat(Object(g["g"])(this.computedTransform),")"),left:Object(g["g"])(this.computedLeft),right:Object(g["g"])(this.computedRight)})}},watch:{canScroll:"onScroll",computedTransform:function(){this.canScroll&&(this.clippedLeft||this.clippedRight)&&this.callUpdate()},invertedScroll:function(t){this.isActive=!t||0!==this.currentScroll}},created:function(){this.invertedScroll&&(this.isActive=!1)},methods:{genBackground:function(){var t=r["a"].options.methods.genBackground.call(this);return t.data=this._b(t.data||{},t.tag,{style:{opacity:this.computedOpacity}}),t},updateApplication:function(){return this.invertedScroll?0:this.computedHeight+this.computedTransform},thresholdMet:function(){this.invertedScroll?this.isActive=this.currentScroll>this.computedScrollThreshold:(this.hideOnScroll&&(this.isActive=this.isScrollingUp||this.currentScroll100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(r["g"])(this.calculatedSize),width:Object(r["g"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}})},4930:function(t,e,n){var i=n("605d"),r=n("2d00"),a=n("d039");t.exports=!!Object.getOwnPropertySymbols&&!a((function(){return!Symbol.sham&&(i?38===r:r>37&&r<41)}))},"495d":function(t,e,n){},"498a":function(t,e,n){"use strict";var i=n("23e7"),r=n("58a8").trim,a=n("c8d2");i({target:"String",proto:!0,forced:a("trim")},{trim:function(){return r(this)}})},"4ad4":function(t,e,n){"use strict";var i=n("53ca"),r=(n("caad"),n("b64b"),n("b0c0"),n("16b7")),a=n("f2e7"),o=n("58df"),s=n("80d2"),c=n("d9bd"),l=Object(o["a"])(r["a"],a["a"]);e["a"]=l.extend({name:"activatable",props:{activator:{default:null,validator:function(t){return["string","object"].includes(Object(i["a"])(t))}},disabled:Boolean,internalActivator:Boolean,openOnHover:Boolean,openOnFocus:Boolean},data:function(){return{activatorElement:null,activatorNode:[],events:["click","mouseenter","mouseleave","focus"],listeners:{}}},watch:{activator:"resetActivator",openOnFocus:"resetActivator",openOnHover:"resetActivator"},mounted:function(){var t=Object(s["s"])(this,"activator",!0);t&&["v-slot","normal"].includes(t)&&Object(c["b"])('The activator slot must be bound, try \'