PageSourceSearch

https://optilink.achenbach.de/chunk-SQWXCNKZ.js

js achenbach.de collected 2026-10-04 12:47:42 UTC 35,851 bytes, 1 lines download raw bytes

1import{b as ze}from"./chunk-TNC7YPQW.js";import{a as Le,b as x,c as G}from"./chunk-4PCD3SAR.js";import{a as Ae,b as oe}from"./chunk-BYFU7326.js";import{a as Q}from"./chunk-A4H77HFU.js";import{c as Te}from"./chunk-DSUTZJEB.js";import{a as ke,e as N,j as Ie,k as Ne,l as Ee,m as Fe}from"./chunk-MWIUNUSH.js";import"./chunk-LIQLNOWU.js";import"./chunk-FTBFOGB7.js";import"./chunk-D5OMVGRA.js";import{a as Pe}from"./chunk-6PJEKADB.js";import{c as Oe}from"./chunk-TUNY2AHF.js";import{a as we,b as De}from"./chunk-XXNHYJGG.js";import"./chunk-AIWPH46O.js";import"./chunk-5DRDHZ5U.js";import{c as _e,d as Se}from"./chunk-RC5HJECJ.js";import"./chunk-523NQ555.js";import"./chunk-5ISANUGP.js";import"./chunk-IB7DXANR.js";import"./chunk-GAEQVHFM.js";import"./chunk-YQAW5PAJ.js";import"./chunk-7G57BA6T.js";import"./chunk-2QLW5UMD.js";import"./chunk-JC7MIOWD.js";import"./chunk-2KCAAZYO.js";import"./chunk-6ZJESQQM.js";import"./chunk-A5U2EBZR.js";import"./chunk-DA3DIHMY.js";import"./chunk-OHBRIN7V.js";import"./chunk-6JZHJ5OB.js";import"./chunk-YKZNC654.js";import"./chunk-MLUSEK2K.js";import"./chunk-PJQ4PKS2.js";import"./chunk-VL5LW6CD.js";import{a as V}from"./chunk-OLICYXFO.js";import{a as Y}from"./chunk-BROQV66G.js";import"./chunk-2KYBFJ6D.js";import"./chunk-LMH7CWJD.js";import"./chunk-HWJNUBXM.js";import"./chunk-MTG76SG4.js";import"./chunk-H4RIA2SP.js";import"./chunk-SFI4CDBF.js";import"./chunk-3IE6ZIJT.js";import"./chunk-GURR5BWY.js";import"./chunk-4OODM5RZ.js";import"./chunk-HDN3V3OA.js";import"./chunk-25BZAPPZ.js";import"./chunk-YNY5VX5O.js";import"./chunk-B25OOK5G.js";import"./chunk-T4Z57YFC.js";import"./chunk-PAWXXTXM.js";import"./chunk-LM52PLPW.js";import"./chunk-ZMRJTPMN.js";import"./chunk-SYZ4TT7R.js";import{Y as $,z as re}from"./chunk-4KE2SNJZ.js";import"./chunk-LOPWR4IF.js";import"./chunk-ERB4A4K4.js";import{L as Ce,h as ye,o as xe}from"./chunk-L72XHRI4.js";import"./chunk-QJGDHPIL.js";import"./chunk-5YER4OD3.js";import"./chunk-XQKA5YTI.js";import"./chunk-45XGHXLO.js";import{c as q,e as Me}from"./chunk-OK4ZBCSP.js";import"./chunk-QYTBOKNQ.js";import{u as be,x as ve}from"./chunk-JRV2IVKS.js";import{Fd as u,Mc as P,Md as M,Nd as U,Oc as he,Qa as O,Rb as I,Rd as j,Wc as W,Xc as B,Zc as te,_c as ne,bd as g,cd as f,dd as H,hd as E,id as F,jd as L,kd as ae,lc as pe,mc as me,od as ie,pc as ge,qc as ue,rc as C,sc as d,tc as l,uc as A,wd as v,xd as y,ya as w,yd as fe,zb as s}from"./chunk-X2XUJWBI.js";import{a as le,b as ce}from"./chunk-ZUU3DWDH.js";var _=(function(a){return a.AVAILABILITY="availability",a.UTILISATION="utilisation",a.RUNTIME="runtime",a})(_||{});var D={runtimeStates:[x.operation,x.accelerating,x.decelerating],productionStates:[x.threading,x.tailOut,x.stopped,x.warmup,x.gapCalibration],netOperationStates:[x.filterCleaning,x.rollChange],totalTimeStates:[x.hydraulicsOff]};function K(a,r=D){return r.runtimeStates.includes(a)}function Re(a,r=D){return K(a,r)||r.productionStates.includes(a)}function se(a,r=D){return K(a,r)||r.netOperationStates.includes(a)}function We(a,r=D){return se(a,r)||r.totalTimeStates.includes(a)}function J(a){let r=Math.round(a),t=Math.floor(r/86400),n=Math.floor(r%86400/3600),e=Math.floor(r%3600/60),p=r%60,i=`${String(n).padStart(2,"0")}:${String(e).padStart(2,"0")}:${String(p).padStart(2,"0")}`;return t>=1?`${t}.${i}`:i}function Ke(a){let r=new Date(a.getTime());r.setHours(0,0,0,0),r.setDate(r.getDate()+3-(r.getDay()+6)%7);let t=new Date(r.getFullYear(),0,4),n=1+Math.round(((r.getTime()-t.getTime())/864e5-3+(t.getDay()+6)%7)/7);return{year:r.getFullYear(),week:n}}function Je(a){try{let r=new Intl.DateTimeFormat(a,{weekday:"short"}),t=new Date(Date.UTC(2024,0,1));return Array.from({length:7}).map((n,e)=>{let p=new Date(t);return p.setUTCDate(t.getUTCDate()+e),r.format(p)})}catch(r){return["Mo","Tu","We","Th","Fr","Sa","Su"]}}function de(a,r,t,n=D){let e=new Map,p=r.getTime(),i=t.getTime();for(let c of a){let o=e.get(c.shift_date);o||(o={shift_date:c.shift_date,runtimeS:0,productionS:0,netOpS:0,unscheduledS:0,offlineS:0,totalS:0},e.set(c.shift_date,o));let m=o.shift_date,h=m+864e5,k=Math.max(m,p),z=Math.min(h,i),b=c.ts_utc||c.shift_date,T=b+(c.duration||0),X=Math.max(b,k),Z=Math.min(T,z),S=Math.max(0,Z-X)/1e3;S>0&&(se(c.state,n)&&(o.netOpS+=S),Re(c.state,n)&&(o.productionS+=S),K(c.state,n)&&(o.runtimeS+=S),We(c.state,n)&&(o.unscheduledS+=S))}for(let[c,o]of e.entries()){let m=c,h=c+864e5,k=Math.max(m,p),z=Math.min(h,i);o.totalS=Math.max(0,z-k)/1e3,o.offlineS=Math.max(0,o.totalS-(o.netOpS+o.unscheduledS))}return e}function Be(a,r,t,n,e,p,i=D){let c=de(a,e,p,i),o=new Map,m=[],h=Je(t),k=[],z=Array.from(c.values()).sort((b,T)=>b.shift_date-T.shift_date);for(let b of z){let T=new Date(b.shift_date),X=(T.getDay()+6)%7,{year:Z,week:ee}=Ke(T),S=`${Z}-W${String(ee).padStart(2,"0")}`;o.has(S)||(o.set(S,m.length),m.push(`${n} ${ee}`));let Qe=o.get(S),R=null;if(b.totalS>0)switch(r){case _.AVAILABILITY:R=b.productionS>0?b.runtimeS/b.productionS*100:0;break;case _.UTILISATION:R=b.productionS/b.totalS*100;break;case _.RUNTIME:R=b.runtimeS/b.totalS*100;break}let Ge=b.totalS>0?b.offlineS/b.totalS*100:0;k.push({x:X,y:Qe,value:R,custom:{offlinePercent:Ge,timestamp:b.shift_date}})}return{data:k,yCategories:m,xCategories:h}}function He(a,r,t,n=D){let e=de(a,r,t,n),p=Array.from(e.values()).sort((m,h)=>m.shift_date-h.shift_date),i=[],c=[],o=[];for(let m of p){let h=m.shift_date;m.totalS>0?(i.push([h,m.productionS>0?m.runtimeS/m.productionS*100:0]),c.push([h,m.runtimeS/m.totalS*100]),o.push([h,m.productionS/m.totalS*100])):(i.push([h,null]),c.push([h,null]),o.push([h,null]))}return{availability:i,runtime:c,utilisation:o}}function Ue(a,r,t,n=D){let e=de(a,r,t,n),p=0,i=0,c=0,o=0,m=0;
1for(let h of e.values())p+=h.runtimeS,i+=h.productionS,c+=h.netOpS,o+=h.totalS,m+=h.unscheduledS;return{totalTimeFormatted:J(o),runtimeFormatted:J(p),netOperationTimeFormatted:J(c),downtimeFormatted:J(m),availabilityPercent:i>0?`${(p/i*100).toFixed(1)}%`:"\u2014",runtimePercent:o>0?`${(p/o*100).toFixed(1)}%`:"\u2014"}}function je(a){let r=new Map,t=0;for(let n of a)r.set(n.state,(r.get(n.state)??0)+n.duration),t+=n.duration;return Array.from(r.entries()).map(([n,e])=>({state:n,label:x[n]??`State ${n}`,durationMs:e,color:G.getColorByState(n),percentage:t>0?e/t*100:0})).sort((n,e)=>e.durationMs-n.durationMs)}var Xe=["chartContainer"],qe=(()=>{class a{constructor(){this.data=M.required(),this.isLoading=M(!1),this.errorMessage=M(""),this.timezone=M("UTC"),this.selectedDay=j(),this.chartInstance=O(null),this.chartContainer=U("chartContainer"),this.chartOptions=u(()=>{let t=this.data(),n=this.selectedDay(),e=t.data,p=t.yCategories.length*40+50;return{chart:{type:"heatmap",backgroundColor:"var(--bs-card-bg, #fff)",spacing:[5,20,5,5],style:{fontFamily:"var(--bs-body-font-family)"},scrollablePlotArea:{minHeight:p,scrollPositionY:0,opacity:1}},plotOptions:{series:{cursor:"pointer",point:{events:{click:i=>{let o=i.point.custom?.timestamp;this.selectedDay()===o?this.selectedDay.set(void 0):this.selectedDay.set(o)}}}}},title:{text:void 0},xAxis:{categories:t.xCategories,opposite:!0,tickWidth:0,lineWidth:0,labels:{useHTML:!0,formatter:function(){return`<span class="heatmap-axis-label">${this.value}</span>`}}},yAxis:{categories:t.yCategories,title:{text:void 0},reversed:!0,tickWidth:0,lineWidth:0,gridLineWidth:0,labels:{useHTML:!0,formatter:function(){return`<span class="heatmap-axis-label">${this.value}</span>`}}},colorAxis:{min:0,max:100,stops:[[0,"#e74c3c"],[.5,"#f1c40f"],[.8,"#2ecc71"],[1,"#27ae60"]]},tooltip:{enabled:!1},series:[{type:"heatmap",nullColor:"transparent",data:e.map(i=>{let c=i.custom?.timestamp===n&&!!n;return ce(le({},i),{borderWidth:0,className:c?"selected-heatmap-cell":""})}),dataLabels:{enabled:!0,color:"#000000",useHTML:!0,style:{textOutline:"none",fontWeight:"bold",textAlign:"center"},formatter:function(){let i=this.value;if(i==null)return"";let c=`${Math.round(i)}%`,o=this.custom?.offlinePercent||0;return o>3&&(c+=`<br/><span style="font-size: 0.95em; font-weight: normal; font-style: italic; color: #555;">${Math.round(o)}% offline</span>`),c}}}],credits:{enabled:!1},legend:{enabled:!1}}}),Q(this.chartContainer,this.chartInstance)}static{this.\u0275fac=function(n){return new(n||a)}}static{this.\u0275cmp=I({type:a,selectors:[["app-availability-heatmap"]],viewQuery:function(n,e){n&1&&W(e.chartContainer,Xe,5),n&2&&B()},inputs:{data:[1,"data"],isLoading:[1,"isLoading"],errorMessage:[1,"errorMessage"],timezone:[1,"timezone"],selectedDay:[1,"selectedDay"]},outputs:{selectedDay:"selectedDayChange"},decls:3,vars:1,consts:[["chartContainer",""],[1,"flex-grow-1","position-relative","overflow-hidden"],["highchartsChart","",1,"chart-element",3,"chartInstance","options"]],template:function(n,e){n&1&&(d(0,"div",1,0)(2,"div",2),P("chartInstance",function(){return e.chartInstance()}),l()()),n&2&&(s(2),C("options",e.chartOptions()))},dependencies:[V],styles:[".dashboard-ui-header-label[_ngcontent-%COMP%]{font-family:ui-monospace,Cascadia Code,monospace;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.dashboard-ui-card[_ngcontent-%COMP%]{--card-accent: var(--bs-primary);height:100%;background-color:var(--bs-card-bg, #fff);border:none;border-radius:.5rem;border-left:5px solid var(--card-accent, var(--bs-primary));box-shadow:0 2px 4px #00000014,0 1px 2px #0000000d;padding:.75rem 1rem;display:flex;flex-direction:column;justify-content:center;position:relative;transition:transform .2s ease-out,box-shadow .2s ease-out,background-color .2s}.dashboard-ui-card[_ngcontent-%COMP%]:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.dashboard-ui-card.border-primary[_ngcontent-%COMP%]{border-color:var(--bs-primary)!important}.dashboard-ui-card.border-success[_ngcontent-%COMP%]{border-color:var(--bs-success)!important}.dashboard-ui-card.border-danger[_ngcontent-%COMP%]{border-color:var(--bs-danger)!important}.dashboard-ui-card.border-warning[_ngcontent-%COMP%]{border-color:var(--bs-warning)!important}.dashboard-ui-card.border-brown[_ngcontent-%COMP%]{border-color:#9d7660!important}[data-bs-theme=dark][_ngcontent-%COMP%]   .dashboard-ui-card[_ngcontent-%COMP%]{box-shadow:0 2px 4px #0003;--bs-card-bg: #2b3035;--bs-primary: var(--bs-secondary);--card-accent: var(--bs-secondary)}[data-bs-theme=dark][_ngcontent-%COMP%]   .dashboard-ui-card[_ngcontent-%COMP%]   .text-primary[_ngcontent-%COMP%]{color:var(--bs-secondary)}.loading-overlay[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;border-radius:.5rem;background-color:#ffffffd9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}[data-bs-theme=dark][_ngcontent-%COMP%]   .loading-overlay[_ngcontent-%COMP%]{background-color:#2b3035d9}.spinner[_ngcontent-%COMP%]{width:42px;height:42px;border:4px solid var(--bs-gray-200, #e9ecef);border-top-color:var(--bs-primary);border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]{max-height:50vh!important;overflow-y:auto!important;overflow-x:hidden!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar{width:6px!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background-color:var(--bs-gray-300)!important;border-radius:4px!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background-color:var(--bs-gray-400)!important}[_nghost-%COMP%]{display:flex;flex-direction:column;min-height:0}[_nghost-%COMP%]     .heatmap-axis-label{font-size:.65rem;letter-spacing:.8px;line-height:1;text-transform:uppercase;font-weight:700;color:var(--bs-secondary-color, #6c757d);white-space:nowrap}[_nghost-%COMP%]     .selected-heatmap-cell{outline:3px solid var(--bs-primary)!important;outline-offset:-3px;shape-rendering:crispEdges}.chart-element[_ngcontent-%COMP%]{position:absolute;inset:0;width:100%;height:100%;display:block}.heatmap-area[_ngcontent-%COMP%]{min-height:200px}@media(min-width:992px){.heatmap-area[_ngcontent-%COMP%]{min-height:0}}"],changeDetection:0})}}return a})();var Ze=["chartContainer"],Ye=(()=>{class a{constructor(){this.translate=w(q),this.translationService=w(Y),this.title=M("Chart"),this.data=M.required(),this.isLoading=M(!1),this.errorMessage=M(""),this.timezone=M("UTC"),this.selectedDay=j(),this.chartInstance=O(null),this.chartContainer=U("chartContainer"),this.chartOptions=u(()=>{this.translationService.activeLanguage();let t=this.data(),n=this.timezone(),e=this.selectedDay();return{time:{timezone:n},chart:{type:"line",backgroundColor:"transparent",spacing:[10,10,10,10],style:{fontFamily:"var(--bs-body-font-family)"},zooming:{type:"x"}},title:{text:void 0},xAxis:{type:"datetime",tickWidth:0,lineWidth:0,plotLines:e?[{value:e,color:"#ffc107",width:2,dashStyle:"ShortDash",zIndex:5}]:[]},yAxis:{title:{text:void 0},min:0,max:100,labels:{format:"{value}%"}},tooltip:{shared:!0,valueSuffix:"%",valueDecimals:1},plotOptions:{line:{marker:{enabled:!1},lineWidth:2,cursor:"pointer",point:{events:{click:p=>{let i=p.point.x;this.selectedDay()===i?this.selectedDay.set(void 0):this.selectedDay.set(i)}}}}},series:[{name:this.translate.instant("Availability"),type:"line",data:t.availability,color:$[4]},{name:this.translate.instant("Runtime"),type:"line",data:t.runtime,color:$[11]},{name:this.translate.instant("Utilisation"),type:"line",data:t.utilisation,color:$[5]}],legend:{enabled:!0,layout:"vertical",align:"right",verticalAlign:"middle",useHTML:!0,labelFormatter:function(){return`<span class="trend-legend-label">${this.name}</span>`}},credits:{enabled:!1}}}),Q(this.chartContainer,this.chartInstance)}static{this.\u0275fac=function(n){return new(n||a)}}static{this.\u0275cmp=I({type:a,selectors:[["app-availability-trend"]],viewQuery:function(n,e){n&1&&W(e.chartContainer,Ze,5),n&2&&B()},inputs:{title:[1,"title"],data:[1,"data"],isLoading:[1,"isLoading"],errorMessage:[1,"errorMessage"],timezone:[1,"timezone"],selectedDay:[1,"selectedDay"]},outputs:{selectedDay:"selectedDayChange"},decls:3,vars:1,consts:[["chartContainer",""],[1,"flex-grow-1","position-relative","overflow-hidden"],["highchartsChart","",1,"chart-element",3,"chartInstance","options"]],template:function(n,e){n&1&&(d(0,"div",1,0)(2,"div",2),P("chartInstance",function(){return e.chartInstance()}),l()()),n&2&&(s(2),C("options",e.chartOptions()))},dependencies:[V],styles:[".dashboard-ui-header-label[_ngcontent-%COMP%]{font-family:ui-monospace,Cascadia Code,monospace;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.dashboard-ui-card[_ngcontent-%COMP%]{--card-accent: var(--bs-primary);height:100%;background-color:var(--bs-card-bg, #fff);border:none;border-radius:.5rem;border-left:5px solid var(--card-accent, var(--bs-primary));box-shadow:0 2px 4px #00000014,0 1px 2px #0000000d;padding:.75rem 1rem;display:flex;flex-direction:column;justify-content:center;position:relative;transition:transform .2s ease-out,box-shadow .2s ease-out,background-color .2s}.dashboard-ui-card[_ngcontent-%COMP%]:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.dashboard-ui-card.border-primary[_ngcontent-%COMP%]{border-color:var(--bs-primary)!important}.dashboard-ui-card.border-success[_ngcontent-%COMP%]{border-color:var(--bs-success)!important}.dashboard-ui-card.border-danger[_ngcontent-%COMP%]{border-color:var(--bs-danger)!important}.dashboard-ui-card.border-warning[_ngcontent-%COMP%]{border-color:var(--bs-warning)!important}.dashboard-ui-card.border-brown[_ngcontent-%COMP%]{border-color:#9d7660!important}[data-bs-theme=dark][_ngcontent-%COMP%]   .dashboard-ui-card[_ngcontent-%COMP%]{box-shadow:0 2px 4px #0003;--bs-card-bg: #2b3035;--bs-primary: var(--bs-secondary);--card-accent: var(--bs-secondary)}[data-bs-theme=dark][_ngcontent-%COMP%]   .dashboard-ui-card[_ngcontent-%COMP%]   .text-primary[_ngcontent-%COMP%]{color:var(--bs-secondary)}.loading-overlay[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;border-radius:.5rem;background-color:#ffffffd9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}[data-bs-theme=dark][_ngcontent-%COMP%]   .loading-overlay[_ngcontent-%COMP%]{background-color:#2b3035d9}.spinner[_ngcontent-%COMP%]{width:42px;height:42px;border:4px solid var(--bs-gray-200, #e9ecef);border-top-color:var(--bs-primary);border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]{max-height:50vh!important;overflow-y:auto!important;overflow-x:hidden!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar{width:6px!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background-color:var(--bs-gray-300)!important;border-radius:4px!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background-color:var(--bs-gray-400)!important}[_nghost-%COMP%]{display:flex;flex-direction:column;min-height:0}  .trend-legend-label{font-size:.65rem;letter-spacing:.8px;line-height:1;text-transform:uppercase;font-weight:700;color:var(--bs-secondary-color, #6c757d);cursor:pointer}.chart-element[_ngcontent-%COMP%]{width:100%;height:100%;display:block}"],changeDetection:0})}}return a})();var Ve=()=>({width:"105px","font-size":"0.8125rem",padding:"0.375rem 0.75rem"}),et=(a,r)=>r.state;function tt(a,r){if(a&1&&(d(0,"div",30),A(1,"span",45),d(2,"span",46),g(3),v(4,"translate"),l(),d(5,"div",47),A(6,"div",48),l(),d(7,"span",49),g(8),v(9,"number"),l()()),a&2){let t=r.$implicit;s(),te("background-color",t.color),s(2),f(y(4,8,"state."+t.label)),s(3),te("width",t.percentage,"%")("background-color",t.color),s(2),H("",fe(9,10,t.percentage,"1.1-1"),"%")}}function nt(a,r){if(a&1&&A(0,"app-time-strip",32),a&2){let t=he();C("data",t.ganttStates())("timezone",t.timezone())}}var an=(()=>{class a{constructor(){this.now=w(ze),this.pageContextService=w(Oe),this.translationService=w(Y),this.translate=w(q),this.settingsService=w(Pe),this.assetId=u(()=>this.pageContextService.activeAssetId()),this.pageId=u(()=>this.pageContextService.settingsPageId()??`${this.assetId()}_${re}`),this.settingsState=this.settingsService.createWorkingState(this.pageId(),re),this.workingSettings=this.settingsState.working,this.isSettingsDirt
1y=this.settingsState.isDirty,this.timezone=u(()=>this.workingSettings().timezone),this.selectedDateRangeFilter=O(this.getDefaultDateRange(this.now())),this.assetName=u(()=>this.pageContextService.activeAssetName()),this.modeOptions=u(()=>(this.translationService.activeLanguage(),[{label:this.translate.instant("Availability").toUpperCase(),value:_.AVAILABILITY},{label:this.translate.instant("Utilisation").toUpperCase(),value:_.UTILISATION},{label:this.translate.instant("Runtime").toUpperCase(),value:_.RUNTIME}])),this.selectedMode=O(_.AVAILABILITY),this.selectedDay=O(void 0),this.startDate=u(()=>this.selectedDateRangeFilter()[0]),this.endDate=u(()=>this.selectedDateRangeFilter()[1]),this.historicFilter=Ee(),this.viewStates=Ie(ke.ROLLING_STATES,{modifierEffect:t=>this.applyFilters(t),filters:this.historicFilter.queryFilters}),this.states=u(()=>this.viewStates()?.connectTable(!0)()??[]),this.heatmapData=u(()=>(this.translationService.activeLanguage(),Be(this.states(),this.selectedMode(),this.translationService.activeLanguage(),this.translate.instant("time.week.short"),this.startDate(),this.endDate()))),this.trendData=u(()=>He(this.states(),this.startDate(),this.endDate())),this.isReady=u(()=>this.viewStates()?.isLoading()===!1),this.stateDurations=u(()=>je(this.states())),this.summary=u(()=>Ue(this.states(),this.startDate(),this.endDate())),this.ganttStates=u(()=>{let t=this.selectedDay();return t===null?[]:this.states().filter(n=>n.shift_date===t).map(n=>({x:n.ts_utc,x2:n.ts_utc+n.duration,color:G.getColorByState(n.state),uid:n.uid,label:x[n.state],duration:n.duration}))}),this.minDate=u(()=>{let t=this.viewStates()?.getColumnFilterStats(N.ts_utc)?.(),n=this.workingSettings().timezone;if(t?.base&&"min"in t.base&&t.base.min)return oe(t?.base?.min,n)}),this.maxDate=u(()=>{let t=this.viewStates()?.getColumnFilterStats(N.ts_utc)?.(),n=this.workingSettings().timezone;if(t?.base&&"max"in t.base&&t.base.max)return oe(t?.base?.max,n)})}applyFilters(t){if(!t)return;let n=this.workingSettings().shiftSettings.timezone,e=Ae(this.selectedDateRangeFilter(),n),p=this.assetId(),i=[{column:N.ts_utc,isActive:!!e.start&&!!e.end,predicate:c=>{let o=c;if(!o||!e.start||!e.end)return!1;let m=new Date(o);return m>=e.start&&m<=e.end}},{column:N.asset_id,isActive:!!p,predicate:c=>{let o=c;return o!=null&&o===BigInt(p??0)}}];for(let c of i)c.isActive&&t.filter(c.column,c.predicate);t.sort(N.ts_utc,"desc")}onSettingsChanged(t){t&&this.settingsState.patch(t)}updateStartDate(t){if(!t)return;let n=this.selectedDateRangeFilter()[1];this.selectedDateRangeFilter.set([t,n||t])}updateEndDate(t){if(!t)return;let n=this.selectedDateRangeFilter()[0];this.selectedDateRangeFilter.set([n||t,t])}getDefaultDateRange(t){let n=new Date(t);return n.setDate(t.getDate()-84),[n,t]}static{this.\u0275fac=function(n){return new(n||a)}}static{this.\u0275cmp=I({type:a,selectors:[["app-availability"]],decls:99,vars:89,consts:[[1,"dashboard-container","grid"],[1,"g-col-12","top-bar-wrapper"],[1,"title-card"],[1,"dashboard-ui-card","border-warning","w-100","d-flex","flex-row","align-items-center","justify-content-between","px-3","py-2"],[1,"d-flex","align-items-center","gap-3"],[1,"d-flex","flex-column"],[1,"ut-label","text-primary"],[1,"ut-title"],[1,"nav-card","d-print-none"],["orientation","horizontal",1,"w-100"],[1,"filter-card"],[1,"dashboard-ui-card","filter-wrapper","border-primary","w-100","d-flex","flex-column","justify-content-center","px-3","py-2"],[1,"d-flex","flex-column","gap-1"],[1,"filter-label"],[1,"fa-sharp","fa-regular","fa-calendar-range","me-1"],[1,"d-flex","gap-2"],["appendTo","body",3,"ngModelChange","ngModel","placeholder","readonlyInput","minDate","maxDate","dateFormat","firstDayOfWeek","inputStyle","showOtherMonths"],[1,"g-col-12","g-col-lg-7","heatmap-area"],[1,"dashboard-ui-card","border-primary","h-100","pt-2","px-2","pb-0","d-flex","flex-column","overflow-hidden"],[1,"d-flex","justify-content-between","align-items-start","mb-1"],[1,"ut-card-header","mb-0"],[1,"d-flex","align-items-center","gap-2"],[1,"ut-label","mb-0"],["size","small","optionLabel","label","optionValue","value","appendTo","body",1,"mode-dropdown",3,"ngModelChange","options","ngModel"],[1,"flex-grow-1","w-100",3,"selectedDayChange","data","selectedDay"],[1,"g-col-12","g-col-lg-5","d-flex","flex-column","side-panel"],[1,"state-bar-area","flex-grow-1","d-flex","flex-column"],[1,"dashboard-ui-card","border-primary","h-100","p-2","d-flex","flex-column"],[1,"ut-card-header","mb-2","px-2"],[1,"flex-grow-1","d-flex","flex-column","justify-content-evenly","px-3"],[1,"state-bar-row","d-flex","align-items-center","gap-2","mb-1"],[1,"g-col-12","time-strip-row"],[1,"d-block","h-100",3,"data","timezone"],[1,"g-col-12","g-col-lg-5","g-col-xl-4","d-flex","flex-column"],[1,"dashboard-ui-card","border-success","w-100","h-100","py-3","d-flex","flex-column","justify-content-start"],[1,"ut-card-header","mb-3","px-3"],[1,"summary-stats-grid","flex-grow-1","px-3"],[1,"summary-stat-item"],[1,"ut-label"],[1,"ut-value"],[1,"g-col-12","g-col-lg-7","g-col-xl-8","trend-area"],[1,"flex-grow-1","w-100",3,"selectedDayChange","data","selectedDay","timezone"],[3,"currentSettingsChange","pageId","assetTz","currentSettings","isDirty"],["toolbarLeft",""],[3,"checkedChange","checked"],[1,"state-color-dot"],[1,"state-label","flex-shrink-0"],[1,"state-bar-track","flex-grow-1"],[1,"state-bar-fill"],[1,"state-pct"]],template:function(n,e){n&1&&(d(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4)(5,"div",5)(6,"span",6),g(7),l(),d(8,"span",7),g(9),v(10,"translate"),l()()()()(),d(11,"div",8),A(12,"app-navigation-panel",9),l(),d(13,"div",10)(14,"div",11)(15,"div",12)(16,"div",13),A(17,"i",14),g(18),v(19,"translate"),l(),d(20,"div",15)(21,"p-date-picker",16),v(22,"translate"),P("ngModelChange",function(i){return e.updateStartDate(i)}),l(),d(23,"p-date-picker",16),v(24,"translate"),P("ngModelChange",function(i){return e.updateEndDate(i)}),l()()()()()(),d(25,"div",17)(26,"div",18)(27,"div",19)(28,"div",20),g(29),v(30,"translate"),l(),d(31,"div",21)(32,"span",22),g(33),v(34,"translate"),l(),d(35,"p-select",23),L("ngModelChange",function(i){return F(e.selectedMode,i)||(e.selectedMode=i),i}),l()()(),d(36,"app-availability-heatmap",24),L("selectedDayChange",function(i){return F(e.selectedDay,i)||(e.selectedDay=i),i}),l()()(),d(37,"div",25)(38,"div",26)(39,"div",27)(40,"div",28),g(41),v(42,"translate"),l(),d(43,"div",29),ge(44,tt,10,13,"div",30,et),l()()()(),d(46,"div",31),pe(47,nt,1,2,"app-time-strip",32),l(),d(48,"div",33)(49,"div",34)(50,"div",35),g(51),v(52,"translate"),l(),d(53,"div",36)(54,"div",37)(55,"span",38),g(56),v(57,"translate"),l(),d(58,"span",39),g(59),l()(),d(60,"div",37)(61,"span",38),g(62),v(63,"translate"),l(),d(64,"span",39),g(65),l()(),d(66,"div",37)(67,"span",38),g(68),v(69,"translate"),l(),d(70,"span",39),g(71),l()(),d(72,"div",37)(73,"span",38),g(74),v(75,"translate"),l(),d(76,"span",39),g(77),l()(),d(78,"div",37)(79,"span",38),g(80),v(81,"translate"),l(),d(82,"span",39),g(83),l()(),d(84,"div",37)(85,"span",38),g(86),v(87,"translate"),l(),d(88,"span",39),g(89),l(
1)()()()(),d(90,"div",40)(91,"div",27)(92,"div",28),g(93),v(94,"translate"),l(),d(95,"app-availability-trend",41),L("selectedDayChange",function(i){return F(e.selectedDay,i)||(e.selectedDay=i),i}),l()()()(),d(96,"app-page-toolbar",42),P("currentSettingsChange",function(i){return e.onSettingsChanged(i)}),d(97,"div",43)(98,"app-historic-data-toggle",44),L("checkedChange",function(i){return F(e.historicFilter.queryHistoricData,i)||(e.historicFilter.queryHistoricData=i),i}),l()()()),n&2&&(ne("dashboard-ready",e.isReady()),s(7),f(e.assetName()),s(2),f(y(10,57,"Availability")),s(9),H(" ",y(19,59,"Date Range")," "),s(3),C("placeholder",ae(y(22,61,"Select start date")))("ngModel",e.startDate())("readonlyInput",!0)("minDate",e.minDate())("maxDate",e.endDate()||e.maxDate())("dateFormat",e.translationService.primeTranslation().dateFormat)("firstDayOfWeek",e.translationService.primeTranslation().firstDayOfWeek)("inputStyle",ie(87,Ve))("showOtherMonths",!1),s(2),C("placeholder",ae(y(24,63,"Select end date")))("ngModel",e.endDate())("readonlyInput",!0)("minDate",e.startDate()||e.minDate())("maxDate",e.maxDate())("dateFormat",e.translationService.primeTranslation().dateFormat)("firstDayOfWeek",e.translationService.primeTranslation().firstDayOfWeek)("inputStyle",ie(88,Ve))("showOtherMonths",!1),s(6),f(y(30,65,"Time Management")),s(4),f(y(34,67,"Mode")),s(2),C("options",e.modeOptions()),E("ngModel",e.selectedMode),s(),C("data",e.heatmapData()),E("selectedDay",e.selectedDay),s(5),f(y(42,69,"Time Proportion by State")),s(3),ue(e.stateDurations()),s(2),ne("is-open",!!e.selectedDay()),s(),me(e.selectedDay()?47:-1),s(4),f(y(52,71,"Summary")),s(5),f(y(57,73,"Total Time")),s(3),f(e.summary().totalTimeFormatted),s(3),f(y(63,75,"Runtime")),s(3),f(e.summary().runtimeFormatted),s(3),f(y(69,77,"Net Operation Time")),s(3),f(e.summary().netOperationTimeFormatted),s(3),f(y(75,79,"Downtime")),s(3),f(e.summary().downtimeFormatted),s(3),f(y(81,81,"Availability")),s(3),f(e.summary().availabilityPercent),s(3),H("",y(87,83,"Runtime")," %"),s(3),f(e.summary().runtimePercent),s(4),f(y(94,85,"Availability Trend")),s(2),C("data",e.trendData()),E("selectedDay",e.selectedDay),C("timezone",e.timezone()),s(),C("pageId",e.pageId())("assetTz",e.pageContextService.timezone())("currentSettings",e.workingSettings())("isDirty",e.isSettingsDirty()),s(2),E("checked",e.historicFilter.queryHistoricData))},dependencies:[ve,Ce,ye,xe,De,we,Se,_e,Te,Le,Ne,qe,Ye,Fe,be,Me],styles:['@charset "UTF-8";.dashboard-ui-header-label[_ngcontent-%COMP%]{font-family:ui-monospace,Cascadia Code,monospace;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.dashboard-ui-card[_ngcontent-%COMP%]{--card-accent: var(--bs-primary);height:100%;background-color:var(--bs-card-bg, #fff);border:none;border-radius:.5rem;border-left:5px solid var(--card-accent, var(--bs-primary));box-shadow:0 2px 4px #00000014,0 1px 2px #0000000d;padding:.75rem 1rem;display:flex;flex-direction:column;justify-content:center;position:relative;transition:transform .2s ease-out,box-shadow .2s ease-out,background-color .2s}.dashboard-ui-card[_ngcontent-%COMP%]:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.dashboard-ui-card.border-primary[_ngcontent-%COMP%]{border-color:var(--bs-primary)!important}.dashboard-ui-card.border-success[_ngcontent-%COMP%]{border-color:var(--bs-success)!important}.dashboard-ui-card.border-danger[_ngcontent-%COMP%]{border-color:var(--bs-danger)!important}.dashboard-ui-card.border-warning[_ngcontent-%COMP%]{border-color:var(--bs-warning)!important}.dashboard-ui-card.border-brown[_ngcontent-%COMP%]{border-color:#9d7660!important}[data-bs-theme=dark][_ngcontent-%COMP%]   .dashboard-ui-card[_ngcontent-%COMP%]{box-shadow:0 2px 4px #0003;--bs-card-bg: #2b3035;--bs-primary: var(--bs-secondary);--card-accent: var(--bs-secondary)}[data-bs-theme=dark][_ngcontent-%COMP%]   .dashboard-ui-card[_ngcontent-%COMP%]   .text-primary[_ngcontent-%COMP%]{color:var(--bs-secondary)}.loading-overlay[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;border-radius:.5rem;background-color:#ffffffd9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}[data-bs-theme=dark][_ngcontent-%COMP%]   .loading-overlay[_ngcontent-%COMP%]{background-color:#2b3035d9}.spinner[_ngcontent-%COMP%]{width:42px;height:42px;border:4px solid var(--bs-gray-200, #e9ecef);border-top-color:var(--bs-primary);border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]{max-height:50vh!important;overflow-y:auto!important;overflow-x:hidden!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar{width:6px!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background-color:var(--bs-gray-300)!important;border-radius:4px!important}.p-menu.p-menu-overlay[_ngcontent-%COMP%]   .p-menu-list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background-color:var(--bs-gray-400)!important}[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;height:calc(100vh - 109px);width:100%;min-height:0}.dashboard-container[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;padding:0 1rem;grid-template-rows:auto;height:auto;overflow-y:auto}@media(min-width:992px){.dashboard-container[_ngcontent-%COMP%]{height:100%;grid-template-rows:85px 1fr auto 260px;overflow:hidden}.dashboard-container[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{min-height:0;overflow:hidden}}.ut-label[_ngcontent-%COMP%]{font-size:.65rem;letter-spacing:.8px;line-height:1;text-transform:uppercase;font-weight:700;color:var(--bs-secondary-color, #6c757d);line-height:1.2}.ut-value[_ngcontent-%COMP%]{font-size:1rem;line-height:1.2;font-weight:800;color:var(--bs-body-color, #212529)}.ut-title[_ngcontent-%COMP%]{font-size:1.3rem;letter-spacing:.8px;line-height:1;text-transform:uppercase;padding-top:5px;font-weight:900;color:var(--bs-secondary-color, #6c757d)}.ut-card-header[_ngcontent-%COMP%]{font-family:ui-monospace,Cascadia Code,monospace;letter-spacing:.8px;font-size:.9rem;font-weight:600;text-transform:uppercase}.summary-stats-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;row-gap:1rem;column-gap:.5rem;align-content:space-evenly}.summary-stat-item[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-width:0}.summary-stat-item[_ngcontent-%COMP%]   .ut-label[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heatmap-area[_ngcontent-%COMP%]{min-height:350px}@media(min-width:992px){.heatmap-area[_ngcontent-%COMP%]{min-height:0}}.side-panel[_ngcontent-%COMP%]{gap:1rem}.top-bar-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}@media(min-width:992px){.top-bar-wrapper[_ngcontent-%COMP%]{flex-direction:row}.top-bar-wrapper[_ngcontent-%COMP%]   .title-card[_ngcontent-%COMP%]{flex:0 0 auto;min-width:250px}.top-bar-wrapper[_ngcontent-%COMP%]   .nav-card[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0}.top-bar-wrapper[_ngcontent-%COMP%]   .filter-card[_ngcontent-%COMP%]{flex:0 0 auto}}.filter-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.filter-wrapper[_ngcontent-%COMP%]   .filter-label[_ngcontent-%COMP%]{font-size:.65rem;letter-spacing:.8px;line-height:1;text-transform:uppercase;font-weight:700;color:var(--bs-secondary-color, #6c757d);font-size:.8rem;margin-bottom:2px}.filter-wrapper[_ngcontent-%COMP%]   .filter-label[_ngcontent-%COMP%]   .slider-value-text[_ngcontent-%COMP%]{font-weight:700;font-size:.8rem;text-transform:none;margin-right:.25rem}.mode-dropdown[_ngcontent-%COMP%]     .p-select-label{font-size:.65rem;letter-spacing:.8px;line-height:1;text-transform:uppercase;font-weight:700;color:var(--bs-secondary-color, #6c757d);font-size:.8rem;margin-bottom:0;line-height:1.5}.mode-dropdown[_ngcontent-%COMP%]     .p-select-option-label{font-size:.65rem;letter-spacing:.8px;line-height:1;text-transform:uppercase;font-weight:700;color:var(--bs-secondary-color, #6c757d);font-size:.8rem}.state-bar-area[_ngcontent-%COMP%]{min-height:180px}@media(min-width:992px){.state-bar-area[_ngcontent-%COMP%]{min-height:0}}
1.state-color-dot[_ngcontent-%COMP%]{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.state-label[_ngcontent-%COMP%]{font-size:.65rem;letter-spacing:.8px;line-height:1;text-transform:uppercase;font-weight:700;color:var(--bs-secondary-color, #6c757d);width:120px}.state-bar-track[_ngcontent-%COMP%]{height:14px;background:var(--bs-secondary-bg, #e9ecef);border-radius:3px;overflow:hidden}.state-bar-fill[_ngcontent-%COMP%]{height:100%;border-radius:3px;transition:width .3s ease}.state-pct[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;min-width:40px;text-align:right}.time-strip-row.is-open[_ngcontent-%COMP%]{height:150px}.trend-area[_ngcontent-%COMP%]{min-height:300px}@media(min-width:992px){.trend-area[_ngcontent-%COMP%]{min-height:0}}@media print{.dashboard-container[_ngcontent-%COMP%]{display:grid!important;grid-template-columns:repeat(12,1fr)!important;grid-template-rows:auto!important;height:auto!important;overflow:visible!important;padding:0!important}.dashboard-ui-card[_ngcontent-%COMP%]{border:none!important;box-shadow:none!important;padding:0!important}}'],changeDetection:0})}}return a})();export{an as AvailabilityComponent};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.