UNPKG

@nopwdio/sdk-js

Version:
37 lines (31 loc) 2.08 kB
import{a as d}from"../chunk-HHPIKOXT.js";import{a as m,b as u}from"../chunk-325E7D5T.js";import{a as c,b as s,d as p,e as l,f as a}from"../chunk-X5RZB7NH.js";import{a as o}from"../chunk-JFKSI6I7.js";var h=c` :host { display: flex; gap: var(--np-component-padding); overflow-x: scroll; } :host::-webkit-scrollbar { display: none; } span { border-radius: var(--np-component-border-radius); min-width: var(--np-component-font-size); min-height: var(--np-component-font-size); flex: 1; } span.down { background-color: var(--np-core-color-red-m); } span.nodata { background-color: var(--np-core-color-grey-xs); } span.disrupted { background-color: var(--np-core-color-orange-m); } span.operational { background-color: var(--np-core-color-green-m); } span.operational:nth-child(1) { animation: glow var(--np-core-animation-duration-xl) ease-in-out infinite alternate; } `;var e=class extends p{constructor(){super(...arguments);this.statuses=[];this.limit=30}render(){return s`${this.statuses.length===0?s``:this.statuses.map(t=>t.success_count===0&&t.error_count===0?s`<span class="nodata"></span>`:t.success_count===0?s`<span class="down"></span>`:t.error_count>0?s`<span class="disrupted"></span>`:s`<span class="operational"></span>`)}`}connectedCallback(){super.connectedCallback(),this.connect()}async connect(){let t="wss://ws-a5hdgaocga-uc.a.run.app",r=this.getAttribute("scope"),f=r===null?`${t}/status?limit=${this.limit}`:`${t}/status/${r}?limit=${this.limit}`,i=new WebSocket(f);i.onmessage=g=>{let n=JSON.parse(g.data);if(this.statuses.length===0){this.statuses.unshift(n),this.requestUpdate();return}this.statuses[0].day_id===n.day_id?(this.statuses[0]=n,this.requestUpdate()):(this.statuses.unshift(n),this.requestUpdate())},i.onclose=async()=>{this.statuses=[],this.isConnected&&(await d(1e3),this.connect())}}};e.styles=[m,u,h],o([a({type:Array})],e.prototype,"statuses",2),o([a({type:Number})],e.prototype,"limit",2),e=o([l("np-status-history")],e);export{e as NpStatusHistory};