@fmidev/smartmet-alert-client 4.7.0-rc.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,9 @@ name: Test
2
2
 
3
3
  on:
4
4
  push:
5
- pull_request:
5
+
6
+ permissions:
7
+ contents: read
6
8
 
7
9
  jobs:
8
10
  test:
@@ -11,7 +13,7 @@ jobs:
11
13
 
12
14
  steps:
13
15
  - name: Code checkout
14
- uses: actions/checkout@v5
16
+ uses: actions/checkout@v6
15
17
  with:
16
18
  persist-credentials: false
17
19
 
@@ -20,7 +22,12 @@ jobs:
20
22
  with:
21
23
  node-version-file: '.nvmrc'
22
24
 
23
- - name: Lint
25
+ - name: Install
26
+ env:
27
+ NPM_CONFIG_IGNORE_SCRIPTS: true
28
+ run: |
29
+ npm install --ignore-scripts
30
+
31
+ - name: Validate
24
32
  run: |
25
- npm install
26
- npm run lint
33
+ npm run validate
package/Jenkinsfile CHANGED
@@ -14,7 +14,7 @@ pipeline {
14
14
  }
15
15
 
16
16
  tools {
17
- nodejs 'nodejs-18'
17
+ nodejs 'nodejs-24'
18
18
  }
19
19
 
20
20
  options {
@@ -43,7 +43,7 @@ pipeline {
43
43
  sh "npm --version"
44
44
  sh "node --version"
45
45
  sh "rm --recursive --force node_modules"
46
- sh "npm install"
46
+ sh "npm install --ignore-scripts"
47
47
  }
48
48
  }
49
49
 
@@ -53,10 +53,9 @@ pipeline {
53
53
  }
54
54
  }
55
55
 
56
- stage('Test') {
56
+ stage('Validate') {
57
57
  steps {
58
- sh "docker stop docker_chromium_1 || true && docker rm docker_chromium_1 || true"
59
- sh "npm test || echo \"Some or all tests failed\""
58
+ sh "npm run validate"
60
59
  }
61
60
  }
62
61
 
@@ -82,21 +81,7 @@ pipeline {
82
81
  sh "scp -rp dist/* ${deployUserAndHost}:${deployBaseDirectory}/${packageVersion}/"
83
82
  }
84
83
  }
85
-
86
- /* Disabled npmjs.com deployment for now
87
- stage('Publish package to npmjs.com') {
88
- when { environment name: 'BRANCH_NAME', value: 'main' }
89
- environment {
90
- NPM_TOKEN = credentials('npm-token')
91
- }
92
- steps {
93
- sh 'echo //registry.npmjs.org/:_authToken=$NPM_TOKEN > .npmrc'
94
- sh 'npm publish'
95
- sh 'rm .npmrc'
96
- }
97
- }
98
84
  }
99
- */
100
85
 
101
86
  post {
102
87
  success {
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @fmidev/smartmet-alert-client
3
- * version: v4.7.0-rc.0
3
+ * version: v4.7.0
4
4
  * description: Web application for viewing weather and flood alerts
5
5
  * author: Finnish Meteorological Institute
6
6
  * homepage: https://github.com/fmidev/smartmet-alert-client#readme
@@ -231,4 +231,4 @@ import{i as C3,c as q,d as b2,t as n2,a as R,o as Z,b as F,n as a2,u as $,e as r
231
231
  `);return o.length>0&&(n+=' xmlns:xlink="http://www.w3.org/1999/xlink"',d=`<defs>
232
232
  `+this.pluck(o,"svg").join("")+`</defs>
233
233
  `+d),d=$n(a,n,l[0],l[1],0,0,l[0],l[1],d),d},copyDataset(t){const e=xt({},t);return e.layers=e.layers.map(r=>this.copyLayer(r)),e.arcs&&(e.arcs=e.arcs.getFilteredCopy()),e},copyLayer(t){const e=this.copyLayerShapes(t);return e.data&&(e.data=e.data.clone()),e},copyLayerShapes(t){const e=xt({},t);return t.shapes&&(e.shapes=this.cloneShapes(t.shapes)),e},cloneShape(t){return t?t.map(function(e){return e.concat()}):null},cloneShapes(t){return Array.isArray(t)?t.map(e=>this.cloneShape(e)):null},pluck(t,e){return t.map(function(r){return r[e]})},transformCoordsForSVG(t,e){const r=this.transformDatasetToPixels(t,e),a=e.precision||1e-4;return this.setCoordinatePrecision(t,a),r},transformDatasetToPixels(t,e){const r=this.getDatasetBounds(t),a=this.calcOutputSizeInPixels(r,e),n=r.getTransform(a,e.invert_y);return this.transformPoints(t,function(o,s){return n.transform(o,s)}),[Math.round(a.width()),Math.round(a.height())||1]},setCoordinatePrecision(t,e){const r=this.getRoundingFunction(e);return this.transformPoints(t,function(a,n){return[r(a),r(n)]}),t},getDatasetBounds(t){const e=new q2;return t.layers.forEach(r=>{const a=this.getLayerBounds(r,t.arcs);a&&e.mergeBounds(a)}),e},getLayerBounds(t,e){let r=null;return t.geometry_type==="point"?r=this.getPointBounds(t.shapes):(t.geometry_type==="polygon"||t.geometry_type==="polyline")&&(r=this.getPathBounds$1(t.shapes,e)),r},getPointBounds(t){const e=new q2;return function(r,a){let n,o,s,l,d;for(n=0,o=r.length;n<o;n++)for(d=r[n],s=0,l=d?d.length:0;s<l;s++)a(d[s],n)}(t,function(r){e.mergePoint(r[0],r[1])}),e},getPathBounds$1(t,e){const r=new q2;return((a,n)=>{let o;for(let s=0;s<a.length;s++)if(o=a[s],o instanceof Array)this.forEachArcId(o,n);else if(o!=null&&o.constructor===Number&&(o|0)===o){const l=n(o);l!==void 0&&(a[s]=l)}else o&&console.log("Non-integer arc id in:",a)})(t,function(a){e.mergeArcBounds(a,r)}),r},calcOutputSizeInPixels(t,e){let r=0,a=0;const n=0,o=0,s=t.width(),l=t.height(),d=this.parseMarginOption(e.margin),u=d[0]+d[2],g=d[1]+d[3],f=.5,y=.5;let k,A,h,x;return A=e.height||0,k=e.width||(A>0?0:800),A>0&&(x=(l||s||1)/(A-g)),k>0&&(h=(s||l||1)/(k-u)),k?A||(x=h,A=l>0?g+l/x:k,e.max_height>0&&A>e.max_height&&(x=h*A/e.max_height,A=e.max_height)):(h=x,k=s>0?u+s/h:A),h>x?(x=h,a=x*(A-g)-l):x>h&&(h=x,r=h*(k-u)-s),t.padBounds(d[0]*h+r*f,d[1]*x+a*y,d[2]*h+r*(1-f),d[3]*x+a*(1-y)),k>0&&A>0||console.log("Missing valid height and width parameters"),h===x&&h>0||console.log("Missing valid margin parameters"),new q2(n,o,k+n,A+o)},exportLayerForSVG(t,e,r){const a=this.getEmptyLayerForSVG(t);return a.children=this.exportSymbolsForSVG(t,e,r),a},stringify(t){let e,r;return!t||!t.tag?"":(e="<"+t.tag,t.properties&&(e+=this.stringifyProperties(t.properties)),t.children||t.value?(r=t.tag==="text"||t.tag==="tspan"?"":`
234
- `,e+=">"+r,t.value&&(e+=t.value),t.children&&(e+=t.children.map(a=>this.stringify(a)).join(r)),e+=r+"</"+t.tag+">"):e+="/>",e)},stringifyProperties(t){return Object.keys(t).reduce((e,r)=>{const a=t[r];if(!a&&a!==0)return e;const n=a!=null&&a.toString===String.prototype.toString?a:JSON.stringify(a);return r==="href"&&(r="xlink:href"),e+" "+r+'="'+this.stringEscape(n)+'"'},"")},stringEscape(t){return String(t).replace(yn,function(e){return Cn[e]})},transformPoints(t,e){t.arcs&&t.arcs.transformPoints(e),t.layers.forEach(r=>{this.layerHasPoints(r)&&this.transformPointsInLayer(r,e)})},getRoundingFunction(t){(!(t!=null&&t.constructor===Number)||t===0)&&console.log("Rounding increment must be a non-zero number.");let e=1/t;return e>1&&(e=Math.round(e)),function(r){return Math.round(r*e)/e}},forEachArcId(t,e){let r;for(let a=0;a<t.length;a++)if(r=t[a],r instanceof Array)this.forEachArcId(r,e);else if(r!=null&&r.constructor===Number&&(r|0)===r){const n=e(r);n!==void 0&&(t[a]=n)}else r&&console.log("Non-integer arc id in:",t)},getEmptyLayerForSVG(t){const e={tag:"g",properties:{id:t.name},children:[]};return t.geometry_type==="polyline"&&(e.properties.fill="none"),t.geometry_type==="polyline"&&(e.properties.stroke="black",e.properties["stroke-width"]=1),e},layerHasPoints(t){return t.geometry_type==="point"&&this.layerHasNonNullShapes(t)},transformPointsInLayer(t,e){this.layerHasPoints(t)&&this.forEachPoint(t.shapes,function(r){const a=e(r[0],r[1]);r[0]=a[0],r[1]=a[1]})},forEachPoint(t,e){let r,a,n,o,s;for(r=0,a=t.length;r<a;r++)for(s=t[r],n=0,o=s?s.length:0;n<o;n++)e(s[n],r)},exportSymbolsForSVG(t,e,r){const a=this.defaults({layers:[t]},e),n=this.exportDatasetAsGeoJSON(a,r),o=n.features||n.geometries||(n.type?[n]:[]),s=this.importGeoJSONFeatures(o,r);return r.svg_data&&t.data&&this.addDataAttributesToSVG(s,t.data,r.svg_data),s},parseMarginOption(t){const r=(t!=null&&t.constructor===Number?String(t):t||"").trim().split(/[, ] */);return r.length==1&&r.push(r[0]),r.length==2&&r.push(r[0],r[1]),r.length==3&&r.push(r[2]),r.map(function(a){const n=parseFloat(a);return isNaN(n)?1:n})},defaults(t){for(let e=1,r=arguments.length;e<r;e++){const a=arguments[e]||{};for(const n in a)!(n in t)&&a.hasOwnProperty(n)&&(t[n]=a[n])}return t},exportDatasetAsGeoJSON(t,e){const r={},a=t.layers,n=this.useFeatureCollection(a);let o;n?(r.type="FeatureCollection",o="features"):(r.type="GeometryCollection",o="geometries");const s=a.reduce((l,d,u)=>{const g=this.exportLayerAsGeoJSON(d,t,e,n);return l.length>0?l.concat(g):g},[]);return r[o]=s,r},useFeatureCollection(t){return this.someUtil(t,e=>{const r=e.data?e.data.getFields():[],a=this.useFeatureProperties(r),n=!!this.getIdField(r);return a||n})},useFeatureProperties(t){return!(t.length===0||t.length===1&&t[0]==F2.ID_FIELD)},getIdField(t){const e=[];return e.push(F2.ID_FIELD),this.find(e,r=>this.contains(t,r))},contains(t,e){if(t!=null&&t.toString===String.prototype.toString)return t.indexOf(e)!==-1;if(Je(t))return this.indexOf(t,e)!==-1;console.log("Expected Array or String argument")},indexOf(t,e){const r=e!==e;for(let a=0,n=t.length||0;a<n;a++)if(t[a]===e||r&&t[a]!==t[a])return a;return-1},find(t,e,r){const a=t.filter(e,r);return a.length===0?null:a[0]},exportLayerAsGeoJSON(t,e,r,a){const n=this.exportProperties(t.data,r),o=t.shapes,s=this.exportIds(t.data,r);return n&&o&&n.length!==o.length&&console.log("Mismatch between number of properties and number of shapes"),(o||n||[]).reduce(function(l,d,u){const g=o?o[u]:null,f=F2.exporters[t.geometry_type];let y=g?f(g,e.arcs,r):null;if(a)y={type:"Feature",geometry:y,properties:n?n[u]:null},s&&(y.id=s[u]);else if(!y)return l;return l.push(y),l},[])},exportProperties(t,e){const r=t?t.getFields():[],a=this.getIdField(r,e);let n;if(!this.useFeatureProperties(r,e))return null;const o=t.getRecords();return a==F2.ID_FIELD?n=o.map(function(s){return s=xt({},s),delete s[a],s}):n=o,n},importGeoJSONFeatures(t,e){return e=e||{},t.map((r,a)=>{const n=r.type==="Feature"?r.geometry:r,o=n&&n.type;let s=null;return o&&n.coordinates&&(s=Zn[o](n.coordinates,r.properties,e)),s?(r.properties&&this.applyStyleAttributes(s,o,r.properties),"id"in r&&(s.properties||(s.properties={}),s.properties.id=(e.id_prefix||"")+r.id),s):{tag:"g"}})},addDataAttributesToSVG(t,e,r){const a=e.getFields();let n=r.indexOf("*")>-1?a.concat():r;const o=this.difference(n,a);o.length>0&&(n=this.difference(n,o));const s=e.getRecords(),l=this.exportDataAttributesForSVG(s,n);t.length!==l.length&&console.log("Mismatch between number of SVG symbols and data attributes"),t.forEach(function(d,u){xt(d.properties||{},l[u])})},exportDataAttributesForSVG(t,e){const r=/^[a-z_][a-z0-9_-]*$/i,a=/^xml/,n=e.filter(function(s){return r.test(s)&&!a.test(s)}),o=this.difference(e,n);return o.length>0&&(console.log("Unable to add data-* attributes for field(s):",o.join(", ")),console.log("data-* names should match pattern [a-z_][a-z0-9_-]*")),t.map(function(s){const l={};for(let d=0;d<n.length;d++)l["data-"+n[d].toLowerCase()]=String(s[n[d]]);return l})},difference(t,e){const r=this.arrayToIndex(e);return t.filter(function(a){return!Object.prototype.hasOwnProperty.call(r,a)})},arrayToIndex(t,e){const r=arguments.length>1;return t.reduce(function(a,n){return a[n]=r?e:!0,a},{})},applyStyleAttributes(t,e,r){let a=F2.translateGeoJSONType(e);a==="point"&&"label-text"in r&&(a="label");const n=this.findPropertiesBySymbolGeom(Object.keys(r),a);for(let o=0,s=n.length;o<s;o++)this.setAttribute(t,n[o],r[n[o]])},findPropertiesBySymbolGeom(t,e){const r=kn[e]||{};return t.filter(function(a){return a in r})},setAttribute(t,e,r){e==="r"||(t.properties||(t.properties={}),t.properties[e]=r,e==="stroke-dasharray"&&r&&(t.properties["stroke-linecap"]="butt"))},exportIds(t,e){const r=t?t.getFields():[],a=this.getIdField(r,e);return a?t.getRecords().map(function(n){return a in n?n[a]:null}):null}}},t0=t=>(gt("data-v-3ed8c052"),t=t(),ft(),t),e0=["data-smartmet-alert-client-version"],r0={class:"row"},a0={class:"col-12 col-md-8 col-lg-8 col-xl-8 day-region-views"},i0=["aria-label"],n0={key:1,class:"not-ready"},o0=["href"],s0={key:2},l0=["href"],d0=["aria-label"],u0={class:"col-12 col-md-4 col-lg-4 col-xl-4 symbol-list"},c0={key:0,class:"row"},g0={class:"col-12 col-md-8 col-lg-8 col-xl-8 day-region-views"},f0=t0(()=>F("div",{class:"col-12 col-md-4 col-lg-4 col-xl-4 symbol-list"},null,-1)),m0=b2({__name:"AlertClient",props:{refreshInterval:{default:1e3*60*15,type:Number},defaultDay:{default:0,type:Number},staticDays:{type:Boolean,default:!0},startFrom:{default:"",type:String},regionListEnabled:{type:Boolean,default:!0},grayScaleSelector:{type:Boolean,default:!1},currentTime:{default:()=>Date.now(),type:Number},warningsData:{default:null,type:[Object,null]},dailyWarningTypes:{default:()=>[],type:Array},geometryId:{default:2021,type:Number},language:{default:"en",type:String},theme:{default:"light-theme",type:String},loading:{default:1,type:Number},sleep:{type:Boolean,default:!0},spinnerEnabled:{type:Boolean,default:!0}},emits:["loaded","themeChanged","update-warnings"],setup(t,{emit:e}){const r=t,a=e,n=qt(),{t:o}=G2(n2(r,"language")),s=l2(r.defaultDay),l=l2([]),d=l2(null),u=l2(null),g=l2(null),f=l2([]),y=l2(V3()),k=l2({}),A=l2([]),h=l2(0),x="4.7.0-rc.0",S=l2([]),B=O1.methods.geoJSONToSVG.bind(O1.methods),c=q(()=>String(r.geometryId)),v=q(()=>n.geometries),m=q(()=>n.regionIds),p=q(()=>n.warningTypes),b=q(()=>n.timeZone),C=q(()=>n.dateTimeFormatLocale),E=q(()=>r.currentTime),N=q(()=>r.startFrom),z=q(()=>r.staticDays),H=q(()=>r.dailyWarningTypes),Y=q(()=>n.maxUpdateDelay),w=q(()=>n.bbox),L=J=>{S.value.includes(J)||S.value.push(J),console.log(J)},Q=()=>{a("loaded",-1)},{handleMapWarnings:_}=pn({geometryId:c,geometries:v,regionIds:m,warningTypes:p,timeZone:b,locale:C,currentTime:E,startFrom:N,staticDays:z,dailyWarningTypes:H,maxUpdateDelay:Y,bbox:w,geoJSONToSVG:B,t:o,handleError:L,onDataError:Q}),M=q(()=>[ae,ie].some(J=>(y.value?.[s.value]?.[J]?.length??0)>0)?o("toContent")||"":o("toNextContent")||""),I=q(()=>[ae,ie].some(J=>(y.value?.[s.value]?.[J]?.length??0)>0)?"#fmi-warnings-region-content":"#fmi-warnings-end-of-regions"),T=q(()=>o("noWarnings")),G=q(()=>A.value.length>0?o("validWarnings"):o("noWarnings")),O=q(()=>A.value.length>0?o("validWarningsAriaLabel"):o("noWarnings")),P=q(()=>o("supportedBrowsersLink")),j=q(()=>o("supportedBrowsers")),U=q(()=>r.loading===-1?o("failed"):o("notInitializedStart")),e2=q(()=>r.loading===-1?"":o("notInitializedEnd")),V=q(()=>g.value!=null?Object.keys(g.value).length:0),t2=q(()=>f.value!=null&&f.value.length===5&&f.value[0]?.updatedDate!=null&&f.value[0]?.updatedDate.length>0),d2=J=>{s.value=J},m2=J=>{l.value=J,A.value.forEach((S2,Q2)=>{const mt=J.includes(S2.type);mt!==S2.visible&&A.value[Q2]&&(A.value[Q2].visible=mt)})},A2=J=>{r.loading!==-1&&J&&a("loaded",1)},L2=J=>{r.theme!==J&&a("themeChanged",J)},y2=()=>{const Q2=oe()?.proxy?.$el?.querySelector(I.value);Q2?.scrollIntoView(),Q2?.focus()},C2=()=>{if(r.warningsData!=null){const J=_(r.warningsData);g.value=J.warnings,f.value=J.days,y.value=J.regions,k.value=J.parents,A.value=J.legend,l.value=A.value.filter(S2=>S2.visible).map(S2=>S2.type)}},v2=()=>{Jt()&&r.refreshInterval&&(document.hidden?$2():($2(),U2(),N2()))},N2=()=>{r.refreshInterval&&(d.value=setInterval(U2,r.refreshInterval))},$2=()=>{d.value!=null&&(clearInterval(d.value),d.value=null)},U2=()=>{r.refreshInterval>0&&a("update-warnings")};return Ft(()=>r.warningsData,()=>{C2()}),C2(),r.warningsData==null&&U2(),ct(()=>{N2(),Jt()&&r.sleep&&(document.addEventListener("visibilitychange",v2),u.value=v2)}),X1(()=>{Jt()&&u.value&&document.removeEventListener("visibilitychange",u.value),$2()}),F3(()=>{C2()}),(J,S2)=>(Z(),R("div",{id:"fmi-warnings",class:a2(J.theme),"data-smartmet-alert-client-version":$(x)},[F("div",{id:"fmi-warnings-errors",class:a2(S.value)},null,2),F("div",null,[F("div",{class:a2(["container-fluid",J.theme])},[F("div",r0,[F("div",a0,[J.loading?g2("",!0):(Z(),R("h2",{key:0,class:"valid-warnings","aria-label":O.value},r2(G.value),9,i0)),J.loading?(Z(),R("div",n0,[F("p",null,r2(U.value)+" "+r2(e2.value),1),F("a",{href:P.value,target:"_blank",rel:"noopener noreferrer",class:"supported-browsers"},r2(j.value),9,o0)])):g2("",!0),J.regionListEnabled?(Z(),R("div",s0,[V.value?(Z(),R("a",{key:0,id:"fmi-warnings-to-text-content",href:I.value,tabindex:"0",class:"visually-hidden-focusable focus-ring",onClick:y2},r2(M.value),9,l0)):(Z(),R("div",{key:1,"aria-label":T.value},null,8,d0))])):g2("",!0),T2(s4,{input:f.value,"visible-warnings":l.value,"selected-day":s.value,"static-days":J.staticDays,"time-offset":h.value,warnings:g.value,regions:y.value,"geometry-id":J.geometryId,loading:!!J.loading,theme:J.theme,language:J.language,"spinner-enabled":J.spinnerEnabled,onDaySelected:d2,onLoaded:A2},null,8,["input","visible-warnings","selected-day","static-days","time-offset","warnings","regions","geometry-id","loading","theme","language","spinner-enabled"])]),F("div",u0,[L3(T2(D5,{input:A.value,"visible-warnings":l.value,"gray-scale-selector":J.grayScaleSelector,theme:J.theme,language:J.language,onThemeChanged:L2,onWarningsToggled:m2},null,8,["input","visible-warnings","gray-scale-selector","theme","language"]),[[S3,t2.value]])])]),J.regionListEnabled?(Z(),R("div",c0,[F("div",g0,[T2(nn,{input:y.value,"selected-day":s.value,warnings:g.value,parents:k.value,"geometry-id":J.geometryId,theme:J.theme,language:J.language},null,8,["input","selected-day","warnings","parents","geometry-id","theme","language"])]),f0])):g2("",!0)],2)])],10,e0))}}),v0='@font-face{font-family:Noto Sans;font-weight:400;font-style:normal;src:url(data:font/woff2;base64,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) format("woff2");font-display:swap}div#fmi-warnings div[data-v-3ed8c052] *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;font-family:Roboto,Helvetica,Arial,Noto Sans,sans-serif;font-size:1rem;line-height:1.42857143;background-color:transparent;font-weight:400}div#fmi-warnings div[data-v-3ed8c052] * *:focus{outline-offset:2px;z-index:5}div#fmi-warnings div[data-v-3ed8c052] * .bold-text{font-weight:700!important}div#fmi-warnings div[data-v-3ed8c052] * .noselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}div#fmi-warnings div[data-v-3ed8c052] * h3{font-weight:700}div#fmi-warnings div[data-v-3ed8c052] .light-theme *{color:#191b22}div#fmi-warnings div[data-v-3ed8c052] .dark-theme *{color:#fff}div#fmi-warnings div[data-v-3ed8c052] .light-gray-theme *{color:#191b22}div#fmi-warnings div[data-v-3ed8c052] .dark-gray-theme *{color:#fff}div#fmi-warnings[data-v-3ed8c052]{width:700px;padding:0;margin-bottom:20px}div#fmi-warnings h2.valid-warnings[data-v-3ed8c052]{text-align:left;font-weight:700;margin-top:0;margin-bottom:3px}div#fmi-warnings div.not-ready[data-v-3ed8c052]{width:100%;padding:15px}div#fmi-warnings div.not-ready a.supported-browsers[data-v-3ed8c052]{font-weight:700;text-decoration:none}div#fmi-warnings .light-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #303193}div#fmi-warnings .light-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#303193;border-bottom:1px solid #02A3B7}div#fmi-warnings .light-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#303193}div#fmi-warnings .dark-theme div.not-ready[data-v-3ed8c052]{background-color:#282b34;border:1px solid #e7f0fa}div#fmi-warnings .dark-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#e7f0fa;border-bottom:1px solid #e7f0fa}div#fmi-warnings .dark-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#e7f0fa}div#fmi-warnings .light-gray-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #303193}div#fmi-warnings .light-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#434752;border-bottom:1px solid #434752}div#fmi-warnings .light-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#191b22}div#fmi-warnings .dark-gray-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #e7f0fa}div#fmi-warnings .dark-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#eee;border-bottom:1px solid #eee}div#fmi-warnings .dark-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#fff}div#fmi-warnings div[data-v-3ed8c052]{background-color:transparent}div#fmi-warnings div.container-fluid[data-v-3ed8c052]{padding:0;margin:5px 0 0}div#fmi-warnings a#fmi-warnings-to-text-content[data-v-3ed8c052]{font-family:Roboto,Helvetica,Arial,Noto Sans,sans-serif;font-size:1rem;height:20px}div#fmi-warnings a#fmi-warnings-to-text-content[data-v-3ed8c052]:focus{outline-offset:2px}div#fmi-warnings div .row[data-v-3ed8c052]{margin-left:0;margin-right:0}div#fmi-warnings div div.day-region-views[data-v-3ed8c052]{max-width:440px;width:440px;padding-left:0;padding-right:0}div#fmi-warnings div div.symbol-list[data-v-3ed8c052]{top:0;z-index:1;padding-left:20px;padding-right:0;box-sizing:border-box;width:260px;max-width:260px;min-width:260px}div#fmi-warnings div .light-gray-theme a.supported-browsers[data-v-3ed8c052]{color:#434752}div#fmi-warnings div .dark-gray-theme a.supported-browsers[data-v-3ed8c052]{color:#eee}@media (max-width: 767px){div#fmi-warnings[data-v-3ed8c052]{width:100%}div#fmi-warnings div div.day-region-views[data-v-3ed8c052]{min-width:100%;width:100%;max-width:100%}div#fmi-warnings div div.symbol-list[data-v-3ed8c052]{position:static;padding-left:0;margin-top:0;margin-bottom:0;min-width:100%;width:100%;max-width:100%}}@media print{div#fmi-warnings div .symbol-list[data-v-3ed8c052]{display:none}}',h0=w2(m0,[["styles",[v0]],["__scopeId","data-v-3ed8c052"]]);var He={exports:{}};(function(t,e){var r=typeof self<"u"?self:Vt,a=function(){function o(){this.fetch=!1,this.DOMException=r.DOMException}return o.prototype=r,new o}();(function(o){(function(s){var l={searchParams:"URLSearchParams"in o,iterable:"Symbol"in o&&"iterator"in Symbol,blob:"FileReader"in o&&"Blob"in o&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in o,arrayBuffer:"ArrayBuffer"in o};function d(w){return w&&DataView.prototype.isPrototypeOf(w)}if(l.arrayBuffer)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=ArrayBuffer.isView||function(w){return w&&u.indexOf(Object.prototype.toString.call(w))>-1};function f(w){if(typeof w!="string"&&(w=String(w)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(w))throw new TypeError("Invalid character in header field name");return w.toLowerCase()}function y(w){return typeof w!="string"&&(w=String(w)),w}function k(w){var L={next:function(){var Q=w.shift();return{done:Q===void 0,value:Q}}};return l.iterable&&(L[Symbol.iterator]=function(){return L}),L}function A(w){this.map={},w instanceof A?w.forEach(function(L,Q){this.append(Q,L)},this):Array.isArray(w)?w.forEach(function(L){this.append(L[0],L[1])},this):w&&Object.getOwnPropertyNames(w).forEach(function(L){this.append(L,w[L])},this)}A.prototype.append=function(w,L){w=f(w),L=y(L);var Q=this.map[w];this.map[w]=Q?Q+", "+L:L},A.prototype.delete=function(w){delete this.map[f(w)]},A.prototype.get=function(w){return w=f(w),this.has(w)?this.map[w]:null},A.prototype.has=function(w){return this.map.hasOwnProperty(f(w))},A.prototype.set=function(w,L){this.map[f(w)]=y(L)},A.prototype.forEach=function(w,L){for(var Q in this.map)this.map.hasOwnProperty(Q)&&w.call(L,this.map[Q],Q,this)},A.prototype.keys=function(){var w=[];return this.forEach(function(L,Q){w.push(Q)}),k(w)},A.prototype.values=function(){var w=[];return this.forEach(function(L){w.push(L)}),k(w)},A.prototype.entries=function(){var w=[];return this.forEach(function(L,Q){w.push([Q,L])}),k(w)},l.iterable&&(A.prototype[Symbol.iterator]=A.prototype.entries);function h(w){if(w.bodyUsed)return Promise.reject(new TypeError("Already read"));w.bodyUsed=!0}function x(w){return new Promise(function(L,Q){w.onload=function(){L(w.result)},w.onerror=function(){Q(w.error)}})}function S(w){var L=new FileReader,Q=x(L);return L.readAsArrayBuffer(w),Q}function B(w){var L=new FileReader,Q=x(L);return L.readAsText(w),Q}function c(w){for(var L=new Uint8Array(w),Q=new Array(L.length),_=0;_<L.length;_++)Q[_]=String.fromCharCode(L[_]);return Q.join("")}function v(w){if(w.slice)return w.slice(0);var L=new Uint8Array(w.byteLength);return L.set(new Uint8Array(w)),L.buffer}function m(){return this.bodyUsed=!1,this._initBody=function(w){this._bodyInit=w,w?typeof w=="string"?this._bodyText=w:l.blob&&Blob.prototype.isPrototypeOf(w)?this._bodyBlob=w:l.formData&&FormData.prototype.isPrototypeOf(w)?this._bodyFormData=w:l.searchParams&&URLSearchParams.prototype.isPrototypeOf(w)?this._bodyText=w.toString():l.arrayBuffer&&l.blob&&d(w)?(this._bodyArrayBuffer=v(w.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):l.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(w)||g(w))?this._bodyArrayBuffer=v(w):this._bodyText=w=Object.prototype.toString.call(w):this._bodyText="",this.headers.get("content-type")||(typeof w=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):l.searchParams&&URLSearchParams.prototype.isPrototypeOf(w)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},l.blob&&(this.blob=function(){var w=h(this);if(w)return w;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?h(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(S)}),this.text=function(){var w=h(this);if(w)return w;if(this._bodyBlob)return B(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(c(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},l.formData&&(this.formData=function(){return this.text().then(E)}),this.json=function(){return this.text().then(JSON.parse)},this}var p=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function b(w){var L=w.toUpperCase();return p.indexOf(L)>-1?L:w}function C(w,L){L=L||{};var Q=L.body;if(w instanceof C){if(w.bodyUsed)throw new TypeError("Already read");this.url=w.url,this.credentials=w.credentials,L.headers||(this.headers=new A(w.headers)),this.method=w.method,this.mode=w.mode,this.signal=w.signal,!Q&&w._bodyInit!=null&&(Q=w._bodyInit,w.bodyUsed=!0)}else this.url=String(w);if(this.credentials=L.credentials||this.credentials||"same-origin",(L.headers||!this.headers)&&(this.headers=new A(L.headers)),this.method=b(L.method||this.method||"GET"),this.mode=L.mode||this.mode||null,this.signal=L.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Q)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Q)}C.prototype.clone=function(){return new C(this,{body:this._bodyInit})};function E(w){var L=new FormData;return w.trim().split("&").forEach(function(Q){if(Q){var _=Q.split("="),M=_.shift().replace(/\+/g," "),I=_.join("=").replace(/\+/g," ");L.append(decodeURIComponent(M),decodeURIComponent(I))}}),L}function N(w){var L=new A,Q=w.replace(/\r?\n[\t ]+/g," ");return Q.split(/\r?\n/).forEach(function(_){var M=_.split(":"),I=M.shift().trim();if(I){var T=M.join(":").trim();L.append(I,T)}}),L}m.call(C.prototype);function z(w,L){L||(L={}),this.type="default",this.status=L.status===void 0?200:L.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in L?L.statusText:"OK",this.headers=new A(L.headers),this.url=L.url||"",this._initBody(w)}m.call(z.prototype),z.prototype.clone=function(){return new z(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new A(this.headers),url:this.url})},z.error=function(){var w=new z(null,{status:0,statusText:""});return w.type="error",w};var H=[301,302,303,307,308];z.redirect=function(w,L){if(H.indexOf(L)===-1)throw new RangeError("Invalid status code");return new z(null,{status:L,headers:{location:w}})},s.DOMException=o.DOMException;try{new s.DOMException}catch{s.DOMException=function(L,Q){this.message=L,this.name=Q;var _=Error(L);this.stack=_.stack},s.DOMException.prototype=Object.create(Error.prototype),s.DOMException.prototype.constructor=s.DOMException}function Y(w,L){return new Promise(function(Q,_){var M=new C(w,L);if(M.signal&&M.signal.aborted)return _(new s.DOMException("Aborted","AbortError"));var I=new XMLHttpRequest;function T(){I.abort()}I.onload=function(){var G={status:I.status,statusText:I.statusText,headers:N(I.getAllResponseHeaders()||"")};G.url="responseURL"in I?I.responseURL:G.headers.get("X-Request-URL");var O="response"in I?I.response:I.responseText;Q(new z(O,G))},I.onerror=function(){_(new TypeError("Network request failed"))},I.ontimeout=function(){_(new TypeError("Network request failed"))},I.onabort=function(){_(new s.DOMException("Aborted","AbortError"))},I.open(M.method,M.url,!0),M.credentials==="include"?I.withCredentials=!0:M.credentials==="omit"&&(I.withCredentials=!1),"responseType"in I&&l.blob&&(I.responseType="blob"),M.headers.forEach(function(G,O){I.setRequestHeader(O,G)}),M.signal&&(M.signal.addEventListener("abort",T),I.onreadystatechange=function(){I.readyState===4&&M.signal.removeEventListener("abort",T)}),I.send(typeof M._bodyInit>"u"?null:M._bodyInit)})}return Y.polyfill=!0,o.fetch||(o.fetch=Y,o.Headers=A,o.Request=C,o.Response=z),s.Headers=A,s.Request=C,s.Response=z,s.fetch=Y,Object.defineProperty(s,"__esModule",{value:!0}),s})({})})(a),a.fetch.ponyfill=!0,delete a.fetch.polyfill;var n=a;e=n.fetch,e.default=n.fetch,e.fetch=n.fetch,e.Headers=n.Headers,e.Request=n.Request,e.Response=n.Response,t.exports=e})(He,He.exports);var p0=He.exports;const A0=Qe(p0),st=(t,e=!0)=>typeof t=="boolean"?t:typeof t=="string"?t.toLowerCase()!=="false":e,ee=(t,e=0)=>typeof t=="number"?t:typeof t=="string"?Number(t):e,H1="weather_update_time",Y1="flood_update_time",Q1="weather_finland_active_all",j1="flood_finland_active_all",D0=["moderate","severe","extreme"],Kt="?service=WFS&version=1.0.0&request=GetFeature&maxFeatures=1000&outputFormat=application%2Fjson&typeName=";function b0(t){const{baseUrl:e,language:r,theme:a,warnings:n,currentDate:o,fontScale:s,debugMode:l,weatherUpdated:d,floodUpdated:u,weatherWarnings:g,floodWarnings:f}=t,y=l2(1),k=l2(null),A=l2(null),h=l2(`${a.value}-theme`),x=l2(null),S=l2(!0),B=l2(!1),c={fi:"fi-FI",sv:"sv-SV",en:"en-US"},v=()=>c[r.value]||"fi-FI",m=q(()=>`${D0.reduce((I,T,G)=>`${I}${G===0?"":","}%27${T.toUpperCase()}%27`,"&cql_filter=severity%20IN%20(")})%20AND%20language=%27${v()}%27`),p=q(()=>d?.value||`${Kt}${H1}`),b=q(()=>u?.value||`${Kt}${Y1}`),C=q(()=>g?.value||`${Kt}${Q1}`),E=q(()=>f?.value||`${Kt}${j1}${m.value}`),N=q(()=>A.value?A.value:o?.value?(o.value instanceof Date?o.value:new Date(o.value)).getTime():Date.now());return{loading:y,updatedAt:k,refreshedAt:A,themeClass:h,warningsData:x,visible:S,currentTime:N,weatherUpdatedQuery:p,floodUpdatedQuery:b,weatherWarningsQuery:C,floodWarningsQuery:E,onLoaded:M=>{M!==0&&(y.value=M===-1?-1:0)},onThemeChanged:M=>{h.value=`${M!=null&&M.length>0?M:a.value}-theme`},fetchWarnings:()=>{if(n?.value||B.value)return;B.value=!0,y.value=1,l?.value&&console.log(`Updating warnings at ${new Date}`);const M=`_t=${Date.now()}`,I=O=>O.includes("?")?`${O}&${M}`:`${O}?${M}`,T=new Map([[`${e.value}${p.value}`,H1],[`${e.value}${b.value}`,Y1],[`${e.value}${C.value}`,Q1],[`${e.value}${E.value}`,j1]]),G={};return Promise.allSettled([...T.keys()].map(async O=>A0(I(O)).then(P=>P.json().then(j=>{const U=Date.now();k.value!=null&&(A.value=U),k.value=U,G[T.get(O)]=j}).catch(j=>{y.value=-1,console.log(j)})))).then(()=>{x.value=G}).finally(()=>{B.value=!1})},show:()=>{S.value=!0},hide:()=>{S.value=!1},initializeWarnings:()=>{n?.value&&(x.value=typeof n.value=="string"?JSON.parse(n.value):n.value)},applyFontScale:()=>{const M=ee(s?.value,1);if(M!==1){let I;if(typeof window<"u"&&typeof document<"u"&&document.documentElement&&window.getComputedStyle){const O=document.documentElement,P=window.getComputedStyle(O);I=parseFloat(P.fontSize)}(I==null||Number.isNaN(I))&&(I=16);const T=M*I,G=Math.round(T*100)/100;document.documentElement.style.fontSize=`${G}px`}}}}const w0="2021",y0=b2({name:"App",__name:"App",props:{currentDate:{default:"",type:String},baseUrl:{default:"https://www.ilmatieteenlaitos.fi/geoserver/alert/ows",type:String},selectedDay:{default:"0",type:String},regionListEnabled:{default:"true",type:String},spinnerEnabled:{default:"true",type:String},grayScaleSelector:{default:"true",type:String},staticDays:{default:"true",type:String},startFrom:{default:"",type:String},weatherUpdated:{default:"",type:String},floodUpdated:{default:"",type:String},weatherWarnings:{default:"",type:String},floodWarnings:{default:"",type:String},warnings:{default:"",type:String},dailyWarningTypes:{default:"",type:String},refreshInterval:{default:"900000",type:String},geometryId:{default:w0,type:String},language:{default:"fi",type:String},theme:{default:"light",type:String},fontScale:{default:"1",type:String},sleep:{default:"true",type:String},debugMode:{default:"false",type:String}},setup(t,{expose:e}){const r=t,a=q(()=>ee(r.selectedDay,0)),n=q(()=>st(r.regionListEnabled,!0)),o=q(()=>st(r.grayScaleSelector,!0)),s=q(()=>st(r.staticDays,!0)),l=q(()=>r.dailyWarningTypes?r.dailyWarningTypes.split(",").map(E=>E.trim()):[]),d=q(()=>ee(r.refreshInterval,9e5)),u=q(()=>ee(r.geometryId,2021)),g=q(()=>st(r.sleep,!0)),f=q(()=>st(r.spinnerEnabled,!0)),y=q(()=>st(r.debugMode,!1)),k=q(()=>r.language),A=q(()=>r.warnings?r.warnings:null),{loading:h,themeClass:x,warningsData:S,visible:B,currentTime:c,onLoaded:v,onThemeChanged:m,fetchWarnings:p,initializeWarnings:b,applyFontScale:C}=b0({baseUrl:n2(r,"baseUrl"),language:k,theme:n2(r,"theme"),warnings:A,currentDate:n2(r,"currentDate"),fontScale:n2(r,"fontScale"),debugMode:y,weatherUpdated:n2(r,"weatherUpdated"),floodUpdated:n2(r,"floodUpdated"),weatherWarnings:n2(r,"weatherWarnings"),floodWarnings:n2(r,"floodWarnings")});return b(),ct(()=>{C()}),e({show:()=>{B.value=!0},hide:()=>{B.value=!1}}),(E,N)=>$(B)?(Z(),K2(h0,{key:0,"refresh-interval":d.value,"default-day":a.value,"static-days":s.value,"start-from":E.startFrom,"region-list-enabled":n.value,"gray-scale-selector":o.value,"current-time":$(c),"warnings-data":$(S),"daily-warning-types":l.value,"geometry-id":u.value,language:E.language,theme:$(x),sleep:g.value,loading:$(h),"spinner-enabled":f.value,onLoaded:$(v),onThemeChanged:$(m),onUpdateWarnings:$(p)},null,8,["refresh-interval","default-day","static-days","start-from","region-list-enabled","gray-scale-selector","current-time","warnings-data","daily-warning-types","geometry-id","language","theme","sleep","loading","spinner-enabled","onLoaded","onThemeChanged","onUpdateWarnings"])):g2("",!0)}}),C0="div#fmi-warnings div .mobile-only{display:block}@media (min-width: 768px){div#fmi-warnings div .mobile-only{display:none}}div#fmi-warnings div .desktop-only{display:none}@media (min-width: 768px){div#fmi-warnings div .desktop-only{display:block}}div#fmi-warnings div .d-none{display:none!important}div#fmi-warnings div .d-block{display:block!important}@media (min-width: 768px){div#fmi-warnings div .d-md-none{display:none!important}div#fmi-warnings div .d-md-block{display:block!important}div#fmi-warnings div .d-md-table-cell{display:table-cell!important}}div#fmi-warnings div .d-inline{display:inline!important}div#fmi-warnings div .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}div#fmi-warnings div .visually-hidden-focusable{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}div#fmi-warnings div .visually-hidden-focusable:focus,div#fmi-warnings div .visually-hidden-focusable:focus-within{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}div#fmi-warnings div .focus-ring{outline:none}div#fmi-warnings div .focus-ring:focus{outline:2px solid #0d6efd;outline-offset:2px}div#fmi-warnings div .focus-ring:focus:not(:focus-visible){outline:none}div#fmi-warnings div .focus-ring:focus-visible{outline:2px solid #0d6efd;outline-offset:2px}@media (min-width: 576px){div#fmi-warnings div .d-sm-block{display:block!important}div#fmi-warnings div .d-sm-none{display:none!important}}div#fmi-warnings div .mb-1{margin-bottom:.25rem}div#fmi-warnings div .p-0{padding:0}div#fmi-warnings div .p-1{padding:.25rem}div#fmi-warnings div .sticky-top{position:sticky;top:0;z-index:10}div#fmi-warnings div .row{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0}div#fmi-warnings div .nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}div#fmi-warnings div .nav-tabs{border-bottom:none}div#fmi-warnings div .nav-item{margin-bottom:0}div#fmi-warnings div .nav-link{display:block;padding:0;text-decoration:none;background:none;border:none;cursor:pointer}div#fmi-warnings div .tab-content>.tab-pane{display:none}div#fmi-warnings div .tab-content>.tab-pane.active,div#fmi-warnings div .tab-content>.tab-pane.show{display:block}div#fmi-warnings div .tab-content .spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border-animation .75s linear infinite}@keyframes spinner-border-animation{to{transform:rotate(360deg)}}div#fmi-warnings div .tab-content .text-center{text-align:center!important}",k0=w2(y0,[["styles",[C0]]]);M3({rootComponent:k0,elementName:"smartmet-alert-client",VueDefineCustomElement:q3,h:T3,createApp:P3,getCurrentInstance:oe,disableShadowDOM:!0});
234
+ `,e+=">"+r,t.value&&(e+=t.value),t.children&&(e+=t.children.map(a=>this.stringify(a)).join(r)),e+=r+"</"+t.tag+">"):e+="/>",e)},stringifyProperties(t){return Object.keys(t).reduce((e,r)=>{const a=t[r];if(!a&&a!==0)return e;const n=a!=null&&a.toString===String.prototype.toString?a:JSON.stringify(a);return r==="href"&&(r="xlink:href"),e+" "+r+'="'+this.stringEscape(n)+'"'},"")},stringEscape(t){return String(t).replace(yn,function(e){return Cn[e]})},transformPoints(t,e){t.arcs&&t.arcs.transformPoints(e),t.layers.forEach(r=>{this.layerHasPoints(r)&&this.transformPointsInLayer(r,e)})},getRoundingFunction(t){(!(t!=null&&t.constructor===Number)||t===0)&&console.log("Rounding increment must be a non-zero number.");let e=1/t;return e>1&&(e=Math.round(e)),function(r){return Math.round(r*e)/e}},forEachArcId(t,e){let r;for(let a=0;a<t.length;a++)if(r=t[a],r instanceof Array)this.forEachArcId(r,e);else if(r!=null&&r.constructor===Number&&(r|0)===r){const n=e(r);n!==void 0&&(t[a]=n)}else r&&console.log("Non-integer arc id in:",t)},getEmptyLayerForSVG(t){const e={tag:"g",properties:{id:t.name},children:[]};return t.geometry_type==="polyline"&&(e.properties.fill="none"),t.geometry_type==="polyline"&&(e.properties.stroke="black",e.properties["stroke-width"]=1),e},layerHasPoints(t){return t.geometry_type==="point"&&this.layerHasNonNullShapes(t)},transformPointsInLayer(t,e){this.layerHasPoints(t)&&this.forEachPoint(t.shapes,function(r){const a=e(r[0],r[1]);r[0]=a[0],r[1]=a[1]})},forEachPoint(t,e){let r,a,n,o,s;for(r=0,a=t.length;r<a;r++)for(s=t[r],n=0,o=s?s.length:0;n<o;n++)e(s[n],r)},exportSymbolsForSVG(t,e,r){const a=this.defaults({layers:[t]},e),n=this.exportDatasetAsGeoJSON(a,r),o=n.features||n.geometries||(n.type?[n]:[]),s=this.importGeoJSONFeatures(o,r);return r.svg_data&&t.data&&this.addDataAttributesToSVG(s,t.data,r.svg_data),s},parseMarginOption(t){const r=(t!=null&&t.constructor===Number?String(t):t||"").trim().split(/[, ] */);return r.length==1&&r.push(r[0]),r.length==2&&r.push(r[0],r[1]),r.length==3&&r.push(r[2]),r.map(function(a){const n=parseFloat(a);return isNaN(n)?1:n})},defaults(t){for(let e=1,r=arguments.length;e<r;e++){const a=arguments[e]||{};for(const n in a)!(n in t)&&a.hasOwnProperty(n)&&(t[n]=a[n])}return t},exportDatasetAsGeoJSON(t,e){const r={},a=t.layers,n=this.useFeatureCollection(a);let o;n?(r.type="FeatureCollection",o="features"):(r.type="GeometryCollection",o="geometries");const s=a.reduce((l,d,u)=>{const g=this.exportLayerAsGeoJSON(d,t,e,n);return l.length>0?l.concat(g):g},[]);return r[o]=s,r},useFeatureCollection(t){return this.someUtil(t,e=>{const r=e.data?e.data.getFields():[],a=this.useFeatureProperties(r),n=!!this.getIdField(r);return a||n})},useFeatureProperties(t){return!(t.length===0||t.length===1&&t[0]==F2.ID_FIELD)},getIdField(t){const e=[];return e.push(F2.ID_FIELD),this.find(e,r=>this.contains(t,r))},contains(t,e){if(t!=null&&t.toString===String.prototype.toString)return t.indexOf(e)!==-1;if(Je(t))return this.indexOf(t,e)!==-1;console.log("Expected Array or String argument")},indexOf(t,e){const r=e!==e;for(let a=0,n=t.length||0;a<n;a++)if(t[a]===e||r&&t[a]!==t[a])return a;return-1},find(t,e,r){const a=t.filter(e,r);return a.length===0?null:a[0]},exportLayerAsGeoJSON(t,e,r,a){const n=this.exportProperties(t.data,r),o=t.shapes,s=this.exportIds(t.data,r);return n&&o&&n.length!==o.length&&console.log("Mismatch between number of properties and number of shapes"),(o||n||[]).reduce(function(l,d,u){const g=o?o[u]:null,f=F2.exporters[t.geometry_type];let y=g?f(g,e.arcs,r):null;if(a)y={type:"Feature",geometry:y,properties:n?n[u]:null},s&&(y.id=s[u]);else if(!y)return l;return l.push(y),l},[])},exportProperties(t,e){const r=t?t.getFields():[],a=this.getIdField(r,e);let n;if(!this.useFeatureProperties(r,e))return null;const o=t.getRecords();return a==F2.ID_FIELD?n=o.map(function(s){return s=xt({},s),delete s[a],s}):n=o,n},importGeoJSONFeatures(t,e){return e=e||{},t.map((r,a)=>{const n=r.type==="Feature"?r.geometry:r,o=n&&n.type;let s=null;return o&&n.coordinates&&(s=Zn[o](n.coordinates,r.properties,e)),s?(r.properties&&this.applyStyleAttributes(s,o,r.properties),"id"in r&&(s.properties||(s.properties={}),s.properties.id=(e.id_prefix||"")+r.id),s):{tag:"g"}})},addDataAttributesToSVG(t,e,r){const a=e.getFields();let n=r.indexOf("*")>-1?a.concat():r;const o=this.difference(n,a);o.length>0&&(n=this.difference(n,o));const s=e.getRecords(),l=this.exportDataAttributesForSVG(s,n);t.length!==l.length&&console.log("Mismatch between number of SVG symbols and data attributes"),t.forEach(function(d,u){xt(d.properties||{},l[u])})},exportDataAttributesForSVG(t,e){const r=/^[a-z_][a-z0-9_-]*$/i,a=/^xml/,n=e.filter(function(s){return r.test(s)&&!a.test(s)}),o=this.difference(e,n);return o.length>0&&(console.log("Unable to add data-* attributes for field(s):",o.join(", ")),console.log("data-* names should match pattern [a-z_][a-z0-9_-]*")),t.map(function(s){const l={};for(let d=0;d<n.length;d++)l["data-"+n[d].toLowerCase()]=String(s[n[d]]);return l})},difference(t,e){const r=this.arrayToIndex(e);return t.filter(function(a){return!Object.prototype.hasOwnProperty.call(r,a)})},arrayToIndex(t,e){const r=arguments.length>1;return t.reduce(function(a,n){return a[n]=r?e:!0,a},{})},applyStyleAttributes(t,e,r){let a=F2.translateGeoJSONType(e);a==="point"&&"label-text"in r&&(a="label");const n=this.findPropertiesBySymbolGeom(Object.keys(r),a);for(let o=0,s=n.length;o<s;o++)this.setAttribute(t,n[o],r[n[o]])},findPropertiesBySymbolGeom(t,e){const r=kn[e]||{};return t.filter(function(a){return a in r})},setAttribute(t,e,r){e==="r"||(t.properties||(t.properties={}),t.properties[e]=r,e==="stroke-dasharray"&&r&&(t.properties["stroke-linecap"]="butt"))},exportIds(t,e){const r=t?t.getFields():[],a=this.getIdField(r,e);return a?t.getRecords().map(function(n){return a in n?n[a]:null}):null}}},t0=t=>(gt("data-v-3ed8c052"),t=t(),ft(),t),e0=["data-smartmet-alert-client-version"],r0={class:"row"},a0={class:"col-12 col-md-8 col-lg-8 col-xl-8 day-region-views"},i0=["aria-label"],n0={key:1,class:"not-ready"},o0=["href"],s0={key:2},l0=["href"],d0=["aria-label"],u0={class:"col-12 col-md-4 col-lg-4 col-xl-4 symbol-list"},c0={key:0,class:"row"},g0={class:"col-12 col-md-8 col-lg-8 col-xl-8 day-region-views"},f0=t0(()=>F("div",{class:"col-12 col-md-4 col-lg-4 col-xl-4 symbol-list"},null,-1)),m0=b2({__name:"AlertClient",props:{refreshInterval:{default:1e3*60*15,type:Number},defaultDay:{default:0,type:Number},staticDays:{type:Boolean,default:!0},startFrom:{default:"",type:String},regionListEnabled:{type:Boolean,default:!0},grayScaleSelector:{type:Boolean,default:!1},currentTime:{default:()=>Date.now(),type:Number},warningsData:{default:null,type:[Object,null]},dailyWarningTypes:{default:()=>[],type:Array},geometryId:{default:2021,type:Number},language:{default:"en",type:String},theme:{default:"light-theme",type:String},loading:{default:1,type:Number},sleep:{type:Boolean,default:!0},spinnerEnabled:{type:Boolean,default:!0}},emits:["loaded","themeChanged","update-warnings"],setup(t,{emit:e}){const r=t,a=e,n=qt(),{t:o}=G2(n2(r,"language")),s=l2(r.defaultDay),l=l2([]),d=l2(null),u=l2(null),g=l2(null),f=l2([]),y=l2(V3()),k=l2({}),A=l2([]),h=l2(0),x="4.7.0",S=l2([]),B=O1.methods.geoJSONToSVG.bind(O1.methods),c=q(()=>String(r.geometryId)),v=q(()=>n.geometries),m=q(()=>n.regionIds),p=q(()=>n.warningTypes),b=q(()=>n.timeZone),C=q(()=>n.dateTimeFormatLocale),E=q(()=>r.currentTime),N=q(()=>r.startFrom),z=q(()=>r.staticDays),H=q(()=>r.dailyWarningTypes),Y=q(()=>n.maxUpdateDelay),w=q(()=>n.bbox),L=J=>{S.value.includes(J)||S.value.push(J),console.log(J)},Q=()=>{a("loaded",-1)},{handleMapWarnings:_}=pn({geometryId:c,geometries:v,regionIds:m,warningTypes:p,timeZone:b,locale:C,currentTime:E,startFrom:N,staticDays:z,dailyWarningTypes:H,maxUpdateDelay:Y,bbox:w,geoJSONToSVG:B,t:o,handleError:L,onDataError:Q}),M=q(()=>[ae,ie].some(J=>(y.value?.[s.value]?.[J]?.length??0)>0)?o("toContent")||"":o("toNextContent")||""),I=q(()=>[ae,ie].some(J=>(y.value?.[s.value]?.[J]?.length??0)>0)?"#fmi-warnings-region-content":"#fmi-warnings-end-of-regions"),T=q(()=>o("noWarnings")),G=q(()=>A.value.length>0?o("validWarnings"):o("noWarnings")),O=q(()=>A.value.length>0?o("validWarningsAriaLabel"):o("noWarnings")),P=q(()=>o("supportedBrowsersLink")),j=q(()=>o("supportedBrowsers")),U=q(()=>r.loading===-1?o("failed"):o("notInitializedStart")),e2=q(()=>r.loading===-1?"":o("notInitializedEnd")),V=q(()=>g.value!=null?Object.keys(g.value).length:0),t2=q(()=>f.value!=null&&f.value.length===5&&f.value[0]?.updatedDate!=null&&f.value[0]?.updatedDate.length>0),d2=J=>{s.value=J},m2=J=>{l.value=J,A.value.forEach((S2,Q2)=>{const mt=J.includes(S2.type);mt!==S2.visible&&A.value[Q2]&&(A.value[Q2].visible=mt)})},A2=J=>{r.loading!==-1&&J&&a("loaded",1)},L2=J=>{r.theme!==J&&a("themeChanged",J)},y2=()=>{const Q2=oe()?.proxy?.$el?.querySelector(I.value);Q2?.scrollIntoView(),Q2?.focus()},C2=()=>{if(r.warningsData!=null){const J=_(r.warningsData);g.value=J.warnings,f.value=J.days,y.value=J.regions,k.value=J.parents,A.value=J.legend,l.value=A.value.filter(S2=>S2.visible).map(S2=>S2.type)}},v2=()=>{Jt()&&r.refreshInterval&&(document.hidden?$2():($2(),U2(),N2()))},N2=()=>{r.refreshInterval&&(d.value=setInterval(U2,r.refreshInterval))},$2=()=>{d.value!=null&&(clearInterval(d.value),d.value=null)},U2=()=>{r.refreshInterval>0&&a("update-warnings")};return Ft(()=>r.warningsData,()=>{C2()}),C2(),r.warningsData==null&&U2(),ct(()=>{N2(),Jt()&&r.sleep&&(document.addEventListener("visibilitychange",v2),u.value=v2)}),X1(()=>{Jt()&&u.value&&document.removeEventListener("visibilitychange",u.value),$2()}),F3(()=>{C2()}),(J,S2)=>(Z(),R("div",{id:"fmi-warnings",class:a2(J.theme),"data-smartmet-alert-client-version":$(x)},[F("div",{id:"fmi-warnings-errors",class:a2(S.value)},null,2),F("div",null,[F("div",{class:a2(["container-fluid",J.theme])},[F("div",r0,[F("div",a0,[J.loading?g2("",!0):(Z(),R("h2",{key:0,class:"valid-warnings","aria-label":O.value},r2(G.value),9,i0)),J.loading?(Z(),R("div",n0,[F("p",null,r2(U.value)+" "+r2(e2.value),1),F("a",{href:P.value,target:"_blank",rel:"noopener noreferrer",class:"supported-browsers"},r2(j.value),9,o0)])):g2("",!0),J.regionListEnabled?(Z(),R("div",s0,[V.value?(Z(),R("a",{key:0,id:"fmi-warnings-to-text-content",href:I.value,tabindex:"0",class:"visually-hidden-focusable focus-ring",onClick:y2},r2(M.value),9,l0)):(Z(),R("div",{key:1,"aria-label":T.value},null,8,d0))])):g2("",!0),T2(s4,{input:f.value,"visible-warnings":l.value,"selected-day":s.value,"static-days":J.staticDays,"time-offset":h.value,warnings:g.value,regions:y.value,"geometry-id":J.geometryId,loading:!!J.loading,theme:J.theme,language:J.language,"spinner-enabled":J.spinnerEnabled,onDaySelected:d2,onLoaded:A2},null,8,["input","visible-warnings","selected-day","static-days","time-offset","warnings","regions","geometry-id","loading","theme","language","spinner-enabled"])]),F("div",u0,[L3(T2(D5,{input:A.value,"visible-warnings":l.value,"gray-scale-selector":J.grayScaleSelector,theme:J.theme,language:J.language,onThemeChanged:L2,onWarningsToggled:m2},null,8,["input","visible-warnings","gray-scale-selector","theme","language"]),[[S3,t2.value]])])]),J.regionListEnabled?(Z(),R("div",c0,[F("div",g0,[T2(nn,{input:y.value,"selected-day":s.value,warnings:g.value,parents:k.value,"geometry-id":J.geometryId,theme:J.theme,language:J.language},null,8,["input","selected-day","warnings","parents","geometry-id","theme","language"])]),f0])):g2("",!0)],2)])],10,e0))}}),v0='@font-face{font-family:Noto Sans;font-weight:400;font-style:normal;src:url(data:font/woff2;base64,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) format("woff2");font-display:swap}div#fmi-warnings div[data-v-3ed8c052] *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;font-family:Roboto,Helvetica,Arial,Noto Sans,sans-serif;font-size:1rem;line-height:1.42857143;background-color:transparent;font-weight:400}div#fmi-warnings div[data-v-3ed8c052] * *:focus{outline-offset:2px;z-index:5}div#fmi-warnings div[data-v-3ed8c052] * .bold-text{font-weight:700!important}div#fmi-warnings div[data-v-3ed8c052] * .noselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}div#fmi-warnings div[data-v-3ed8c052] * h3{font-weight:700}div#fmi-warnings div[data-v-3ed8c052] .light-theme *{color:#191b22}div#fmi-warnings div[data-v-3ed8c052] .dark-theme *{color:#fff}div#fmi-warnings div[data-v-3ed8c052] .light-gray-theme *{color:#191b22}div#fmi-warnings div[data-v-3ed8c052] .dark-gray-theme *{color:#fff}div#fmi-warnings[data-v-3ed8c052]{width:700px;padding:0;margin-bottom:20px}div#fmi-warnings h2.valid-warnings[data-v-3ed8c052]{text-align:left;font-weight:700;margin-top:0;margin-bottom:3px}div#fmi-warnings div.not-ready[data-v-3ed8c052]{width:100%;padding:15px}div#fmi-warnings div.not-ready a.supported-browsers[data-v-3ed8c052]{font-weight:700;text-decoration:none}div#fmi-warnings .light-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #303193}div#fmi-warnings .light-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#303193;border-bottom:1px solid #02A3B7}div#fmi-warnings .light-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#303193}div#fmi-warnings .dark-theme div.not-ready[data-v-3ed8c052]{background-color:#282b34;border:1px solid #e7f0fa}div#fmi-warnings .dark-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#e7f0fa;border-bottom:1px solid #e7f0fa}div#fmi-warnings .dark-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#e7f0fa}div#fmi-warnings .light-gray-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #303193}div#fmi-warnings .light-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#434752;border-bottom:1px solid #434752}div#fmi-warnings .light-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#191b22}div#fmi-warnings .dark-gray-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #e7f0fa}div#fmi-warnings .dark-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#eee;border-bottom:1px solid #eee}div#fmi-warnings .dark-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#fff}div#fmi-warnings div[data-v-3ed8c052]{background-color:transparent}div#fmi-warnings div.container-fluid[data-v-3ed8c052]{padding:0;margin:5px 0 0}div#fmi-warnings a#fmi-warnings-to-text-content[data-v-3ed8c052]{font-family:Roboto,Helvetica,Arial,Noto Sans,sans-serif;font-size:1rem;height:20px}div#fmi-warnings a#fmi-warnings-to-text-content[data-v-3ed8c052]:focus{outline-offset:2px}div#fmi-warnings div .row[data-v-3ed8c052]{margin-left:0;margin-right:0}div#fmi-warnings div div.day-region-views[data-v-3ed8c052]{max-width:440px;width:440px;padding-left:0;padding-right:0}div#fmi-warnings div div.symbol-list[data-v-3ed8c052]{top:0;z-index:1;padding-left:20px;padding-right:0;box-sizing:border-box;width:260px;max-width:260px;min-width:260px}div#fmi-warnings div .light-gray-theme a.supported-browsers[data-v-3ed8c052]{color:#434752}div#fmi-warnings div .dark-gray-theme a.supported-browsers[data-v-3ed8c052]{color:#eee}@media (max-width: 767px){div#fmi-warnings[data-v-3ed8c052]{width:100%}div#fmi-warnings div div.day-region-views[data-v-3ed8c052]{min-width:100%;width:100%;max-width:100%}div#fmi-warnings div div.symbol-list[data-v-3ed8c052]{position:static;padding-left:0;margin-top:0;margin-bottom:0;min-width:100%;width:100%;max-width:100%}}@media print{div#fmi-warnings div .symbol-list[data-v-3ed8c052]{display:none}}',h0=w2(m0,[["styles",[v0]],["__scopeId","data-v-3ed8c052"]]);var He={exports:{}};(function(t,e){var r=typeof self<"u"?self:Vt,a=function(){function o(){this.fetch=!1,this.DOMException=r.DOMException}return o.prototype=r,new o}();(function(o){(function(s){var l={searchParams:"URLSearchParams"in o,iterable:"Symbol"in o&&"iterator"in Symbol,blob:"FileReader"in o&&"Blob"in o&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in o,arrayBuffer:"ArrayBuffer"in o};function d(w){return w&&DataView.prototype.isPrototypeOf(w)}if(l.arrayBuffer)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=ArrayBuffer.isView||function(w){return w&&u.indexOf(Object.prototype.toString.call(w))>-1};function f(w){if(typeof w!="string"&&(w=String(w)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(w))throw new TypeError("Invalid character in header field name");return w.toLowerCase()}function y(w){return typeof w!="string"&&(w=String(w)),w}function k(w){var L={next:function(){var Q=w.shift();return{done:Q===void 0,value:Q}}};return l.iterable&&(L[Symbol.iterator]=function(){return L}),L}function A(w){this.map={},w instanceof A?w.forEach(function(L,Q){this.append(Q,L)},this):Array.isArray(w)?w.forEach(function(L){this.append(L[0],L[1])},this):w&&Object.getOwnPropertyNames(w).forEach(function(L){this.append(L,w[L])},this)}A.prototype.append=function(w,L){w=f(w),L=y(L);var Q=this.map[w];this.map[w]=Q?Q+", "+L:L},A.prototype.delete=function(w){delete this.map[f(w)]},A.prototype.get=function(w){return w=f(w),this.has(w)?this.map[w]:null},A.prototype.has=function(w){return this.map.hasOwnProperty(f(w))},A.prototype.set=function(w,L){this.map[f(w)]=y(L)},A.prototype.forEach=function(w,L){for(var Q in this.map)this.map.hasOwnProperty(Q)&&w.call(L,this.map[Q],Q,this)},A.prototype.keys=function(){var w=[];return this.forEach(function(L,Q){w.push(Q)}),k(w)},A.prototype.values=function(){var w=[];return this.forEach(function(L){w.push(L)}),k(w)},A.prototype.entries=function(){var w=[];return this.forEach(function(L,Q){w.push([Q,L])}),k(w)},l.iterable&&(A.prototype[Symbol.iterator]=A.prototype.entries);function h(w){if(w.bodyUsed)return Promise.reject(new TypeError("Already read"));w.bodyUsed=!0}function x(w){return new Promise(function(L,Q){w.onload=function(){L(w.result)},w.onerror=function(){Q(w.error)}})}function S(w){var L=new FileReader,Q=x(L);return L.readAsArrayBuffer(w),Q}function B(w){var L=new FileReader,Q=x(L);return L.readAsText(w),Q}function c(w){for(var L=new Uint8Array(w),Q=new Array(L.length),_=0;_<L.length;_++)Q[_]=String.fromCharCode(L[_]);return Q.join("")}function v(w){if(w.slice)return w.slice(0);var L=new Uint8Array(w.byteLength);return L.set(new Uint8Array(w)),L.buffer}function m(){return this.bodyUsed=!1,this._initBody=function(w){this._bodyInit=w,w?typeof w=="string"?this._bodyText=w:l.blob&&Blob.prototype.isPrototypeOf(w)?this._bodyBlob=w:l.formData&&FormData.prototype.isPrototypeOf(w)?this._bodyFormData=w:l.searchParams&&URLSearchParams.prototype.isPrototypeOf(w)?this._bodyText=w.toString():l.arrayBuffer&&l.blob&&d(w)?(this._bodyArrayBuffer=v(w.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):l.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(w)||g(w))?this._bodyArrayBuffer=v(w):this._bodyText=w=Object.prototype.toString.call(w):this._bodyText="",this.headers.get("content-type")||(typeof w=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):l.searchParams&&URLSearchParams.prototype.isPrototypeOf(w)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},l.blob&&(this.blob=function(){var w=h(this);if(w)return w;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?h(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(S)}),this.text=function(){var w=h(this);if(w)return w;if(this._bodyBlob)return B(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(c(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},l.formData&&(this.formData=function(){return this.text().then(E)}),this.json=function(){return this.text().then(JSON.parse)},this}var p=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function b(w){var L=w.toUpperCase();return p.indexOf(L)>-1?L:w}function C(w,L){L=L||{};var Q=L.body;if(w instanceof C){if(w.bodyUsed)throw new TypeError("Already read");this.url=w.url,this.credentials=w.credentials,L.headers||(this.headers=new A(w.headers)),this.method=w.method,this.mode=w.mode,this.signal=w.signal,!Q&&w._bodyInit!=null&&(Q=w._bodyInit,w.bodyUsed=!0)}else this.url=String(w);if(this.credentials=L.credentials||this.credentials||"same-origin",(L.headers||!this.headers)&&(this.headers=new A(L.headers)),this.method=b(L.method||this.method||"GET"),this.mode=L.mode||this.mode||null,this.signal=L.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Q)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Q)}C.prototype.clone=function(){return new C(this,{body:this._bodyInit})};function E(w){var L=new FormData;return w.trim().split("&").forEach(function(Q){if(Q){var _=Q.split("="),M=_.shift().replace(/\+/g," "),I=_.join("=").replace(/\+/g," ");L.append(decodeURIComponent(M),decodeURIComponent(I))}}),L}function N(w){var L=new A,Q=w.replace(/\r?\n[\t ]+/g," ");return Q.split(/\r?\n/).forEach(function(_){var M=_.split(":"),I=M.shift().trim();if(I){var T=M.join(":").trim();L.append(I,T)}}),L}m.call(C.prototype);function z(w,L){L||(L={}),this.type="default",this.status=L.status===void 0?200:L.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in L?L.statusText:"OK",this.headers=new A(L.headers),this.url=L.url||"",this._initBody(w)}m.call(z.prototype),z.prototype.clone=function(){return new z(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new A(this.headers),url:this.url})},z.error=function(){var w=new z(null,{status:0,statusText:""});return w.type="error",w};var H=[301,302,303,307,308];z.redirect=function(w,L){if(H.indexOf(L)===-1)throw new RangeError("Invalid status code");return new z(null,{status:L,headers:{location:w}})},s.DOMException=o.DOMException;try{new s.DOMException}catch{s.DOMException=function(L,Q){this.message=L,this.name=Q;var _=Error(L);this.stack=_.stack},s.DOMException.prototype=Object.create(Error.prototype),s.DOMException.prototype.constructor=s.DOMException}function Y(w,L){return new Promise(function(Q,_){var M=new C(w,L);if(M.signal&&M.signal.aborted)return _(new s.DOMException("Aborted","AbortError"));var I=new XMLHttpRequest;function T(){I.abort()}I.onload=function(){var G={status:I.status,statusText:I.statusText,headers:N(I.getAllResponseHeaders()||"")};G.url="responseURL"in I?I.responseURL:G.headers.get("X-Request-URL");var O="response"in I?I.response:I.responseText;Q(new z(O,G))},I.onerror=function(){_(new TypeError("Network request failed"))},I.ontimeout=function(){_(new TypeError("Network request failed"))},I.onabort=function(){_(new s.DOMException("Aborted","AbortError"))},I.open(M.method,M.url,!0),M.credentials==="include"?I.withCredentials=!0:M.credentials==="omit"&&(I.withCredentials=!1),"responseType"in I&&l.blob&&(I.responseType="blob"),M.headers.forEach(function(G,O){I.setRequestHeader(O,G)}),M.signal&&(M.signal.addEventListener("abort",T),I.onreadystatechange=function(){I.readyState===4&&M.signal.removeEventListener("abort",T)}),I.send(typeof M._bodyInit>"u"?null:M._bodyInit)})}return Y.polyfill=!0,o.fetch||(o.fetch=Y,o.Headers=A,o.Request=C,o.Response=z),s.Headers=A,s.Request=C,s.Response=z,s.fetch=Y,Object.defineProperty(s,"__esModule",{value:!0}),s})({})})(a),a.fetch.ponyfill=!0,delete a.fetch.polyfill;var n=a;e=n.fetch,e.default=n.fetch,e.fetch=n.fetch,e.Headers=n.Headers,e.Request=n.Request,e.Response=n.Response,t.exports=e})(He,He.exports);var p0=He.exports;const A0=Qe(p0),st=(t,e=!0)=>typeof t=="boolean"?t:typeof t=="string"?t.toLowerCase()!=="false":e,ee=(t,e=0)=>typeof t=="number"?t:typeof t=="string"?Number(t):e,H1="weather_update_time",Y1="flood_update_time",Q1="weather_finland_active_all",j1="flood_finland_active_all",D0=["moderate","severe","extreme"],Kt="?service=WFS&version=1.0.0&request=GetFeature&maxFeatures=1000&outputFormat=application%2Fjson&typeName=";function b0(t){const{baseUrl:e,language:r,theme:a,warnings:n,currentDate:o,fontScale:s,debugMode:l,weatherUpdated:d,floodUpdated:u,weatherWarnings:g,floodWarnings:f}=t,y=l2(1),k=l2(null),A=l2(null),h=l2(`${a.value}-theme`),x=l2(null),S=l2(!0),B=l2(!1),c={fi:"fi-FI",sv:"sv-SV",en:"en-US"},v=()=>c[r.value]||"fi-FI",m=q(()=>`${D0.reduce((I,T,G)=>`${I}${G===0?"":","}%27${T.toUpperCase()}%27`,"&cql_filter=severity%20IN%20(")})%20AND%20language=%27${v()}%27`),p=q(()=>d?.value||`${Kt}${H1}`),b=q(()=>u?.value||`${Kt}${Y1}`),C=q(()=>g?.value||`${Kt}${Q1}`),E=q(()=>f?.value||`${Kt}${j1}${m.value}`),N=q(()=>A.value?A.value:o?.value?(o.value instanceof Date?o.value:new Date(o.value)).getTime():Date.now());return{loading:y,updatedAt:k,refreshedAt:A,themeClass:h,warningsData:x,visible:S,currentTime:N,weatherUpdatedQuery:p,floodUpdatedQuery:b,weatherWarningsQuery:C,floodWarningsQuery:E,onLoaded:M=>{M!==0&&(y.value=M===-1?-1:0)},onThemeChanged:M=>{h.value=`${M!=null&&M.length>0?M:a.value}-theme`},fetchWarnings:()=>{if(n?.value||B.value)return;B.value=!0,y.value=1,l?.value&&console.log(`Updating warnings at ${new Date}`);const M=`_t=${Date.now()}`,I=O=>O.includes("?")?`${O}&${M}`:`${O}?${M}`,T=new Map([[`${e.value}${p.value}`,H1],[`${e.value}${b.value}`,Y1],[`${e.value}${C.value}`,Q1],[`${e.value}${E.value}`,j1]]),G={};return Promise.allSettled([...T.keys()].map(async O=>A0(I(O)).then(P=>P.json().then(j=>{const U=Date.now();k.value!=null&&(A.value=U),k.value=U,G[T.get(O)]=j}).catch(j=>{y.value=-1,console.log(j)})))).then(()=>{x.value=G}).finally(()=>{B.value=!1})},show:()=>{S.value=!0},hide:()=>{S.value=!1},initializeWarnings:()=>{n?.value&&(x.value=typeof n.value=="string"?JSON.parse(n.value):n.value)},applyFontScale:()=>{const M=ee(s?.value,1);if(M!==1){let I;if(typeof window<"u"&&typeof document<"u"&&document.documentElement&&window.getComputedStyle){const O=document.documentElement,P=window.getComputedStyle(O);I=parseFloat(P.fontSize)}(I==null||Number.isNaN(I))&&(I=16);const T=M*I,G=Math.round(T*100)/100;document.documentElement.style.fontSize=`${G}px`}}}}const w0="2021",y0=b2({name:"App",__name:"App",props:{currentDate:{default:"",type:String},baseUrl:{default:"https://www.ilmatieteenlaitos.fi/geoserver/alert/ows",type:String},selectedDay:{default:"0",type:String},regionListEnabled:{default:"true",type:String},spinnerEnabled:{default:"true",type:String},grayScaleSelector:{default:"true",type:String},staticDays:{default:"true",type:String},startFrom:{default:"",type:String},weatherUpdated:{default:"",type:String},floodUpdated:{default:"",type:String},weatherWarnings:{default:"",type:String},floodWarnings:{default:"",type:String},warnings:{default:"",type:String},dailyWarningTypes:{default:"",type:String},refreshInterval:{default:"900000",type:String},geometryId:{default:w0,type:String},language:{default:"fi",type:String},theme:{default:"light",type:String},fontScale:{default:"1",type:String},sleep:{default:"true",type:String},debugMode:{default:"false",type:String}},setup(t,{expose:e}){const r=t,a=q(()=>ee(r.selectedDay,0)),n=q(()=>st(r.regionListEnabled,!0)),o=q(()=>st(r.grayScaleSelector,!0)),s=q(()=>st(r.staticDays,!0)),l=q(()=>r.dailyWarningTypes?r.dailyWarningTypes.split(",").map(E=>E.trim()):[]),d=q(()=>ee(r.refreshInterval,9e5)),u=q(()=>ee(r.geometryId,2021)),g=q(()=>st(r.sleep,!0)),f=q(()=>st(r.spinnerEnabled,!0)),y=q(()=>st(r.debugMode,!1)),k=q(()=>r.language),A=q(()=>r.warnings?r.warnings:null),{loading:h,themeClass:x,warningsData:S,visible:B,currentTime:c,onLoaded:v,onThemeChanged:m,fetchWarnings:p,initializeWarnings:b,applyFontScale:C}=b0({baseUrl:n2(r,"baseUrl"),language:k,theme:n2(r,"theme"),warnings:A,currentDate:n2(r,"currentDate"),fontScale:n2(r,"fontScale"),debugMode:y,weatherUpdated:n2(r,"weatherUpdated"),floodUpdated:n2(r,"floodUpdated"),weatherWarnings:n2(r,"weatherWarnings"),floodWarnings:n2(r,"floodWarnings")});return b(),ct(()=>{C()}),e({show:()=>{B.value=!0},hide:()=>{B.value=!1}}),(E,N)=>$(B)?(Z(),K2(h0,{key:0,"refresh-interval":d.value,"default-day":a.value,"static-days":s.value,"start-from":E.startFrom,"region-list-enabled":n.value,"gray-scale-selector":o.value,"current-time":$(c),"warnings-data":$(S),"daily-warning-types":l.value,"geometry-id":u.value,language:E.language,theme:$(x),sleep:g.value,loading:$(h),"spinner-enabled":f.value,onLoaded:$(v),onThemeChanged:$(m),onUpdateWarnings:$(p)},null,8,["refresh-interval","default-day","static-days","start-from","region-list-enabled","gray-scale-selector","current-time","warnings-data","daily-warning-types","geometry-id","language","theme","sleep","loading","spinner-enabled","onLoaded","onThemeChanged","onUpdateWarnings"])):g2("",!0)}}),C0="div#fmi-warnings div .mobile-only{display:block}@media (min-width: 768px){div#fmi-warnings div .mobile-only{display:none}}div#fmi-warnings div .desktop-only{display:none}@media (min-width: 768px){div#fmi-warnings div .desktop-only{display:block}}div#fmi-warnings div .d-none{display:none!important}div#fmi-warnings div .d-block{display:block!important}@media (min-width: 768px){div#fmi-warnings div .d-md-none{display:none!important}div#fmi-warnings div .d-md-block{display:block!important}div#fmi-warnings div .d-md-table-cell{display:table-cell!important}}div#fmi-warnings div .d-inline{display:inline!important}div#fmi-warnings div .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}div#fmi-warnings div .visually-hidden-focusable{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}div#fmi-warnings div .visually-hidden-focusable:focus,div#fmi-warnings div .visually-hidden-focusable:focus-within{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}div#fmi-warnings div .focus-ring{outline:none}div#fmi-warnings div .focus-ring:focus{outline:2px solid #0d6efd;outline-offset:2px}div#fmi-warnings div .focus-ring:focus:not(:focus-visible){outline:none}div#fmi-warnings div .focus-ring:focus-visible{outline:2px solid #0d6efd;outline-offset:2px}@media (min-width: 576px){div#fmi-warnings div .d-sm-block{display:block!important}div#fmi-warnings div .d-sm-none{display:none!important}}div#fmi-warnings div .mb-1{margin-bottom:.25rem}div#fmi-warnings div .p-0{padding:0}div#fmi-warnings div .p-1{padding:.25rem}div#fmi-warnings div .sticky-top{position:sticky;top:0;z-index:10}div#fmi-warnings div .row{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0}div#fmi-warnings div .nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}div#fmi-warnings div .nav-tabs{border-bottom:none}div#fmi-warnings div .nav-item{margin-bottom:0}div#fmi-warnings div .nav-link{display:block;padding:0;text-decoration:none;background:none;border:none;cursor:pointer}div#fmi-warnings div .tab-content>.tab-pane{display:none}div#fmi-warnings div .tab-content>.tab-pane.active,div#fmi-warnings div .tab-content>.tab-pane.show{display:block}div#fmi-warnings div .tab-content .spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border-animation .75s linear infinite}@keyframes spinner-border-animation{to{transform:rotate(360deg)}}div#fmi-warnings div .tab-content .text-center{text-align:center!important}",k0=w2(y0,[["styles",[C0]]]);M3({rootComponent:k0,elementName:"smartmet-alert-client",VueDefineCustomElement:q3,h:T3,createApp:P3,getCurrentInstance:oe,disableShadowDOM:!0});
package/dist/index.mjs CHANGED
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * name: @fmidev/smartmet-alert-client
3
- * version: v4.7.0-rc.0
3
+ * version: v4.7.0
4
4
  * description: Web application for viewing weather and flood alerts
5
5
  * author: Finnish Meteorological Institute
6
6
  * homepage: https://github.com/fmidev/smartmet-alert-client#readme
7
7
  */
8
8
  /**
9
9
  * name: @fmidev/smartmet-alert-client
10
- * version: v4.7.0-rc.0
10
+ * version: v4.7.0
11
11
  * description: Web application for viewing weather and flood alerts
12
12
  * author: Finnish Meteorological Institute
13
13
  * homepage: https://github.com/fmidev/smartmet-alert-client#readme
@@ -238,4 +238,4 @@ import{i as C3,c as q,d as b2,t as n2,a as R,o as Z,b as F,n as a2,u as $,e as r
238
238
  `);return o.length>0&&(n+=' xmlns:xlink="http://www.w3.org/1999/xlink"',d=`<defs>
239
239
  `+this.pluck(o,"svg").join("")+`</defs>
240
240
  `+d),d=$n(a,n,l[0],l[1],0,0,l[0],l[1],d),d},copyDataset(t){const e=xt({},t);return e.layers=e.layers.map(r=>this.copyLayer(r)),e.arcs&&(e.arcs=e.arcs.getFilteredCopy()),e},copyLayer(t){const e=this.copyLayerShapes(t);return e.data&&(e.data=e.data.clone()),e},copyLayerShapes(t){const e=xt({},t);return t.shapes&&(e.shapes=this.cloneShapes(t.shapes)),e},cloneShape(t){return t?t.map(function(e){return e.concat()}):null},cloneShapes(t){return Array.isArray(t)?t.map(e=>this.cloneShape(e)):null},pluck(t,e){return t.map(function(r){return r[e]})},transformCoordsForSVG(t,e){const r=this.transformDatasetToPixels(t,e),a=e.precision||1e-4;return this.setCoordinatePrecision(t,a),r},transformDatasetToPixels(t,e){const r=this.getDatasetBounds(t),a=this.calcOutputSizeInPixels(r,e),n=r.getTransform(a,e.invert_y);return this.transformPoints(t,function(o,s){return n.transform(o,s)}),[Math.round(a.width()),Math.round(a.height())||1]},setCoordinatePrecision(t,e){const r=this.getRoundingFunction(e);return this.transformPoints(t,function(a,n){return[r(a),r(n)]}),t},getDatasetBounds(t){const e=new q2;return t.layers.forEach(r=>{const a=this.getLayerBounds(r,t.arcs);a&&e.mergeBounds(a)}),e},getLayerBounds(t,e){let r=null;return t.geometry_type==="point"?r=this.getPointBounds(t.shapes):(t.geometry_type==="polygon"||t.geometry_type==="polyline")&&(r=this.getPathBounds$1(t.shapes,e)),r},getPointBounds(t){const e=new q2;return function(r,a){let n,o,s,l,d;for(n=0,o=r.length;n<o;n++)for(d=r[n],s=0,l=d?d.length:0;s<l;s++)a(d[s],n)}(t,function(r){e.mergePoint(r[0],r[1])}),e},getPathBounds$1(t,e){const r=new q2;return((a,n)=>{let o;for(let s=0;s<a.length;s++)if(o=a[s],o instanceof Array)this.forEachArcId(o,n);else if(o!=null&&o.constructor===Number&&(o|0)===o){const l=n(o);l!==void 0&&(a[s]=l)}else o&&console.log("Non-integer arc id in:",a)})(t,function(a){e.mergeArcBounds(a,r)}),r},calcOutputSizeInPixels(t,e){let r=0,a=0;const n=0,o=0,s=t.width(),l=t.height(),d=this.parseMarginOption(e.margin),u=d[0]+d[2],g=d[1]+d[3],f=.5,y=.5;let k,A,h,x;return A=e.height||0,k=e.width||(A>0?0:800),A>0&&(x=(l||s||1)/(A-g)),k>0&&(h=(s||l||1)/(k-u)),k?A||(x=h,A=l>0?g+l/x:k,e.max_height>0&&A>e.max_height&&(x=h*A/e.max_height,A=e.max_height)):(h=x,k=s>0?u+s/h:A),h>x?(x=h,a=x*(A-g)-l):x>h&&(h=x,r=h*(k-u)-s),t.padBounds(d[0]*h+r*f,d[1]*x+a*y,d[2]*h+r*(1-f),d[3]*x+a*(1-y)),k>0&&A>0||console.log("Missing valid height and width parameters"),h===x&&h>0||console.log("Missing valid margin parameters"),new q2(n,o,k+n,A+o)},exportLayerForSVG(t,e,r){const a=this.getEmptyLayerForSVG(t);return a.children=this.exportSymbolsForSVG(t,e,r),a},stringify(t){let e,r;return!t||!t.tag?"":(e="<"+t.tag,t.properties&&(e+=this.stringifyProperties(t.properties)),t.children||t.value?(r=t.tag==="text"||t.tag==="tspan"?"":`
241
- `,e+=">"+r,t.value&&(e+=t.value),t.children&&(e+=t.children.map(a=>this.stringify(a)).join(r)),e+=r+"</"+t.tag+">"):e+="/>",e)},stringifyProperties(t){return Object.keys(t).reduce((e,r)=>{const a=t[r];if(!a&&a!==0)return e;const n=a!=null&&a.toString===String.prototype.toString?a:JSON.stringify(a);return r==="href"&&(r="xlink:href"),e+" "+r+'="'+this.stringEscape(n)+'"'},"")},stringEscape(t){return String(t).replace(yn,function(e){return Cn[e]})},transformPoints(t,e){t.arcs&&t.arcs.transformPoints(e),t.layers.forEach(r=>{this.layerHasPoints(r)&&this.transformPointsInLayer(r,e)})},getRoundingFunction(t){(!(t!=null&&t.constructor===Number)||t===0)&&console.log("Rounding increment must be a non-zero number.");let e=1/t;return e>1&&(e=Math.round(e)),function(r){return Math.round(r*e)/e}},forEachArcId(t,e){let r;for(let a=0;a<t.length;a++)if(r=t[a],r instanceof Array)this.forEachArcId(r,e);else if(r!=null&&r.constructor===Number&&(r|0)===r){const n=e(r);n!==void 0&&(t[a]=n)}else r&&console.log("Non-integer arc id in:",t)},getEmptyLayerForSVG(t){const e={tag:"g",properties:{id:t.name},children:[]};return t.geometry_type==="polyline"&&(e.properties.fill="none"),t.geometry_type==="polyline"&&(e.properties.stroke="black",e.properties["stroke-width"]=1),e},layerHasPoints(t){return t.geometry_type==="point"&&this.layerHasNonNullShapes(t)},transformPointsInLayer(t,e){this.layerHasPoints(t)&&this.forEachPoint(t.shapes,function(r){const a=e(r[0],r[1]);r[0]=a[0],r[1]=a[1]})},forEachPoint(t,e){let r,a,n,o,s;for(r=0,a=t.length;r<a;r++)for(s=t[r],n=0,o=s?s.length:0;n<o;n++)e(s[n],r)},exportSymbolsForSVG(t,e,r){const a=this.defaults({layers:[t]},e),n=this.exportDatasetAsGeoJSON(a,r),o=n.features||n.geometries||(n.type?[n]:[]),s=this.importGeoJSONFeatures(o,r);return r.svg_data&&t.data&&this.addDataAttributesToSVG(s,t.data,r.svg_data),s},parseMarginOption(t){const r=(t!=null&&t.constructor===Number?String(t):t||"").trim().split(/[, ] */);return r.length==1&&r.push(r[0]),r.length==2&&r.push(r[0],r[1]),r.length==3&&r.push(r[2]),r.map(function(a){const n=parseFloat(a);return isNaN(n)?1:n})},defaults(t){for(let e=1,r=arguments.length;e<r;e++){const a=arguments[e]||{};for(const n in a)!(n in t)&&a.hasOwnProperty(n)&&(t[n]=a[n])}return t},exportDatasetAsGeoJSON(t,e){const r={},a=t.layers,n=this.useFeatureCollection(a);let o;n?(r.type="FeatureCollection",o="features"):(r.type="GeometryCollection",o="geometries");const s=a.reduce((l,d,u)=>{const g=this.exportLayerAsGeoJSON(d,t,e,n);return l.length>0?l.concat(g):g},[]);return r[o]=s,r},useFeatureCollection(t){return this.someUtil(t,e=>{const r=e.data?e.data.getFields():[],a=this.useFeatureProperties(r),n=!!this.getIdField(r);return a||n})},useFeatureProperties(t){return!(t.length===0||t.length===1&&t[0]==F2.ID_FIELD)},getIdField(t){const e=[];return e.push(F2.ID_FIELD),this.find(e,r=>this.contains(t,r))},contains(t,e){if(t!=null&&t.toString===String.prototype.toString)return t.indexOf(e)!==-1;if(Je(t))return this.indexOf(t,e)!==-1;console.log("Expected Array or String argument")},indexOf(t,e){const r=e!==e;for(let a=0,n=t.length||0;a<n;a++)if(t[a]===e||r&&t[a]!==t[a])return a;return-1},find(t,e,r){const a=t.filter(e,r);return a.length===0?null:a[0]},exportLayerAsGeoJSON(t,e,r,a){const n=this.exportProperties(t.data,r),o=t.shapes,s=this.exportIds(t.data,r);return n&&o&&n.length!==o.length&&console.log("Mismatch between number of properties and number of shapes"),(o||n||[]).reduce(function(l,d,u){const g=o?o[u]:null,f=F2.exporters[t.geometry_type];let y=g?f(g,e.arcs,r):null;if(a)y={type:"Feature",geometry:y,properties:n?n[u]:null},s&&(y.id=s[u]);else if(!y)return l;return l.push(y),l},[])},exportProperties(t,e){const r=t?t.getFields():[],a=this.getIdField(r,e);let n;if(!this.useFeatureProperties(r,e))return null;const o=t.getRecords();return a==F2.ID_FIELD?n=o.map(function(s){return s=xt({},s),delete s[a],s}):n=o,n},importGeoJSONFeatures(t,e){return e=e||{},t.map((r,a)=>{const n=r.type==="Feature"?r.geometry:r,o=n&&n.type;let s=null;return o&&n.coordinates&&(s=Zn[o](n.coordinates,r.properties,e)),s?(r.properties&&this.applyStyleAttributes(s,o,r.properties),"id"in r&&(s.properties||(s.properties={}),s.properties.id=(e.id_prefix||"")+r.id),s):{tag:"g"}})},addDataAttributesToSVG(t,e,r){const a=e.getFields();let n=r.indexOf("*")>-1?a.concat():r;const o=this.difference(n,a);o.length>0&&(n=this.difference(n,o));const s=e.getRecords(),l=this.exportDataAttributesForSVG(s,n);t.length!==l.length&&console.log("Mismatch between number of SVG symbols and data attributes"),t.forEach(function(d,u){xt(d.properties||{},l[u])})},exportDataAttributesForSVG(t,e){const r=/^[a-z_][a-z0-9_-]*$/i,a=/^xml/,n=e.filter(function(s){return r.test(s)&&!a.test(s)}),o=this.difference(e,n);return o.length>0&&(console.log("Unable to add data-* attributes for field(s):",o.join(", ")),console.log("data-* names should match pattern [a-z_][a-z0-9_-]*")),t.map(function(s){const l={};for(let d=0;d<n.length;d++)l["data-"+n[d].toLowerCase()]=String(s[n[d]]);return l})},difference(t,e){const r=this.arrayToIndex(e);return t.filter(function(a){return!Object.prototype.hasOwnProperty.call(r,a)})},arrayToIndex(t,e){const r=arguments.length>1;return t.reduce(function(a,n){return a[n]=r?e:!0,a},{})},applyStyleAttributes(t,e,r){let a=F2.translateGeoJSONType(e);a==="point"&&"label-text"in r&&(a="label");const n=this.findPropertiesBySymbolGeom(Object.keys(r),a);for(let o=0,s=n.length;o<s;o++)this.setAttribute(t,n[o],r[n[o]])},findPropertiesBySymbolGeom(t,e){const r=kn[e]||{};return t.filter(function(a){return a in r})},setAttribute(t,e,r){e==="r"||(t.properties||(t.properties={}),t.properties[e]=r,e==="stroke-dasharray"&&r&&(t.properties["stroke-linecap"]="butt"))},exportIds(t,e){const r=t?t.getFields():[],a=this.getIdField(r,e);return a?t.getRecords().map(function(n){return a in n?n[a]:null}):null}}},t0=t=>(gt("data-v-3ed8c052"),t=t(),ft(),t),e0=["data-smartmet-alert-client-version"],r0={class:"row"},a0={class:"col-12 col-md-8 col-lg-8 col-xl-8 day-region-views"},i0=["aria-label"],n0={key:1,class:"not-ready"},o0=["href"],s0={key:2},l0=["href"],d0=["aria-label"],u0={class:"col-12 col-md-4 col-lg-4 col-xl-4 symbol-list"},c0={key:0,class:"row"},g0={class:"col-12 col-md-8 col-lg-8 col-xl-8 day-region-views"},f0=t0(()=>F("div",{class:"col-12 col-md-4 col-lg-4 col-xl-4 symbol-list"},null,-1)),m0=b2({__name:"AlertClient",props:{refreshInterval:{default:1e3*60*15,type:Number},defaultDay:{default:0,type:Number},staticDays:{type:Boolean,default:!0},startFrom:{default:"",type:String},regionListEnabled:{type:Boolean,default:!0},grayScaleSelector:{type:Boolean,default:!1},currentTime:{default:()=>Date.now(),type:Number},warningsData:{default:null,type:[Object,null]},dailyWarningTypes:{default:()=>[],type:Array},geometryId:{default:2021,type:Number},language:{default:"en",type:String},theme:{default:"light-theme",type:String},loading:{default:1,type:Number},sleep:{type:Boolean,default:!0},spinnerEnabled:{type:Boolean,default:!0}},emits:["loaded","themeChanged","update-warnings"],setup(t,{emit:e}){const r=t,a=e,n=qt(),{t:o}=G2(n2(r,"language")),s=l2(r.defaultDay),l=l2([]),d=l2(null),u=l2(null),g=l2(null),f=l2([]),y=l2(V3()),k=l2({}),A=l2([]),h=l2(0),x="4.7.0-rc.0",S=l2([]),B=O1.methods.geoJSONToSVG.bind(O1.methods),c=q(()=>String(r.geometryId)),v=q(()=>n.geometries),m=q(()=>n.regionIds),p=q(()=>n.warningTypes),b=q(()=>n.timeZone),C=q(()=>n.dateTimeFormatLocale),E=q(()=>r.currentTime),N=q(()=>r.startFrom),z=q(()=>r.staticDays),H=q(()=>r.dailyWarningTypes),Y=q(()=>n.maxUpdateDelay),w=q(()=>n.bbox),L=J=>{S.value.includes(J)||S.value.push(J),console.log(J)},Q=()=>{a("loaded",-1)},{handleMapWarnings:_}=pn({geometryId:c,geometries:v,regionIds:m,warningTypes:p,timeZone:b,locale:C,currentTime:E,startFrom:N,staticDays:z,dailyWarningTypes:H,maxUpdateDelay:Y,bbox:w,geoJSONToSVG:B,t:o,handleError:L,onDataError:Q}),M=q(()=>[ae,ie].some(J=>(y.value?.[s.value]?.[J]?.length??0)>0)?o("toContent")||"":o("toNextContent")||""),I=q(()=>[ae,ie].some(J=>(y.value?.[s.value]?.[J]?.length??0)>0)?"#fmi-warnings-region-content":"#fmi-warnings-end-of-regions"),T=q(()=>o("noWarnings")),G=q(()=>A.value.length>0?o("validWarnings"):o("noWarnings")),O=q(()=>A.value.length>0?o("validWarningsAriaLabel"):o("noWarnings")),P=q(()=>o("supportedBrowsersLink")),j=q(()=>o("supportedBrowsers")),U=q(()=>r.loading===-1?o("failed"):o("notInitializedStart")),e2=q(()=>r.loading===-1?"":o("notInitializedEnd")),V=q(()=>g.value!=null?Object.keys(g.value).length:0),t2=q(()=>f.value!=null&&f.value.length===5&&f.value[0]?.updatedDate!=null&&f.value[0]?.updatedDate.length>0),d2=J=>{s.value=J},m2=J=>{l.value=J,A.value.forEach((S2,Q2)=>{const mt=J.includes(S2.type);mt!==S2.visible&&A.value[Q2]&&(A.value[Q2].visible=mt)})},A2=J=>{r.loading!==-1&&J&&a("loaded",1)},L2=J=>{r.theme!==J&&a("themeChanged",J)},y2=()=>{const Q2=oe()?.proxy?.$el?.querySelector(I.value);Q2?.scrollIntoView(),Q2?.focus()},C2=()=>{if(r.warningsData!=null){const J=_(r.warningsData);g.value=J.warnings,f.value=J.days,y.value=J.regions,k.value=J.parents,A.value=J.legend,l.value=A.value.filter(S2=>S2.visible).map(S2=>S2.type)}},v2=()=>{Jt()&&r.refreshInterval&&(document.hidden?$2():($2(),U2(),N2()))},N2=()=>{r.refreshInterval&&(d.value=setInterval(U2,r.refreshInterval))},$2=()=>{d.value!=null&&(clearInterval(d.value),d.value=null)},U2=()=>{r.refreshInterval>0&&a("update-warnings")};return Ft(()=>r.warningsData,()=>{C2()}),C2(),r.warningsData==null&&U2(),ct(()=>{N2(),Jt()&&r.sleep&&(document.addEventListener("visibilitychange",v2),u.value=v2)}),X1(()=>{Jt()&&u.value&&document.removeEventListener("visibilitychange",u.value),$2()}),F3(()=>{C2()}),(J,S2)=>(Z(),R("div",{id:"fmi-warnings",class:a2(J.theme),"data-smartmet-alert-client-version":$(x)},[F("div",{id:"fmi-warnings-errors",class:a2(S.value)},null,2),F("div",null,[F("div",{class:a2(["container-fluid",J.theme])},[F("div",r0,[F("div",a0,[J.loading?g2("",!0):(Z(),R("h2",{key:0,class:"valid-warnings","aria-label":O.value},r2(G.value),9,i0)),J.loading?(Z(),R("div",n0,[F("p",null,r2(U.value)+" "+r2(e2.value),1),F("a",{href:P.value,target:"_blank",rel:"noopener noreferrer",class:"supported-browsers"},r2(j.value),9,o0)])):g2("",!0),J.regionListEnabled?(Z(),R("div",s0,[V.value?(Z(),R("a",{key:0,id:"fmi-warnings-to-text-content",href:I.value,tabindex:"0",class:"visually-hidden-focusable focus-ring",onClick:y2},r2(M.value),9,l0)):(Z(),R("div",{key:1,"aria-label":T.value},null,8,d0))])):g2("",!0),T2(s4,{input:f.value,"visible-warnings":l.value,"selected-day":s.value,"static-days":J.staticDays,"time-offset":h.value,warnings:g.value,regions:y.value,"geometry-id":J.geometryId,loading:!!J.loading,theme:J.theme,language:J.language,"spinner-enabled":J.spinnerEnabled,onDaySelected:d2,onLoaded:A2},null,8,["input","visible-warnings","selected-day","static-days","time-offset","warnings","regions","geometry-id","loading","theme","language","spinner-enabled"])]),F("div",u0,[L3(T2(D5,{input:A.value,"visible-warnings":l.value,"gray-scale-selector":J.grayScaleSelector,theme:J.theme,language:J.language,onThemeChanged:L2,onWarningsToggled:m2},null,8,["input","visible-warnings","gray-scale-selector","theme","language"]),[[S3,t2.value]])])]),J.regionListEnabled?(Z(),R("div",c0,[F("div",g0,[T2(nn,{input:y.value,"selected-day":s.value,warnings:g.value,parents:k.value,"geometry-id":J.geometryId,theme:J.theme,language:J.language},null,8,["input","selected-day","warnings","parents","geometry-id","theme","language"])]),f0])):g2("",!0)],2)])],10,e0))}}),v0='@font-face{font-family:Noto Sans;font-weight:400;font-style:normal;src:url(data:font/woff2;base64,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) format("woff2");font-display:swap}div#fmi-warnings div[data-v-3ed8c052] *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;font-family:Roboto,Helvetica,Arial,Noto Sans,sans-serif;font-size:1rem;line-height:1.42857143;background-color:transparent;font-weight:400}div#fmi-warnings div[data-v-3ed8c052] * *:focus{outline-offset:2px;z-index:5}div#fmi-warnings div[data-v-3ed8c052] * .bold-text{font-weight:700!important}div#fmi-warnings div[data-v-3ed8c052] * .noselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}div#fmi-warnings div[data-v-3ed8c052] * h3{font-weight:700}div#fmi-warnings div[data-v-3ed8c052] .light-theme *{color:#191b22}div#fmi-warnings div[data-v-3ed8c052] .dark-theme *{color:#fff}div#fmi-warnings div[data-v-3ed8c052] .light-gray-theme *{color:#191b22}div#fmi-warnings div[data-v-3ed8c052] .dark-gray-theme *{color:#fff}div#fmi-warnings[data-v-3ed8c052]{width:700px;padding:0;margin-bottom:20px}div#fmi-warnings h2.valid-warnings[data-v-3ed8c052]{text-align:left;font-weight:700;margin-top:0;margin-bottom:3px}div#fmi-warnings div.not-ready[data-v-3ed8c052]{width:100%;padding:15px}div#fmi-warnings div.not-ready a.supported-browsers[data-v-3ed8c052]{font-weight:700;text-decoration:none}div#fmi-warnings .light-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #303193}div#fmi-warnings .light-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#303193;border-bottom:1px solid #02A3B7}div#fmi-warnings .light-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#303193}div#fmi-warnings .dark-theme div.not-ready[data-v-3ed8c052]{background-color:#282b34;border:1px solid #e7f0fa}div#fmi-warnings .dark-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#e7f0fa;border-bottom:1px solid #e7f0fa}div#fmi-warnings .dark-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#e7f0fa}div#fmi-warnings .light-gray-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #303193}div#fmi-warnings .light-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#434752;border-bottom:1px solid #434752}div#fmi-warnings .light-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#191b22}div#fmi-warnings .dark-gray-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #e7f0fa}div#fmi-warnings .dark-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#eee;border-bottom:1px solid #eee}div#fmi-warnings .dark-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#fff}div#fmi-warnings div[data-v-3ed8c052]{background-color:transparent}div#fmi-warnings div.container-fluid[data-v-3ed8c052]{padding:0;margin:5px 0 0}div#fmi-warnings a#fmi-warnings-to-text-content[data-v-3ed8c052]{font-family:Roboto,Helvetica,Arial,Noto Sans,sans-serif;font-size:1rem;height:20px}div#fmi-warnings a#fmi-warnings-to-text-content[data-v-3ed8c052]:focus{outline-offset:2px}div#fmi-warnings div .row[data-v-3ed8c052]{margin-left:0;margin-right:0}div#fmi-warnings div div.day-region-views[data-v-3ed8c052]{max-width:440px;width:440px;padding-left:0;padding-right:0}div#fmi-warnings div div.symbol-list[data-v-3ed8c052]{top:0;z-index:1;padding-left:20px;padding-right:0;box-sizing:border-box;width:260px;max-width:260px;min-width:260px}div#fmi-warnings div .light-gray-theme a.supported-browsers[data-v-3ed8c052]{color:#434752}div#fmi-warnings div .dark-gray-theme a.supported-browsers[data-v-3ed8c052]{color:#eee}@media (max-width: 767px){div#fmi-warnings[data-v-3ed8c052]{width:100%}div#fmi-warnings div div.day-region-views[data-v-3ed8c052]{min-width:100%;width:100%;max-width:100%}div#fmi-warnings div div.symbol-list[data-v-3ed8c052]{position:static;padding-left:0;margin-top:0;margin-bottom:0;min-width:100%;width:100%;max-width:100%}}@media print{div#fmi-warnings div .symbol-list[data-v-3ed8c052]{display:none}}',h0=w2(m0,[["styles",[v0]],["__scopeId","data-v-3ed8c052"]]);var He={exports:{}};(function(t,e){var r=typeof self<"u"?self:Vt,a=function(){function o(){this.fetch=!1,this.DOMException=r.DOMException}return o.prototype=r,new o}();(function(o){(function(s){var l={searchParams:"URLSearchParams"in o,iterable:"Symbol"in o&&"iterator"in Symbol,blob:"FileReader"in o&&"Blob"in o&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in o,arrayBuffer:"ArrayBuffer"in o};function d(w){return w&&DataView.prototype.isPrototypeOf(w)}if(l.arrayBuffer)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=ArrayBuffer.isView||function(w){return w&&u.indexOf(Object.prototype.toString.call(w))>-1};function f(w){if(typeof w!="string"&&(w=String(w)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(w))throw new TypeError("Invalid character in header field name");return w.toLowerCase()}function y(w){return typeof w!="string"&&(w=String(w)),w}function k(w){var L={next:function(){var Q=w.shift();return{done:Q===void 0,value:Q}}};return l.iterable&&(L[Symbol.iterator]=function(){return L}),L}function A(w){this.map={},w instanceof A?w.forEach(function(L,Q){this.append(Q,L)},this):Array.isArray(w)?w.forEach(function(L){this.append(L[0],L[1])},this):w&&Object.getOwnPropertyNames(w).forEach(function(L){this.append(L,w[L])},this)}A.prototype.append=function(w,L){w=f(w),L=y(L);var Q=this.map[w];this.map[w]=Q?Q+", "+L:L},A.prototype.delete=function(w){delete this.map[f(w)]},A.prototype.get=function(w){return w=f(w),this.has(w)?this.map[w]:null},A.prototype.has=function(w){return this.map.hasOwnProperty(f(w))},A.prototype.set=function(w,L){this.map[f(w)]=y(L)},A.prototype.forEach=function(w,L){for(var Q in this.map)this.map.hasOwnProperty(Q)&&w.call(L,this.map[Q],Q,this)},A.prototype.keys=function(){var w=[];return this.forEach(function(L,Q){w.push(Q)}),k(w)},A.prototype.values=function(){var w=[];return this.forEach(function(L){w.push(L)}),k(w)},A.prototype.entries=function(){var w=[];return this.forEach(function(L,Q){w.push([Q,L])}),k(w)},l.iterable&&(A.prototype[Symbol.iterator]=A.prototype.entries);function h(w){if(w.bodyUsed)return Promise.reject(new TypeError("Already read"));w.bodyUsed=!0}function x(w){return new Promise(function(L,Q){w.onload=function(){L(w.result)},w.onerror=function(){Q(w.error)}})}function S(w){var L=new FileReader,Q=x(L);return L.readAsArrayBuffer(w),Q}function B(w){var L=new FileReader,Q=x(L);return L.readAsText(w),Q}function c(w){for(var L=new Uint8Array(w),Q=new Array(L.length),_=0;_<L.length;_++)Q[_]=String.fromCharCode(L[_]);return Q.join("")}function v(w){if(w.slice)return w.slice(0);var L=new Uint8Array(w.byteLength);return L.set(new Uint8Array(w)),L.buffer}function m(){return this.bodyUsed=!1,this._initBody=function(w){this._bodyInit=w,w?typeof w=="string"?this._bodyText=w:l.blob&&Blob.prototype.isPrototypeOf(w)?this._bodyBlob=w:l.formData&&FormData.prototype.isPrototypeOf(w)?this._bodyFormData=w:l.searchParams&&URLSearchParams.prototype.isPrototypeOf(w)?this._bodyText=w.toString():l.arrayBuffer&&l.blob&&d(w)?(this._bodyArrayBuffer=v(w.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):l.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(w)||g(w))?this._bodyArrayBuffer=v(w):this._bodyText=w=Object.prototype.toString.call(w):this._bodyText="",this.headers.get("content-type")||(typeof w=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):l.searchParams&&URLSearchParams.prototype.isPrototypeOf(w)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},l.blob&&(this.blob=function(){var w=h(this);if(w)return w;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?h(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(S)}),this.text=function(){var w=h(this);if(w)return w;if(this._bodyBlob)return B(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(c(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},l.formData&&(this.formData=function(){return this.text().then(E)}),this.json=function(){return this.text().then(JSON.parse)},this}var p=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function b(w){var L=w.toUpperCase();return p.indexOf(L)>-1?L:w}function C(w,L){L=L||{};var Q=L.body;if(w instanceof C){if(w.bodyUsed)throw new TypeError("Already read");this.url=w.url,this.credentials=w.credentials,L.headers||(this.headers=new A(w.headers)),this.method=w.method,this.mode=w.mode,this.signal=w.signal,!Q&&w._bodyInit!=null&&(Q=w._bodyInit,w.bodyUsed=!0)}else this.url=String(w);if(this.credentials=L.credentials||this.credentials||"same-origin",(L.headers||!this.headers)&&(this.headers=new A(L.headers)),this.method=b(L.method||this.method||"GET"),this.mode=L.mode||this.mode||null,this.signal=L.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Q)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Q)}C.prototype.clone=function(){return new C(this,{body:this._bodyInit})};function E(w){var L=new FormData;return w.trim().split("&").forEach(function(Q){if(Q){var _=Q.split("="),M=_.shift().replace(/\+/g," "),I=_.join("=").replace(/\+/g," ");L.append(decodeURIComponent(M),decodeURIComponent(I))}}),L}function N(w){var L=new A,Q=w.replace(/\r?\n[\t ]+/g," ");return Q.split(/\r?\n/).forEach(function(_){var M=_.split(":"),I=M.shift().trim();if(I){var T=M.join(":").trim();L.append(I,T)}}),L}m.call(C.prototype);function z(w,L){L||(L={}),this.type="default",this.status=L.status===void 0?200:L.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in L?L.statusText:"OK",this.headers=new A(L.headers),this.url=L.url||"",this._initBody(w)}m.call(z.prototype),z.prototype.clone=function(){return new z(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new A(this.headers),url:this.url})},z.error=function(){var w=new z(null,{status:0,statusText:""});return w.type="error",w};var H=[301,302,303,307,308];z.redirect=function(w,L){if(H.indexOf(L)===-1)throw new RangeError("Invalid status code");return new z(null,{status:L,headers:{location:w}})},s.DOMException=o.DOMException;try{new s.DOMException}catch{s.DOMException=function(L,Q){this.message=L,this.name=Q;var _=Error(L);this.stack=_.stack},s.DOMException.prototype=Object.create(Error.prototype),s.DOMException.prototype.constructor=s.DOMException}function Y(w,L){return new Promise(function(Q,_){var M=new C(w,L);if(M.signal&&M.signal.aborted)return _(new s.DOMException("Aborted","AbortError"));var I=new XMLHttpRequest;function T(){I.abort()}I.onload=function(){var G={status:I.status,statusText:I.statusText,headers:N(I.getAllResponseHeaders()||"")};G.url="responseURL"in I?I.responseURL:G.headers.get("X-Request-URL");var O="response"in I?I.response:I.responseText;Q(new z(O,G))},I.onerror=function(){_(new TypeError("Network request failed"))},I.ontimeout=function(){_(new TypeError("Network request failed"))},I.onabort=function(){_(new s.DOMException("Aborted","AbortError"))},I.open(M.method,M.url,!0),M.credentials==="include"?I.withCredentials=!0:M.credentials==="omit"&&(I.withCredentials=!1),"responseType"in I&&l.blob&&(I.responseType="blob"),M.headers.forEach(function(G,O){I.setRequestHeader(O,G)}),M.signal&&(M.signal.addEventListener("abort",T),I.onreadystatechange=function(){I.readyState===4&&M.signal.removeEventListener("abort",T)}),I.send(typeof M._bodyInit>"u"?null:M._bodyInit)})}return Y.polyfill=!0,o.fetch||(o.fetch=Y,o.Headers=A,o.Request=C,o.Response=z),s.Headers=A,s.Request=C,s.Response=z,s.fetch=Y,Object.defineProperty(s,"__esModule",{value:!0}),s})({})})(a),a.fetch.ponyfill=!0,delete a.fetch.polyfill;var n=a;e=n.fetch,e.default=n.fetch,e.fetch=n.fetch,e.Headers=n.Headers,e.Request=n.Request,e.Response=n.Response,t.exports=e})(He,He.exports);var p0=He.exports;const A0=Qe(p0),st=(t,e=!0)=>typeof t=="boolean"?t:typeof t=="string"?t.toLowerCase()!=="false":e,ee=(t,e=0)=>typeof t=="number"?t:typeof t=="string"?Number(t):e,H1="weather_update_time",Y1="flood_update_time",Q1="weather_finland_active_all",j1="flood_finland_active_all",D0=["moderate","severe","extreme"],Kt="?service=WFS&version=1.0.0&request=GetFeature&maxFeatures=1000&outputFormat=application%2Fjson&typeName=";function b0(t){const{baseUrl:e,language:r,theme:a,warnings:n,currentDate:o,fontScale:s,debugMode:l,weatherUpdated:d,floodUpdated:u,weatherWarnings:g,floodWarnings:f}=t,y=l2(1),k=l2(null),A=l2(null),h=l2(`${a.value}-theme`),x=l2(null),S=l2(!0),B=l2(!1),c={fi:"fi-FI",sv:"sv-SV",en:"en-US"},v=()=>c[r.value]||"fi-FI",m=q(()=>`${D0.reduce((I,T,G)=>`${I}${G===0?"":","}%27${T.toUpperCase()}%27`,"&cql_filter=severity%20IN%20(")})%20AND%20language=%27${v()}%27`),p=q(()=>d?.value||`${Kt}${H1}`),b=q(()=>u?.value||`${Kt}${Y1}`),C=q(()=>g?.value||`${Kt}${Q1}`),E=q(()=>f?.value||`${Kt}${j1}${m.value}`),N=q(()=>A.value?A.value:o?.value?(o.value instanceof Date?o.value:new Date(o.value)).getTime():Date.now());return{loading:y,updatedAt:k,refreshedAt:A,themeClass:h,warningsData:x,visible:S,currentTime:N,weatherUpdatedQuery:p,floodUpdatedQuery:b,weatherWarningsQuery:C,floodWarningsQuery:E,onLoaded:M=>{M!==0&&(y.value=M===-1?-1:0)},onThemeChanged:M=>{h.value=`${M!=null&&M.length>0?M:a.value}-theme`},fetchWarnings:()=>{if(n?.value||B.value)return;B.value=!0,y.value=1,l?.value&&console.log(`Updating warnings at ${new Date}`);const M=`_t=${Date.now()}`,I=O=>O.includes("?")?`${O}&${M}`:`${O}?${M}`,T=new Map([[`${e.value}${p.value}`,H1],[`${e.value}${b.value}`,Y1],[`${e.value}${C.value}`,Q1],[`${e.value}${E.value}`,j1]]),G={};return Promise.allSettled([...T.keys()].map(async O=>A0(I(O)).then(P=>P.json().then(j=>{const U=Date.now();k.value!=null&&(A.value=U),k.value=U,G[T.get(O)]=j}).catch(j=>{y.value=-1,console.log(j)})))).then(()=>{x.value=G}).finally(()=>{B.value=!1})},show:()=>{S.value=!0},hide:()=>{S.value=!1},initializeWarnings:()=>{n?.value&&(x.value=typeof n.value=="string"?JSON.parse(n.value):n.value)},applyFontScale:()=>{const M=ee(s?.value,1);if(M!==1){let I;if(typeof window<"u"&&typeof document<"u"&&document.documentElement&&window.getComputedStyle){const O=document.documentElement,P=window.getComputedStyle(O);I=parseFloat(P.fontSize)}(I==null||Number.isNaN(I))&&(I=16);const T=M*I,G=Math.round(T*100)/100;document.documentElement.style.fontSize=`${G}px`}}}}const w0="2021",y0=b2({name:"App",__name:"App",props:{currentDate:{default:"",type:String},baseUrl:{default:"https://www.ilmatieteenlaitos.fi/geoserver/alert/ows",type:String},selectedDay:{default:"0",type:String},regionListEnabled:{default:"true",type:String},spinnerEnabled:{default:"true",type:String},grayScaleSelector:{default:"true",type:String},staticDays:{default:"true",type:String},startFrom:{default:"",type:String},weatherUpdated:{default:"",type:String},floodUpdated:{default:"",type:String},weatherWarnings:{default:"",type:String},floodWarnings:{default:"",type:String},warnings:{default:"",type:String},dailyWarningTypes:{default:"",type:String},refreshInterval:{default:"900000",type:String},geometryId:{default:w0,type:String},language:{default:"fi",type:String},theme:{default:"light",type:String},fontScale:{default:"1",type:String},sleep:{default:"true",type:String},debugMode:{default:"false",type:String}},setup(t,{expose:e}){const r=t,a=q(()=>ee(r.selectedDay,0)),n=q(()=>st(r.regionListEnabled,!0)),o=q(()=>st(r.grayScaleSelector,!0)),s=q(()=>st(r.staticDays,!0)),l=q(()=>r.dailyWarningTypes?r.dailyWarningTypes.split(",").map(E=>E.trim()):[]),d=q(()=>ee(r.refreshInterval,9e5)),u=q(()=>ee(r.geometryId,2021)),g=q(()=>st(r.sleep,!0)),f=q(()=>st(r.spinnerEnabled,!0)),y=q(()=>st(r.debugMode,!1)),k=q(()=>r.language),A=q(()=>r.warnings?r.warnings:null),{loading:h,themeClass:x,warningsData:S,visible:B,currentTime:c,onLoaded:v,onThemeChanged:m,fetchWarnings:p,initializeWarnings:b,applyFontScale:C}=b0({baseUrl:n2(r,"baseUrl"),language:k,theme:n2(r,"theme"),warnings:A,currentDate:n2(r,"currentDate"),fontScale:n2(r,"fontScale"),debugMode:y,weatherUpdated:n2(r,"weatherUpdated"),floodUpdated:n2(r,"floodUpdated"),weatherWarnings:n2(r,"weatherWarnings"),floodWarnings:n2(r,"floodWarnings")});return b(),ct(()=>{C()}),e({show:()=>{B.value=!0},hide:()=>{B.value=!1}}),(E,N)=>$(B)?(Z(),K2(h0,{key:0,"refresh-interval":d.value,"default-day":a.value,"static-days":s.value,"start-from":E.startFrom,"region-list-enabled":n.value,"gray-scale-selector":o.value,"current-time":$(c),"warnings-data":$(S),"daily-warning-types":l.value,"geometry-id":u.value,language:E.language,theme:$(x),sleep:g.value,loading:$(h),"spinner-enabled":f.value,onLoaded:$(v),onThemeChanged:$(m),onUpdateWarnings:$(p)},null,8,["refresh-interval","default-day","static-days","start-from","region-list-enabled","gray-scale-selector","current-time","warnings-data","daily-warning-types","geometry-id","language","theme","sleep","loading","spinner-enabled","onLoaded","onThemeChanged","onUpdateWarnings"])):g2("",!0)}}),C0="div#fmi-warnings div .mobile-only{display:block}@media (min-width: 768px){div#fmi-warnings div .mobile-only{display:none}}div#fmi-warnings div .desktop-only{display:none}@media (min-width: 768px){div#fmi-warnings div .desktop-only{display:block}}div#fmi-warnings div .d-none{display:none!important}div#fmi-warnings div .d-block{display:block!important}@media (min-width: 768px){div#fmi-warnings div .d-md-none{display:none!important}div#fmi-warnings div .d-md-block{display:block!important}div#fmi-warnings div .d-md-table-cell{display:table-cell!important}}div#fmi-warnings div .d-inline{display:inline!important}div#fmi-warnings div .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}div#fmi-warnings div .visually-hidden-focusable{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}div#fmi-warnings div .visually-hidden-focusable:focus,div#fmi-warnings div .visually-hidden-focusable:focus-within{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}div#fmi-warnings div .focus-ring{outline:none}div#fmi-warnings div .focus-ring:focus{outline:2px solid #0d6efd;outline-offset:2px}div#fmi-warnings div .focus-ring:focus:not(:focus-visible){outline:none}div#fmi-warnings div .focus-ring:focus-visible{outline:2px solid #0d6efd;outline-offset:2px}@media (min-width: 576px){div#fmi-warnings div .d-sm-block{display:block!important}div#fmi-warnings div .d-sm-none{display:none!important}}div#fmi-warnings div .mb-1{margin-bottom:.25rem}div#fmi-warnings div .p-0{padding:0}div#fmi-warnings div .p-1{padding:.25rem}div#fmi-warnings div .sticky-top{position:sticky;top:0;z-index:10}div#fmi-warnings div .row{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0}div#fmi-warnings div .nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}div#fmi-warnings div .nav-tabs{border-bottom:none}div#fmi-warnings div .nav-item{margin-bottom:0}div#fmi-warnings div .nav-link{display:block;padding:0;text-decoration:none;background:none;border:none;cursor:pointer}div#fmi-warnings div .tab-content>.tab-pane{display:none}div#fmi-warnings div .tab-content>.tab-pane.active,div#fmi-warnings div .tab-content>.tab-pane.show{display:block}div#fmi-warnings div .tab-content .spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border-animation .75s linear infinite}@keyframes spinner-border-animation{to{transform:rotate(360deg)}}div#fmi-warnings div .tab-content .text-center{text-align:center!important}",k0=w2(y0,[["styles",[C0]]]);M3({rootComponent:k0,elementName:"smartmet-alert-client",VueDefineCustomElement:q3,h:T3,createApp:P3,getCurrentInstance:oe,disableShadowDOM:!0});
241
+ `,e+=">"+r,t.value&&(e+=t.value),t.children&&(e+=t.children.map(a=>this.stringify(a)).join(r)),e+=r+"</"+t.tag+">"):e+="/>",e)},stringifyProperties(t){return Object.keys(t).reduce((e,r)=>{const a=t[r];if(!a&&a!==0)return e;const n=a!=null&&a.toString===String.prototype.toString?a:JSON.stringify(a);return r==="href"&&(r="xlink:href"),e+" "+r+'="'+this.stringEscape(n)+'"'},"")},stringEscape(t){return String(t).replace(yn,function(e){return Cn[e]})},transformPoints(t,e){t.arcs&&t.arcs.transformPoints(e),t.layers.forEach(r=>{this.layerHasPoints(r)&&this.transformPointsInLayer(r,e)})},getRoundingFunction(t){(!(t!=null&&t.constructor===Number)||t===0)&&console.log("Rounding increment must be a non-zero number.");let e=1/t;return e>1&&(e=Math.round(e)),function(r){return Math.round(r*e)/e}},forEachArcId(t,e){let r;for(let a=0;a<t.length;a++)if(r=t[a],r instanceof Array)this.forEachArcId(r,e);else if(r!=null&&r.constructor===Number&&(r|0)===r){const n=e(r);n!==void 0&&(t[a]=n)}else r&&console.log("Non-integer arc id in:",t)},getEmptyLayerForSVG(t){const e={tag:"g",properties:{id:t.name},children:[]};return t.geometry_type==="polyline"&&(e.properties.fill="none"),t.geometry_type==="polyline"&&(e.properties.stroke="black",e.properties["stroke-width"]=1),e},layerHasPoints(t){return t.geometry_type==="point"&&this.layerHasNonNullShapes(t)},transformPointsInLayer(t,e){this.layerHasPoints(t)&&this.forEachPoint(t.shapes,function(r){const a=e(r[0],r[1]);r[0]=a[0],r[1]=a[1]})},forEachPoint(t,e){let r,a,n,o,s;for(r=0,a=t.length;r<a;r++)for(s=t[r],n=0,o=s?s.length:0;n<o;n++)e(s[n],r)},exportSymbolsForSVG(t,e,r){const a=this.defaults({layers:[t]},e),n=this.exportDatasetAsGeoJSON(a,r),o=n.features||n.geometries||(n.type?[n]:[]),s=this.importGeoJSONFeatures(o,r);return r.svg_data&&t.data&&this.addDataAttributesToSVG(s,t.data,r.svg_data),s},parseMarginOption(t){const r=(t!=null&&t.constructor===Number?String(t):t||"").trim().split(/[, ] */);return r.length==1&&r.push(r[0]),r.length==2&&r.push(r[0],r[1]),r.length==3&&r.push(r[2]),r.map(function(a){const n=parseFloat(a);return isNaN(n)?1:n})},defaults(t){for(let e=1,r=arguments.length;e<r;e++){const a=arguments[e]||{};for(const n in a)!(n in t)&&a.hasOwnProperty(n)&&(t[n]=a[n])}return t},exportDatasetAsGeoJSON(t,e){const r={},a=t.layers,n=this.useFeatureCollection(a);let o;n?(r.type="FeatureCollection",o="features"):(r.type="GeometryCollection",o="geometries");const s=a.reduce((l,d,u)=>{const g=this.exportLayerAsGeoJSON(d,t,e,n);return l.length>0?l.concat(g):g},[]);return r[o]=s,r},useFeatureCollection(t){return this.someUtil(t,e=>{const r=e.data?e.data.getFields():[],a=this.useFeatureProperties(r),n=!!this.getIdField(r);return a||n})},useFeatureProperties(t){return!(t.length===0||t.length===1&&t[0]==F2.ID_FIELD)},getIdField(t){const e=[];return e.push(F2.ID_FIELD),this.find(e,r=>this.contains(t,r))},contains(t,e){if(t!=null&&t.toString===String.prototype.toString)return t.indexOf(e)!==-1;if(Je(t))return this.indexOf(t,e)!==-1;console.log("Expected Array or String argument")},indexOf(t,e){const r=e!==e;for(let a=0,n=t.length||0;a<n;a++)if(t[a]===e||r&&t[a]!==t[a])return a;return-1},find(t,e,r){const a=t.filter(e,r);return a.length===0?null:a[0]},exportLayerAsGeoJSON(t,e,r,a){const n=this.exportProperties(t.data,r),o=t.shapes,s=this.exportIds(t.data,r);return n&&o&&n.length!==o.length&&console.log("Mismatch between number of properties and number of shapes"),(o||n||[]).reduce(function(l,d,u){const g=o?o[u]:null,f=F2.exporters[t.geometry_type];let y=g?f(g,e.arcs,r):null;if(a)y={type:"Feature",geometry:y,properties:n?n[u]:null},s&&(y.id=s[u]);else if(!y)return l;return l.push(y),l},[])},exportProperties(t,e){const r=t?t.getFields():[],a=this.getIdField(r,e);let n;if(!this.useFeatureProperties(r,e))return null;const o=t.getRecords();return a==F2.ID_FIELD?n=o.map(function(s){return s=xt({},s),delete s[a],s}):n=o,n},importGeoJSONFeatures(t,e){return e=e||{},t.map((r,a)=>{const n=r.type==="Feature"?r.geometry:r,o=n&&n.type;let s=null;return o&&n.coordinates&&(s=Zn[o](n.coordinates,r.properties,e)),s?(r.properties&&this.applyStyleAttributes(s,o,r.properties),"id"in r&&(s.properties||(s.properties={}),s.properties.id=(e.id_prefix||"")+r.id),s):{tag:"g"}})},addDataAttributesToSVG(t,e,r){const a=e.getFields();let n=r.indexOf("*")>-1?a.concat():r;const o=this.difference(n,a);o.length>0&&(n=this.difference(n,o));const s=e.getRecords(),l=this.exportDataAttributesForSVG(s,n);t.length!==l.length&&console.log("Mismatch between number of SVG symbols and data attributes"),t.forEach(function(d,u){xt(d.properties||{},l[u])})},exportDataAttributesForSVG(t,e){const r=/^[a-z_][a-z0-9_-]*$/i,a=/^xml/,n=e.filter(function(s){return r.test(s)&&!a.test(s)}),o=this.difference(e,n);return o.length>0&&(console.log("Unable to add data-* attributes for field(s):",o.join(", ")),console.log("data-* names should match pattern [a-z_][a-z0-9_-]*")),t.map(function(s){const l={};for(let d=0;d<n.length;d++)l["data-"+n[d].toLowerCase()]=String(s[n[d]]);return l})},difference(t,e){const r=this.arrayToIndex(e);return t.filter(function(a){return!Object.prototype.hasOwnProperty.call(r,a)})},arrayToIndex(t,e){const r=arguments.length>1;return t.reduce(function(a,n){return a[n]=r?e:!0,a},{})},applyStyleAttributes(t,e,r){let a=F2.translateGeoJSONType(e);a==="point"&&"label-text"in r&&(a="label");const n=this.findPropertiesBySymbolGeom(Object.keys(r),a);for(let o=0,s=n.length;o<s;o++)this.setAttribute(t,n[o],r[n[o]])},findPropertiesBySymbolGeom(t,e){const r=kn[e]||{};return t.filter(function(a){return a in r})},setAttribute(t,e,r){e==="r"||(t.properties||(t.properties={}),t.properties[e]=r,e==="stroke-dasharray"&&r&&(t.properties["stroke-linecap"]="butt"))},exportIds(t,e){const r=t?t.getFields():[],a=this.getIdField(r,e);return a?t.getRecords().map(function(n){return a in n?n[a]:null}):null}}},t0=t=>(gt("data-v-3ed8c052"),t=t(),ft(),t),e0=["data-smartmet-alert-client-version"],r0={class:"row"},a0={class:"col-12 col-md-8 col-lg-8 col-xl-8 day-region-views"},i0=["aria-label"],n0={key:1,class:"not-ready"},o0=["href"],s0={key:2},l0=["href"],d0=["aria-label"],u0={class:"col-12 col-md-4 col-lg-4 col-xl-4 symbol-list"},c0={key:0,class:"row"},g0={class:"col-12 col-md-8 col-lg-8 col-xl-8 day-region-views"},f0=t0(()=>F("div",{class:"col-12 col-md-4 col-lg-4 col-xl-4 symbol-list"},null,-1)),m0=b2({__name:"AlertClient",props:{refreshInterval:{default:1e3*60*15,type:Number},defaultDay:{default:0,type:Number},staticDays:{type:Boolean,default:!0},startFrom:{default:"",type:String},regionListEnabled:{type:Boolean,default:!0},grayScaleSelector:{type:Boolean,default:!1},currentTime:{default:()=>Date.now(),type:Number},warningsData:{default:null,type:[Object,null]},dailyWarningTypes:{default:()=>[],type:Array},geometryId:{default:2021,type:Number},language:{default:"en",type:String},theme:{default:"light-theme",type:String},loading:{default:1,type:Number},sleep:{type:Boolean,default:!0},spinnerEnabled:{type:Boolean,default:!0}},emits:["loaded","themeChanged","update-warnings"],setup(t,{emit:e}){const r=t,a=e,n=qt(),{t:o}=G2(n2(r,"language")),s=l2(r.defaultDay),l=l2([]),d=l2(null),u=l2(null),g=l2(null),f=l2([]),y=l2(V3()),k=l2({}),A=l2([]),h=l2(0),x="4.7.0",S=l2([]),B=O1.methods.geoJSONToSVG.bind(O1.methods),c=q(()=>String(r.geometryId)),v=q(()=>n.geometries),m=q(()=>n.regionIds),p=q(()=>n.warningTypes),b=q(()=>n.timeZone),C=q(()=>n.dateTimeFormatLocale),E=q(()=>r.currentTime),N=q(()=>r.startFrom),z=q(()=>r.staticDays),H=q(()=>r.dailyWarningTypes),Y=q(()=>n.maxUpdateDelay),w=q(()=>n.bbox),L=J=>{S.value.includes(J)||S.value.push(J),console.log(J)},Q=()=>{a("loaded",-1)},{handleMapWarnings:_}=pn({geometryId:c,geometries:v,regionIds:m,warningTypes:p,timeZone:b,locale:C,currentTime:E,startFrom:N,staticDays:z,dailyWarningTypes:H,maxUpdateDelay:Y,bbox:w,geoJSONToSVG:B,t:o,handleError:L,onDataError:Q}),M=q(()=>[ae,ie].some(J=>(y.value?.[s.value]?.[J]?.length??0)>0)?o("toContent")||"":o("toNextContent")||""),I=q(()=>[ae,ie].some(J=>(y.value?.[s.value]?.[J]?.length??0)>0)?"#fmi-warnings-region-content":"#fmi-warnings-end-of-regions"),T=q(()=>o("noWarnings")),G=q(()=>A.value.length>0?o("validWarnings"):o("noWarnings")),O=q(()=>A.value.length>0?o("validWarningsAriaLabel"):o("noWarnings")),P=q(()=>o("supportedBrowsersLink")),j=q(()=>o("supportedBrowsers")),U=q(()=>r.loading===-1?o("failed"):o("notInitializedStart")),e2=q(()=>r.loading===-1?"":o("notInitializedEnd")),V=q(()=>g.value!=null?Object.keys(g.value).length:0),t2=q(()=>f.value!=null&&f.value.length===5&&f.value[0]?.updatedDate!=null&&f.value[0]?.updatedDate.length>0),d2=J=>{s.value=J},m2=J=>{l.value=J,A.value.forEach((S2,Q2)=>{const mt=J.includes(S2.type);mt!==S2.visible&&A.value[Q2]&&(A.value[Q2].visible=mt)})},A2=J=>{r.loading!==-1&&J&&a("loaded",1)},L2=J=>{r.theme!==J&&a("themeChanged",J)},y2=()=>{const Q2=oe()?.proxy?.$el?.querySelector(I.value);Q2?.scrollIntoView(),Q2?.focus()},C2=()=>{if(r.warningsData!=null){const J=_(r.warningsData);g.value=J.warnings,f.value=J.days,y.value=J.regions,k.value=J.parents,A.value=J.legend,l.value=A.value.filter(S2=>S2.visible).map(S2=>S2.type)}},v2=()=>{Jt()&&r.refreshInterval&&(document.hidden?$2():($2(),U2(),N2()))},N2=()=>{r.refreshInterval&&(d.value=setInterval(U2,r.refreshInterval))},$2=()=>{d.value!=null&&(clearInterval(d.value),d.value=null)},U2=()=>{r.refreshInterval>0&&a("update-warnings")};return Ft(()=>r.warningsData,()=>{C2()}),C2(),r.warningsData==null&&U2(),ct(()=>{N2(),Jt()&&r.sleep&&(document.addEventListener("visibilitychange",v2),u.value=v2)}),X1(()=>{Jt()&&u.value&&document.removeEventListener("visibilitychange",u.value),$2()}),F3(()=>{C2()}),(J,S2)=>(Z(),R("div",{id:"fmi-warnings",class:a2(J.theme),"data-smartmet-alert-client-version":$(x)},[F("div",{id:"fmi-warnings-errors",class:a2(S.value)},null,2),F("div",null,[F("div",{class:a2(["container-fluid",J.theme])},[F("div",r0,[F("div",a0,[J.loading?g2("",!0):(Z(),R("h2",{key:0,class:"valid-warnings","aria-label":O.value},r2(G.value),9,i0)),J.loading?(Z(),R("div",n0,[F("p",null,r2(U.value)+" "+r2(e2.value),1),F("a",{href:P.value,target:"_blank",rel:"noopener noreferrer",class:"supported-browsers"},r2(j.value),9,o0)])):g2("",!0),J.regionListEnabled?(Z(),R("div",s0,[V.value?(Z(),R("a",{key:0,id:"fmi-warnings-to-text-content",href:I.value,tabindex:"0",class:"visually-hidden-focusable focus-ring",onClick:y2},r2(M.value),9,l0)):(Z(),R("div",{key:1,"aria-label":T.value},null,8,d0))])):g2("",!0),T2(s4,{input:f.value,"visible-warnings":l.value,"selected-day":s.value,"static-days":J.staticDays,"time-offset":h.value,warnings:g.value,regions:y.value,"geometry-id":J.geometryId,loading:!!J.loading,theme:J.theme,language:J.language,"spinner-enabled":J.spinnerEnabled,onDaySelected:d2,onLoaded:A2},null,8,["input","visible-warnings","selected-day","static-days","time-offset","warnings","regions","geometry-id","loading","theme","language","spinner-enabled"])]),F("div",u0,[L3(T2(D5,{input:A.value,"visible-warnings":l.value,"gray-scale-selector":J.grayScaleSelector,theme:J.theme,language:J.language,onThemeChanged:L2,onWarningsToggled:m2},null,8,["input","visible-warnings","gray-scale-selector","theme","language"]),[[S3,t2.value]])])]),J.regionListEnabled?(Z(),R("div",c0,[F("div",g0,[T2(nn,{input:y.value,"selected-day":s.value,warnings:g.value,parents:k.value,"geometry-id":J.geometryId,theme:J.theme,language:J.language},null,8,["input","selected-day","warnings","parents","geometry-id","theme","language"])]),f0])):g2("",!0)],2)])],10,e0))}}),v0='@font-face{font-family:Noto Sans;font-weight:400;font-style:normal;src:url(data:font/woff2;base64,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) format("woff2");font-display:swap}div#fmi-warnings div[data-v-3ed8c052] *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;font-family:Roboto,Helvetica,Arial,Noto Sans,sans-serif;font-size:1rem;line-height:1.42857143;background-color:transparent;font-weight:400}div#fmi-warnings div[data-v-3ed8c052] * *:focus{outline-offset:2px;z-index:5}div#fmi-warnings div[data-v-3ed8c052] * .bold-text{font-weight:700!important}div#fmi-warnings div[data-v-3ed8c052] * .noselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}div#fmi-warnings div[data-v-3ed8c052] * h3{font-weight:700}div#fmi-warnings div[data-v-3ed8c052] .light-theme *{color:#191b22}div#fmi-warnings div[data-v-3ed8c052] .dark-theme *{color:#fff}div#fmi-warnings div[data-v-3ed8c052] .light-gray-theme *{color:#191b22}div#fmi-warnings div[data-v-3ed8c052] .dark-gray-theme *{color:#fff}div#fmi-warnings[data-v-3ed8c052]{width:700px;padding:0;margin-bottom:20px}div#fmi-warnings h2.valid-warnings[data-v-3ed8c052]{text-align:left;font-weight:700;margin-top:0;margin-bottom:3px}div#fmi-warnings div.not-ready[data-v-3ed8c052]{width:100%;padding:15px}div#fmi-warnings div.not-ready a.supported-browsers[data-v-3ed8c052]{font-weight:700;text-decoration:none}div#fmi-warnings .light-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #303193}div#fmi-warnings .light-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#303193;border-bottom:1px solid #02A3B7}div#fmi-warnings .light-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#303193}div#fmi-warnings .dark-theme div.not-ready[data-v-3ed8c052]{background-color:#282b34;border:1px solid #e7f0fa}div#fmi-warnings .dark-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#e7f0fa;border-bottom:1px solid #e7f0fa}div#fmi-warnings .dark-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#e7f0fa}div#fmi-warnings .light-gray-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #303193}div#fmi-warnings .light-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#434752;border-bottom:1px solid #434752}div#fmi-warnings .light-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#191b22}div#fmi-warnings .dark-gray-theme div.not-ready[data-v-3ed8c052]{background-color:#e7f0fa;border:1px solid #e7f0fa}div#fmi-warnings .dark-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]{color:#eee;border-bottom:1px solid #eee}div#fmi-warnings .dark-gray-theme div.not-ready a.supported-browsers[data-v-3ed8c052]:hover{border-bottom-color:#fff}div#fmi-warnings div[data-v-3ed8c052]{background-color:transparent}div#fmi-warnings div.container-fluid[data-v-3ed8c052]{padding:0;margin:5px 0 0}div#fmi-warnings a#fmi-warnings-to-text-content[data-v-3ed8c052]{font-family:Roboto,Helvetica,Arial,Noto Sans,sans-serif;font-size:1rem;height:20px}div#fmi-warnings a#fmi-warnings-to-text-content[data-v-3ed8c052]:focus{outline-offset:2px}div#fmi-warnings div .row[data-v-3ed8c052]{margin-left:0;margin-right:0}div#fmi-warnings div div.day-region-views[data-v-3ed8c052]{max-width:440px;width:440px;padding-left:0;padding-right:0}div#fmi-warnings div div.symbol-list[data-v-3ed8c052]{top:0;z-index:1;padding-left:20px;padding-right:0;box-sizing:border-box;width:260px;max-width:260px;min-width:260px}div#fmi-warnings div .light-gray-theme a.supported-browsers[data-v-3ed8c052]{color:#434752}div#fmi-warnings div .dark-gray-theme a.supported-browsers[data-v-3ed8c052]{color:#eee}@media (max-width: 767px){div#fmi-warnings[data-v-3ed8c052]{width:100%}div#fmi-warnings div div.day-region-views[data-v-3ed8c052]{min-width:100%;width:100%;max-width:100%}div#fmi-warnings div div.symbol-list[data-v-3ed8c052]{position:static;padding-left:0;margin-top:0;margin-bottom:0;min-width:100%;width:100%;max-width:100%}}@media print{div#fmi-warnings div .symbol-list[data-v-3ed8c052]{display:none}}',h0=w2(m0,[["styles",[v0]],["__scopeId","data-v-3ed8c052"]]);var He={exports:{}};(function(t,e){var r=typeof self<"u"?self:Vt,a=function(){function o(){this.fetch=!1,this.DOMException=r.DOMException}return o.prototype=r,new o}();(function(o){(function(s){var l={searchParams:"URLSearchParams"in o,iterable:"Symbol"in o&&"iterator"in Symbol,blob:"FileReader"in o&&"Blob"in o&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in o,arrayBuffer:"ArrayBuffer"in o};function d(w){return w&&DataView.prototype.isPrototypeOf(w)}if(l.arrayBuffer)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=ArrayBuffer.isView||function(w){return w&&u.indexOf(Object.prototype.toString.call(w))>-1};function f(w){if(typeof w!="string"&&(w=String(w)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(w))throw new TypeError("Invalid character in header field name");return w.toLowerCase()}function y(w){return typeof w!="string"&&(w=String(w)),w}function k(w){var L={next:function(){var Q=w.shift();return{done:Q===void 0,value:Q}}};return l.iterable&&(L[Symbol.iterator]=function(){return L}),L}function A(w){this.map={},w instanceof A?w.forEach(function(L,Q){this.append(Q,L)},this):Array.isArray(w)?w.forEach(function(L){this.append(L[0],L[1])},this):w&&Object.getOwnPropertyNames(w).forEach(function(L){this.append(L,w[L])},this)}A.prototype.append=function(w,L){w=f(w),L=y(L);var Q=this.map[w];this.map[w]=Q?Q+", "+L:L},A.prototype.delete=function(w){delete this.map[f(w)]},A.prototype.get=function(w){return w=f(w),this.has(w)?this.map[w]:null},A.prototype.has=function(w){return this.map.hasOwnProperty(f(w))},A.prototype.set=function(w,L){this.map[f(w)]=y(L)},A.prototype.forEach=function(w,L){for(var Q in this.map)this.map.hasOwnProperty(Q)&&w.call(L,this.map[Q],Q,this)},A.prototype.keys=function(){var w=[];return this.forEach(function(L,Q){w.push(Q)}),k(w)},A.prototype.values=function(){var w=[];return this.forEach(function(L){w.push(L)}),k(w)},A.prototype.entries=function(){var w=[];return this.forEach(function(L,Q){w.push([Q,L])}),k(w)},l.iterable&&(A.prototype[Symbol.iterator]=A.prototype.entries);function h(w){if(w.bodyUsed)return Promise.reject(new TypeError("Already read"));w.bodyUsed=!0}function x(w){return new Promise(function(L,Q){w.onload=function(){L(w.result)},w.onerror=function(){Q(w.error)}})}function S(w){var L=new FileReader,Q=x(L);return L.readAsArrayBuffer(w),Q}function B(w){var L=new FileReader,Q=x(L);return L.readAsText(w),Q}function c(w){for(var L=new Uint8Array(w),Q=new Array(L.length),_=0;_<L.length;_++)Q[_]=String.fromCharCode(L[_]);return Q.join("")}function v(w){if(w.slice)return w.slice(0);var L=new Uint8Array(w.byteLength);return L.set(new Uint8Array(w)),L.buffer}function m(){return this.bodyUsed=!1,this._initBody=function(w){this._bodyInit=w,w?typeof w=="string"?this._bodyText=w:l.blob&&Blob.prototype.isPrototypeOf(w)?this._bodyBlob=w:l.formData&&FormData.prototype.isPrototypeOf(w)?this._bodyFormData=w:l.searchParams&&URLSearchParams.prototype.isPrototypeOf(w)?this._bodyText=w.toString():l.arrayBuffer&&l.blob&&d(w)?(this._bodyArrayBuffer=v(w.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):l.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(w)||g(w))?this._bodyArrayBuffer=v(w):this._bodyText=w=Object.prototype.toString.call(w):this._bodyText="",this.headers.get("content-type")||(typeof w=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):l.searchParams&&URLSearchParams.prototype.isPrototypeOf(w)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},l.blob&&(this.blob=function(){var w=h(this);if(w)return w;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?h(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(S)}),this.text=function(){var w=h(this);if(w)return w;if(this._bodyBlob)return B(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(c(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},l.formData&&(this.formData=function(){return this.text().then(E)}),this.json=function(){return this.text().then(JSON.parse)},this}var p=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function b(w){var L=w.toUpperCase();return p.indexOf(L)>-1?L:w}function C(w,L){L=L||{};var Q=L.body;if(w instanceof C){if(w.bodyUsed)throw new TypeError("Already read");this.url=w.url,this.credentials=w.credentials,L.headers||(this.headers=new A(w.headers)),this.method=w.method,this.mode=w.mode,this.signal=w.signal,!Q&&w._bodyInit!=null&&(Q=w._bodyInit,w.bodyUsed=!0)}else this.url=String(w);if(this.credentials=L.credentials||this.credentials||"same-origin",(L.headers||!this.headers)&&(this.headers=new A(L.headers)),this.method=b(L.method||this.method||"GET"),this.mode=L.mode||this.mode||null,this.signal=L.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Q)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(Q)}C.prototype.clone=function(){return new C(this,{body:this._bodyInit})};function E(w){var L=new FormData;return w.trim().split("&").forEach(function(Q){if(Q){var _=Q.split("="),M=_.shift().replace(/\+/g," "),I=_.join("=").replace(/\+/g," ");L.append(decodeURIComponent(M),decodeURIComponent(I))}}),L}function N(w){var L=new A,Q=w.replace(/\r?\n[\t ]+/g," ");return Q.split(/\r?\n/).forEach(function(_){var M=_.split(":"),I=M.shift().trim();if(I){var T=M.join(":").trim();L.append(I,T)}}),L}m.call(C.prototype);function z(w,L){L||(L={}),this.type="default",this.status=L.status===void 0?200:L.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in L?L.statusText:"OK",this.headers=new A(L.headers),this.url=L.url||"",this._initBody(w)}m.call(z.prototype),z.prototype.clone=function(){return new z(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new A(this.headers),url:this.url})},z.error=function(){var w=new z(null,{status:0,statusText:""});return w.type="error",w};var H=[301,302,303,307,308];z.redirect=function(w,L){if(H.indexOf(L)===-1)throw new RangeError("Invalid status code");return new z(null,{status:L,headers:{location:w}})},s.DOMException=o.DOMException;try{new s.DOMException}catch{s.DOMException=function(L,Q){this.message=L,this.name=Q;var _=Error(L);this.stack=_.stack},s.DOMException.prototype=Object.create(Error.prototype),s.DOMException.prototype.constructor=s.DOMException}function Y(w,L){return new Promise(function(Q,_){var M=new C(w,L);if(M.signal&&M.signal.aborted)return _(new s.DOMException("Aborted","AbortError"));var I=new XMLHttpRequest;function T(){I.abort()}I.onload=function(){var G={status:I.status,statusText:I.statusText,headers:N(I.getAllResponseHeaders()||"")};G.url="responseURL"in I?I.responseURL:G.headers.get("X-Request-URL");var O="response"in I?I.response:I.responseText;Q(new z(O,G))},I.onerror=function(){_(new TypeError("Network request failed"))},I.ontimeout=function(){_(new TypeError("Network request failed"))},I.onabort=function(){_(new s.DOMException("Aborted","AbortError"))},I.open(M.method,M.url,!0),M.credentials==="include"?I.withCredentials=!0:M.credentials==="omit"&&(I.withCredentials=!1),"responseType"in I&&l.blob&&(I.responseType="blob"),M.headers.forEach(function(G,O){I.setRequestHeader(O,G)}),M.signal&&(M.signal.addEventListener("abort",T),I.onreadystatechange=function(){I.readyState===4&&M.signal.removeEventListener("abort",T)}),I.send(typeof M._bodyInit>"u"?null:M._bodyInit)})}return Y.polyfill=!0,o.fetch||(o.fetch=Y,o.Headers=A,o.Request=C,o.Response=z),s.Headers=A,s.Request=C,s.Response=z,s.fetch=Y,Object.defineProperty(s,"__esModule",{value:!0}),s})({})})(a),a.fetch.ponyfill=!0,delete a.fetch.polyfill;var n=a;e=n.fetch,e.default=n.fetch,e.fetch=n.fetch,e.Headers=n.Headers,e.Request=n.Request,e.Response=n.Response,t.exports=e})(He,He.exports);var p0=He.exports;const A0=Qe(p0),st=(t,e=!0)=>typeof t=="boolean"?t:typeof t=="string"?t.toLowerCase()!=="false":e,ee=(t,e=0)=>typeof t=="number"?t:typeof t=="string"?Number(t):e,H1="weather_update_time",Y1="flood_update_time",Q1="weather_finland_active_all",j1="flood_finland_active_all",D0=["moderate","severe","extreme"],Kt="?service=WFS&version=1.0.0&request=GetFeature&maxFeatures=1000&outputFormat=application%2Fjson&typeName=";function b0(t){const{baseUrl:e,language:r,theme:a,warnings:n,currentDate:o,fontScale:s,debugMode:l,weatherUpdated:d,floodUpdated:u,weatherWarnings:g,floodWarnings:f}=t,y=l2(1),k=l2(null),A=l2(null),h=l2(`${a.value}-theme`),x=l2(null),S=l2(!0),B=l2(!1),c={fi:"fi-FI",sv:"sv-SV",en:"en-US"},v=()=>c[r.value]||"fi-FI",m=q(()=>`${D0.reduce((I,T,G)=>`${I}${G===0?"":","}%27${T.toUpperCase()}%27`,"&cql_filter=severity%20IN%20(")})%20AND%20language=%27${v()}%27`),p=q(()=>d?.value||`${Kt}${H1}`),b=q(()=>u?.value||`${Kt}${Y1}`),C=q(()=>g?.value||`${Kt}${Q1}`),E=q(()=>f?.value||`${Kt}${j1}${m.value}`),N=q(()=>A.value?A.value:o?.value?(o.value instanceof Date?o.value:new Date(o.value)).getTime():Date.now());return{loading:y,updatedAt:k,refreshedAt:A,themeClass:h,warningsData:x,visible:S,currentTime:N,weatherUpdatedQuery:p,floodUpdatedQuery:b,weatherWarningsQuery:C,floodWarningsQuery:E,onLoaded:M=>{M!==0&&(y.value=M===-1?-1:0)},onThemeChanged:M=>{h.value=`${M!=null&&M.length>0?M:a.value}-theme`},fetchWarnings:()=>{if(n?.value||B.value)return;B.value=!0,y.value=1,l?.value&&console.log(`Updating warnings at ${new Date}`);const M=`_t=${Date.now()}`,I=O=>O.includes("?")?`${O}&${M}`:`${O}?${M}`,T=new Map([[`${e.value}${p.value}`,H1],[`${e.value}${b.value}`,Y1],[`${e.value}${C.value}`,Q1],[`${e.value}${E.value}`,j1]]),G={};return Promise.allSettled([...T.keys()].map(async O=>A0(I(O)).then(P=>P.json().then(j=>{const U=Date.now();k.value!=null&&(A.value=U),k.value=U,G[T.get(O)]=j}).catch(j=>{y.value=-1,console.log(j)})))).then(()=>{x.value=G}).finally(()=>{B.value=!1})},show:()=>{S.value=!0},hide:()=>{S.value=!1},initializeWarnings:()=>{n?.value&&(x.value=typeof n.value=="string"?JSON.parse(n.value):n.value)},applyFontScale:()=>{const M=ee(s?.value,1);if(M!==1){let I;if(typeof window<"u"&&typeof document<"u"&&document.documentElement&&window.getComputedStyle){const O=document.documentElement,P=window.getComputedStyle(O);I=parseFloat(P.fontSize)}(I==null||Number.isNaN(I))&&(I=16);const T=M*I,G=Math.round(T*100)/100;document.documentElement.style.fontSize=`${G}px`}}}}const w0="2021",y0=b2({name:"App",__name:"App",props:{currentDate:{default:"",type:String},baseUrl:{default:"https://www.ilmatieteenlaitos.fi/geoserver/alert/ows",type:String},selectedDay:{default:"0",type:String},regionListEnabled:{default:"true",type:String},spinnerEnabled:{default:"true",type:String},grayScaleSelector:{default:"true",type:String},staticDays:{default:"true",type:String},startFrom:{default:"",type:String},weatherUpdated:{default:"",type:String},floodUpdated:{default:"",type:String},weatherWarnings:{default:"",type:String},floodWarnings:{default:"",type:String},warnings:{default:"",type:String},dailyWarningTypes:{default:"",type:String},refreshInterval:{default:"900000",type:String},geometryId:{default:w0,type:String},language:{default:"fi",type:String},theme:{default:"light",type:String},fontScale:{default:"1",type:String},sleep:{default:"true",type:String},debugMode:{default:"false",type:String}},setup(t,{expose:e}){const r=t,a=q(()=>ee(r.selectedDay,0)),n=q(()=>st(r.regionListEnabled,!0)),o=q(()=>st(r.grayScaleSelector,!0)),s=q(()=>st(r.staticDays,!0)),l=q(()=>r.dailyWarningTypes?r.dailyWarningTypes.split(",").map(E=>E.trim()):[]),d=q(()=>ee(r.refreshInterval,9e5)),u=q(()=>ee(r.geometryId,2021)),g=q(()=>st(r.sleep,!0)),f=q(()=>st(r.spinnerEnabled,!0)),y=q(()=>st(r.debugMode,!1)),k=q(()=>r.language),A=q(()=>r.warnings?r.warnings:null),{loading:h,themeClass:x,warningsData:S,visible:B,currentTime:c,onLoaded:v,onThemeChanged:m,fetchWarnings:p,initializeWarnings:b,applyFontScale:C}=b0({baseUrl:n2(r,"baseUrl"),language:k,theme:n2(r,"theme"),warnings:A,currentDate:n2(r,"currentDate"),fontScale:n2(r,"fontScale"),debugMode:y,weatherUpdated:n2(r,"weatherUpdated"),floodUpdated:n2(r,"floodUpdated"),weatherWarnings:n2(r,"weatherWarnings"),floodWarnings:n2(r,"floodWarnings")});return b(),ct(()=>{C()}),e({show:()=>{B.value=!0},hide:()=>{B.value=!1}}),(E,N)=>$(B)?(Z(),K2(h0,{key:0,"refresh-interval":d.value,"default-day":a.value,"static-days":s.value,"start-from":E.startFrom,"region-list-enabled":n.value,"gray-scale-selector":o.value,"current-time":$(c),"warnings-data":$(S),"daily-warning-types":l.value,"geometry-id":u.value,language:E.language,theme:$(x),sleep:g.value,loading:$(h),"spinner-enabled":f.value,onLoaded:$(v),onThemeChanged:$(m),onUpdateWarnings:$(p)},null,8,["refresh-interval","default-day","static-days","start-from","region-list-enabled","gray-scale-selector","current-time","warnings-data","daily-warning-types","geometry-id","language","theme","sleep","loading","spinner-enabled","onLoaded","onThemeChanged","onUpdateWarnings"])):g2("",!0)}}),C0="div#fmi-warnings div .mobile-only{display:block}@media (min-width: 768px){div#fmi-warnings div .mobile-only{display:none}}div#fmi-warnings div .desktop-only{display:none}@media (min-width: 768px){div#fmi-warnings div .desktop-only{display:block}}div#fmi-warnings div .d-none{display:none!important}div#fmi-warnings div .d-block{display:block!important}@media (min-width: 768px){div#fmi-warnings div .d-md-none{display:none!important}div#fmi-warnings div .d-md-block{display:block!important}div#fmi-warnings div .d-md-table-cell{display:table-cell!important}}div#fmi-warnings div .d-inline{display:inline!important}div#fmi-warnings div .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}div#fmi-warnings div .visually-hidden-focusable{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}div#fmi-warnings div .visually-hidden-focusable:focus,div#fmi-warnings div .visually-hidden-focusable:focus-within{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}div#fmi-warnings div .focus-ring{outline:none}div#fmi-warnings div .focus-ring:focus{outline:2px solid #0d6efd;outline-offset:2px}div#fmi-warnings div .focus-ring:focus:not(:focus-visible){outline:none}div#fmi-warnings div .focus-ring:focus-visible{outline:2px solid #0d6efd;outline-offset:2px}@media (min-width: 576px){div#fmi-warnings div .d-sm-block{display:block!important}div#fmi-warnings div .d-sm-none{display:none!important}}div#fmi-warnings div .mb-1{margin-bottom:.25rem}div#fmi-warnings div .p-0{padding:0}div#fmi-warnings div .p-1{padding:.25rem}div#fmi-warnings div .sticky-top{position:sticky;top:0;z-index:10}div#fmi-warnings div .row{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0}div#fmi-warnings div .nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}div#fmi-warnings div .nav-tabs{border-bottom:none}div#fmi-warnings div .nav-item{margin-bottom:0}div#fmi-warnings div .nav-link{display:block;padding:0;text-decoration:none;background:none;border:none;cursor:pointer}div#fmi-warnings div .tab-content>.tab-pane{display:none}div#fmi-warnings div .tab-content>.tab-pane.active,div#fmi-warnings div .tab-content>.tab-pane.show{display:block}div#fmi-warnings div .tab-content .spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border-animation .75s linear infinite}@keyframes spinner-border-animation{to{transform:rotate(360deg)}}div#fmi-warnings div .tab-content .text-center{text-align:center!important}",k0=w2(y0,[["styles",[C0]]]);M3({rootComponent:k0,elementName:"smartmet-alert-client",VueDefineCustomElement:q3,h:T3,createApp:P3,getCurrentInstance:oe,disableShadowDOM:!0});
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @fmidev/smartmet-alert-client
3
- * version: v4.7.0-rc.0
3
+ * version: v4.7.0
4
4
  * description: Web application for viewing weather and flood alerts
5
5
  * author: Finnish Meteorological Institute
6
6
  * homepage: https://github.com/fmidev/smartmet-alert-client#readme
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @fmidev/smartmet-alert-client
3
- * version: v4.7.0-rc.0
3
+ * version: v4.7.0
4
4
  * description: Web application for viewing weather and flood alerts
5
5
  * author: Finnish Meteorological Institute
6
6
  * homepage: https://github.com/fmidev/smartmet-alert-client#readme
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @fmidev/smartmet-alert-client
3
- * version: v4.7.0-rc.0
3
+ * version: v4.7.0
4
4
  * description: Web application for viewing weather and flood alerts
5
5
  * author: Finnish Meteorological Institute
6
6
  * homepage: https://github.com/fmidev/smartmet-alert-client#readme
@@ -14828,7 +14828,7 @@ const Ag = function(e, t, n) {
14828
14828
  },
14829
14829
  emits: ["loaded", "themeChanged", "update-warnings"],
14830
14830
  setup(e, { emit: t }) {
14831
- const n = e, a = t, o = W2(), { t: s } = Et(be(n, "language")), u = Fe(n.defaultDay), l = Fe([]), p = Fe(null), f = Fe(null), d = Fe(null), D = Fe([]), C = Fe(vo()), F = Fe({}), x = Fe([]), w = Fe(0), L = "4.7.0-rc.0", $ = Fe([]), R = Ai.methods.geoJSONToSVG.bind(Ai.methods), m = j(() => String(n.geometryId)), A = j(() => o.geometries), b = j(() => o.regionIds), v = j(() => o.warningTypes), h = j(() => o.timeZone), k = j(() => o.dateTimeFormatLocale), _ = j(() => n.currentTime), I = j(() => n.startFrom), M = j(() => n.staticDays), J = j(() => n.dailyWarningTypes), G = j(
14831
+ const n = e, a = t, o = W2(), { t: s } = Et(be(n, "language")), u = Fe(n.defaultDay), l = Fe([]), p = Fe(null), f = Fe(null), d = Fe(null), D = Fe([]), C = Fe(vo()), F = Fe({}), x = Fe([]), w = Fe(0), L = "4.7.0", $ = Fe([]), R = Ai.methods.geoJSONToSVG.bind(Ai.methods), m = j(() => String(n.geometryId)), A = j(() => o.geometries), b = j(() => o.regionIds), v = j(() => o.warningTypes), h = j(() => o.timeZone), k = j(() => o.dateTimeFormatLocale), _ = j(() => n.currentTime), I = j(() => n.startFrom), M = j(() => n.staticDays), J = j(() => n.dailyWarningTypes), G = j(
14832
14832
  () => o.maxUpdateDelay
14833
14833
  ), T = j(
14834
14834
  () => o.bbox
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @fmidev/smartmet-alert-client
3
- * version: v4.7.0-rc.0
3
+ * version: v4.7.0
4
4
  * description: Web application for viewing weather and flood alerts
5
5
  * author: Finnish Meteorological Institute
6
6
  * homepage: https://github.com/fmidev/smartmet-alert-client#readme
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fmidev/smartmet-alert-client",
3
- "version": "4.7.0-rc.0",
3
+ "version": "4.7.0",
4
4
  "description": "Web application for viewing weather and flood alerts",
5
5
  "author": "Finnish Meteorological Institute",
6
6
  "license": "MIT",