1import{d as B,b as P,bu as U,G as Z,c as T,w as a,g as e,o as i,e as u,m as r,t as p,Z as L,af as A,F as z,h as f,$ as X,i as N,a1 as J,a2 as W,a3 as Y,j as ee,r as c,B as te,al as se,_ as oe,k as ne}from"./CKJ7jd8U.js";import{a as ie,F as re}from"./zMQcH4ZX.js";import{_ as ae}from"./DYf0TeOu.js";import{u as ce}from"./B4DIy8e6.js";import"./DHUQomgi.js";const le=/^([1-9]\d{3}|\d{5}|(?:0[1-9]|[1-8]\d|9[0-8])\d{3}|\d{4})$/,ue={class:"c-section-service-interruptions"},pe={class:"c-section-service-interruptions__form-text"},de=["disabled"],me={class:"c-section-service-interruptions__field-button-text"},_e={key:0,class:"c-section-service-interruptions__messages"},fe={class:"c-section-service-interruptions__alert"},be=["innerHTML"],ve={key:1},ge={key:2},he={class:"c-section-service-interruptions__dialog-title"},ye={type:"submit",class:"u-visually-hidden"},Ne={class:"c-section-service-interruptions__dialog-information"},Te=B({__name:"ql-section-service-interruptions",props:{formText:{}},setup(S){const{t:o}=P(),k=U(),{t:l}=P(),{formatDateTimeFromString:I}=ce(),_=c(),b=c(!1),K=t=>(b.value=le.test(t.value),b.value),v=c(!1),g=c(!1),x=c(""),h=c([]),w=async()=>{if(b.value){v.value=!0,x.value="";try{const t=await $fetch(`/api/serviceInterruptions/messages?plz=${_.value}`,{method:"GET"});h.value=t||[],t?.length>1&&h.value.sort((n,m)=>n.informationType>m.informationType?-1:n.informationType<m.informationType?1:0)}catch(t){console.error(t),h.value=[],x.value=t?.data?.statusCode===404?o("interruptions.postalCodeNotFound"):o("interruptions.generalError")}finally{g.value=!0,v.value=!1}}},M=t=>{switch(t){case 0:return"success";case 1:return"info";case 2:return"warning";default:return"success"}},R=te(()=>v.value?"ql:loading":"ql:search");Z(_,()=>{g.value=!1,_.value||(b.value=!1)});const y=se("smsNotificationDialog"),d=c(),D=c(),$=c(!1);function E(t){return t.id&&t.source==="QI"}function j(t){E(t)&&(y.value?.show(),D.value=t.id)}function G(t,n){if(typeof t!="string")return;const m=t?.replace(/[^0-9]/g,"").replace(/^0/,"");m!==t&&n.input(m)}async function q(){if(!D.value||!d.value){console.error("Message ID or phone number is missing"),k.addToast({title:l("interruptions.smsNotification.subscriptionError.title"),message:l("interruptions.smsNotification.subscriptionError.message"),type:"error"});return}$.value=!0;try{await $fetch("/api/serviceInterruptions/subscribe",{method:"POST",body:{phoneNumber:`+41${d.value}`,messageId:D.value}}),y.value?.close(),k.addToast({title:l("interruptions.smsNotification.subscriptionSuccess.title"),message:l("interruptions.smsNotification.subscriptionSuccess.message"),type:"success"})}catch(t){y.value?.close(),k.addToast({title:l("interruptions.smsNotification.subscriptionError.title"),message:l("interruptions.smsNotification.subscriptionError.message"),type:"error"}),t instanceof Error&&"data"in t&&console.error(t.data.data)}$.value=!1}return(t,n)=>{const m=X,C=re,V=Y,F=ee,O=ae,H=oe;return i(),T(e(ie),{"config-file":"true"},{default:a(()=>[u(H,{background:"black"},{default:a(()=>[r("div",ue,[r("p",pe,p(S.formText),1),r("div",{class:L(["c-section-service-interruptions__field",{"c-section-service-interruptions__field--no-button":e(g)}])},[u(C,{modelValue:e(_),"onUpdate:modelValue":n[1]||(n[1]=s=>z(_)?_.value=s:null),type:"search",placeholder:e(o)("search.zipPlaceholder"),"aria-label":e(o)("search.zipPlaceholder"),"validation-rules":{postcode:K},validation:"postcode","validation-messages":{postcode:e(o)("validation.postCodeNotValid")},"validation-visibility":"dirty",onKeydown:A(w,["enter"])},{suffix:a(()=>[e(g)?N("",!0):(i(),f("button",{key:0,type:"button",disabled:!e(b)||e(v),class:L(["u-unstyled-button c-section-service-interruptions__field-button",{"c-section-service-interruptions__field-button--searching":e(v)}]),onClick:n[0]||(n[0]=s=>w())},[r("span",me,p(e(o)("search.checking")),1),u(m,{name:e(R),class:"c-section-service-interruptions__field-button-icon"},null,8,["name"])],10,de))]),_:1},8,["modelValue","placeholder","aria-label","validation-rules","validation-messages"])],2),e(g)?(i(),f("div",_e,[e(h)?.length?(i(!0),f(J,{key:0},W(e(h),(s,Q)=>(i(),T(V,{key:`message-${Q}`,type:M(s.informationType),action:E(s)?{label:e(o)("interruptions.smsNotification.dialog.openLabel"),trigger:()=>j(s)}:void 0},{message:a(()=>[r("div",fe,[s.messageText?(i(),f("div",{key:0,innerHTML:s.messageText},null,8,be)):N("",!0),s.informationType===1&&s.startDate&&s.endDate?(i(),f("p",ve,p(e(o)("interruptions.maintenance",{startDate:e(I)(s.startDate),endDate:e(I)(s.endDate)})),1)):N("",!0),s.informationType===2&&s.startDate?(i(),f("p",ge,p(e(o)("interruptions.incident",{startDate:e(I)(s.startDate)})),1)):N("",!0)])]),_:2},1032,["type","action"]))),128)):e(x)?(i(),T(V,{key:1,message:e(x),type:"error"},null,8,["message"])):(i(),T(V,{key:2,message:e(o)("interruptions.noInterruptions"),type:"success"},null,8,["message"]))])):N("",!0)]),u(O,{ref_key:"smsNotificationDialog",ref:y},{actions:a(()=>[u(F,{label:e(o)("interruptions.smsNotification.dialog.submit"),disabled:!e(d)||e(d).length!==9,loading:e($),theme:"dark",type:"submit",onClick:q},null,8,["label","disabled","loading"]),u(F,{label:e(o)("cancel"),"button-style":"secondary",theme:"dark",onClick:n[3]||(n[3]=s=>e(y)?.close())},null,8,["label"])]),default:a(()=>[r("h2",he,p(e(o)("interruptions.smsNotification.dialog.title")),1),r("p",null,p(e(o)("interruptions.smsNotification.dialog.description")),1),u(C,{type:"form","form-class":"formkit-form--dark",onSubmit:q},{submit:a(()=>[r("button",ye,p(e(o)("interruptions.smsNotification.dialog.submit")),1)]),default:a(()=>[u(C,{modelValue:e(d),"onUpdate:modelValue":n[2]||(n[2]=s=>z(d)?d.value=s:null),type:"tel",name:"smsNotificationPhoneNumber",minlength:"9",maxlength:"9",label:e(o)("interruptions.smsNotification.dialog.phoneNumberLabel"),onInput:G},{prefix:a(()=>[...n[4]||(n[4]=[r("span",null,"+41",-1)])]),_:1},8,["modelValue","label"])]),_:1}),r("p",Ne,p(e(o)("interruptions.smsNotification.dialog.information")),1)]),_:1},512)]),_:1})]),_:1})}}}),ke=Object.assign(ne(Te,[["__scopeId","data-v-089ea7a8"]]),{__name:"QlSectionServiceInterruptions"}),xe=B({__name:"service-interruptions",props:{blok:{}},setup(S){return(o,k)=>{const l=ke;return i(),T(l,{"form-text":S.blok.formText},null,8,["form-text"])}}}),Ve=Object.assign(xe,{__name:"ServiceInterruptions"});export{Ve 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.