@atlar-widgets/rasor-components-status 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.iife.js +2 -2
- package/package.json +1 -1
package/dist/index.iife.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode('.
|
|
1
|
+
(function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode('._container_57e3t_3{--bg: var(--bg-color, #fff);--surface: var(--widget-bg, #fafafa);--panel-bg: var(--card-bg, #fff);--border: var(--widget-border, #e0e0e0);--text: var(--text-color, #1a1a1a);--muted: var(--text-secondary, #666);--title-color: var(--widget-title, #333);--accent: var(--accent-color, #0077cc);--hover: var(--hover-color, #f0f0f0);--radius: 8px;--c-idle: #2e7d32;--c-running: #1565c0;--c-error: #c62828;--c-warning: #e65100;--c-init: #6d4fc2;--c-waiting: #b26a00;--c-offline: #757575;--c-stale: #8d6e63;--c-unknown: #757575;background:var(--bg);block-size:100%;border-radius:16px;color:var(--text);container-type:inline-size;display:flex;font-family:IBM Plex Sans,"Source Sans 3",Segoe UI,sans-serif;flex-direction:column;gap:0;inline-size:100%;min-block-size:0;min-inline-size:0;overflow:hidden;padding:12px;position:relative;box-sizing:border-box}@media(prefers-color-scheme:dark){._container_57e3t_3{--c-idle: #81c784;--c-running: #64b5f6;--c-error: #ef9a9a;--c-warning: #ffb74d;--c-init: #b39ddb;--c-waiting: #ffcc80;--c-offline: #bdbdbd;--c-stale: #bcaaa4;--c-unknown: #bdbdbd}}._header_57e3t_61{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-shrink:0;flex-wrap:wrap;padding-inline-start:28px}._title_57e3t_73{font-size:14px;font-weight:600;color:var(--title-color);margin:0;letter-spacing:.01em}._componentCount_57e3t_81{display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);border-radius:10px;font-size:11px;font-weight:600;min-width:20px;height:18px;padding:0 6px}._summary_57e3t_97{display:flex;align-items:center;gap:4px;margin-inline-start:auto;flex-wrap:wrap}._summaryChip_57e3t_105{display:inline-flex;align-items:center;gap:4px;border-radius:9px;font-size:10px;font-weight:600;font-variant-numeric:tabular-nums;height:18px;padding:0 7px;color:var(--status-color, var(--muted));background:color-mix(in srgb,var(--status-color, var(--muted)) 12%,transparent)}._summaryDot_57e3t_119{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}._grid_57e3t_129{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-auto-rows:min-content;align-content:start;overflow-y:auto;flex:1;min-height:0;padding-right:2px}@container (max-width: 359px){._header_57e3t_61{margin-bottom:8px}._grid_57e3t_129{grid-template-columns:1fr;gap:6px}._componentCard_57e3t_151{padding:8px 10px}}@container (min-width: 720px){._grid_57e3t_129{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}}._container_57e3t_3 [data-status=idle]{--status-color: var(--c-idle)}._container_57e3t_3 [data-status=running]{--status-color: var(--c-running)}._container_57e3t_3 [data-status=error]{--status-color: var(--c-error)}._container_57e3t_3 [data-status=warning]{--status-color: var(--c-warning)}._container_57e3t_3 [data-status=init]{--status-color: var(--c-init)}._container_57e3t_3 [data-status=waiting]{--status-color: var(--c-waiting)}._container_57e3t_3 [data-status=offline]{--status-color: var(--c-offline)}._container_57e3t_3 [data-status=stale]{--status-color: var(--c-stale)}._container_57e3t_3 [data-status=unknown]{--status-color: var(--c-unknown)}._componentCard_57e3t_151{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:6px;padding:10px 12px;position:relative;transition:box-shadow .15s ease;overflow:hidden}._componentCard_57e3t_151:hover{box-shadow:0 2px 12px #00000014}._infoBtn_57e3t_223{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:color-mix(in srgb,var(--muted) 75%,transparent);cursor:pointer;padding:3px;line-height:1;transition:color .12s ease,background .12s ease}._infoBtn_57e3t_223:hover{background:var(--hover);color:var(--accent)}._infoBtn_57e3t_223:focus-visible{outline:2px solid var(--accent);outline-offset:1px}._componentCard_57e3t_151[data-status=stale],._componentCard_57e3t_151[data-status=offline]{background:color-mix(in srgb,var(--panel-bg) 60%,var(--surface))}._componentCard_57e3t_151[data-status=stale] ._componentName_57e3t_253,._componentCard_57e3t_151[data-status=offline] ._componentName_57e3t_253{color:var(--muted)}._componentCard_57e3t_151:before{content:"";position:absolute;inset-inline-start:0;inset-block:0;width:3px;border-radius:var(--radius) 0 0 var(--radius);background:var(--status-color, var(--border));opacity:.75;transition:background .2s ease}._cardHeader_57e3t_273{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}._componentName_57e3t_253{font-size:12px;font-weight:600;color:var(--text);line-height:1.3;word-break:break-word;flex:1;min-width:0}._statusBadge_57e3t_292{display:inline-flex;align-items:center;gap:4px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 5px;white-space:nowrap;flex-shrink:0;max-width:45%;overflow:hidden;text-overflow:ellipsis;color:var(--status-color, var(--muted));background:color-mix(in srgb,var(--status-color, var(--muted)) 13%,transparent)}._statusBadge_57e3t_292:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}._statusBadge_57e3t_292[data-status=running]{animation:_runningPulse_57e3t_1 2s ease-in-out infinite}._cardBody_57e3t_325{display:flex;align-items:baseline;column-gap:8px;row-gap:3px;flex-wrap:wrap}._lastSeen_57e3t_333{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}._lastSeen_57e3t_333[data-stale]{color:var(--c-warning);font-weight:600}._hostLabel_57e3t_344{font-size:10px;color:color-mix(in srgb,var(--muted) 70%,transparent);font-family:IBM Plex Mono,Fira Code,monospace}._cardFooter_57e3t_352{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto;padding-top:2px}._pingBtn_57e3t_365{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--muted);cursor:pointer;font-size:11px;padding:3px 6px;transition:background .12s ease,color .12s ease,border-color .12s ease;line-height:1}._pingBtn_57e3t_365:hover:not(:disabled){background:var(--hover);color:var(--accent);border-color:var(--accent)}._pingBtn_57e3t_365:focus-visible{outline:2px solid var(--accent);outline-offset:1px}._pingBtn_57e3t_365:disabled{cursor:default;opacity:.7}._pingBtn_57e3t_365 svg{flex-shrink:0}._pinging_57e3t_400 svg{animation:_pingRotate_57e3t_1 1s linear infinite}._ttlChip_57e3t_404{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}._pingFailChip_57e3t_410{color:var(--c-error);font-weight:600}._skeleton_57e3t_417{animation:_skeletonPulse_57e3t_1 1.2s ease-in-out infinite;background:linear-gradient(90deg,color-mix(in srgb,var(--hover) 85%,transparent) 25%,color-mix(in srgb,var(--surface) 100%,white),color-mix(in srgb,var(--hover) 85%,transparent) 75%);background-size:250% 100%;border-radius:6px}._skeletonTitle_57e3t_429{height:18px;width:120px}._skeletonCard_57e3t_434{min-height:90px}._skeletonLine_57e3t_438{height:12px;width:100%;margin-bottom:6px}._skeletonLineShort_57e3t_444{height:10px;width:60%}._errorState_57e3t_451{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;flex:1;padding:24px;color:var(--c-error);font-size:13px;text-align:center}._errorMessage_57e3t_464{max-width:40ch;line-height:1.4}._retryBtn_57e3t_469{background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px;transition:background .12s ease,border-color .12s ease}._retryBtn_57e3t_469:hover{background:var(--hover);border-color:var(--accent)}._emptyState_57e3t_486{display:flex;align-items:center;justify-content:center;flex:1;color:var(--muted);font-size:13px}@keyframes _skeletonPulse_57e3t_1{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes _runningPulse_57e3t_1{0%,to{opacity:1}50%{opacity:.7}}@keyframes _pingRotate_57e3t_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){._skeleton_57e3t_417,._statusBadge_57e3t_292[data-status=running],._pinging_57e3t_400 svg{animation:none;transition:none}}')),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
2
|
var ScheduleStateWidget=(function(Ye,C,Ln){"use strict";function Fn(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}return e.default=t,Object.freeze(e)}function Mn(t,e){for(var r=0;r<e.length;r++){const n=e[r];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in t)){const o=Object.getOwnPropertyDescriptor(n,i);o&&Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}const Un=Fn(Ln);function Bn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var He=function(t,e){return He=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=n[i])},He(t,e)};function We(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");He(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}var b=function(){return b=Object.assign||function(e){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},b.apply(this,arguments)};function Se(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]]);return r}function Z(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,o;n<i;n++)(o||!(n in e))&&(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return t.concat(o||Array.prototype.slice.call(e))}typeof SuppressedError=="function"&&SuppressedError;var $e="Invariant Violation",Ft=Object.setPrototypeOf,jn=Ft===void 0?function(t,e){return t.__proto__=e,t}:Ft,Mt=(function(t){We(e,t);function e(r){r===void 0&&(r=$e);var n=t.call(this,typeof r=="number"?$e+": "+r+" (see https://github.com/apollographql/invariant-packages)":r)||this;return n.framesToPop=1,n.name=$e,jn(n,e.prototype),n}return e})(Error);function J(t,e){if(!t)throw new Mt(e)}var Ut=["debug","log","warn","error","silent"],Vn=Ut.indexOf("log");function Ae(t){return function(){if(Ut.indexOf(t)>=Vn){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=Ae("debug"),t.log=Ae("log"),t.warn=Ae("warn"),t.error=Ae("error")})(J||(J={}));var Bt="3.14.1";function z(t){try{return t()}catch{}}const Ie=z(function(){return globalThis})||z(function(){return window})||z(function(){return self})||z(function(){return global})||z(function(){return z.constructor("return this")()});var jt=new Map;function qn(t){var e=jt.get(t)||1;return jt.set(t,e+1),"".concat(t,":").concat(e,":").concat(Math.random().toString(36).slice(2))}function Qn(t,e){var r=qn("stringifyForDisplay");return JSON.stringify(t,function(n,i){return i===void 0?r:i},e).split(JSON.stringify(r)).join("<undefined>")}function Ce(t){return function(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];if(typeof e=="number"){var i=e;e=Xe(i),e||(e=Ke(i,r),r=[])}t.apply(void 0,[e].concat(r))}}var N=Object.assign(function(e,r){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];e||J(e,Xe(r,n)||Ke(r,n))},{debug:Ce(J.debug),log:Ce(J.log),warn:Ce(J.warn),error:Ce(J.error)});function Vt(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return new Mt(Xe(t,e)||Ke(t,e))}var qt=Symbol.for("ApolloErrorMessageHandler_"+Bt);function Qt(t){if(typeof t=="string")return t;try{return Qn(t,2).slice(0,1e3)}catch{return"<non-serializable>"}}function Xe(t,e){if(e===void 0&&(e=[]),!!t)return Ie[qt]&&Ie[qt](t,e.map(Qt))}function Ke(t,e){if(e===void 0&&(e=[]),!!t)return"An error occurred! For more details, see the full error text at https://go.apollo.dev/c/err#".concat(encodeURIComponent(JSON.stringify({version:Bt,message:t,args:e.map(Qt)})))}function Ze(t,e){if(!!!t)throw new Error(e)}function zn(t){return typeof t=="object"&&t!==null}function Gn(t,e){if(!!!t)throw new Error("Unexpected invariant triggered.")}const Yn=/\r\n|[\n\r]/g;function Je(t,e){let r=0,n=1;for(const i of t.body.matchAll(Yn)){if(typeof i.index=="number"||Gn(!1),i.index>=e)break;r=i.index+i[0].length,n+=1}return{line:n,column:e+1-r}}function Hn(t){return zt(t.source,Je(t.source,t.start))}function zt(t,e){const r=t.locationOffset.column-1,n="".padStart(r)+t.body,i=e.line-1,o=t.locationOffset.line-1,a=e.line+o,s=e.line===1?r:0,c=e.column+s,l=`${t.name}:${a}:${c}
|
|
3
3
|
`,f=n.split(/\r\n|[\n\r]/g),h=f[i];if(h.length>120){const p=Math.floor(c/80),y=c%80,m=[];for(let T=0;T<h.length;T+=80)m.push(h.slice(T,T+80));return l+Gt([[`${a} |`,m[0]],...m.slice(1,p+1).map(T=>["|",T]),["|","^".padStart(y)],["|",m[p+1]]])}return l+Gt([[`${a-1} |`,f[i-1]],[`${a} |`,h],["|","^".padStart(c)],[`${a+1} |`,f[i+1]]])}function Gt(t){const e=t.filter(([n,i])=>i!==void 0),r=Math.max(...e.map(([n])=>n.length));return e.map(([n,i])=>n.padStart(r)+(i?" "+i:"")).join(`
|
|
4
4
|
`)}function Wn(t){const e=t[0];return e==null||"kind"in e||"length"in e?{nodes:e,source:t[1],positions:t[2],path:t[3],originalError:t[4],extensions:t[5]}:e}class et extends Error{constructor(e,...r){var n,i,o;const{nodes:a,source:s,positions:c,path:l,originalError:f,extensions:h}=Wn(r);super(e),this.name="GraphQLError",this.path=l!=null?l:void 0,this.originalError=f!=null?f:void 0,this.nodes=Yt(Array.isArray(a)?a:a?[a]:void 0);const p=Yt((n=this.nodes)===null||n===void 0?void 0:n.map(m=>m.loc).filter(m=>m!=null));this.source=s!=null?s:p==null||(i=p[0])===null||i===void 0?void 0:i.source,this.positions=c!=null?c:p==null?void 0:p.map(m=>m.start),this.locations=c&&s?c.map(m=>Je(s,m)):p==null?void 0:p.map(m=>Je(m.source,m.start));const y=zn(f==null?void 0:f.extensions)?f==null?void 0:f.extensions:void 0;this.extensions=(o=h!=null?h:y)!==null&&o!==void 0?o:Object.create(null),Object.defineProperties(this,{message:{writable:!0,enumerable:!0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),f!=null&&f.stack?Object.defineProperty(this,"stack",{value:f.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,et):Object.defineProperty(this,"stack",{value:Error().stack,writable:!0,configurable:!0})}get[Symbol.toStringTag](){return"GraphQLError"}toString(){let e=this.message;if(this.nodes)for(const r of this.nodes)r.loc&&(e+=`
|
|
@@ -662,5 +662,5 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):a
|
|
|
662
662
|
ttl
|
|
663
663
|
}
|
|
664
664
|
}
|
|
665
|
-
`,vs=12e4;function In(t){const e=(t!=null?t:"").toUpperCase();return e==="IDLE"?"idle":e==="RUNNING"||e==="BUSY"||e==="ACTIVE"?"running":e==="ERROR"||e==="FAULT"||e==="FAILED"?"error":e==="WARNING"||e==="DEGRADED"?"warning":e==="INIT"||e==="STARTING"?"init":e==="WAITING_DEPS"||e==="WAITING"?"waiting":e==="OFFLINE"||e==="DISCONNECTED"||e==="STOPPED"?"offline":"unknown"}function Pt(t,e,r){return Cn(e,r)?"stale":In(t)}function Cn(t,e){if(!t)return!0;const r=Date.parse(t);return isNaN(r)?!0:e-r>vs}const kn=["error","stale","offline","warning","waiting","init","running","idle","unknown"];function ze(t){const e=kn.indexOf(t);return e===-1?kn.length:e}const gs={idle:"Idle",running:"Running",error:"Error",warning:"Warning",init:"Init",waiting:"Waiting",offline:"Offline",stale:"Stale",unknown:"Unknown"};function Es(t,e){if(!t)return"—";const r=Date.parse(t);if(isNaN(r))return"—";const n=Math.max(0,e-r),i=Math.floor(n/1e3);if(i<10)return"just now";if(i<60)return`${i}s ago`;const o=Math.floor(i/60);if(o<60)return`${o}m ago`;const a=Math.floor(o/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function bs(t,e){if(!t)return"—";const r=Date.parse(t);if(isNaN(r)||r>e)return"—";const n=Math.floor((e-r)/1e3),i=Math.floor(n/86400),o=Math.floor(n%86400/3600),a=Math.floor(n%3600/60);return i>0?`${i}d ${o}h`:o>0?`${o}h ${a}m`:a>0?`${a}m`:`${n}s`}function xs(t){if(!t)return"—";const e=new Date(t);return isNaN(e.getTime())?"—":e.toLocaleString("en-GB",{year:"numeric",month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}const _={container:"_container_2hjmx_3",header:"_header_2hjmx_61",title:"_title_2hjmx_70",componentCount:"_componentCount_2hjmx_78",summary:"_summary_2hjmx_94",summaryChip:"_summaryChip_2hjmx_102",summaryDot:"_summaryDot_2hjmx_116",grid:"_grid_2hjmx_126",componentCard:"_componentCard_2hjmx_148",infoBtn:"_infoBtn_2hjmx_220",componentName:"_componentName_2hjmx_250",cardHeader:"_cardHeader_2hjmx_270",statusBadge:"_statusBadge_2hjmx_289",cardBody:"_cardBody_2hjmx_322",lastSeen:"_lastSeen_2hjmx_330",hostLabel:"_hostLabel_2hjmx_341",cardFooter:"_cardFooter_2hjmx_349",pingBtn:"_pingBtn_2hjmx_362",pinging:"_pinging_2hjmx_397",ttlChip:"_ttlChip_2hjmx_401",pingFailChip:"_pingFailChip_2hjmx_407",skeleton:"_skeleton_2hjmx_414",skeletonTitle:"_skeletonTitle_2hjmx_426",skeletonCard:"_skeletonCard_2hjmx_431",skeletonLine:"_skeletonLine_2hjmx_435",skeletonLineShort:"_skeletonLineShort_2hjmx_441",errorState:"_errorState_2hjmx_448",errorMessage:"_errorMessage_2hjmx_461",retryBtn:"_retryBtn_2hjmx_466",emptyState:"_emptyState_2hjmx_483"};function _s(t){return t.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())}const Ts=new Set(["status","ts","name","host","running_since","last_error"]);function Os(t){return t?Object.entries(t).filter(([e,r])=>!Ts.has(e)&&r!==null&&r!==void 0&&(typeof r=="string"||typeof r=="number"||typeof r=="boolean")).map(([e,r])=>[e.replace(/_/g," "),String(r)]):[]}function Ns(){return React.createElement("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},React.createElement("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor",stroke:"none"}),React.createElement("path",{d:"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49"}),React.createElement("path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14"}))}function Ss(){return React.createElement("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},React.createElement("circle",{cx:"12",cy:"12",r:"10"}),React.createElement("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),React.createElement("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"}))}const As=800;function Is({component:t,now:e}){var X,Q,K,wn,Rn;const[r,n]=C.useState(null),[i,o]=C.useState(!1),[a,s]=C.useState(null),[c,l]=C.useState(null),f=C.useRef(null),h=C.useRef(null),p=C.useRef(null);Ko(ms,{variables:{componentName:t.name},onData:({data:P})=>{var Lt;const M=(Lt=P.data)==null?void 0:Lt.heartbeatEvent;M&&l(M)}});const[y]=Xo(ys);C.useEffect(()=>()=>{f.current&&clearTimeout(f.current),h.current&&clearTimeout(h.current),p.current&&clearTimeout(p.current)},[]);const m=C.useCallback(()=>{h.current&&(clearTimeout(h.current),h.current=null),p.current&&(clearTimeout(p.current),p.current=null)},[]),T=C.useCallback(P=>{m();const M=P.getBoundingClientRect();s({x:M.left+M.width/2,y:M.bottom})},[m]),E=C.useCallback(P=>{const M=P.currentTarget;m(),h.current=setTimeout(()=>T(M),As)},[m,T]),v=C.useCallback(()=>{h.current&&(clearTimeout(h.current),h.current=null),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>s(null),150)},[]),S=C.useCallback(P=>{n(P),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>n(null),4e3)},[]),L=C.useCallback(async()=>{var P,M;if(!i){o(!0),n(null);try{const Pn=(M=(P=(await y({variables:{componentName:t.name}})).data)==null?void 0:P.ping)==null?void 0:M.ttl;S({kind:"ok",ttl:typeof Pn=="number"?Pn:null})}catch{S({kind:"fail"})}finally{o(!1)}}},[i,y,t.name,S]),A=(X=c==null?void 0:c.state)!=null?X:t.state,F=(wn=(K=(Q=c==null?void 0:c.state)==null?void 0:Q.status)!=null?K:t.lastStatus)!=null?wn:"UNKNOWN",B=(Rn=c==null?void 0:c.lastSeen)!=null?Rn:t.lastSeen,V=A==null?void 0:A.host,q=A==null?void 0:A.running_since,Y=A==null?void 0:A.last_error,$=Cn(B,e),Ge=$?"stale":In(F),j=[{key:"status",label:"status",value:$?`${F} (stale)`:F},{key:"last-seen",label:"last seen",value:xs(B)},...q?[{key:"uptime",label:"uptime",value:bs(q,e)}]:[],...V?[{key:"host",label:"host",value:V}]:[],...Y?[{key:"last-error",label:"last error",value:Y}]:[],...Os(A).map(([P,M])=>({key:`state-${P}`,label:P,value:M}))];return React.createElement("article",{className:_.componentCard,"data-status":Ge},React.createElement("div",{className:_.cardHeader},React.createElement("span",{className:_.componentName,title:t.name},_s(t.name)),React.createElement("span",{className:_.statusBadge,"data-status":Ge,title:$?`Last reported ${F}, may be unreachable`:F},$?"STALE":F.toUpperCase())),React.createElement("div",{className:_.cardBody},React.createElement("span",{className:_.lastSeen,"data-stale":$||void 0},Es(B,e)),V&&React.createElement("span",{className:_.hostLabel},V)),React.createElement("div",{className:_.cardFooter},React.createElement("button",{className:`${_.pingBtn} ${i?_.pinging:""}`,onClick:L,disabled:i,"aria-label":`Ping ${t.name}`,title:`Ping ${t.name}`},React.createElement(Ns,null),(r==null?void 0:r.kind)==="ok"&&React.createElement("span",{className:_.ttlChip},r.ttl!==null?`TTL ${r.ttl}`:"OK"),(r==null?void 0:r.kind)==="fail"&&React.createElement("span",{className:_.pingFailChip},"no reply")),React.createElement("button",{className:_.infoBtn,onMouseEnter:E,onMouseLeave:v,onFocus:P=>T(P.currentTarget),onBlur:v,onClick:P=>a?s(null):T(P.currentTarget),"aria-expanded":!!a,"aria-label":`Details for ${t.name}`},React.createElement(Ss,null))),a&&React.createElement(Aa,{x:a.x,y:a.y,rows:j,interactive:!0,role:"tooltip",style:{maxHeight:260,overflowY:"auto"},onMouseEnter:m,onMouseLeave:v}))}function Cs(t=5e3){const[e,r]=C.useState(()=>Date.now());return C.useEffect(()=>{const n=setInterval(()=>r(Date.now()),t);return()=>clearInterval(n)},[t]),e}function ks(){return React.createElement("div",{className:_.container,role:"status","aria-label":"Loading components"},React.createElement("header",{className:_.header},React.createElement("div",{className:`${_.skeleton} ${_.skeletonTitle}`})),React.createElement("div",{className:_.grid},[...Array(6)].map((t,e)=>React.createElement("div",{key:e,className:`${_.componentCard} ${_.skeletonCard}`},React.createElement("div",{className:`${_.skeleton} ${_.skeletonLine}`}),React.createElement("div",{className:`${_.skeleton} ${_.skeletonLineShort}`})))))}function Dn(t){const{data:e,loading:r,error:n,refetch:i}=Bo(ps,{fetchPolicy:"network-only",pollInterval:3e4}),o=Cs(),a=C.useMemo(()=>{var l;return(l=e==null?void 0:e.components)!=null?l:[]},[e]),s=C.useMemo(()=>[...a].sort((l,f)=>{const h=ze(Pt(l.lastStatus,l.lastSeen,o)),p=ze(Pt(f.lastStatus,f.lastSeen,o));return h!==p?h-p:l.name.localeCompare(f.name)}),[a,o]),c=C.useMemo(()=>{var f;const l=new Map;for(const h of a){const p=Pt(h.lastStatus,h.lastSeen,o);l.set(p,((f=l.get(p))!=null?f:0)+1)}return[...l.entries()].sort((h,p)=>ze(h[0])-ze(p[0]))},[a,o]);return r&&a.length===0?ks():n&&a.length===0?React.createElement("div",{className:_.container},React.createElement("div",{className:_.errorState,role:"alert"},React.createElement("span",{className:_.errorMessage},"Unable to load components: ",n.message),React.createElement("button",{className:_.retryBtn,onClick:()=>i()},"Retry"))):React.createElement("div",{className:_.container},React.createElement("header",{className:_.header},React.createElement("h2",{className:_.title},"Components"),a.length>0&&React.createElement("span",{className:_.componentCount},a.length),React.createElement("div",{className:_.summary,"aria-label":"Status summary"},c.map(([l,f])=>React.createElement("span",{key:l,className:_.summaryChip,"data-status":l,title:`${f} ${gs[l].toLowerCase()}`},React.createElement("span",{className:_.summaryDot}),f)))),a.length===0?React.createElement("div",{className:_.emptyState},"No components found"):React.createElement("div",{className:_.grid},s.map(l=>React.createElement(Is,{key:l.name,component:l,now:o}))))}const Ds={version:"0.1.1"},{version:ws}=Ds,Rs=ds({key:"componentsStatus",component:Dn,label:"Components Status",layout:{x:0,y:0,w:24,h:18},config:{default:{},schema:{type:"object",properties:{}}},polls:!0,version:ws,docsUrl:"https://developer.skao.int/projects/rasor-components-status/en/latest/"});function Ps(t){t.registerWidget(Rs)}return(function t(e){typeof e.registerWidget=="function"?Ps(e):setTimeout(t,50,e)})(globalThis.Octopus||(globalThis.Octopus={})),Ye.ComponentsStatusWidget=Dn,Object.defineProperty(Ye,Symbol.toStringTag,{value:"Module"}),Ye})({},React,ReactDOM);
|
|
665
|
+
`,vs=12e4;function In(t){const e=(t!=null?t:"").toUpperCase();return e==="IDLE"?"idle":e==="RUNNING"||e==="BUSY"||e==="ACTIVE"?"running":e==="ERROR"||e==="FAULT"||e==="FAILED"?"error":e==="WARNING"||e==="DEGRADED"?"warning":e==="INIT"||e==="STARTING"?"init":e==="WAITING_DEPS"||e==="WAITING"?"waiting":e==="OFFLINE"||e==="DISCONNECTED"||e==="STOPPED"?"offline":"unknown"}function Pt(t,e,r){return Cn(e,r)?"stale":In(t)}function Cn(t,e){if(!t)return!0;const r=Date.parse(t);return isNaN(r)?!0:e-r>vs}const kn=["error","stale","offline","warning","waiting","init","running","idle","unknown"];function ze(t){const e=kn.indexOf(t);return e===-1?kn.length:e}const gs={idle:"Idle",running:"Running",error:"Error",warning:"Warning",init:"Init",waiting:"Waiting",offline:"Offline",stale:"Stale",unknown:"Unknown"};function Es(t,e){if(!t)return"—";const r=Date.parse(t);if(isNaN(r))return"—";const n=Math.max(0,e-r),i=Math.floor(n/1e3);if(i<10)return"just now";if(i<60)return`${i}s ago`;const o=Math.floor(i/60);if(o<60)return`${o}m ago`;const a=Math.floor(o/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function bs(t,e){if(!t)return"—";const r=Date.parse(t);if(isNaN(r)||r>e)return"—";const n=Math.floor((e-r)/1e3),i=Math.floor(n/86400),o=Math.floor(n%86400/3600),a=Math.floor(n%3600/60);return i>0?`${i}d ${o}h`:o>0?`${o}h ${a}m`:a>0?`${a}m`:`${n}s`}function xs(t){if(!t)return"—";const e=new Date(t);return isNaN(e.getTime())?"—":e.toLocaleString("en-GB",{year:"numeric",month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}const _={container:"_container_57e3t_3",header:"_header_57e3t_61",title:"_title_57e3t_73",componentCount:"_componentCount_57e3t_81",summary:"_summary_57e3t_97",summaryChip:"_summaryChip_57e3t_105",summaryDot:"_summaryDot_57e3t_119",grid:"_grid_57e3t_129",componentCard:"_componentCard_57e3t_151",infoBtn:"_infoBtn_57e3t_223",componentName:"_componentName_57e3t_253",cardHeader:"_cardHeader_57e3t_273",statusBadge:"_statusBadge_57e3t_292",cardBody:"_cardBody_57e3t_325",lastSeen:"_lastSeen_57e3t_333",hostLabel:"_hostLabel_57e3t_344",cardFooter:"_cardFooter_57e3t_352",pingBtn:"_pingBtn_57e3t_365",pinging:"_pinging_57e3t_400",ttlChip:"_ttlChip_57e3t_404",pingFailChip:"_pingFailChip_57e3t_410",skeleton:"_skeleton_57e3t_417",skeletonTitle:"_skeletonTitle_57e3t_429",skeletonCard:"_skeletonCard_57e3t_434",skeletonLine:"_skeletonLine_57e3t_438",skeletonLineShort:"_skeletonLineShort_57e3t_444",errorState:"_errorState_57e3t_451",errorMessage:"_errorMessage_57e3t_464",retryBtn:"_retryBtn_57e3t_469",emptyState:"_emptyState_57e3t_486"};function _s(t){return t.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())}const Ts=new Set(["status","ts","name","host","running_since","last_error"]);function Os(t){return t?Object.entries(t).filter(([e,r])=>!Ts.has(e)&&r!==null&&r!==void 0&&(typeof r=="string"||typeof r=="number"||typeof r=="boolean")).map(([e,r])=>[e.replace(/_/g," "),String(r)]):[]}function Ns(){return React.createElement("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},React.createElement("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor",stroke:"none"}),React.createElement("path",{d:"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49"}),React.createElement("path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14"}))}function Ss(){return React.createElement("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},React.createElement("circle",{cx:"12",cy:"12",r:"10"}),React.createElement("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),React.createElement("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"}))}const As=800;function Is({component:t,now:e}){var X,Q,K,wn,Rn;const[r,n]=C.useState(null),[i,o]=C.useState(!1),[a,s]=C.useState(null),[c,l]=C.useState(null),f=C.useRef(null),h=C.useRef(null),p=C.useRef(null);Ko(ms,{variables:{componentName:t.name},onData:({data:P})=>{var Lt;const M=(Lt=P.data)==null?void 0:Lt.heartbeatEvent;M&&l(M)}});const[y]=Xo(ys);C.useEffect(()=>()=>{f.current&&clearTimeout(f.current),h.current&&clearTimeout(h.current),p.current&&clearTimeout(p.current)},[]);const m=C.useCallback(()=>{h.current&&(clearTimeout(h.current),h.current=null),p.current&&(clearTimeout(p.current),p.current=null)},[]),T=C.useCallback(P=>{m();const M=P.getBoundingClientRect();s({x:M.left+M.width/2,y:M.bottom})},[m]),E=C.useCallback(P=>{const M=P.currentTarget;m(),h.current=setTimeout(()=>T(M),As)},[m,T]),v=C.useCallback(()=>{h.current&&(clearTimeout(h.current),h.current=null),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>s(null),150)},[]),S=C.useCallback(P=>{n(P),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>n(null),4e3)},[]),L=C.useCallback(async()=>{var P,M;if(!i){o(!0),n(null);try{const Pn=(M=(P=(await y({variables:{componentName:t.name}})).data)==null?void 0:P.ping)==null?void 0:M.ttl;S({kind:"ok",ttl:typeof Pn=="number"?Pn:null})}catch{S({kind:"fail"})}finally{o(!1)}}},[i,y,t.name,S]),A=(X=c==null?void 0:c.state)!=null?X:t.state,F=(wn=(K=(Q=c==null?void 0:c.state)==null?void 0:Q.status)!=null?K:t.lastStatus)!=null?wn:"UNKNOWN",B=(Rn=c==null?void 0:c.lastSeen)!=null?Rn:t.lastSeen,V=A==null?void 0:A.host,q=A==null?void 0:A.running_since,Y=A==null?void 0:A.last_error,$=Cn(B,e),Ge=$?"stale":In(F),j=[{key:"status",label:"status",value:$?`${F} (stale)`:F},{key:"last-seen",label:"last seen",value:xs(B)},...q?[{key:"uptime",label:"uptime",value:bs(q,e)}]:[],...V?[{key:"host",label:"host",value:V}]:[],...Y?[{key:"last-error",label:"last error",value:Y}]:[],...Os(A).map(([P,M])=>({key:`state-${P}`,label:P,value:M}))];return React.createElement("article",{className:_.componentCard,"data-status":Ge},React.createElement("div",{className:_.cardHeader},React.createElement("span",{className:_.componentName,title:t.name},_s(t.name)),React.createElement("span",{className:_.statusBadge,"data-status":Ge,title:$?`Last reported ${F}, may be unreachable`:F},$?"STALE":F.toUpperCase())),React.createElement("div",{className:_.cardBody},React.createElement("span",{className:_.lastSeen,"data-stale":$||void 0},Es(B,e)),V&&React.createElement("span",{className:_.hostLabel},V)),React.createElement("div",{className:_.cardFooter},React.createElement("button",{className:`${_.pingBtn} ${i?_.pinging:""}`,onClick:L,disabled:i,"aria-label":`Ping ${t.name}`,title:`Ping ${t.name}`},React.createElement(Ns,null),(r==null?void 0:r.kind)==="ok"&&React.createElement("span",{className:_.ttlChip},r.ttl!==null?`TTL ${r.ttl}`:"OK"),(r==null?void 0:r.kind)==="fail"&&React.createElement("span",{className:_.pingFailChip},"no reply")),React.createElement("button",{className:_.infoBtn,onMouseEnter:E,onMouseLeave:v,onFocus:P=>T(P.currentTarget),onBlur:v,onClick:P=>a?s(null):T(P.currentTarget),"aria-expanded":!!a,"aria-label":`Details for ${t.name}`},React.createElement(Ss,null))),a&&React.createElement(Aa,{x:a.x,y:a.y,rows:j,interactive:!0,role:"tooltip",style:{maxHeight:260,overflowY:"auto"},onMouseEnter:m,onMouseLeave:v}))}function Cs(t=5e3){const[e,r]=C.useState(()=>Date.now());return C.useEffect(()=>{const n=setInterval(()=>r(Date.now()),t);return()=>clearInterval(n)},[t]),e}function ks(){return React.createElement("div",{className:_.container,role:"status","aria-label":"Loading components"},React.createElement("header",{className:_.header},React.createElement("div",{className:`${_.skeleton} ${_.skeletonTitle}`})),React.createElement("div",{className:_.grid},[...Array(6)].map((t,e)=>React.createElement("div",{key:e,className:`${_.componentCard} ${_.skeletonCard}`},React.createElement("div",{className:`${_.skeleton} ${_.skeletonLine}`}),React.createElement("div",{className:`${_.skeleton} ${_.skeletonLineShort}`})))))}function Dn(t){const{data:e,loading:r,error:n,refetch:i}=Bo(ps,{fetchPolicy:"network-only",pollInterval:3e4}),o=Cs(),a=C.useMemo(()=>{var l;return(l=e==null?void 0:e.components)!=null?l:[]},[e]),s=C.useMemo(()=>[...a].sort((l,f)=>{const h=ze(Pt(l.lastStatus,l.lastSeen,o)),p=ze(Pt(f.lastStatus,f.lastSeen,o));return h!==p?h-p:l.name.localeCompare(f.name)}),[a,o]),c=C.useMemo(()=>{var f;const l=new Map;for(const h of a){const p=Pt(h.lastStatus,h.lastSeen,o);l.set(p,((f=l.get(p))!=null?f:0)+1)}return[...l.entries()].sort((h,p)=>ze(h[0])-ze(p[0]))},[a,o]);return r&&a.length===0?ks():n&&a.length===0?React.createElement("div",{className:_.container},React.createElement("div",{className:_.errorState,role:"alert"},React.createElement("span",{className:_.errorMessage},"Unable to load components: ",n.message),React.createElement("button",{className:_.retryBtn,onClick:()=>i()},"Retry"))):React.createElement("div",{className:_.container},React.createElement("header",{className:_.header},React.createElement("h2",{className:_.title},"Components"),a.length>0&&React.createElement("span",{className:_.componentCount},a.length),React.createElement("div",{className:_.summary,"aria-label":"Status summary"},c.map(([l,f])=>React.createElement("span",{key:l,className:_.summaryChip,"data-status":l,title:`${f} ${gs[l].toLowerCase()}`},React.createElement("span",{className:_.summaryDot}),f)))),a.length===0?React.createElement("div",{className:_.emptyState},"No components found"):React.createElement("div",{className:_.grid},s.map(l=>React.createElement(Is,{key:l.name,component:l,now:o}))))}const Ds={version:"0.1.2"},{version:ws}=Ds,Rs=ds({key:"componentsStatus",component:Dn,label:"Components Status",layout:{x:0,y:0,w:24,h:18},config:{default:{},schema:{type:"object",properties:{}}},polls:!0,version:ws,docsUrl:"https://developer.skao.int/projects/rasor-components-status/en/latest/"});function Ps(t){t.registerWidget(Rs)}return(function t(e){typeof e.registerWidget=="function"?Ps(e):setTimeout(t,50,e)})(globalThis.Octopus||(globalThis.Octopus={})),Ye.ComponentsStatusWidget=Dn,Object.defineProperty(Ye,Symbol.toStringTag,{value:"Module"}),Ye})({},React,ReactDOM);
|
|
666
666
|
//# sourceMappingURL=index.iife.js.map
|
package/package.json
CHANGED