From 3e88072a05b854b97be3ead038dfe2dbb4458960 Mon Sep 17 00:00:00 2001 From: pedrofm Date: Wed, 25 Feb 2026 14:01:57 +0100 Subject: [PATCH 1/2] New version with 'performRunStepPartAction' and 'finishStepWhenAllPartsAreFinished' --- .yarn/install-state.gz | Bin 368224 -> 368224 bytes dist/equipment/interfaces/equipment.d.ts | 4 + dist/index.cjs | 2 +- dist/index.cjs.map | 2 +- dist/index.d.ts | 3 + dist/index.js | 301 +++++++++--------- dist/index.js.map | 2 +- dist/run/api/listRunParts.d.ts | 3 +- dist/run/api/step/finishStep.d.ts | 8 + dist/run/api/step/startStep.d.ts | 8 + .../finishStepWhenAllPartsAreFinished.d.ts | 3 + .../functions/performRunStepPartAction.d.ts | 3 + dist/run/interfaces/runStep.d.ts | 3 + package.json | 2 +- src/index.ts | 2 + .../finishStepWhenAllPartsAreFinished.ts | 38 +++ src/run/functions/performRunStepPartAction.ts | 19 ++ 17 files changed, 255 insertions(+), 148 deletions(-) create mode 100644 dist/run/functions/finishStepWhenAllPartsAreFinished.d.ts create mode 100644 dist/run/functions/performRunStepPartAction.d.ts create mode 100644 src/run/functions/finishStepWhenAllPartsAreFinished.ts create mode 100644 src/run/functions/performRunStepPartAction.ts diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index a88782f0def774e6bb551e195e697ecde1a002c7..35f10a36086048ebc923c5e4ebe6ed2e5c8686a3 100644 GIT binary patch delta 150152 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 delta 150146 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

?^pOb1dqZT(gx_Iht@FiGbgxR*oIVt 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 ZXUn7$rNr9~_kQ%%zXMTKFamHu5ddOI*v|j} diff --git a/dist/equipment/interfaces/equipment.d.ts b/dist/equipment/interfaces/equipment.d.ts index bf0cc9c..ae11c59 100644 --- a/dist/equipment/interfaces/equipment.d.ts +++ b/dist/equipment/interfaces/equipment.d.ts @@ -8,6 +8,9 @@ export declare enum EquipmentGrade { "Accessory" = 2, "Storage" = 3 } +export declare enum DashboardComponent { + "ProcessNextStepInEquipment" = "ProcessNextStepInEquipment" +} export interface Equipment { id: number; name: string; @@ -26,6 +29,7 @@ export interface Equipment { main_tool_module_id: number | null; main_tool_latest_status?: EquipmentModuleStatus; is_available_for_rental: boolean; + dashboard_components: DashboardComponent[]; properties?: EquipmentProperty[]; room: Room; types: string[]; diff --git a/dist/index.cjs b/dist/index.cjs index 9847dc1..ed7eb0b 100644 --- a/dist/index.cjs +++ b/dist/index.cjs @@ -1,2 +1,2 @@ -"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("axios");function M(t){let e={...t};return e.facet=Object.fromEntries(Object.entries(t.facet).filter(([n,s])=>s.values.length>0)),t.filter.general.length<=0&&(e.filter={}),e}async function U({service:t,environment:e,formResult:n}){const s=new URLSearchParams;if(t!==void 0&&s.append("service",t),e!==void 0&&s.append("environment",e),n!==void 0){let c=JSON.stringify(M(n));s.append("formResult",btoa(c))}let a="view/filter?"+s.toString();const r=await o.get(a),{data:i}=r;return{filter:i._embedded.items[0],facet:i._embedded.items[1]}}async function b(){const t=await o.get("me"),{data:e}=t;return e}async function y({query:t,selection:e}){const n=new URLSearchParams;t&&n.append("query",t),e&&n.append("selection",e.toString());let s="list/user?"+n.toString();const a=await o.get(s),{data:r}=a;return{items:r._embedded.items,amountOfPages:r.page_count,currentPage:r.page,totalItems:r.total_items,hasMore:r.page{const s=new FileReader;s.onload=()=>{const a=s.result;e(a)},s.onerror=n,s.readAsDataURL(t)})}const C=(t,e)=>{o.defaults.headers.common.Authorization="Bearer "+t,o.defaults.headers.common.Accept="application/json",o.defaults.headers.common["Content-Type"]="application/json",o.defaults.baseURL=e};async function E({id:t}){const e=await o.get("view/chemical/container/"+t),{data:n}=e;return n}async function D({qrCodeContent:t}){const e=new URLSearchParams;e.append("qr_code_content",t);let n="list/chemical/container/external-label?"+e.toString();const s=await o.get(n),{data:a}=s;return{items:a._embedded.items,amountOfPages:a.page_count,currentPage:a.page,totalItems:a.total_items,hasMore:a.pages.values.length>0)),t.filter.general.length<=0&&(e.filter={}),e}async function x({environment:t,run:e,room:n,statusMail:s,page:a=1,pageSize:r=25,query:i,filter:c,order:p,direction:d}){const g=new URLSearchParams;t!==void 0&&g.append("environment",t),e!==void 0&&g.append("run",e.id.toString()),n!==void 0&&g.append("room",n.id.toString()),i!==void 0&&g.append("query",i),p!==void 0&&g.append("order",p),d!==void 0&&g.append("direction",d),s!==void 0&&(g.append("status_mail",s.id.toString()),g.append("page_size","200")),c!==void 0&&(c=j(c),g.append("filter",btoa(JSON.stringify(c)))),g.append("page",a.toString()),g.append("page_size",r.toString());let O="list/equipment?"+g.toString();const L=await o.get(O),{data:m}=L;return{items:m._embedded.items,amountOfPages:m.page_count,currentPage:m.page,totalItems:m.total_items,hasMore:m.page(t[t.START_PROCESSING=1]="START_PROCESSING",t[t.FINISH_PROCESSING=2]="FINISH_PROCESSING",t[t.FAILED_PROCESSING=3]="FAILED_PROCESSING",t[t.REWORK=4]="REWORK",t))(u||{});function Pt(t){if(t.part_processing_failed_in_previous_step)return[];const e=t.latest_action?.type.id,n=[];return t.actions===0&&n.push(u.START_PROCESSING),t.actions>0&&e!==u.FINISH_PROCESSING&&e!==u.FAILED_PROCESSING&&n.push(u.FINISH_PROCESSING,u.FAILED_PROCESSING),t.actions>0&&n.push(u.REWORK),n}async function ht({measurement:t}){const e=new URLSearchParams;e.append("measurement",String(t.id));let n="/list/run/measurement/result?"+e.toString();const s=await o.get(n),{data:a}=s;return{items:a._embedded.items,amountOfPages:a.page_count,currentPage:a.page,totalItems:a.total_items,hasMore:a.pager.id).forEach(r=>{e.append("rework_recipe_id[]",r.toString())});let n="list/template?"+e.toString();const s=await o.get(n),{data:a}=s;return{templates:a._embedded.items,amountOfPages:a.page_count,currentPage:a.page,totalItems:a.total_items}}var l=(t=>(t[t.STANDARD_PRODUCT=1]="STANDARD_PRODUCT",t[t.NON_STANDARD_PRODUCT=2]="NON_STANDARD_PRODUCT",t))(l||{}),S=(t=>(t[t.SOLID=1]="SOLID",t[t.LIQUID=2]="LIQUID",t[t.GAS=3]="GAS",t[t.OTHER=4]="OTHER",t))(S||{}),_=(t=>(t[t.Equipment=1]="Equipment",t[t.Accessory=2]="Accessory",t[t.Storage=3]="Storage",t))(_||{}),f=(t=>(t[t.DEFAULT=1]="DEFAULT",t[t.PRIORITY=2]="PRIORITY",t[t.ESCALATION=3]="ESCALATION",t))(f||{}),P=(t=>(t[t.ACTIVE=1]="ACTIVE",t[t.CLOSED=2]="CLOSED",t))(P||{}),h=(t=>(t[t.HIDE_ISSUES=1]="HIDE_ISSUES",t[t.SHOW_ISSUES=2]="SHOW_ISSUES",t[t.COLLAPSE_ISSUES=3]="COLLAPSE_ISSUES",t))(h||{}),R=(t=>(t[t.NAME=1]="NAME",t[t.MES_NAME=2]="MES_NAME",t[t.NUMBER=3]="NUMBER",t))(R||{}),w=(t=>(t[t.AREA=1]="AREA",t[t.AREA_PER_FACILITY=2]="AREA_PER_FACILITY",t[t.ROOM=3]="ROOM",t))(w||{}),v=(t=>(t.ASC="ASC",t.DESC="DESC",t))(v||{}),I=(t=>(t[t.RESEARCH=1]="RESEARCH",t[t.PRODUCTION=2]="PRODUCTION",t))(I||{});exports.ChemicalPhysicalStateEnum=S;exports.ChemicalStandardProductEnum=l;exports.ClassificationsOptionEnum=w;exports.DirectionOptionEnum=v;exports.EquipmentGrade=_;exports.EquipmentModuleIssueStatus=P;exports.EquipmentModuleIssueType=f;exports.OrderOptionEnum=R;exports.RunStepPartActionEnum=u;exports.RunTypeEnum=I;exports.ShowIssuesOptionEnum=h;exports.configureAxiosHeaders=C;exports.fileToBase64=A;exports.finishStep=vt;exports.getAvailableRunStepPartActions=Pt;exports.getChemicalContainer=E;exports.getEquipment=H;exports.getEquipmentModule=V;exports.getFilter=U;exports.getLocation=Z;exports.getMe=b;exports.getMonitor=nt;exports.getRoom=tt;exports.getRun=dt;exports.getRunStep=ut;exports.getServiceEventReport=yt;exports.getSetup=z;exports.getStatusMail=G;exports.getTemplateSteps=Et;exports.listChemicalContainerExternalLabels=D;exports.listChemicalContainerMethodsOfUse=N;exports.listChemicalContainerPurposes=T;exports.listChemicalContainerTypes=q;exports.listChemicals=F;exports.listEcn=k;exports.listEcnAttachments=W;exports.listEquipment=x;exports.listEquipmentModuleParameters=K;exports.listEquipmentStatus=B;exports.listIssueAttachments=Y;exports.listIssues=J;exports.listLocationMessages=X;exports.listLocations=et;exports.listMeasurementResults=ht;exports.listModules=Q;exports.listMonitorRequirementResultMonitorStepParameterValues=ot;exports.listMonitorRequirementResults=it;exports.listMonitorRequirementTargets=ct;exports.listMonitorRequirements=st;exports.listMonitorStepFiles=pt;exports.listMonitorStepParameters=gt;exports.listMonitors=rt;exports.listReportResult=bt;exports.listRequirements=mt;exports.listReservations=$;exports.listRooms=at;exports.listRunChangelog=lt;exports.listRunParts=St;exports.listRunStepChecklistItems=Rt;exports.listRunStepFiles=It;exports.listRunStepParameters=Ot;exports.listRunStepPartActions=Mt;exports.listRunStepParts=Lt;exports.listRunSteps=_t;exports.listRuns=ft;exports.listServiceEventReportResult=At;exports.listServices=Ct;exports.listTemplates=Dt;exports.listUsers=y;exports.setRunStepPartAction=Ut;exports.startStep=wt; +"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("axios");function b(t){let e={...t};return e.facet=Object.fromEntries(Object.entries(t.facet).filter(([n,s])=>s.values.length>0)),t.filter.general.length<=0&&(e.filter={}),e}async function C({service:t,environment:e,formResult:n}){const s=new URLSearchParams;if(t!==void 0&&s.append("service",t),e!==void 0&&s.append("environment",e),n!==void 0){let c=JSON.stringify(b(n));s.append("formResult",btoa(c))}let a="view/filter?"+s.toString();const r=await o.get(a),{data:i}=r;return{filter:i._embedded.items[0],facet:i._embedded.items[1]}}async function E(){const t=await o.get("me"),{data:e}=t;return e}async function N({query:t,selection:e}){const n=new URLSearchParams;t&&n.append("query",t),e&&n.append("selection",e.toString());let s="list/user?"+n.toString();const a=await o.get(s),{data:r}=a;return{items:r._embedded.items,amountOfPages:r.page_count,currentPage:r.page,totalItems:r.total_items,hasMore:r.page{const s=new FileReader;s.onload=()=>{const a=s.result;e(a)},s.onerror=n,s.readAsDataURL(t)})}const T=(t,e)=>{o.defaults.headers.common.Authorization="Bearer "+t,o.defaults.headers.common.Accept="application/json",o.defaults.headers.common["Content-Type"]="application/json",o.defaults.baseURL=e};async function q({id:t}){const e=await o.get("view/chemical/container/"+t),{data:n}=e;return n}async function F({qrCodeContent:t}){const e=new URLSearchParams;e.append("qr_code_content",t);let n="list/chemical/container/external-label?"+e.toString();const s=await o.get(n),{data:a}=s;return{items:a._embedded.items,amountOfPages:a.page_count,currentPage:a.page,totalItems:a.total_items,hasMore:a.pages.values.length>0)),t.filter.general.length<=0&&(e.filter={}),e}async function Y({environment:t,run:e,room:n,statusMail:s,page:a=1,pageSize:r=25,query:i,filter:c,order:p,direction:u}){const g=new URLSearchParams;t!==void 0&&g.append("environment",t),e!==void 0&&g.append("run",e.id.toString()),n!==void 0&&g.append("room",n.id.toString()),i!==void 0&&g.append("query",i),p!==void 0&&g.append("order",p),u!==void 0&&g.append("direction",u),s!==void 0&&(g.append("status_mail",s.id.toString()),g.append("page_size","200")),c!==void 0&&(c=V(c),g.append("filter",btoa(JSON.stringify(c)))),g.append("page",a.toString()),g.append("page_size",r.toString());let U="list/equipment?"+g.toString();const y=await o.get(U),{data:m}=y;return{items:m._embedded.items,amountOfPages:m.page_count,currentPage:m.page,totalItems:m.total_items,hasMore:m.page(t[t.START_PROCESSING=1]="START_PROCESSING",t[t.FINISH_PROCESSING=2]="FINISH_PROCESSING",t[t.FAILED_PROCESSING=3]="FAILED_PROCESSING",t[t.REWORK=4]="REWORK",t))(d||{});function vt(t){if(t.part_processing_failed_in_previous_step)return[];const e=t.latest_action?.type.id,n=[];return t.actions===0&&n.push(d.START_PROCESSING),t.actions>0&&e!==d.FINISH_PROCESSING&&e!==d.FAILED_PROCESSING&&n.push(d.FINISH_PROCESSING,d.FAILED_PROCESSING),t.actions>0&&n.push(d.REWORK),n}async function It({measurement:t}){const e=new URLSearchParams;e.append("measurement",String(t.id));let n="/list/run/measurement/result?"+e.toString();const s=await o.get(n),{data:a}=s;return{items:a._embedded.items,amountOfPages:a.page_count,currentPage:a.page,totalItems:a.total_items,hasMore:a.page!0).catch(()=>!1)}async function Ct({id:t}){const e=new URLSearchParams;t!==void 0&&e.append("report",t.toString());let n="list/service/event/report/results?"+e.toString();const s=await o.get(n),{data:a}=s;return a._embedded.items}async function Et({id:t}){let e=await o.get("view/service/event/report/"+t);const{data:n}=e;return n}async function Nt({id:t}){const e=new URLSearchParams;e.append("report",t.toString());let n="list/service/event/report/results?"+e.toString();const s=await o.get(n),{data:a}=s;return a._embedded.items}async function Dt({equipmentId:t}){const e=new URLSearchParams;t!==void 0&&e.append("equipment",t.toString());let n="list/service?"+e.toString();const s=await o.get(n),{data:a}=s;return{items:a._embedded.items,amountOfPages:a.page_count,currentPage:a.page,totalItems:a.total_items,hasMore:a.pager.id).forEach(r=>{e.append("rework_recipe_id[]",r.toString())});let n="list/template?"+e.toString();const s=await o.get(n),{data:a}=s;return{templates:a._embedded.items,amountOfPages:a.page_count,currentPage:a.page,totalItems:a.total_items}}var _=(t=>(t[t.STANDARD_PRODUCT=1]="STANDARD_PRODUCT",t[t.NON_STANDARD_PRODUCT=2]="NON_STANDARD_PRODUCT",t))(_||{}),P=(t=>(t[t.SOLID=1]="SOLID",t[t.LIQUID=2]="LIQUID",t[t.GAS=3]="GAS",t[t.OTHER=4]="OTHER",t))(P||{}),h=(t=>(t[t.Equipment=1]="Equipment",t[t.Accessory=2]="Accessory",t[t.Storage=3]="Storage",t))(h||{}),R=(t=>(t.ProcessNextStepInEquipment="ProcessNextStepInEquipment",t))(R||{}),w=(t=>(t[t.DEFAULT=1]="DEFAULT",t[t.PRIORITY=2]="PRIORITY",t[t.ESCALATION=3]="ESCALATION",t))(w||{}),v=(t=>(t[t.ACTIVE=1]="ACTIVE",t[t.CLOSED=2]="CLOSED",t))(v||{}),I=(t=>(t[t.HIDE_ISSUES=1]="HIDE_ISSUES",t[t.SHOW_ISSUES=2]="SHOW_ISSUES",t[t.COLLAPSE_ISSUES=3]="COLLAPSE_ISSUES",t))(I||{}),O=(t=>(t[t.NAME=1]="NAME",t[t.MES_NAME=2]="MES_NAME",t[t.NUMBER=3]="NUMBER",t))(O||{}),L=(t=>(t[t.AREA=1]="AREA",t[t.AREA_PER_FACILITY=2]="AREA_PER_FACILITY",t[t.ROOM=3]="ROOM",t))(L||{}),M=(t=>(t.ASC="ASC",t.DESC="DESC",t))(M||{}),A=(t=>(t[t.RESEARCH=1]="RESEARCH",t[t.PRODUCTION=2]="PRODUCTION",t))(A||{});exports.ChemicalPhysicalStateEnum=P;exports.ChemicalStandardProductEnum=_;exports.ClassificationsOptionEnum=L;exports.DashboardComponent=R;exports.DirectionOptionEnum=M;exports.EquipmentGrade=h;exports.EquipmentModuleIssueStatus=v;exports.EquipmentModuleIssueType=w;exports.OrderOptionEnum=O;exports.RunStepPartActionEnum=d;exports.RunTypeEnum=A;exports.ShowIssuesOptionEnum=I;exports.configureAxiosHeaders=T;exports.fileToBase64=D;exports.finishStep=f;exports.finishStepWhenAllPartsAreFinished=bt;exports.getAvailableRunStepPartActions=vt;exports.getChemicalContainer=q;exports.getEquipment=j;exports.getEquipmentModule=J;exports.getFilter=C;exports.getLocation=nt;exports.getMe=E;exports.getMonitor=ot;exports.getRoom=st;exports.getRun=ft;exports.getRunStep=St;exports.getServiceEventReport=Et;exports.getSetup=W;exports.getStatusMail=B;exports.getTemplateSteps=Tt;exports.listChemicalContainerExternalLabels=F;exports.listChemicalContainerMethodsOfUse=H;exports.listChemicalContainerPurposes=z;exports.listChemicalContainerTypes=G;exports.listChemicals=x;exports.listEcn=$;exports.listEcnAttachments=K;exports.listEquipment=Y;exports.listEquipmentModuleParameters=X;exports.listEquipmentStatus=k;exports.listIssueAttachments=Q;exports.listIssues=Z;exports.listLocationMessages=at;exports.listLocations=rt;exports.listMeasurementResults=It;exports.listModules=tt;exports.listMonitorRequirementResultMonitorStepParameterValues=ut;exports.listMonitorRequirementResults=gt;exports.listMonitorRequirementTargets=dt;exports.listMonitorRequirements=ct;exports.listMonitorStepFiles=mt;exports.listMonitorStepParameters=lt;exports.listMonitors=pt;exports.listReportResult=Ct;exports.listRequirements=_t;exports.listReservations=et;exports.listRooms=it;exports.listRunChangelog=Pt;exports.listRunParts=ht;exports.listRunStepChecklistItems=Ot;exports.listRunStepFiles=Lt;exports.listRunStepParameters=Mt;exports.listRunStepPartActions=Ut;exports.listRunStepParts=At;exports.listRunSteps=Rt;exports.listRuns=wt;exports.listServiceEventReportResult=Nt;exports.listServices=Dt;exports.listTemplates=qt;exports.listUsers=N;exports.performRunStepPartAction=yt;exports.setRunStepPartAction=S;exports.startStep=l; //# sourceMappingURL=index.cjs.map diff --git a/dist/index.cjs.map b/dist/index.cjs.map index f44ca0c..f1c1e6f 100644 --- a/dist/index.cjs.map +++ b/dist/index.cjs.map @@ -1 +1 @@ -{"version":3,"file":"index.cjs","sources":["../src/core/api/getFilter.ts","../src/core/api/getMe.ts","../src/core/api/listUsers.ts","../src/core/functions/fileToBase64.ts","../src/core/functions/configureAxiosHeaders.ts","../src/chemical/api/getChemicalContainer.ts","../src/chemical/api/listChemicalContainerExternalLabels.ts","../src/chemical/api/listChemicalContainerMethodsOfUse.ts","../src/chemical/api/listChemicalContainerPurposes.ts","../src/chemical/api/listChemicalContainerTypes.ts","../src/chemical/api/listChemicals.ts","../src/equipment/api/getEquipment.ts","../src/equipment/api/getSetup.ts","../src/equipment/api/getStatusMail.ts","../src/equipment/api/listEquipment.ts","../src/equipment/api/listEquipmentStatus.ts","../src/equipment/api/module/ecn/listEcnAttachments.ts","../src/equipment/api/module/getEquipmentModule.ts","../src/equipment/api/module/issue/listIssueAttachments.ts","../src/equipment/api/module/listEcn.ts","../src/equipment/api/module/listEquipmentModuleParameters.ts","../src/equipment/api/module/listIssues.ts","../src/equipment/api/module/listModules.ts","../src/equipment/api/module/listReservations.ts","../src/location/api/listLocationMessages.ts","../src/room/api/getLocation.ts","../src/room/api/getRoom.ts","../src/room/api/listLocations.ts","../src/room/api/listRooms.ts","../src/monitor/api/getMonitor.ts","../src/monitor/api/listMonitorRequirements.ts","../src/monitor/api/listMonitors.ts","../src/monitor/api/measurement/listMonitorRequirementResults.ts","../src/monitor/api/measurement/result/listMonitorRequirementResultMonitorStepParameterValues.ts","../src/monitor/api/requirement/listMonitorRequirementTargets.ts","../src/monitor/api/step/listMonitorStepFiles.ts","../src/monitor/api/step/listMonitorStepParameters.ts","../src/run/api/getRun.ts","../src/run/api/getRunStep.ts","../src/run/api/listRequirements.ts","../src/run/api/listRunChangelog.ts","../src/run/api/listRunParts.ts","../src/run/api/listRunSteps.ts","../src/run/api/listRuns.ts","../src/run/enum/runStepPartActionEnum.ts","../src/run/api/getRunStepPartActions.ts","../src/run/api/measurement/listResults.ts","../src/run/api/step/listRunStepChecklistItems.ts","../src/run/api/step/startStep.ts","../src/run/api/step/finishStep.ts","../src/run/api/step/listRunStepFiles.ts","../src/run/api/step/listRunStepParameters.ts","../src/run/api/step/listRunStepParts.ts","../src/run/api/step/part/listRunStepPartActions.ts","../src/run/api/step/part/setRunStepPartAction.ts","../src/service/api/getReportResult.ts","../src/service/api/getServiceEventReport.ts","../src/service/api/listServiceEventReportResult.ts","../src/service/api/listServices.ts","../src/template/api/getTemplateSteps.ts","../src/template/api/listTemplates.ts","../src/chemical/interfaces/chemical.ts","../src/equipment/interfaces/equipment.ts","../src/equipment/interfaces/equipment/module/equipmentModuleIssue.ts","../src/equipment/interfaces/statusMail.ts","../src/run/interfaces/run.ts"],"sourcesContent":["import axios from \"axios\";\nimport { FilterData, FilterFormData } from \"../interfaces/filter\";\nimport { ApiResponse } from \"../interfaces/response\";\n\nfunction cleanFilterData(data: FilterData): FilterData {\n let cleanedData = { ...data };\n cleanedData.facet = Object.fromEntries(Object.entries(data.facet).filter(([_, facet]) => facet.values.length > 0));\n\n if (data.filter.general.length <= 0) {\n // @ts-expect-error\n cleanedData.filter = {};\n }\n return cleanedData;\n}\n\nexport default async function getFilter({\n service,\n environment,\n formResult,\n}: {\n service: string;\n environment?: string;\n formResult?: FilterData;\n}): Promise {\n const searchParams = new URLSearchParams();\n\n if (service !== undefined) {\n searchParams.append(\"service\", service);\n }\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n if (formResult !== undefined) {\n let formData = JSON.stringify(cleanFilterData(formResult));\n searchParams.append(\"formResult\", btoa(formData));\n }\n\n let url = \"view/filter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n filter: data._embedded.items[0],\n facet: data._embedded.items[1],\n };\n}\n","import axios from \"axios\";\nimport {User} from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport default async function getMe() {\n const response = await axios.get(\"me\");\n const {data} = response;\n return data;\n}\n","import axios from \"axios\";\nimport { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listUsers({ query, selection}: { query?: string; selection?: number;}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n if (selection) {\n searchParams.append(\"selection\", selection.toString());\n }\n\n let url = \"list/user?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n};\n","export default function fileToBase64(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const result = reader.result as string;\n resolve(result);\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n}\n","import axios from \"axios\";\n\nexport const configureAxiosHeaders = (token: string, server_uri: string) => {\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\n axios.defaults.headers.common[\"Accept\"] = \"application/json\";\n axios.defaults.headers.common[\"Content-Type\"] = \"application/json\";\n\n axios.defaults.baseURL = server_uri;\n};\n","import axios from \"axios\";\nimport { ChemicalContainer } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/chemicalContainer\";\n\nexport default async function getChemicalContainer({ id }: { id: number }) {\n const response = await axios.get(\"view/chemical/container/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerExternalLabel } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerExternalLabel\";\n\nexport default async function listChemicalContainerExternalLabels({\n qrCodeContent,\n}: {\n qrCodeContent: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"qr_code_content\", qrCodeContent);\n\n let url = \"list/chemical/container/external-label?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerMethodOfUse } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerMethodOfUse\";\n\nexport default async function listChemicalContainerMethodsOfUse({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n let url = \"list/chemical/container/method-of-use?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerPurpose } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerPurpose\";\n\nexport default async function listChemicalContainerPurposes({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical/container/purpose?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerType } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerType\";\n\nexport default async function listChemicalContainerTypes({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical/container/type?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\n// migrated from react-router-dom createSearchParams to URLSearchParams\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Chemical } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical\";\n\nexport default async function listChemicals({ query }: { query?: string }): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\n\nexport default async function getEquipment({ id }: { id: number }) {\n const response = await axios.get(\"view/equipment/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Setup } from \"../interfaces/setup\";\n\nexport default async function getSetup({ id }: { id: number }) {\n const response = await axios.get(\"view/setup/\" + id);\n const { data } = response;\n\n return data;\n}\n","import axios from \"axios\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\n\nexport default async function getStatusMail({ id }: { id: number }) {\n const response = await axios.get(\"view/status-mail/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\nimport { FilterData } from \"@jield/solodb-typescript-core/core/interfaces/filter\";\n\nfunction cleanFilterData(data: FilterData): FilterData {\n let cleanedData = { ...data };\n cleanedData.facet = Object.fromEntries(Object.entries(data.facet).filter(([_, facet]) => facet.values.length > 0));\n\n if (data.filter.general.length <= 0) {\n // @ts-expect-error\n cleanedData.filter = {};\n }\n return cleanedData;\n}\n\nexport default async function listEquipment({\n environment,\n run,\n room,\n statusMail,\n page = 1,\n pageSize = 25,\n query,\n filter,\n order,\n direction\n}: {\n environment?: string;\n run?: Run;\n room?: Room;\n statusMail?: StatusMail;\n page?: number;\n pageSize?: number;\n query?: string;\n filter?: FilterData;\n order?: string;\n direction?: \"desc\" | \"asc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n\n if (room !== undefined) {\n searchParams.append(\"room\", room.id.toString());\n }\n\n if (query !== undefined) {\n searchParams.append(\"query\", query);\n }\n\n if (order !== undefined) {\n searchParams.append(\"order\", order);\n }\n\n if (direction !== undefined) {\n searchParams.append(\"direction\", direction);\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n\n // Use a reasonable page size for infinite scrolling\n searchParams.append(\"page_size\", \"200\");\n }\n\n if (filter !== undefined) {\n filter = cleanFilterData(filter);\n searchParams.append(\"filter\", btoa(JSON.stringify(filter)));\n }\n\n searchParams.append(\"page\", page.toString());\n searchParams.append(\"page_size\", pageSize.toString());\n\n let url = \"list/equipment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { EquipmentStatus } from \"@jield/solodb-typescript-core/equipment/interfaces/equipmentStatus\";\n\nexport default async function listEquipmentStatus(): Promise> {\n const searchParams = new URLSearchParams();\n let url = \"list/equipment/status?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleEcnAttachment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/ecn/equipmentModuleEcnAttachment\";\n\nexport default async function listEcnAttachments({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/ecn/attachment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function getEquipmentModule({ id }: { id: number }) {\n if (isNaN(id)) {\n return null;\n }\n\n const response = await axios.get(\"view/equipment/module/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleIssueAttachment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/issue/equipmentModuleIssueAttachment\";\n\nexport default async function listIssueAttachments({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/issue/attachment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModuleEcn } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleEcn\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\n\nexport default async function listEcn({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/ecn?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { EquipmentModuleParameter } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleParameter\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function listEquipmentModuleParameters({\n module,\n pageSize,\n order,\n direction,\n}: {\n module?: EquipmentModule;\n pageSize?: number;\n order?: \"sequence\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n if (order) {\n searchParams.append(\"order\", order);\n }\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/equipment/module/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleIssue } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleIssue\";\n\nexport default async function listIssues({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/issue?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listModules({\n equipment,\n statusMail,\n run,\n}: {\n equipment?: Equipment;\n statusMail?: StatusMail;\n run?: Run;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"10000\");\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n\n let url = \"list/equipment/module?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModuleReservation } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleReservation\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function listReservations({\n equipment,\n module,\n which,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n which?: \"active\" | \"past\" | \"upcoming\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (which !== undefined) {\n searchParams.append(\"which\", which);\n }\n\n let url = \"list/equipment/reservation?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n if (which == \"active\") {\n for (let i = 0; i < data._embedded.items.length; i++) {\n data._embedded.items[i].active = true;\n }\n }\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { LocationMessage } from \"@jield/solodb-typescript-core/location/interfaces/locationMessage\";\n\nexport default async function listLocationMessages({\n statusMail,\n}: {\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/location/message?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Location } from \"@jield/solodb-typescript-core/room/interfaces/location\";\n\nexport default async function getLocation({ id }: { id: number }) {\n const response = await axios.get(\"view/location/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function getRoom({ id }: { id: number }) {\n const response = await axios.get(\"view/room/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Location } from \"@jield/solodb-typescript-core/room/interfaces/location\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function listLocations({\n environment,\n room,\n pageSize = 25,\n}: {\n environment?: string;\n room?: Room;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment) {\n searchParams.append(\"environment\", environment);\n }\n\n if (room) {\n searchParams.append(\"room\", room.id.toString());\n }\n\n searchParams.append(\"page_size\", pageSize.toString());\n\n let url = \"list/location?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function listRooms({\n environment,\n withLocations,\n}: {\n environment?: string;\n withLocations?: boolean;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment) {\n searchParams.append(\"environment\", environment);\n }\n\n if (withLocations) {\n searchParams.append(\"which\", \"with_locations\");\n }\n\n let url = \"list/room?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\n\nexport default async function getMonitor({ id }: { id: number }) {\n let response = await axios.get(\"view/monitor/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirements({\n equipmentId,\n monitorId,\n}: {\n equipmentId?: number;\n monitorId?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipmentId !== undefined) {\n searchParams.append(\"equipment\", equipmentId.toString());\n }\n\n if (monitorId) {\n searchParams.append(\"monitor\", monitorId.toString());\n }\n\n let url = \"list/monitor/requirement?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\n\nexport default async function listMonitors({\n equipment,\n}: {\n equipment?: Equipment;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n searchParams.append(\"ad_hoc\", \"true\");\n\n let url = \"list/monitor?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorMeasurementResult } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/monitorMeasurementResult\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirementResults({\n requirement,\n order,\n direction,\n pageSize,\n page,\n}: {\n requirement?: MonitorRequirement;\n monitor?: Monitor;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n pageSize?: number;\n page?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n if (pageSize) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (page) {\n searchParams.append(\"page\", page.toString());\n }\n\n let url = \"list/monitor/measurement/result?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorMeasurementResult } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/monitorMeasurementResult\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { MonitorResultStepParameterValue } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/result/monitorResultStepParameterValue\";\n\nexport default async function listMonitorRequirementResultMonitorStepParameterValues({\n requirement,\n result,\n order,\n direction,\n pageSize,\n page,\n}: {\n requirement?: MonitorRequirement;\n result?: MonitorMeasurementResult;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n pageSize?: number;\n page?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n if (result) {\n searchParams.append(\"result\", result.id.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n if (pageSize) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (page) {\n searchParams.append(\"page\", page.toString());\n }\n\n let url = \"list/monitor/measurement/result/step-parameter-value?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { MonitorRequirementTarget } from \"@jield/solodb-typescript-core/monitor/interfaces/requirement/monitorRequirementTarget\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirementTargets({\n requirement,\n}: {\n requirement?: MonitorRequirement;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n let url = \"list/monitor/requirement/target?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorStep } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorStepFiles({\n step,\n pageSize,\n order,\n direction,\n}: {\n step?: MonitorStep;\n pageSize?: number;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/monitor/step/file?\" + searchParams.toString();\n const response = await axios.get>(url);\n\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorStep } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { MonitorStepParameter } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor/step/parameter\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\n\nexport default async function listMonitorStepParameters({\n step,\n requirement,\n pageSize,\n order,\n direction,\n}: {\n step?: MonitorStep;\n requirement?: MonitorRequirement;\n pageSize?: number;\n order?: \"sequence\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (requirement !== undefined) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n if (order) {\n searchParams.append(\"order\", order);\n }\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/monitor/step/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function getRun({ id }: { id: number }) {\n let url = \"view/run/\" + id;\n\n const response = await axios.get(url);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\n\nexport default async function getRunStep({ id }: { id: number }) {\n let url = \"view/run/step/\" + id;\n\n const response = await axios.get(url);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { Requirement } from \"@jield/solodb-typescript-core/run/interfaces/requirement\";\n\nexport default async function listRequirements({\n step,\n run,\n}: {\n step?: RunStep;\n run?: Run;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", String(step.id));\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", String(run.id));\n }\n\n let url = \"list/run/requirement?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Changelog } from \"@jield/solodb-typescript-core/run/interfaces/run/changelog\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunChangelog({\n run,\n page,\n}: {\n run: Run;\n page: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n searchParams.append(\"page\", page.toString());\n\n let url = \"list/run/changelog?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunPart } from \"@jield/solodb-typescript-core/run/interfaces/run/runPart\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listRunParts({ run }: { run: Run }): Promise> {\n const searchParams = new URLSearchParams();\n searchParams.append(\"run\", run.id.toString());\n searchParams.append(\"page_size\", \"10000\");\n\n let url = \"list/run/parts?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunSteps({\n run,\n page = 1,\n pageSize = 25,\n}: {\n run: Run;\n page?: number;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n searchParams.append(\"page\", page.toString());\n searchParams.append(\"page_size\", pageSize.toString());\n let url = \"list/run/step?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRuns({\n environment,\n firstUnfinishedStepEquipment,\n}: {\n environment?: string;\n firstUnfinishedStepEquipment?: Equipment;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (firstUnfinishedStepEquipment !== undefined) {\n searchParams.append(\"operator\", \"1\");\n searchParams.append(\"first_unfinished_step_equipment_id\", firstUnfinishedStepEquipment.id.toString());\n }\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n let url = \"list/run?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","export enum RunStepPartActionEnum {\n START_PROCESSING = 1,\n FINISH_PROCESSING = 2,\n FAILED_PROCESSING = 3,\n REWORK = 4,\n}\n","import { RunStepPartActionEnum } from \"../enum/runStepPartActionEnum\";\nimport { RunStepPart } from \"../interfaces/step/runStepPart\";\n\nexport default function getAvailableRunStepPartActions(runStepPart: RunStepPart): RunStepPartActionEnum[] {\n // if it already failed in a previous step, nothing can be done\n if (runStepPart.part_processing_failed_in_previous_step) {\n return [];\n }\n\n const latestActionId = runStepPart.latest_action?.type.id;\n const actions: RunStepPartActionEnum[] = [];\n\n // your current conditions, just centralized:\n if (runStepPart.actions === 0) {\n actions.push(RunStepPartActionEnum.START_PROCESSING);\n }\n\n if (\n runStepPart.actions > 0 &&\n latestActionId !== RunStepPartActionEnum.FINISH_PROCESSING &&\n latestActionId !== RunStepPartActionEnum.FAILED_PROCESSING\n ) {\n actions.push(RunStepPartActionEnum.FINISH_PROCESSING, RunStepPartActionEnum.FAILED_PROCESSING);\n }\n\n if (runStepPart.actions > 0) {\n actions.push(RunStepPartActionEnum.REWORK);\n }\n\n return actions;\n};\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Measurement } from \"@jield/solodb-typescript-core/run/interfaces/measurement\";\nimport { MeasurementResult } from \"@jield/solodb-typescript-core/run/interfaces/measurement/result\";\n\nexport default async function listMeasurementResults({\n measurement,\n}: {\n measurement: Measurement;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"measurement\", String(measurement.id));\n\n let url = \"/list/run/measurement/result?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepChecklistItem } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepChecklistItem\";\n\nexport default async function listRunStepChecklistItems({\n runStep,\n}: {\n runStep: RunStep;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (runStep !== undefined) {\n searchParams.append(\"step\", runStep.id.toString());\n }\n let url = \"list/run/step/checklist?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import { RunStep } from \"@jield/solodb-typescript-core/index\";\nimport axios, { AxiosResponse } from \"axios\";\n\nexport default async function startStep(runStep: RunStep): Promise> {\n if (!runStep) {\n throw new Error(\"Run step is undefined when trying to start step\"); \n }\n\n const resp = await axios.create().patch(\"update/run/step/start/\" + runStep.id, {});\n \n return resp;\n}\n","import { RunStep } from \"@jield/solodb-typescript-core/index\";\nimport axios, { AxiosResponse } from \"axios\";\n\nexport default async function finishStep(runStep: RunStep): Promise> {\n if (!runStep) {\n throw new Error(\"Run step is undefined when trying to finish step\"); \n }\n\n const resp = await axios.create().patch(\"update/run/step/finish/\" + runStep.id, {});\n \n return resp;\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunStepFiles({\n step,\n pageSize,\n}: {\n step?: RunStep;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n //We want the file to be ordered by date_created DESC\n searchParams.append(\"order\", \"date-created\");\n searchParams.append(\"direction\", \"DESC\");\n\n let url = \"list/run/step/file?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepParameter } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepParameter\";\n\nexport default async function listRunStepParameters({\n runStep,\n}: {\n runStep: RunStep;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (runStep !== undefined) {\n searchParams.append(\"step\", runStep.id.toString());\n }\n let url = \"list/run/step/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listRunStepParts({\n step,\n run,\n page_size,\n}: {\n step?: RunStep;\n run?: Run;\n page_size?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n if (page_size !== undefined) {\n searchParams.append(\"page_size\", page_size.toString());\n } else {\n searchParams.append(\"page_size\", \"10000\");\n }\n\n let url = \"list/run/step/part?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepPartAction } from \"@jield/solodb-typescript-core/run/interfaces/step/part/runStepPartAction\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\n\nexport default async function listRunStepPartActions({\n part,\n step,\n page_size,\n}: {\n part?: RunStepPart;\n step?: RunStep;\n page_size?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (part !== undefined) {\n searchParams.append(\"part\", part.id.toString());\n }\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (page_size !== undefined) {\n searchParams.append(\"page_size\", page_size.toString());\n }\n\n let url = \"list/run/step/part/action?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStepPartAction } from \"@jield/solodb-typescript-core/run/interfaces/step/part/runStepPartAction\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\nimport { RunStepPartActionEnum } from \"@jield/solodb-typescript-core/run/enum/runStepPartActionEnum\";\n\nexport default async function setRunStepPartAction({\n runStepPart,\n runStepPartAction,\n}: {\n runStepPart: RunStepPart;\n runStepPartAction: RunStepPartActionEnum;\n}): Promise {\n let url = \"create/run/step/part/action\";\n\n const response = await axios.post(url, {\n run_step_part_id: runStepPart.id,\n type: runStepPartAction,\n });\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ServiceEventReportResult } from \"@jield/solodb-typescript-core/service/interfaces/service/event/report/serviceEventReportResult\";\n\nexport default async function listReportResult({ id }: { id: number }) {\n const searchParams = new URLSearchParams();\n\n if (id !== undefined) {\n searchParams.append(\"report\", id.toString());\n }\n\n let url = \"list/service/event/report/results?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return data._embedded.items;\n}\n","import axios from \"axios\";\nimport { ServiceEventReport } from \"@jield/solodb-typescript-core/service/interfaces/service/event/serviceEventReport\";\n\nexport default async function getServiceEventReport({ id }: { id: number }) {\n let response = await axios.get(\"view/service/event/report/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ServiceEventReportResult } from \"@jield/solodb-typescript-core/service/interfaces/service/event/report/serviceEventReportResult\";\n\nexport default async function listServiceEventReportResult({ id }: { id: number }) {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"report\", id.toString());\n\n let url = \"list/service/event/report/results?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return data._embedded.items;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Service } from \"@jield/solodb-typescript-core/service/interfaces/service\";\n\nexport default async function listServices({\n equipmentId,\n}: {\n equipmentId?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipmentId !== undefined) {\n searchParams.append(\"equipment\", equipmentId.toString());\n }\n\n let url = \"list/service?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Template } from \"@jield/solodb-typescript-core/template/interfaces/template\";\nimport { TemplateStep } from \"@jield/solodb-typescript-core/template/interfaces/templateStep\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function getTemplateSteps({ template, pageSize }: { template?: Template; pageSize?: number }) {\n const searchParams = new URLSearchParams();\n\n if (template !== undefined) {\n searchParams.append(\"template\", template.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n let url = \"list/template/step?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n steps: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n };\n}\n","import axios from \"axios\";\nimport { Recipe } from \"@jield/solodb-typescript-core/process/interfaces/module/recipe\";\nimport { Template } from \"@jield/solodb-typescript-core/template/interfaces/template\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listTemplates({ reworkRecipes }: { reworkRecipes?: Recipe[] }) {\n const searchParams = new URLSearchParams();\n\n if (reworkRecipes !== undefined) {\n //Add the rework recipe ids to the search params, in array notation\n reworkRecipes\n .map((recipe) => recipe.id)\n .forEach((id) => {\n searchParams.append(\"rework_recipe_id[]\", id.toString());\n });\n }\n\n let url = \"list/template?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n templates: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n };\n}\n","import { MainChemical } from \"@jield/solodb-typescript-core/chemical/interfaces/mainChemical\";\nimport { SafetyStatement } from \"@jield/solodb-typescript-core/chemical/interfaces/safetyStatement\";\nimport { SafetyIcon } from \"@jield/solodb-typescript-core/chemical/interfaces/safetyIcon\";\n\nexport enum ChemicalStandardProductEnum {\n STANDARD_PRODUCT = 1,\n NON_STANDARD_PRODUCT = 2,\n}\n\nexport enum ChemicalPhysicalStateEnum {\n SOLID = 1,\n LIQUID = 2,\n GAS = 3,\n OTHER = 4,\n}\n\nexport interface Chemical {\n id: number;\n name: string;\n cas_number: string | null;\n chemical_formula: string | null;\n ehs_link: string | null;\n cmr: string[];\n description: string | null;\n is_standard_product: boolean;\n standard_product: ChemicalStandardProductEnum;\n physical_state: ChemicalPhysicalStateEnum;\n is_halogenated: boolean;\n contains_metals: boolean;\n main_chemical: MainChemical | null;\n safety_statement: SafetyStatement[];\n safety_icons: SafetyIcon[];\n}\n","import {Room} from \"@jield/solodb-typescript-core/room/interfaces/room\";\nimport {\n EquipmentModuleStatus\n} from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleStatus\";\nimport {EquipmentProperty} from \"./equipment/equipmentProperty\";\nimport {\n Setup,\n SetupWithoutMainEquipmentAndSetupEquipment\n} from \"@jield/solodb-typescript-core/equipment/interfaces/setup\";\nimport {Area} from \"@jield/solodb-typescript-core/location/interfaces/area\";\n\nexport enum EquipmentGrade {\n \"Equipment\" = 1,\n \"Accessory\" = 2,\n \"Storage\" = 3,\n}\n\n\nexport interface Equipment {\n id: number;\n name: string;\n number: string;\n mes_name: string;\n active: boolean;\n active_in_mes: boolean;\n reservation_possible: boolean;\n is_main_in_setup: boolean;\n setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n has_setup_equipment: boolean;\n is_in_fixed_setup: boolean;\n fixed_setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n is_in_active_setup: boolean;\n active_setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n main_tool_module_id: number | null;\n main_tool_latest_status?: EquipmentModuleStatus;\n is_available_for_rental: boolean;\n properties?: EquipmentProperty[];\n room: Room;\n types: string[];\n grade: EquipmentGrade;\n area: Area | null;\n}\n","import { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport enum EquipmentModuleIssueType {\n DEFAULT = 1,\n PRIORITY = 2,\n ESCALATION = 3,\n}\n\nexport enum EquipmentModuleIssueStatus {\n ACTIVE = 1,\n CLOSED = 2,\n}\n\nexport interface EquipmentModuleIssue {\n id: number;\n module_id: number;\n date_created: string;\n date_closed?: string;\n last_update?: string;\n issue: string;\n description: string;\n issue_type: EquipmentModuleIssueType;\n status: EquipmentModuleIssueStatus;\n owner: User;\n updated_by?: User;\n forecast_up: string;\n actions: string;\n attachments: number;\n}\n","import { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport enum ShowIssuesOptionEnum {\n HIDE_ISSUES = 1,\n SHOW_ISSUES = 2,\n COLLAPSE_ISSUES = 3,\n}\n\nexport enum OrderOptionEnum {\n NAME = 1,\n MES_NAME = 2,\n NUMBER = 3,\n}\n\nexport enum ClassificationsOptionEnum {\n AREA = 1,\n AREA_PER_FACILITY = 2,\n ROOM = 3,\n}\n\nexport enum DirectionOptionEnum {\n ASC = \"ASC\",\n DESC = \"DESC\",\n}\n\nexport interface StatusMail {\n id: number;\n name: string;\n date_created: string;\n last_updated: string | null;\n filter: {\n messageType: string[];\n MESStatus: string[];\n };\n equipment_filter: string;\n sequence: number;\n show_issues_with_priority: boolean;\n show_in_navigation: boolean;\n show_tool_up: boolean;\n show_issues: ShowIssuesOptionEnum;\n show_reservations: boolean;\n classification: ClassificationsOptionEnum;\n order: OrderOptionEnum;\n direction: DirectionOptionEnum;\n user: User;\n to: string;\n cc: string;\n bcc: string;\n subject: string;\n}\n","import { BatchCard } from \"@jield/solodb-typescript-core/run/interfaces/run/batchCard\";\nimport { HoldCode } from \"@jield/solodb-typescript-core/run/interfaces/run/holdCode\";\nimport { Priority } from \"@jield/solodb-typescript-core/run/interfaces/run/priority\";\nimport { Project } from \"@jield/solodb-typescript-core/core/interfaces/project\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\n\nexport enum RunTypeEnum {\n RESEARCH = 1,\n PRODUCTION = 2,\n}\n\nexport interface Run {\n id: number;\n label: string;\n name: string;\n amount_of_steps: number;\n run_type: RunTypeEnum;\n responsible: string;\n status: string;\n first_unfinished_step?: RunStep;\n last_finished_step?: RunStep;\n has_batch_card: boolean;\n batch_card?: BatchCard;\n hold_code?: HoldCode;\n priority?: Priority;\n project: Project;\n amount_root_parts: number;\n access: {\n edit: boolean;\n };\n}\n"],"names":["cleanFilterData","data","cleanedData","_","facet","getFilter","service","environment","formResult","searchParams","formData","url","response","axios","getMe","listUsers","query","selection","fileToBase64","file","resolve","reject","reader","result","configureAxiosHeaders","token","server_uri","getChemicalContainer","id","listChemicalContainerExternalLabels","qrCodeContent","listChemicalContainerMethodsOfUse","listChemicalContainerPurposes","listChemicalContainerTypes","listChemicals","getEquipment","getSetup","getStatusMail","listEquipment","run","room","statusMail","page","pageSize","filter","order","direction","listEquipmentStatus","listEcnAttachments","equipment","module","getEquipmentModule","listIssueAttachments","listEcn","listEquipmentModuleParameters","listIssues","listModules","listReservations","which","i","listLocationMessages","getLocation","getRoom","listLocations","listRooms","withLocations","getMonitor","listMonitorRequirements","equipmentId","monitorId","listMonitors","listMonitorRequirementResults","requirement","listMonitorRequirementResultMonitorStepParameterValues","listMonitorRequirementTargets","listMonitorStepFiles","step","listMonitorStepParameters","getRun","getRunStep","listRequirements","listRunChangelog","listRunParts","listRunSteps","listRuns","firstUnfinishedStepEquipment","RunStepPartActionEnum","getAvailableRunStepPartActions","runStepPart","latestActionId","actions","listMeasurementResults","measurement","listRunStepChecklistItems","runStep","startStep","finishStep","listRunStepFiles","listRunStepParameters","listRunStepParts","page_size","listRunStepPartActions","part","setRunStepPartAction","runStepPartAction","listReportResult","getServiceEventReport","listServiceEventReportResult","listServices","getTemplateSteps","template","listTemplates","reworkRecipes","recipe","ChemicalStandardProductEnum","ChemicalPhysicalStateEnum","EquipmentGrade","EquipmentModuleIssueType","EquipmentModuleIssueStatus","ShowIssuesOptionEnum","OrderOptionEnum","ClassificationsOptionEnum","DirectionOptionEnum","RunTypeEnum"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.cjs","sources":["../src/core/api/getFilter.ts","../src/core/api/getMe.ts","../src/core/api/listUsers.ts","../src/core/functions/fileToBase64.ts","../src/core/functions/configureAxiosHeaders.ts","../src/chemical/api/getChemicalContainer.ts","../src/chemical/api/listChemicalContainerExternalLabels.ts","../src/chemical/api/listChemicalContainerMethodsOfUse.ts","../src/chemical/api/listChemicalContainerPurposes.ts","../src/chemical/api/listChemicalContainerTypes.ts","../src/chemical/api/listChemicals.ts","../src/equipment/api/getEquipment.ts","../src/equipment/api/getSetup.ts","../src/equipment/api/getStatusMail.ts","../src/equipment/api/listEquipment.ts","../src/equipment/api/listEquipmentStatus.ts","../src/equipment/api/module/ecn/listEcnAttachments.ts","../src/equipment/api/module/getEquipmentModule.ts","../src/equipment/api/module/issue/listIssueAttachments.ts","../src/equipment/api/module/listEcn.ts","../src/equipment/api/module/listEquipmentModuleParameters.ts","../src/equipment/api/module/listIssues.ts","../src/equipment/api/module/listModules.ts","../src/equipment/api/module/listReservations.ts","../src/location/api/listLocationMessages.ts","../src/room/api/getLocation.ts","../src/room/api/getRoom.ts","../src/room/api/listLocations.ts","../src/room/api/listRooms.ts","../src/monitor/api/getMonitor.ts","../src/monitor/api/listMonitorRequirements.ts","../src/monitor/api/listMonitors.ts","../src/monitor/api/measurement/listMonitorRequirementResults.ts","../src/monitor/api/measurement/result/listMonitorRequirementResultMonitorStepParameterValues.ts","../src/monitor/api/requirement/listMonitorRequirementTargets.ts","../src/monitor/api/step/listMonitorStepFiles.ts","../src/monitor/api/step/listMonitorStepParameters.ts","../src/run/api/getRun.ts","../src/run/api/getRunStep.ts","../src/run/api/listRequirements.ts","../src/run/api/listRunChangelog.ts","../src/run/api/listRunParts.ts","../src/run/api/listRunSteps.ts","../src/run/api/listRuns.ts","../src/run/enum/runStepPartActionEnum.ts","../src/run/api/getRunStepPartActions.ts","../src/run/api/measurement/listResults.ts","../src/run/api/step/listRunStepChecklistItems.ts","../src/run/api/step/startStep.ts","../src/run/api/step/finishStep.ts","../src/run/api/step/listRunStepFiles.ts","../src/run/api/step/listRunStepParameters.ts","../src/run/api/step/listRunStepParts.ts","../src/run/api/step/part/listRunStepPartActions.ts","../src/run/api/step/part/setRunStepPartAction.ts","../src/run/functions/performRunStepPartAction.ts","../src/run/functions/finishStepWhenAllPartsAreFinished.ts","../src/service/api/getReportResult.ts","../src/service/api/getServiceEventReport.ts","../src/service/api/listServiceEventReportResult.ts","../src/service/api/listServices.ts","../src/template/api/getTemplateSteps.ts","../src/template/api/listTemplates.ts","../src/chemical/interfaces/chemical.ts","../src/equipment/interfaces/equipment.ts","../src/equipment/interfaces/equipment/module/equipmentModuleIssue.ts","../src/equipment/interfaces/statusMail.ts","../src/run/interfaces/run.ts"],"sourcesContent":["import axios from \"axios\";\nimport { FilterData, FilterFormData } from \"../interfaces/filter\";\nimport { ApiResponse } from \"../interfaces/response\";\n\nfunction cleanFilterData(data: FilterData): FilterData {\n let cleanedData = { ...data };\n cleanedData.facet = Object.fromEntries(Object.entries(data.facet).filter(([_, facet]) => facet.values.length > 0));\n\n if (data.filter.general.length <= 0) {\n // @ts-expect-error\n cleanedData.filter = {};\n }\n return cleanedData;\n}\n\nexport default async function getFilter({\n service,\n environment,\n formResult,\n}: {\n service: string;\n environment?: string;\n formResult?: FilterData;\n}): Promise {\n const searchParams = new URLSearchParams();\n\n if (service !== undefined) {\n searchParams.append(\"service\", service);\n }\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n if (formResult !== undefined) {\n let formData = JSON.stringify(cleanFilterData(formResult));\n searchParams.append(\"formResult\", btoa(formData));\n }\n\n let url = \"view/filter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n filter: data._embedded.items[0],\n facet: data._embedded.items[1],\n };\n}\n","import axios from \"axios\";\nimport {User} from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport default async function getMe() {\n const response = await axios.get(\"me\");\n const {data} = response;\n return data;\n}\n","import axios from \"axios\";\nimport { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listUsers({ query, selection}: { query?: string; selection?: number;}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n if (selection) {\n searchParams.append(\"selection\", selection.toString());\n }\n\n let url = \"list/user?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n};\n","export default function fileToBase64(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const result = reader.result as string;\n resolve(result);\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n}\n","import axios from \"axios\";\n\nexport const configureAxiosHeaders = (token: string, server_uri: string) => {\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\n axios.defaults.headers.common[\"Accept\"] = \"application/json\";\n axios.defaults.headers.common[\"Content-Type\"] = \"application/json\";\n\n axios.defaults.baseURL = server_uri;\n};\n","import axios from \"axios\";\nimport { ChemicalContainer } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/chemicalContainer\";\n\nexport default async function getChemicalContainer({ id }: { id: number }) {\n const response = await axios.get(\"view/chemical/container/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerExternalLabel } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerExternalLabel\";\n\nexport default async function listChemicalContainerExternalLabels({\n qrCodeContent,\n}: {\n qrCodeContent: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"qr_code_content\", qrCodeContent);\n\n let url = \"list/chemical/container/external-label?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerMethodOfUse } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerMethodOfUse\";\n\nexport default async function listChemicalContainerMethodsOfUse({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n let url = \"list/chemical/container/method-of-use?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerPurpose } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerPurpose\";\n\nexport default async function listChemicalContainerPurposes({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical/container/purpose?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerType } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerType\";\n\nexport default async function listChemicalContainerTypes({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical/container/type?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\n// migrated from react-router-dom createSearchParams to URLSearchParams\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Chemical } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical\";\n\nexport default async function listChemicals({ query }: { query?: string }): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\n\nexport default async function getEquipment({ id }: { id: number }) {\n const response = await axios.get(\"view/equipment/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Setup } from \"../interfaces/setup\";\n\nexport default async function getSetup({ id }: { id: number }) {\n const response = await axios.get(\"view/setup/\" + id);\n const { data } = response;\n\n return data;\n}\n","import axios from \"axios\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\n\nexport default async function getStatusMail({ id }: { id: number }) {\n const response = await axios.get(\"view/status-mail/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\nimport { FilterData } from \"@jield/solodb-typescript-core/core/interfaces/filter\";\n\nfunction cleanFilterData(data: FilterData): FilterData {\n let cleanedData = { ...data };\n cleanedData.facet = Object.fromEntries(Object.entries(data.facet).filter(([_, facet]) => facet.values.length > 0));\n\n if (data.filter.general.length <= 0) {\n // @ts-expect-error\n cleanedData.filter = {};\n }\n return cleanedData;\n}\n\nexport default async function listEquipment({\n environment,\n run,\n room,\n statusMail,\n page = 1,\n pageSize = 25,\n query,\n filter,\n order,\n direction\n}: {\n environment?: string;\n run?: Run;\n room?: Room;\n statusMail?: StatusMail;\n page?: number;\n pageSize?: number;\n query?: string;\n filter?: FilterData;\n order?: string;\n direction?: \"desc\" | \"asc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n\n if (room !== undefined) {\n searchParams.append(\"room\", room.id.toString());\n }\n\n if (query !== undefined) {\n searchParams.append(\"query\", query);\n }\n\n if (order !== undefined) {\n searchParams.append(\"order\", order);\n }\n\n if (direction !== undefined) {\n searchParams.append(\"direction\", direction);\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n\n // Use a reasonable page size for infinite scrolling\n searchParams.append(\"page_size\", \"200\");\n }\n\n if (filter !== undefined) {\n filter = cleanFilterData(filter);\n searchParams.append(\"filter\", btoa(JSON.stringify(filter)));\n }\n\n searchParams.append(\"page\", page.toString());\n searchParams.append(\"page_size\", pageSize.toString());\n\n let url = \"list/equipment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { EquipmentStatus } from \"@jield/solodb-typescript-core/equipment/interfaces/equipmentStatus\";\n\nexport default async function listEquipmentStatus(): Promise> {\n const searchParams = new URLSearchParams();\n let url = \"list/equipment/status?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleEcnAttachment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/ecn/equipmentModuleEcnAttachment\";\n\nexport default async function listEcnAttachments({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/ecn/attachment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function getEquipmentModule({ id }: { id: number }) {\n if (isNaN(id)) {\n return null;\n }\n\n const response = await axios.get(\"view/equipment/module/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleIssueAttachment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/issue/equipmentModuleIssueAttachment\";\n\nexport default async function listIssueAttachments({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/issue/attachment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModuleEcn } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleEcn\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\n\nexport default async function listEcn({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/ecn?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { EquipmentModuleParameter } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleParameter\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function listEquipmentModuleParameters({\n module,\n pageSize,\n order,\n direction,\n}: {\n module?: EquipmentModule;\n pageSize?: number;\n order?: \"sequence\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n if (order) {\n searchParams.append(\"order\", order);\n }\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/equipment/module/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleIssue } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleIssue\";\n\nexport default async function listIssues({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/issue?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listModules({\n equipment,\n statusMail,\n run,\n}: {\n equipment?: Equipment;\n statusMail?: StatusMail;\n run?: Run;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"10000\");\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n\n let url = \"list/equipment/module?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModuleReservation } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleReservation\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function listReservations({\n equipment,\n module,\n which,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n which?: \"active\" | \"past\" | \"upcoming\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (which !== undefined) {\n searchParams.append(\"which\", which);\n }\n\n let url = \"list/equipment/reservation?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n if (which == \"active\") {\n for (let i = 0; i < data._embedded.items.length; i++) {\n data._embedded.items[i].active = true;\n }\n }\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { LocationMessage } from \"@jield/solodb-typescript-core/location/interfaces/locationMessage\";\n\nexport default async function listLocationMessages({\n statusMail,\n}: {\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/location/message?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Location } from \"@jield/solodb-typescript-core/room/interfaces/location\";\n\nexport default async function getLocation({ id }: { id: number }) {\n const response = await axios.get(\"view/location/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function getRoom({ id }: { id: number }) {\n const response = await axios.get(\"view/room/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Location } from \"@jield/solodb-typescript-core/room/interfaces/location\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function listLocations({\n environment,\n room,\n pageSize = 25,\n}: {\n environment?: string;\n room?: Room;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment) {\n searchParams.append(\"environment\", environment);\n }\n\n if (room) {\n searchParams.append(\"room\", room.id.toString());\n }\n\n searchParams.append(\"page_size\", pageSize.toString());\n\n let url = \"list/location?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function listRooms({\n environment,\n withLocations,\n}: {\n environment?: string;\n withLocations?: boolean;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment) {\n searchParams.append(\"environment\", environment);\n }\n\n if (withLocations) {\n searchParams.append(\"which\", \"with_locations\");\n }\n\n let url = \"list/room?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\n\nexport default async function getMonitor({ id }: { id: number }) {\n let response = await axios.get(\"view/monitor/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirements({\n equipmentId,\n monitorId,\n}: {\n equipmentId?: number;\n monitorId?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipmentId !== undefined) {\n searchParams.append(\"equipment\", equipmentId.toString());\n }\n\n if (monitorId) {\n searchParams.append(\"monitor\", monitorId.toString());\n }\n\n let url = \"list/monitor/requirement?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\n\nexport default async function listMonitors({\n equipment,\n}: {\n equipment?: Equipment;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n searchParams.append(\"ad_hoc\", \"true\");\n\n let url = \"list/monitor?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorMeasurementResult } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/monitorMeasurementResult\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirementResults({\n requirement,\n order,\n direction,\n pageSize,\n page,\n}: {\n requirement?: MonitorRequirement;\n monitor?: Monitor;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n pageSize?: number;\n page?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n if (pageSize) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (page) {\n searchParams.append(\"page\", page.toString());\n }\n\n let url = \"list/monitor/measurement/result?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorMeasurementResult } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/monitorMeasurementResult\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { MonitorResultStepParameterValue } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/result/monitorResultStepParameterValue\";\n\nexport default async function listMonitorRequirementResultMonitorStepParameterValues({\n requirement,\n result,\n order,\n direction,\n pageSize,\n page,\n}: {\n requirement?: MonitorRequirement;\n result?: MonitorMeasurementResult;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n pageSize?: number;\n page?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n if (result) {\n searchParams.append(\"result\", result.id.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n if (pageSize) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (page) {\n searchParams.append(\"page\", page.toString());\n }\n\n let url = \"list/monitor/measurement/result/step-parameter-value?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { MonitorRequirementTarget } from \"@jield/solodb-typescript-core/monitor/interfaces/requirement/monitorRequirementTarget\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirementTargets({\n requirement,\n}: {\n requirement?: MonitorRequirement;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n let url = \"list/monitor/requirement/target?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorStep } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorStepFiles({\n step,\n pageSize,\n order,\n direction,\n}: {\n step?: MonitorStep;\n pageSize?: number;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/monitor/step/file?\" + searchParams.toString();\n const response = await axios.get>(url);\n\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorStep } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { MonitorStepParameter } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor/step/parameter\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\n\nexport default async function listMonitorStepParameters({\n step,\n requirement,\n pageSize,\n order,\n direction,\n}: {\n step?: MonitorStep;\n requirement?: MonitorRequirement;\n pageSize?: number;\n order?: \"sequence\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (requirement !== undefined) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n if (order) {\n searchParams.append(\"order\", order);\n }\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/monitor/step/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function getRun({ id }: { id: number }) {\n let url = \"view/run/\" + id;\n\n const response = await axios.get(url);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\n\nexport default async function getRunStep({ id }: { id: number }) {\n let url = \"view/run/step/\" + id;\n\n const response = await axios.get(url);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { Requirement } from \"@jield/solodb-typescript-core/run/interfaces/requirement\";\n\nexport default async function listRequirements({\n step,\n run,\n}: {\n step?: RunStep;\n run?: Run;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", String(step.id));\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", String(run.id));\n }\n\n let url = \"list/run/requirement?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Changelog } from \"@jield/solodb-typescript-core/run/interfaces/run/changelog\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunChangelog({\n run,\n page,\n}: {\n run: Run;\n page: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n searchParams.append(\"page\", page.toString());\n\n let url = \"list/run/changelog?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunPart } from \"@jield/solodb-typescript-core/run/interfaces/run/runPart\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listRunParts({ run, level }: { run: Run; level?: number; }): Promise> {\n const searchParams = new URLSearchParams();\n searchParams.append(\"run\", run.id.toString());\n searchParams.append(\"page_size\", \"10000\");\n\n if (level !== undefined) searchParams.append(\"level\", `${level}`);\n\n let url = \"list/run/parts?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunSteps({\n run,\n page = 1,\n pageSize = 25,\n}: {\n run: Run;\n page?: number;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n searchParams.append(\"page\", page.toString());\n searchParams.append(\"page_size\", pageSize.toString());\n let url = \"list/run/step?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRuns({\n environment,\n firstUnfinishedStepEquipment,\n}: {\n environment?: string;\n firstUnfinishedStepEquipment?: Equipment;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (firstUnfinishedStepEquipment !== undefined) {\n searchParams.append(\"operator\", \"1\");\n searchParams.append(\"first_unfinished_step_equipment_id\", firstUnfinishedStepEquipment.id.toString());\n }\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n let url = \"list/run?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","export enum RunStepPartActionEnum {\n START_PROCESSING = 1,\n FINISH_PROCESSING = 2,\n FAILED_PROCESSING = 3,\n REWORK = 4,\n}\n","import { RunStepPartActionEnum } from \"../enum/runStepPartActionEnum\";\nimport { RunStepPart } from \"../interfaces/step/runStepPart\";\n\nexport default function getAvailableRunStepPartActions(runStepPart: RunStepPart): RunStepPartActionEnum[] {\n // if it already failed in a previous step, nothing can be done\n if (runStepPart.part_processing_failed_in_previous_step) {\n return [];\n }\n\n const latestActionId = runStepPart.latest_action?.type.id;\n const actions: RunStepPartActionEnum[] = [];\n\n // your current conditions, just centralized:\n if (runStepPart.actions === 0) {\n actions.push(RunStepPartActionEnum.START_PROCESSING);\n }\n\n if (\n runStepPart.actions > 0 &&\n latestActionId !== RunStepPartActionEnum.FINISH_PROCESSING &&\n latestActionId !== RunStepPartActionEnum.FAILED_PROCESSING\n ) {\n actions.push(RunStepPartActionEnum.FINISH_PROCESSING, RunStepPartActionEnum.FAILED_PROCESSING);\n }\n\n if (runStepPart.actions > 0) {\n actions.push(RunStepPartActionEnum.REWORK);\n }\n\n return actions;\n};\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Measurement } from \"@jield/solodb-typescript-core/run/interfaces/measurement\";\nimport { MeasurementResult } from \"@jield/solodb-typescript-core/run/interfaces/measurement/result\";\n\nexport default async function listMeasurementResults({\n measurement,\n}: {\n measurement: Measurement;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"measurement\", String(measurement.id));\n\n let url = \"/list/run/measurement/result?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepChecklistItem } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepChecklistItem\";\n\nexport default async function listRunStepChecklistItems({\n runStep,\n}: {\n runStep: RunStep;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (runStep !== undefined) {\n searchParams.append(\"step\", runStep.id.toString());\n }\n let url = \"list/run/step/checklist?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import { RunStep } from \"@jield/solodb-typescript-core/index\";\nimport axios, { AxiosResponse } from \"axios\";\n\n/**\n * Start a run step and return the updated step payload.\n *\n * Mirrors PATCH /api/update/run/step/start/{id}.\n *\n * @param runStep - Run step to mark as started.\n * @throws Error when the run step is missing.\n */\nexport default async function startStep(\n runStep: RunStep,\n): Promise> {\n if (!runStep) {\n throw new Error(\"Run step is undefined when trying to start step\");\n }\n\n const resp = await axios\n .create()\n .patch(\"update/run/step/start/\" + runStep.id, {});\n\n return resp;\n}\n","import { RunStep } from \"@jield/solodb-typescript-core/index\";\nimport axios, { AxiosResponse } from \"axios\";\n\n/**\n * Finish a run step and return the updated step payload.\n *\n * Mirrors PATCH /api/update/run/step/finish/{id}.\n *\n * @param runStep - Run step to mark as finished.\n * @throws Error when the run step is missing.\n */\nexport default async function finishStep(\n runStep: RunStep,\n): Promise> {\n if (!runStep) {\n throw new Error(\"Run step is undefined when trying to finish step\");\n }\n\n const resp = await axios\n .create()\n .patch(\"update/run/step/finish/\" + runStep.id, {});\n\n return resp;\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunStepFiles({\n step,\n pageSize,\n}: {\n step?: RunStep;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n //We want the file to be ordered by date_created DESC\n searchParams.append(\"order\", \"date-created\");\n searchParams.append(\"direction\", \"DESC\");\n\n let url = \"list/run/step/file?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepParameter } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepParameter\";\n\nexport default async function listRunStepParameters({\n runStep,\n}: {\n runStep: RunStep;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (runStep !== undefined) {\n searchParams.append(\"step\", runStep.id.toString());\n }\n let url = \"list/run/step/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listRunStepParts({\n step,\n run,\n page_size,\n}: {\n step?: RunStep;\n run?: Run;\n page_size?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n if (page_size !== undefined) {\n searchParams.append(\"page_size\", page_size.toString());\n } else {\n searchParams.append(\"page_size\", \"10000\");\n }\n\n let url = \"list/run/step/part?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepPartAction } from \"@jield/solodb-typescript-core/run/interfaces/step/part/runStepPartAction\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\n\nexport default async function listRunStepPartActions({\n part,\n step,\n page_size,\n}: {\n part?: RunStepPart;\n step?: RunStep;\n page_size?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (part !== undefined) {\n searchParams.append(\"part\", part.id.toString());\n }\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (page_size !== undefined) {\n searchParams.append(\"page_size\", page_size.toString());\n }\n\n let url = \"list/run/step/part/action?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStepPartAction } from \"@jield/solodb-typescript-core/run/interfaces/step/part/runStepPartAction\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\nimport { RunStepPartActionEnum } from \"@jield/solodb-typescript-core/run/enum/runStepPartActionEnum\";\n\nexport default async function setRunStepPartAction({\n runStepPart,\n runStepPartAction,\n}: {\n runStepPart: RunStepPart;\n runStepPartAction: RunStepPartActionEnum;\n}): Promise {\n let url = \"create/run/step/part/action\";\n\n const response = await axios.post(url, {\n run_step_part_id: runStepPart.id,\n type: runStepPartAction,\n });\n const { data } = response;\n return data;\n}\n","import setRunStepPartAction from \"../api/step/part/setRunStepPartAction\";\nimport startStep from \"../api/step/startStep\";\nimport { RunStepPartActionEnum } from \"../enum/runStepPartActionEnum\";\nimport { RunStepPart } from \"../interfaces/step/runStepPart\";\n\n/*\n * Performs a action in a runStepPart \n * Also it makes sure the step state is what it should be\n */\nexport default async function performRunStepPartAction(part: RunStepPart, action: RunStepPartActionEnum) {\n const step = part.step;\n\n // start step if it isnt \n if (!step.is_started) {\n startStep(step); \n }\n \n return setRunStepPartAction({runStepPart: part, runStepPartAction: action});\n}\n","import finishStep from \"../api/step/finishStep\";\nimport { RunStepPartActionEnum } from \"../enum/runStepPartActionEnum\";\nimport { RunStep } from \"../interfaces/runStep\";\nimport { RunStepPart } from \"../interfaces/step/runStepPart\";\n\n/*\n * Returns false if the step state changes (its set to finish)\n */\nexport default async function finishStepWhenAllPartsAreFinished(\n step: RunStep,\n stepParts: RunStepPart[]\n): Promise {\n if (step.is_finished) {\n //Step has already finished\n return false;\n }\n\n if (stepParts.length <= 0) {\n return false;\n }\n\n for (const part of stepParts) {\n if (part.latest_action?.type.id !== RunStepPartActionEnum.FINISH_PROCESSING) {\n //One part hasnt finished\n return false;\n }\n }\n\n // Finish the step\n return finishStep(step)\n .then(() => {\n //Now the step is correctly finished\n return true;\n })\n .catch(() => {\n return false;\n });\n}\n","import axios from \"axios\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ServiceEventReportResult } from \"@jield/solodb-typescript-core/service/interfaces/service/event/report/serviceEventReportResult\";\n\nexport default async function listReportResult({ id }: { id: number }) {\n const searchParams = new URLSearchParams();\n\n if (id !== undefined) {\n searchParams.append(\"report\", id.toString());\n }\n\n let url = \"list/service/event/report/results?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return data._embedded.items;\n}\n","import axios from \"axios\";\nimport { ServiceEventReport } from \"@jield/solodb-typescript-core/service/interfaces/service/event/serviceEventReport\";\n\nexport default async function getServiceEventReport({ id }: { id: number }) {\n let response = await axios.get(\"view/service/event/report/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ServiceEventReportResult } from \"@jield/solodb-typescript-core/service/interfaces/service/event/report/serviceEventReportResult\";\n\nexport default async function listServiceEventReportResult({ id }: { id: number }) {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"report\", id.toString());\n\n let url = \"list/service/event/report/results?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return data._embedded.items;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Service } from \"@jield/solodb-typescript-core/service/interfaces/service\";\n\nexport default async function listServices({\n equipmentId,\n}: {\n equipmentId?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipmentId !== undefined) {\n searchParams.append(\"equipment\", equipmentId.toString());\n }\n\n let url = \"list/service?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Template } from \"@jield/solodb-typescript-core/template/interfaces/template\";\nimport { TemplateStep } from \"@jield/solodb-typescript-core/template/interfaces/templateStep\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function getTemplateSteps({ template, pageSize }: { template?: Template; pageSize?: number }) {\n const searchParams = new URLSearchParams();\n\n if (template !== undefined) {\n searchParams.append(\"template\", template.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n let url = \"list/template/step?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n steps: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n };\n}\n","import axios from \"axios\";\nimport { Recipe } from \"@jield/solodb-typescript-core/process/interfaces/module/recipe\";\nimport { Template } from \"@jield/solodb-typescript-core/template/interfaces/template\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listTemplates({ reworkRecipes }: { reworkRecipes?: Recipe[] }) {\n const searchParams = new URLSearchParams();\n\n if (reworkRecipes !== undefined) {\n //Add the rework recipe ids to the search params, in array notation\n reworkRecipes\n .map((recipe) => recipe.id)\n .forEach((id) => {\n searchParams.append(\"rework_recipe_id[]\", id.toString());\n });\n }\n\n let url = \"list/template?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n templates: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n };\n}\n","import { MainChemical } from \"@jield/solodb-typescript-core/chemical/interfaces/mainChemical\";\nimport { SafetyStatement } from \"@jield/solodb-typescript-core/chemical/interfaces/safetyStatement\";\nimport { SafetyIcon } from \"@jield/solodb-typescript-core/chemical/interfaces/safetyIcon\";\n\nexport enum ChemicalStandardProductEnum {\n STANDARD_PRODUCT = 1,\n NON_STANDARD_PRODUCT = 2,\n}\n\nexport enum ChemicalPhysicalStateEnum {\n SOLID = 1,\n LIQUID = 2,\n GAS = 3,\n OTHER = 4,\n}\n\nexport interface Chemical {\n id: number;\n name: string;\n cas_number: string | null;\n chemical_formula: string | null;\n ehs_link: string | null;\n cmr: string[];\n description: string | null;\n is_standard_product: boolean;\n standard_product: ChemicalStandardProductEnum;\n physical_state: ChemicalPhysicalStateEnum;\n is_halogenated: boolean;\n contains_metals: boolean;\n main_chemical: MainChemical | null;\n safety_statement: SafetyStatement[];\n safety_icons: SafetyIcon[];\n}\n","import {Room} from \"@jield/solodb-typescript-core/room/interfaces/room\";\nimport {\n EquipmentModuleStatus\n} from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleStatus\";\nimport {EquipmentProperty} from \"./equipment/equipmentProperty\";\nimport {\n Setup,\n SetupWithoutMainEquipmentAndSetupEquipment\n} from \"@jield/solodb-typescript-core/equipment/interfaces/setup\";\nimport {Area} from \"@jield/solodb-typescript-core/location/interfaces/area\";\n\nexport enum EquipmentGrade {\n \"Equipment\" = 1,\n \"Accessory\" = 2,\n \"Storage\" = 3,\n}\n\nexport enum DashboardComponent {\n \"ProcessNextStepInEquipment\" = \"ProcessNextStepInEquipment\"\n}\n\n\nexport interface Equipment {\n id: number;\n name: string;\n number: string;\n mes_name: string;\n active: boolean;\n active_in_mes: boolean;\n reservation_possible: boolean;\n is_main_in_setup: boolean;\n setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n has_setup_equipment: boolean;\n is_in_fixed_setup: boolean;\n fixed_setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n is_in_active_setup: boolean;\n active_setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n main_tool_module_id: number | null;\n main_tool_latest_status?: EquipmentModuleStatus;\n is_available_for_rental: boolean;\n dashboard_components: DashboardComponent[];\n properties?: EquipmentProperty[];\n room: Room;\n types: string[];\n grade: EquipmentGrade;\n area: Area | null;\n}\n","import { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport enum EquipmentModuleIssueType {\n DEFAULT = 1,\n PRIORITY = 2,\n ESCALATION = 3,\n}\n\nexport enum EquipmentModuleIssueStatus {\n ACTIVE = 1,\n CLOSED = 2,\n}\n\nexport interface EquipmentModuleIssue {\n id: number;\n module_id: number;\n date_created: string;\n date_closed?: string;\n last_update?: string;\n issue: string;\n description: string;\n issue_type: EquipmentModuleIssueType;\n status: EquipmentModuleIssueStatus;\n owner: User;\n updated_by?: User;\n forecast_up: string;\n actions: string;\n attachments: number;\n}\n","import { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport enum ShowIssuesOptionEnum {\n HIDE_ISSUES = 1,\n SHOW_ISSUES = 2,\n COLLAPSE_ISSUES = 3,\n}\n\nexport enum OrderOptionEnum {\n NAME = 1,\n MES_NAME = 2,\n NUMBER = 3,\n}\n\nexport enum ClassificationsOptionEnum {\n AREA = 1,\n AREA_PER_FACILITY = 2,\n ROOM = 3,\n}\n\nexport enum DirectionOptionEnum {\n ASC = \"ASC\",\n DESC = \"DESC\",\n}\n\nexport interface StatusMail {\n id: number;\n name: string;\n date_created: string;\n last_updated: string | null;\n filter: {\n messageType: string[];\n MESStatus: string[];\n };\n equipment_filter: string;\n sequence: number;\n show_issues_with_priority: boolean;\n show_in_navigation: boolean;\n show_tool_up: boolean;\n show_issues: ShowIssuesOptionEnum;\n show_reservations: boolean;\n classification: ClassificationsOptionEnum;\n order: OrderOptionEnum;\n direction: DirectionOptionEnum;\n user: User;\n to: string;\n cc: string;\n bcc: string;\n subject: string;\n}\n","import { BatchCard } from \"@jield/solodb-typescript-core/run/interfaces/run/batchCard\";\nimport { HoldCode } from \"@jield/solodb-typescript-core/run/interfaces/run/holdCode\";\nimport { Priority } from \"@jield/solodb-typescript-core/run/interfaces/run/priority\";\nimport { Project } from \"@jield/solodb-typescript-core/core/interfaces/project\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\n\nexport enum RunTypeEnum {\n RESEARCH = 1,\n PRODUCTION = 2,\n}\n\nexport interface Run {\n id: number;\n label: string;\n name: string;\n amount_of_steps: number;\n run_type: RunTypeEnum;\n responsible: string;\n status: string;\n first_unfinished_step?: RunStep;\n last_finished_step?: RunStep;\n has_batch_card: boolean;\n batch_card?: BatchCard;\n hold_code?: HoldCode;\n priority?: Priority;\n project: Project;\n amount_root_parts: number;\n access: {\n edit: boolean;\n };\n}\n"],"names":["cleanFilterData","data","cleanedData","_","facet","getFilter","service","environment","formResult","searchParams","formData","url","response","axios","getMe","listUsers","query","selection","fileToBase64","file","resolve","reject","reader","result","configureAxiosHeaders","token","server_uri","getChemicalContainer","id","listChemicalContainerExternalLabels","qrCodeContent","listChemicalContainerMethodsOfUse","listChemicalContainerPurposes","listChemicalContainerTypes","listChemicals","getEquipment","getSetup","getStatusMail","listEquipment","run","room","statusMail","page","pageSize","filter","order","direction","listEquipmentStatus","listEcnAttachments","equipment","module","getEquipmentModule","listIssueAttachments","listEcn","listEquipmentModuleParameters","listIssues","listModules","listReservations","which","i","listLocationMessages","getLocation","getRoom","listLocations","listRooms","withLocations","getMonitor","listMonitorRequirements","equipmentId","monitorId","listMonitors","listMonitorRequirementResults","requirement","listMonitorRequirementResultMonitorStepParameterValues","listMonitorRequirementTargets","listMonitorStepFiles","step","listMonitorStepParameters","getRun","getRunStep","listRequirements","listRunChangelog","listRunParts","level","listRunSteps","listRuns","firstUnfinishedStepEquipment","RunStepPartActionEnum","getAvailableRunStepPartActions","runStepPart","latestActionId","actions","listMeasurementResults","measurement","listRunStepChecklistItems","runStep","startStep","finishStep","listRunStepFiles","listRunStepParameters","listRunStepParts","page_size","listRunStepPartActions","part","setRunStepPartAction","runStepPartAction","performRunStepPartAction","action","finishStepWhenAllPartsAreFinished","stepParts","listReportResult","getServiceEventReport","listServiceEventReportResult","listServices","getTemplateSteps","template","listTemplates","reworkRecipes","recipe","ChemicalStandardProductEnum","ChemicalPhysicalStateEnum","EquipmentGrade","DashboardComponent","EquipmentModuleIssueType","EquipmentModuleIssueStatus","ShowIssuesOptionEnum","OrderOptionEnum","ClassificationsOptionEnum","DirectionOptionEnum","RunTypeEnum"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index a214277..7793bd7 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -52,6 +52,8 @@ export { default as listRunStepParameters } from './run/api/step/listRunStepPara export { default as listRunStepParts } from './run/api/step/listRunStepParts'; export { default as listRunStepPartActions } from './run/api/step/part/listRunStepPartActions'; export { default as setRunStepPartAction } from './run/api/step/part/setRunStepPartAction'; +export { default as performRunStepPartAction } from './run/functions/performRunStepPartAction'; +export { default as finishStepWhenAllPartsAreFinished } from './run/functions/finishStepWhenAllPartsAreFinished'; export { default as listReportResult } from './service/api/getReportResult'; export { default as getServiceEventReport } from './service/api/getServiceEventReport'; export { default as listServiceEventReportResult } from './service/api/listServiceEventReportResult'; @@ -75,6 +77,7 @@ export type { ChemicalContainerPurpose } from './chemical/interfaces/chemical/co export type { ChemicalContainerType } from './chemical/interfaces/chemical/container/chemicalContainerType'; export type { ChemicalContainerUser } from './chemical/interfaces/chemical/container/chemicalContainerUser'; export { EquipmentGrade } from './equipment/interfaces/equipment'; +export { DashboardComponent } from './equipment/interfaces/equipment'; export type { Equipment } from './equipment/interfaces/equipment'; export type { EquipmentModule, EquipmentModuleType } from './equipment/interfaces/equipment/equipmentModule'; export type { EquipmentProperty } from './equipment/interfaces/equipment/equipmentProperty'; diff --git a/dist/index.js b/dist/index.js index fffb02b..8308aa8 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,16 +1,16 @@ import i from "axios"; -function f(t) { +function _(t) { let e = { ...t }; return e.facet = Object.fromEntries(Object.entries(t.facet).filter(([n, s]) => s.values.length > 0)), t.filter.general.length <= 0 && (e.filter = {}), e; } -async function A({ +async function C({ service: t, environment: e, formResult: n }) { const s = new URLSearchParams(); if (t !== void 0 && s.append("service", t), e !== void 0 && s.append("environment", e), n !== void 0) { - let c = JSON.stringify(f(n)); + let c = JSON.stringify(_(n)); s.append("formResult", btoa(c)); } let a = "view/filter?" + s.toString(); @@ -20,11 +20,11 @@ async function A({ facet: o._embedded.items[1] }; } -async function M() { +async function E() { const t = await i.get("me"), { data: e } = t; return e; } -async function N({ query: t, selection: e }) { +async function T({ query: t, selection: e }) { const n = new URLSearchParams(); t && n.append("query", t), e && n.append("selection", e.toString()); let s = "list/user?" + n.toString(); @@ -37,7 +37,7 @@ async function N({ query: t, selection: e }) { hasMore: r.page < r.page_count }; } -function D(t) { +function F(t) { return new Promise((e, n) => { const s = new FileReader(); s.onload = () => { @@ -46,14 +46,14 @@ function D(t) { }, s.onerror = n, s.readAsDataURL(t); }); } -const C = (t, e) => { +const q = (t, e) => { i.defaults.headers.common.Authorization = "Bearer " + t, i.defaults.headers.common.Accept = "application/json", i.defaults.headers.common["Content-Type"] = "application/json", i.defaults.baseURL = e; }; -async function E({ id: t }) { +async function H({ id: t }) { const e = await i.get("view/chemical/container/" + t), { data: n } = e; return n; } -async function T({ +async function z({ qrCodeContent: t }) { const e = new URLSearchParams(); @@ -68,7 +68,7 @@ async function T({ hasMore: a.page < a.page_count }; } -async function F({ +async function G({ query: t }) { const e = new URLSearchParams(); @@ -83,7 +83,7 @@ async function F({ hasMore: a.page < a.page_count }; } -async function q({ +async function x({ query: t }) { const e = new URLSearchParams(); @@ -98,7 +98,7 @@ async function q({ hasMore: a.page < a.page_count }; } -async function z({ +async function j({ query: t }) { const e = new URLSearchParams(); @@ -113,7 +113,7 @@ async function z({ hasMore: a.page < a.page_count }; } -async function H({ query: t }) { +async function W({ query: t }) { const e = new URLSearchParams(); t && e.append("query", t); let n = "list/chemical?" + e.toString(); @@ -126,15 +126,15 @@ async function H({ query: t }) { hasMore: a.page < a.page_count }; } -async function G({ id: t }) { +async function B({ id: t }) { const e = await i.get("view/equipment/" + t), { data: n } = e; return n; } -async function j({ id: t }) { +async function Y({ id: t }) { const e = await i.get("view/setup/" + t), { data: n } = e; return n; } -async function x({ id: t }) { +async function K({ id: t }) { const e = await i.get("view/status-mail/" + t), { data: n } = e; return n; } @@ -142,7 +142,7 @@ function S(t) { let e = { ...t }; return e.facet = Object.fromEntries(Object.entries(t.facet).filter(([n, s]) => s.values.length > 0)), t.filter.general.length <= 0 && (e.filter = {}), e; } -async function W({ +async function V({ environment: t, run: e, room: n, @@ -157,7 +157,7 @@ async function W({ const g = new URLSearchParams(); t !== void 0 && g.append("environment", t), e !== void 0 && g.append("run", e.id.toString()), n !== void 0 && g.append("room", n.id.toString()), o !== void 0 && g.append("query", o), p !== void 0 && g.append("order", p), d !== void 0 && g.append("direction", d), s !== void 0 && (g.append("status_mail", s.id.toString()), g.append("page_size", "200")), c !== void 0 && (c = S(c), g.append("filter", btoa(JSON.stringify(c)))), g.append("page", a.toString()), g.append("page_size", r.toString()); let l = "list/equipment?" + g.toString(); - const _ = await i.get(l), { data: u } = _; + const f = await i.get(l), { data: u } = f; return { items: u._embedded.items, amountOfPages: u.page_count, @@ -166,7 +166,7 @@ async function W({ hasMore: u.page < u.page_count }; } -async function B() { +async function k() { let e = "list/equipment/status?" + new URLSearchParams().toString(); const n = await i.get(e), { data: s } = n; return { @@ -177,7 +177,7 @@ async function B() { hasMore: s.page < s.page_count }; } -async function Y({ +async function J({ equipment: t, module: e, statusMail: n @@ -194,13 +194,13 @@ async function Y({ hasMore: o.page < o.page_count }; } -async function K({ id: t }) { +async function Q({ id: t }) { if (isNaN(t)) return null; const e = await i.get("view/equipment/module/" + t), { data: n } = e; return n; } -async function V({ +async function $({ equipment: t, module: e, statusMail: n @@ -217,7 +217,7 @@ async function V({ hasMore: o.page < o.page_count }; } -async function k({ +async function X({ equipment: t, module: e, statusMail: n @@ -234,7 +234,7 @@ async function k({ hasMore: o.page < o.page_count }; } -async function J({ +async function Z({ module: t, pageSize: e, order: n, @@ -252,7 +252,7 @@ async function J({ hasMore: c.page < c.page_count }; } -async function Q({ +async function tt({ equipment: t, module: e, statusMail: n @@ -269,7 +269,7 @@ async function Q({ hasMore: o.page < o.page_count }; } -async function $({ +async function et({ equipment: t, statusMail: e, run: n @@ -286,7 +286,7 @@ async function $({ hasMore: o.page < o.page_count }; } -async function X({ +async function at({ equipment: t, module: e, which: n @@ -306,7 +306,7 @@ async function X({ hasMore: o.page < o.page_count }; } -async function Z({ +async function nt({ statusMail: t }) { const e = new URLSearchParams(); @@ -321,15 +321,15 @@ async function Z({ hasMore: a.page < a.page_count }; } -async function tt({ id: t }) { +async function st({ id: t }) { const e = await i.get("view/location/" + t), { data: n } = e; return n; } -async function et({ id: t }) { +async function rt({ id: t }) { const e = await i.get("view/room/" + t), { data: n } = e; return n; } -async function at({ +async function ot({ environment: t, room: e, pageSize: n = 25 @@ -346,7 +346,7 @@ async function at({ hasMore: o.page < o.page_count }; } -async function nt({ +async function it({ environment: t, withLocations: e }) { @@ -362,12 +362,12 @@ async function nt({ hasMore: r.page < r.page_count }; } -async function st({ id: t }) { +async function ct({ id: t }) { let e = await i.get("view/monitor/" + t); const { data: n } = e; return n; } -async function rt({ +async function pt({ equipmentId: t, monitorId: e }) { @@ -383,7 +383,7 @@ async function rt({ hasMore: r.page < r.page_count }; } -async function ot({ +async function gt({ equipment: t }) { const e = new URLSearchParams(); @@ -398,7 +398,7 @@ async function ot({ hasMore: a.page < a.page_count }; } -async function it({ +async function dt({ requirement: t, order: e, direction: n, @@ -417,7 +417,7 @@ async function it({ hasMore: p.page < p.page_count }; } -async function ct({ +async function mt({ requirement: t, result: e, order: n, @@ -437,7 +437,7 @@ async function ct({ hasMore: d.page < d.page_count }; } -async function pt({ +async function ut({ requirement: t }) { const e = new URLSearchParams(); @@ -452,7 +452,7 @@ async function pt({ hasMore: a.page < a.page_count }; } -async function gt({ +async function lt({ step: t, pageSize: e, order: n, @@ -470,7 +470,7 @@ async function gt({ hasMore: c.page < c.page_count }; } -async function dt({ +async function ft({ step: t, requirement: e, pageSize: n, @@ -489,17 +489,17 @@ async function dt({ hasMore: p.page < p.page_count }; } -async function mt({ id: t }) { +async function _t({ id: t }) { let e = "view/run/" + t; const n = await i.get(e), { data: s } = n; return s; } -async function ut({ id: t }) { +async function St({ id: t }) { let e = "view/run/step/" + t; const n = await i.get(e), { data: s } = n; return s; } -async function lt({ +async function Pt({ step: t, run: e }) { @@ -515,7 +515,7 @@ async function lt({ hasMore: r.page < r.page_count }; } -async function _t({ +async function ht({ run: t, page: e }) { @@ -531,20 +531,20 @@ async function _t({ hasMore: r.page < r.page_count }; } -async function ft({ run: t }) { - const e = new URLSearchParams(); - e.append("run", t.id.toString()), e.append("page_size", "10000"); - let n = "list/run/parts?" + e.toString(); - const s = await i.get(n), { data: a } = s; +async function Rt({ run: t, level: e }) { + const n = new URLSearchParams(); + n.append("run", t.id.toString()), n.append("page_size", "10000"), e !== void 0 && n.append("level", `${e}`); + let s = "list/run/parts?" + n.toString(); + const a = await i.get(s), { data: r } = a; return { - items: a._embedded.items, - amountOfPages: a.page_count, - currentPage: a.page, - totalItems: a.total_items, - hasMore: a.page < a.page_count + items: r._embedded.items, + amountOfPages: r.page_count, + currentPage: r.page, + totalItems: r.total_items, + hasMore: r.page < r.page_count }; } -async function St({ +async function wt({ run: t, page: e = 1, pageSize: n = 25 @@ -561,7 +561,7 @@ async function St({ hasMore: o.page < o.page_count }; } -async function Pt({ +async function vt({ environment: t, firstUnfinishedStepEquipment: e }) { @@ -578,13 +578,13 @@ async function Pt({ }; } var m = /* @__PURE__ */ ((t) => (t[t.START_PROCESSING = 1] = "START_PROCESSING", t[t.FINISH_PROCESSING = 2] = "FINISH_PROCESSING", t[t.FAILED_PROCESSING = 3] = "FAILED_PROCESSING", t[t.REWORK = 4] = "REWORK", t))(m || {}); -function ht(t) { +function It(t) { if (t.part_processing_failed_in_previous_step) return []; const e = t.latest_action?.type.id, n = []; return t.actions === 0 && n.push(m.START_PROCESSING), t.actions > 0 && e !== m.FINISH_PROCESSING && e !== m.FAILED_PROCESSING && n.push(m.FINISH_PROCESSING, m.FAILED_PROCESSING), t.actions > 0 && n.push(m.REWORK), n; } -async function wt({ +async function Lt({ measurement: t }) { const e = new URLSearchParams(); @@ -599,7 +599,7 @@ async function wt({ hasMore: a.page < a.page_count }; } -async function Rt({ +async function Ot({ runStep: t }) { const e = new URLSearchParams(); @@ -614,17 +614,17 @@ async function Rt({ hasMore: a.page < a.page_count }; } -async function vt(t) { +async function P(t) { if (!t) throw new Error("Run step is undefined when trying to start step"); return await i.create().patch("update/run/step/start/" + t.id, {}); } -async function It(t) { +async function h(t) { if (!t) throw new Error("Run step is undefined when trying to finish step"); return await i.create().patch("update/run/step/finish/" + t.id, {}); } -async function Lt({ +async function Ut({ step: t, pageSize: e }) { @@ -640,7 +640,7 @@ async function Lt({ hasMore: r.page < r.page_count }; } -async function Ot({ +async function yt({ runStep: t }) { const e = new URLSearchParams(); @@ -655,7 +655,7 @@ async function Ot({ hasMore: a.page < a.page_count }; } -async function Ut({ +async function bt({ step: t, run: e, page_size: n @@ -672,7 +672,7 @@ async function Ut({ hasMore: o.page < o.page_count }; } -async function bt({ +async function At({ part: t, step: e, page_size: n @@ -689,7 +689,7 @@ async function bt({ hasMore: o.page < o.page_count }; } -async function yt({ +async function R({ runStepPart: t, runStepPartAction: e }) { @@ -699,26 +699,38 @@ async function yt({ }), { data: a } = s; return a; } -async function At({ id: t }) { +async function Mt(t, e) { + const n = t.step; + return n.is_started || P(n), R({ runStepPart: t, runStepPartAction: e }); +} +async function Nt(t, e) { + if (t.is_finished || e.length <= 0) + return !1; + for (const n of e) + if (n.latest_action?.type.id !== m.FINISH_PROCESSING) + return !1; + return h(t).then(() => !0).catch(() => !1); +} +async function Dt({ id: t }) { const e = new URLSearchParams(); t !== void 0 && e.append("report", t.toString()); let n = "list/service/event/report/results?" + e.toString(); const s = await i.get(n), { data: a } = s; return a._embedded.items; } -async function Mt({ id: t }) { +async function Ct({ id: t }) { let e = await i.get("view/service/event/report/" + t); const { data: n } = e; return n; } -async function Nt({ id: t }) { +async function Et({ id: t }) { const e = new URLSearchParams(); e.append("report", t.toString()); let n = "list/service/event/report/results?" + e.toString(); const s = await i.get(n), { data: a } = s; return a._embedded.items; } -async function Dt({ +async function Tt({ equipmentId: t }) { const e = new URLSearchParams(); @@ -733,7 +745,7 @@ async function Dt({ hasMore: a.page < a.page_count }; } -async function Ct({ template: t, pageSize: e }) { +async function Ft({ template: t, pageSize: e }) { const n = new URLSearchParams(); t !== void 0 && n.append("template", t.id.toString()), e !== void 0 && n.append("page_size", e.toString()); let s = "list/template/step?" + n.toString(); @@ -745,7 +757,7 @@ async function Ct({ template: t, pageSize: e }) { totalItems: r.total_items }; } -async function Et({ reworkRecipes: t }) { +async function qt({ reworkRecipes: t }) { const e = new URLSearchParams(); t !== void 0 && t.map((r) => r.id).forEach((r) => { e.append("rework_recipe_id[]", r.toString()); @@ -759,78 +771,81 @@ async function Et({ reworkRecipes: t }) { totalItems: a.total_items }; } -var P = /* @__PURE__ */ ((t) => (t[t.STANDARD_PRODUCT = 1] = "STANDARD_PRODUCT", t[t.NON_STANDARD_PRODUCT = 2] = "NON_STANDARD_PRODUCT", t))(P || {}), h = /* @__PURE__ */ ((t) => (t[t.SOLID = 1] = "SOLID", t[t.LIQUID = 2] = "LIQUID", t[t.GAS = 3] = "GAS", t[t.OTHER = 4] = "OTHER", t))(h || {}), w = /* @__PURE__ */ ((t) => (t[t.Equipment = 1] = "Equipment", t[t.Accessory = 2] = "Accessory", t[t.Storage = 3] = "Storage", t))(w || {}), R = /* @__PURE__ */ ((t) => (t[t.DEFAULT = 1] = "DEFAULT", t[t.PRIORITY = 2] = "PRIORITY", t[t.ESCALATION = 3] = "ESCALATION", t))(R || {}), v = /* @__PURE__ */ ((t) => (t[t.ACTIVE = 1] = "ACTIVE", t[t.CLOSED = 2] = "CLOSED", t))(v || {}), I = /* @__PURE__ */ ((t) => (t[t.HIDE_ISSUES = 1] = "HIDE_ISSUES", t[t.SHOW_ISSUES = 2] = "SHOW_ISSUES", t[t.COLLAPSE_ISSUES = 3] = "COLLAPSE_ISSUES", t))(I || {}), L = /* @__PURE__ */ ((t) => (t[t.NAME = 1] = "NAME", t[t.MES_NAME = 2] = "MES_NAME", t[t.NUMBER = 3] = "NUMBER", t))(L || {}), O = /* @__PURE__ */ ((t) => (t[t.AREA = 1] = "AREA", t[t.AREA_PER_FACILITY = 2] = "AREA_PER_FACILITY", t[t.ROOM = 3] = "ROOM", t))(O || {}), U = /* @__PURE__ */ ((t) => (t.ASC = "ASC", t.DESC = "DESC", t))(U || {}), b = /* @__PURE__ */ ((t) => (t[t.RESEARCH = 1] = "RESEARCH", t[t.PRODUCTION = 2] = "PRODUCTION", t))(b || {}); +var w = /* @__PURE__ */ ((t) => (t[t.STANDARD_PRODUCT = 1] = "STANDARD_PRODUCT", t[t.NON_STANDARD_PRODUCT = 2] = "NON_STANDARD_PRODUCT", t))(w || {}), v = /* @__PURE__ */ ((t) => (t[t.SOLID = 1] = "SOLID", t[t.LIQUID = 2] = "LIQUID", t[t.GAS = 3] = "GAS", t[t.OTHER = 4] = "OTHER", t))(v || {}), I = /* @__PURE__ */ ((t) => (t[t.Equipment = 1] = "Equipment", t[t.Accessory = 2] = "Accessory", t[t.Storage = 3] = "Storage", t))(I || {}), L = /* @__PURE__ */ ((t) => (t.ProcessNextStepInEquipment = "ProcessNextStepInEquipment", t))(L || {}), O = /* @__PURE__ */ ((t) => (t[t.DEFAULT = 1] = "DEFAULT", t[t.PRIORITY = 2] = "PRIORITY", t[t.ESCALATION = 3] = "ESCALATION", t))(O || {}), U = /* @__PURE__ */ ((t) => (t[t.ACTIVE = 1] = "ACTIVE", t[t.CLOSED = 2] = "CLOSED", t))(U || {}), y = /* @__PURE__ */ ((t) => (t[t.HIDE_ISSUES = 1] = "HIDE_ISSUES", t[t.SHOW_ISSUES = 2] = "SHOW_ISSUES", t[t.COLLAPSE_ISSUES = 3] = "COLLAPSE_ISSUES", t))(y || {}), b = /* @__PURE__ */ ((t) => (t[t.NAME = 1] = "NAME", t[t.MES_NAME = 2] = "MES_NAME", t[t.NUMBER = 3] = "NUMBER", t))(b || {}), A = /* @__PURE__ */ ((t) => (t[t.AREA = 1] = "AREA", t[t.AREA_PER_FACILITY = 2] = "AREA_PER_FACILITY", t[t.ROOM = 3] = "ROOM", t))(A || {}), M = /* @__PURE__ */ ((t) => (t.ASC = "ASC", t.DESC = "DESC", t))(M || {}), N = /* @__PURE__ */ ((t) => (t[t.RESEARCH = 1] = "RESEARCH", t[t.PRODUCTION = 2] = "PRODUCTION", t))(N || {}); export { - h as ChemicalPhysicalStateEnum, - P as ChemicalStandardProductEnum, - O as ClassificationsOptionEnum, - U as DirectionOptionEnum, - w as EquipmentGrade, - v as EquipmentModuleIssueStatus, - R as EquipmentModuleIssueType, - L as OrderOptionEnum, + v as ChemicalPhysicalStateEnum, + w as ChemicalStandardProductEnum, + A as ClassificationsOptionEnum, + L as DashboardComponent, + M as DirectionOptionEnum, + I as EquipmentGrade, + U as EquipmentModuleIssueStatus, + O as EquipmentModuleIssueType, + b as OrderOptionEnum, m as RunStepPartActionEnum, - b as RunTypeEnum, - I as ShowIssuesOptionEnum, - C as configureAxiosHeaders, - D as fileToBase64, - It as finishStep, - ht as getAvailableRunStepPartActions, - E as getChemicalContainer, - G as getEquipment, - K as getEquipmentModule, - A as getFilter, - tt as getLocation, - M as getMe, - st as getMonitor, - et as getRoom, - mt as getRun, - ut as getRunStep, - Mt as getServiceEventReport, - j as getSetup, - x as getStatusMail, - Ct as getTemplateSteps, - T as listChemicalContainerExternalLabels, - F as listChemicalContainerMethodsOfUse, - q as listChemicalContainerPurposes, - z as listChemicalContainerTypes, - H as listChemicals, - k as listEcn, - Y as listEcnAttachments, - W as listEquipment, - J as listEquipmentModuleParameters, - B as listEquipmentStatus, - V as listIssueAttachments, - Q as listIssues, - Z as listLocationMessages, - at as listLocations, - wt as listMeasurementResults, - $ as listModules, - ct as listMonitorRequirementResultMonitorStepParameterValues, - it as listMonitorRequirementResults, - pt as listMonitorRequirementTargets, - rt as listMonitorRequirements, - gt as listMonitorStepFiles, - dt as listMonitorStepParameters, - ot as listMonitors, - At as listReportResult, - lt as listRequirements, - X as listReservations, - nt as listRooms, - _t as listRunChangelog, - ft as listRunParts, - Rt as listRunStepChecklistItems, - Lt as listRunStepFiles, - Ot as listRunStepParameters, - bt as listRunStepPartActions, - Ut as listRunStepParts, - St as listRunSteps, - Pt as listRuns, - Nt as listServiceEventReportResult, - Dt as listServices, - Et as listTemplates, - N as listUsers, - yt as setRunStepPartAction, - vt as startStep + N as RunTypeEnum, + y as ShowIssuesOptionEnum, + q as configureAxiosHeaders, + F as fileToBase64, + h as finishStep, + Nt as finishStepWhenAllPartsAreFinished, + It as getAvailableRunStepPartActions, + H as getChemicalContainer, + B as getEquipment, + Q as getEquipmentModule, + C as getFilter, + st as getLocation, + E as getMe, + ct as getMonitor, + rt as getRoom, + _t as getRun, + St as getRunStep, + Ct as getServiceEventReport, + Y as getSetup, + K as getStatusMail, + Ft as getTemplateSteps, + z as listChemicalContainerExternalLabels, + G as listChemicalContainerMethodsOfUse, + x as listChemicalContainerPurposes, + j as listChemicalContainerTypes, + W as listChemicals, + X as listEcn, + J as listEcnAttachments, + V as listEquipment, + Z as listEquipmentModuleParameters, + k as listEquipmentStatus, + $ as listIssueAttachments, + tt as listIssues, + nt as listLocationMessages, + ot as listLocations, + Lt as listMeasurementResults, + et as listModules, + mt as listMonitorRequirementResultMonitorStepParameterValues, + dt as listMonitorRequirementResults, + ut as listMonitorRequirementTargets, + pt as listMonitorRequirements, + lt as listMonitorStepFiles, + ft as listMonitorStepParameters, + gt as listMonitors, + Dt as listReportResult, + Pt as listRequirements, + at as listReservations, + it as listRooms, + ht as listRunChangelog, + Rt as listRunParts, + Ot as listRunStepChecklistItems, + Ut as listRunStepFiles, + yt as listRunStepParameters, + At as listRunStepPartActions, + bt as listRunStepParts, + wt as listRunSteps, + vt as listRuns, + Et as listServiceEventReportResult, + Tt as listServices, + qt as listTemplates, + T as listUsers, + Mt as performRunStepPartAction, + R as setRunStepPartAction, + P as startStep }; //# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map index 4703f44..605d419 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/core/api/getFilter.ts","../src/core/api/getMe.ts","../src/core/api/listUsers.ts","../src/core/functions/fileToBase64.ts","../src/core/functions/configureAxiosHeaders.ts","../src/chemical/api/getChemicalContainer.ts","../src/chemical/api/listChemicalContainerExternalLabels.ts","../src/chemical/api/listChemicalContainerMethodsOfUse.ts","../src/chemical/api/listChemicalContainerPurposes.ts","../src/chemical/api/listChemicalContainerTypes.ts","../src/chemical/api/listChemicals.ts","../src/equipment/api/getEquipment.ts","../src/equipment/api/getSetup.ts","../src/equipment/api/getStatusMail.ts","../src/equipment/api/listEquipment.ts","../src/equipment/api/listEquipmentStatus.ts","../src/equipment/api/module/ecn/listEcnAttachments.ts","../src/equipment/api/module/getEquipmentModule.ts","../src/equipment/api/module/issue/listIssueAttachments.ts","../src/equipment/api/module/listEcn.ts","../src/equipment/api/module/listEquipmentModuleParameters.ts","../src/equipment/api/module/listIssues.ts","../src/equipment/api/module/listModules.ts","../src/equipment/api/module/listReservations.ts","../src/location/api/listLocationMessages.ts","../src/room/api/getLocation.ts","../src/room/api/getRoom.ts","../src/room/api/listLocations.ts","../src/room/api/listRooms.ts","../src/monitor/api/getMonitor.ts","../src/monitor/api/listMonitorRequirements.ts","../src/monitor/api/listMonitors.ts","../src/monitor/api/measurement/listMonitorRequirementResults.ts","../src/monitor/api/measurement/result/listMonitorRequirementResultMonitorStepParameterValues.ts","../src/monitor/api/requirement/listMonitorRequirementTargets.ts","../src/monitor/api/step/listMonitorStepFiles.ts","../src/monitor/api/step/listMonitorStepParameters.ts","../src/run/api/getRun.ts","../src/run/api/getRunStep.ts","../src/run/api/listRequirements.ts","../src/run/api/listRunChangelog.ts","../src/run/api/listRunParts.ts","../src/run/api/listRunSteps.ts","../src/run/api/listRuns.ts","../src/run/enum/runStepPartActionEnum.ts","../src/run/api/getRunStepPartActions.ts","../src/run/api/measurement/listResults.ts","../src/run/api/step/listRunStepChecklistItems.ts","../src/run/api/step/startStep.ts","../src/run/api/step/finishStep.ts","../src/run/api/step/listRunStepFiles.ts","../src/run/api/step/listRunStepParameters.ts","../src/run/api/step/listRunStepParts.ts","../src/run/api/step/part/listRunStepPartActions.ts","../src/run/api/step/part/setRunStepPartAction.ts","../src/service/api/getReportResult.ts","../src/service/api/getServiceEventReport.ts","../src/service/api/listServiceEventReportResult.ts","../src/service/api/listServices.ts","../src/template/api/getTemplateSteps.ts","../src/template/api/listTemplates.ts","../src/chemical/interfaces/chemical.ts","../src/equipment/interfaces/equipment.ts","../src/equipment/interfaces/equipment/module/equipmentModuleIssue.ts","../src/equipment/interfaces/statusMail.ts","../src/run/interfaces/run.ts"],"sourcesContent":["import axios from \"axios\";\nimport { FilterData, FilterFormData } from \"../interfaces/filter\";\nimport { ApiResponse } from \"../interfaces/response\";\n\nfunction cleanFilterData(data: FilterData): FilterData {\n let cleanedData = { ...data };\n cleanedData.facet = Object.fromEntries(Object.entries(data.facet).filter(([_, facet]) => facet.values.length > 0));\n\n if (data.filter.general.length <= 0) {\n // @ts-expect-error\n cleanedData.filter = {};\n }\n return cleanedData;\n}\n\nexport default async function getFilter({\n service,\n environment,\n formResult,\n}: {\n service: string;\n environment?: string;\n formResult?: FilterData;\n}): Promise {\n const searchParams = new URLSearchParams();\n\n if (service !== undefined) {\n searchParams.append(\"service\", service);\n }\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n if (formResult !== undefined) {\n let formData = JSON.stringify(cleanFilterData(formResult));\n searchParams.append(\"formResult\", btoa(formData));\n }\n\n let url = \"view/filter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n filter: data._embedded.items[0],\n facet: data._embedded.items[1],\n };\n}\n","import axios from \"axios\";\nimport {User} from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport default async function getMe() {\n const response = await axios.get(\"me\");\n const {data} = response;\n return data;\n}\n","import axios from \"axios\";\nimport { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listUsers({ query, selection}: { query?: string; selection?: number;}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n if (selection) {\n searchParams.append(\"selection\", selection.toString());\n }\n\n let url = \"list/user?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n};\n","export default function fileToBase64(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const result = reader.result as string;\n resolve(result);\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n}\n","import axios from \"axios\";\n\nexport const configureAxiosHeaders = (token: string, server_uri: string) => {\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\n axios.defaults.headers.common[\"Accept\"] = \"application/json\";\n axios.defaults.headers.common[\"Content-Type\"] = \"application/json\";\n\n axios.defaults.baseURL = server_uri;\n};\n","import axios from \"axios\";\nimport { ChemicalContainer } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/chemicalContainer\";\n\nexport default async function getChemicalContainer({ id }: { id: number }) {\n const response = await axios.get(\"view/chemical/container/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerExternalLabel } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerExternalLabel\";\n\nexport default async function listChemicalContainerExternalLabels({\n qrCodeContent,\n}: {\n qrCodeContent: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"qr_code_content\", qrCodeContent);\n\n let url = \"list/chemical/container/external-label?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerMethodOfUse } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerMethodOfUse\";\n\nexport default async function listChemicalContainerMethodsOfUse({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n let url = \"list/chemical/container/method-of-use?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerPurpose } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerPurpose\";\n\nexport default async function listChemicalContainerPurposes({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical/container/purpose?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerType } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerType\";\n\nexport default async function listChemicalContainerTypes({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical/container/type?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\n// migrated from react-router-dom createSearchParams to URLSearchParams\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Chemical } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical\";\n\nexport default async function listChemicals({ query }: { query?: string }): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\n\nexport default async function getEquipment({ id }: { id: number }) {\n const response = await axios.get(\"view/equipment/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Setup } from \"../interfaces/setup\";\n\nexport default async function getSetup({ id }: { id: number }) {\n const response = await axios.get(\"view/setup/\" + id);\n const { data } = response;\n\n return data;\n}\n","import axios from \"axios\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\n\nexport default async function getStatusMail({ id }: { id: number }) {\n const response = await axios.get(\"view/status-mail/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\nimport { FilterData } from \"@jield/solodb-typescript-core/core/interfaces/filter\";\n\nfunction cleanFilterData(data: FilterData): FilterData {\n let cleanedData = { ...data };\n cleanedData.facet = Object.fromEntries(Object.entries(data.facet).filter(([_, facet]) => facet.values.length > 0));\n\n if (data.filter.general.length <= 0) {\n // @ts-expect-error\n cleanedData.filter = {};\n }\n return cleanedData;\n}\n\nexport default async function listEquipment({\n environment,\n run,\n room,\n statusMail,\n page = 1,\n pageSize = 25,\n query,\n filter,\n order,\n direction\n}: {\n environment?: string;\n run?: Run;\n room?: Room;\n statusMail?: StatusMail;\n page?: number;\n pageSize?: number;\n query?: string;\n filter?: FilterData;\n order?: string;\n direction?: \"desc\" | \"asc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n\n if (room !== undefined) {\n searchParams.append(\"room\", room.id.toString());\n }\n\n if (query !== undefined) {\n searchParams.append(\"query\", query);\n }\n\n if (order !== undefined) {\n searchParams.append(\"order\", order);\n }\n\n if (direction !== undefined) {\n searchParams.append(\"direction\", direction);\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n\n // Use a reasonable page size for infinite scrolling\n searchParams.append(\"page_size\", \"200\");\n }\n\n if (filter !== undefined) {\n filter = cleanFilterData(filter);\n searchParams.append(\"filter\", btoa(JSON.stringify(filter)));\n }\n\n searchParams.append(\"page\", page.toString());\n searchParams.append(\"page_size\", pageSize.toString());\n\n let url = \"list/equipment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { EquipmentStatus } from \"@jield/solodb-typescript-core/equipment/interfaces/equipmentStatus\";\n\nexport default async function listEquipmentStatus(): Promise> {\n const searchParams = new URLSearchParams();\n let url = \"list/equipment/status?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleEcnAttachment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/ecn/equipmentModuleEcnAttachment\";\n\nexport default async function listEcnAttachments({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/ecn/attachment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function getEquipmentModule({ id }: { id: number }) {\n if (isNaN(id)) {\n return null;\n }\n\n const response = await axios.get(\"view/equipment/module/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleIssueAttachment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/issue/equipmentModuleIssueAttachment\";\n\nexport default async function listIssueAttachments({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/issue/attachment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModuleEcn } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleEcn\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\n\nexport default async function listEcn({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/ecn?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { EquipmentModuleParameter } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleParameter\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function listEquipmentModuleParameters({\n module,\n pageSize,\n order,\n direction,\n}: {\n module?: EquipmentModule;\n pageSize?: number;\n order?: \"sequence\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n if (order) {\n searchParams.append(\"order\", order);\n }\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/equipment/module/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleIssue } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleIssue\";\n\nexport default async function listIssues({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/issue?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listModules({\n equipment,\n statusMail,\n run,\n}: {\n equipment?: Equipment;\n statusMail?: StatusMail;\n run?: Run;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"10000\");\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n\n let url = \"list/equipment/module?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModuleReservation } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleReservation\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function listReservations({\n equipment,\n module,\n which,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n which?: \"active\" | \"past\" | \"upcoming\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (which !== undefined) {\n searchParams.append(\"which\", which);\n }\n\n let url = \"list/equipment/reservation?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n if (which == \"active\") {\n for (let i = 0; i < data._embedded.items.length; i++) {\n data._embedded.items[i].active = true;\n }\n }\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { LocationMessage } from \"@jield/solodb-typescript-core/location/interfaces/locationMessage\";\n\nexport default async function listLocationMessages({\n statusMail,\n}: {\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/location/message?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Location } from \"@jield/solodb-typescript-core/room/interfaces/location\";\n\nexport default async function getLocation({ id }: { id: number }) {\n const response = await axios.get(\"view/location/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function getRoom({ id }: { id: number }) {\n const response = await axios.get(\"view/room/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Location } from \"@jield/solodb-typescript-core/room/interfaces/location\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function listLocations({\n environment,\n room,\n pageSize = 25,\n}: {\n environment?: string;\n room?: Room;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment) {\n searchParams.append(\"environment\", environment);\n }\n\n if (room) {\n searchParams.append(\"room\", room.id.toString());\n }\n\n searchParams.append(\"page_size\", pageSize.toString());\n\n let url = \"list/location?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function listRooms({\n environment,\n withLocations,\n}: {\n environment?: string;\n withLocations?: boolean;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment) {\n searchParams.append(\"environment\", environment);\n }\n\n if (withLocations) {\n searchParams.append(\"which\", \"with_locations\");\n }\n\n let url = \"list/room?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\n\nexport default async function getMonitor({ id }: { id: number }) {\n let response = await axios.get(\"view/monitor/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirements({\n equipmentId,\n monitorId,\n}: {\n equipmentId?: number;\n monitorId?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipmentId !== undefined) {\n searchParams.append(\"equipment\", equipmentId.toString());\n }\n\n if (monitorId) {\n searchParams.append(\"monitor\", monitorId.toString());\n }\n\n let url = \"list/monitor/requirement?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\n\nexport default async function listMonitors({\n equipment,\n}: {\n equipment?: Equipment;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n searchParams.append(\"ad_hoc\", \"true\");\n\n let url = \"list/monitor?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorMeasurementResult } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/monitorMeasurementResult\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirementResults({\n requirement,\n order,\n direction,\n pageSize,\n page,\n}: {\n requirement?: MonitorRequirement;\n monitor?: Monitor;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n pageSize?: number;\n page?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n if (pageSize) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (page) {\n searchParams.append(\"page\", page.toString());\n }\n\n let url = \"list/monitor/measurement/result?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorMeasurementResult } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/monitorMeasurementResult\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { MonitorResultStepParameterValue } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/result/monitorResultStepParameterValue\";\n\nexport default async function listMonitorRequirementResultMonitorStepParameterValues({\n requirement,\n result,\n order,\n direction,\n pageSize,\n page,\n}: {\n requirement?: MonitorRequirement;\n result?: MonitorMeasurementResult;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n pageSize?: number;\n page?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n if (result) {\n searchParams.append(\"result\", result.id.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n if (pageSize) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (page) {\n searchParams.append(\"page\", page.toString());\n }\n\n let url = \"list/monitor/measurement/result/step-parameter-value?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { MonitorRequirementTarget } from \"@jield/solodb-typescript-core/monitor/interfaces/requirement/monitorRequirementTarget\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirementTargets({\n requirement,\n}: {\n requirement?: MonitorRequirement;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n let url = \"list/monitor/requirement/target?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorStep } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorStepFiles({\n step,\n pageSize,\n order,\n direction,\n}: {\n step?: MonitorStep;\n pageSize?: number;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/monitor/step/file?\" + searchParams.toString();\n const response = await axios.get>(url);\n\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorStep } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { MonitorStepParameter } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor/step/parameter\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\n\nexport default async function listMonitorStepParameters({\n step,\n requirement,\n pageSize,\n order,\n direction,\n}: {\n step?: MonitorStep;\n requirement?: MonitorRequirement;\n pageSize?: number;\n order?: \"sequence\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (requirement !== undefined) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n if (order) {\n searchParams.append(\"order\", order);\n }\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/monitor/step/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function getRun({ id }: { id: number }) {\n let url = \"view/run/\" + id;\n\n const response = await axios.get(url);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\n\nexport default async function getRunStep({ id }: { id: number }) {\n let url = \"view/run/step/\" + id;\n\n const response = await axios.get(url);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { Requirement } from \"@jield/solodb-typescript-core/run/interfaces/requirement\";\n\nexport default async function listRequirements({\n step,\n run,\n}: {\n step?: RunStep;\n run?: Run;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", String(step.id));\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", String(run.id));\n }\n\n let url = \"list/run/requirement?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Changelog } from \"@jield/solodb-typescript-core/run/interfaces/run/changelog\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunChangelog({\n run,\n page,\n}: {\n run: Run;\n page: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n searchParams.append(\"page\", page.toString());\n\n let url = \"list/run/changelog?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunPart } from \"@jield/solodb-typescript-core/run/interfaces/run/runPart\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listRunParts({ run }: { run: Run }): Promise> {\n const searchParams = new URLSearchParams();\n searchParams.append(\"run\", run.id.toString());\n searchParams.append(\"page_size\", \"10000\");\n\n let url = \"list/run/parts?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunSteps({\n run,\n page = 1,\n pageSize = 25,\n}: {\n run: Run;\n page?: number;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n searchParams.append(\"page\", page.toString());\n searchParams.append(\"page_size\", pageSize.toString());\n let url = \"list/run/step?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRuns({\n environment,\n firstUnfinishedStepEquipment,\n}: {\n environment?: string;\n firstUnfinishedStepEquipment?: Equipment;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (firstUnfinishedStepEquipment !== undefined) {\n searchParams.append(\"operator\", \"1\");\n searchParams.append(\"first_unfinished_step_equipment_id\", firstUnfinishedStepEquipment.id.toString());\n }\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n let url = \"list/run?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","export enum RunStepPartActionEnum {\n START_PROCESSING = 1,\n FINISH_PROCESSING = 2,\n FAILED_PROCESSING = 3,\n REWORK = 4,\n}\n","import { RunStepPartActionEnum } from \"../enum/runStepPartActionEnum\";\nimport { RunStepPart } from \"../interfaces/step/runStepPart\";\n\nexport default function getAvailableRunStepPartActions(runStepPart: RunStepPart): RunStepPartActionEnum[] {\n // if it already failed in a previous step, nothing can be done\n if (runStepPart.part_processing_failed_in_previous_step) {\n return [];\n }\n\n const latestActionId = runStepPart.latest_action?.type.id;\n const actions: RunStepPartActionEnum[] = [];\n\n // your current conditions, just centralized:\n if (runStepPart.actions === 0) {\n actions.push(RunStepPartActionEnum.START_PROCESSING);\n }\n\n if (\n runStepPart.actions > 0 &&\n latestActionId !== RunStepPartActionEnum.FINISH_PROCESSING &&\n latestActionId !== RunStepPartActionEnum.FAILED_PROCESSING\n ) {\n actions.push(RunStepPartActionEnum.FINISH_PROCESSING, RunStepPartActionEnum.FAILED_PROCESSING);\n }\n\n if (runStepPart.actions > 0) {\n actions.push(RunStepPartActionEnum.REWORK);\n }\n\n return actions;\n};\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Measurement } from \"@jield/solodb-typescript-core/run/interfaces/measurement\";\nimport { MeasurementResult } from \"@jield/solodb-typescript-core/run/interfaces/measurement/result\";\n\nexport default async function listMeasurementResults({\n measurement,\n}: {\n measurement: Measurement;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"measurement\", String(measurement.id));\n\n let url = \"/list/run/measurement/result?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepChecklistItem } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepChecklistItem\";\n\nexport default async function listRunStepChecklistItems({\n runStep,\n}: {\n runStep: RunStep;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (runStep !== undefined) {\n searchParams.append(\"step\", runStep.id.toString());\n }\n let url = \"list/run/step/checklist?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import { RunStep } from \"@jield/solodb-typescript-core/index\";\nimport axios, { AxiosResponse } from \"axios\";\n\nexport default async function startStep(runStep: RunStep): Promise> {\n if (!runStep) {\n throw new Error(\"Run step is undefined when trying to start step\"); \n }\n\n const resp = await axios.create().patch(\"update/run/step/start/\" + runStep.id, {});\n \n return resp;\n}\n","import { RunStep } from \"@jield/solodb-typescript-core/index\";\nimport axios, { AxiosResponse } from \"axios\";\n\nexport default async function finishStep(runStep: RunStep): Promise> {\n if (!runStep) {\n throw new Error(\"Run step is undefined when trying to finish step\"); \n }\n\n const resp = await axios.create().patch(\"update/run/step/finish/\" + runStep.id, {});\n \n return resp;\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunStepFiles({\n step,\n pageSize,\n}: {\n step?: RunStep;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n //We want the file to be ordered by date_created DESC\n searchParams.append(\"order\", \"date-created\");\n searchParams.append(\"direction\", \"DESC\");\n\n let url = \"list/run/step/file?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepParameter } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepParameter\";\n\nexport default async function listRunStepParameters({\n runStep,\n}: {\n runStep: RunStep;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (runStep !== undefined) {\n searchParams.append(\"step\", runStep.id.toString());\n }\n let url = \"list/run/step/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listRunStepParts({\n step,\n run,\n page_size,\n}: {\n step?: RunStep;\n run?: Run;\n page_size?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n if (page_size !== undefined) {\n searchParams.append(\"page_size\", page_size.toString());\n } else {\n searchParams.append(\"page_size\", \"10000\");\n }\n\n let url = \"list/run/step/part?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepPartAction } from \"@jield/solodb-typescript-core/run/interfaces/step/part/runStepPartAction\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\n\nexport default async function listRunStepPartActions({\n part,\n step,\n page_size,\n}: {\n part?: RunStepPart;\n step?: RunStep;\n page_size?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (part !== undefined) {\n searchParams.append(\"part\", part.id.toString());\n }\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (page_size !== undefined) {\n searchParams.append(\"page_size\", page_size.toString());\n }\n\n let url = \"list/run/step/part/action?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStepPartAction } from \"@jield/solodb-typescript-core/run/interfaces/step/part/runStepPartAction\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\nimport { RunStepPartActionEnum } from \"@jield/solodb-typescript-core/run/enum/runStepPartActionEnum\";\n\nexport default async function setRunStepPartAction({\n runStepPart,\n runStepPartAction,\n}: {\n runStepPart: RunStepPart;\n runStepPartAction: RunStepPartActionEnum;\n}): Promise {\n let url = \"create/run/step/part/action\";\n\n const response = await axios.post(url, {\n run_step_part_id: runStepPart.id,\n type: runStepPartAction,\n });\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ServiceEventReportResult } from \"@jield/solodb-typescript-core/service/interfaces/service/event/report/serviceEventReportResult\";\n\nexport default async function listReportResult({ id }: { id: number }) {\n const searchParams = new URLSearchParams();\n\n if (id !== undefined) {\n searchParams.append(\"report\", id.toString());\n }\n\n let url = \"list/service/event/report/results?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return data._embedded.items;\n}\n","import axios from \"axios\";\nimport { ServiceEventReport } from \"@jield/solodb-typescript-core/service/interfaces/service/event/serviceEventReport\";\n\nexport default async function getServiceEventReport({ id }: { id: number }) {\n let response = await axios.get(\"view/service/event/report/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ServiceEventReportResult } from \"@jield/solodb-typescript-core/service/interfaces/service/event/report/serviceEventReportResult\";\n\nexport default async function listServiceEventReportResult({ id }: { id: number }) {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"report\", id.toString());\n\n let url = \"list/service/event/report/results?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return data._embedded.items;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Service } from \"@jield/solodb-typescript-core/service/interfaces/service\";\n\nexport default async function listServices({\n equipmentId,\n}: {\n equipmentId?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipmentId !== undefined) {\n searchParams.append(\"equipment\", equipmentId.toString());\n }\n\n let url = \"list/service?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Template } from \"@jield/solodb-typescript-core/template/interfaces/template\";\nimport { TemplateStep } from \"@jield/solodb-typescript-core/template/interfaces/templateStep\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function getTemplateSteps({ template, pageSize }: { template?: Template; pageSize?: number }) {\n const searchParams = new URLSearchParams();\n\n if (template !== undefined) {\n searchParams.append(\"template\", template.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n let url = \"list/template/step?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n steps: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n };\n}\n","import axios from \"axios\";\nimport { Recipe } from \"@jield/solodb-typescript-core/process/interfaces/module/recipe\";\nimport { Template } from \"@jield/solodb-typescript-core/template/interfaces/template\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listTemplates({ reworkRecipes }: { reworkRecipes?: Recipe[] }) {\n const searchParams = new URLSearchParams();\n\n if (reworkRecipes !== undefined) {\n //Add the rework recipe ids to the search params, in array notation\n reworkRecipes\n .map((recipe) => recipe.id)\n .forEach((id) => {\n searchParams.append(\"rework_recipe_id[]\", id.toString());\n });\n }\n\n let url = \"list/template?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n templates: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n };\n}\n","import { MainChemical } from \"@jield/solodb-typescript-core/chemical/interfaces/mainChemical\";\nimport { SafetyStatement } from \"@jield/solodb-typescript-core/chemical/interfaces/safetyStatement\";\nimport { SafetyIcon } from \"@jield/solodb-typescript-core/chemical/interfaces/safetyIcon\";\n\nexport enum ChemicalStandardProductEnum {\n STANDARD_PRODUCT = 1,\n NON_STANDARD_PRODUCT = 2,\n}\n\nexport enum ChemicalPhysicalStateEnum {\n SOLID = 1,\n LIQUID = 2,\n GAS = 3,\n OTHER = 4,\n}\n\nexport interface Chemical {\n id: number;\n name: string;\n cas_number: string | null;\n chemical_formula: string | null;\n ehs_link: string | null;\n cmr: string[];\n description: string | null;\n is_standard_product: boolean;\n standard_product: ChemicalStandardProductEnum;\n physical_state: ChemicalPhysicalStateEnum;\n is_halogenated: boolean;\n contains_metals: boolean;\n main_chemical: MainChemical | null;\n safety_statement: SafetyStatement[];\n safety_icons: SafetyIcon[];\n}\n","import {Room} from \"@jield/solodb-typescript-core/room/interfaces/room\";\nimport {\n EquipmentModuleStatus\n} from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleStatus\";\nimport {EquipmentProperty} from \"./equipment/equipmentProperty\";\nimport {\n Setup,\n SetupWithoutMainEquipmentAndSetupEquipment\n} from \"@jield/solodb-typescript-core/equipment/interfaces/setup\";\nimport {Area} from \"@jield/solodb-typescript-core/location/interfaces/area\";\n\nexport enum EquipmentGrade {\n \"Equipment\" = 1,\n \"Accessory\" = 2,\n \"Storage\" = 3,\n}\n\n\nexport interface Equipment {\n id: number;\n name: string;\n number: string;\n mes_name: string;\n active: boolean;\n active_in_mes: boolean;\n reservation_possible: boolean;\n is_main_in_setup: boolean;\n setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n has_setup_equipment: boolean;\n is_in_fixed_setup: boolean;\n fixed_setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n is_in_active_setup: boolean;\n active_setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n main_tool_module_id: number | null;\n main_tool_latest_status?: EquipmentModuleStatus;\n is_available_for_rental: boolean;\n properties?: EquipmentProperty[];\n room: Room;\n types: string[];\n grade: EquipmentGrade;\n area: Area | null;\n}\n","import { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport enum EquipmentModuleIssueType {\n DEFAULT = 1,\n PRIORITY = 2,\n ESCALATION = 3,\n}\n\nexport enum EquipmentModuleIssueStatus {\n ACTIVE = 1,\n CLOSED = 2,\n}\n\nexport interface EquipmentModuleIssue {\n id: number;\n module_id: number;\n date_created: string;\n date_closed?: string;\n last_update?: string;\n issue: string;\n description: string;\n issue_type: EquipmentModuleIssueType;\n status: EquipmentModuleIssueStatus;\n owner: User;\n updated_by?: User;\n forecast_up: string;\n actions: string;\n attachments: number;\n}\n","import { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport enum ShowIssuesOptionEnum {\n HIDE_ISSUES = 1,\n SHOW_ISSUES = 2,\n COLLAPSE_ISSUES = 3,\n}\n\nexport enum OrderOptionEnum {\n NAME = 1,\n MES_NAME = 2,\n NUMBER = 3,\n}\n\nexport enum ClassificationsOptionEnum {\n AREA = 1,\n AREA_PER_FACILITY = 2,\n ROOM = 3,\n}\n\nexport enum DirectionOptionEnum {\n ASC = \"ASC\",\n DESC = \"DESC\",\n}\n\nexport interface StatusMail {\n id: number;\n name: string;\n date_created: string;\n last_updated: string | null;\n filter: {\n messageType: string[];\n MESStatus: string[];\n };\n equipment_filter: string;\n sequence: number;\n show_issues_with_priority: boolean;\n show_in_navigation: boolean;\n show_tool_up: boolean;\n show_issues: ShowIssuesOptionEnum;\n show_reservations: boolean;\n classification: ClassificationsOptionEnum;\n order: OrderOptionEnum;\n direction: DirectionOptionEnum;\n user: User;\n to: string;\n cc: string;\n bcc: string;\n subject: string;\n}\n","import { BatchCard } from \"@jield/solodb-typescript-core/run/interfaces/run/batchCard\";\nimport { HoldCode } from \"@jield/solodb-typescript-core/run/interfaces/run/holdCode\";\nimport { Priority } from \"@jield/solodb-typescript-core/run/interfaces/run/priority\";\nimport { Project } from \"@jield/solodb-typescript-core/core/interfaces/project\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\n\nexport enum RunTypeEnum {\n RESEARCH = 1,\n PRODUCTION = 2,\n}\n\nexport interface Run {\n id: number;\n label: string;\n name: string;\n amount_of_steps: number;\n run_type: RunTypeEnum;\n responsible: string;\n status: string;\n first_unfinished_step?: RunStep;\n last_finished_step?: RunStep;\n has_batch_card: boolean;\n batch_card?: BatchCard;\n hold_code?: HoldCode;\n priority?: Priority;\n project: Project;\n amount_root_parts: number;\n access: {\n edit: boolean;\n };\n}\n"],"names":["cleanFilterData","data","cleanedData","_","facet","getFilter","service","environment","formResult","searchParams","formData","url","response","axios","getMe","listUsers","query","selection","fileToBase64","file","resolve","reject","reader","result","configureAxiosHeaders","token","server_uri","getChemicalContainer","id","listChemicalContainerExternalLabels","qrCodeContent","listChemicalContainerMethodsOfUse","listChemicalContainerPurposes","listChemicalContainerTypes","listChemicals","getEquipment","getSetup","getStatusMail","listEquipment","run","room","statusMail","page","pageSize","filter","order","direction","listEquipmentStatus","listEcnAttachments","equipment","module","getEquipmentModule","listIssueAttachments","listEcn","listEquipmentModuleParameters","listIssues","listModules","listReservations","which","i","listLocationMessages","getLocation","getRoom","listLocations","listRooms","withLocations","getMonitor","listMonitorRequirements","equipmentId","monitorId","listMonitors","listMonitorRequirementResults","requirement","listMonitorRequirementResultMonitorStepParameterValues","listMonitorRequirementTargets","listMonitorStepFiles","step","listMonitorStepParameters","getRun","getRunStep","listRequirements","listRunChangelog","listRunParts","listRunSteps","listRuns","firstUnfinishedStepEquipment","RunStepPartActionEnum","getAvailableRunStepPartActions","runStepPart","latestActionId","actions","listMeasurementResults","measurement","listRunStepChecklistItems","runStep","startStep","finishStep","listRunStepFiles","listRunStepParameters","listRunStepParts","page_size","listRunStepPartActions","part","setRunStepPartAction","runStepPartAction","listReportResult","getServiceEventReport","listServiceEventReportResult","listServices","getTemplateSteps","template","listTemplates","reworkRecipes","recipe","ChemicalStandardProductEnum","ChemicalPhysicalStateEnum","EquipmentGrade","EquipmentModuleIssueType","EquipmentModuleIssueStatus","ShowIssuesOptionEnum","OrderOptionEnum","ClassificationsOptionEnum","DirectionOptionEnum","RunTypeEnum"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/core/api/getFilter.ts","../src/core/api/getMe.ts","../src/core/api/listUsers.ts","../src/core/functions/fileToBase64.ts","../src/core/functions/configureAxiosHeaders.ts","../src/chemical/api/getChemicalContainer.ts","../src/chemical/api/listChemicalContainerExternalLabels.ts","../src/chemical/api/listChemicalContainerMethodsOfUse.ts","../src/chemical/api/listChemicalContainerPurposes.ts","../src/chemical/api/listChemicalContainerTypes.ts","../src/chemical/api/listChemicals.ts","../src/equipment/api/getEquipment.ts","../src/equipment/api/getSetup.ts","../src/equipment/api/getStatusMail.ts","../src/equipment/api/listEquipment.ts","../src/equipment/api/listEquipmentStatus.ts","../src/equipment/api/module/ecn/listEcnAttachments.ts","../src/equipment/api/module/getEquipmentModule.ts","../src/equipment/api/module/issue/listIssueAttachments.ts","../src/equipment/api/module/listEcn.ts","../src/equipment/api/module/listEquipmentModuleParameters.ts","../src/equipment/api/module/listIssues.ts","../src/equipment/api/module/listModules.ts","../src/equipment/api/module/listReservations.ts","../src/location/api/listLocationMessages.ts","../src/room/api/getLocation.ts","../src/room/api/getRoom.ts","../src/room/api/listLocations.ts","../src/room/api/listRooms.ts","../src/monitor/api/getMonitor.ts","../src/monitor/api/listMonitorRequirements.ts","../src/monitor/api/listMonitors.ts","../src/monitor/api/measurement/listMonitorRequirementResults.ts","../src/monitor/api/measurement/result/listMonitorRequirementResultMonitorStepParameterValues.ts","../src/monitor/api/requirement/listMonitorRequirementTargets.ts","../src/monitor/api/step/listMonitorStepFiles.ts","../src/monitor/api/step/listMonitorStepParameters.ts","../src/run/api/getRun.ts","../src/run/api/getRunStep.ts","../src/run/api/listRequirements.ts","../src/run/api/listRunChangelog.ts","../src/run/api/listRunParts.ts","../src/run/api/listRunSteps.ts","../src/run/api/listRuns.ts","../src/run/enum/runStepPartActionEnum.ts","../src/run/api/getRunStepPartActions.ts","../src/run/api/measurement/listResults.ts","../src/run/api/step/listRunStepChecklistItems.ts","../src/run/api/step/startStep.ts","../src/run/api/step/finishStep.ts","../src/run/api/step/listRunStepFiles.ts","../src/run/api/step/listRunStepParameters.ts","../src/run/api/step/listRunStepParts.ts","../src/run/api/step/part/listRunStepPartActions.ts","../src/run/api/step/part/setRunStepPartAction.ts","../src/run/functions/performRunStepPartAction.ts","../src/run/functions/finishStepWhenAllPartsAreFinished.ts","../src/service/api/getReportResult.ts","../src/service/api/getServiceEventReport.ts","../src/service/api/listServiceEventReportResult.ts","../src/service/api/listServices.ts","../src/template/api/getTemplateSteps.ts","../src/template/api/listTemplates.ts","../src/chemical/interfaces/chemical.ts","../src/equipment/interfaces/equipment.ts","../src/equipment/interfaces/equipment/module/equipmentModuleIssue.ts","../src/equipment/interfaces/statusMail.ts","../src/run/interfaces/run.ts"],"sourcesContent":["import axios from \"axios\";\nimport { FilterData, FilterFormData } from \"../interfaces/filter\";\nimport { ApiResponse } from \"../interfaces/response\";\n\nfunction cleanFilterData(data: FilterData): FilterData {\n let cleanedData = { ...data };\n cleanedData.facet = Object.fromEntries(Object.entries(data.facet).filter(([_, facet]) => facet.values.length > 0));\n\n if (data.filter.general.length <= 0) {\n // @ts-expect-error\n cleanedData.filter = {};\n }\n return cleanedData;\n}\n\nexport default async function getFilter({\n service,\n environment,\n formResult,\n}: {\n service: string;\n environment?: string;\n formResult?: FilterData;\n}): Promise {\n const searchParams = new URLSearchParams();\n\n if (service !== undefined) {\n searchParams.append(\"service\", service);\n }\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n if (formResult !== undefined) {\n let formData = JSON.stringify(cleanFilterData(formResult));\n searchParams.append(\"formResult\", btoa(formData));\n }\n\n let url = \"view/filter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n filter: data._embedded.items[0],\n facet: data._embedded.items[1],\n };\n}\n","import axios from \"axios\";\nimport {User} from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport default async function getMe() {\n const response = await axios.get(\"me\");\n const {data} = response;\n return data;\n}\n","import axios from \"axios\";\nimport { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listUsers({ query, selection}: { query?: string; selection?: number;}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n if (selection) {\n searchParams.append(\"selection\", selection.toString());\n }\n\n let url = \"list/user?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n};\n","export default function fileToBase64(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const result = reader.result as string;\n resolve(result);\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n}\n","import axios from \"axios\";\n\nexport const configureAxiosHeaders = (token: string, server_uri: string) => {\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\n axios.defaults.headers.common[\"Accept\"] = \"application/json\";\n axios.defaults.headers.common[\"Content-Type\"] = \"application/json\";\n\n axios.defaults.baseURL = server_uri;\n};\n","import axios from \"axios\";\nimport { ChemicalContainer } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/chemicalContainer\";\n\nexport default async function getChemicalContainer({ id }: { id: number }) {\n const response = await axios.get(\"view/chemical/container/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerExternalLabel } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerExternalLabel\";\n\nexport default async function listChemicalContainerExternalLabels({\n qrCodeContent,\n}: {\n qrCodeContent: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"qr_code_content\", qrCodeContent);\n\n let url = \"list/chemical/container/external-label?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerMethodOfUse } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerMethodOfUse\";\n\nexport default async function listChemicalContainerMethodsOfUse({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n let url = \"list/chemical/container/method-of-use?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerPurpose } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerPurpose\";\n\nexport default async function listChemicalContainerPurposes({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical/container/purpose?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ChemicalContainerType } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical/container/chemicalContainerType\";\n\nexport default async function listChemicalContainerTypes({\n query,\n}: {\n query?: string;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical/container/type?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\n// migrated from react-router-dom createSearchParams to URLSearchParams\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Chemical } from \"@jield/solodb-typescript-core/chemical/interfaces/chemical\";\n\nexport default async function listChemicals({ query }: { query?: string }): Promise> {\n const searchParams = new URLSearchParams();\n\n if (query) {\n searchParams.append(\"query\", query);\n }\n\n let url = \"list/chemical?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\n\nexport default async function getEquipment({ id }: { id: number }) {\n const response = await axios.get(\"view/equipment/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Setup } from \"../interfaces/setup\";\n\nexport default async function getSetup({ id }: { id: number }) {\n const response = await axios.get(\"view/setup/\" + id);\n const { data } = response;\n\n return data;\n}\n","import axios from \"axios\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\n\nexport default async function getStatusMail({ id }: { id: number }) {\n const response = await axios.get(\"view/status-mail/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\nimport { FilterData } from \"@jield/solodb-typescript-core/core/interfaces/filter\";\n\nfunction cleanFilterData(data: FilterData): FilterData {\n let cleanedData = { ...data };\n cleanedData.facet = Object.fromEntries(Object.entries(data.facet).filter(([_, facet]) => facet.values.length > 0));\n\n if (data.filter.general.length <= 0) {\n // @ts-expect-error\n cleanedData.filter = {};\n }\n return cleanedData;\n}\n\nexport default async function listEquipment({\n environment,\n run,\n room,\n statusMail,\n page = 1,\n pageSize = 25,\n query,\n filter,\n order,\n direction\n}: {\n environment?: string;\n run?: Run;\n room?: Room;\n statusMail?: StatusMail;\n page?: number;\n pageSize?: number;\n query?: string;\n filter?: FilterData;\n order?: string;\n direction?: \"desc\" | \"asc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n\n if (room !== undefined) {\n searchParams.append(\"room\", room.id.toString());\n }\n\n if (query !== undefined) {\n searchParams.append(\"query\", query);\n }\n\n if (order !== undefined) {\n searchParams.append(\"order\", order);\n }\n\n if (direction !== undefined) {\n searchParams.append(\"direction\", direction);\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n\n // Use a reasonable page size for infinite scrolling\n searchParams.append(\"page_size\", \"200\");\n }\n\n if (filter !== undefined) {\n filter = cleanFilterData(filter);\n searchParams.append(\"filter\", btoa(JSON.stringify(filter)));\n }\n\n searchParams.append(\"page\", page.toString());\n searchParams.append(\"page_size\", pageSize.toString());\n\n let url = \"list/equipment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { EquipmentStatus } from \"@jield/solodb-typescript-core/equipment/interfaces/equipmentStatus\";\n\nexport default async function listEquipmentStatus(): Promise> {\n const searchParams = new URLSearchParams();\n let url = \"list/equipment/status?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleEcnAttachment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/ecn/equipmentModuleEcnAttachment\";\n\nexport default async function listEcnAttachments({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/ecn/attachment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function getEquipmentModule({ id }: { id: number }) {\n if (isNaN(id)) {\n return null;\n }\n\n const response = await axios.get(\"view/equipment/module/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleIssueAttachment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/issue/equipmentModuleIssueAttachment\";\n\nexport default async function listIssueAttachments({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/issue/attachment?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModuleEcn } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleEcn\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\n\nexport default async function listEcn({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/ecn?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { EquipmentModuleParameter } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleParameter\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function listEquipmentModuleParameters({\n module,\n pageSize,\n order,\n direction,\n}: {\n module?: EquipmentModule;\n pageSize?: number;\n order?: \"sequence\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n if (order) {\n searchParams.append(\"order\", order);\n }\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/equipment/module/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModuleIssue } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleIssue\";\n\nexport default async function listIssues({\n equipment,\n module,\n statusMail,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/equipment/module/issue?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listModules({\n equipment,\n statusMail,\n run,\n}: {\n equipment?: Equipment;\n statusMail?: StatusMail;\n run?: Run;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"10000\");\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n\n let url = \"list/equipment/module?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { EquipmentModuleReservation } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleReservation\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { EquipmentModule } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/equipmentModule\";\n\nexport default async function listReservations({\n equipment,\n module,\n which,\n}: {\n equipment?: Equipment;\n module?: EquipmentModule;\n which?: \"active\" | \"past\" | \"upcoming\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n if (module !== undefined) {\n searchParams.append(\"module\", module.id.toString());\n }\n\n if (which !== undefined) {\n searchParams.append(\"which\", which);\n }\n\n let url = \"list/equipment/reservation?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n if (which == \"active\") {\n for (let i = 0; i < data._embedded.items.length; i++) {\n data._embedded.items[i].active = true;\n }\n }\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { StatusMail } from \"@jield/solodb-typescript-core/equipment/interfaces/statusMail\";\nimport { LocationMessage } from \"@jield/solodb-typescript-core/location/interfaces/locationMessage\";\n\nexport default async function listLocationMessages({\n statusMail,\n}: {\n statusMail?: StatusMail;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (statusMail !== undefined) {\n searchParams.append(\"status_mail\", statusMail.id.toString());\n searchParams.append(\"page_size\", \"1000\");\n }\n\n let url = \"list/location/message?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Location } from \"@jield/solodb-typescript-core/room/interfaces/location\";\n\nexport default async function getLocation({ id }: { id: number }) {\n const response = await axios.get(\"view/location/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function getRoom({ id }: { id: number }) {\n const response = await axios.get(\"view/room/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Location } from \"@jield/solodb-typescript-core/room/interfaces/location\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function listLocations({\n environment,\n room,\n pageSize = 25,\n}: {\n environment?: string;\n room?: Room;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment) {\n searchParams.append(\"environment\", environment);\n }\n\n if (room) {\n searchParams.append(\"room\", room.id.toString());\n }\n\n searchParams.append(\"page_size\", pageSize.toString());\n\n let url = \"list/location?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Room } from \"@jield/solodb-typescript-core/room/interfaces/room\";\n\nexport default async function listRooms({\n environment,\n withLocations,\n}: {\n environment?: string;\n withLocations?: boolean;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (environment) {\n searchParams.append(\"environment\", environment);\n }\n\n if (withLocations) {\n searchParams.append(\"which\", \"with_locations\");\n }\n\n let url = \"list/room?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\n\nexport default async function getMonitor({ id }: { id: number }) {\n let response = await axios.get(\"view/monitor/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirements({\n equipmentId,\n monitorId,\n}: {\n equipmentId?: number;\n monitorId?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipmentId !== undefined) {\n searchParams.append(\"equipment\", equipmentId.toString());\n }\n\n if (monitorId) {\n searchParams.append(\"monitor\", monitorId.toString());\n }\n\n let url = \"list/monitor/requirement?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\n\nexport default async function listMonitors({\n equipment,\n}: {\n equipment?: Equipment;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipment !== undefined) {\n searchParams.append(\"equipment\", equipment.id.toString());\n }\n\n searchParams.append(\"ad_hoc\", \"true\");\n\n let url = \"list/monitor?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorMeasurementResult } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/monitorMeasurementResult\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirementResults({\n requirement,\n order,\n direction,\n pageSize,\n page,\n}: {\n requirement?: MonitorRequirement;\n monitor?: Monitor;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n pageSize?: number;\n page?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n if (pageSize) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (page) {\n searchParams.append(\"page\", page.toString());\n }\n\n let url = \"list/monitor/measurement/result?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorMeasurementResult } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/monitorMeasurementResult\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { Monitor } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { MonitorResultStepParameterValue } from \"@jield/solodb-typescript-core/monitor/interfaces/measurement/result/monitorResultStepParameterValue\";\n\nexport default async function listMonitorRequirementResultMonitorStepParameterValues({\n requirement,\n result,\n order,\n direction,\n pageSize,\n page,\n}: {\n requirement?: MonitorRequirement;\n result?: MonitorMeasurementResult;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n pageSize?: number;\n page?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n if (result) {\n searchParams.append(\"result\", result.id.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n if (pageSize) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (page) {\n searchParams.append(\"page\", page.toString());\n }\n\n let url = \"list/monitor/measurement/result/step-parameter-value?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\nimport { MonitorRequirementTarget } from \"@jield/solodb-typescript-core/monitor/interfaces/requirement/monitorRequirementTarget\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorRequirementTargets({\n requirement,\n}: {\n requirement?: MonitorRequirement;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (requirement) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n\n let url = \"list/monitor/requirement/target?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorStep } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listMonitorStepFiles({\n step,\n pageSize,\n order,\n direction,\n}: {\n step?: MonitorStep;\n pageSize?: number;\n order?: \"id\" | \"date-created\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n if (order) {\n searchParams.append(\"order\", order);\n }\n\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/monitor/step/file?\" + searchParams.toString();\n const response = await axios.get>(url);\n\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { MonitorStep } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { MonitorStepParameter } from \"@jield/solodb-typescript-core/monitor/interfaces/monitor/step/parameter\";\nimport { MonitorRequirement } from \"@jield/solodb-typescript-core/monitor/interfaces/monitorRequirement\";\n\nexport default async function listMonitorStepParameters({\n step,\n requirement,\n pageSize,\n order,\n direction,\n}: {\n step?: MonitorStep;\n requirement?: MonitorRequirement;\n pageSize?: number;\n order?: \"sequence\";\n direction?: \"asc\" | \"desc\";\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (requirement !== undefined) {\n searchParams.append(\"requirement\", requirement.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n if (order) {\n searchParams.append(\"order\", order);\n }\n if (direction) {\n searchParams.append(\"direction\", direction);\n }\n\n let url = \"list/monitor/step/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function getRun({ id }: { id: number }) {\n let url = \"view/run/\" + id;\n\n const response = await axios.get(url);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\n\nexport default async function getRunStep({ id }: { id: number }) {\n let url = \"view/run/step/\" + id;\n\n const response = await axios.get(url);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { Requirement } from \"@jield/solodb-typescript-core/run/interfaces/requirement\";\n\nexport default async function listRequirements({\n step,\n run,\n}: {\n step?: RunStep;\n run?: Run;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", String(step.id));\n }\n\n if (run !== undefined) {\n searchParams.append(\"run\", String(run.id));\n }\n\n let url = \"list/run/requirement?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Changelog } from \"@jield/solodb-typescript-core/run/interfaces/run/changelog\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunChangelog({\n run,\n page,\n}: {\n run: Run;\n page: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n searchParams.append(\"page\", page.toString());\n\n let url = \"list/run/changelog?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunPart } from \"@jield/solodb-typescript-core/run/interfaces/run/runPart\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listRunParts({ run, level }: { run: Run; level?: number; }): Promise> {\n const searchParams = new URLSearchParams();\n searchParams.append(\"run\", run.id.toString());\n searchParams.append(\"page_size\", \"10000\");\n\n if (level !== undefined) searchParams.append(\"level\", `${level}`);\n\n let url = \"list/run/parts?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunSteps({\n run,\n page = 1,\n pageSize = 25,\n}: {\n run: Run;\n page?: number;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n searchParams.append(\"page\", page.toString());\n searchParams.append(\"page_size\", pageSize.toString());\n let url = \"list/run/step?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\nimport { Equipment } from \"@jield/solodb-typescript-core/equipment/interfaces/equipment\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRuns({\n environment,\n firstUnfinishedStepEquipment,\n}: {\n environment?: string;\n firstUnfinishedStepEquipment?: Equipment;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (firstUnfinishedStepEquipment !== undefined) {\n searchParams.append(\"operator\", \"1\");\n searchParams.append(\"first_unfinished_step_equipment_id\", firstUnfinishedStepEquipment.id.toString());\n }\n\n if (environment !== undefined) {\n searchParams.append(\"environment\", environment);\n }\n\n let url = \"list/run?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","export enum RunStepPartActionEnum {\n START_PROCESSING = 1,\n FINISH_PROCESSING = 2,\n FAILED_PROCESSING = 3,\n REWORK = 4,\n}\n","import { RunStepPartActionEnum } from \"../enum/runStepPartActionEnum\";\nimport { RunStepPart } from \"../interfaces/step/runStepPart\";\n\nexport default function getAvailableRunStepPartActions(runStepPart: RunStepPart): RunStepPartActionEnum[] {\n // if it already failed in a previous step, nothing can be done\n if (runStepPart.part_processing_failed_in_previous_step) {\n return [];\n }\n\n const latestActionId = runStepPart.latest_action?.type.id;\n const actions: RunStepPartActionEnum[] = [];\n\n // your current conditions, just centralized:\n if (runStepPart.actions === 0) {\n actions.push(RunStepPartActionEnum.START_PROCESSING);\n }\n\n if (\n runStepPart.actions > 0 &&\n latestActionId !== RunStepPartActionEnum.FINISH_PROCESSING &&\n latestActionId !== RunStepPartActionEnum.FAILED_PROCESSING\n ) {\n actions.push(RunStepPartActionEnum.FINISH_PROCESSING, RunStepPartActionEnum.FAILED_PROCESSING);\n }\n\n if (runStepPart.actions > 0) {\n actions.push(RunStepPartActionEnum.REWORK);\n }\n\n return actions;\n};\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Measurement } from \"@jield/solodb-typescript-core/run/interfaces/measurement\";\nimport { MeasurementResult } from \"@jield/solodb-typescript-core/run/interfaces/measurement/result\";\n\nexport default async function listMeasurementResults({\n measurement,\n}: {\n measurement: Measurement;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"measurement\", String(measurement.id));\n\n let url = \"/list/run/measurement/result?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepChecklistItem } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepChecklistItem\";\n\nexport default async function listRunStepChecklistItems({\n runStep,\n}: {\n runStep: RunStep;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (runStep !== undefined) {\n searchParams.append(\"step\", runStep.id.toString());\n }\n let url = \"list/run/step/checklist?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import { RunStep } from \"@jield/solodb-typescript-core/index\";\nimport axios, { AxiosResponse } from \"axios\";\n\n/**\n * Start a run step and return the updated step payload.\n *\n * Mirrors PATCH /api/update/run/step/start/{id}.\n *\n * @param runStep - Run step to mark as started.\n * @throws Error when the run step is missing.\n */\nexport default async function startStep(\n runStep: RunStep,\n): Promise> {\n if (!runStep) {\n throw new Error(\"Run step is undefined when trying to start step\");\n }\n\n const resp = await axios\n .create()\n .patch(\"update/run/step/start/\" + runStep.id, {});\n\n return resp;\n}\n","import { RunStep } from \"@jield/solodb-typescript-core/index\";\nimport axios, { AxiosResponse } from \"axios\";\n\n/**\n * Finish a run step and return the updated step payload.\n *\n * Mirrors PATCH /api/update/run/step/finish/{id}.\n *\n * @param runStep - Run step to mark as finished.\n * @throws Error when the run step is missing.\n */\nexport default async function finishStep(\n runStep: RunStep,\n): Promise> {\n if (!runStep) {\n throw new Error(\"Run step is undefined when trying to finish step\");\n }\n\n const resp = await axios\n .create()\n .patch(\"update/run/step/finish/\" + runStep.id, {});\n\n return resp;\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { File } from \"@jield/solodb-typescript-core/core/interfaces/file\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listRunStepFiles({\n step,\n pageSize,\n}: {\n step?: RunStep;\n pageSize?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n //We want the file to be ordered by date_created DESC\n searchParams.append(\"order\", \"date-created\");\n searchParams.append(\"direction\", \"DESC\");\n\n let url = \"list/run/step/file?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepParameter } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepParameter\";\n\nexport default async function listRunStepParameters({\n runStep,\n}: {\n runStep: RunStep;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (runStep !== undefined) {\n searchParams.append(\"step\", runStep.id.toString());\n }\n let url = \"list/run/step/parameter?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Run } from \"@jield/solodb-typescript-core/run/interfaces/run\";\n\nexport default async function listRunStepParts({\n step,\n run,\n page_size,\n}: {\n step?: RunStep;\n run?: Run;\n page_size?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (run !== undefined) {\n searchParams.append(\"run\", run.id.toString());\n }\n if (page_size !== undefined) {\n searchParams.append(\"page_size\", page_size.toString());\n } else {\n searchParams.append(\"page_size\", \"10000\");\n }\n\n let url = \"list/run/step/part?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { RunStepPartAction } from \"@jield/solodb-typescript-core/run/interfaces/step/part/runStepPartAction\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\n\nexport default async function listRunStepPartActions({\n part,\n step,\n page_size,\n}: {\n part?: RunStepPart;\n step?: RunStep;\n page_size?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (part !== undefined) {\n searchParams.append(\"part\", part.id.toString());\n }\n if (step !== undefined) {\n searchParams.append(\"step\", step.id.toString());\n }\n if (page_size !== undefined) {\n searchParams.append(\"page_size\", page_size.toString());\n }\n\n let url = \"list/run/step/part/action?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { RunStepPartAction } from \"@jield/solodb-typescript-core/run/interfaces/step/part/runStepPartAction\";\nimport { RunStepPart } from \"@jield/solodb-typescript-core/run/interfaces/step/runStepPart\";\nimport { RunStepPartActionEnum } from \"@jield/solodb-typescript-core/run/enum/runStepPartActionEnum\";\n\nexport default async function setRunStepPartAction({\n runStepPart,\n runStepPartAction,\n}: {\n runStepPart: RunStepPart;\n runStepPartAction: RunStepPartActionEnum;\n}): Promise {\n let url = \"create/run/step/part/action\";\n\n const response = await axios.post(url, {\n run_step_part_id: runStepPart.id,\n type: runStepPartAction,\n });\n const { data } = response;\n return data;\n}\n","import setRunStepPartAction from \"../api/step/part/setRunStepPartAction\";\nimport startStep from \"../api/step/startStep\";\nimport { RunStepPartActionEnum } from \"../enum/runStepPartActionEnum\";\nimport { RunStepPart } from \"../interfaces/step/runStepPart\";\n\n/*\n * Performs a action in a runStepPart \n * Also it makes sure the step state is what it should be\n */\nexport default async function performRunStepPartAction(part: RunStepPart, action: RunStepPartActionEnum) {\n const step = part.step;\n\n // start step if it isnt \n if (!step.is_started) {\n startStep(step); \n }\n \n return setRunStepPartAction({runStepPart: part, runStepPartAction: action});\n}\n","import finishStep from \"../api/step/finishStep\";\nimport { RunStepPartActionEnum } from \"../enum/runStepPartActionEnum\";\nimport { RunStep } from \"../interfaces/runStep\";\nimport { RunStepPart } from \"../interfaces/step/runStepPart\";\n\n/*\n * Returns false if the step state changes (its set to finish)\n */\nexport default async function finishStepWhenAllPartsAreFinished(\n step: RunStep,\n stepParts: RunStepPart[]\n): Promise {\n if (step.is_finished) {\n //Step has already finished\n return false;\n }\n\n if (stepParts.length <= 0) {\n return false;\n }\n\n for (const part of stepParts) {\n if (part.latest_action?.type.id !== RunStepPartActionEnum.FINISH_PROCESSING) {\n //One part hasnt finished\n return false;\n }\n }\n\n // Finish the step\n return finishStep(step)\n .then(() => {\n //Now the step is correctly finished\n return true;\n })\n .catch(() => {\n return false;\n });\n}\n","import axios from \"axios\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ServiceEventReportResult } from \"@jield/solodb-typescript-core/service/interfaces/service/event/report/serviceEventReportResult\";\n\nexport default async function listReportResult({ id }: { id: number }) {\n const searchParams = new URLSearchParams();\n\n if (id !== undefined) {\n searchParams.append(\"report\", id.toString());\n }\n\n let url = \"list/service/event/report/results?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return data._embedded.items;\n}\n","import axios from \"axios\";\nimport { ServiceEventReport } from \"@jield/solodb-typescript-core/service/interfaces/service/event/serviceEventReport\";\n\nexport default async function getServiceEventReport({ id }: { id: number }) {\n let response = await axios.get(\"view/service/event/report/\" + id);\n const { data } = response;\n return data;\n}\n","import axios from \"axios\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { ServiceEventReportResult } from \"@jield/solodb-typescript-core/service/interfaces/service/event/report/serviceEventReportResult\";\n\nexport default async function listServiceEventReportResult({ id }: { id: number }) {\n const searchParams = new URLSearchParams();\n\n searchParams.append(\"report\", id.toString());\n\n let url = \"list/service/event/report/results?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return data._embedded.items;\n}\n","import axios from \"axios\";\nimport { ApiFormattedResponse, ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\nimport { Service } from \"@jield/solodb-typescript-core/service/interfaces/service\";\n\nexport default async function listServices({\n equipmentId,\n}: {\n equipmentId?: number;\n}): Promise> {\n const searchParams = new URLSearchParams();\n\n if (equipmentId !== undefined) {\n searchParams.append(\"equipment\", equipmentId.toString());\n }\n\n let url = \"list/service?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n\n return {\n items: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n hasMore: data.page < data.page_count,\n };\n}\n","import axios from \"axios\";\nimport { Template } from \"@jield/solodb-typescript-core/template/interfaces/template\";\nimport { TemplateStep } from \"@jield/solodb-typescript-core/template/interfaces/templateStep\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function getTemplateSteps({ template, pageSize }: { template?: Template; pageSize?: number }) {\n const searchParams = new URLSearchParams();\n\n if (template !== undefined) {\n searchParams.append(\"template\", template.id.toString());\n }\n if (pageSize !== undefined) {\n searchParams.append(\"page_size\", pageSize.toString());\n }\n\n let url = \"list/template/step?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n steps: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n };\n}\n","import axios from \"axios\";\nimport { Recipe } from \"@jield/solodb-typescript-core/process/interfaces/module/recipe\";\nimport { Template } from \"@jield/solodb-typescript-core/template/interfaces/template\";\nimport { ApiResponse } from \"@jield/solodb-typescript-core/core/interfaces/response\";\n\nexport default async function listTemplates({ reworkRecipes }: { reworkRecipes?: Recipe[] }) {\n const searchParams = new URLSearchParams();\n\n if (reworkRecipes !== undefined) {\n //Add the rework recipe ids to the search params, in array notation\n reworkRecipes\n .map((recipe) => recipe.id)\n .forEach((id) => {\n searchParams.append(\"rework_recipe_id[]\", id.toString());\n });\n }\n\n let url = \"list/template?\" + searchParams.toString();\n\n const response = await axios.get>(url);\n const { data } = response;\n return {\n templates: data._embedded.items,\n amountOfPages: data.page_count,\n currentPage: data.page,\n totalItems: data.total_items,\n };\n}\n","import { MainChemical } from \"@jield/solodb-typescript-core/chemical/interfaces/mainChemical\";\nimport { SafetyStatement } from \"@jield/solodb-typescript-core/chemical/interfaces/safetyStatement\";\nimport { SafetyIcon } from \"@jield/solodb-typescript-core/chemical/interfaces/safetyIcon\";\n\nexport enum ChemicalStandardProductEnum {\n STANDARD_PRODUCT = 1,\n NON_STANDARD_PRODUCT = 2,\n}\n\nexport enum ChemicalPhysicalStateEnum {\n SOLID = 1,\n LIQUID = 2,\n GAS = 3,\n OTHER = 4,\n}\n\nexport interface Chemical {\n id: number;\n name: string;\n cas_number: string | null;\n chemical_formula: string | null;\n ehs_link: string | null;\n cmr: string[];\n description: string | null;\n is_standard_product: boolean;\n standard_product: ChemicalStandardProductEnum;\n physical_state: ChemicalPhysicalStateEnum;\n is_halogenated: boolean;\n contains_metals: boolean;\n main_chemical: MainChemical | null;\n safety_statement: SafetyStatement[];\n safety_icons: SafetyIcon[];\n}\n","import {Room} from \"@jield/solodb-typescript-core/room/interfaces/room\";\nimport {\n EquipmentModuleStatus\n} from \"@jield/solodb-typescript-core/equipment/interfaces/equipment/module/equipmentModuleStatus\";\nimport {EquipmentProperty} from \"./equipment/equipmentProperty\";\nimport {\n Setup,\n SetupWithoutMainEquipmentAndSetupEquipment\n} from \"@jield/solodb-typescript-core/equipment/interfaces/setup\";\nimport {Area} from \"@jield/solodb-typescript-core/location/interfaces/area\";\n\nexport enum EquipmentGrade {\n \"Equipment\" = 1,\n \"Accessory\" = 2,\n \"Storage\" = 3,\n}\n\nexport enum DashboardComponent {\n \"ProcessNextStepInEquipment\" = \"ProcessNextStepInEquipment\"\n}\n\n\nexport interface Equipment {\n id: number;\n name: string;\n number: string;\n mes_name: string;\n active: boolean;\n active_in_mes: boolean;\n reservation_possible: boolean;\n is_main_in_setup: boolean;\n setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n has_setup_equipment: boolean;\n is_in_fixed_setup: boolean;\n fixed_setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n is_in_active_setup: boolean;\n active_setup: SetupWithoutMainEquipmentAndSetupEquipment | null;\n main_tool_module_id: number | null;\n main_tool_latest_status?: EquipmentModuleStatus;\n is_available_for_rental: boolean;\n dashboard_components: DashboardComponent[];\n properties?: EquipmentProperty[];\n room: Room;\n types: string[];\n grade: EquipmentGrade;\n area: Area | null;\n}\n","import { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport enum EquipmentModuleIssueType {\n DEFAULT = 1,\n PRIORITY = 2,\n ESCALATION = 3,\n}\n\nexport enum EquipmentModuleIssueStatus {\n ACTIVE = 1,\n CLOSED = 2,\n}\n\nexport interface EquipmentModuleIssue {\n id: number;\n module_id: number;\n date_created: string;\n date_closed?: string;\n last_update?: string;\n issue: string;\n description: string;\n issue_type: EquipmentModuleIssueType;\n status: EquipmentModuleIssueStatus;\n owner: User;\n updated_by?: User;\n forecast_up: string;\n actions: string;\n attachments: number;\n}\n","import { User } from \"@jield/solodb-typescript-core/core/interfaces/user\";\n\nexport enum ShowIssuesOptionEnum {\n HIDE_ISSUES = 1,\n SHOW_ISSUES = 2,\n COLLAPSE_ISSUES = 3,\n}\n\nexport enum OrderOptionEnum {\n NAME = 1,\n MES_NAME = 2,\n NUMBER = 3,\n}\n\nexport enum ClassificationsOptionEnum {\n AREA = 1,\n AREA_PER_FACILITY = 2,\n ROOM = 3,\n}\n\nexport enum DirectionOptionEnum {\n ASC = \"ASC\",\n DESC = \"DESC\",\n}\n\nexport interface StatusMail {\n id: number;\n name: string;\n date_created: string;\n last_updated: string | null;\n filter: {\n messageType: string[];\n MESStatus: string[];\n };\n equipment_filter: string;\n sequence: number;\n show_issues_with_priority: boolean;\n show_in_navigation: boolean;\n show_tool_up: boolean;\n show_issues: ShowIssuesOptionEnum;\n show_reservations: boolean;\n classification: ClassificationsOptionEnum;\n order: OrderOptionEnum;\n direction: DirectionOptionEnum;\n user: User;\n to: string;\n cc: string;\n bcc: string;\n subject: string;\n}\n","import { BatchCard } from \"@jield/solodb-typescript-core/run/interfaces/run/batchCard\";\nimport { HoldCode } from \"@jield/solodb-typescript-core/run/interfaces/run/holdCode\";\nimport { Priority } from \"@jield/solodb-typescript-core/run/interfaces/run/priority\";\nimport { Project } from \"@jield/solodb-typescript-core/core/interfaces/project\";\nimport { RunStep } from \"@jield/solodb-typescript-core/run/interfaces/runStep\";\n\nexport enum RunTypeEnum {\n RESEARCH = 1,\n PRODUCTION = 2,\n}\n\nexport interface Run {\n id: number;\n label: string;\n name: string;\n amount_of_steps: number;\n run_type: RunTypeEnum;\n responsible: string;\n status: string;\n first_unfinished_step?: RunStep;\n last_finished_step?: RunStep;\n has_batch_card: boolean;\n batch_card?: BatchCard;\n hold_code?: HoldCode;\n priority?: Priority;\n project: Project;\n amount_root_parts: number;\n access: {\n edit: boolean;\n };\n}\n"],"names":["cleanFilterData","data","cleanedData","_","facet","getFilter","service","environment","formResult","searchParams","formData","url","response","axios","getMe","listUsers","query","selection","fileToBase64","file","resolve","reject","reader","result","configureAxiosHeaders","token","server_uri","getChemicalContainer","id","listChemicalContainerExternalLabels","qrCodeContent","listChemicalContainerMethodsOfUse","listChemicalContainerPurposes","listChemicalContainerTypes","listChemicals","getEquipment","getSetup","getStatusMail","listEquipment","run","room","statusMail","page","pageSize","filter","order","direction","listEquipmentStatus","listEcnAttachments","equipment","module","getEquipmentModule","listIssueAttachments","listEcn","listEquipmentModuleParameters","listIssues","listModules","listReservations","which","i","listLocationMessages","getLocation","getRoom","listLocations","listRooms","withLocations","getMonitor","listMonitorRequirements","equipmentId","monitorId","listMonitors","listMonitorRequirementResults","requirement","listMonitorRequirementResultMonitorStepParameterValues","listMonitorRequirementTargets","listMonitorStepFiles","step","listMonitorStepParameters","getRun","getRunStep","listRequirements","listRunChangelog","listRunParts","level","listRunSteps","listRuns","firstUnfinishedStepEquipment","RunStepPartActionEnum","getAvailableRunStepPartActions","runStepPart","latestActionId","actions","listMeasurementResults","measurement","listRunStepChecklistItems","runStep","startStep","finishStep","listRunStepFiles","listRunStepParameters","listRunStepParts","page_size","listRunStepPartActions","part","setRunStepPartAction","runStepPartAction","performRunStepPartAction","action","finishStepWhenAllPartsAreFinished","stepParts","listReportResult","getServiceEventReport","listServiceEventReportResult","listServices","getTemplateSteps","template","listTemplates","reworkRecipes","recipe","ChemicalStandardProductEnum","ChemicalPhysicalStateEnum","EquipmentGrade","DashboardComponent","EquipmentModuleIssueType","EquipmentModuleIssueStatus","ShowIssuesOptionEnum","OrderOptionEnum","ClassificationsOptionEnum","DirectionOptionEnum","RunTypeEnum"],"mappings":"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"} \ No newline at end of file diff --git a/dist/run/api/listRunParts.d.ts b/dist/run/api/listRunParts.d.ts index 3d8268a..d8ae7c1 100644 --- a/dist/run/api/listRunParts.d.ts +++ b/dist/run/api/listRunParts.d.ts @@ -1,6 +1,7 @@ import { RunPart } from '../interfaces/run/runPart'; import { ApiFormattedResponse } from '../../core/interfaces/response'; import { Run } from '../interfaces/run'; -export default function listRunParts({ run }: { +export default function listRunParts({ run, level }: { run: Run; + level?: number; }): Promise>; diff --git a/dist/run/api/step/finishStep.d.ts b/dist/run/api/step/finishStep.d.ts index 4fdaf14..3f5429c 100644 --- a/dist/run/api/step/finishStep.d.ts +++ b/dist/run/api/step/finishStep.d.ts @@ -1,3 +1,11 @@ import { RunStep } from '../../../index'; import { AxiosResponse } from 'axios'; +/** + * Finish a run step and return the updated step payload. + * + * Mirrors PATCH /api/update/run/step/finish/{id}. + * + * @param runStep - Run step to mark as finished. + * @throws Error when the run step is missing. + */ export default function finishStep(runStep: RunStep): Promise>; diff --git a/dist/run/api/step/startStep.d.ts b/dist/run/api/step/startStep.d.ts index 4ee8b69..bad3143 100644 --- a/dist/run/api/step/startStep.d.ts +++ b/dist/run/api/step/startStep.d.ts @@ -1,3 +1,11 @@ import { RunStep } from '../../../index'; import { AxiosResponse } from 'axios'; +/** + * Start a run step and return the updated step payload. + * + * Mirrors PATCH /api/update/run/step/start/{id}. + * + * @param runStep - Run step to mark as started. + * @throws Error when the run step is missing. + */ export default function startStep(runStep: RunStep): Promise>; diff --git a/dist/run/functions/finishStepWhenAllPartsAreFinished.d.ts b/dist/run/functions/finishStepWhenAllPartsAreFinished.d.ts new file mode 100644 index 0000000..9192713 --- /dev/null +++ b/dist/run/functions/finishStepWhenAllPartsAreFinished.d.ts @@ -0,0 +1,3 @@ +import { RunStep } from '../interfaces/runStep'; +import { RunStepPart } from '../interfaces/step/runStepPart'; +export default function finishStepWhenAllPartsAreFinished(step: RunStep, stepParts: RunStepPart[]): Promise; diff --git a/dist/run/functions/performRunStepPartAction.d.ts b/dist/run/functions/performRunStepPartAction.d.ts new file mode 100644 index 0000000..7634b74 --- /dev/null +++ b/dist/run/functions/performRunStepPartAction.d.ts @@ -0,0 +1,3 @@ +import { RunStepPartActionEnum } from '../enum/runStepPartActionEnum'; +import { RunStepPart } from '../interfaces/step/runStepPart'; +export default function performRunStepPartAction(part: RunStepPart, action: RunStepPartActionEnum): Promise; diff --git a/dist/run/interfaces/runStep.d.ts b/dist/run/interfaces/runStep.d.ts index d97c878..1aca27c 100644 --- a/dist/run/interfaces/runStep.d.ts +++ b/dist/run/interfaces/runStep.d.ts @@ -22,6 +22,9 @@ export interface RunStep { is_finished: boolean; finish_user?: User; finish_date?: string; + is_started: boolean; + start_user?: User; + start_date?: string; tags: string[]; amount_of_files: number; has_instructions: boolean; diff --git a/package.json b/package.json index ae5160d..90545de 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jield/solodb-typescript-core", - "version": "1.0.9", + "version": "1.0.10", "type": "module", "repository": "jield-webdev/solodb-typescript-core", "main": "./dist/index.cjs", diff --git a/src/index.ts b/src/index.ts index 3703d46..07da632 100644 --- a/src/index.ts +++ b/src/index.ts @@ -66,6 +66,8 @@ export { default as listRunStepParameters } from "./run/api/step/listRunStepPara export { default as listRunStepParts } from "./run/api/step/listRunStepParts"; export { default as listRunStepPartActions } from "./run/api/step/part/listRunStepPartActions"; export { default as setRunStepPartAction } from "./run/api/step/part/setRunStepPartAction"; +export { default as performRunStepPartAction } from "./run/functions/performRunStepPartAction"; +export { default as finishStepWhenAllPartsAreFinished } from "./run/functions/finishStepWhenAllPartsAreFinished"; // service / template export { default as listReportResult } from "./service/api/getReportResult"; diff --git a/src/run/functions/finishStepWhenAllPartsAreFinished.ts b/src/run/functions/finishStepWhenAllPartsAreFinished.ts new file mode 100644 index 0000000..f234ac3 --- /dev/null +++ b/src/run/functions/finishStepWhenAllPartsAreFinished.ts @@ -0,0 +1,38 @@ +import finishStep from "../api/step/finishStep"; +import { RunStepPartActionEnum } from "../enum/runStepPartActionEnum"; +import { RunStep } from "../interfaces/runStep"; +import { RunStepPart } from "../interfaces/step/runStepPart"; + +/* + * Returns false if the step state changes (its set to finish) + */ +export default async function finishStepWhenAllPartsAreFinished( + step: RunStep, + stepParts: RunStepPart[] +): Promise { + if (step.is_finished) { + //Step has already finished + return false; + } + + if (stepParts.length <= 0) { + return false; + } + + for (const part of stepParts) { + if (part.latest_action?.type.id !== RunStepPartActionEnum.FINISH_PROCESSING) { + //One part hasnt finished + return false; + } + } + + // Finish the step + return finishStep(step) + .then(() => { + //Now the step is correctly finished + return true; + }) + .catch(() => { + return false; + }); +} diff --git a/src/run/functions/performRunStepPartAction.ts b/src/run/functions/performRunStepPartAction.ts new file mode 100644 index 0000000..c0d7913 --- /dev/null +++ b/src/run/functions/performRunStepPartAction.ts @@ -0,0 +1,19 @@ +import setRunStepPartAction from "../api/step/part/setRunStepPartAction"; +import startStep from "../api/step/startStep"; +import { RunStepPartActionEnum } from "../enum/runStepPartActionEnum"; +import { RunStepPart } from "../interfaces/step/runStepPart"; + +/* + * Performs a action in a runStepPart + * Also it makes sure the step state is what it should be + */ +export default async function performRunStepPartAction(part: RunStepPart, action: RunStepPartActionEnum) { + const step = part.step; + + // start step if it isnt + if (!step.is_started) { + startStep(step); + } + + return setRunStepPartAction({runStepPart: part, runStepPartAction: action}); +} From 6e89acdd21afaad7c607ca791cf118ecc0bc6e5d Mon Sep 17 00:00:00 2001 From: pedrofm Date: Wed, 25 Feb 2026 15:14:27 +0100 Subject: [PATCH 2/2] Fix yarn lint issue --- src/run/functions/performRunStepPartAction.ts | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/run/functions/performRunStepPartAction.ts b/src/run/functions/performRunStepPartAction.ts index c0d7913..78de5ab 100644 --- a/src/run/functions/performRunStepPartAction.ts +++ b/src/run/functions/performRunStepPartAction.ts @@ -4,16 +4,19 @@ import { RunStepPartActionEnum } from "../enum/runStepPartActionEnum"; import { RunStepPart } from "../interfaces/step/runStepPart"; /* - * Performs a action in a runStepPart + * Performs a action in a runStepPart * Also it makes sure the step state is what it should be */ -export default async function performRunStepPartAction(part: RunStepPart, action: RunStepPartActionEnum) { - const step = part.step; +export default async function performRunStepPartAction( + part: RunStepPart, + action: RunStepPartActionEnum, +): Promise { + const step = part.step; - // start step if it isnt - if (!step.is_started) { - startStep(step); - } - - return setRunStepPartAction({runStepPart: part, runStepPartAction: action}); + // start step if it isnt + if (!step.is_started) { + await startStep(step); + } + + await setRunStepPartAction({ runStepPart: part, runStepPartAction: action }); }