Files
HomeAssistantVS/custom_components/maintenance_supporter/frontend/panel-chunks/chunk-BYGTDXRD.js
T

3 lines
5.6 KiB
JavaScript

/*! maintenance_supporter frontend 2.96.0 */
import{p as w}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-N6F5RX6S.js";var C={days:1,weeks:7,months:30.4368,years:365.25};function S(n,e){return!n||n<=0?0:n*(C[e||"days"]??1)}function R(n,e,s){let t=S(n,s);if(t<=0||e==null)return{pct:0,overflow:!1};let r=(t-e)/t*100;return{pct:Math.max(0,Math.min(100,r)),overflow:r>100}}function B(n){return n==="use"?"use":"purchase"}var y=n=>typeof n=="number"&&Number.isFinite(n)?n:null;function N(n){let e=y(n?.cost);if(e===null)return null;let s=y(n?.package_size);return s&&s>0?e/s:e}function $(n,e){let s=y(e)&&e>0?e:y(n.restock_quantity)||1,t=y(n.package_size);return Math.round(s*(t&&t>0?t:1)*100)/100}function b(n){let e=y(n.cost);if(n.cost_basis!=="use")return e;let s=y(n.parts_cost),t=n.purchase?null:e;return t===null&&s===null?null:(t??0)+(s??0)}var j=5;function v(n){let e=n.getFullYear(),s=String(n.getMonth()+1).padStart(2,"0"),t=String(n.getDate()).padStart(2,"0");return`${e}-${s}-${t}`}function U(n){let e=String(n.getHours()).padStart(2,"0"),s=String(n.getMinutes()).padStart(2,"0");return`${v(n)}T${e}:${s}:00`}function M(n,e){let s=[];for(let t=0;t<e;t++){let r=new Date(n);r.setDate(r.getDate()+t),r.setHours(0,0,0,0),s.push(v(r))}return s}function k(n,e){let[s,t,r]=n.split("-").map(Number),l=new Date(s,t-1,r);return l.setDate(l.getDate()+e),v(l)}function I(n){if(!n||n.length===0)return null;let e=n.map(s=>b(s)).filter(s=>s!==null);return e.length===0?null:e.reduce((s,t)=>s+t,0)/e.length}function A(n){let{windowStart:e,windowEnd:s,task:t,entryId:r,objectName:l}=n,c=[],_=(i,a)=>({date:i,entry_id:r,task_id:t.id,task_name:t.name,object_name:l,status:a&&(t.status==="overdue"||t.status==="triggered")?"ok":t.status,days_until_due:a?null:t.days_until_due??null,projected:a,schedule_type:t.schedule_type,interval_days:t.interval_days??null,interval_unit:t.interval_unit??null,responsible_user_id:t.responsible_user_id??null,avg_cost:I(t.history),adaptive_enabled:!!t.adaptive_config?.enabled,prediction_confidence:t.threshold_prediction_confidence??null}),d=Math.max(1,Math.round(S(t.interval_days,t.interval_unit)));if(t.status==="overdue"||t.status==="triggered"){if(c.push(_(e,!1)),t.schedule_type==="time_based"&&t.interval_days&&t.interval_days>0){let i=k(e,d),a=1;for(;i<=s&&a<j;)c.push(_(i,!0)),a++,i=k(i,d)}return c}let u=t.next_due;if(typeof u!="string"||!u)return c;let o=u.slice(0,10);if(o>=e&&o<=s)c.push(_(o,!1));else if(o>s)return c;if(t.schedule_type==="time_based"&&t.interval_days&&t.interval_days>0){let i=k(o,d),a=c.length;for(;i<=s&&a<j;)i>=e&&(c.push(_(i,!0)),a++),i=k(i,d)}return c}function X(n,e,s,t=null){let r=M(e,s),l=r[0],c=r[r.length-1],_=[];for(let u of n){let o=u.object?.name||"",i=u.entry_id,a=u.tasks||[];for(let g of a){if(t&&g.responsible_user_id!==t||g.enabled===!1)continue;let p=A({windowStart:l,windowEnd:c,task:g,entryId:i,objectName:o});_.push(...p)}}let d=new Map;for(let u of r)d.set(u,[]);for(let u of _){let o=d.get(u.date);o&&o.push(u)}for(let[,u]of d)u.sort((o,i)=>{let a=w(o.status),g=w(i.status);if(a!==g)return a-g;if(o.projected!==i.projected)return o.projected?1:-1;let p=o.object_name.localeCompare(i.object_name);return p!==0?p:o.task_name.localeCompare(i.task_name)});return r.map(u=>({date:u,events:d.get(u)??[]}))}var H={completed:"ok",reset:"ok",skipped:"due_soon",missed:"overdue",triggered:"triggered",trigger_replaced:"triggered",trigger_removed:"ok"};function x(n,e){return`${n}/${e}`}function q(n,e,s){let t=P(e,s)[0],r=[];for(let l of n)for(let c of l.tasks||[]){let _=c.history||[],d=c.history_count??_.length;if(d<=_.length)continue;let u=_.map(a=>typeof a?.timestamp=="string"?a.timestamp:"").filter(Boolean),o=u.length?u.reduce((a,g)=>a<g?a:g).slice(0,10):"";if(o&&o<t)continue;let i=x(l.entry_id,c.id);r.push({entryId:l.entry_id,taskId:c.id,key:i,sig:`${i}:${d}:${O(JSON.stringify(_))}`})}return r}function O(n){let e=2166136261;for(let s=0;s<n.length;s++)e^=n.charCodeAt(s),e=Math.imul(e,16777619);return(e>>>0).toString(36)}function P(n,e){let s=[];for(let t=e-1;t>=0;t--){let r=new Date(n);r.setDate(r.getDate()-t),r.setHours(0,0,0,0),s.push(v(r))}return s}function W(n,e,s,t=null,r={}){let l=P(e,s),c=l[0],_=l[l.length-1],d=new Map;for(let o of l)d.set(o,[]);for(let o of n){let i=o.object?.name||"",a=o.entry_id,g=o.tasks||[];for(let p of g){if(t&&p.responsible_user_id!==t)continue;let m=r[x(a,p.id)]??(p.history||[]);for(let f of m){if(typeof f?.timestamp!="string")continue;let h=f.timestamp.slice(0,10);if(h<c||h>_)continue;let D=d.get(h);if(!D)continue;let E=f.type??"completed";D.push({date:h,entry_id:a,task_id:p.id,task_name:p.name,object_name:i,status:H[E]??"ok",days_until_due:null,projected:!1,schedule_type:p.schedule_type,interval_days:p.interval_days??null,responsible_user_id:p.responsible_user_id??null,avg_cost:b(f),adaptive_enabled:!!p.adaptive_config?.enabled,prediction_confidence:null,history_timestamp:f.timestamp,history_type:E,history_cost:b(f),history_notes:typeof f.notes=="string"?f.notes:null,history_duration:typeof f.duration=="number"?f.duration:null})}}}let u={completed:0,reset:1,skipped:2,triggered:3,trigger_replaced:4};for(let[,o]of d)o.sort((i,a)=>{let g=u[i.history_type??""]??99,p=u[a.history_type??""]??99;if(g!==p)return g-p;let m=i.object_name.localeCompare(a.object_name);return m!==0?m:i.task_name.localeCompare(a.task_name)});return l.map(o=>({date:o,events:d.get(o)??[]}))}function J(n){if(!n)return[];let e=[],s=n.photo_doc_id;typeof s=="string"&&e.push(s);let t=n.photo_doc_ids;Array.isArray(t)&&e.push(...t);let r=[];for(let l of e){if(typeof l!="string")continue;let c=l.trim();if(!(!c||r.includes(c))&&(r.push(c),r.length>=10))break}return r}export{R as a,B as b,N as c,$ as d,b as e,v as f,U as g,X as h,x as i,q as j,W as k,J as l};