1import{_ as ae,f as ie,u as oe,Q as le,g as re,q as de,h as ue,c as v,b as w,w as k,Z as ce,r as m,D as me,i as pe,o as y,a as t,e as fe,d as l,$ as d,F as L,m as P,k as n,K as F,t as r,a0 as S,a1 as E,a2 as ge,a3 as ve,a4 as N,z as G,a5 as W,T as H}from"./DZ4JMdR0.js";import{u as ye}from"./CwuQqheP.js";const be={class:"intro text-22 pb-50"},_e={class:"grv-status"},he={class:"grv-summary__list text-22"},xe=["href","onClick"],we={class:"sr-only",role:"status"},ke={class:"fld"},Se=["aria-invalid"],Ee={id:"g-name-err",class:"fld__err text-20"},Te={class:"fld"},qe=["aria-invalid"],$e={id:"g-email-err",class:"fld__err text-20"},Ie={class:"fld fld--group","aria-describedby":"g-rel-err"},Ce=["id","value"],Le=["for"],Pe={id:"g-rel-err",class:"fld__err text-20"},Re={class:"fld"},Be=["aria-invalid"],Ue=["value"],Ve={id:"g-category-err",class:"fld__err text-20"},Me={class:"fld"},Oe={id:"g-details-hint",class:"fld__hint text-20"},Ae=["aria-invalid"],De={id:"g-details-count",class:"fld__count text-20","aria-hidden":"true"},Fe={class:"sr-only",role:"status"},Ne={id:"g-details-err",class:"fld__err text-20"},Ge={class:"fld fld--check"},We={class:"fld__choice"},He={class:"fld fld--check"},Ye={class:"fld__choice"},Ke=["aria-invalid"],je={id:"g-consent-hint",class:"fld__hint text-20"},ze={id:"g-consent-err",class:"fld__err text-20"},Qe={class:"sr-only","aria-hidden":"true"},Xe=["aria-disabled"],R=2e3,Ze=20,Je={__name:"grievance-form",setup(et){const{$gsap:T,$bus:B}=ie();ye(),oe({title:"Raise a grievance â Post Op",meta:[{name:"description",content:"Submit a grievance to Post Op. Concerns are acknowledged with a case reference within 5 working days and handled under our Grievance Policy."}]});const Y=[{value:"employee",label:"Employee"},{value:"contractor",label:"Contractor or agency worker"},{value:"supplier",label:"Supplier or business partner"},{value:"community",label:"Local community member"},{value:"patient",label:"Patient or customer"},{value:"other",label:"Something else"}],K=["Terms and conditions of employment or labour rights","Health and safety","Bullying, harassment or discrimination","Environmental or community impact","Procurement practices or ethical breaches","Something else"],j=/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/,b={name:s=>String(s).trim().length>=2?"":"Enter your full name",email:s=>String(s).trim()?j.test(String(s).trim())?"":"Enter an email address in the format [email protected]":"Enter your email address",relationship:s=>s?"":"Select the option that describes your relationship to Post Op",category:s=>s?"":"Select what your grievance is about",details:s=>String(s).trim().length>
1=Ze?"":"Describe what happened, in at least a sentence or two",consent:s=>s?"":"Select the checkbox to confirm and accept the privacy policy"},z={name:"g-name",email:"g-email",relationship:"g-rel-employee",category:"g-category",details:"g-details",consent:"g-consent"},i=W({name:"",email:"",relationship:"",category:"",details:"",confidential:!1,consent:!1,website:""}),o=W({name:"",email:"",relationship:"",category:"",details:"",consent:""}),_=s=>{o[s]=b[s](i[s])},p=s=>{o[s]&&(o[s]=b[s](i[s]))},U=H(()=>R-i.details.length),Q=H(()=>`${U.value.toLocaleString("en-GB")} characters remaining`),V=m("");let f=null;const X=()=>{p("details"),f&&clearTimeout(f),f=setTimeout(()=>{V.value=`You have ${U.value.toLocaleString("en-GB")} characters remaining.`},1e3)},u=m("idle"),q=m([]),g=m(""),h=m(""),M=m(null),O=m(null),Z=ce().public.grievanceBackend,J=le(),$=s=>{if(!s)return;s.focus({preventScroll:!0});const e=window.lenis||window.$lenis;e&&typeof e.scrollTo=="function"?e.scrollTo(s,{offset:-120}):s.scrollIntoView({block:"center",behavior:"smooth"})},A=s=>{$(document.getElementById(s))},ee=async()=>{if(u.value==="sending")return;const s=[];for(const e of Object.keys(b)){const c=b[e](i[e]);o[e]=c,c&&s.push({id:z[e],msg:c})}if(q.value=s,s.length){g.value="",u.value="idle",await G(),s.length>1?$(M.value):A(s[0].id);return}u.value="sending",g.value="",h.value="Sending your grievance, please wait.";try{if(Z!=="netlify")throw new Error("grievance form has no backend on this deployment");const e=new URLSearchParams({"form-name":"grievance",name:i.name,email:i.email,relationship:i.relationship,category:i.category,details:i.details,confidential:i.confidential?"yes":"no",consent:i.consent?"yes":"no",website:i.website||""}),c=await fetch(J.path,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e.toString()});if(!c.ok)throw new Error(`grievance form POST responded ${c.status}`);h.value="",u.value="sent",await G(),$(O.value)}catch(e){console.error("[grievance] submit failed",e),h.value="",u.value="error",g.value="Your grievance could not be sent. Check your connection and try again, or email [email protected] directly."}},{transitionState:te,toggleTransitionReady:ne}=pe(),x=m(null),I=m(null),D=()=>{x.value&&(I.value=T.context(()=>{T.to(x.value,{y:0,ease:"sine.out",duration:.6,delay:.1,immediateRender:!1,onStart:ne})}))};return re(()=>te.transitionComplete,(s,e)=>{s!==e&&D()}),de(()=>{T.set(x.value,{y:24}),B.$on("preloaderExit",()=>{B.$off("preloaderExit"),D()})}),ue(()=>{f&&clearTimeout(f),I.value&&I.value.revert()}),(s,e)=>{const c=fe,se=me;return y(),v("div",null,[w(se,{name:"default"},{default:k(()=>[t("div",{ref_key:"content",ref:x,class:"content grv max-w-screen-hd text-18 site-px pt-150 ds:pt-200 mx-auto text-blue1"},[w(c,{to:"/governance/grievance",class:"back-link font-ms-sb text-16 text-blue1 inline-flex items-center gap-x-10 mb-30"},{default:k(()=>[...e[17]||(e[17]=[t("span",{"aria-hidden":"true"},"â",-1),l(" Grievance Policy ",-1)])]),_:1}),e[38]||(e[38]=t("h1",{class:"text-50 font-ms-sb pb-15"},"Raise a grievance",-1)),e[39]||(e[39]=t("p",{class:"intro text-22 pb-15"}," Use this form to raise a concern, problem or complaint about our business operations. Anyone may use it â employees, contractors, suppliers, patients, and members of the communities we work in. ",-1)),t("p",be,[e[19]||(e[19]=l(" We confirm receipt and assign a case reference within 5 working days. The ",-1)),w(c,{to:"/governance/grievance"},{default:k(()=>[...e[18]||(e[18]=[l("Grievance Policy",-1)])]),_:1}),e[20]||(e[20]=l(" sets out how your submission is investigated, the timelines we work to, and your right to appeal. ",-1))]),t("div",_e,[d(t("div",{ref_key:"summaryEl",ref:M,class:"grv-summary",tabindex:"-1"},[e[21]||(e[21]=t("h2",{class:"text-32 font-ms-b"},"There is a problem",-1)),t("ul",he,[(y(!0),v(L,null,P(n(q),a=>(y(),v("li",{key:a.id},[t("a",{href:`#${a.id}`,onClick:F(C=>A(a.id),["prevent"])},r(a.msg),9,xe)]))),128))])],512),[[S,n(u)!=="sent"&&n(q).length>1]]),d(t("div",{ref_key:"successEl",ref:O,class:"grv-summary grv-summary--ok",tabindex:"-1"},[...e[22]||(e[22]=[t("h2",{class:"text-32 font-ms-b"},"Thank you â your grievance has been submitted.",-1),t("p",{class:"text-22 mt-10"},[l(" We will confirm receipt and give you a case reference within 5 working days, using the email address you provided. If you do not hear from us, contact "),t("a",{href:"mailto:[email protected]"},"[email protected]"),l(". ")],-1)])],512),[[S,n(u)==="sent"]]),d(t("p",{class:"grv-async text-22",role:"alert"},r(n(g)),513),[[S,n(g)]]),t("p",we,r(n(h)),1)]),d(t("form",{name:"grievance",method:"POST","data-netlify":"true","netlify-honeypot":"website",class:"grv-form",novalidate:"",onSubmit:F(ee,["prevent"])},[e[35]||(e[35]=t("input",{type:"hidden",name:"form-name",value:"grievance"},null,-1)),e[36]||(e[36]=t("p",{class:"grv-key text-20"},"All fields marked (required) must be completed.",-1)),t("div",ke,[e[23]||(e[23]=t("label",{class:"fld__label text-22 font-ms-sb",for:"g-name"},[l(" Full name "),t("span",{class:"fld__req font-ms-r"},"(required)")],-1)),d(t("input",{id:"g-name","onUpdate:modelValue":e[0]||(e[0]=a=>n(i).name=a),name:"name",type:"text",class:"fld__input text-22",maxlength:"120",autocomplete:"name",required:"","aria-required":"true","aria-describedby":"g
1-name-err","aria-invalid":n(o).name?"true":"false",onBlur:e[1]||(e[1]=a=>_("name")),onInput:e[2]||(e[2]=a=>p("name"))},null,40,Se),[[E,n(i).name]]),t("p",Ee,r(n(o).name),1)]),t("div",Te,[e[24]||(e[24]=t("label",{class:"fld__label text-22 font-ms-sb",for:"g-email"},[l(" Email address "),t("span",{class:"fld__req font-ms-r"},"(required)")],-1)),e[25]||(e[25]=t("p",{id:"g-email-hint",class:"fld__hint text-20"}," We use this only to acknowledge your grievance and keep you updated. Format: [email protected] ",-1)),d(t("input",{id:"g-email","onUpdate:modelValue":e[3]||(e[3]=a=>n(i).email=a),name:"email",type:"email",class:"fld__input text-22",maxlength:"200",inputmode:"email",spellcheck:"false",autocomplete:"email",required:"","aria-required":"true","aria-describedby":"g-email-hint g-email-err","aria-invalid":n(o).email?"true":"false",onBlur:e[4]||(e[4]=a=>_("email")),onInput:e[5]||(e[5]=a=>p("email"))},null,40,qe),[[E,n(i).email]]),t("p",$e,r(n(o).email),1)]),t("fieldset",Ie,[e[26]||(e[26]=t("legend",{class:"fld__label text-22 font-ms-sb"},[l(" Your relationship to Post Op "),t("span",{class:"fld__req font-ms-r"},"(required)")],-1)),(y(),v(L,null,P(Y,a=>t("div",{key:a.value,class:"fld__choice"},[d(t("input",{id:`g-rel-${a.value}`,"onUpdate:modelValue":e[6]||(e[6]=C=>n(i).relationship=C),type:"radio",name:"relationship",value:a.value,required:"",onChange:e[7]||(e[7]=C=>p("relationship"))},null,40,Ce),[[ge,n(i).relationship]]),t("label",{class:"text-22",for:`g-rel-${a.value}`},r(a.label),9,Le)])),64)),t("p",Pe,r(n(o).relationship),1)]),t("div",Re,[e[28]||(e[28]=t("label",{class:"fld__label text-22 font-ms-sb",for:"g-category"},[l(" What is your grievance about? "),t("span",{class:"fld__req font-ms-r"},"(required)")],-1)),d(t("select",{id:"g-category","onUpdate:modelValue":e[8]||(e[8]=a=>n(i).category=a),name:"category",class:"fld__input fld__input--select text-22",required:"","aria-required":"true","aria-describedby":"g-category-err","aria-invalid":n(o).category?"true":"false",onBlur:e[9]||(e[9]=a=>_("category")),onChange:e[10]||(e[10]=a=>p("category"))},[e[27]||(e[27]=t("option",{value:""},"Choose one",-1)),(y(),v(L,null,P(K,a=>t("option",{key:a,value:a},r(a),9,Ue)),64))],40,Be),[[ve,n(i).category]]),t("p",Ve,r(n(o).category),1)]),t("div",Me,[e[29]||(e[29]=t("label",{class:"fld__label text-22 font-ms-sb",for:"g-details"},[l(" What happened? "),t("span",{class:"fld__req font-ms-r"},"(required)")],-1)),t("p",Oe," Include dates, locations and anyone involved. "+r(R.toLocaleString("en-GB"))+" characters maximum. ",1),d(t("textarea",{id:"g-details","onUpdate:modelValue":e[11]||(e[11]=a=>n(i).details=a),name:"details",rows:"8",maxlength:R,class:"fld__input fld__input--area text-22",required:"","aria-required":"true","aria-describedby":"g-details-hint g-details-count g-details-err","aria-invalid":n(o).details?"true":"false",onBlur:e[12]||(e[12]=a=>_("details")),onInput:X},null,40,Ae),[[E,n(i).details]]),t("p",De,r(n(Q)),1),t("p",Fe,r(n(V)),1),t("p",Ne,r(n(o).details),1)]),t("div",Ge,[t("div",We,[d(t("input",{id:"g-confidential","onUpdate:modelValue":e[13]||(e[13]=a=>n(i).confidential=a),type:"checkbox",name:"confidential","aria-describedby":"g-confidential-hint"},null,512),[[N,n(i).confidential]]),e[30]||(e[30]=t("label",{class:"text-22",for:"g-confidential"}," Keep my identity confidential where possible ",-1))]),e[31]||(e[31]=t("p",{id:"g-confidential-hint",class:"fld__hint text-20"}," We will tell you who needs to be involved before sharing your information with anyone else. ",-1))]),t("div",He,[t("div",Ye,[d(t("input",{id:"g-consent","onUpdate:modelValue":e[14]||(e[14]=a=>n(i).consent=a),type:"checkbox",name:"consent",required:"","aria-required":"true","aria-describedby":"g-consent-hint g-consent-err","aria-invalid":n(o).consent?"true":"false",onChange:e[15]||(e[15]=a=>p("consent"))},null,40,Ke),[[N,n(i).consent]]),e[32]||(e[32]=t("label",{class:"text-22",for:"g-consent"},[l(" This is a genuine concern and I accept the privacy policy "),t("span",{class:"fld__req font-ms-r"},"(required)")],-1))]),t("p",je,[w(c,{to:"/privacy"},{default:k(()=>[...e[33]||(e[33]=[l("Read the Post Op privacy policy",-1)])]),_:1})]),t("p",ze,r(n(o).consent),1)]),t("div",Qe,[e[34]||(e[34]=t("label",{for:"g-website"},"Leave this field empty",-1)),d(t("input",{id:"g-website","onUpdate:modelValue":e[16]||(e[16]=a=>n(i).website=a),name:"website",type:"text",tabindex:"-1",autocomplete:"off"},null,512),[[E,n(i).website]])]),t("button",{type:"submit",class:"grv-submit text-22","aria-disabled":n(u)==="sending"},r(n(u)==="sending"?"Sendingâ¦":"Submit grievance"),9,Xe),e[37]||(e[37]=t("p",{class:"grv-alt text-20"},[l(" You can also raise a grievance by email at "),t("a",{href:"mailto:[email protected]"},"[email protected]"),l(", or in person through a manager or HR representative. ")],-1))],544),[[S,n(u)!=="sent"]])],512)]),_:1})])}}},at=ae(Je,[["__scopeId","data-v-3f7ee978"]]);export{at 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.