257 files
This commit is contained in:
1 parent
7c55603942
commit
c29f5cc088
258 files changed
+24621
-3136
No files matched your search
@@ -0,0 +1,2 @@
|
||||
/*! maintenance_supporter frontend 2.96.0 */
|
||||
import{b as j}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-4OFQFCKD.js";import{e as x,f as A,l as v}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-BYGTDXRD.js";var q=500,E=new Set(["completed","skipped","reset","missed"]);function N(r,e){let n=r.reading_values||[];return n.length?n.filter(o=>typeof o.value=="number").map(o=>({id:o.id,name:o.name||"",value:o.value,unit:o.unit||""})):typeof r.reading_value=="number"?[{id:"",name:"",value:r.reading_value,unit:e||""}]:[]}function C(r){let e=[];for(let n of r){let o=[...n.history??[]].map(t=>({h:t,ts:new Date(t.timestamp).getTime()})).filter(t=>Number.isFinite(t.ts)).sort((t,a)=>t.ts-a.ts),s=new Map;for(let{h:t,ts:a}of o){let y=N(t,n.reading_unit).map(i=>{let d=s.get(i.id);return s.set(i.id,i.value),{name:i.name,value:i.value,unit:i.unit,delta:d==null?null:i.value-d}});if(!E.has(t.type))continue;let c=t.checklist_state&&typeof t.checklist_state=="object"?Object.values(t.checklist_state):null;e.push({ts:a,timestamp:t.timestamp,taskId:n.id,taskName:n.name,type:t.type,cost:x(t),partsCost:typeof t.parts_cost=="number"?t.parts_cost:null,partsCounted:t.cost_basis==="use",purchaseCost:t.cost_basis==="use"&&t.purchase&&typeof t.cost=="number"?t.cost:null,duration:typeof t.duration=="number"?t.duration:null,notes:t.notes??null,completedBy:t.completed_by??null,phaseName:t.phase_id&&n.phases?.[t.phase_id]?.name||null,refNo:typeof t.ref_no=="number"?t.ref_no:null,taskRefNo:typeof n.ref_no=="number"?n.ref_no:null,readings:y,parts:(t.used_parts||[]).filter(i=>i&&(i.name||i.part_id)).map(i=>({name:i.name||i.part_id,quantity:typeof i.quantity=="number"?i.quantity:1})),photoIds:v(t),checklist:c&&c.length?{done:c.filter(Boolean).length,total:c.length}:null})}}return e.sort((n,o)=>o.ts-n.ts||n.taskName.localeCompare(o.taskName)),e}function H(r,e){let n=e.from?new Date(`${e.from}T00:00:00`).getTime():null,o=e.to?new Date(`${e.to}T00:00:00`).getTime()+864e5:null;return r.filter(s=>!(e.taskId&&s.taskId!==e.taskId||n!=null&&s.ts<n||o!=null&&s.ts>=o))}function S(r){let e=0,n=0;for(let o of r)o.type==="completed"&&(e++,o.cost!=null&&(n+=o.cost));return{completed:e,totalCost:n}}var p="__none__",I=36;function T(r){return r.area_id||p}function w(r,e,n){return r===p?n:e?.[r]?.name||r}function D(r,e){return r===p?"mdi:map-marker-off-outline":e?.[r]?.icon||"mdi:map-marker-outline"}function U(r,e,n){return r.filter(o=>(n||!o.object.archived)&&T(o.object)===e)}function B(r,e){let n=[];for(let o of r){let s=C(o.tasks.map(t=>({id:t.id,name:t.name,history:e(o.entry_id,t),phases:t.phases,ref_no:t.ref_no,reading_unit:t.reading_unit})));for(let t of s)n.push({...t,entryId:o.entry_id,objectName:o.object.name})}return n.sort((o,s)=>s.ts-o.ts||o.objectName.localeCompare(s.objectName)||o.taskName.localeCompare(s.taskName)),n}function z(r,e){let n=(e.taskQuery??"").trim();return H(r,{from:e.from,to:e.to}).filter(o=>(!e.entryId||o.entryId===e.entryId)&&(!n||j(o.taskName,n)))}function X(r){let{completed:e,totalCost:n}=S(r),o=0;for(let s of r)s.type==="completed"&&s.duration!=null&&(o+=s.duration);return{completions:e,totalCost:n,avgCost:e?n/e:null,totalDuration:o}}function G(r,e){let n=new Map;for(let t of e)n.set(t.entry_id,{entryId:t.entry_id,objectName:t.object.name,completions:0,cost:0,share:0});for(let t of r){if(t.type!=="completed")continue;let a=n.get(t.entryId);a&&(a.completions++,t.cost!=null&&(a.cost+=t.cost))}let o=[...n.values()].reduce((t,a)=>t+a.cost,0),s=[...n.values()].map(t=>({...t,share:o>0?t.cost/o:0}));return s.sort((t,a)=>a.cost-t.cost||a.completions-t.completions||t.objectName.localeCompare(a.objectName)),s}function R(r){let[e,n]=r.split("-").map(Number);return[e,n-1]}function L(r,e){return`${r}-${String(e+1).padStart(2,"0")}`}function J(r,e,n=new Date){let o=r.filter(u=>u.type==="completed"),s=o.map(u=>A(new Date(u.ts))),t=A(n),a=s.reduce((u,m)=>m<u?m:u,t),y=s.reduce((u,m)=>m>u?m:u,t),[c,i]=R(e.from||a),[d,h]=R(e.to||y),l=d*12+h-(c*12+i)+1;if(l<=0)return{unit:"month",buckets:[]};let g=l>I?"year":"month",k=[],_=new Map;if(g==="month")for(let u=0;u<l;u++){let m=c+Math.floor((i+u)/12),b=(i+u)%12,f={key:L(m,b),year:m,month:b,cost:0,completions:0};k.push(f),_.set(f.key,f)}else for(let u=c;u<=d;u++){let m={key:String(u),year:u,month:null,cost:0,completions:0};k.push(m),_.set(m.key,m)}return o.forEach((u,m)=>{let b=s[m],f=_.get(g==="month"?b.slice(0,7):b.slice(0,4));f&&(f.completions++,u.cost!=null&&(f.cost+=u.cost))}),{unit:g,buckets:k}}function W(r=new Date){return{from:A(new Date(r.getFullYear(),r.getMonth()-11,1)),to:A(r)}}function Z(r){return{from:`${r}-01-01`,to:`${r}-12-31`}}function tt(r,e){let n=new Set([e]);for(let o of r)o.type==="completed"&&n.add(new Date(o.ts).getFullYear());return[...n].sort((o,s)=>s-o)}function et(r,e){let n=new Map;for(let s of r){if(!e.showArchived&&s.object.archived)continue;let t=T(s.object),a=n.get(t);a?a.push(s):n.set(t,[s])}let o=[];for(let[s,t]of n){let a=t.flatMap(l=>l.tasks.filter(g=>e.showArchived||!g.archived)),y=a.filterLine truncated
|
||||
Reference in new issue
Block a user