1import{s as e,y as t,v as n,d as a,u as i,au as r,o as s,c as l,a as o,t as y,f as d,h as g,w as u,e as v,_ as c,F as w,r as p,g as f,n as h,b as m,D as T}from"./D8veu8-2.js";import{t as x,w as _,b as D,E as k,n as M,_ as E,c as b}from"./gMNtHMDg.js";import{t as W}from"./DvNt3GwZ.js";import{i as F}from"./AMe2r3hX.js";const $=()=>function(e,t){const n=x(e);return n.setSeconds(t),n}(function(e,t){const n=x(e);return n.setMinutes(t),n}(function(e,t){const n=x(e);return n.setHours(t),n}(_(new Date,"Europe/Helsinki"),0),0),0),j=(e,t)=>{if(!e)return null;const n=[...e.flood_finland_active_region||[],...e.weather_finland_active_region||[]],a=[];let i=$();for(let r=0;r<t;r++)a.push({date:D(i,"ddMMyyyy"),severity:1,warningTypes:[],warnings:[]}),i=k(i,1);return n.forEach((e=>{const t=e.id.includes("flood_finland_active_region");let n=_(new Date(t?e.properties.onset:e.properties.effective_from).getTime(),"Europe/Helsinki"),i=_(new Date(t?e.properties.expires:e.properties.effective_until).getTime(),"Europe/Helsinki");n=W(n,1),i=W(i,-1);const r=t?"flood":e.properties.warning_context,s=((e,t)=>{let n="1";return"wx"===e?n=t.split("level-")[1]:"flood"===e&&("MODERATE"===t?n="2":"SEVERE"===t?n="3":"EXTREME"===t&&(n="4")),parseInt(n,10)})(t?"flood":"wx",e.properties.severity);a.forEach((t=>{const a=M(t.date,"ddMMyyyy",new Date);(n.getDate()===a.getDate()&&n.getMonth()===a.getMonth()&&n.getFullYear()===a.getFullYear()||i.getDate()===a.getDate()&&i.getMonth()===a.getMonth()&&i.getFullYear()===a.getFullYear()||F(n,a)&&F(a,i))&&(t.warnings.push(e),t.severity=Math.max(t.severity||1,s),((e,t,n)=>{const a=e.warningTypes;let i=!1;a.forEach((e=>{const a=e;a.type===t&&(i=!0,n>a.severity&&(a.severity=n))})),i||a.push({type:t,severity:n})})(t,r,s))}))})),a};function A(a,i){const{data:r,error:s,isFetching:l,suspense:o}=e({queryKey:["warnings",a],queryFn:async()=>(await new Promise((e=>setTimeout(e,1e3))),await n.get("weather/allwarnings",{params:{municipalityCode:a}})),refetchInterval:3e5}),y=t((()=>(e=>{if(!e)return null;let t,n=new Date(0),a=new Date(0);e.weather_update_time&&e.weather_update_time[0]&&(n=new Date(e.weather_update_time[0].properties.update_time)),e.flood_update_time&&e.flood_update_time[0]&&(a=new Date(e.flood_update_time[0].properties.update_time)),t=n.getTime()>=a.getTime()?n:a;const i=_(t,"Europe/Helsinki");return D(i,"d.M.yyyy H:mm")})(r.value)));return{warningDates:t((()=>j(r.value,i))),updateTime:y,isFetching:l,error:s}}const P={id:"warnings-container"},S={class:"flex justify-between items-center"},H={id:"warnings-header",class:"mb-0"},Y={key:0,class:"flex-1 flex flex-col justify-center items-center text-center min-h-[9rem] md:min-h-[6rem] bg-gray-100"},C={key:1,class:"error-panel"},R={key:2},q={key:0},I={class:"flex mt-6 mb-2"},L={class:"flex justify-center items-center fill flex-col sm:flex-row"},O={class:"warning-day-text pr-1"},K={class:"day-warning-icon-panel flex-inline items-end"},U=["title"],V=["title"],X=["title"],z={class:"keyboard-warning-textbox"},B={key:0},G={key:1,class:"keyboard-warning-textbox-row"},J={class:"highcontrast-legend hidden pb-2 gap-4 flex-col md:flex-row"},N={class:"inline-flex flex-row items-center"},Q={class:"inline-flex flex-row items-center"},Z={class:"inline-flex flex-row items-center"},ee={key:1,class:"error-panel","aria-atomic":"true","aria-live":"assertive"},te={key:2,class:"pr-2"},ne={class:"flex lg:hidden"},ae=a({__name:"Warnings",props:{municipalityCode:{},warningDayCount:{}},emits:["hasWarningsYes"],setup(e,{emit:t}){const n=t,a=e,x=T(!1),_=T("loading"),{t:k,locale:W}=i(),F=["traffic-weather","flood","cold-weather","forest-fire-weather","hot-weather","pedestrian-safety","rain","thunder-storm","uv-note","wind","sea-icing","sea-thunder-storm","sea-water-height","sea-wave-height","sea-wind"],$=[1,2,3,4],{warningDates:j,updateTime:ae,isFetching:ie}=A(a.municipalityCode,a.warningDayCount),re=e=>!(!e.type||!e.severity)&&(!!F.includes(e.type)&&!!$.includes(e.severity)),se=(e,t)=>{let n="",a=1;return Array.isArray(e)?(e&&e.forEach((e=>{re(e)||(x.value=!0),a>t&&(""!==n&&(n+="\n"),n+=k(`warningType-${e.type}`),n+=` (${k(`warningSeverity${e.severity}`)})`),a++})),""===n&&(n=k("warningType-no-warnings"))):x.value=!0,n},le=e=>{let t="";try{e&&(t=b(M(e,"ddMMyyyy",new Date),{shortFormat:!0,locale:W.value}))}catch(n){x.value=!0}return t},oe=(e,t,n,a)=>{let i="";try{if(e){const r=M(e,t,new Date);i=D(r,n,{locale:a.value})}}catch(r){x.value=!0}return i};return r(j,(e=>{e&&(()=>{let e=!1;
1j&&((j.value||[]).forEach((t=>{t.severity>1&&(e=!0)})),n("hasWarningsYes",e))})()}),{immediate:!0}),r((()=>ie.value),(e=>{_.value=e?"loading":x.value?"error":"ok"})),(e,t)=>{const n=c,a=E;return s(),l("div",P,[o("div",S,[o("h2",H,y(d(k)("warningsAtLand")),1),g(n,{class:"hidden lg:block",to:d(k)("urlToWarningsPage")},{default:u((()=>[v(y(d(k)("linkToWarnings")),1)])),_:1},8,["to"])]),"loading"===d(_)?(s(),l("div",Y,[g(a,{label:d(k)("loadingWarningsData"),"show-text":!0},null,8,["label"])])):d(x)?(s(),l("div",C,y(d(k)("missingWarningsDataMessage")),1)):(s(),l("div",R,[d(j)?(s(),l("div",q,[o("div",I,[(s(!0),l(w,null,p(d(j),((e,t)=>{return s(),f(n,{key:e.date,class:h(["flex-grow warning-day-panel",{level1:1===e.severity,level2:2===e.severity,level3:3===e.severity,level4:4===e.severity}]),to:(a=t,[`${k("urlToWarningsPage")}`,`${k("urlToWarningsAfterOneDayPage")}`,`${k("urlToWarningsAfterTwoDaysPage")}`,`${k("urlToWarningsAfterThreeDaysPage")}`,`${k("urlToWarningsAfterFourDaysPage")}`][a]),title:se(e.warningTypes,0)},{default:u((()=>{var t,n,a;return[o("div",L,[o("span",O,y(le(e.date)),1),o("span",null,y(oe(e.date,"ddMMyyyy","d.M.",d(W))),1)]),o("div",K,[(null==(t=null==e?void 0:e.warningTypes)?void 0:t.length)>3?(s(),l("div",{key:0,title:se(e.warningTypes,0),class:h(["warning-icon",{level1:1===e.severity,level2:2===e.severity,level3:3===e.severity,level4:4===e.severity}])},null,10,U)):m("",!0),(s(!0),l(w,null,p(e.warningTypes,((t,n)=>(s(),l(w,{key:n},[(null==e?void 0:e.warningTypes)&&(n<=2&&e.warningTypes.length<=3||e.warningTypes.length>3&&n<2)?(s(),l("div",{key:0,title:se(e.warningTypes,0),class:h(["warning-icon hidden sm:inline-flex",{level1:1===t.severity,level2:2===t.severity,level3:3===t.severity,level4:4===t.severity,flood:"flood"===t.type,"cold-weather":"cold-weather"===t.type,"forest-fire-weather":"forest-fire-weather"===t.type,"hot-weather":"hot-weather"===t.type,"pedestrian-safety":"pedestrian-safety"===t.type,rain:"rain"===t.type,"sea-icing":"sea-icing"===t.type,"sea-thunder-storm":"sea-thunder-storm"===t.type,"sea-water-height":"sea-water-height"===t.type,"sea-wave-height":"sea-wave-height"===t.type,"sea-wind":"sea-wind"===t.type,"thunder-storm":"thunder-storm"===t.type,"traffic-weather":"traffic-weather"===t.type,"uv-note":"uv-note"===t.type,wind:"wind"===t.type}])},null,10,V)):m("",!0)],64)))),128)),(null==(n=null==e?void 0:e.warningTypes)?void 0:n.length)>0?(s(),l("div",{key:1,title:se(e.warningTypes,0),class:h(["warning-icon flex justify-center items-center sm:hidden",{level1:1===e.severity,level2:2===e.severity,level3:3===e.severity,level4:4===e.severity}])},y(e.warningTypes.length),11,X)):m("",!0)]),o("div",z,[(null==(a=null==e?void 0:e.warningTypes)?void 0:a.length)>0?(s(),l("div",B,[(s(!0),l(w,null,p(e.warningTypes,((e,t)=>(s(),l("div",{key:t,class:"keyboard-warning-textbox-row"},y((e=>{let t="";return re(e)?(t+=k(`warningType-${e.type}`),t+=` (${k(`warningSeverity${e.severity}`)})`):x.value=!0,t})(e)),1)))),128))])):(s(),l("div",G,y(d(k)("warningType-no-warnings")),1))])]})),_:2},1032,["class","to","title"]);var a})),128))]),o("div",J,[o("div",N,[t[0]||(t[0]=o("div",{class:"warning-icon level2 mr-2"},null,-1)),o("div",null,y(d(k)("warningSeverity2")),1)]),o("div",Q,[t[1]||(t[1]=o("div",{class:"warning-icon level3 mr-2"},null,-1)),o("div",null,y(d(k)("warningSeverity3")),1)]),o("div",Z,[t[2]||(t[2]=o("div",{class:"warning-icon level4 mr-2"},null,-1)),o("div",null,y(d(k)("warningSeverity4")),1)])])])):(s(),l("div",ee,y(d(k)("missingWarningsDataMessage")),1)),d(ae)?(s(),l("div",te,y(d(k)("warningsLastUpdate",{time:d(ae)})),1)):m("",!0),o("div",ne,[g(n,{to:d(k)("urlToWarningsPage")},{default:u((()=>[v(y(d(k)("linkToWarnings")),1)])),_:1},8,["to"])])]))])}}});export{ae 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.