PageSourceSearch

https://eqwecare.se/assets/index-BwPOM2he.js

js eqwecare.se collected 2026-10-02 02:08:48 UTC 14,820 bytes, 1 lines download raw bytes

1import{u as ue,s as xe,a as fe,r as u,f as S,eI as je,z as x,h as E,j as e,B as f,S as B,n as p,eS as Te,eT as ve,eU as ye,eV as Me}from"./index-BvNIJ_c2.js";import{l as Ne}from"./react-confirm-alert-NpWCizfT.js";import{L as Ce}from"./index-Dd_NvOz0.js";import{R as W}from"./index-Cza-r62S.js";import{S as Se}from"./index-BzgTom0c.js";import{S as Ee,a as X}from"./templateSections-DRl2uXBE.js";import{J as Z}from"./journalSections-DEjqDthR.js";import{C as ke}from"./Container-CWZdGT18.js";import{C as k}from"./Card-DEsHlakG.js";import{T as we}from"./Table-DguSmn-i.js";import{B as N}from"./NavbarContext-C9kG8e2O.js";import"./profile1-DX-Es6KB.js";import"./Anchor-C0wshJja.js";import"./index-Laxbxmnr.js";import"./navigationConfig-DMPz6vwn.js";import"./NavIcon-CE0lX41N.js";import"./index-IEJD0KmR.js";import"./Image-y3xwkAif.js";import"./Tab-B5OAj-R1.js";import"./Nav-Tj50dJFm.js";import"./CardHeaderContext-CfKayEkG.js";import"./useAiChatStore-DgcBp8ir.js";import"./Accordion-D_0nm-qM.js";import"./Collapse-CpsUO_C8.js";const ea=()=>{const{t}=ue(),[K]=xe(),ee=fe(),v=K.get("type"),[U,ae]=u.useState([]),[te,z]=u.useState(!1),[y,w]=u.useState(!1),[se,F]=u.useState(!1),[ne,D]=u.useState(!1),[le,O]=u.useState(null),_=()=>v==="followUpEmail"?"followUpEmail":"standard",I=u.useMemo(()=>v==="followUpEmail"?{title:t("Sidebar.FollowUpEmails"),icon:"bi-envelope",pageTitle:t("Sidebar.FollowUpEmails")}:{title:t("Sidebar.JournalTemplates"),icon:"bi-journal-text",pageTitle:t("Sidebar.JournalTemplates")}
1,[v,t]),T=a=>({templateName:"",templateType:a||_(),sections:{},emailSubject:"",emailMessage:"",anamnesis:"",findingsInMotion:"",findingsInPalpation:"",notes:"",generalHealthCondition:"",recommendations:"",hovslagareData:null}),[h,b]=u.useState(T());u.useEffect(()=>{C()},[v]);const C=async()=>{z(!0);try{const{data:a}=await S.get(je.endPoint());ae(a.result||[])}catch(a){x.error(E(a))}finally{z(!1)}},P=a=>{const{name:s,value:n}=a.target;b(l=>({...l,[s]:n}))},R=a=>{b(s=>({...s,templateType:a,sections:{}}))},ie=u.useCallback((a,s)=>{b(n=>{var l;return{...n,sections:{...n.sections,[a]:{...n.sections[a],enabled:s,data:((l=n.sections[a])==null?void 0:l.data)||{}}}}})},[]),re=u.useCallback((a,s,n)=>{b(l=>{var i,o;return{...l,sections:{...l.sections,[a]:{...l.sections[a],enabled:((i=l.sections[a])==null?void 0:i.enabled)??!1,data:{...(o=l.sections[a])==null?void 0:o.data,[s]:n}}}}})},[]),A=()=>{const{templateName:a,templateType:s,sections:n,emailSubject:l,emailMessage:i}=h,o={templateName:a,templateType:s};if(s==="followUpEmail")return o.emailSubject=l,o.emailMessage=i,o;const c=Object.entries(n).filter(([m,g])=>g.enabled).map(([m,g],r)=>({sectionKey:m,isEnabled:!0,order:r}));if(o.sections=c,s==="standard")Object.entries(n).forEach(([m,g])=>{if(g.enabled&&g.data){const r=X[m];(r==null?void 0:r.fieldType)==="textarea"&&g.data[m]&&(o[m]=g.data[m])}});else if(s==="hovslagare"){const m={};Object.entries(n).forEach(([g,r])=>{if(r.enabled&&r.data){const d=X[g];(d==null?void 0:d.fieldType)==="multi"&&d.fields&&d.fields.forEach(M=>{r.data[M.key]&&(m[M.key]=r.data[M.key])}),(d==null?void 0:d.fieldType)==="grid"&&(r.data.hovbedomning&&(m.hovbedomning=r.data.hovbedomning),r.data.ovrigaObservationer&&(m.ovrigaObservationer=r.data.ovrigaObservationer))}}),Object.keys(m).length>0&&(o.hovslagareData=m)}return o},oe=a=>{var l;const s=a.templateType||"standard",n={};if(s==="followUpEmail")return{templateName:a.templateName,templateType:s,sections:{},emailSubject:a.emailSubject||"",emailMessage:a.emailMessage||"",anamnesis:"",findingsInMotion:"",findingsInPalpation:"",notes:"",generalHealthCondition:"",recommendations:"",hovslagareData:null};if(s==="standard"){["anamnesis","findingsInMotion","findingsInPalpation","notes","generalHealthCondition","recommendations"].forEach(c=>{var r;const m=a[c]&&a[c].trim()!=="",g=(r=a.sections)==null?void 0:r.some(d=>d.sectionKey===c&&d.isEnabled);n[c]={enabled:g||m,data:{[c]:a[c]||""}}});const o=(l=a.sections)==null?void 0:l.some(c=>c.sectionKey==="treatments"&&c.isEnabled);n.treatments={enabled:o||!1,data:{}}}else if(s==="hovslagare"){const i=a.hovslagareData||{};Object.entries({konsultation:["konsultationPlats","orsakTillBesok"],hovbedomning:[],atgarder:["atgardBeskrivning","atgardMotivering","atgardMaterial"],bedomning:["differentialdiagnos"],prognos:["prognos","planNastaBesok"]}).forEach(([c,m])=>{var M;let g=m.some(j=>i[j]&&i[j].trim()!=="");const r=(M=a.sections)==null?void 0:M.some(j=>j.sectionKey===c&&j.isEnabled),d={};m.forEach(j=>{d[j]=i[j]||""}),c==="hovbedomning"&&(i.hovbedomning&&(d.hovbedomning=i.hovbedomning),d.ovrigaObservationer=i.ovrigaObservationer||"",g=Object.values(i.hovbedomning||{}).some(j=>Object.values(j||{}).some(Q=>Q&&String(Q).trim()!==""))||d.ovrigaObservationer.trim()!==""),n[c]={enabled:r||g,data:d}})}return{templateName:a.templateName,templateType:s,sections:n,emailSubject:a.emailSubject||"",emailMessage:a.emailMessage||"",anamnesis:a.anamnesis||"",findingsInMotion:a.findingsInMotion||"",findingsInPalpation:a.findingsInPalpation||"",notes:a.notes||"",generalHealthCondition:a.generalHealthCondition||"",recommendations:a.recommendations||"",hovslagareData:a.hovslagareData||null}},me=async()=>{var a;if(!h.templateName.trim()){x.error(t("templateManagement.errors.nameRequired"));return}if(h.templateType==="followUpEmail"&&!((a=h.emailMessage)!=null&&a.trim())){x.error(t("templateManagement.errors.emailMessageRequired"));return}w(!0);try{const s=A(),{data:n}=await S.post(Te.endPoint(),s);x.success(n.message||t("templateManagement.messages.created")),F(!1),b(T()),C()}catch(s){x.error(E(s))}finally{w(!1)}},ce=async()=>{var a;
1if(!h.templateName.trim()){x.error(t("templateManagement.errors.nameRequired"));return}if(h.templateType==="followUpEmail"&&!((a=h.emailMessage)!=null&&a.trim())){x.error(t("templateManagement.errors.emailMessageRequired"));return}w(!0);try{const s=A(),{data:n}=await S.put(ve.endPoint(le._id),s);x.success(n.message||t("templateManagement.messages.updated")),D(!1),O(null),b(T()),C()}catch(s){x.error(E(s))}finally{w(!1)}},J=(a,s)=>{Ne.confirmAlert({title:t("templateManagement.confirmDelete.title"),message:`${t("templateManagement.confirmDelete.message")} "${s}"?`,buttons:[{label:t("CommonText.Yes"),onClick:async()=>{try{const{data:n}=await S.delete(Me.endPoint(a));x.success(n.message||t("templateManagement.messages.deleted")),C()}catch(n){x.error(E(n))}}},{label:t("CommonText.No")}]})},$=async a=>{try{await S.patch(ye.endPoint(a)),C()}catch(s){x.error(E(s))}},H=()=>{const a=_();b(T(a)),F(!0)},L=a=>{if(a.templateType==="automatic"&&a.serviceId){ee(`/inventory-management/service/${a.serviceId}/template-management`);return}O(a),b(oe(a)),D(!0)},G=u.useMemo(()=>v==="followUpEmail"?U.filter(a=>a.templateType==="followUpEmail"):U.filter(a=>a.templateType==="standard"||a.templateType==="hovslagare"||a.templateType==="automatic"||!a.templateType),[U,v]),de=G.filter(a=>!a.isGlobal),pe=G.filter(a=>a.isGlobal),q=({templateType:a})=>a==="automatic"?e.jsx(N,{bg:"success",className:"ms-2 template-type-badge",children:t("templateManagement.labels.automatic")}):a==="hovslagare"?e.jsx(N,{bg:"warning",text:"dark",className:"ms-2 template-type-badge",children:t("templateManagement.labels.farrier")}):a==="followUpEmail"?e.jsx(N,{bg:"info",className:"ms-2 template-type-badge",children:t("templateManagement.labels.followUpEmail")}):e.jsx(N,{bg:"secondary",className:"ms-2 template-type-badge",children:t("templateManagement.labels.standard")}),ge=(a,s)=>{const i=(Z[s==="hovslagare"?"hovslagare":"standard"]||Z.standard).find(o=>o.key===a);return(i==null?void 0:i.icon)||null},V=(a=!1)=>{var l;const s=h.templateType,n=Ee[s]||{};return e.jsxs(e.Fragment,{children:[e.jsxs(p.Group,{className:"mb-3",children:[e.jsxs(p.Label,{children:[t("templateManagement.form.templateName")," *"]}),e.jsx(p.Control,{type:"text",name:"templateName",value:h.templateName||"",onChange:P,placeholder:t("templateManagement.form.templateNamePlaceholder")})]}),!v&&e.jsxs(p.Group,{className:"mb-4",children:[e.jsx(p.Label,{children:t("templateManagement.form.templateType")}),e.jsxs("div",{className:"template-type-selector",children:[e.jsx(p.Check,{type:"radio",id:"templateType-standard",name:"templateType",label:t("templateManagement.form.standardTemplate"),checked:s==="standard",onChange:()=>R("standard"),disabled:a,className:"template-type-radio"}),e.jsx(p.Check,{type:"radio",id:"templateType-hovslagare",name:"templateType",label:t("templateManagement.form.farrierTemplate"),checked:s==="hovslagare",onChange:()=>R("hovslagare"),disabled:a,className:"template-type-radio"})]}),a&&e.jsxs(p.Text,{className:"text-muted",children:[e.jsx("i",{className:"bi bi-info-circle me-1"}),t("templateManagement.hints.typeCannotChange")]})]}),s==="followUpEmail"&&e.jsxs(e.Fragment,{children:[e.jsxs(p.Group,{className:"mb-3",children:[e.jsx(p.Label,{children:t("templateManagement.form.emailSubject")}),e.jsx(p.Control,{type:"text",name:"emailSubject",value:h.emailSubject||"",onChange:P,placeholder:t("templateManagement.form.emailSubjectPlaceholder")})]}),e.jsxs(p.Group,{className:"mb-3",children:[e.jsxs(p.Label,{children:[t("templateManagement.form.emailMessage")," *"]}),e.jsx(p.Control,{as:"textarea",rows:6,name:"emailMessage",value:h.emailMessage||"",onChange:P,placeholder:t("templateManagement.form.emailMessagePlaceholder")}),e.jsxs(p.Text,{className:"text-muted",children:[((l=h.emailMessage)==null?void 0:l.length)||0,"/2000 ",t("CommonText.Characters")]})]})]}),s!=="followUpEmail"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"section-selection-header mb-3",children:e.jsxs("h6",{className:"mb-0",children:[e.jsx("i",{className:"bi bi-list-check me-2"}),t("templateManagement.form.selectSections")]})}),Object.entries(n).map(([i,o],c)=>e.jsx(Se,{groupKey:i,labelKey:o.labelKey,icon:ge(i,s),sections:o.sections,sectionsState:h.sections,onSectionToggle:ie,onSectionDataChange:re,defaultExpanded:c===0},i))]})]})},he=({template:a})=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx(f,{variant:"link",className:"p-0 text-warning",onClick:()=>$(a._id),children:e.jsx("i",{className:`bi bi-star${a.isFavorite?"-fill":""}`})})}),e.jsxs("td",{children:[e.jsx("strong",{children:a.templateName}),a.isGlobal&&e.jsx(N,{bg:"info",className:"ms-2",children:t("templateManagement.labels.global")}),e.jsx(q,{templateType:a.templateType||"standard"})]}),e.jsx("td",{children:a.usageCount||0}),e.jsx("td",{children:e.jsx("div",{className:"d-flex gap-2",children:!a.isGlobal&&e.jsxs(e.Fragment,{children:[e.jsx(f,{size:"sm",variant:"outline-primary",onClick:()=>L(a),title:t("CommonText.Edit"),children:e.jsx("i",{className:"bi bi-pencil"})}),e.jsx(f,{size:"sm",variant:"outline-danger",onClick:()=>J(a._id,a.templateName),title:t("CommonText.Delete"),children:e.jsx("i",{className:"bi bi-trash"})})]})})})]}),be=({template:a})=>e.jsxs("div",{className:"template-card",children:[e.jsxs("div",{className:"template-card-header",children:[e.jsxs("div",{className:"template-card-title",children:[e.jsx(f,{variant:"link",className:"p-0 text-warning me-2",onClick:()=>$(a._id),children:e.jsx("i",{className:`bi bi-star${a.isFavorite?"-fill":""}`})}),e.jsx("strong",{children:a.templateName}),a.isGlobal&&e.jsx(N,{bg:"info",className:"ms-2",children:t("templateManagement.labels.global")}),e.jsx(q,{templateType:a.templateType||"standard"})]}),e.jsxs("span",{className:"template-card-usage",children:[t("templateManagement.labels.used"),": ",a.usageCount||0]})]}),!a.isGlobal&&e.jsxs("div",{className:"template-card-actions",children:[e.jsxs(f,{size:"sm",variant:"outline-primary",onClick:()=>L(a),children:[e.jsx("i",{className:"bi bi-pencil me-1"}),t("CommonText.Edit")]}),e.jsxs(f,{size:"sm",variant:"outline-danger",onClick:()=>J(a._id,a.templateName),children:[e.jsx("i",{className:"bi bi-trash me-1"}),t("CommonText.Delete")]})]})]}),Y=(a,s,n)=>a.length===0?null:e.jsxs(k,{className:"mb-4",children:[e.jsx(k.Header,{children:e.jsxs("h5",{className:"mb-0",children:[e.jsx("i",{className:`bi ${n} me-2`}),s]})}),e.jsxs(k.Body,{className:"p-0",children:[e.jsx("div",{className:"template-table-view",children:e.jsxs(we,{responsive:!0,hover:!0,className:"mb-0",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{style:{width:"50px"}}),e.jsx("th",{children:t("templateManagement.table.name")}),e.jsx("th",{children:t("templateManagement.table.used")}),e.jsx("th",{style:{width:"120px"},children:t("templateManagement.table.actions")})]})}
1),e.jsx("tbody",{children:a.map(l=>e.jsx(he,{template:l},l._id))})]})}),e.jsx("div",{className:"template-card-view",children:a.map(l=>e.jsx(be,{template:l},l._id))})]})]});return e.jsx(Ce,{pageTitle:I.pageTitle,children:e.jsxs(ke,{fluid:!0,className:"template-management-container py-4",children:[e.jsxs("div",{className:"template-header",children:[e.jsxs("h2",{children:[e.jsx("i",{className:`bi ${I.icon} me-2`}),I.title]}),e.jsxs(f,{variant:"success",onClick:H,children:[e.jsx("i",{className:"bi bi-plus-circle me-2"}),e.jsx("span",{className:"btn-text",children:t("templateManagement.buttons.createNew")})]})]}),te?e.jsxs("div",{className:"text-center py-5",children:[e.jsx(B,{animation:"border",variant:"primary"}),e.jsx("p",{className:"mt-2",children:t("templateManagement.loading")})]}):e.jsxs(e.Fragment,{children:[Y(de,t("templateManagement.sections.myTemplates"),"bi-person-circle"),Y(pe,t("templateManagement.sections.systemTemplates"),"bi-globe"),G.length===0&&e.jsx(k,{children:e.jsxs(k.Body,{className:"text-center py-5 text-muted",children:[e.jsx("i",{className:`bi ${I.icon}`,style:{fontSize:"3rem"}}),e.jsx("p",{className:"mt-3",children:t("templateManagement.empty")}),e.jsxs(f,{variant:"success",onClick:H,children:[e.jsx("i",{className:"bi bi-plus-circle me-2"}),t("templateManagement.buttons.createFirst")]})]})})]}),e.jsx(W,{id:"createTemplateModal",isOpen:se,onClose:()=>{F(!1),b(T())},title:t("templateManagement.modal.createTitle"),size:"lg",footerButtons:e.jsxs(e.Fragment,{children:[e.jsx(f,{variant:"secondary",onClick:()=>{F(!1),b(T())},disabled:y,children:t("CommonText.Cancel")}),e.jsx(f,{variant:"success",onClick:me,disabled:y,children:y?e.jsxs(e.Fragment,{children:[e.jsx(B,{size:"sm",className:"me-2"}),t("CommonText.Saving")]}):t("templateManagement.buttons.create")})]}),children:V(!1)}),e.jsx(W,{id:"editTemplateModal",isOpen:ne,onClose:()=>{D(!1),O(null),b(T())},title:t("templateManagement.modal.editTitle"),size:"lg",footerButtons:e.jsxs(e.Fragment,{children:[e.jsx(f,{variant:"secondary",onClick:()=>{D(!1),O(null),b(T())},disabled:y,children:t("CommonText.Cancel")}),e.jsx(f,{variant:"primary",onClick:ce,disabled:y,children:y?e.jsxs(e.Fragment,{children:[e.jsx(B,{size:"sm",className:"me-2"}),t("CommonText.Saving")]}):t("templateManagement.buttons.save")})]}),children:V(!0)})]})})};export{ea as default};

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