@akiraka/quark-big-screen-ui 0.1.18 → 0.1.19

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.
@@ -88,4 +88,4 @@ echarts.use([`+I+"]);":"Unknown series "+A))}return}if(f==="tooltip"){if(S){proc
88
88
  </div>
89
89
  ${yf}
90
90
  </div>
91
- `}},xAxis:{type:"category",boundaryGap:!1,data:b.value,minInterval:1,axisLabel:{color:J,fontSize:ue?9:10,interval:"auto",hideOverlap:!0,margin:10},axisLine:{lineStyle:{color:"rgba(148,163,184,0.22)"}},axisTick:{show:!1}},yAxis:{type:"value",scale:!0,min:Qe=>Qe.min===Qe.max?Qe.min-1:void 0,max:Qe=>Qe.min===Qe.max?Qe.max+1:void 0,splitNumber:ue?3:4,axisLabel:{color:J,fontSize:ue?9:10,formatter:Qe=>S(Qe),margin:8},splitLine:{lineStyle:{color:le,type:"dashed"}},axisLine:{show:!1},axisTick:{show:!1}},series:We}});function W(){t.value&&((!o||o.isDisposed())&&(o=O$(t.value,void 0,{renderer:"canvas"}),we()),o.clear(),o.setOption(j.value,!0))}async function V(J=!1){await y.nextTick(),t.value&&(J&&o&&(o.dispose(),o=null),W())}function q(){n.value=null}function Ce(J){const le=e.compact,ue=le?40:52,We=le?18:26,Qe=le?34:42,Rt=le?22:34;return{minX:ue,maxX:Math.max(ue,J.width-We),top:Qe,height:Math.max(0,J.height-Qe-Rt)}}function fe(){i.value=null,f=null,window.removeEventListener("mousemove",je),window.removeEventListener("mouseup",lr),window.removeEventListener("touchmove",Ql),window.removeEventListener("touchend",ZO),window.removeEventListener("touchcancel",qO)}function ne(){c&&(clearTimeout(c),c=null),h=null}function we(){!o||l||(o.getZr().on("mousedown",Xt),l=!0)}function se(){!o||!l||(o.getZr().off("mousedown",Xt),l=!1)}function xe(){!t.value||u||(t.value.addEventListener("touchstart",Gn,{passive:!0}),u=!0)}function qe(){!t.value||!u||(t.value.removeEventListener("touchstart",Gn),u=!1)}function Pe(J){if(!f)return;const le=Math.min(f.startX,J),ue=Math.max(f.startX,J);i.value={left:`${le}px`,top:`${f.top}px`,width:`${Math.max(0,ue-le)}px`,height:`${f.height}px`}}function Xe(J,le){var KO,jO;if(!g.value.length)return null;const ue=((KO=n.value)==null?void 0:KO.start)??0,We=((jO=n.value)==null?void 0:jO.end)??g.value.length-1,Qe=We-ue+1;if(Qe<2||!f)return null;const Rt=f.maxX-f.minX;if(Rt<=0)return null;const ia=(J-f.minX)/Rt,Gp=(le-f.minX)/Rt,kx=Math.round(Math.min(ia,Gp)*(Qe-1)),Fp=Math.round(Math.max(ia,Gp)*(Qe-1)),yf=Math.max(ue,Math.min(We,ue+kx)),Ax=Math.max(ue,Math.min(We,ue+Fp));return Ax-yf<1||yf===ue&&Ax===We?null:{start:yf,end:Ax}}function je(J){if(!f)return;const le=J.clientX-f.rect.left,ue=Math.max(f.minX,Math.min(f.maxX,le));Pe(ue)}function yt(J){if(!f)return;if(Math.abs(J-f.startX)>=12){const ue=Xe(f.startX,J);ue&&(n.value=ue)}fe()}function lr(J){if(!f)return;const le=J.clientX-f.rect.left,ue=Math.max(f.minX,Math.min(f.maxX,le));yt(ue)}function Xt(J){if(!e.enableSelectionZoom||e.compact||x.value.length<2||!t.value||J.event&&J.event.button!==0)return;const le=t.value.getBoundingClientRect(),ue=Ce(le);J.offsetX<ue.minX||J.offsetX>ue.maxX||J.offsetY<ue.top||J.offsetY>ue.top+ue.height||(f={rect:le,startX:J.offsetX,minX:ue.minX,maxX:ue.maxX,top:ue.top,height:ue.height},Pe(J.offsetX),window.addEventListener("mousemove",je),window.addEventListener("mouseup",lr))}function ba(J){if(!t.value)return null;const le=J.touches[0]||J.changedTouches[0];if(!le)return null;const ue=t.value.getBoundingClientRect();return{offsetX:le.clientX-ue.left,offsetY:le.clientY-ue.top,clientX:le.clientX,clientY:le.clientY}}function Gn(J){if(!e.enableSelectionZoom||e.compact||x.value.length<2||J.touches.length!==1)return;const le=ba(J);le&&(ne(),fe(),h={startClientX:le.clientX,startClientY:le.clientY,startOffsetX:le.offsetX,startOffsetY:le.offsetY,active:!1,cancelled:!1},window.addEventListener("touchmove",Ql,{passive:!1}),window.addEventListener("touchend",ZO,{passive:!1}),window.addEventListener("touchcancel",qO,{passive:!1}),c=setTimeout(()=>{!h||h.cancelled||(Xt({offsetX:h.startOffsetX,offsetY:h.startOffsetY}),f&&(h.active=!0,Pe(h.startOffsetX)))},$oe))}function Ql(J){const le=ba(J);if(!le)return;if(h&&!h.active){const We=le.clientX-h.startClientX,Qe=le.clientY-h.startClientY;if(Math.abs(Qe)>Uoe&&Math.abs(Qe)>Math.abs(We)*1.2){h.cancelled=!0,ne(),fe();return}return}if(!f)return;const ue=Math.max(f.minX,Math.min(f.maxX,le.offsetX));Pe(ue),J.preventDefault()}function ZO(J){const le=!!(h!=null&&h.active);if(ne(),!f){fe();return}const ue=ba(J);if(!ue){fe();return}const We=Math.max(f.minX,Math.min(f.maxX,ue.offsetX));yt(We),le&&J.preventDefault()}function qO(){ne(),fe()}return y.onMounted(()=>{V(!0),t.value&&(s=new ResizeObserver(()=>{o==null||o.resize()}),s.observe(t.value)),xe()}),y.watch(j,()=>{V(!1)},{deep:!0}),y.watch(C,(J,le)=>{typeof window<"u"&&window.__QUARK_DEBUG_METRIC__&&console.debug("[MetricTrendChart]",{prevSignature:le,nextSignature:J,rawValues:e.values,rawTimestamps:e.timestamps,safeValues:p.value,points:g.value.length});const ue=le?JSON.parse(le).values.length:0,We=JSON.parse(J).values.length;V(ue<2||We<2)}),y.watch(()=>e.height,()=>{V(!1)}),y.watch(()=>[e.values,e.timestamps],()=>{n.value=null},{deep:!0}),y.onBeforeUnmount(()=>{se(),qe(),s==null||s.disconnect(),s=null,ne(),fe(),o==null||o.dispose(),o=null}),(J,le)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["metric-trend-chart",{"is-compact":r.compact,"is-selection-enabled":r.enableSelectionZoom&&!r.compact}])},[w.value?(y.openBlock(),y.createElementBlock("button",{key:0,type:"button",class:"metric-trend-chart__reset",onClick:q}," 重置范围 ")):y.createCommentVNode("",!0),y.createElementVNode("div",{ref_key:"chartRef",ref:t,class:"metric-trend-chart__canvas",style:y.normalizeStyle({height:`${r.height}px`})},null,4),i.value?(y.openBlock(),y.createElementBlock("div",{key:1,class:"metric-trend-chart__selection",style:y.normalizeStyle(i.value)},null,4)):y.createCommentVNode("",!0),p.value.length>0&&!r.compact?(y.openBlock(),y.createElementBlock("div",Voe,[y.createElementVNode("div",{class:y.normalizeClass(["metric-trend-chart__stat",{"is-active":a.value==="min"}]),onMouseenter:le[0]||(le[0]=ue=>E("min")),onMouseleave:T},[le[2]||(le[2]=y.createElementVNode("span",{class:"metric-trend-chart__stat-label"},"最小值",-1)),y.createElementVNode("span",Boe,y.toDisplayString(S(I.value.min)),1)],34),y.createElementVNode("div",{class:y.normalizeClass(["metric-trend-chart__stat",{"is-active":a.value==="max"}]),onMouseenter:le[1]||(le[1]=ue=>E("max")),onMouseleave:T},[le[3]||(le[3]=y.createElementVNode("span",{class:"metric-trend-chart__stat-label"},"最大值",-1)),y.createElementVNode("span",zoe,y.toDisplayString(S(I.value.max)),1)],34),y.createElementVNode("div",Goe,[le[4]||(le[4]=y.createElementVNode("span",{class:"metric-trend-chart__stat-label"},"平均值",-1)),y.createElementVNode("span",Foe,y.toDisplayString(S(I.value.avg)),1)])])):y.createCommentVNode("",!0),p.value.length<2?(y.openBlock(),y.createElementBlock("div",Hoe,y.toDisplayString(p.value.length===1?"数据点不足":"暂无趋势数据"),1)):y.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-2cda3f9e"]]),Woe=["type","disabled"],mf=vt(y.defineComponent({__name:"UiButton",props:{variant:{default:"primary"},appearance:{default:"dialog"},size:{default:"md"},type:{default:"button"},disabled:{type:Boolean,default:!1},block:{type:Boolean,default:!1}},setup(r){return(e,t)=>(y.openBlock(),y.createElementBlock("button",{class:y.normalizeClass(["ui-button",[`ui-button--${r.variant}`,`ui-button--${r.appearance}`,`ui-button--${r.size}`,{"ui-button--block":r.block}]]),type:r.type,disabled:r.disabled},[y.renderSlot(e.$slots,"default",{},void 0,!0)],10,Woe))}}),[["__scopeId","data-v-5f786839"]]),Yoe={class:"alert-dialog-info"},Xoe={key:0,class:"alert-dialog-meta"},Zoe={key:1,class:"alert-dialog-grid"},qoe=["disabled","onClick"],Koe={class:"alert-dialog-field-label"},joe={key:2,class:"alert-dialog-content"},Qoe={key:0,class:"alert-dialog-chart-card"},Joe={class:"alert-dialog-chart-title"},ese={key:1,class:"alert-dialog-normal"},tse={key:0,class:"alert-dialog-meta"},rse={key:1,class:"alert-dialog-content"},ase={key:2,class:"alert-dialog-details"},nse={key:3,class:"alert-dialog-footer"},$O=vt(y.defineComponent({__name:"AlertDialog",props:{modelValue:{type:Boolean},title:{},subtitle:{default:""},content:{default:""},layout:{default:"normal"},level:{default:"info"},source:{default:""},timestamp:{default:""},showCloseButton:{type:Boolean,default:!0},showCancelButton:{type:Boolean,default:!1},showConfirmButton:{type:Boolean,default:!1},titleAlign:{default:"center"},cancelText:{default:"关闭"},confirmText:{default:"确认"},actionSize:{default:"md"},closeOnMask:{type:Boolean,default:!0},autoCloseMs:{default:0},monitorFields:{default:()=>[]},trend:{default:()=>[]},chartTimestamps:{default:()=>[]},chartTriggerTime:{default:""},chartTriggerValue:{default:""},chartContext:{default:()=>({})},chartTitle:{default:""},chartPlacement:{default:"side"},chartShowExtremaMarkers:{type:Boolean,default:!1},chartEnableExtremaHover:{type:Boolean,default:!1},chartEnableSelectionZoom:{type:Boolean,default:!1},infoItems:{default:()=>[]},monitorFieldsVariant:{default:"cards"}},emits:["update:modelValue","close","confirm","timeout"],setup(r,{emit:e}){const t=r,a=e;let n=null,i=null;const o=y.ref(0),s=y.ref(null),l=y.computed(()=>t.layout==="monitor"?"min(92vw, 1180px)":"min(92vw, 760px)"),u=y.computed(()=>t.showCancelButton||t.showConfirmButton),c=y.computed(()=>{const S=[];if(t.source&&S.push({key:"source",value:t.source}),t.timestamp){const x=typeof t.timestamp=="number"?new Date(t.timestamp):new Date(String(t.timestamp));S.push({key:"timestamp",value:Number.isNaN(x.getTime())?String(t.timestamp):x.toLocaleString("zh-CN")})}return S}),f=y.computed(()=>{const S=[...c.value];return t.infoItems.forEach((x,b)=>{x&&S.push({key:`info-${b}`,value:x})}),S}),h=y.computed(()=>t.trend.filter(S=>Number.isFinite(S))),v=y.computed(()=>h.value.length>1),d=y.computed(()=>{switch(t.level){case"critical":return"#ef4444";case"warning":return"#f59e0b";case"recovery":return"#10b981";default:return"#38bdf8"}});function p(){n&&(clearTimeout(n),n=null),i&&(clearInterval(i),i=null),o.value=0}function g(){p(),!(!t.modelValue||!t.autoCloseMs||t.autoCloseMs<=0)&&(o.value=t.autoCloseMs,i=setInterval(()=>{o.value=Math.max(0,o.value-1e3)},1e3),n=setTimeout(()=>{p(),a("timeout"),m()},t.autoCloseMs))}function m(){p(),s.value=null,a("update:modelValue",!1),a("close")}function _(S){s.value=s.value===S?null:S}return y.watch(()=>[t.modelValue,t.autoCloseMs],g,{immediate:!0}),y.watch(()=>t.modelValue,S=>{S||(s.value=null)}),y.onBeforeUnmount(p),(S,x)=>(y.openBlock(),y.createBlock(Gx,{"model-value":r.modelValue,title:r.title,eyebrow:"","title-align":r.titleAlign,"show-close-button":r.showCloseButton,"close-on-mask":r.closeOnMask,padded:!1,width:l.value,"panel-class":"alert-dialog-panel","mask-class":"alert-dialog-mask","onUpdate:modelValue":x[1]||(x[1]=b=>a("update:modelValue",b)),onClose:m},{default:y.withCtx(()=>[y.createElementVNode("div",{class:y.normalizeClass(["alert-dialog",[`alert-dialog--${r.level}`,`alert-dialog--${r.layout}`,`alert-dialog--title-${r.titleAlign}`]])},[r.layout==="monitor"?(y.openBlock(),y.createElementBlock("div",{key:0,class:y.normalizeClass(["alert-dialog-monitor",{"alert-dialog-monitor--bottom":r.chartPlacement==="bottom"}])},[y.createElementVNode("div",Yoe,[f.value.length?(y.openBlock(),y.createElementBlock("div",Xoe,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(f.value,b=>(y.openBlock(),y.createElementBlock("span",{key:b.key,class:"alert-dialog-meta-item"},y.toDisplayString(b.value),1))),128))])):y.createCommentVNode("",!0),r.monitorFields.length?(y.openBlock(),y.createElementBlock("div",Zoe,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(r.monitorFields,b=>(y.openBlock(),y.createElementBlock("button",{key:b.label,type:"button",class:y.normalizeClass(["alert-dialog-field",`alert-dialog-field--${r.monitorFieldsVariant}`,{"is-clickable":b.marker,"is-active":s.value===b.marker}]),disabled:!b.marker,onClick:w=>b.marker&&_(b.marker)},[y.createElementVNode("span",Koe,y.toDisplayString(b.label),1),y.createElementVNode("span",{class:y.normalizeClass(["alert-dialog-field-value",{"is-mono":b.mono,"is-accent":b.accent}])},y.toDisplayString(b.value),3)],10,qoe))),128))])):y.createCommentVNode("",!0),r.content?(y.openBlock(),y.createElementBlock("p",joe,y.toDisplayString(r.content),1)):y.renderSlot(S.$slots,"default",{},void 0,!0,3)]),v.value?(y.openBlock(),y.createElementBlock("div",Qoe,[y.createElementVNode("p",Joe,y.toDisplayString(r.chartTitle||"监控趋势"),1),y.createVNode(zp,{class:"alert-dialog-chart",values:h.value,timestamps:r.chartTimestamps,"trigger-time":r.chartTriggerTime,"trigger-value":r.chartTriggerValue,context:r.chartContext,color:d.value,height:220,"show-extrema-markers":r.chartShowExtremaMarkers,"enable-extrema-hover":r.chartEnableExtremaHover,"active-marker":s.value,"enable-selection-zoom":r.chartEnableSelectionZoom},null,8,["values","timestamps","trigger-time","trigger-value","context","color","show-extrema-markers","enable-extrema-hover","active-marker","enable-selection-zoom"])])):y.createCommentVNode("",!0)],2)):(y.openBlock(),y.createElementBlock("div",ese,[f.value.length?(y.openBlock(),y.createElementBlock("div",tse,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(f.value,b=>(y.openBlock(),y.createElementBlock("span",{key:b.key,class:"alert-dialog-meta-item"},y.toDisplayString(b.value),1))),128))])):y.createCommentVNode("",!0),r.content?(y.openBlock(),y.createElementBlock("p",rse,y.toDisplayString(r.content),1)):y.renderSlot(S.$slots,"default",{},void 0,!0,2)])),S.$slots.details?(y.openBlock(),y.createElementBlock("div",ase,[y.renderSlot(S.$slots,"details",{},void 0,!0)])):y.createCommentVNode("",!0),S.$slots.footer||u.value?(y.openBlock(),y.createElementBlock("div",nse,[y.renderSlot(S.$slots,"footer",{},()=>[r.showCancelButton?(y.openBlock(),y.createBlock(mf,{key:0,variant:"secondary",appearance:"dialog",size:r.actionSize,onClick:m},{default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(r.cancelText),1)]),_:1},8,["size"])):y.createCommentVNode("",!0),r.showConfirmButton?(y.openBlock(),y.createBlock(mf,{key:1,variant:"primary",appearance:"dialog",size:r.actionSize,onClick:x[0]||(x[0]=b=>a("confirm"))},{default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(r.confirmText),1)]),_:1},8,["size"])):y.createCommentVNode("",!0)],!0)])):y.createCommentVNode("",!0)],2)]),_:3},8,["model-value","title","title-align","show-close-button","close-on-mask","width"]))}}),[["__scopeId","data-v-ae5198b7"]]),UO=vt(y.defineComponent({__name:"Timeline",props:{theme:{default:"default"}},setup(r){return(e,t)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["quark-timeline",`quark-timeline--${r.theme}`])},[y.renderSlot(e.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-edeffd99"]]),ise={key:0,class:"quark-tl-item__label"},ose={key:1,class:"quark-tl-item__rail"},sse={class:"quark-tl-item__dot-content"},lse={class:"quark-tl-item__dot"},use={class:"quark-tl-item__body"},cse={class:"quark-tl-item__content"},fse={key:0,class:"quark-tl-item__time"},WO=vt(y.defineComponent({__name:"TimelineItem",props:{time:{},active:{type:Boolean,default:!1},last:{type:Boolean,default:!1},lineColor:{default:""},dotColor:{default:""},hideDot:{type:Boolean,default:!1},dotType:{default:"solid"},lineType:{default:"solid"},label:{default:""}},setup(r){return(e,t)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["quark-tl-item",{"quark-tl-item--active":r.active,"quark-tl-item--last":r.last}])},[e.$slots.label||r.label?(y.openBlock(),y.createElementBlock("div",ise,[y.renderSlot(e.$slots,"label",{},()=>[y.createTextVNode(y.toDisplayString(r.label),1)],!0)])):y.createCommentVNode("",!0),r.hideDot?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock("div",ose,[r.last?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock("div",{key:0,class:"quark-tl-item__line",style:y.normalizeStyle({borderColor:r.lineColor||void 0,borderLeftStyle:r.lineType})},null,4)),y.createElementVNode("div",sse,[y.createElementVNode("div",lse,[y.renderSlot(e.$slots,"dot",{},()=>[y.createElementVNode("div",{class:y.normalizeClass(["quark-tl-item__dot-inner",`quark-tl-item__dot-inner--${r.dotType}`]),style:y.normalizeStyle(r.dotColor?{backgroundColor:r.dotType==="solid"?r.dotColor:void 0,borderColor:r.dotColor}:{})},null,6)],!0)])])])),y.createElementVNode("div",use,[y.createElementVNode("div",cse,[y.renderSlot(e.$slots,"default",{},void 0,!0)]),r.time?(y.openBlock(),y.createElementBlock("div",fse,y.toDisplayString(r.time),1)):y.createCommentVNode("",!0)])],2))}}),[["__scopeId","data-v-192169cf"]]),hse=vt(y.defineComponent({__name:"Collapse",props:{defaultActiveKey:{default:()=>[]},accordion:{type:Boolean,default:!1},theme:{default:"default"},card:{type:Boolean,default:!1}},setup(r){const e=r,t=y.ref(new Set(e.defaultActiveKey));function a(n){e.accordion?t.value.has(n)?t.value.clear():t.value=new Set([n]):t.value.has(n)?(t.value.delete(n),t.value=new Set(t.value)):(t.value.add(n),t.value=new Set(t.value))}return y.provide("collapse-active-keys",t),y.provide("collapse-toggle",a),y.provide("collapse-theme",y.computed(()=>e.theme)),y.provide("collapse-card",y.computed(()=>e.card)),(n,i)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["quark-collapse",`quark-collapse--${r.theme}`,{"quark-collapse--card":r.card}])},[y.renderSlot(n.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-e15791ba"]]),vse={class:"quark-CollapseItem__header-content"},dse={class:"quark-CollapseItem__body"},pse=vt(y.defineComponent({__name:"CollapseItem",props:{itemKey:{},key:{},header:{},disabled:{type:Boolean,default:!1}},setup(r){const e=r,t=y.computed(()=>e.itemKey??e.key??e.header??"collapse-item"),a=y.inject("collapse-active-keys"),n=y.inject("collapse-toggle"),i=y.inject("collapse-theme"),o=y.inject("collapse-card"),s=y.computed(()=>a.value.has(t.value));function l(){e.disabled||n(t.value)}return(u,c)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["quark-CollapseItem",{"quark-CollapseItem--active":s.value,"quark-CollapseItem--card":y.unref(o),"quark-CollapseItem--disabled":r.disabled},`quark-CollapseItem--${y.unref(i)}`])},[y.createElementVNode("div",{class:y.normalizeClass(["quark-CollapseItem__header",{"quark-CollapseItem__header--active":s.value}]),onClick:l},[y.createElementVNode("span",{class:y.normalizeClass(["quark-CollapseItem__arrow",{"quark-CollapseItem__arrow--open":s.value}])},[...c[1]||(c[1]=[y.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor"},[y.createElementVNode("path",{d:"M4.7 2.3a.5.5 0 0 0-.7.7L7.3 6 4 9a.5.5 0 0 0 .7.7l3.7-3.7a.5.5 0 0 0 0-.7L4.7 2.3z"})],-1)])],2),y.createElementVNode("div",vse,[y.renderSlot(u.$slots,"header",{},()=>[y.createTextVNode(y.toDisplayString(r.header),1)],!0)]),u.$slots.extra?(y.openBlock(),y.createElementBlock("div",{key:0,class:"quark-CollapseItem__extra",onClick:c[0]||(c[0]=y.withModifiers(()=>{},["stop"]))},[y.renderSlot(u.$slots,"extra",{},void 0,!0)])):y.createCommentVNode("",!0)],2),y.withDirectives(y.createElementVNode("div",dse,[y.renderSlot(u.$slots,"default",{},void 0,!0)],512),[[y.vShow,s.value]])],2))}}),[["__scopeId","data-v-a1768f99"]]),gse=["aria-label"],mse=["aria-checked","onClick"],yse={class:"ui-segmented__label"},_se={key:0,class:"ui-segmented__badge"},Ex=vt(y.defineComponent({__name:"UiSegmented",props:{modelValue:{},items:{},ariaLabel:{},variant:{default:"default"},size:{default:"md"}},emits:["update:modelValue"],setup(r,{emit:e}){const t=e;return(a,n)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["ui-segmented",[`ui-segmented--${r.variant}`,`ui-segmented--${r.size}`]]),role:"radiogroup","aria-label":r.ariaLabel},[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(r.items,i=>(y.openBlock(),y.createElementBlock("button",{key:i.value,class:y.normalizeClass(["ui-segmented__item",{"ui-segmented__item--active":r.modelValue===i.value}]),type:"button",role:"radio","aria-checked":r.modelValue===i.value,onClick:o=>t("update:modelValue",i.value)},[y.createElementVNode("span",yse,y.toDisplayString(i.label),1),i.badge!==void 0?(y.openBlock(),y.createElementBlock("span",_se,y.toDisplayString(i.badge),1)):y.createCommentVNode("",!0)],10,mse))),128))],10,gse))}}),[["__scopeId","data-v-3edc6ae6"]]),Sse=vt(y.defineComponent({__name:"UiMetricValue",props:{value:{},tone:{default:""},size:{default:"lg"}},setup(r){return(e,t)=>(y.openBlock(),y.createElementBlock("span",{class:y.normalizeClass(["ui-metric-value",`ui-metric-value--${r.size}`]),style:y.normalizeStyle(r.tone?{color:r.tone}:void 0)},y.toDisplayString(r.value),7))}}),[["__scopeId","data-v-fd8f0268"]]),xse={key:0,class:"template-screen__state"},bse={key:0,class:"template-screen__header"},wse={class:"template-screen__alerts"},Cse={key:0,class:"template-screen__placeholder"},Tse={key:4,class:"template-screen__metrics"},Ese={key:0,class:"template-screen__robot"},Dse={key:4,class:"template-screen__placeholder"},kse={class:"template-alert-detail"},Ase={key:0,class:"template-alert-detail__state"},Mse={key:1,class:"template-alert-detail__state is-error"},Ise={key:2,class:"template-alert-detail__section"},Lse={class:"template-alert-detail__entry"},Nse={key:0},Pse={key:1,class:"template-alert-detail__state"},Dx=48,YO=5,Rse=vt(y.defineComponent({__name:"BigScreenTemplateRenderer",props:{runtime:{},showHalo:{type:Boolean},loadAlertDetail:{type:Function}},emits:["secretTap","openDuty"],setup(r,{emit:e}){const t=r,a=e,n=y.ref("active"),i=y.ref("all"),o=y.ref(null),s=y.ref(!1),l=y.ref(null),u=y.ref(!1),c=y.ref("");let f=0;const h=y.computed(()=>{var P;return((P=t.runtime)==null?void 0:P.profile.baseWidth)||1920}),v=y.computed(()=>{var P;return((P=t.runtime)==null?void 0:P.profile.baseHeight)||1080}),d=y.computed(()=>{var P;return(((P=t.runtime)==null?void 0:P.widgets)||[]).filter(O=>O.enabled)}),p=y.computed(()=>d.value.some(P=>P.widgetType==="screen_header")),g=P=>{const O=`${P.layout.w/16*100}%`,G=`${P.layout.x/16*100}%`;if(!p.value)return{left:G,top:`${P.layout.y/12*100}%`,width:O,height:`${P.layout.h/12*100}%`};if(P.widgetType==="screen_header")return{left:G,top:"0",width:O,height:`${Dx/v.value*100}%`};const F=(v.value-Dx-YO)/11,B=Dx+YO+Math.max(0,P.layout.y-1)*F;return{left:G,top:`${B/v.value*100}%`,width:O,height:`${P.layout.h*F/v.value*100}%`}},m=P=>P.data.stats||{},_=P=>P.data.items||[],S=P=>P.data.groups||[];function x(P){const O=String(P.severity||"").toLowerCase();return O.includes("crit")||O.includes("high")?"high":O.includes("warn")||O.includes("mid")?"mid":"low"}function b(P){return{high:"#ef4444",mid:"#f59e0b",low:"#38bdf8"}[x(P)]}function w(P){return String(P.status||"").toUpperCase()==="RESOLVED"}const C=P=>_(P).filter(O=>n.value==="resolved"?w(O):!w(O)).filter(O=>i.value==="all"||x(O)===i.value),E=P=>{const O=m(P);return[{label:"告警中",value:"active",badge:Number(O.todayPending||0)},{label:"已恢复",value:"resolved",badge:Number(O.todayResolved||0)}]},T=P=>{const O=_(P).filter(G=>n.value==="resolved"?w(G):!w(G));return[{label:"全部",value:"all",badge:O.length},{label:"严重",value:"high",badge:O.filter(G=>x(G)==="high").length},{label:"警告",value:"mid",badge:O.filter(G=>x(G)==="mid").length},{label:"提示",value:"low",badge:O.filter(G=>x(G)==="low").length}]};function D(){t.runtime||a("secretTap")}async function A(P){const O=++f;o.value=P,l.value=null,c.value="",u.value=!0,s.value=!0;try{const G=t.loadAlertDetail?await t.loadAlertDetail(P.id):null;O===f&&(l.value=G.alert||null)}catch(G){O===f&&(c.value=G instanceof Error?G.message:"获取告警详情失败")}finally{O===f&&(u.value=!1)}}const I=y.computed(()=>({...o.value||{},...l.value||{}})),M=y.computed(()=>{var G,F,B,$;const P=I.value;if(!P.id)return[];const O=P.labels||{};return[P.source?`来源 · ${P.source}`:"",P.groupName||(G=P.groupNames)!=null&&G[0]?`分组 · ${P.groupName||((F=P.groupNames)==null?void 0:F[0])}`:"",P.assignedUserName||(B=P.assignedUsers)!=null&&B[0]?`负责人 · ${P.assignedUserName||(($=P.assignedUsers)==null?void 0:$[0])}`:"",P.severityText||P.severity?`级别 · ${P.severityText||P.severity}`:"",P.firedAt?`首次触发 · ${P.firedAt}`:"",P.triggerTime?`触发时间 · ${P.triggerTime}`:"",P.escalationCount!=null?`触发次数 · ${P.escalationCount}`:"",O.job?`Job · ${O.job}`:"",O.instance?`Instance · ${O.instance}`:""].filter(Boolean)}),L=y.computed(()=>{var G,F;const P=(((G=l.value)==null?void 0:G.actions)||[]).map(B=>({type:"action",time:B.createdAt||"",title:N(B.actionType),content:B.content||"",operator:B.operatorName||""})),O=(((F=l.value)==null?void 0:F.fires)||[]).map(B=>({type:"fire",time:B.firedAt||"",title:`告警触发 · ${B.severityText||B.severity||""}`,content:B.content||B.triggerValue||"",chartValues:B.chartValues||[],chartTimestamps:B.chartTimestamps||[]}));return[...P,...O].sort((B,$)=>String(B.time).localeCompare(String($.time)))});function N(P){return{ASSIGN:"分配",ACK:"确认",ACKNOWLEDGED:"确认",COMMENT:"备注",ESCALATE:"升级",RESOLVE:"解决",RESOLVED:"解决",REOPEN:"告警复现",SUPPRESS:"抑制",SILENCE:"静默",REASSIGN:"转交",COLLABORATE:"协同处理"}[P||""]||P||"操作"}function R(){f++,s.value=!1,l.value=null,c.value=""}return(P,O)=>{var G,F;return y.openBlock(),y.createElementBlock("div",{class:"template-screen",onDblclick:D},[r.runtime?(y.openBlock(),y.createElementBlock("div",{key:1,class:"template-screen__canvas",style:y.normalizeStyle({aspectRatio:`${h.value}/${v.value}`})},[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(d.value,B=>(y.openBlock(),y.createElementBlock("article",{key:B.id,class:y.normalizeClass(["template-screen__widget",{"template-screen__widget--header":B.widgetType==="screen_header"}]),style:y.normalizeStyle(g(B))},[B.widgetType==="screen_header"?(y.openBlock(),y.createElementBlock("div",bse,[y.createVNode(zx,{title:String(B.props.title||"运维监控大屏"),time:String(B.data.timeText||"--:--"),date:`${B.data.dateText||""} ${B.data.weekdayText||""}`,onTitleDoubleClick:O[0]||(O[0]=$=>a("secretTap"))},null,8,["title","time","date"])])):B.widgetType==="external_embed"?(y.openBlock(),y.createBlock(Ox,{key:1,title:B.title||"外部仪表盘",url:String(B.props.url||"")},null,8,["title","url"])):B.widgetType==="endpoint_distribution"?(y.openBlock(),y.createBlock(Jl,{key:2,title:B.title||"端点分布图",class:"template-screen__panel"},{default:y.withCtx(()=>[y.createVNode(Rx,{items:_(B)},null,8,["items"])]),_:2},1032,["title"])):B.widgetType==="alert_latest"?(y.openBlock(),y.createBlock(Jl,{key:3,title:B.title||"最新告警",class:"template-screen__panel"},{"header-center":y.withCtx(()=>[y.createVNode(Ex,{modelValue:n.value,"onUpdate:modelValue":O[1]||(O[1]=$=>n.value=$),items:E(B),variant:"tech",size:"xs","aria-label":"告警状态筛选"},null,8,["modelValue","items"])]),"header-extra":y.withCtx(()=>[y.createVNode(Ex,{modelValue:i.value,"onUpdate:modelValue":O[2]||(O[2]=$=>i.value=$),items:T(B),variant:"tech",size:"xs","aria-label":"告警级别筛选"},null,8,["modelValue","items"])]),default:y.withCtx(()=>[y.createElementVNode("div",wse,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(C(B),$=>{var j;return y.openBlock(),y.createBlock(Ix,{key:$.id,title:$.title,group:((j=$.groupNames)==null?void 0:j.join(" / "))||"未分组",time:$.firedAt,"status-text":$.statusText||$.status,accent:b($),onSelect:W=>A($)},{aside:y.withCtx(()=>{var W;return[(W=$.chartValues)!=null&&W.length?(y.openBlock(),y.createBlock(zp,{key:0,values:$.chartValues,timestamps:$.chartTimestamps||[],"trigger-time":$.firedAt,"trigger-value":$.triggerValue||"",color:b($),height:72,compact:""},null,8,["values","timestamps","trigger-time","trigger-value","color"])):y.createCommentVNode("",!0)]}),_:2},1032,["title","group","time","status-text","accent","onSelect"])}),128)),C(B).length?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock("div",Cse,"暂无符合条件的告警"))])]),_:2},1032,["title"])):B.widgetType==="alert_overview"?(y.openBlock(),y.createElementBlock("div",Tse,[(y.openBlock(),y.createElementBlock(y.Fragment,null,y.renderList([{label:"总数",key:"todayTotal",tone:"oklch(0.82 0.13 200)"},{label:"待处理",key:"todayPending",tone:"oklch(0.82 0.15 75)"},{label:"已处理",key:"todayResolved",tone:"oklch(0.74 0.16 155)"},{label:"逾期待处理",key:"overdueTotal",tone:"oklch(0.68 0.22 25)"}],$=>y.createVNode(Lx,{key:$.key,label:$.label,tone:$.tone},{default:y.withCtx(()=>[y.createVNode(Sse,{value:m(B)[$.key]||0,tone:$.tone,size:"lg"},null,8,["value","tone"])]),_:2},1032,["label","tone"])),64))])):(y.openBlock(),y.createBlock(Jl,{key:5,title:B.title||B.widgetType,class:"template-screen__panel"},y.createSlots({default:y.withCtx(()=>{var $,j,W,V,q,Ce,fe,ne,we,se,xe,qe,Pe;return[B.widgetType==="robot"?(y.openBlock(),y.createElementBlock("div",Ese,[r.showHalo?(y.openBlock(),y.createBlock(Bx,{key:0,width:180})):y.createCommentVNode("",!0),y.createVNode(Vx,{emotion:String(B.data.emotion||"neutral")},null,8,["emotion"])])):B.widgetType==="duty_today"?(y.openBlock(),y.createBlock(Mx,{key:1,compact:"","person-name":((W=(j=($=S(B)[0])==null?void 0:$.users)==null?void 0:j[0])==null?void 0:W.nickName)||((Ce=(q=(V=S(B)[0])==null?void 0:V.users)==null?void 0:q[0])==null?void 0:Ce.username)||"暂无值班人员","person-phone":((we=(ne=(fe=S(B)[0])==null?void 0:fe.users)==null?void 0:ne[0])==null?void 0:we.phone)||"","person-tag":((se=S(B)[0])==null?void 0:se.groupName)||"每日告警值班"},null,8,["person-name","person-phone","person-tag"])):B.widgetType==="build_projects"?(y.openBlock(),y.createBlock(Px,{key:2,items:_(B),"building-count":Number(((xe=B.data.summary)==null?void 0:xe.buildingCount)||0),"today-builds":Number(((qe=B.data.summary)==null?void 0:qe.todayBuilds)||0),"success-rate":Number(((Pe=B.data.summary)==null?void 0:Pe.successRate)||0)},null,8,["items","building-count","today-builds","success-rate"])):B.widgetType==="build_distribution"?(y.openBlock(),y.createBlock(Nx,{key:3,items:_(B),total:Number(B.data.total||0)},null,8,["items","total"])):(y.openBlock(),y.createElementBlock("div",Dse,"暂无可展示内容"))]}),_:2},[B.widgetType==="duty_today"&&B.props.showAllButton!==!1?{name:"header-extra",fn:y.withCtx(()=>[y.createVNode(mf,{variant:"secondary",appearance:"tech",size:"xs",onClick:O[3]||(O[3]=$=>a("openDuty"))},{default:y.withCtx(()=>[...O[5]||(O[5]=[y.createTextVNode("全部值班",-1)])]),_:1})]),key:"0"}:void 0]),1032,["title"]))],6))),128))],4)):(y.openBlock(),y.createElementBlock("div",xse,"请先在设置中选择大屏模板")),o.value?(y.openBlock(),y.createBlock($O,{key:2,modelValue:s.value,"onUpdate:modelValue":O[4]||(O[4]=B=>s.value=B),title:"告警详情",subtitle:`${I.value.groupName||((G=I.value.groupNames)==null?void 0:G[0])||"系统告警"} · ${I.value.assignedUserName||((F=I.value.assignedUsers)==null?void 0:F[0])||"未分配"}`,layout:"monitor",level:x(I.value)==="high"?"critical":x(I.value)==="mid"?"warning":"info",content:I.value.content||"暂无详细内容","info-items":M.value,"monitor-fields-variant":"compact",trend:I.value.chartValues||[],"chart-timestamps":I.value.chartTimestamps||[],"chart-trigger-time":I.value.triggerTime||I.value.firedAt||"","chart-trigger-value":I.value.triggerValue||"","chart-title":"监控折线图","chart-placement":"bottom","chart-show-extrema-markers":!1,"chart-enable-extrema-hover":!0,"chart-enable-selection-zoom":!0,"show-cancel-button":!1,"show-confirm-button":!1,"show-close-button":!0,onClose:R},{details:y.withCtx(()=>{var B,$,j,W;return[y.createElementVNode("div",kse,[u.value?(y.openBlock(),y.createElementBlock("div",Ase,"正在加载告警详情...")):c.value?(y.openBlock(),y.createElementBlock("div",Mse,y.toDisplayString(c.value),1)):(y.openBlock(),y.createElementBlock("section",Ise,[y.createElementVNode("p",null,"完整流水(操作 "+y.toDisplayString((($=(B=l.value)==null?void 0:B.actions)==null?void 0:$.length)||0)+" 条 + 触发 "+y.toDisplayString(((W=(j=l.value)==null?void 0:j.fires)==null?void 0:W.length)||0)+" 次)",1),L.value.length?(y.openBlock(),y.createBlock(UO,{key:0},{default:y.withCtx(()=>[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(L.value,(V,q)=>(y.openBlock(),y.createBlock(WO,{key:`${V.type}-${V.time}-${q}`,last:q===L.value.length-1,time:V.time,"dot-color":V.type==="fire"?"#ff7d00":"#0fc6c2"},{default:y.withCtx(()=>{var Ce;return[y.createElementVNode("div",Lse,[y.createElementVNode("strong",null,y.toDisplayString(V.title),1),V.operator?(y.openBlock(),y.createElementBlock("span",Nse,y.toDisplayString(V.operator),1)):y.createCommentVNode("",!0),y.createElementVNode("p",null,y.toDisplayString(V.content),1),(Ce=V.chartValues)!=null&&Ce.length?(y.openBlock(),y.createBlock(zp,{key:1,values:V.chartValues,timestamps:V.chartTimestamps||[],height:180,color:V.type==="fire"?"#ff7d00":"#38bdf8","enable-selection-zoom":!0},null,8,["values","timestamps","color"])):y.createCommentVNode("",!0)])]}),_:2},1032,["last","time","dot-color"]))),128))]),_:1})):(y.openBlock(),y.createElementBlock("div",Pse,"暂无流水记录"))]))])]}),footer:y.withCtx(()=>[y.createVNode(mf,{variant:"secondary",appearance:"tech",size:"lg",onClick:R},{default:y.withCtx(()=>[...O[6]||(O[6]=[y.createTextVNode("关闭窗口",-1)])]),_:1})]),_:1},8,["modelValue","subtitle","level","content","info-items","trend","chart-timestamps","chart-trigger-time","chart-trigger-value"])):y.createCommentVNode("",!0)],32)}}}),[["__scopeId","data-v-3c0027ca"]]),XO={screen_header:{dateText:"2026-07-27",timeText:"14:30",weekdayText:"星期一"},robot:{status:"online",mode:"guard",emotion:"neutral",generatedAt:"2026-07-27 14:30:00",summary:{dutyGroups:3,todayAlerts:12,buildingCount:4,endpointNodes:86},alerts:{todayTotal:12,todayPending:3,criticalCount:1,warningCount:5},builds:{buildingCount:4,todayBuilds:28,successRate:98.6}},duty_today:{date:"2026-07-27",totalGroups:3,totalUsers:8,groups:[{groupId:1,groupName:"平台组",users:[{userId:101,nickName:"张工",username:"zhang"},{userId:102,nickName:"李工",username:"li"}]},{groupId:2,groupName:"网络组",users:[{userId:103,nickName:"王工",username:"wang"}]}]},alert_overview:{stats:{todayTotal:12,todayPending:3,todayResolved:8,overdueTotal:1}},alert_latest:{total:3,stats:{todayTotal:12,todayPending:3,overdueTotal:1,criticalCount:1,warningCount:5,infoCount:6},items:[{id:1,alertId:"AL-20260727-001",title:"边缘节点延迟升高",severity:"WARN",severityText:"警告",status:"pending",statusText:"待处理",source:"edge-01",firedAt:"14:20",groupNames:["网络组"]},{id:2,alertId:"AL-20260727-002",title:"构建队列等待时间过长",severity:"CRITICAL",severityText:"严重",status:"processing",statusText:"处理中",source:"CI/CD",firedAt:"14:08",groupNames:["平台组"]},{id:3,alertId:"AL-20260727-003",title:"磁盘使用率接近阈值",severity:"INFO",severityText:"提示",status:"pending",statusText:"待处理",source:"node-03",firedAt:"13:56",groupNames:["运维组"]}]},build_projects:{summary:{buildingCount:4,todayBuilds:28,successRate:98.6},items:[{pipelineId:1,buildId:101,jobName:"eagle-eye-web",statusText:"构建中",currentStage:"测试",buildUser:"system",progress:68},{pipelineId:2,buildId:102,jobName:"quark-api",statusText:"构建中",currentStage:"镜像打包",buildUser:"李工",progress:42}]},build_distribution:{total:100,items:[{name:"应用构建",count:42},{name:"镜像构建",count:27},{name:"基础设施",count:18},{name:"其他任务",count:13}]},endpoint_distribution:{summary:{total:3},items:[{id:1,nodeName:"edge-01",nodeIp:"10.10.2.11",nodeStatus:!0,heartbeatResults:[{targetName:"API Gateway",targetIp:"10.10.1.10",latencyMs:12.4}]},{id:2,nodeName:"edge-02",nodeIp:"10.10.2.12",nodeStatus:!0,heartbeatResults:[{targetName:"API Gateway",targetIp:"10.10.1.10",latencyMs:18.7}]},{id:3,nodeName:"edge-03",nodeIp:"10.10.2.13",nodeStatus:!1,heartbeatResults:[]}]}};function Ose(r){return JSON.parse(JSON.stringify(XO[r]))}Je.BigScreenAlertRow=Ix,Je.BigScreenBuildDistribution=Nx,Je.BigScreenBuildProjects=Px,Je.BigScreenDutyContent=Mx,Je.BigScreenEndpointDistribution=Rx,Je.BigScreenExternalEmbed=Ox,Je.BigScreenHeader=FV,Je.BigScreenMetricCard=Lx,Je.BigScreenPanel=Jl,Je.BigScreenRobotSummary=jV,Je.BigScreenTemplateRenderer=Rse,Je.QuarkAlertDialog=$O,Je.QuarkBaseModal=Gx,Je.QuarkCollapse=hse,Je.QuarkCollapseItem=pse,Je.QuarkDutyCompact=l4,Je.QuarkMetricTrendChart=zp,Je.QuarkRobot=Vx,Je.QuarkRobotHalo=Bx,Je.QuarkTimeline=UO,Je.QuarkTimelineItem=WO,Je.QuarkTopHeader=zx,Je.QuarkUiButton=mf,Je.QuarkUiSegmented=Ex,Je.bigScreenPreviewFixtures=XO,Je.getBigScreenPreviewData=Ose,Object.defineProperty(Je,Symbol.toStringTag,{value:"Module"})}));
91
+ `}},xAxis:{type:"category",boundaryGap:!1,data:b.value,minInterval:1,axisLabel:{color:J,fontSize:ue?9:10,interval:"auto",hideOverlap:!0,margin:10},axisLine:{lineStyle:{color:"rgba(148,163,184,0.22)"}},axisTick:{show:!1}},yAxis:{type:"value",scale:!0,min:Qe=>Qe.min===Qe.max?Qe.min-1:void 0,max:Qe=>Qe.min===Qe.max?Qe.max+1:void 0,splitNumber:ue?3:4,axisLabel:{color:J,fontSize:ue?9:10,formatter:Qe=>S(Qe),margin:8},splitLine:{lineStyle:{color:le,type:"dashed"}},axisLine:{show:!1},axisTick:{show:!1}},series:We}});function W(){t.value&&((!o||o.isDisposed())&&(o=O$(t.value,void 0,{renderer:"canvas"}),we()),o.clear(),o.setOption(j.value,!0))}async function V(J=!1){await y.nextTick(),t.value&&(J&&o&&(o.dispose(),o=null),W())}function q(){n.value=null}function Ce(J){const le=e.compact,ue=le?40:52,We=le?18:26,Qe=le?34:42,Rt=le?22:34;return{minX:ue,maxX:Math.max(ue,J.width-We),top:Qe,height:Math.max(0,J.height-Qe-Rt)}}function fe(){i.value=null,f=null,window.removeEventListener("mousemove",je),window.removeEventListener("mouseup",lr),window.removeEventListener("touchmove",Ql),window.removeEventListener("touchend",ZO),window.removeEventListener("touchcancel",qO)}function ne(){c&&(clearTimeout(c),c=null),h=null}function we(){!o||l||(o.getZr().on("mousedown",Xt),l=!0)}function se(){!o||!l||(o.getZr().off("mousedown",Xt),l=!1)}function xe(){!t.value||u||(t.value.addEventListener("touchstart",Gn,{passive:!0}),u=!0)}function qe(){!t.value||!u||(t.value.removeEventListener("touchstart",Gn),u=!1)}function Pe(J){if(!f)return;const le=Math.min(f.startX,J),ue=Math.max(f.startX,J);i.value={left:`${le}px`,top:`${f.top}px`,width:`${Math.max(0,ue-le)}px`,height:`${f.height}px`}}function Xe(J,le){var KO,jO;if(!g.value.length)return null;const ue=((KO=n.value)==null?void 0:KO.start)??0,We=((jO=n.value)==null?void 0:jO.end)??g.value.length-1,Qe=We-ue+1;if(Qe<2||!f)return null;const Rt=f.maxX-f.minX;if(Rt<=0)return null;const ia=(J-f.minX)/Rt,Gp=(le-f.minX)/Rt,kx=Math.round(Math.min(ia,Gp)*(Qe-1)),Fp=Math.round(Math.max(ia,Gp)*(Qe-1)),yf=Math.max(ue,Math.min(We,ue+kx)),Ax=Math.max(ue,Math.min(We,ue+Fp));return Ax-yf<1||yf===ue&&Ax===We?null:{start:yf,end:Ax}}function je(J){if(!f)return;const le=J.clientX-f.rect.left,ue=Math.max(f.minX,Math.min(f.maxX,le));Pe(ue)}function yt(J){if(!f)return;if(Math.abs(J-f.startX)>=12){const ue=Xe(f.startX,J);ue&&(n.value=ue)}fe()}function lr(J){if(!f)return;const le=J.clientX-f.rect.left,ue=Math.max(f.minX,Math.min(f.maxX,le));yt(ue)}function Xt(J){if(!e.enableSelectionZoom||e.compact||x.value.length<2||!t.value||J.event&&J.event.button!==0)return;const le=t.value.getBoundingClientRect(),ue=Ce(le);J.offsetX<ue.minX||J.offsetX>ue.maxX||J.offsetY<ue.top||J.offsetY>ue.top+ue.height||(f={rect:le,startX:J.offsetX,minX:ue.minX,maxX:ue.maxX,top:ue.top,height:ue.height},Pe(J.offsetX),window.addEventListener("mousemove",je),window.addEventListener("mouseup",lr))}function ba(J){if(!t.value)return null;const le=J.touches[0]||J.changedTouches[0];if(!le)return null;const ue=t.value.getBoundingClientRect();return{offsetX:le.clientX-ue.left,offsetY:le.clientY-ue.top,clientX:le.clientX,clientY:le.clientY}}function Gn(J){if(!e.enableSelectionZoom||e.compact||x.value.length<2||J.touches.length!==1)return;const le=ba(J);le&&(ne(),fe(),h={startClientX:le.clientX,startClientY:le.clientY,startOffsetX:le.offsetX,startOffsetY:le.offsetY,active:!1,cancelled:!1},window.addEventListener("touchmove",Ql,{passive:!1}),window.addEventListener("touchend",ZO,{passive:!1}),window.addEventListener("touchcancel",qO,{passive:!1}),c=setTimeout(()=>{!h||h.cancelled||(Xt({offsetX:h.startOffsetX,offsetY:h.startOffsetY}),f&&(h.active=!0,Pe(h.startOffsetX)))},$oe))}function Ql(J){const le=ba(J);if(!le)return;if(h&&!h.active){const We=le.clientX-h.startClientX,Qe=le.clientY-h.startClientY;if(Math.abs(Qe)>Uoe&&Math.abs(Qe)>Math.abs(We)*1.2){h.cancelled=!0,ne(),fe();return}return}if(!f)return;const ue=Math.max(f.minX,Math.min(f.maxX,le.offsetX));Pe(ue),J.preventDefault()}function ZO(J){const le=!!(h!=null&&h.active);if(ne(),!f){fe();return}const ue=ba(J);if(!ue){fe();return}const We=Math.max(f.minX,Math.min(f.maxX,ue.offsetX));yt(We),le&&J.preventDefault()}function qO(){ne(),fe()}return y.onMounted(()=>{V(!0),t.value&&(s=new ResizeObserver(()=>{o==null||o.resize()}),s.observe(t.value)),xe()}),y.watch(j,()=>{V(!1)},{deep:!0}),y.watch(C,(J,le)=>{typeof window<"u"&&window.__QUARK_DEBUG_METRIC__&&console.debug("[MetricTrendChart]",{prevSignature:le,nextSignature:J,rawValues:e.values,rawTimestamps:e.timestamps,safeValues:p.value,points:g.value.length});const ue=le?JSON.parse(le).values.length:0,We=JSON.parse(J).values.length;V(ue<2||We<2)}),y.watch(()=>e.height,()=>{V(!1)}),y.watch(()=>[e.values,e.timestamps],()=>{n.value=null},{deep:!0}),y.onBeforeUnmount(()=>{se(),qe(),s==null||s.disconnect(),s=null,ne(),fe(),o==null||o.dispose(),o=null}),(J,le)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["metric-trend-chart",{"is-compact":r.compact,"is-selection-enabled":r.enableSelectionZoom&&!r.compact}])},[w.value?(y.openBlock(),y.createElementBlock("button",{key:0,type:"button",class:"metric-trend-chart__reset",onClick:q}," 重置范围 ")):y.createCommentVNode("",!0),y.createElementVNode("div",{ref_key:"chartRef",ref:t,class:"metric-trend-chart__canvas",style:y.normalizeStyle({height:`${r.height}px`})},null,4),i.value?(y.openBlock(),y.createElementBlock("div",{key:1,class:"metric-trend-chart__selection",style:y.normalizeStyle(i.value)},null,4)):y.createCommentVNode("",!0),p.value.length>0&&!r.compact?(y.openBlock(),y.createElementBlock("div",Voe,[y.createElementVNode("div",{class:y.normalizeClass(["metric-trend-chart__stat",{"is-active":a.value==="min"}]),onMouseenter:le[0]||(le[0]=ue=>E("min")),onMouseleave:T},[le[2]||(le[2]=y.createElementVNode("span",{class:"metric-trend-chart__stat-label"},"最小值",-1)),y.createElementVNode("span",Boe,y.toDisplayString(S(I.value.min)),1)],34),y.createElementVNode("div",{class:y.normalizeClass(["metric-trend-chart__stat",{"is-active":a.value==="max"}]),onMouseenter:le[1]||(le[1]=ue=>E("max")),onMouseleave:T},[le[3]||(le[3]=y.createElementVNode("span",{class:"metric-trend-chart__stat-label"},"最大值",-1)),y.createElementVNode("span",zoe,y.toDisplayString(S(I.value.max)),1)],34),y.createElementVNode("div",Goe,[le[4]||(le[4]=y.createElementVNode("span",{class:"metric-trend-chart__stat-label"},"平均值",-1)),y.createElementVNode("span",Foe,y.toDisplayString(S(I.value.avg)),1)])])):y.createCommentVNode("",!0),p.value.length<2?(y.openBlock(),y.createElementBlock("div",Hoe,y.toDisplayString(p.value.length===1?"数据点不足":"暂无趋势数据"),1)):y.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-2cda3f9e"]]),Woe=["type","disabled"],mf=vt(y.defineComponent({__name:"UiButton",props:{variant:{default:"primary"},appearance:{default:"dialog"},size:{default:"md"},type:{default:"button"},disabled:{type:Boolean,default:!1},block:{type:Boolean,default:!1}},setup(r){return(e,t)=>(y.openBlock(),y.createElementBlock("button",{class:y.normalizeClass(["ui-button",[`ui-button--${r.variant}`,`ui-button--${r.appearance}`,`ui-button--${r.size}`,{"ui-button--block":r.block}]]),type:r.type,disabled:r.disabled},[y.renderSlot(e.$slots,"default",{},void 0,!0)],10,Woe))}}),[["__scopeId","data-v-5f786839"]]),Yoe={class:"alert-dialog-info"},Xoe={key:0,class:"alert-dialog-meta"},Zoe={key:1,class:"alert-dialog-grid"},qoe=["disabled","onClick"],Koe={class:"alert-dialog-field-label"},joe={key:2,class:"alert-dialog-content"},Qoe={key:0,class:"alert-dialog-chart-card"},Joe={class:"alert-dialog-chart-title"},ese={key:1,class:"alert-dialog-normal"},tse={key:0,class:"alert-dialog-meta"},rse={key:1,class:"alert-dialog-content"},ase={key:2,class:"alert-dialog-details"},nse={key:3,class:"alert-dialog-footer"},$O=vt(y.defineComponent({__name:"AlertDialog",props:{modelValue:{type:Boolean},title:{},subtitle:{default:""},content:{default:""},layout:{default:"normal"},level:{default:"info"},source:{default:""},timestamp:{default:""},showCloseButton:{type:Boolean,default:!0},showCancelButton:{type:Boolean,default:!1},showConfirmButton:{type:Boolean,default:!1},titleAlign:{default:"center"},cancelText:{default:"关闭"},confirmText:{default:"确认"},actionSize:{default:"md"},closeOnMask:{type:Boolean,default:!0},autoCloseMs:{default:0},monitorFields:{default:()=>[]},trend:{default:()=>[]},chartTimestamps:{default:()=>[]},chartTriggerTime:{default:""},chartTriggerValue:{default:""},chartContext:{default:()=>({})},chartTitle:{default:""},chartPlacement:{default:"side"},chartShowExtremaMarkers:{type:Boolean,default:!1},chartEnableExtremaHover:{type:Boolean,default:!1},chartEnableSelectionZoom:{type:Boolean,default:!1},infoItems:{default:()=>[]},monitorFieldsVariant:{default:"cards"}},emits:["update:modelValue","close","confirm","timeout"],setup(r,{emit:e}){const t=r,a=e;let n=null,i=null;const o=y.ref(0),s=y.ref(null),l=y.computed(()=>t.layout==="monitor"?"min(92vw, 1180px)":"min(92vw, 760px)"),u=y.computed(()=>t.showCancelButton||t.showConfirmButton),c=y.computed(()=>{const S=[];if(t.source&&S.push({key:"source",value:t.source}),t.timestamp){const x=typeof t.timestamp=="number"?new Date(t.timestamp):new Date(String(t.timestamp));S.push({key:"timestamp",value:Number.isNaN(x.getTime())?String(t.timestamp):x.toLocaleString("zh-CN")})}return S}),f=y.computed(()=>{const S=[...c.value];return t.infoItems.forEach((x,b)=>{x&&S.push({key:`info-${b}`,value:x})}),S}),h=y.computed(()=>t.trend.filter(S=>Number.isFinite(S))),v=y.computed(()=>h.value.length>1),d=y.computed(()=>{switch(t.level){case"critical":return"#ef4444";case"warning":return"#f59e0b";case"recovery":return"#10b981";default:return"#38bdf8"}});function p(){n&&(clearTimeout(n),n=null),i&&(clearInterval(i),i=null),o.value=0}function g(){p(),!(!t.modelValue||!t.autoCloseMs||t.autoCloseMs<=0)&&(o.value=t.autoCloseMs,i=setInterval(()=>{o.value=Math.max(0,o.value-1e3)},1e3),n=setTimeout(()=>{p(),a("timeout"),m()},t.autoCloseMs))}function m(){p(),s.value=null,a("update:modelValue",!1),a("close")}function _(S){s.value=s.value===S?null:S}return y.watch(()=>[t.modelValue,t.autoCloseMs],g,{immediate:!0}),y.watch(()=>t.modelValue,S=>{S||(s.value=null)}),y.onBeforeUnmount(p),(S,x)=>(y.openBlock(),y.createBlock(Gx,{"model-value":r.modelValue,title:r.title,eyebrow:"","title-align":r.titleAlign,"show-close-button":r.showCloseButton,"close-on-mask":r.closeOnMask,padded:!1,width:l.value,"panel-class":"alert-dialog-panel","mask-class":"alert-dialog-mask","onUpdate:modelValue":x[1]||(x[1]=b=>a("update:modelValue",b)),onClose:m},{default:y.withCtx(()=>[y.createElementVNode("div",{class:y.normalizeClass(["alert-dialog",[`alert-dialog--${r.level}`,`alert-dialog--${r.layout}`,`alert-dialog--title-${r.titleAlign}`]])},[r.layout==="monitor"?(y.openBlock(),y.createElementBlock("div",{key:0,class:y.normalizeClass(["alert-dialog-monitor",{"alert-dialog-monitor--bottom":r.chartPlacement==="bottom"}])},[y.createElementVNode("div",Yoe,[f.value.length?(y.openBlock(),y.createElementBlock("div",Xoe,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(f.value,b=>(y.openBlock(),y.createElementBlock("span",{key:b.key,class:"alert-dialog-meta-item"},y.toDisplayString(b.value),1))),128))])):y.createCommentVNode("",!0),r.monitorFields.length?(y.openBlock(),y.createElementBlock("div",Zoe,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(r.monitorFields,b=>(y.openBlock(),y.createElementBlock("button",{key:b.label,type:"button",class:y.normalizeClass(["alert-dialog-field",`alert-dialog-field--${r.monitorFieldsVariant}`,{"is-clickable":b.marker,"is-active":s.value===b.marker}]),disabled:!b.marker,onClick:w=>b.marker&&_(b.marker)},[y.createElementVNode("span",Koe,y.toDisplayString(b.label),1),y.createElementVNode("span",{class:y.normalizeClass(["alert-dialog-field-value",{"is-mono":b.mono,"is-accent":b.accent}])},y.toDisplayString(b.value),3)],10,qoe))),128))])):y.createCommentVNode("",!0),r.content?(y.openBlock(),y.createElementBlock("p",joe,y.toDisplayString(r.content),1)):y.renderSlot(S.$slots,"default",{},void 0,!0,3)]),v.value?(y.openBlock(),y.createElementBlock("div",Qoe,[y.createElementVNode("p",Joe,y.toDisplayString(r.chartTitle||"监控趋势"),1),y.createVNode(zp,{class:"alert-dialog-chart",values:h.value,timestamps:r.chartTimestamps,"trigger-time":r.chartTriggerTime,"trigger-value":r.chartTriggerValue,context:r.chartContext,color:d.value,height:220,"show-extrema-markers":r.chartShowExtremaMarkers,"enable-extrema-hover":r.chartEnableExtremaHover,"active-marker":s.value,"enable-selection-zoom":r.chartEnableSelectionZoom},null,8,["values","timestamps","trigger-time","trigger-value","context","color","show-extrema-markers","enable-extrema-hover","active-marker","enable-selection-zoom"])])):y.createCommentVNode("",!0)],2)):(y.openBlock(),y.createElementBlock("div",ese,[f.value.length?(y.openBlock(),y.createElementBlock("div",tse,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(f.value,b=>(y.openBlock(),y.createElementBlock("span",{key:b.key,class:"alert-dialog-meta-item"},y.toDisplayString(b.value),1))),128))])):y.createCommentVNode("",!0),r.content?(y.openBlock(),y.createElementBlock("p",rse,y.toDisplayString(r.content),1)):y.renderSlot(S.$slots,"default",{},void 0,!0,2)])),S.$slots.details?(y.openBlock(),y.createElementBlock("div",ase,[y.renderSlot(S.$slots,"details",{},void 0,!0)])):y.createCommentVNode("",!0),S.$slots.footer||u.value?(y.openBlock(),y.createElementBlock("div",nse,[y.renderSlot(S.$slots,"footer",{},()=>[r.showCancelButton?(y.openBlock(),y.createBlock(mf,{key:0,variant:"secondary",appearance:"dialog",size:r.actionSize,onClick:m},{default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(r.cancelText),1)]),_:1},8,["size"])):y.createCommentVNode("",!0),r.showConfirmButton?(y.openBlock(),y.createBlock(mf,{key:1,variant:"primary",appearance:"dialog",size:r.actionSize,onClick:x[0]||(x[0]=b=>a("confirm"))},{default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(r.confirmText),1)]),_:1},8,["size"])):y.createCommentVNode("",!0)],!0)])):y.createCommentVNode("",!0)],2)]),_:3},8,["model-value","title","title-align","show-close-button","close-on-mask","width"]))}}),[["__scopeId","data-v-ae5198b7"]]),UO=vt(y.defineComponent({__name:"Timeline",props:{theme:{default:"default"}},setup(r){return(e,t)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["quark-timeline",`quark-timeline--${r.theme}`])},[y.renderSlot(e.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-edeffd99"]]),ise={key:0,class:"quark-tl-item__label"},ose={key:1,class:"quark-tl-item__rail"},sse={class:"quark-tl-item__dot-content"},lse={class:"quark-tl-item__dot"},use={class:"quark-tl-item__body"},cse={class:"quark-tl-item__content"},fse={key:0,class:"quark-tl-item__time"},WO=vt(y.defineComponent({__name:"TimelineItem",props:{time:{},active:{type:Boolean,default:!1},last:{type:Boolean,default:!1},lineColor:{default:""},dotColor:{default:""},hideDot:{type:Boolean,default:!1},dotType:{default:"solid"},lineType:{default:"solid"},label:{default:""}},setup(r){return(e,t)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["quark-tl-item",{"quark-tl-item--active":r.active,"quark-tl-item--last":r.last}])},[e.$slots.label||r.label?(y.openBlock(),y.createElementBlock("div",ise,[y.renderSlot(e.$slots,"label",{},()=>[y.createTextVNode(y.toDisplayString(r.label),1)],!0)])):y.createCommentVNode("",!0),r.hideDot?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock("div",ose,[r.last?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock("div",{key:0,class:"quark-tl-item__line",style:y.normalizeStyle({borderColor:r.lineColor||void 0,borderLeftStyle:r.lineType})},null,4)),y.createElementVNode("div",sse,[y.createElementVNode("div",lse,[y.renderSlot(e.$slots,"dot",{},()=>[y.createElementVNode("div",{class:y.normalizeClass(["quark-tl-item__dot-inner",`quark-tl-item__dot-inner--${r.dotType}`]),style:y.normalizeStyle(r.dotColor?{backgroundColor:r.dotType==="solid"?r.dotColor:void 0,borderColor:r.dotColor}:{})},null,6)],!0)])])])),y.createElementVNode("div",use,[y.createElementVNode("div",cse,[y.renderSlot(e.$slots,"default",{},void 0,!0)]),r.time?(y.openBlock(),y.createElementBlock("div",fse,y.toDisplayString(r.time),1)):y.createCommentVNode("",!0)])],2))}}),[["__scopeId","data-v-192169cf"]]),hse=vt(y.defineComponent({__name:"Collapse",props:{defaultActiveKey:{default:()=>[]},accordion:{type:Boolean,default:!1},theme:{default:"default"},card:{type:Boolean,default:!1}},setup(r){const e=r,t=y.ref(new Set(e.defaultActiveKey));function a(n){e.accordion?t.value.has(n)?t.value.clear():t.value=new Set([n]):t.value.has(n)?(t.value.delete(n),t.value=new Set(t.value)):(t.value.add(n),t.value=new Set(t.value))}return y.provide("collapse-active-keys",t),y.provide("collapse-toggle",a),y.provide("collapse-theme",y.computed(()=>e.theme)),y.provide("collapse-card",y.computed(()=>e.card)),(n,i)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["quark-collapse",`quark-collapse--${r.theme}`,{"quark-collapse--card":r.card}])},[y.renderSlot(n.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-e15791ba"]]),vse={class:"quark-CollapseItem__header-content"},dse={class:"quark-CollapseItem__body"},pse=vt(y.defineComponent({__name:"CollapseItem",props:{itemKey:{},key:{},header:{},disabled:{type:Boolean,default:!1}},setup(r){const e=r,t=y.computed(()=>e.itemKey??e.key??e.header??"collapse-item"),a=y.inject("collapse-active-keys"),n=y.inject("collapse-toggle"),i=y.inject("collapse-theme"),o=y.inject("collapse-card"),s=y.computed(()=>a.value.has(t.value));function l(){e.disabled||n(t.value)}return(u,c)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["quark-CollapseItem",{"quark-CollapseItem--active":s.value,"quark-CollapseItem--card":y.unref(o),"quark-CollapseItem--disabled":r.disabled},`quark-CollapseItem--${y.unref(i)}`])},[y.createElementVNode("div",{class:y.normalizeClass(["quark-CollapseItem__header",{"quark-CollapseItem__header--active":s.value}]),onClick:l},[y.createElementVNode("span",{class:y.normalizeClass(["quark-CollapseItem__arrow",{"quark-CollapseItem__arrow--open":s.value}])},[...c[1]||(c[1]=[y.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"currentColor"},[y.createElementVNode("path",{d:"M4.7 2.3a.5.5 0 0 0-.7.7L7.3 6 4 9a.5.5 0 0 0 .7.7l3.7-3.7a.5.5 0 0 0 0-.7L4.7 2.3z"})],-1)])],2),y.createElementVNode("div",vse,[y.renderSlot(u.$slots,"header",{},()=>[y.createTextVNode(y.toDisplayString(r.header),1)],!0)]),u.$slots.extra?(y.openBlock(),y.createElementBlock("div",{key:0,class:"quark-CollapseItem__extra",onClick:c[0]||(c[0]=y.withModifiers(()=>{},["stop"]))},[y.renderSlot(u.$slots,"extra",{},void 0,!0)])):y.createCommentVNode("",!0)],2),y.withDirectives(y.createElementVNode("div",dse,[y.renderSlot(u.$slots,"default",{},void 0,!0)],512),[[y.vShow,s.value]])],2))}}),[["__scopeId","data-v-a1768f99"]]),gse=["aria-label"],mse=["aria-checked","onClick"],yse={class:"ui-segmented__label"},_se={key:0,class:"ui-segmented__badge"},Ex=vt(y.defineComponent({__name:"UiSegmented",props:{modelValue:{},items:{},ariaLabel:{},variant:{default:"default"},size:{default:"md"}},emits:["update:modelValue"],setup(r,{emit:e}){const t=e;return(a,n)=>(y.openBlock(),y.createElementBlock("div",{class:y.normalizeClass(["ui-segmented",[`ui-segmented--${r.variant}`,`ui-segmented--${r.size}`]]),role:"radiogroup","aria-label":r.ariaLabel},[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(r.items,i=>(y.openBlock(),y.createElementBlock("button",{key:i.value,class:y.normalizeClass(["ui-segmented__item",{"ui-segmented__item--active":r.modelValue===i.value}]),type:"button",role:"radio","aria-checked":r.modelValue===i.value,onClick:o=>t("update:modelValue",i.value)},[y.createElementVNode("span",yse,y.toDisplayString(i.label),1),i.badge!==void 0?(y.openBlock(),y.createElementBlock("span",_se,y.toDisplayString(i.badge),1)):y.createCommentVNode("",!0)],10,mse))),128))],10,gse))}}),[["__scopeId","data-v-3edc6ae6"]]),Sse=vt(y.defineComponent({__name:"UiMetricValue",props:{value:{},tone:{default:""},size:{default:"lg"}},setup(r){return(e,t)=>(y.openBlock(),y.createElementBlock("span",{class:y.normalizeClass(["ui-metric-value",`ui-metric-value--${r.size}`]),style:y.normalizeStyle(r.tone?{color:r.tone}:void 0)},y.toDisplayString(r.value),7))}}),[["__scopeId","data-v-fd8f0268"]]),xse={key:0,class:"template-screen__state"},bse={key:0,class:"template-screen__header"},wse={class:"template-screen__alerts"},Cse={key:0,class:"template-screen__placeholder"},Tse={key:4,class:"template-screen__metrics"},Ese={key:0,class:"template-screen__robot"},Dse={key:4,class:"template-screen__placeholder"},kse={class:"template-alert-detail"},Ase={key:0,class:"template-alert-detail__state"},Mse={key:1,class:"template-alert-detail__state is-error"},Ise={key:2,class:"template-alert-detail__section"},Lse={class:"template-alert-detail__entry"},Nse={key:0},Pse={key:1,class:"template-alert-detail__state"},Dx=48,YO=5,Rse=vt(y.defineComponent({__name:"BigScreenTemplateRenderer",props:{runtime:{},showHalo:{type:Boolean},loadAlertDetail:{type:Function}},emits:["secretTap","openDuty"],setup(r,{emit:e}){const t=r,a=e,n=y.ref("active"),i=y.ref("all"),o=y.ref(null),s=y.ref(!1),l=y.ref(null),u=y.ref(!1),c=y.ref("");let f=0;const h=y.computed(()=>{var P;return((P=t.runtime)==null?void 0:P.profile.baseWidth)||1920}),v=y.computed(()=>{var P;return((P=t.runtime)==null?void 0:P.profile.baseHeight)||1080}),d=y.computed(()=>{var P;return(((P=t.runtime)==null?void 0:P.widgets)||[]).filter(O=>O.enabled)}),p=y.computed(()=>d.value.some(P=>P.widgetType==="screen_header")),g=P=>{const O=`${P.layout.w/16*100}%`,G=`${P.layout.x/16*100}%`;if(!p.value)return{left:G,top:`${P.layout.y/12*100}%`,width:O,height:`${P.layout.h/12*100}%`};if(P.widgetType==="screen_header")return{left:G,top:"0",width:O,height:`${Dx/v.value*100}%`};const F=(v.value-Dx-YO)/11,B=Dx+YO+Math.max(0,P.layout.y-1)*F;return{left:G,top:`${B/v.value*100}%`,width:O,height:`${P.layout.h*F/v.value*100}%`}},m=P=>P.data.stats||{},_=P=>P.data.items||[],S=P=>P.data.groups||[];function x(P){const O=String(P.severity||"").toLowerCase();return O.includes("crit")||O.includes("high")?"high":O.includes("warn")||O.includes("mid")?"mid":"low"}function b(P){return{high:"#ef4444",mid:"#f59e0b",low:"#38bdf8"}[x(P)]}function w(P){return String(P.status||"").toUpperCase()==="RESOLVED"}const C=P=>_(P).filter(O=>n.value==="resolved"?w(O):!w(O)).filter(O=>i.value==="all"||x(O)===i.value),E=P=>{const O=m(P);return[{label:"告警中",value:"active",badge:Number(O.todayPending||0)},{label:"已恢复",value:"resolved",badge:Number(O.todayResolved||0)}]},T=P=>{const O=_(P).filter(G=>n.value==="resolved"?w(G):!w(G));return[{label:"全部",value:"all",badge:O.length},{label:"严重",value:"high",badge:O.filter(G=>x(G)==="high").length},{label:"警告",value:"mid",badge:O.filter(G=>x(G)==="mid").length},{label:"提示",value:"low",badge:O.filter(G=>x(G)==="low").length}]};function D(){t.runtime||a("secretTap")}async function A(P){const O=++f;o.value=P,l.value=null,c.value="",u.value=!0,s.value=!0;try{const G=t.loadAlertDetail?await t.loadAlertDetail(P.id):null;O===f&&(l.value=G.alert||null)}catch(G){O===f&&(c.value=G instanceof Error?G.message:"获取告警详情失败")}finally{O===f&&(u.value=!1)}}const I=y.computed(()=>({...o.value||{},...l.value||{}})),M=y.computed(()=>{var G,F,B,$;const P=I.value;if(!P.id)return[];const O=P.labels||{};return[P.source?`来源 · ${P.source}`:"",P.groupName||(G=P.groupNames)!=null&&G[0]?`分组 · ${P.groupName||((F=P.groupNames)==null?void 0:F[0])}`:"",P.assignedUserName||(B=P.assignedUsers)!=null&&B[0]?`负责人 · ${P.assignedUserName||(($=P.assignedUsers)==null?void 0:$[0])}`:"",P.severityText||P.severity?`级别 · ${P.severityText||P.severity}`:"",P.firedAt?`首次触发 · ${P.firedAt}`:"",P.triggerTime?`触发时间 · ${P.triggerTime}`:"",P.escalationCount!=null?`触发次数 · ${P.escalationCount}`:"",O.job?`Job · ${O.job}`:"",O.instance?`Instance · ${O.instance}`:""].filter(Boolean)}),L=y.computed(()=>{var G,F;const P=(((G=l.value)==null?void 0:G.actions)||[]).map(B=>({type:"action",time:B.createdAt||"",title:N(B.actionType),content:B.content||"",operator:B.operatorName||""})),O=(((F=l.value)==null?void 0:F.fires)||[]).map(B=>({type:"fire",time:B.firedAt||"",title:`告警触发 · ${B.severityText||B.severity||""}`,content:B.content||B.triggerValue||"",chartValues:B.chartValues||[],chartTimestamps:B.chartTimestamps||[]}));return[...P,...O].sort((B,$)=>String(B.time).localeCompare(String($.time)))});function N(P){return{ASSIGN:"分配",ACK:"确认",ACKNOWLEDGED:"确认",COMMENT:"备注",ESCALATE:"升级",RESOLVE:"解决",RESOLVED:"解决",REOPEN:"告警复现",SUPPRESS:"抑制",SILENCE:"静默",REASSIGN:"转交",COLLABORATE:"协同处理"}[P||""]||P||"操作"}function R(){f++,s.value=!1,l.value=null,c.value=""}return(P,O)=>{var G,F;return y.openBlock(),y.createElementBlock("div",{class:"template-screen",onDblclick:D},[r.runtime?(y.openBlock(),y.createElementBlock("div",{key:1,class:"template-screen__canvas",style:y.normalizeStyle({aspectRatio:`${h.value}/${v.value}`})},[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(d.value,B=>(y.openBlock(),y.createElementBlock("article",{key:B.id,class:y.normalizeClass(["template-screen__widget",{"template-screen__widget--header":B.widgetType==="screen_header"}]),style:y.normalizeStyle(g(B))},[B.widgetType==="screen_header"?(y.openBlock(),y.createElementBlock("div",bse,[y.createVNode(zx,{title:String(B.props.title||"运维监控大屏"),time:String(B.data.timeText||"--:--"),date:`${B.data.dateText||""} ${B.data.weekdayText||""}`,onTitleDoubleClick:O[0]||(O[0]=$=>a("secretTap"))},null,8,["title","time","date"])])):B.widgetType==="external_embed"?(y.openBlock(),y.createBlock(Ox,{key:1,title:B.title||"外部仪表盘",url:String(B.props.url||"")},null,8,["title","url"])):B.widgetType==="endpoint_distribution"?(y.openBlock(),y.createBlock(Jl,{key:2,title:B.title||"端点分布图",class:"template-screen__panel"},{default:y.withCtx(()=>[y.createVNode(Rx,{items:_(B)},null,8,["items"])]),_:2},1032,["title"])):B.widgetType==="alert_latest"?(y.openBlock(),y.createBlock(Jl,{key:3,title:B.title||"最新告警",class:"template-screen__panel"},{"header-center":y.withCtx(()=>[y.createVNode(Ex,{modelValue:n.value,"onUpdate:modelValue":O[1]||(O[1]=$=>n.value=$),items:E(B),variant:"tech",size:"xs","aria-label":"告警状态筛选"},null,8,["modelValue","items"])]),"header-extra":y.withCtx(()=>[y.createVNode(Ex,{modelValue:i.value,"onUpdate:modelValue":O[2]||(O[2]=$=>i.value=$),items:T(B),variant:"tech",size:"xs","aria-label":"告警级别筛选"},null,8,["modelValue","items"])]),default:y.withCtx(()=>[y.createElementVNode("div",wse,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(C(B),$=>{var j;return y.openBlock(),y.createBlock(Ix,{key:$.id,title:$.title,group:((j=$.groupNames)==null?void 0:j.join(" / "))||"未分组",time:$.firedAt,"status-text":$.statusText||$.status,accent:b($),onSelect:W=>A($)},{aside:y.withCtx(()=>{var W;return[(W=$.chartValues)!=null&&W.length?(y.openBlock(),y.createBlock(zp,{key:0,values:$.chartValues,timestamps:$.chartTimestamps||[],"trigger-time":$.firedAt,"trigger-value":$.triggerValue||"",color:b($),height:72,compact:""},null,8,["values","timestamps","trigger-time","trigger-value","color"])):y.createCommentVNode("",!0)]}),_:2},1032,["title","group","time","status-text","accent","onSelect"])}),128)),C(B).length?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock("div",Cse,"暂无符合条件的告警"))])]),_:2},1032,["title"])):B.widgetType==="alert_overview"?(y.openBlock(),y.createElementBlock("div",Tse,[(y.openBlock(),y.createElementBlock(y.Fragment,null,y.renderList([{label:"总数",key:"todayTotal",tone:"oklch(0.82 0.13 200)"},{label:"待处理",key:"todayPending",tone:"oklch(0.82 0.15 75)"},{label:"已处理",key:"todayResolved",tone:"oklch(0.74 0.16 155)"},{label:"逾期待处理",key:"overdueTotal",tone:"oklch(0.68 0.22 25)"}],$=>y.createVNode(Lx,{key:$.key,label:$.label,tone:$.tone},{default:y.withCtx(()=>[y.createVNode(Sse,{value:m(B)[$.key]||0,tone:$.tone,size:"lg"},null,8,["value","tone"])]),_:2},1032,["label","tone"])),64))])):(y.openBlock(),y.createBlock(Jl,{key:5,title:B.title||B.widgetType,class:"template-screen__panel"},y.createSlots({default:y.withCtx(()=>{var $,j,W,V,q,Ce,fe,ne,we,se,xe,qe,Pe;return[B.widgetType==="robot"?(y.openBlock(),y.createElementBlock("div",Ese,[r.showHalo?(y.openBlock(),y.createBlock(Bx,{key:0,width:180})):y.createCommentVNode("",!0),y.createVNode(Vx,{emotion:String(B.data.emotion||"neutral")},null,8,["emotion"])])):B.widgetType==="duty_today"?(y.openBlock(),y.createBlock(Mx,{key:1,compact:"","person-name":((W=(j=($=S(B)[0])==null?void 0:$.users)==null?void 0:j[0])==null?void 0:W.nickName)||((Ce=(q=(V=S(B)[0])==null?void 0:V.users)==null?void 0:q[0])==null?void 0:Ce.username)||"暂无值班人员","person-phone":((we=(ne=(fe=S(B)[0])==null?void 0:fe.users)==null?void 0:ne[0])==null?void 0:we.phone)||"","person-tag":((se=S(B)[0])==null?void 0:se.groupName)||"每日告警值班"},null,8,["person-name","person-phone","person-tag"])):B.widgetType==="build_projects"?(y.openBlock(),y.createBlock(Px,{key:2,items:_(B),"building-count":Number(((xe=B.data.summary)==null?void 0:xe.buildingCount)||0),"today-builds":Number(((qe=B.data.summary)==null?void 0:qe.todayBuilds)||0),"success-rate":Number(((Pe=B.data.summary)==null?void 0:Pe.successRate)||0)},null,8,["items","building-count","today-builds","success-rate"])):B.widgetType==="build_distribution"?(y.openBlock(),y.createBlock(Nx,{key:3,items:_(B),total:Number(B.data.total||0)},null,8,["items","total"])):(y.openBlock(),y.createElementBlock("div",Dse,"暂无可展示内容"))]}),_:2},[B.widgetType==="duty_today"&&B.props.showAllButton!==!1?{name:"header-extra",fn:y.withCtx(()=>[y.createVNode(mf,{variant:"secondary",appearance:"tech",size:"xs",onClick:O[3]||(O[3]=$=>a("openDuty"))},{default:y.withCtx(()=>[...O[5]||(O[5]=[y.createTextVNode("全部值班",-1)])]),_:1})]),key:"0"}:void 0]),1032,["title"]))],6))),128))],4)):(y.openBlock(),y.createElementBlock("div",xse,"请先在设置中选择大屏模板")),o.value?(y.openBlock(),y.createBlock($O,{key:2,modelValue:s.value,"onUpdate:modelValue":O[4]||(O[4]=B=>s.value=B),title:"告警详情",subtitle:`${I.value.groupName||((G=I.value.groupNames)==null?void 0:G[0])||"系统告警"} · ${I.value.assignedUserName||((F=I.value.assignedUsers)==null?void 0:F[0])||"未分配"}`,layout:"monitor",level:x(I.value)==="high"?"critical":x(I.value)==="mid"?"warning":"info",content:I.value.content||"暂无详细内容","info-items":M.value,"monitor-fields-variant":"compact",trend:I.value.chartValues||[],"chart-timestamps":I.value.chartTimestamps||[],"chart-trigger-time":I.value.triggerTime||I.value.firedAt||"","chart-trigger-value":I.value.triggerValue||"","chart-title":"监控折线图","chart-placement":"bottom","chart-show-extrema-markers":!1,"chart-enable-extrema-hover":!0,"chart-enable-selection-zoom":!0,"show-cancel-button":!1,"show-confirm-button":!1,"show-close-button":!0,onClose:R},{details:y.withCtx(()=>{var B,$,j,W;return[y.createElementVNode("div",kse,[u.value?(y.openBlock(),y.createElementBlock("div",Ase,"正在加载告警详情...")):c.value?(y.openBlock(),y.createElementBlock("div",Mse,y.toDisplayString(c.value),1)):(y.openBlock(),y.createElementBlock("section",Ise,[y.createElementVNode("p",null,"完整流水(操作 "+y.toDisplayString((($=(B=l.value)==null?void 0:B.actions)==null?void 0:$.length)||0)+" 条 + 触发 "+y.toDisplayString(((W=(j=l.value)==null?void 0:j.fires)==null?void 0:W.length)||0)+" 次)",1),L.value.length?(y.openBlock(),y.createBlock(UO,{key:0},{default:y.withCtx(()=>[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(L.value,(V,q)=>(y.openBlock(),y.createBlock(WO,{key:`${V.type}-${V.time}-${q}`,last:q===L.value.length-1,time:V.time,"dot-color":V.type==="fire"?"#ff7d00":"#0fc6c2"},{default:y.withCtx(()=>{var Ce;return[y.createElementVNode("div",Lse,[y.createElementVNode("strong",null,y.toDisplayString(V.title),1),V.operator?(y.openBlock(),y.createElementBlock("span",Nse,y.toDisplayString(V.operator),1)):y.createCommentVNode("",!0),y.createElementVNode("p",null,y.toDisplayString(V.content),1),(Ce=V.chartValues)!=null&&Ce.length?(y.openBlock(),y.createBlock(zp,{key:1,values:V.chartValues,timestamps:V.chartTimestamps||[],height:180,color:V.type==="fire"?"#ff7d00":"#38bdf8","enable-selection-zoom":!0},null,8,["values","timestamps","color"])):y.createCommentVNode("",!0)])]}),_:2},1032,["last","time","dot-color"]))),128))]),_:1})):(y.openBlock(),y.createElementBlock("div",Pse,"暂无流水记录"))]))])]}),footer:y.withCtx(()=>[y.createVNode(mf,{variant:"secondary",appearance:"tech",size:"lg",onClick:R},{default:y.withCtx(()=>[...O[6]||(O[6]=[y.createTextVNode("关闭窗口",-1)])]),_:1})]),_:1},8,["modelValue","subtitle","level","content","info-items","trend","chart-timestamps","chart-trigger-time","chart-trigger-value"])):y.createCommentVNode("",!0)],32)}}}),[["__scopeId","data-v-3c0027ca"]]),XO={screen_header:{dateText:"2026-07-27",timeText:"14:30",weekdayText:"星期一"},robot:{status:"online",mode:"guard",emotion:"neutral",generatedAt:"2026-07-27 14:30:00",summary:{dutyGroups:3,todayAlerts:12,buildingCount:4,endpointNodes:86},alerts:{todayTotal:12,todayPending:3,criticalCount:1,warningCount:5},builds:{buildingCount:4,todayBuilds:28,successRate:98.6}},duty_today:{date:"2026-07-27",totalGroups:3,totalUsers:8,groups:[{groupId:1,groupName:"平台组",users:[{userId:101,nickName:"张工",username:"zhang"},{userId:102,nickName:"李工",username:"li"}]},{groupId:2,groupName:"网络组",users:[{userId:103,nickName:"王工",username:"wang"}]}]},alert_overview:{stats:{todayTotal:12,todayPending:3,todayResolved:8,overdueTotal:1}},alert_latest:{total:3,stats:{todayTotal:12,todayPending:3,todayResolved:9,overdueTotal:1,criticalCount:1,warningCount:5,infoCount:6},items:[{id:1,alertId:"AL-20260727-001",title:"边缘节点延迟升高",severity:"WARN",severityText:"警告",status:"pending",statusText:"待处理",source:"edge-01",firedAt:"14:20",groupNames:["网络组"],triggerValue:"218ms",chartValues:[118,125,131,146,153,168,182,196,218],chartTimestamps:["13:40","13:45","13:50","13:55","14:00","14:05","14:10","14:15","14:20"]},{id:2,alertId:"AL-20260727-002",title:"构建队列等待时间过长",severity:"CRITICAL",severityText:"严重",status:"processing",statusText:"处理中",source:"CI/CD",firedAt:"14:08",groupNames:["平台组"],triggerValue:"14min",chartValues:[4,5,5,7,8,10,12,14],chartTimestamps:["13:33","13:38","13:43","13:48","13:53","13:58","14:03","14:08"]},{id:3,alertId:"AL-20260727-003",title:"磁盘使用率接近阈值",severity:"INFO",severityText:"提示",status:"RESOLVED",statusText:"已恢复",source:"node-03",firedAt:"13:56",groupNames:["运维组"],triggerValue:"88%",chartValues:[72,75,78,81,85,88,83,78],chartTimestamps:["13:21","13:26","13:31","13:36","13:41","13:46","13:51","13:56"]}]},build_projects:{summary:{buildingCount:4,todayBuilds:28,successRate:98.6},items:[{pipelineId:1,buildId:101,jobName:"eagle-eye-web",statusText:"构建中",currentStage:"测试",buildUser:"system",progress:68},{pipelineId:2,buildId:102,jobName:"quark-api",statusText:"构建中",currentStage:"镜像打包",buildUser:"李工",progress:42}]},build_distribution:{total:100,items:[{name:"应用构建",count:42},{name:"镜像构建",count:27},{name:"基础设施",count:18},{name:"其他任务",count:13}]},endpoint_distribution:{summary:{total:3},items:[{id:1,nodeName:"edge-01",nodeIp:"10.10.2.11",nodeStatus:!0,heartbeatResults:[{targetName:"API Gateway",targetIp:"10.10.1.10",latencyMs:12.4}]},{id:2,nodeName:"edge-02",nodeIp:"10.10.2.12",nodeStatus:!0,heartbeatResults:[{targetName:"API Gateway",targetIp:"10.10.1.10",latencyMs:18.7}]},{id:3,nodeName:"edge-03",nodeIp:"10.10.2.13",nodeStatus:!1,heartbeatResults:[]}]},external_embed:{}};function Ose(r){return JSON.parse(JSON.stringify(XO[r]))}Je.BigScreenAlertRow=Ix,Je.BigScreenBuildDistribution=Nx,Je.BigScreenBuildProjects=Px,Je.BigScreenDutyContent=Mx,Je.BigScreenEndpointDistribution=Rx,Je.BigScreenExternalEmbed=Ox,Je.BigScreenHeader=FV,Je.BigScreenMetricCard=Lx,Je.BigScreenPanel=Jl,Je.BigScreenRobotSummary=jV,Je.BigScreenTemplateRenderer=Rse,Je.QuarkAlertDialog=$O,Je.QuarkBaseModal=Gx,Je.QuarkCollapse=hse,Je.QuarkCollapseItem=pse,Je.QuarkDutyCompact=l4,Je.QuarkMetricTrendChart=zp,Je.QuarkRobot=Vx,Je.QuarkRobotHalo=Bx,Je.QuarkTimeline=UO,Je.QuarkTimelineItem=WO,Je.QuarkTopHeader=zx,Je.QuarkUiButton=mf,Je.QuarkUiSegmented=Ex,Je.bigScreenPreviewFixtures=XO,Je.getBigScreenPreviewData=Ose,Object.defineProperty(Je,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akiraka/quark-big-screen-ui",
3
- "version": "0.1.18",
3
+ "version": "0.1.19",
4
4
  "description": "Shared visual components for Quark big-screen applications.",
5
5
  "type": "module",
6
6
  "files": [