(()=>{"use strict";var e,t={14784:(e,t,n)=>{n.d(t,{Z:()=>u});var a=n(96156),i=n(67294),o=n(45697),s=n.n(o),r=n(6304),l=n(17503);class c extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"componentWillUnmount",(()=>{const e=this.props.tabsWithData.indexOf(this.props.tabID)-1;e>-1&&this.props.activeTab===this.props.tabID&&this.props.setActiveInfoAreaTab(this.props.tabsWithData[e])}))}render(){return null}}c.propTypes={tabID:s().string.isRequired,tabsWithData:s().array.isRequired};const u=(0,r.$j)((e=>({activeTab:e.components.infoareatabs.activeTab,tabsWithData:e.components.infoareatabs.tabsWithData})),(e=>({setActiveInfoAreaTab:t=>e((0,l.Lt)(t))})))(c)},44365:(e,t,n)=>{n.d(t,{Z:()=>E});var a=n(67294),i=n(28388),o=n.n(i),s=n(45697),r=n.n(s),l=n(93379),c=n.n(l),u=n(7795),d=n.n(u),p=n(90569),m=n.n(p),A=n(3565),h=n.n(A),g=n(19216),v=n.n(g),k=n(44589),C=n.n(k),y=n(29217),f={};f.styleTagTransform=C(),f.setAttributes=h(),f.insert=m().bind(null,"head"),f.domAPI=d(),f.insertStyleElement=v(),c()(y.Z,f),y.Z&&y.Z.locals&&y.Z.locals;class b extends a.PureComponent{render(){return a.createElement("div",{className:"CheckBoxTree"},a.createElement(o(),{nodes:this.props.nodes,checked:this.props.checked,expanded:this.props.expanded,onCheck:this.props.onCheck,onExpand:this.props.onExpand,showNodeIcon:!1,disabled:this.props.disabled}))}}b.propTypes={nodes:r().array.isRequired,checked:r().array.isRequired,expanded:r().array.isRequired,onCheck:r().func.isRequired,onExpand:r().func.isRequired,disabled:r().bool};const E=b},71238:(e,t,n)=>{n.d(t,{Z:()=>w});var a=n(96156),i=n(67294),o=n(6304),s=n(45697),r=n.n(s),l=n(22913),c=n(80983),u=n(7513),d=n(56462),p=n(5108),m=n(57369),A=n(74444);const h={costs:{headerLocalizationKey:"dashboardLinkCostsHeader",municipalityLocalizationKey:"dashboardLinkCostsMunicipality",zipCodeLocalizationKey:"dashboardLinkCostsZipCode"},costspercitizen:{headerLocalizationKey:"dashboardLinkCostsPerCitizenHeader",municipalityLocalizationKey:"dashboardLinkCostsPerCitizenMunicipality",zipCodeLocalizationKey:"dashboardLinkCostsPerCitizenZipCode"}};var g=n(93379),v=n.n(g),k=n(7795),C=n.n(k),y=n(90569),f=n.n(y),b=n(3565),E=n.n(b),L=n(19216),B=n.n(L),S=n(44589),T=n.n(S),x=n(85141),P={};P.styleTagTransform=T(),P.setAttributes=E(),P.insert=f().bind(null,"head"),P.domAPI=C(),P.insertStyleElement=B(),v()(x.Z,P),x.Z&&x.Z.locals&&x.Z.locals;class I extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"state",{loadingStatus:"loading",aborted:!1,dashboardLinkData:[]}),(0,a.Z)(this,"onDashboardLinkDataFetchAbort",(()=>{this.setState({loadingStatus:"error",aborted:!0})})),(0,a.Z)(this,"fetchDashboardLinkData",((e,t,n)=>{this.setState({loadingStatus:"loading",aborted:!1});const a={dashboardSheets:this.props.dashboardSheets},{promise:i,request:o}=(0,u.tU)("POST",`${d.yx}/getDashboardLinks`,{headers:{"Content-Type":"application/json"}},JSON.stringify(a),null,this.onDashboardLinkDataFetchAbort);i.then((n=>this.handleDashboardLinkDataFetchSuccess(e,t,n))).catch((e=>this.handleDashboardLinkDataFetchError(e))),n(o)})),(0,a.Z)(this,"handleDashboardLinkDataFetchSuccess",((e,t,n)=>{this.isUnMounted||t(e,JSON.parse(n))})),(0,a.Z)(this,"handleDashboardLinkDataFetchError",(()=>{this.setState({loadingStatus:"error",aborted:!1})})),(0,a.Z)(this,"componentWillUnmount",(()=>{this.cleanUp()})),(0,a.Z)(this,"cleanUp",(()=>{this.isUnMounted=!0})),(0,a.Z)(this,"refreshDashboardLinksFetch",(()=>{this.props.setRequestedAction("dashboardlinkscontainer","refresh")})),(0,a.Z)(this,"abortDashboardLinksFetch",(()=>{this.props.setRequestedAction("dashboardlinkscontainer","abort")})),(0,a.Z)(this,"commitFetchedDashboardLinkData",(e=>{this.setState({loadingStatus:"completed",aborted:!1,dashboardLinkData:e})})),(0,a.Z)(this,"renderDashboardInfo",(e=>i.createElement("div",null,i.createElement("h2",{className:"DashboardLinksContainer-header"},A.Z.dashboardLinksHeader),this.renderDashboardLinks(e)))),(0,a.Z)(this,"renderDashboardLinks",(e=>e.map((e=>{const t=e.sheetname,n=e.municipality_url,a=e.zipcode_url,o=h[t];return i.createElement(i.Fragment,null,i.createElement("label",null,A.Z[o.headerLocalizationKey]),i.createElement("ul",null,this.renderMunicipalityDashboardLink(n,o.municipalityLocalizationKey,this.props.selectedMunicipalityName,this.props.selectedMunicipalityCode),this.renderZipCodeDashboardLink(a,o.zipCodeLocalizationKey,this.props.selectedZipCodeName,this.props.selectedZipCode)))})))),(0,a.Z)(this,"renderMunicipalityDashboardLink",((e,t,n,a)=>i.createElement("li",null,i.createElement("a",{href:`${e}${a}`,target:"_blank",rel:"noopener noreferrer"},A.Z.formatString(A.Z[t],n))))),(0,a.Z)(this,"renderZipCodeDashboardLink",((e,t,n,a)=>i.createElement("li",null,i.createElement("a",{href:`${e}${a}`,target:"_blank",rel:"noopener noreferrer"},A.Z.formatString(A.Z[t],n)))))}render(){const e=this.state.aborted?A.Z.dashboardLinksLoadingCancel:A.Z.dashboardLinksLoadingError;return i.createElement(i.Fragment,null,i.createElement(l.Z,{notificationKey:"dashboardlinkscontainer",canFetchData:!0,fetchData:this.fetchDashboardLinkData,handleFetchedDataCommit:this.commitFetchedDashboardLinkData}),i.createElement(c.Z,{loadingStatus:this.state.loadingStatus,loadingContent:i.createElement(p.Z,{loadingText:A.Z.dashboardLinksLoadingInfo,onAbort:this.abortDashboardLinksFetch}),actualContent:this.renderDashboardInfo(this.state.dashboardLinkData),errorContent:i.createElement(m.Z,{errorText:e,onRefresh:this.refreshDashboardLinksFetch})}))}}I.propTypes={languageCode:r().string,dashboardSheets:r().array.isRequired,selectedMunicipalityName:r().string.isRequired,selectedMunicipalityCode:r().string.isRequired,selectedZipCodeName:r().string.isRequired,selectedZipCode:r().string.isRequired};const w=(0,o.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(I)},22913:(e,t,n)=>{n.d(t,{Z:()=>p});var a=n(96156),i=n(67294),o=n(73955),s=n.n(o),r=n(7513),l=n(45697),c=n.n(l),u=n(6304);class d extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"queuedUpdates",[]),(0,a.Z)(this,"currentRequest",null),(0,a.Z)(this,"onComplete",((e,t,n=!1)=>{(t||!1!==n)&&(0,r.uY)(e,this.queuedUpdates)&&(this.currentRequest=null,this.props.handleFetchedDataCommit(t),this.queuedUpdates=[],this.props.onDataFetchingComplete&&this.props.onDataFetchingComplete(t))})),(0,a.Z)(this,"onLoading",(e=>{this.cancelRequestBecauseOldRequestWasStillPending(),this.currentRequest=e})),(0,a.Z)(this,"refreshRequest",(()=>{this.fetchData()})),(0,a.Z)(this,"cancelRequestBecauseOldRequestWasStillPending",(()=>{this.currentRequest&&this.currentRequest.abort()})),(0,a.Z)(this,"cancelRequestBecauseUserRequestedIt",(()=>{this.currentRequest&&(this.currentRequest.cancelledByUser=!0,this.currentRequest.abort())})),(0,a.Z)(this,"onError",(e=>{})),(0,a.Z)(this,"fetchData",(()=>{if(!1===this.props.canFetchData)return void this.cancelRequestBecauseOldRequestWasStillPending();const e=s()("dataFetch-");this.queuedUpdates=(0,r.rw)(e,this.queuedUpdates),this.props.fetchData(e,this.onComplete,this.onLoading,this.onError)})),(0,a.Z)(this,"componentDidMount",(()=>{this.fetchData(null)})),(0,a.Z)(this,"componentDidUpdate",(e=>{if(e.requestedAction!==this.props.requestedAction){if(this.props.requestedAction.notificationKey!==this.props.notificationKey)return;if("refresh"===this.props.requestedAction.actionType)return void this.refreshRequest();if("abort"===this.props.requestedAction.actionType)return void this.cancelRequestBecauseUserRequestedIt()}this.fetchData()})),(0,a.Z)(this,"componentWillUnmount",(()=>{this.cancelRequestBecauseOldRequestWasStillPending(),this.currentRequest=null}))}render(){return null}}d.propTypes={notificationKey:c().string,canFetchData:c().bool.isRequired,fetchData:c().func.isRequired,handleFetchedDataCommit:c().func.isRequired,onDataFetchingComplete:c().func,requestedAction:c().object};const p=(0,u.$j)((e=>({requestedAction:e.components.notificationcontainer.requestedAction})))(d)},57369:(e,t,n)=>{n.d(t,{Z:()=>E});var a=n(67294),i=n(6304),o=n(74444),s=n(45697),r=n.n(s),l=n(93379),c=n.n(l),u=n(7795),d=n.n(u),p=n(90569),m=n.n(p),A=n(3565),h=n.n(A),g=n(19216),v=n.n(g),k=n(44589),C=n.n(k),y=n(265),f={};f.styleTagTransform=C(),f.setAttributes=h(),f.insert=m().bind(null,"head"),f.domAPI=d(),f.insertStyleElement=v(),c()(y.Z,f),y.Z&&y.Z.locals&&y.Z.locals;const b=e=>a.createElement("div",{className:"ErrorMessage"},a.createElement("p",null,e.errorText)," ",e.displayRefreshButton&&a.createElement("button",{className:"ErrorMessage-refresh",onClick:e.onRefresh},o.Z.genericRetryMessage));b.propTypes={displayRefreshButton:r().bool},b.defaultProps={displayRefreshButton:!0};const E=(0,i.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(b)},98361:(e,t,n)=>{n.d(t,{Z:()=>c});var a=n(96156),i=n(67294),o=n(45697),s=n.n(o),r=n(35141);class l extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"componentWillUnmount",(()=>{this.cleanUp()})),(0,a.Z)(this,"cleanUp",(()=>{if(this.props.focusedFeatures){const e=this.getClickedOpenLayersFeatures(this.props.focusedFeatures);for(const t of e)t&&t.setStyle(null)}if(this.props.selectedFeature){const e=this.getSelectedOpenLayersFeature(this.props.selectedFeature);e&&e.setStyle(null)}})),(0,a.Z)(this,"componentDidMount",(()=>{this.handleFocusedFeatureStyling(null,this.props),this.handleSelectedFeatureStyling(null,this.props)})),(0,a.Z)(this,"styleFocusedFeatures",(e=>{for(const t of e)if(t){const e=this.props.onStyleFocusedFeature(t);t.setStyle(e)}})),(0,a.Z)(this,"styleSelectedFeature",(e=>{if(e){const t=this.props.onStyleSelectedFeature(e);e.setStyle(t)}})),(0,a.Z)(this,"resetStylesOfFocusedFeatures",((e,t)=>{for(const n of t)if(n){let t;t=this.props.determineIfFeatureIsSelectedFeature?this.props.determineIfFeatureIsSelectedFeature(e,n):e===n.getId(),t||n.setStyle(null)}})),(0,a.Z)(this,"getClickedOpenLayersFeatures",(e=>{const t=[];for(const n of e){let e=null;if(this.props.getFocusedFeature)e=this.props.getFocusedFeature(n);else{const t=n.id;e=(0,r.fI)(this.props.map,this.props.layerName,t)}t.push(e)}return t})),(0,a.Z)(this,"getSelectedOpenLayersFeature",(e=>{if(!e)return null;let t=null;if(this.props.getSelectedFeature)t=this.props.getSelectedFeature(e);else{const n=e.id;t=(0,r.fI)(this.props.map,this.props.layerName,n)}return t})),(0,a.Z)(this,"handleFocusedFeatureStyling",((e,t)=>{if(!1!==t.canStyle){if(e&&e.focusedFeatures){const t=this.getClickedOpenLayersFeatures(e.focusedFeatures),n=e.selectedFeature?e.selectedFeature.id:null;this.resetStylesOfFocusedFeatures(n,t)}if(t&&t.focusedFeatures){const e=this.getClickedOpenLayersFeatures(t.focusedFeatures);this.styleFocusedFeatures(e)}}})),(0,a.Z)(this,"handleSelectedFeatureStyling",((e,t)=>{if(!1!==t.canStyle){if(e&&e.selectedFeature){const t=this.getSelectedOpenLayersFeature(e.selectedFeature);t&&t.setStyle(null)}if(t&&t.selectedFeature){if(t.focusedFeatures){const e=this.getClickedOpenLayersFeatures(t.focusedFeatures);this.resetStylesOfFocusedFeatures(null,e)}const e=this.getSelectedOpenLayersFeature(t.selectedFeature);e&&this.styleSelectedFeature(e)}}})),(0,a.Z)(this,"componentDidUpdate",(e=>{e.focusedFeatures!==this.props.focusedFeatures&&(this.handleSelectedFeatureStyling(e,this.props),this.handleFocusedFeatureStyling(e,this.props)),e.selectedFeature!==this.props.selectedFeature&&(this.handleSelectedFeatureStyling(e,this.props),this.props.selectedFeature||this.handleFocusedFeatureStyling(e,this.props)),e.canStyle!==this.props.canStyle&&(this.handleFocusedFeatureStyling(e,this.props),this.handleSelectedFeatureStyling(e,this.props))}))}render(){return null}}l.propTypes={map:s().object.isRequired,determineIfFeatureIsSelectedFeature:s().func,layerName:s().string.isRequired,focusedFeatures:s().array,selectedFeature:s().object,onStyleFocusedFeature:s().func,onStyleSelectedFeature:s().func,getSelectedFeature:s().func,getFocusedFeature:s().func};const c=l},46014:(e,t,n)=>{n.d(t,{Z:()=>m});var a=n(22122),i=n(96156),o=n(67294),s=n(6304),r=n(35141),l=n(22913),c=n(45697),u=n.n(c),d=n(84807);class p extends o.PureComponent{constructor(...e){super(...e),(0,i.Z)(this,"commitFeatureUpdateData",(e=>{((e,t,n,a)=>{const i=(0,r.xn)(e,n),o=r.C_;for(const e of t){const{id:t,properties:n}=e,a=o(i,t);a&&a.setProperties(n,!0)}i.changed()})(this.props.map,e.updatedFeatureData,this.props.layerName),this.props.featuresUpdated(this.props.layerName)}))}render(){return o.createElement(l.Z,(0,a.Z)({canFetchData:this.props.layerLoaded,fetchData:this.props.onShouldUpdateFeatureData,handleFetchedDataCommit:this.commitFeatureUpdateData,onDataFetchingComplete:this.props.onFeatureUpdateComplete},this.props))}}p.propTypes={map:u().object.isRequired,layerName:u().string.isRequired,layerLoaded:u().bool.isRequired,onShouldUpdateFeatureData:u().func.isRequired,onFeatureUpdateComplete:u().func};const m=(0,s.$j)(null,(e=>({featuresUpdated:t=>e((0,d.p)(t))})))(p)},84807:(e,t,n)=>{n.d(t,{f:()=>a,p:()=>i});const a="FEATURES_UPDATED",i=e=>({type:a,layerName:e})},63254:(e,t,n)=>{n.d(t,{C:()=>F});var a=n(96156),i=n(67294),o=n(22900),s=n(65427),r=n(57369),l=n(5108),c=n(80983),u=n(74444),d=n(93379),p=n.n(d),m=n(7795),A=n.n(m),h=n(90569),g=n.n(h),v=n(3565),k=n.n(v),C=n(19216),y=n.n(C),f=n(44589),b=n.n(f),E=n(65482),L={};L.styleTagTransform=b(),L.setAttributes=k(),L.insert=g().bind(null,"head"),L.domAPI=A(),L.insertStyleElement=y(),p()(E.Z,L),E.Z&&E.Z.locals&&E.Z.locals;var B=n(6304),S=n(56462),T=n(7513),x=n(22913),P=n(19807),I=n(99055);class w extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"state",{loadingStatus:"loading"}),(0,a.Z)(this,"fetchTimeSliderMetaData",((e,t,n)=>{this.setState({loadingStatus:"loading",aborted:!1});const{promise:a,request:i}=(0,T.tU)("GET",`${S.yx}/getMinimumAndMaximumTimeForData`,null,null,null,this.onTimeSliderDataFetchAbort);a.then((n=>this.handleFetchTimeSliderMetaDataSuccess(e,t,n))).catch((e=>this.handleFetchTimeSliderMetaDataError(e))),n(i)})),(0,a.Z)(this,"handleFetchTimeSliderMetaDataSuccess",((e,t,n)=>{this.isUnMounted||t(e,JSON.parse(n))})),(0,a.Z)(this,"handleFetchTimeSliderMetaDataError",(e=>{this.setState({loadingStatus:"error",aborted:!1})})),(0,a.Z)(this,"commitTimeSliderData",(e=>{const t=(0,s.MY)(e.min).startOf("month"),n=(0,s.MY)(e.max).endOf("month"),{initialFrom:a,initialTo:i}=(0,s.Yb)(t,n,2);a.startOf("month"),i.endOf("month");const o={enabled:!0,minimum:t,maximum:n,from:a,to:i,initialFrom:a,initialTo:i};this.props.setFilterState(S.DU,o),this.setState({loadingStatus:"completed",aborted:!1})})),(0,a.Z)(this,"componentWillUnmount",(()=>{this.isUnMounted=!0})),(0,a.Z)(this,"refreshTimeSliderDataFetch",(()=>{this.props.setRequestedAction("FetchTimeSliderMetadata","refresh")})),(0,a.Z)(this,"abortTimeSliderDataFetch",(()=>{this.props.setRequestedAction("FetchTimeSliderMetadata","abort")})),(0,a.Z)(this,"onTimeSliderDataFetchAbort",(()=>{this.setState({loadingStatus:"error",aborted:!0})}))}render(){if(!0===this.props.timeSliderEnabledStatus)return null;const e=this.state.aborted?u.Z.timeSliderLoadingCancel:u.Z.timeSliderLoadingError;return i.createElement(i.Fragment,null,i.createElement(x.Z,{notificationKey:"FetchTimeSliderMetadata",canFetchData:!0,fetchData:this.fetchTimeSliderMetaData,handleFetchedDataCommit:this.commitTimeSliderData}),i.createElement(o.Z,{containerID:"maincontent"},i.createElement(c.Z,{loadingStatus:this.state.loadingStatus,loadingContent:i.createElement("div",{className:"FetchTimeSliderMetadata-loadingBlock"},i.createElement(l.Z,{loadingText:u.Z.timeSliderLoadingInfo,onAbort:this.abortTimeSliderDataFetch})),actualContent:null,errorContent:i.createElement("div",{className:"FetchTimeSliderMetadata-loadingBlock"},i.createElement(r.Z,{errorText:e,onRefresh:this.refreshTimeSliderDataFetch}))})))}}const F=(0,B.$j)((e=>({timeSliderEnabledStatus:e.filters.present[S.DU].enabled,languageCode:e.components.languageselector.languageCode})),(e=>({setFilterState:(t,n)=>e((0,I.sl)(t,n)),setRequestedAction:(t,n)=>e((0,P.xd)(t,n))})))(w)},84668:(e,t,n)=>{n.d(t,{Z:()=>f});var a=n(67294),i=n(45697),o=n.n(i),s=n(93379),r=n.n(s),l=n(7795),c=n.n(l),u=n(90569),d=n.n(u),p=n(3565),m=n.n(p),A=n(19216),h=n.n(A),g=n(44589),v=n.n(g),k=n(80111),C={};C.styleTagTransform=v(),C.setAttributes=m(),C.insert=d().bind(null,"head"),C.domAPI=c(),C.insertStyleElement=h(),r()(k.Z,C),k.Z&&k.Z.locals&&k.Z.locals;class y extends a.PureComponent{render(){return a.createElement("div",{className:`HeaderButton ${this.props.additionalClassNames}`},a.createElement("button",{className:"HeaderButton-icon",onClick:this.props.onClick,title:this.props.tooltipText,disabled:this.props.isDisabled},this.props.renderIcon(),a.createElement("p",{className:"HeaderButton-text"},this.props.renderText())),this.props.children)}}y.defaultProps={additionalClassNames:"",isDisabled:!1},y.propTypes={additionalClassNames:o().string,renderIcon:o().func,renderText:o().func,onClick:o().func,tooltipText:o().string,isDisabled:o().bool};const f=y},54973:(e,t,n)=>{n.d(t,{Z:()=>b});var a=n(96156),i=n(67294),o=n(45697),s=n.n(o),r=n(93379),l=n.n(r),c=n(7795),u=n.n(c),d=n(90569),p=n.n(d),m=n(3565),A=n.n(m),h=n(19216),g=n.n(h),v=n(44589),k=n.n(v),C=n(62191),y={};y.styleTagTransform=k(),y.setAttributes=A(),y.insert=p().bind(null,"head"),y.domAPI=u(),y.insertStyleElement=g(),l()(C.Z,y),C.Z&&C.Z.locals&&C.Z.locals;class f extends i.PureComponent{constructor(e){super(e),(0,a.Z)(this,"toggleHidden",(()=>{this.setState({isHidden:!this.state.isHidden})})),(0,a.Z)(this,"renderToggler",(()=>{const e=this.props.togglerClassName?this.props.togglerClassName:"HideableComponent-toggler";return this.state.isHidden?i.createElement("span",{className:`fas fa-chevron-right ${e}`}):i.createElement("span",{className:`fas fa-chevron-down ${e}`})})),(0,a.Z)(this,"renderLabel",(()=>{const e=this.props.labelClassName?this.props.labelClassName:"HideableComponent-label";return this.state.isHidden?i.createElement("label",{className:e},this.props.showLabel):i.createElement("label",{className:e},this.props.hideLabel)})),(0,a.Z)(this,"renderContent",(()=>"css"===this.props.hidingMethod?i.createElement("div",{className:"HideableComponent-content "+(this.state.isHidden?"hidden":"")},this.props.children):i.createElement("div",{className:"HideableComponent-content"},!this.state.isHidden&&this.props.children))),this.state={isHidden:this.props.isInitiallyHidden}}render(){return i.createElement("div",{className:"HideableComponent"},i.createElement("button",{className:"HideableComponent-togglerAndLabel",onClick:this.toggleHidden},this.renderToggler(),this.renderLabel()),this.renderContent())}}f.defaultProps={hidingMethod:"unmount"},f.propTypes={hidingMethod:s().oneOf(["css","unmount"]),isInitiallyHidden:s().bool,labelClassName:s().string,togglerClassName:s().string,hideLabel:s().string.isRequired,showLabel:s().string.isRequired};const b=f},17503:(e,t,n)=>{n.d(t,{Du:()=>r,Ft:()=>o,Lt:()=>s,OH:()=>a,OJ:()=>i,aC:()=>l});const a="SET_ACTIVE_INFO_AREA_TAB",i="REMOVE_TAB_ID_FROM_TABS_WITH_DATA",o="ADD_TAB_ID_TO_TABS_WITH_DATA",s=e=>({type:a,tabID:e}),r=e=>({type:i,tabID:e}),l=e=>({type:o,tabID:e})},78709:(e,t,n)=>{n.d(t,{Gj:()=>a,MQ:()=>r,PF:()=>o,r0:()=>l,vI:()=>i,yT:()=>s});const a="UPDATE_INFO_AREA_WIDTH",i="HIDE_INFO_AREA_CONTENT",o="SHOW_INFO_AREA_CONTENT",s=e=>({type:a,width:e}),r=()=>({type:i}),l=()=>({type:o})},24757:(e,t,n)=>{n.d(t,{Z:()=>k});var a=n(67294),i=n(93379),o=n.n(i),s=n(7795),r=n.n(s),l=n(90569),c=n.n(l),u=n(3565),d=n.n(u),p=n(19216),m=n.n(p),A=n(44589),h=n.n(A),g=n(98429),v={};v.styleTagTransform=h(),v.setAttributes=d(),v.insert=c().bind(null,"head"),v.domAPI=r(),v.insertStyleElement=m(),o()(g.Z,v),g.Z&&g.Z.locals&&g.Z.locals;const k=({ranges:e,rangeText:t,children:n})=>a.createElement("div",{className:"Legend"},a.createElement("h2",{className:"Legend-legendTitle"},t),n,e.map((e=>a.createElement("div",{key:e.value,className:"Legend-legendBlock"},a.createElement("div",{className:"Legend-rangeColorValue",style:{backgroundColor:e.color}}),a.createElement("div",{className:"Legend-rangeValue"},e.value)))))},75338:(e,t,n)=>{n.d(t,{Z:()=>u});var a=n(67294),i=n(96156),o=n(45697),s=n.n(o);class r extends a.PureComponent{constructor(...e){super(...e),(0,i.Z)(this,"handleClick",(()=>{this.props.onListItemClicked(this.props.listItem)}))}render(){return a.cloneElement(this.props.listItemRender(this.props.listItem),{onClick:this.handleClick})}}r.propTypes={listItemRender:s().func.isRequired,listItem:s().oneOfType([s().object,s().string,s().number]),onListItemClicked:s().func,languageCode:s().string};const l=r;class c extends a.PureComponent{render(){return this.props.listItems.map(((e,t)=>a.createElement(l,{key:t,listItem:e,listItemRender:this.props.listItemRender,onListItemClicked:this.props.onListItemClicked,languageCode:this.props.languageCode})))}}c.propTypes={listItemRender:s().func.isRequired,listItems:s().array.isRequired,onListItemClicked:s().func,languageCode:s().string};const u=c},80983:(e,t,n)=>{n.d(t,{Z:()=>r});var a=n(67294),i=n(45697),o=n.n(i);class s extends a.PureComponent{render(){return"completed"===this.props.loadingStatus?this.props.actualContent?this.props.actualContent:null:"loading"===this.props.loadingStatus?this.props.loadingContent?this.props.loadingContent:null:"error"===this.props.loadingStatus&&this.props.errorContent?this.props.errorContent:null}}s.propTypes={loadingStatus:o().oneOf(["","loading","completed","error"]),loadingContent:o().element.isRequired,actualContent:o().element,errorContent:o().element};const r=s},14106:(e,t,n)=>{n.d(t,{Z:()=>p});var a=n(22122),i=n(96156),o=n(67294),s=n(6304),r=n(22913),l=n(45697),c=n.n(l),u=n(15810);class d extends o.PureComponent{constructor(...e){super(...e),(0,i.Z)(this,"commitFeaturesToLayer",(e=>{this.props.layerObject.replaceFeaturesWithNewFeatures(e.features);const t=this.props.layerObject.vectorLayer.get("name");this.props.layerUpdated(t)})),(0,i.Z)(this,"componentWillUnmount",(()=>{this.props.layerObject.cleanUp()}))}render(){return o.createElement(r.Z,(0,a.Z)({canFetchData:!0,fetchData:this.props.onShouldUpdateLayerFeatures,handleFetchedDataCommit:this.commitFeaturesToLayer,onDataFetchingComplete:this.props.onLayerLoadComplete},this.props))}}d.propTypes={layerObject:c().object,onLayerLoadComplete:c().func,onShouldUpdateLayerFeatures:c().func.isRequired};const p=(0,s.$j)(null,(e=>({layerUpdated:t=>e((0,u.O)(t))})))(d)},15810:(e,t,n)=>{n.d(t,{O:()=>i,e:()=>a});const a="LAYER_UPDATED",i=e=>({type:a,layerName:e})},5108:(e,t,n)=>{n.d(t,{Z:()=>P});var a=n(67294),i=n(6304),o=n(96156);const s=n(67674).H;var r=n(45697),l=n.n(r),c=n(93379),u=n.n(c),d=n(7795),p=n.n(d),m=n(90569),A=n.n(m),h=n(3565),g=n.n(h),v=n(19216),k=n.n(v),C=n(44589),y=n.n(C),f=n(82522),b={};b.styleTagTransform=y(),b.setAttributes=g(),b.insert=A().bind(null,"head"),b.domAPI=p(),b.insertStyleElement=k(),u()(f.Z,b),f.Z&&f.Z.locals&&f.Z.locals;class E extends a.PureComponent{constructor(...e){super(...e),(0,o.Z)(this,"renderSpinnerBlocks",(()=>{const e=[],t=Math.round(.05*this.props.size),n=Math.round(this.props.size/2)+"px "+Math.round(this.props.size/2)+"px";for(let i=0;i<12;i++)e.push(a.createElement(a.Fragment,{key:i},a.createElement("div",{style:{transformOrigin:n},className:"LoadingSpinner-block"},a.createElement("div",{style:{display:"block",position:"absolute",top:t,left:.5*this.props.size-t,width:.1*this.props.size,height:.2*this.props.size,borderRadius:"30%",background:this.props.color}}))));return e}))}render(){const e=this.props.className?" "+this.props.className:"";return a.createElement("div",{className:"LoadingSpinner"+e,style:{width:this.props.size,height:this.props.size}},this.renderSpinnerBlocks())}}E.propTypes={className:l().string,color:l().string,size:l().number},E.defaultProps={color:s,size:20};const L=E;var B=n(74444),S=n(52347),T={};T.styleTagTransform=y(),T.setAttributes=g(),T.insert=A().bind(null,"head"),T.domAPI=p(),T.insertStyleElement=k(),u()(S.Z,T),S.Z&&S.Z.locals&&S.Z.locals;const x=e=>a.createElement("div",{className:"LoadingMessage"},a.createElement(L,{size:20}),a.createElement("p",{className:"LoadingMessage-text"},e.loadingText),e.displayAbortButton&&a.createElement("button",{className:"LoadingMessage-abort",onClick:e.onAbort},B.Z.genericCancelLoadingMessage));x.propTypes={displayAbortButton:l().bool},x.defaultProps={displayAbortButton:!0};const P=(0,i.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(x)},72653:(e,t,n)=>{n.d(t,{Co:()=>m,IL:()=>l,MM:()=>a,Sw:()=>r,XI:()=>c,ZO:()=>p,b8:()=>h,cO:()=>o,fI:()=>d,k4:()=>A,kn:()=>s,s6:()=>u,u7:()=>g,vM:()=>i});const a="SET_MAP_CLICK_HANDLER_DATA",i="SET_MAP_CLICK_COORDINATES",o="SET_FEATURES_INDEXED_BY_LAYER_NAME",s="SET_SELECTED_FEATURE_INDEXED_BY_LAYER_NAME",r="REMOVE_CLICKED_FEATURES_BY_LAYER_NAME",l="REMOVE_CLICKED_FEATURES_BY_ID_AND_BY_LAYER_NAME",c="REMOVE_SELECTED_FEATURES_BY_LAYER_NAME",u=(e,t,n)=>({type:a,clickedPixel:e,clickedCoordinates:t,featuresIndexedByLayerName:n}),d=(e,t)=>({type:s,layerName:e,selectedFeature:t}),p=e=>({type:i,clickedCoordinates:e}),m=e=>({type:r,layerName:e}),A=(e,t)=>({type:l,featureIDsToRemove:e,layerName:t}),h=(e,t)=>({type:o,layerName:e,features:t}),g=e=>({type:c,layerName:e})},19807:(e,t,n)=>{n.d(t,{B0:()=>r,BJ:()=>a,GA:()=>c,Gs:()=>o,Vh:()=>l,fA:()=>i,xd:()=>u,yk:()=>s});const a="SET_DATA_LOADING_STATUS_BY_KEY",i="DISMISS_NOTIFICATION_BY_KEY",o="UPDATE_NOTIFICATION_MESSAGE_BY_KEY",s="SET_REQUESTED_ACTION",r=(e,t,n,i)=>({type:a,key:e,dataLoadingStatus:t,dataLoadingNotificationType:n,dataLoadingNotificationMessage:i}),l=e=>({type:i,key:e}),c=(e,t)=>({type:o,key:e,updatedMessage:t}),u=(e,t)=>({type:s,key:e,actionType:t})},69963:(e,t,n)=>{n.d(t,{BS:()=>o,Mw:()=>r,O3:()=>u,Ok:()=>s,hN:()=>a,j4:()=>l,v2:()=>c,yw:()=>i});const a="OPEN_POPUP",i="CLOSE_POPUP",o="SET_POPUP_PATH",s="SET_POPUP_MOUNTED_STATUS",r=e=>({type:a,popupPath:e}),l=()=>({type:i}),c=e=>({type:o,popupPath:e}),u=e=>({type:s,mountedStatus:e})},22900:(e,t,n)=>{n.d(t,{Z:()=>c});var a=n(96156),i=n(67294),o=n(73935),s=n(45697),r=n.n(s);class l extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"state",{containerMounted:!1}),(0,a.Z)(this,"componentDidMount",(()=>{this.containerToRenderTo=document.getElementById(this.props.containerID),this.containerToRenderTo?this.setState({containerMounted:!0}):console.error(`Failed to render to container with id: ${this.props.containerID}`)}))}render(){return this.state.containerMounted?o.createPortal(this.props.children,this.containerToRenderTo):null}}l.propTypes={containerID:r().string.isRequired};const c=l},17078:(e,t,n)=>{n.d(t,{Z:()=>p});var a=n(96156),i=n(67294),o=n(6304),s=n(45697),r=n.n(s),l=n(73935),c=n(69963),u=n(96757);class d extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"componentDidMount",(()=>{this.props.currentPopupPath||this.props.openPopup(this.props.popupPath)})),(0,a.Z)(this,"componentDidUpdate",(e=>{e.popupPath!==this.props.popupPath&&this.props.setPopupPath(this.props.popupPath)})),(0,a.Z)(this,"componentWillUnmount",(()=>{const e=(0,u.Xn)(this.context.store.getState().components.mapclickhandler.featuresIndexedByLayerName);0===e||1===e?this.props.closePopup():"root"!==this.props.currentPopupPath&&this.props.setPopupPath("root")}))}render(){if(this.props.currentPopupPath!==this.props.popupPath||!this.props.popupMounted)return null;const e=document.getElementById("Popup-content");return e?l.createPortal(this.props.children,e):null}}d.propTypes={currentPopupPath:r().string,popupPath:r().string.isRequired},d.contextTypes={store:r().object};const p=(0,o.$j)((e=>({currentPopupPath:e.components.olpopup.popupPath,popupMounted:e.components.olpopup.mounted})),(e=>({setPopupPath:t=>e((0,c.v2)(t)),openPopup:t=>e((0,c.Mw)(t)),closePopup:()=>e((0,c.j4)())})))(d)},61267:(e,t,n)=>{n.d(t,{Z:()=>d});var a=n(96156),i=n(67294),o=n(73935),s=n(45697),r=n.n(s),l=n(6304),c=n(17503);class u extends i.PureComponent{constructor(e){super(e),(0,a.Z)(this,"state",{tabToRenderToExists:!1}),(0,a.Z)(this,"componentDidUpdate",((e,t)=>{t.tabToRenderToExists||this.doesTabDivToRenderToExist(this.props.tabID)&&(this.appendContentToCorrespondingTabDiv(),this.setState({tabToRenderToExists:!0}))})),(0,a.Z)(this,"doesTabDivToRenderToExist",(e=>!!document.getElementById(e))),(0,a.Z)(this,"appendContentToCorrespondingTabDiv",(()=>{this.tabDivToRenderTo=document.getElementById(this.props.tabID),this.tabDivToRenderTo.appendChild(this.elementThatHoldsContentToRender)})),(0,a.Z)(this,"componentDidMount",(()=>{this.state.tabToRenderToExists&&this.appendContentToCorrespondingTabDiv()})),this.elementThatHoldsContentToRender=document.createElement("div");const t=this.doesTabDivToRenderToExist(this.props.tabID);t||this.props.addTabIDToTabsWithData(this.props.tabID),this.state={tabToRenderToExists:t}}componentWillUnmount(){this.state.tabToRenderToExists&&(this.tabDivToRenderTo.removeChild(this.elementThatHoldsContentToRender),0===this.tabDivToRenderTo.childElementCount&&this.props.removeTabIDFromTabsWithData(this.props.tabID))}render(){return this.state.tabToRenderToExists?o.createPortal(this.props.children,this.elementThatHoldsContentToRender):null}}u.propTypes={tabID:r().string.isRequired};const d=(0,l.$j)((e=>({tabsWithData:e.components.infoareatabs.tabsWithData})),(e=>({addTabIDToTabsWithData:t=>e((0,c.aC)(t)),removeTabIDFromTabsWithData:t=>e((0,c.Du)(t))})))(u)},46080:(e,t,n)=>{n.d(t,{C:()=>i,D:()=>a});const a="SET_SEARCH_TERM",i=(e,t)=>({type:a,searchKey:e,searchTerm:t})},24585:(e,t,n)=>{n.d(t,{Z:()=>L});var a=n(96156),i=n(67294),o=n(45697),s=n.n(o),r=n(6304),l=n(74444),c=n(93379),u=n.n(c),d=n(7795),p=n.n(d),m=n(90569),A=n.n(m),h=n(3565),g=n.n(h),v=n(19216),k=n.n(v),C=n(44589),y=n.n(C),f=n(58564),b={};b.styleTagTransform=y(),b.setAttributes=g(),b.insert=A().bind(null,"head"),b.domAPI=p(),b.insertStyleElement=k(),u()(f.Z,b),f.Z&&f.Z.locals&&f.Z.locals;class E extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"localizeZipCodeNumberAndName",(()=>l.Z.formatString(l.Z.selectedZipCodeArea,this.props.zipCodeNumber,this.props.localizedZipCodeNames[this.props.languageCode]))),(0,a.Z)(this,"localizeZipCodeNameAndMunicipalityName",(()=>l.Z.formatString(l.Z.selectedZipCodeBelongsToMunicipalityWithNameAndCode,this.props.localizedZipCodeNames[this.props.languageCode],this.props.localizedMunicipalityNames[this.props.languageCode],this.props.municipalityCode)))}render(){return i.createElement("div",null,i.createElement("h2",{className:"SelectedZipCode-header"},this.localizeZipCodeNumberAndName()),i.createElement("div",{className:"SelectedZipCode"},this.localizeZipCodeNameAndMunicipalityName()),this.props.renderAdditionalZipCodeInfo&&this.props.renderAdditionalZipCodeInfo())}}E.propTypes={zipCodeNumber:s().string,localizedMunicipalityNames:s().object,localizedZipCodeNames:s().object,municipalityCode:s().string,renderAdditionalZipCodeInfo:s().func};const L=(0,r.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(E)},94892:(e,t,n)=>{n.d(t,{Y:()=>L,Z:()=>S});var a=n(67294),i=n(45697),o=n.n(i),s=n(93379),r=n.n(s),l=n(7795),c=n.n(l),u=n(90569),d=n.n(u),p=n(3565),m=n.n(p),A=n(19216),h=n.n(A),g=n(44589),v=n.n(g),k=n(59634),C={};C.styleTagTransform=v(),C.setAttributes=m(),C.insert=d().bind(null,"head"),C.domAPI=c(),C.insertStyleElement=h(),r()(k.Z,C),k.Z&&k.Z.locals&&k.Z.locals;var y=n(74444),f=n(84668);const b={},E={},L=(0,a.memo)((function(e){const{selectionID:t,selectionName:n,selectionValues:i,availableSelectionCount:o,isSelectedAsDynamicFilter:s}=e;return b[t]||0===i.length||(b[t]=e.onSelectionRemoved),E[t]||0===i.length||(E[t]=e.onSelectionResetted),a.createElement("li",{key:t,className:"SelectionToolbar-selection "+(0===i.length?"hidden":""),id:t},a.createElement("div",{className:"SelectionToolbar-item"},a.createElement("p",{className:"SelectionToolbar-selectionName"},n),a.createElement("p",{className:"SelectionToolbar-selectionText"},1===i.length?i[0]:`${i.length} / ${o}`),a.createElement("div",{className:"SelectionToolbar-percentage"})),a.createElement("button",{className:"SelectionToolbar-removeSelection",disabled:s,onClick:()=>{delete b[t],e.onSelectionRemoved(t)}},a.createElement("span",{className:"fa-solid fa-circle-xmark"})))}));L.displayName="Selection";const B=(0,a.memo)((function(e){const t=[{key:"selectionbar-undo",isDisabled:!e.canGoBack,tooltipText:y.Z.selectionToolbarUndoTooltip,onClick:e.onGoBackSelection,renderIcon:function(){return a.createElement("span",{className:"fa-solid fa-backward-step"})},renderText:()=>y.Z.selectionToolbarUndoText},{key:"selectionbar-redo",isDisabled:!e.canGoForward,tooltipText:y.Z.selectionToolbarRedoTooltip,onClick:e.onGoForwardSelection,renderIcon:function(){return a.createElement("span",{className:"fa-solid fa-forward-step"})},renderText:()=>y.Z.selectionToolbarRedoText},{key:"selectionbar-resetall",isDisabled:!1,tooltipText:y.Z.selectionToolbarResetAllTooltip,onClick:()=>{e.onAllSelectionsResetted(Object.keys(E).length);for(const e of Object.keys(E))E[e]()},renderIcon:function(){return a.createElement("span",{className:"fa-solid fa-arrows-rotate"})},renderText:()=>y.Z.selectionToolbarResetAllText}];return a.createElement(a.Fragment,null,t.map((e=>a.createElement(f.Z,{key:e.key,onClick:e.onClick,renderIcon:e.renderIcon,renderText:e.renderText,tooltipText:e.tooltipText,isDisabled:e.isDisabled}))),a.createElement("ul",{className:"SelectionToolbar "+(0===e.activeSelections.length?"hidden":""),id:"SelectionToolbar"}))}));B.propTypes={activeSelections:o().arrayOf(o().shape({selectionID:o().string.isRequired,selectionName:o().string.isRequired,selectionValues:o().array.isRequired,availableSelectionCount:o().number.isRequired,isSelectedAsDynamicFilter:o().bool}).isRequired).isRequired,onAllSelectionsRemoved:o().func.isRequired,onAllSelectionsResetted:o().func.isRequired,onGoBackSelection:o().func,onGoForwardSelection:o().func,canGoBack:o().bool.isRequired,canGoForward:o().bool.isRequired,languageCode:o().string},B.displayName="SelectionToolbar";const S=B},56462:(e,t,n)=>{n.d(t,{XE:()=>Dt,yx:()=>We,v7:()=>on,B3:()=>an,dT:()=>Tt,$D:()=>Nt,Oq:()=>Mt,oG:()=>at,G1:()=>st,e3:()=>dt,qB:()=>vt,kY:()=>ht,DO:()=>At,WJ:()=>ot,d5:()=>it,pA:()=>rt,$7:()=>ct,W$:()=>Et,Ym:()=>gt,M2:()=>mt,FC:()=>St,XG:()=>lt,xs:()=>pt,_U:()=>Bt,Z:()=>Lt,fi:()=>ft,KB:()=>yt,DU:()=>ut,PR:()=>Ct,WC:()=>bt,Zt:()=>kt,wA:()=>Zt,UZ:()=>en,C5:()=>_t,j3:()=>tn,Y9:()=>qe,pD:()=>nn,cy:()=>zt,jH:()=>Ht,TZ:()=>Kt,sJ:()=>Wt,QV:()=>Ut,_v:()=>Gt,K7:()=>Vt,dh:()=>Ot,KW:()=>Ye,G7:()=>Qt,sR:()=>Yt,mo:()=>Jt,b_:()=>Xt,IQ:()=>qt,$k:()=>$t,Mm:()=>xt,jq:()=>Ft,nM:()=>It,kX:()=>Pt,Ku:()=>wt,nk:()=>Rt,Am:()=>jt,Gu:()=>tt,si:()=>et,i6:()=>Je,LN:()=>Xe,gU:()=>nt,ob:()=>Qe,JZ:()=>$e});var a=n(96156),i=n(67294),o=n(6304),s=n(45697),r=n.n(s),l=n(54973),c=n(93379),u=n.n(c),d=n(7795),p=n.n(d),m=n(90569),A=n.n(m),h=n(3565),g=n.n(h),v=n(19216),k=n.n(v),C=n(44589),y=n.n(C),f=n(93986),b={};b.styleTagTransform=y(),b.setAttributes=g(),b.insert=A().bind(null,"head"),b.domAPI=p(),b.insertStyleElement=k(),u()(f.Z,b),f.Z&&f.Z.locals&&f.Z.locals;var E=n(74444),L=n(23279),B=n.n(L),S=n(45758),T={};T.styleTagTransform=y(),T.setAttributes=g(),T.insert=A().bind(null,"head"),T.domAPI=p(),T.insertStyleElement=k(),u()(S.Z,T),S.Z&&S.Z.locals&&S.Z.locals;class x extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"handleSearchResultClicked",(()=>{this.props.onSearchResultSelected(this.props.searchResultDiagnosis)}))}render(){return i.createElement("button",{className:"MainDiagnosisSearchResult "+(this.props.isSelected?"selected":""),onClick:this.props.isSelected?null:this.handleSearchResultClicked,style:this.props.virtualizedListItemStyle},i.createElement("label",{className:"MainDiagnosisSearchResult-code "+(this.props.isSelected?"selected":"")},this.props.searchResultDiagnosis.value),i.createElement("span",{className:"MainDiagnosisSearchResult-label "+(this.props.isSelected?"selected":"")},this.props.searchResultDiagnosis.label))}}x.propTypes={virtualizedListItemStyle:r().object,onSearchResultSelected:r().func.isRequired,searchResultDiagnosis:r().object.isRequired,isSelected:r().bool};const P=x;var I=n(58826),w={};w.styleTagTransform=y(),w.setAttributes=g(),w.insert=A().bind(null,"head"),w.domAPI=p(),w.insertStyleElement=k(),u()(I.Z,w),I.Z&&I.Z.locals&&I.Z.locals;class F extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"handleSelectedDiagnosisRemoved",(()=>{this.props.onSelectedDiagnosisRemoved(this.props.selectedDiagnosis)}))}render(){return i.createElement("div",{className:"MainDiagnosisSelectedDiagnosis"},i.createElement("label",{className:"MainDiagnosisSelectedDiagnosis-code"},this.props.selectedDiagnosis.value),i.createElement("span",{className:"MainDiagnosisSelectedDiagnosis-label"},this.props.selectedDiagnosis.label),i.createElement("button",{className:"MainDiagnosisSelectedDiagnosis-removeButton",onClick:this.handleSelectedDiagnosisRemoved},i.createElement("span",{className:"fas fa-times"})))}}F.propTypes={onSelectedDiagnosisRemoved:r().func.isRequired,selectedDiagnosis:r().object.isRequired};const Z=F;var M=n(90143),D=n(35277),R=n(55870),N=n(22844),O=n(8161),j={};j.styleTagTransform=y(),j.setAttributes=g(),j.insert=A().bind(null,"head"),j.domAPI=p(),j.insertStyleElement=k(),u()(O.Z,j),O.Z&&O.Z.locals&&O.Z.locals;var _=n(22913),V=n(7513),K=n(57369),H=n(46080),G=n(92619),z={};z.styleTagTransform=y(),z.setAttributes=g(),z.insert=A().bind(null,"head"),z.domAPI=p(),z.insertStyleElement=k(),u()(G.Z,z),G.Z&&G.Z.locals&&G.Z.locals;class U extends i.PureComponent{constructor(e){super(e),(0,a.Z)(this,"handleSearchBoxChange",(e=>{this.props.setSearchTerm(this.props.searchKey,e.target.value)}));const t=this.props.searchTerm,n=null!=t?t:"";this.props.setSearchTerm(this.props.searchKey,n)}render(){const{searchTerm:e}=this.props;return null==e?null:i.createElement("div",null,i.createElement("input",{className:"SearchContainer-Searchbox",type:"text",onChange:this.handleSearchBoxChange,value:e,size:"30"}),i.createElement("span",{className:"fas fa-search SearchContainer-SearchLense"}))}}U.propTypes={searchKey:r().string.isRequired};const W=(0,o.$j)(((e,t)=>({searchTerm:e.components.searchcontainer.searches[t.searchKey],languageCode:e.components.languageselector.languageCode})),(e=>({setSearchTerm:(t,n,a)=>e((0,H.C)(t,n,a))})))(U);class Y extends i.PureComponent{constructor(e){super(e),(0,a.Z)(this,"state",{searchStatus:"idle"}),(0,a.Z)(this,"componentDidUpdate",(e=>{this.props.searchTerm!==e.searchTerm&&0===this.props.searchTerm.length&&(this.props.setSearchResults([]),this.setState({searchStatus:"idle"}))})),(0,a.Z)(this,"handleSearchResultsFetchSuccess",((e,t,n)=>{this.isUnMounted||(this.setState({searchStatus:"completed"}),t(e,JSON.parse(n)))})),(0,a.Z)(this,"handleSearchResultsFetchError",(()=>{this.setState({searchStatus:"error"})})),(0,a.Z)(this,"refreshSearchResultFetch",(()=>{this.props.setRequestedAction(this.props.filterKey,"refresh")})),(0,a.Z)(this,"renderSearchResult",(({index:e,key:t,style:n,parent:a})=>{const o=this.props.searchResults[e];return i.createElement(R.Z,{key:t,cache:this.cache,parent:a,columnIndex:0,rowIndex:e},i.createElement(P,{style:n,virtualizedListItemStyle:n,searchResultDiagnosis:o,onSearchResultSelected:this.props.onSearchResultSelected,isSelected:this.props.selectedDiagnoses.some((e=>e.value===o.value))}))})),(0,a.Z)(this,"fetchSearchResults",((e,t,n)=>{const a=this.props.searchTerm;if(0===a.length)return;this.setState({searchStatus:"searching"});const i={searchString:a};this.props.shouldFetchAvailableSelectionCount&&(i.requestAvailableMainDiagnosisCount=!0);const{promise:o,request:s}=(0,V.tU)("POST",this.props.url,{headers:{"Content-Type":"application/json"}},JSON.stringify(i),null,null);o.then((n=>this.handleSearchResultsFetchSuccess(e,t,n))).catch((e=>this.handleSearchResultsFetchError(e))),n(s)})),(0,a.Z)(this,"setSearchResults",(e=>{this.props.setSearchResults(e)})),(0,a.Z)(this,"renderSearchResults",(e=>!e||"searching"!==this.state.searchStatus&&"completed"!==this.state.searchStatus?null:i.createElement("div",{className:"MainDiagnosisSearch-SearchResults"},i.createElement(M.ZP,null,(({width:e,height:t})=>i.createElement(D.ZP,{className:"MainDiagnosisSearch-SearchResults-list",width:e,height:t,deferredMeasurementCache:this.cache,rowHeight:this.cache.rowHeight,rowCount:this.props.searchResults.length,overscanRowCount:3,rowRenderer:this.renderSearchResult,noRowsRenderer:this.renderNoSearchResults,searchResults:this.props.searchResults,selectedDiagnoses:this.props.selectedDiagnoses})))))),(0,a.Z)(this,"renderNoSearchResults",(()=>{if("completed"===this.state.searchStatus)return i.createElement("div",null,E.Z.mainDiagnosisSearchNoResults)})),(0,a.Z)(this,"renderResetResults",(()=>0===this.props.selectedDiagnoses.length?null:i.createElement("div",{className:"MainDiagnosisSearch-ResetSelectedDiagnoses"},i.createElement("button",{className:"btn btn-default btn-xs MainDiagnosisSearch-ResetSelectedDiagnoses-Button",onClick:this.props.onSelectedDiagnosesRemoved},E.Z.mainDiagnosisSearchResetSelectedDiagnoses)))),(0,a.Z)(this,"renderSearchError",(()=>"error"===this.state.searchStatus?i.createElement(K.Z,{errorText:E.Z.mainDiagnosisSearchErrorMessage,onRefresh:this.refreshSearchResultFetch}):null)),(0,a.Z)(this,"renderSelectedDiagnoses",(()=>this.props.selectedDiagnoses.length>0?i.createElement("fieldset",{className:"MainDiagnosisSearch-SelectedDiagnoses"},i.createElement("legend",{className:"MainDiagnosisSearch-SelectedDiagnoses-header"},E.Z.mainDiagnosisSearchSelectedDiagnosesHeader),this.props.selectedDiagnoses.map((e=>i.createElement(Z,{key:e.value,selectedDiagnosis:e,onSelectedDiagnosisRemoved:this.props.onSelectedDiagnosisRemoved})))):null)),(0,a.Z)(this,"handleSelectAllSearchResults",(()=>{0!=this.props.searchResults.length&&this.props.onSearchResultSelected(this.props.searchResults)})),this.debouncedFetchSearchResults=B()(this.fetchSearchResults,200),this.cache=new N.ZP({fixedWidth:!0,defaultHeight:100})}render(){const e=this.props.searchTerm,t=null!=e&&e.length>0;return i.createElement("div",null,i.createElement(_.Z,{notificationKey:this.props.filterKey,searchString:e,canFetchData:t,fetchData:this.debouncedFetchSearchResults,handleFetchedDataCommit:this.props.setSearchResults}),i.createElement(W,{searchKey:this.props.filterKey}),i.createElement("button",{className:"btn btn-default btn-xs MainDiagnosisSearch-button",onClick:this.handleSelectAllSearchResults},E.Z.mainDiagnosisSearchSelectAllSearchResults),this.renderSearchResults(t),this.renderSearchError(),this.renderResetResults(),this.renderSelectedDiagnoses())}}Y.propTypes={onSelectedDiagnosisRemoved:r().func,onSelectedDiagnosesRemoved:r().func,setSearchResults:r().func,onSearchResultSelected:r().func,selectedDiagnoses:r().array,searchResults:r().array,clearSearchResults:r().func,shouldFetchAvailableSelectionCount:r().bool,filterKey:r().string.isRequired,searchTerm:r().string,url:r().string.isRequired};const q=Y;var $=n(94892),X=n(22900);class J extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"handleSearchResultSelected",(e=>{let t={};for(const e of this.props.selectedDiagnoses)t[e.value]||(t[e.value]=e);if(Array.isArray(e))for(const n of e)t[n.value]||(t[n.value]=n);else t[e.value]=e;const n=Object.values(t),a=n.map((e=>e.label)),i={values:n,labels:a,changed:!0,undoable:!0};this.props.setFilterState(rt,i)})),(0,a.Z)(this,"handleSelectedDiagnosisRemoved",(e=>{const t=this.props.selectedDiagnoses.filter((t=>t.value!==e.value)),n=t.map((e=>e.label)),a={values:t,labels:n,changed:t.length>0,undoable:!0};this.props.setFilterState(rt,a)})),(0,a.Z)(this,"handleSelectedDiagnosesRemoved",(()=>{this.props.setFilterState(rt,{values:[],labels:[],changed:!1,undoable:!0})})),(0,a.Z)(this,"setSearchResults",(e=>{const t={results:e.result?e.result:e,filterName:E.Z.maindiagnosesFilterName};e.count&&(t.availableSelectionCount=e.count),this.props.setFilterState(rt,t)}))}render(){return i.createElement(i.Fragment,null,i.createElement("div",{className:"MainDiagnosisSearchContainer"},i.createElement(l.Z,{hidingMethod:"css",togglerClassName:"MainDiagnosisSearchContainer-toggler",labelClassName:"MainDiagnosisSearchContainer-label",isInitiallyHidden:!0,hideLabel:E.Z.maindiagnosesFilterName,showLabel:E.Z.maindiagnosesFilterName},i.createElement(q,{selectedDiagnoses:this.props.selectedDiagnoses,onSearchResultSelected:this.handleSearchResultSelected,onSelectedDiagnosisRemoved:this.handleSelectedDiagnosisRemoved,onSelectedDiagnosesRemoved:this.handleSelectedDiagnosesRemoved,shouldFetchAvailableSelectionCount:null===this.props.availableSelectionCount,searchTerm:this.props.searchTerm,searchResults:this.props.searchResults,setSearchResults:this.setSearchResults,filterKey:this.props.filterKey,setRequestedAction:this.props.setRequestedAction,url:this.props.url}))),this.props.displayInSelectionToolbar&&i.createElement(X.Z,{containerID:"SelectionToolbar"},i.createElement($.Y,{selectionID:this.props.filterKey,selectionName:this.props.filterName,selectionValues:this.props.selectedDiagnosesLabels,availableSelectionCount:this.props.availableSelectionCount,onSelectionRemoved:this.handleSelectedDiagnosesRemoved,onSelectionResetted:this.handleSelectedDiagnosesRemoved})))}}J.propTypes={selectedDiagnoses:r().array,setFilterState:r().func,clearFilterValues:r().func,availableSelectionCount:r().oneOf([null,Number]),searchTerm:r().string,searchResults:r().array,filterKey:r().string.isRequired,setRequestedAction:r().func,url:r().string.isRequired};const Q=(0,o.$j)(((e,t)=>({selectedDiagnoses:e.filters.present[rt].values,selectedDiagnosesLabels:e.filters.present[t.filterKey].labels,filterName:e.filters.present[t.filterKey].filterName,searchResults:e.filters.present[rt].results,availableSelectionCount:e.filters.present[rt].availableSelectionCount,searchTerm:e.components.searchcontainer.searches[t.filterKey]})))(J);var ee=n(66898),te=n(55494),ne=n(33544),ae=n(70149),ie=n(52368),oe=n(7022),se=n(67441),re=n(91825),le=n(85257),ce=n(4618),ue=n(75737),de=n(59327),pe=n(38951),me=n(75135),Ae=n(73542),he=n(96757),ge=n(80983),ve=n(44365),ke=n(5108),Ce=n(90055),ye={};ye.styleTagTransform=y(),ye.setAttributes=g(),ye.insert=A().bind(null,"head"),ye.domAPI=p(),ye.insertStyleElement=k(),u()(Ce.Z,ye),Ce.Z&&Ce.Z.locals&&Ce.Z.locals;var fe=n(22966),be={};be.styleTagTransform=y(),be.setAttributes=g(),be.insert=A().bind(null,"head"),be.domAPI=p(),be.insertStyleElement=k(),u()(fe.Z,be),fe.Z&&fe.Z.locals&&fe.Z.locals;class Ee extends i.PureComponent{render(){return i.createElement("span",{className:"CheckBoxTreeCheckbox",onClick:this.props.onClick},i.createElement("span",{className:this.props.isChecked?"CheckBoxTreeCheckbox-check":"CheckBoxTreeCheckbox-uncheck"}),i.createElement("span",{className:"CheckboxTreeCheckbox-title"},this.props.text))}}const Le=Ee;var Be=n(30845);class Se extends i.PureComponent{constructor(e){super(e),(0,a.Z)(this,"state",{selectableNodes:[],expandedNodes:[],loadingStatus:"loading",aborted:!1}),(0,a.Z)(this,"getCheckedNodes",(0,Be.Z)(((e,t)=>"all"===t?(0,Ae._w)((0,he.Zw)(e)):t))),(0,a.Z)(this,"filterOrResetTree",(()=>{const e=(0,Ae.s8)((0,he.Zw)(this.state.selectableNodes),this.props.searchTerm);if(this.setState({selectableNodes:e.filteredTree,matchingNodesCount:e.matchingNodesCount}),e.filteredTree){const t=(0,Ae.oI)(e.filteredTree);this.setState({expandedNodes:t})}})),(0,a.Z)(this,"setExpandedNodes",(e=>{this.setState({expandedNodes:e})})),(0,a.Z)(this,"componentDidUpdate",(e=>{if(this.props.searchTerm!==e.searchTerm&&this.debouncedFilterOrResetTree(),e.languageCode!==this.props.languageCode){const e=(0,Ae.j$)((0,he.Zw)(this.state.selectableNodes),Ae.o8);this.setState({selectableNodes:e})}e.dynamicFilterValues!==this.props.dynamicFilterValues&&this.handleChecked(this.props.dynamicFilterValues)})),(0,a.Z)(this,"fetchNodes",((e,t,n)=>{this.setState({loadingStatus:"loading",aborted:!1});const{promise:a,request:i}=(0,V.tU)("GET",this.props.url,null,null,null,this.onNodeFetchAborted);a.then((n=>this.handleNodeListFetchSuccess(e,t,n))).catch((e=>this.handleNodeFetchError(e))),n(i)})),(0,a.Z)(this,"handleNodeListFetchSuccess",((e,t,n)=>{t(e,JSON.parse(n),!0)})),(0,a.Z)(this,"handleNodeFetchError",(e=>{this.setState({loadingStatus:"error",aborted:!1})})),(0,a.Z)(this,"refreshNodeFetch",(()=>{this.props.setRequestedAction(this.props.filterKey,"refresh")})),(0,a.Z)(this,"abortNodeFetch",(()=>{this.props.setRequestedAction(this.props.filterKey,"abort")})),(0,a.Z)(this,"onNodeFetchAborted",(()=>{this.setState({loadingStatus:"error",aborted:!0})})),(0,a.Z)(this,"commitFetchedNodeData",(e=>{if(!e){const e={enabled:!1,undoable:!1};return this.props.setFilterState(this.props.filterKey,e),void this.setState({loadingStatus:"completed"})}const t=(0,Ae.j$)(e.treeData,Ae.o8),n=1===t.length&&t[0].hidden?t[0].children:t;this.setState({selectableNodes:n,loadingStatus:"completed",aborted:!1});let a=[];if(e.selectedValues&&(a=e.selectedValues),!this.props.hasFilterChanged){let t=this.props.filterNameLabel?this.props.filterNameLabel:"";if(1===e.treeData.length){const n=e.treeData[0];n.label&&(t=n.label)}const n=a.map((e=>(0,Ae.$k)(this.state.selectableNodes,"value",e))),i={filterName:t,values:a,labels:n.map((e=>e.label)),enabled:!0,availableSelectionCount:e.leafNodeIDs.length,undoable:!1};this.props.setFilterState(this.props.filterKey,i)}const{searchTerm:i}=this.props;null!=i&&i.length>0&&this.debouncedFilterOrResetTree()})),(0,a.Z)(this,"handleChecked",(e=>{const t=e.length>0,n=e.map((e=>(0,Ae.$k)(this.state.selectableNodes,"value",e))).filter((e=>null!==e));let a={values:e,labels:n.map((e=>e.label)),changed:t,undoable:!0};this.props.isSelectedAsDynamicFilter&&(a={labels:n.map((e=>e.label)),changed:t,undoable:!1}),this.props.setFilterState(this.props.filterKey,a)})),(0,a.Z)(this,"handleSelectOnlySearchResults",(()=>{this.handleChecked((0,Ae.DI)(this.state.selectableNodes))})),(0,a.Z)(this,"handleResetSelections",(()=>{this.props.isSelectedAsDynamicFilter||this.handleChecked([])})),(0,a.Z)(this,"toggleIsSelectedAsCohortFilterStatus",(()=>{const e={isSelectedAsCohortFilter:!this.props.isSelectedAsCohortFilter};this.props.setFilterState(this.props.filterKey,e)})),(0,a.Z)(this,"toggleIsSelectedAsDynamicFilterStatus",(()=>{const e=!this.props.isSelectedAsDynamicFilter,t={isSelectedAsDynamicFilter:e};e||(t.dynamicValues=[]),this.props.setFilterState(this.props.filterKey,t)})),(0,a.Z)(this,"renderFilter",(()=>{if(!1===this.props.enabled)return null;const e=this.props.isSelectedAsDynamicFilter&&this.props.dynamicFilterValues?this.props.dynamicFilterValues:this.props.checkedNodes,t=i.createElement(i.Fragment,null,this.props.selectableAsCohortFilter&&i.createElement(Le,{isChecked:this.props.isSelectedAsCohortFilter,onClick:this.toggleIsSelectedAsCohortFilterStatus,text:E.Z.useAsCohortFilterLabel}),this.props.selectableAsDynamicFilter&&i.createElement(Le,{isChecked:this.props.isSelectedAsDynamicFilter,onClick:this.toggleIsSelectedAsDynamicFilterStatus,text:E.Z.useAsDynamicFilterLabel}),this.props.searchable&&i.createElement(W,{searchKey:this.props.filterKey}),this.props.displaySelectOnlySearchResultsButton&&i.createElement("button",{className:"btn btn-xs btn-default ServiceProviderListContainer-button",disabled:this.props.isSelectedAsDynamicFilter,onClick:this.handleSelectOnlySearchResults},E.Z.selectOnlySearchResults),this.props.displayResetButton&&i.createElement("button",{className:"btn btn-default btn-xs ServiceProviderListContainer-button",onClick:this.handleResetSelections,disabled:this.props.isSelectedAsDynamicFilter},E.Z.resetSelections),i.createElement(ve.Z,{nodes:this.state.selectableNodes,checked:this.getCheckedNodes(this.state.selectableNodes,e),onCheck:this.handleChecked,expanded:this.state.expandedNodes,onExpand:this.setExpandedNodes,disabled:this.props.isSelectedAsDynamicFilter}),this.props.searchable&&0===this.state.matchingNodesCount&&i.createElement("label",null,this.props.noResultsLabel));return this.props.hideable?i.createElement(l.Z,{hidingMethod:"css",isInitiallyHidden:!0,togglerClassName:"CheckBoxTreeFilter-hideable-toggler",labelClassName:"CheckBoxTreeFilter-hideable-label",hideLabel:this.props.hideLabel||this.props.filterName||this.props.filterNameLabel,showLabel:this.props.showLabel||this.props.filterName||this.props.filterNameLabel},t):t})),e.searchable&&(this.debouncedFilterOrResetTree=B()(this.filterOrResetTree,Zt))}render(){const e=this.state.aborted?this.props.fetchAbortedMessage:this.props.fetchFailedMessage;return i.createElement(i.Fragment,null,i.createElement(_.Z,{notificationKey:this.props.filterKey,canFetchData:!0,fetchData:this.fetchNodes,handleFetchedDataCommit:this.commitFetchedNodeData}),i.createElement(ge.Z,{loadingStatus:this.state.loadingStatus,loadingContent:i.createElement(ke.Z,{loadingText:this.props.fetchLoadingMessage,onAbort:this.abortNodeFetch}),actualContent:this.renderFilter(),errorContent:i.createElement(K.Z,{errorText:e,onRefresh:this.refreshNodeFetch})}),this.props.displayInSelectionToolbar&&i.createElement(X.Z,{containerID:"SelectionToolbar"},i.createElement($.Y,{selectionID:this.props.filterKey,selectionName:this.props.filterName,selectionValues:this.props.checkedLabels,availableSelectionCount:this.props.availableSelectionCount,onSelectionRemoved:()=>this.handleChecked([]),onSelectionResetted:this.handleResetSelections,isSelectedAsDynamicFilter:this.props.isSelectedAsDynamicFilter})))}}Se.propTypes={fetchLoadingMessage:r().string.isRequired,fetchFailedMessage:r().string.isRequired,fetchAbortedMessage:r().string.isRequired,checkedNodes:r().oneOfType([r().string,r().array]),url:r().string.isRequired,filterKey:r().string.isRequired,setFilterState:r().func,searchable:r().bool,hideable:r().bool,displayResetButton:r().bool,displaySelectOnlySearchResultsButton:r().bool,searchTerm:r().string,noResultsLabel:r().string,filterName:r().string,filterNameLabel:r().string,selectableAsCohortFilter:r().bool,selectableAsDynamicFilter:r().bool};const Te=(0,o.$j)(((e,t)=>({checkedNodes:e.filters.present[t.filterKey].values,checkedLabels:e.filters.present[t.filterKey].labels,enabled:e.filters.present[t.filterKey].enabled,filterName:e.filters.present[t.filterKey].filterName,availableSelectionCount:e.filters.present[t.filterKey].availableSelectionCount,hasFilterChanged:e.filters.present[t.filterKey].changed,searchTerm:e.components.searchcontainer.searches[t.filterKey],isSelectedAsCohortFilter:e.filters.present[t.filterKey].isSelectedAsCohortFilter,isSelectedAsDynamicFilter:e.filters.present[t.filterKey].isSelectedAsDynamicFilter,dynamicFilterValues:e.filters.present[t.filterKey].dynamicValues})))(Se);var xe=n(90963),Pe={};Pe.styleTagTransform=y(),Pe.setAttributes=g(),Pe.insert=A().bind(null,"head"),Pe.domAPI=p(),Pe.insertStyleElement=k(),u()(xe.Z,Pe),xe.Z&&xe.Z.locals&&xe.Z.locals;var Ie=n(10700),we=n(66122);n(61671);const Fe=[1,3,6,12];class Ze extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"componentDidMount",(()=>{const e=document.getElementById("TimeSlider-slider");we.ZP.create(e,{start:this.props.currentTimeRange,tooltips:[{to:this.props.formatTooltip},{to:this.props.formatTooltip}],behaviour:"drag-tap",connect:!0,step:1,range:{min:this.props.minimumTime,max:this.props.maximumTime}}),e.noUiSlider.on("set",this.props.onChange),this.props.onChange(e.noUiSlider.get())})),(0,a.Z)(this,"componentWillUnmount",(()=>{const e=document.getElementById("TimeSlider-slider");e&&e.noUiSlider&&e.noUiSlider.off()})),(0,a.Z)(this,"handleDateRangeSelection",(e=>{const t=document.getElementById("TimeSlider-slider"),n=parseInt(e.target.value,10),a=t.noUiSlider.get(),i=parseInt(a[1],10),o=i-(n-1);t.noUiSlider.set([o,i])})),(0,a.Z)(this,"handleDragSelected",(e=>{const t=document.getElementById("TimeSlider-slider"),n=t.noUiSlider.get(),a=parseInt(n[0],10),i=parseInt(n[1],10),o="right"===e?[a+1,i+1]:[a-1,i-1];t.noUiSlider.set(o)}))}render(){const{spaceToLeftSide:e,spaceToRightSide:t,hasFilterChanged:n,header:a,selectionText:o}=this.props;return i.createElement("div",{className:"TimeSlider",style:{left:`${e}px`,right:`${t}px`}},i.createElement("h2",null,(e=>{const t=(0,Ie.j)(ut),n=`TimeSlider-filterIcon ${e?"filter-has-changed":""} ${t.props.className}`;return i.cloneElement(t,{className:n})})(n),a),i.createElement("div",{id:"TimeSlider-slider",className:"TimeSlider-slider"}),i.createElement("div",{className:"TimeSlider-metadata"},i.createElement("div",{className:"TimeSlider-DateRange"},i.createElement("button",{className:"TimeSlider-DragLeft btn btn-default",title:E.Z.timesliderDragLeft,onClick:()=>this.handleDragSelected("left"),disabled:this.props.currentTimeRange[0]===this.props.minimumTime},i.createElement("span",{className:"fas fa-arrow-left"}),i.createElement("span",{className:"fas fa-timeline"})),i.createElement("label",{className:"TimeSlider-DateRangeLabel",htmlFor:"daterange"},E.Z.timesliderSelectionText),i.createElement("select",{name:"daterange",id:"daterange",value:this.props.selectedDateRange,onChange:this.handleDateRangeSelection},!Fe.includes(this.props.selectedDateRange)&&i.createElement("option",{disabled:!0,value:this.props.selectedDateRange},this.props.selectedDateRange," ",E.Z.monthAbbreviation),Fe.map((e=>i.createElement("option",{key:e,value:e,disabled:this.props.currentTimeRange[1]-(e-1)this.handleDragSelected("right"),disabled:this.props.currentTimeRange[1]===this.props.maximumTime},i.createElement("span",{className:"fas fa-timeline"}),i.createElement("span",{className:"fas fa-arrow-right"})))))}}Ze.propTypes={spaceToLeftSide:r().number,spaceToRightSide:r().number,hasFilterChanged:r().bool,header:r().string,selectionText:r().string,minimumTime:r().number,maximumTime:r().number,currentTimeRange:r().array,formatTooltip:r().func,onChange:r().func,selectedDateRange:r().number,onSelectedDateRangeChange:r().func};const Me=Ze;n(11897),n(98760);var De=n(65427);class Re extends i.PureComponent{constructor(...e){super(...e),(0,a.Z)(this,"getTimeSliderRange",(0,Be.Z)(((e,t)=>({min:0,max:t.diff(e,"months",!1)})))),(0,a.Z)(this,"componentDidUpdate",(e=>{e.activeViews!==this.props.activeViews&&(void 0!==this.props.activeViews.find((e=>jt.includes(e)))||this.props.resetFilterState(ut))})),(0,a.Z)(this,"formatTimeRangeToStore",(e=>{const t=e[0],n=e[1],a=this.formatToMoment(t).startOf("month"),i=this.formatToMoment(n).endOf("month");if((0,De.K4)(this.props.from,a)&&(0,De.K4)(this.props.to,i))return;let o=Math.abs(parseInt(n,10)-parseInt(t,10))+1;const{initialFrom:s,initialTo:r}=this.props,l={from:a,to:i,changed:!((0,De.K4)(s,a)&&(0,De.K4)(r,i)),selectedDateRange:o};this.props.setFilterState(ut,l)})),(0,a.Z)(this,"formatTimeRangeToComponent",(()=>[this.props.from.diff(this.props.minimum,"months",!1),this.props.to.diff(this.props.minimum,"months",!1)])),(0,a.Z)(this,"formatToMoment",(e=>this.props.minimum.clone().add(e,"months"))),(0,a.Z)(this,"formatTooltip",(e=>this.formatToMoment(e).locale(this.props.languageCode).format("MMMM YYYY"))),(0,a.Z)(this,"formatSelectionText",((e,t,n)=>t.locale(e).format(E.Z.timeSliderSelectedTimeSpanFormat)+" - "+n.locale(e).format(E.Z.timeSliderSelectedTimeSpanFormat)))}render(){if(!this.props.enabled)return null;const e=this.getTimeSliderRange(this.props.minimum,this.props.maximum),t=this.formatSelectionText(this.props.languageCode,this.props.from,this.props.to);return i.createElement(X.Z,{containerID:"maincontent"},i.createElement(Me,{minimumTime:e.min,maximumTime:e.max,onChange:this.formatTimeRangeToStore,currentTimeRange:this.formatTimeRangeToComponent(),formatTooltip:this.formatTooltip,selectionText:t,header:E.Z.timeSliderHeading,spaceToRightSide:this.props.infoAreaWidth,spaceToLeftSide:this.props.mainMenuBarWidth,hasFilterChanged:this.props.hasFilterChanged,selectedDateRange:this.props.selectedDateRange}))}}const Ne=(0,o.$j)((e=>({activeViews:e.components.viewoptionlist.activeViews,enabled:e.filters.present[ut].enabled,minimum:e.filters.present[ut].minimum,maximum:e.filters.present[ut].maximum,initialFrom:e.filters.present[ut].initialFrom,initialTo:e.filters.present[ut].initialTo,from:e.filters.present[ut].from,to:e.filters.present[ut].to,hasFilterChanged:e.filters.present[ut].changed,selectedDateRange:e.filters.present[ut].selectedDateRange,infoAreaWidth:e.components.infoarea.infoAreaWidth,mainMenuBarWidth:e.components.mainmenubar.mainMenuBarWidth})))(Re);var Oe=n(67713),je={};je.styleTagTransform=y(),je.setAttributes=g(),je.insert=A().bind(null,"head"),je.domAPI=p(),je.insertStyleElement=k(),u()(Oe.Z,je),Oe.Z&&Oe.Z.locals&&Oe.Z.locals;class _e extends i.PureComponent{render(){return i.createElement("div",{className:"RadioButtonGroup"},this.props.items.map((e=>i.createElement("div",{key:`${e.value}-radioItem`},i.createElement("label",null,i.createElement("input",{type:"radio",name:this.props.name,value:e.value,checked:this.props.checked===e.value,onChange:e=>this.props.onSelectedChanged(e.target.value),disabled:!e.isEnabled}),e.name)))))}}_e.propTypes={name:r().string.isRequired,items:r().array.isRequired,checked:r().string.isRequired,onSelectedChanged:r().func.isRequired};const Ve=_e;var Ke=n(27361),He=n.n(Ke);class Ge extends i.PureComponent{render(){if(!this.props.activeViews.includes(this.props.viewId))return null;const e=Rt[this.props.viewId].valueTypeOptions.map((e=>{let t=!0;return e.type===Ft&&(t=this.props.isCohortFilteringEnabledForAnyFilter),{name:E.Z[e.labelLocalizationKey],value:e.type,isEnabled:t}}));return i.createElement(X.Z,{containerID:Rt[this.props.viewId].valueTypeSelectorContainerId},i.createElement(Ve,{name:`${this.props.viewId}-valueTypeSelector`,items:e,checked:this.props.selectedValue,onSelectedChanged:e=>{const t={selectedValue:e};this.props.setFilterState(this.props.filterKey,t)}}))}}function ze(e){const t=Object.values(e);for(const e of t)if(!0===He()(e,"isSelectedAsCohortFilter"))return!0;return!1}Ge.propTypes={filterKey:r().string.isRequired,setFilterState:r().func,activeViews:r().arrayOf(r().string).isRequired,enabled:r().bool.isRequired,selectedValue:r().string.isRequired,viewId:r().string.isRequired};const Ue=(0,o.$j)(((e,t)=>({activeViews:e.components.viewoptionlist.activeViews,enabled:e.filters.present[t.filterKey].enabled,selectedValue:e.filters.present[t.filterKey].selectedValue,isCohortFilteringEnabledForAnyFilter:ze(e.filters.present)})))(Ge),We="/api",Ye=!1,qe=1500,$e="view_service_providers",Xe="view_customer_volumes",Je="view_customer_visits",Qe="view_service_costs",et="view_accessibility_by_road",tt="view_accessibility_by_air",nt="view_extra_base_layers",at="filter_age_groups",it="filter_genders",ot="filter_epr_groups",st="filter_area_mdcs",rt="filter_main_diagnoses",lt="filter_service_providers",ct="filter_municipalities",ut="filter_timeslider",dt="filter_basic_service_types",pt="filter_service_types",mt="filter_service_groups",At="filter_customer_volume_value_type",ht="filter_customer_visits_value_type",gt="filter_service_costs_value_type",vt="filter_contact_types",kt="filter_zip_codes",Ct="filter_urgency_types",yt="filter_thlndg_groups",ft="filter_thldg_groups",bt="filter_visit_kinds",Et="filter_personnel_types",Lt="filter_sos_service_duties",Bt="filter_sos_services",St="filter_service_kinds",Tt={REGULAR:"REGULAR",PORTAL:"PORTAL"},xt="A",Pt="P",It="C",wt="V",Ft="Z",Zt=200,Mt={[at]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"agegroupFilterName",filterActiveIconTooltipLocalizationKey:"agegroupFilterIsActive",filterInactiveIconTooltipLocalizationKey:"agegroupFilterIsInactive",props:{url:`${We}/filters/agegroups`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.customersAgeGroupListContainerLoadingMessage,fetchFailedMessage:E.Z.customersAgeGroupListContainerLoadingFailedMessage,fetchAbortedMessage:E.Z.customersAgeGroupListContainerLoadingCancelMessage}},[it]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"genderFilterName",filterActiveIconTooltipLocalizationKey:"genderFilterIsActive",filterInactiveIconTooltipLocalizationKey:"genderFilterIsInactive",props:{url:`${We}/filters/genders`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.customersGenderListContainerLoadingMessage,fetchFailedMessage:E.Z.customersGenderListContainerLoadingFailedMessage,fetchAbortedMessage:E.Z.customersGenderListContainerLoadingCancelMessage}},[dt]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"basicServiceTypesFilterName",filterActiveIconTooltipLocalizationKey:"basicServiceTypesFilterIsActive",filterInactiveIconTooltipLocalizationKey:"basicServiceTypesFilterIsInactive",props:{url:`${We}/filters/basicservicetypes`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.basicServiceTypesListFetchLoadingMessage,fetchFailedMessage:E.Z.basicServiceTypesListFetchFailedMessage,fetchAbortedMessage:E.Z.basicServiceTypesListFetchCancelledMessage}},[pt]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"serviceTypesFilterName",filterActiveIconTooltipLocalizationKey:"serviceTypesFilterIsActive",filterInactiveIconTooltipLocalizationKey:"serviceTypesFilterIsInactive",props:{url:`${We}/filters/servicetypes`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.serviceTypesListFetchLoadingMessage,fetchFailedMessage:E.Z.serviceTypesListFetchFailedMessage,fetchAbortedMessage:E.Z.serviceTypesListFetchCancelledMessage}},[ot]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"eprgroupFilterName",filterActiveIconTooltipLocalizationKey:"eprgroupFilterIsActive",filterInactiveIconTooltipLocalizationKey:"eprgroupFilterIsInactive",props:{url:`${We}/filters/eprgroups`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.customersEPRListContainerLoadingMessage,fetchFailedMessage:E.Z.customersEPRListContainerLoadingFailedMessage,fetchAbortedMessage:E.Z.customersEPRListContainerLoadingCancelMessage}},[st]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"areamdcFilterName",filterActiveIconTooltipLocalizationKey:"areamdcFilterIsActive",filterInactiveIconTooltipLocalizationKey:"areamdcFilterIsInactive",props:{url:`${We}/filters/areamdcs`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.customersAreaMDCListContainerLoadingMessage,fetchFailedMessage:E.Z.customersAreaMDCListContainerLoadingFailedMessage,fetchAbortedMessage:E.Z.customersAreaMDCListContainerLoadingCancelMessage}},[rt]:{filterComponent:Q,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"maindiagnosesFilterName",filterActiveIconTooltipLocalizationKey:"maindiagnosesFilterIsActive",filterInactiveIconTooltipLocalizationKey:"maindiagnosesFilterIsInactive",props:{url:`${We}/filters/searchmaindiagnosis`,displayInSelectionToolbar:!0}},[lt]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"serviceproviderFilterName",filterActiveIconTooltipLocalizationKey:"serviceproviderFilterIsActive",filterInactiveIconTooltipLocalizationKey:"serviceproviderFilterIsInactive",props:{url:`${We}/filters/serviceproviderstree`,hideable:!0,searchable:!0,hideLabel:E.Z.serviceProviderTreeContainerLabel,showLabel:E.Z.serviceProviderTreeContainerLabel,noResultsLabel:E.Z.serviceProviderFilterNoResults,filterNameLabel:E.Z.serviceProviderTreeContainerLabel,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.serviceProviderTreeContainerLoadingMessage,fetchFailedMessage:E.Z.serviceProviderTreeContainerLoadingMessageError,fetchAbortedMessage:E.Z.serviceProviderTreeContainerLoadingMessageCancel,displayResetButton:!0,displaySelectOnlySearchResultsButton:!0,selectableAsDynamicFilter:!0}},[ct]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"municipalityFilterName",filterActiveIconTooltipLocalizationKey:"municipalityFilterIsActive",filterInactiveIconTooltipLocalizationKey:"municipalityFilterIsInactive",props:{url:`${We}/filters/municipalities`,hideable:!0,searchable:!0,hideLabel:E.Z.municipalityFilterRootLabel,showLabel:E.Z.municipalityFilterRootLabel,noResultsLabel:E.Z.municipalityFilterNoResults,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.municipalityFilterContainerLoadingMessage,fetchFailedMessage:E.Z.municipalityFilterContainerLoadingFailedMessage,fetchAbortedMessage:E.Z.municipalityFilterContainerLoadingCancelMessage,displayResetButton:!0,displaySelectOnlySearchResultsButton:!0}},[ut]:{filterComponent:Ne,filterComponentType:Tt.PORTAL,filterIconTooltipLocalizationKey:"timesliderFilterName",filterActiveIconTooltipLocalizationKey:"timesliderFilterIsActive",filterInactiveIconTooltipLocalizationKey:"timesliderFilterIsInactive"},[mt]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"serviceGroupsFilterName",props:{url:`${We}/filters/servicegroups`,hideable:!0,searchable:!0,noResultsLabel:E.Z.serviceGroupsFilterNoResults,filterNameLabel:E.Z.serviceGroupsTreeContainerLabel,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.serviceGroupsTreeContainerLoadingMessage,fetchFailedMessage:E.Z.serviceGroupsTreeContainerLoadingMessageError,fetchAbortedMessage:E.Z.serviceGroupsTreeContainerLoadingMessageCancel,displayResetButton:!0,displaySelectOnlySearchResultsButton:!0}},[At]:{filterComponent:Ue,filterComponentType:Tt.PORTAL,props:{viewId:Xe}},[ht]:{filterComponent:Ue,filterComponentType:Tt.PORTAL,props:{viewId:Je}},[gt]:{filterComponent:Ue,filterComponentType:Tt.PORTAL,props:{viewId:Qe}},[vt]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"contactTypeFilterLabel",filterActiveIconTooltipLocalizationKey:"contactTypeFilterActive",filterInactiveIconTooltipLocalizationKey:"contactTypeFilterInActive",props:{url:`${We}/filters/contacttypes`,hideable:!0,searchable:!1,hideLabel:E.Z.contactTypeFilterLabel,showLabel:E.Z.contactTypeFilterLabel,filterNameLabel:E.Z.contactTypeFilterLabel,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.contactTypeFilterLoading,fetchFailedMessage:E.Z.contactTypeFilterLoadingFail,fetchAbortedMessage:E.Z.contactTypeFilterLoadingAbort,selectableAsCohortFilter:!0}},[kt]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"",filterActiveIconTooltipLocalizationKey:"",filterInactiveIconTooltipLocalizationKey:"",props:{url:`${We}/filters/zipcodes`,hideable:!0,searchable:!0,hideLabel:E.Z.zipCodesFilterHeader,showLabel:E.Z.zipCodesFilterHeader,noResultsLabel:E.Z.zipCodesFilterNoResults,filterNameLabel:E.Z.zipCodesFilterHeader,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.zipCodesFilterLoadingText,fetchFailedMessage:E.Z.zipCodesFilterLoadingTextError,fetchAbortedMessage:E.Z.zipCodesFilterLoadingTextCancel,displayResetButton:!0,displaySelectOnlySearchResultsButton:!0}},[Ct]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"urgencyTypesFilterName",filterActiveIconTooltipLocalizationKey:"urgencyTypesFilterIsActive",filterInactiveIconTooltipLocalizationKey:"urgencyTypesFilterIsInactive",props:{url:`${We}/filters/urgencytypes`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.urgencyTypesListFetchLoadingMessage,fetchFailedMessage:E.Z.urgencyTypesListFetchFailedMessage,fetchAbortedMessage:E.Z.urgencyTypesListFetchCancelledMessage}},[yt]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"thlndgGroupsFilterName",filterActiveIconTooltipLocalizationKey:"thlndgGroupsFilterIsActive",filterInactiveIconTooltipLocalizationKey:"thlndgGroupsFilterIsInactive",props:{url:`${We}/filters/thlndggroups`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.thlndgGroupsListFetchLoadingMessage,fetchFailedMessage:E.Z.thlndgGroupsListFetchFailedMessage,fetchAbortedMessage:E.Z.thlndgGroupsListFetchCancelledMessage}},[ft]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"thldgGroupsFilterName",filterActiveIconTooltipLocalizationKey:"thldgGroupsFilterIsActive",filterInactiveIconTooltipLocalizationKey:"thldgGroupsFilterIsInactive",props:{url:`${We}/filters/thldggroups`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.thldgGroupsListFetchLoadingMessage,fetchFailedMessage:E.Z.thldgGroupsListFetchFailedMessage,fetchAbortedMessage:E.Z.thldgGroupsListFetchCancelledMessage}},[bt]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"visitKindsFilterName",filterActiveIconTooltipLocalizationKey:"visitKindsFilterIsActive",filterInactiveIconTooltipLocalizationKey:"visitKindsFilterIsInactive",props:{url:`${We}/filters/visitkinds`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.visitKindsListFetchLoadingMessage,fetchFailedMessage:E.Z.visitKindsListFetchFailedMessage,fetchAbortedMessage:E.Z.visitKindsListFetchCancelledMessage}},[Et]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"personnelTypesFilterName",filterActiveIconTooltipLocalizationKey:"personnelTypesFilterIsActive",filterInactiveIconTooltipLocalizationKey:"personnelTypesFilterIsInactive",props:{url:`${We}/filters/personneltypes`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.personnelTypesListFetchLoadingMessage,fetchFailedMessage:E.Z.personnelTypesListFetchFailedMessage,fetchAbortedMessage:E.Z.personnelTypesListFetchCancelledMessage}},[Lt]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"sosServiceDutiesFilterName",filterActiveIconTooltipLocalizationKey:"sosServiceDutiesFilterIsActive",filterInactiveIconTooltipLocalizationKey:"sosServiceDutiesFilterIsInactive",props:{url:`${We}/filters/sosserviceduties`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.sosServiceDutiesListFetchLoadingMessage,fetchFailedMessage:E.Z.sosServiceDutiesListFetchFailedMessage,fetchAbortedMessage:E.Z.sosServiceDutiesListFetchCancelledMessage}},[Bt]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"sosServicesFilterName",filterActiveIconTooltipLocalizationKey:"sosServicesFilterIsActive",filterInactiveIconTooltipLocalizationKey:"sosServicesFilterIsInactive",props:{url:`${We}/filters/sosservices`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.sosServicesListFetchLoadingMessage,fetchFailedMessage:E.Z.sosServicesListFetchFailedMessage,fetchAbortedMessage:E.Z.sosServicesListFetchCancelledMessage}},[St]:{filterComponent:Te,filterComponentType:Tt.REGULAR,filterIconTooltipLocalizationKey:"servKindsTypesFilterName",filterActiveIconTooltipLocalizationKey:"servKindsFilterIsActive",filterInactiveIconTooltipLocalizationKey:"servKindsFilterIsInactive",props:{url:`${We}/filters/servkinds`,displayInSelectionToolbar:!0,fetchLoadingMessage:E.Z.servKindsFilterLoading,fetchFailedMessage:E.Z.servKindsFilterLoadingFail,fetchAbortedMessage:E.Z.servKindsFilterLoadingAbort}}},Dt=[at,it,ct,kt,lt,dt,pt,ot,st,Ct,yt,ft,bt,Et,Lt,Bt,St,rt,mt,vt,At,ht,gt,ut],Rt={[$e]:{viewUiComponent:ee.Z,viewFilters:[lt],labelLocalizationKey:"mainMenuServiceProviders",helpTooltipLocalizationKey:"mainMenuServiceProvidersHelp"},[Xe]:{viewUiComponent:te.Z,viewFilters:[at,it,ct,kt,lt,dt,pt,ot,st,Ct,yt,ft,bt,Et,Lt,Bt,rt,mt,vt,St,ut],valueTypeOptions:[{type:xt,labelLocalizationKey:"customerVolumesValueTypeAbsolute"},{type:Pt,labelLocalizationKey:"customerVolumesValueTypeRelativeToPopulation"},{type:Ft,labelLocalizationKey:"valueTypeCohortPortion"}],valueTypeSelectorContainerId:"customerVolumesValueTypeSelectorContainer",labelLocalizationKey:"mainMenuCustomerVolumes",helpTooltipLocalizationKey:"mainMenuCustomerVolumesHelp"},[Je]:{viewUiComponent:ne.Z,viewFilters:[at,it,ct,kt,lt,dt,pt,ot,st,Ct,yt,ft,bt,Et,Lt,Bt,rt,mt,vt,St,ut],valueTypeOptions:[{type:xt,labelLocalizationKey:"customerVisitsValueTypeAbsolute"},{type:Pt,labelLocalizationKey:"customerVisitsValueTypeRelativeToPopulation"},{type:It,labelLocalizationKey:"customerVisitsValueTypeRelativeToCustomers"},{type:Ft,labelLocalizationKey:"valueTypeCohortPortion"}],valueTypeSelectorContainerId:"customerVisitsValueTypeSelectorContainer",labelLocalizationKey:"mainMenuCustomerVisits",helpTooltipLocalizationKey:"mainMenuCustomerVisitsHelp"},[Qe]:{viewUiComponent:ae.Z,viewFilters:[at,it,ct,kt,lt,dt,pt,ot,st,Ct,yt,ft,bt,Et,Lt,Bt,rt,mt,vt,St,ut],valueTypeOptions:[{type:xt,labelLocalizationKey:"serviceCostsValueTypeAbsolute"},{type:Pt,labelLocalizationKey:"serviceCostsValueTypeRelativeToPopulation"},{type:wt,labelLocalizationKey:"serviceCostsValueTypeRelativeToVisits"},{type:It,labelLocalizationKey:"serviceCostsValueTypeRelativeToCustomers"},{type:Ft,labelLocalizationKey:"valueTypeCohortPortion"}],valueTypeSelectorContainerId:"serviceCostsValueTypeSelectorContainer",labelLocalizationKey:"mainMenuServiceProviderCosts",helpTooltipLocalizationKey:"mainMenuServiceProviderCostsHelp"},[et]:{viewUiComponent:se.Z,viewFilters:[lt],labelLocalizationKey:"mainMenuServiceProviderAccessibilityByRoad",helpTooltipLocalizationKey:"mainMenuServiceProviderAccessibilityByRoadHelp"},[tt]:{viewUiComponent:ie.Z,viewFilters:[lt,ct],labelLocalizationKey:"mainMenuServiceProviderAccessibility",helpTooltipLocalizationKey:"mainMenuServiceProviderAccessibilityHelp"},[nt]:{viewUiComponent:oe.Z,viewFilters:[],labelLocalizationKey:"mainMenuExtraBaseLayers",helpTooltipLocalizationKey:"mainMenuExtraBaseLayersHelp"}},Nt=[$e],Ot=[$e,Xe,Je,Qe,et,tt,nt],jt=[Xe,Je,Qe],_t={[Je]:re.Z,[Xe]:le.Z,[et]:ce.Z,[tt]:ue.Z,[nt]:de.Z,[$e]:pe.Z,[Qe]:me.Z},Vt="selectable_feature_service_providers",Kt="selectable_feature_customer_volumes",Ht="selectable_feature_customer_visits",Gt="selectable_feature_service_costs",zt="selectable_feature_accessibility_by_air",Ut="selectable_feature_paavo_pt",Wt="selectable_feature_paavo_he",Yt="tab_legends",qt="tab_provider_costs",$t="tab_provider_costs_within_address",Xt="tab_paavo_pt_data",Jt="tab_paavo_he_data",Qt={[Yt]:{labelLocalizationKey:"tabLegendsLabel"},[qt]:{labelLocalizationKey:"tabProviderCostsLabel",iconType:"fontAwesomeIcon",iconName:"euro-sign"},[$t]:{labelLocalizationKey:"tabProviderCostsWithinAddressLabel",iconType:"fontAwesomeIcon",iconName:"euro-sign"},[Jt]:{labelLocalizationKey:"tabPaavoHEData",iconType:"fontAwesomeIcon",iconName:"user"},[Xt]:{labelLocalizationKey:"tabPaavoPTData",iconType:"fontAwesomeIcon",iconName:"user"}},en={[at]:{iconType:"fontAwesomeIcon",iconName:"user-friends"},[it]:{iconType:"fontAwesomeIcon",iconName:"venus-mars"},[dt]:{iconType:"fontAwesomeIcon",iconName:"clipboard"},[pt]:{iconType:"fontAwesomeIcon",iconName:"notes-medical"},[ot]:{iconType:"fontAwesomeIcon",iconName:"user-md"},[st]:{iconType:"fontAwesomeIcon",iconName:"stethoscope"},[rt]:{iconType:"fontAwesomeIcon",iconName:"diagnoses"},[lt]:{iconType:"fontAwesomeIcon",iconName:"suitcase"},[ct]:{iconType:"fontAwesomeIcon",iconName:"hotel"},[mt]:{iconType:"fontAwesomeIcon",iconName:"boxes-stacked"},[ut]:{iconType:"fontAwesomeIcon",iconName:"calendar-alt"},[vt]:{iconType:"fontAwesomeIcon",iconName:"file-contract"},[kt]:{iconType:"fontAwesomeIcon",iconName:"draw-polygon"},[Ct]:{iconType:"fontAwesomeIcon",iconName:"ambulance"},[yt]:{iconType:"fontAwesomeIcon",iconName:"list-ul"},[ft]:{iconType:"fontAwesomeIcon",iconName:"list-alt"},[bt]:{iconType:"fontAwesomeIcon",iconName:"bed"},[Et]:{iconType:"fontAwesomeIcon",iconName:"id-card"},[Lt]:{iconType:"fontAwesomeIcon",iconName:"kit-medical"},[Bt]:{iconType:"fontAwesomeIcon",iconName:"hand-holding-medical"},[St]:{iconType:"fontAwesomeIcon",iconName:"people-arrows"},[$e]:{iconType:"fontAwesomeIcon",iconName:"location-dot"},[Xe]:{iconType:"fontAwesomeIcon",iconName:"user"},[Je]:{iconType:"fontAwesomeIcon",iconName:"handshake"},[Qe]:{iconType:"fontAwesomeIcon",iconName:"euro-sign"},[et]:{iconType:"fontAwesomeIcon",iconName:"road"},[tt]:{iconType:"fontAwesomeIcon",iconName:"table-cells"},[nt]:{iconType:"fontAwesomeIcon",iconName:"certificate"},[Vt]:{iconType:"fontAwesomeIcon",iconName:"location-dot"},[Kt]:{iconType:"fontAwesomeIcon",iconName:"user"},[Ht]:{iconType:"fontAwesomeIcon",iconName:"handshake"},[Gt]:{iconType:"fontAwesomeIcon",iconName:"euro-sign"},[zt]:{iconType:"fontAwesomeIcon",iconName:"table-cells"},[Ut]:{iconType:"fontAwesomeIcon",iconName:"certificate"},[Wt]:{iconType:"fontAwesomeIcon",iconName:"certificate"},[Yt]:{iconType:"fontAwesomeIcon",iconName:"map"},[qt]:{iconType:"fontAwesomeIcon",iconName:"euro-sign"},[$t]:{iconType:"fontAwesomeIcon",iconName:"euro-sign"},[Xt]:{iconType:"fontAwesomeIcon",iconName:"certificate"},[Jt]:{iconType:"fontAwesomeIcon",iconName:"certificate"}},tn="metric",nn=!0,an={BOOKMARKING_LOCAL:"BOOKMARKING_LOCAL",BOOKMARKING_REMOTE:"BOOKMARKING_REMOTE"},on={SELECTED_BOOKMARK_STORAGE_TYPE:an.BOOKMARKING_LOCAL,SELECTED_BOOKMARK_KEY_IN_STORAGE:"selectedBookMark"}},74444:(e,t,n)=>{n.d(t,{k:()=>i,Z:()=>s});var a=n(92903);const i="fi",o=new a.Z({fi:{monthAbbreviation:"kk",errorCouldNotLoadTranslationWithLocalizationKey:"(Käännöstä ei voitu ladata)",mainMenuButtonLabel:"Päävalikko",mainMenuFilters:"Suodattimet",mainMenuMapLayers:"Karttatasot",mainMenuMapLayersDragHandleTooltip:"Järjestä karttatasoja raahaamalla tästä",mainMenuMapLayersRestoreDefaultOrder:"Palauta oletusjärjestys",mainMenuServiceProviders:"Toimipaikat",mainMenuCustomerVolumes:"Asiakasmäärät",mainMenuCustomerVisits:"Suoritteet",mainMenuServiceProviderCosts:"Kustannukset",mainMenuServiceProviderAccessibility:"Saavutettavuus linnuntietä pitkin",mainMenuServiceProviderAccessibilityByRoad:"Saavutettavuus tieverkostoa pitkin",mainMenuExtraBaseLayers:"Muut karttatasot",extraBaseLayersTreeLoadingMessage:"Ladataan valittavien karttatasojen puuta...",extraBaseLayersTreeLoadingMessageError:"Valittavien karttatasojen puun lataaminen epäonnistui",extraBaseLayersTreeLoadingMessageCancel:"Valittavien karttatasojen puun lataaminen peruutettiin",mainMenuServiceProvidersHelp:"Näyttää toimipaikat kartalla karttamerkkeinä. Klikkaamalla toimipaikkaa saa näkyville yksittäisten toimiyksiköiden perustiedot.",mainMenuCustomerVolumesHelp:"Näyttää asiakasmääriä alueittain. Katso värien selitteet Karttaselitteet-välilehdeltä",mainMenuCustomerVisitsHelp:"Näyttää suoritteita alueittain. Katso värien selitteet Karttaselitteet-välilehdeltä",mainMenuServiceProviderCostsHelp:"Näyttää valitulta alueelta viivat niihin toimipaikkoihin, joihin alueelta on kohdistunut kuluja.",mainMenuServiceProviderAccessibilityHelp:"Näyttää toimipaikkojen saavutettavuutta väestöruuduittain. Ruutu värjäytyy sen mukaan, kuinka paljon asukkaita kussakin ruudussa on ja kuinka lähellä toimipaikat sijaitsevat. Katso värien selitteet Karttaselitteet-välilehdeltä.",mainMenuServiceProviderAccessibilityByRoadHelp:"Näyttää toimipaikkojen saavutettavuutta tieverkostoa pitkin",mainMenuExtraBaseLayersHelp:"Sisältää muista lähteistä tuotavat karttatasot",cloneAppButtonLabel:"Kopioi valinnat",cloneAppButtonTooltip:"Avaa uusi kopio tästä ikkunasta",userManualButtonOpenLabel:"Ohje",userManualButtonCloseLabel:"Sulje ohje",userManualButtonOpenTooltip:"Avaa käyttöohjeen uuteen ikkunaan",userManualButtonCloseTooltip:"Sulkee uuteen ikkunaan avatun käyttöohjeen",systemInfoButtonOpenLabel:"Tietoja",systemInfoButtonCloseLabel:"Sulje tiedot",systemInfoButtonOpenTooltip:"Näyttää perustietoja järjestelmästä",systemInfoButtonCloseTooltip:"Sulkee järjestelmän perustiedot näkyvistä",systemInfoGeneralHeader:"Yleiset tiedot",systemInfoGeospatialDataLicencesHeader:"Kartta-aineistojen lisenssit",systemInfoGeospatialDataLicencesShowLabel:"Näytä kartta-aineistojen lisenssit",systemInfoGeospatialDataLicencesHideLabel:"Piilota kartta-aineistojen lisenssit",systemInfoVersionGIS:"Logex Region GIS-käyttöliittymän versio",systemInfoVersionGISBackend:"Logex Region GIS-taustajärjestelmän versio",systemInfoVersionPR:"Logex Region -versio",systemInfoVersionAPI:"Rajapintapalvelun versio",systemInfoDataLastLoaded:"Data päivitetty viimeksi",systemInfoSystemStatus:"Järjestelmän status",systemInfoDataRowCount:"Rivien määrä datassa",systemInfoInstancePRName:"Järjestelmän nimi",systemInfoTechnicalImplementation:"Tekninen toteutus",systemInfoLoading:"Ladataan yleisiä tietoja...",systemInfoLoadingCancelled:"Yleisten tietojen lataaminen peruutettiin",systemInfoLoadingFailed:"Yleisten tietojen lataaminen epäonnistui",systemInfoGeospatialDataInfo:"Kuvaus",systemInfoGeospatialDataLicense:"Lisenssi",systemInfoGeospatialDataVersion:"Aineistoversio",systemInfoGeospatialDataLicencesLoading:"Ladataan lisenssien tietoja...",systemInfoGeospatialDataLicencesLoadingCancelled:"Lisenssien tietojen lataaminen peruutettiin",systemInfoGeospatialDataLicencesLoadingFailed:"Lisenssien tietojen lataaminen epäonnistui",captureScreenButtonLabel:"Ruutu­kaappaus",captureScreenButtonTooltip:"Ottaa ruutukaappauksen sivun sisällöstä ja tarjoaa sen tallennettavaksi",captureScreenButtonIEAndEdgeNotification:"Ruutukaappaustoiminto suoritetaan tämän ilmoituksen sulkeutumisen jälkeen.\n\nHuomioi, että käyttämäsi selain (IE/Edge) ei tue kunnolla ruutukaappaustoimintoa.\n\nTarkista tallentamasi kuvan oikeellisuus!\n\nVinkki: Mikäli mahdollista, kannattaa käyttää eri selainta (Chrome, Firefox).\nSelaimesta riippumatta parhaan tuloksen saa käyttämällä Windowsin Ruutukaappaustyökalua (Snipping Tool).\n\n",bookmarkButtonLabel:"Kirjan­merkki",bookmarkButtonCloseLabel:"Sulje kirjanmerkit",boomarkNameLabel:"Kirjanmerkin nimi (pakollinen)",bookmarkSaveAsFileLabel:"Tallenna kirjanmerkki tiedostona",bookmarkSaveLabel:"Tallenna",bookmarkSaveSuccess:"Kirjanmerkin tallennus onnistui!",bookmarkSaveFail:"Kirjanmerkin tallennus epäonnistui!",bookmarkSaveBookmark:"Tallenna kirjanmerkki",bookmarkShowBookmarks:"Näytä kirjanmerkit",bookmarkButtonTipLabel:"Tarkastele ja tallenna uusia kirjanmerkkejä",bookmarkRemoveTipLabel:"Poista kirjanmerkki",bookmarkRemoveConfirmation:"Haluatko varmasti poistaa kirjanmerkin {0}?",bookmarkOpenTipLabel:"Avaa kirjanmerkin tila uuteen ikkunaan",bookmarkExportTipLabel:"Vie kirjanmerkki",bookmarkImportTipLabel:"Tuo kirjanmerkki",bookmarkOpenFailed:"Kirjanmerkin avaamisessa tapahtui virhe ja se epäonnistui. Kirjanmerkin versio: {0}. Nykyinen versio: {1}",bookmarkOpenConversionFound:"Avaamasi kirjanmerkki on tallennettu sovelluksen versiossa {0}, kun tämänhetkinen versio on {1}. Yritämme muokata kirjanmerkin tilaa yhteensopivaksi, mutta muokatussa tilassa saattaa esiintyä ongelmia.",infoAreaTabInitialContent:"Kartalla näkyvien elementtien selitteet näkyvät tässä välilehdessä.",costsGroupedByServiceProviderOfficeNoResults:"Suoritteita ei löytynyt",costsGroupedByServiceProviderOfficeTooFewResults:"Alle {0} tai ei suoritteita",costsGroupedByServiceProviderOfficeLegendDescription:"Viivojen paksuus kertoo kustannusten suoritemäärästä: mitä paksumpi viiva, sitä enemmän suoritteita.\n\nViivojen väri kertoo suoritekohtaisista kustannuksista: mitä tummempi väri, sitä isompi suoritekohtainen kustannus.",costsGroupedByServiceProviderUnitNoResults:"Suoritteita ei löytynyt",costsGroupedByServiceProviderUnitTooFewResults:"Alle {0} tai ei suoritteita",costsGroupedByZipCodeNoResults:"Suoritteita ei löytynyt",costsGroupedByZipCodeLegendLoadingText:"Kustannukset: Ladataan suoritteiden kustannuksia...",costsGroupedByZipCodeLegendLoadingTextSuccess:"Kustannukset: Suoritteiden kustannusten lataaminen onnistui",costsGroupedByZipCodeLegendLoadingTextError:"Kustannukset: Suoritteiden kustannusten lataaminen epäonnistui",costsGroupedByZipCodeLegendLoadingTextCancel:"Kustannukset: Suoritteiden kustannusten lataaminen peruutettiin",costsGroupedByZipCodeLegendTextTotal:"Suoritteiden kokonaiskustannus (€)",costsGroupedByZipCodeLegendTextTotalCohort:"Suoritteiden kokonaiskustannus (€) (osuussuodattimessa valittujen prosenttiosuus)",costsGroupedByZipCodeLegendTextAverage:"Suoritteiden keskikustannus (€)",costsGroupedByZipCodeLegendTextRelativeToPopulation:"Alueen asukaslukuun suhteutetut kustannukset (€)",costsGroupedByZipCodeLegendTextRelativeToCustomers:"Alueen asiakasmäärään suhteutetut kustannukset (€)",tabCustomerDemographicsLabel:"Asiakasdemografiat",tabProviderCostsLabel:"Postinumeroalueen kustannukset",tabProviderCostsWithinAddressLabel:"Toimipaikan kustannukset",tabLegendsLabel:"Karttaselitteet",tabPaavoHEData:"Paavo: Asukasrakenne",tabPaavoPTData:"Paavo: Pääasiallinen toiminta",mapPanNorthTooltip:"Siirrä ylös",mapPanWestTooltip:"Siirrä vasemmalle",mapPanEastTooltip:"Siirrä oikealle",mapPanSouthTooltip:"Siirrä alas",mapZoomInTooltip:"Lähennä",mapZoomOutTooltip:"Loitonna",filterIsActiveSuffix:" -suodatin vaikuttaa tähän karttatasoon",filterIsInactiveSuffix:" -suodatin ei vaikuta tähän karttatasoon",agegroupFilterName:"Ikäsuodatin",agegroupFilterIsActive:"Ikäsuodatin vaikuttaa tähän karttatasoon",agegroupFilterIsInactive:"Ikäsuodatin ei vaikuta tähän karttatasoon",eprgroupFilterName:"EPR-ryhmä-suodatin",eprgroupFilterIsActive:"EPR-ryhmä-suodatin vaikuttaa tähän karttatasoon",eprgroupFilterIsInactive:"EPR-ryhmä-suodatin ei vaikuta tähän karttatasoon",maindiagnosesFilterName:"Päädiagnoosi (ICD-10) tai käynnin 1. syy (ICPC)",maindiagnosesFilterIsActive:"Päädiagnoosi (ICD-10) tai käynnin 1. syy (ICPC) -suodatin vaikuttaa tähän karttatasoon",maindiagnosesFilterIsInactive:"Päädiagnoosi (ICD-10) tai käynnin 1. syy (ICPC) -suodatin ei vaikuta tähän karttatasoon",areamdcFilterName:"Alue-MDC (ICD10 tai ICPC2)-suodatin",areamdcFilterIsActive:"Alue-MDC (ICD10 tai ICPC2)-suodatin vaikuttaa tähän karttatasoon",areamdcFilterIsInactive:"Alue-MDC (ICD10 tai ICPC2)-suodatin ei vaikuta tähän karttatasoon",genderFilterName:"Sukupuolisuodatin",genderFilterIsActive:"Sukupuolisuodatin vaikuttaa tähän karttatasoon",genderFilterIsInactive:"Sukupuolisuodatin ei vaikuta tähän karttatasoon",serviceproviderFilterName:"Tuottavat yksiköt -suodatin",serviceproviderFilterIsActive:"Tuottavat yksiköt -suodatin vaikuttaa tähän karttatasoon",serviceproviderFilterIsInactive:"Tuottavat yksiköt -suodatin ei vaikuta tähän karttatasoon",municipalityFilterName:"Kotikuntasuodatin",municipalityFilterRootLabel:"Kotikunta",municipalityFilterOthersLabel:"Muut",municipalityFilterIsActive:"Kotikuntasuodatin vaikuttaa tähän karttatasoon",municipalityFilterIsInactive:"Kotikuntasuodatin ei vaikuta tähän karttatasoon",municipalityFilterNoResults:"Kuntia ei löytynyt",timesliderFilterName:"Aikavälisuodatin",timesliderFilterIsActive:"Aikavälisuodatin vaikuttaa tähän karttatasoon",timesliderFilterIsInactive:"Aikavälisuodatin ei vaikuta tähän karttatasoon",timesliderSelectionText:"Valittu aikaväli:",timesliderDragLeft:"Siirrä valittua aikaväliä vasemmalle",timesliderDragRight:"Siirrä valittua aikaväliä oikealle",basicServiceTypesFilterHeader:"Perussuoritelaji",basicServiceTypesFilterName:"Perussuoritelajisuodatin",basicServiceTypesFilterIsActive:"Perussuoritelajisuodatin vaikuttaa tähän karttatasoon",basicServiceTypesFilterIsInactive:"Perussuoritelajisuodatin ei vaikuta tähän karttatasoon",basicServiceTypesListFetchLoadingMessage:"Ladataan perussuoritelajisuodatinta...",basicServiceTypesListFetchCancelledMessage:"Perussuoritelajisuodattimen lataaminen peruutettiin",basicServiceTypesListFetchFailedMessage:"Perussuoritelajisuodattimen lataaminen epäonnistui",serviceTypesFilterHeader:"Suoritelaji (esh, pth, sos)",serviceTypesFilterName:"Suoritelaji (esh, pth, sos) -suodatin",serviceTypesFilterIsActive:"Suoritelaji (esh, pth, sos) -suodatin vaikuttaa tähän karttatasoon",serviceTypesFilterIsInactive:"Suoritelaji (esh, pth, sos) -suodatin ei vaikuta tähän karttatasoon",serviceTypesListFetchLoadingMessage:"Ladataan Suoritelaji (esh, pth, sos) -suodatinta...",serviceTypesListFetchCancelledMessage:"Suoritelaji (esh, pth, sos) -suodattimen lataaminen peruutettiin",serviceTypesListFetchFailedMessage:"Suoritelaji (esh, pth, sos) -suodattimen lataaminen epäonnistui",contacttypes_header:"Yhteystapa",contactTypeFilter_E:"Etäkontaktit",contactTypeFilter_L:"Lähikontaktit",contactTypeFilter_M:"Muut kontaktit",zipCodesFilterHeader:"Asuinpaikka",zipCodesFilterName:"Asuinpaikka -suodatin",zipCodesFilterIsActive:"Asuinpaikka -suodatin vaikuttaa tähän karttatasoon",zipCodesFilterIsInactive:"Asuinpaikka -suodatin ei vaikuta tähän karttatasoon",zipCodesFilterNoResults:"Asuinpaikkoja ei löytynyt",zipCodesFilterLoadingText:"Ladataan asuinpaikkasuodatinta...",zipCodesFilterLoadingTextSuccess:"Asuinpaikkasuodattimen lataaminen onnistui",zipCodesFilterLoadingTextError:"Asuinpaikkasuodattimen lataaminen epäonnistui",zipCodesFilterLoadingTextCancel:"Asuinpaikkasuodattimen lataaminen peruutettiin",urgencyTypesFilterHeader:"Kiireellisyys",urgencyTypesFilterName:"Kiireellisyyssuodatin",urgencyTypesFilterIsActive:"Kiireellisyyssuodatin vaikuttaa tähän karttatasoon",urgencyTypesFilterIsInactive:"Kiireellisyyssuodatin ei vaikuta tähän karttatasoon",urgencyTypesListFetchLoadingMessage:"Ladataan Kiireellisyyssuodatinta...",urgencyTypesListFetchCancelledMessage:"Kiireellisyyssuodattimen lataaminen peruutettiin",urgencyTypesListFetchFailedMessage:"Kiireellisyyssuodattimen lataaminen epäonnistui",thlndgGroupsFilterHeader:"THL-kansantautiryhmä",thlndgGroupsFilterName:"THL-kansantautiryhmäsuodatin",thlndgGroupsFilterIsActive:"THL-kansantautiryhmäsuodatin vaikuttaa tähän karttatasoon",thlndgGroupsFilterIsInactive:"THL-kansantautiryhmäsuodatin ei vaikuta tähän karttatasoon",thlndgGroupsListFetchLoadingMessage:"Ladataan THL-kansantautiryhmäsuodatinta...",thlndgGroupsListFetchCancelledMessage:"THL-kansantautiryhmäsuodattimen lataaminen peruutettiin",thlndgGroupsListFetchFailedMessage:"THL-kansantautiryhmäsuodattimen lataaminen epäonnistui",thldgGroupsFilterHeader:"THL-sairausluokka",thldgGroupsFilterName:"THL-sairausluokkasuodatin",thldgGroupsFilterIsActive:"THL-sairausluokkasuodatin vaikuttaa tähän karttatasoon",thldgGroupsFilterIsInactive:"THL-sairausluokkasuodatin ei vaikuta tähän karttatasoon",thldgGroupsListFetchLoadingMessage:"Ladataan THL-sairausluokkasuodatinta...",thldgGroupsListFetchCancelledMessage:"THL-sairausluokkasuodattimen lataaminen peruutettiin",thldgGroupsListFetchFailedMessage:"THL-sairausluokkasuodattimen lataaminen epäonnistui",visitKindsFilterHeader:"Käynnin luonne",visitKindsFilterName:"Käynnin luonne -suodatin",visitKindsFilterIsActive:"Käynnin luonne -suodatin vaikuttaa tähän karttatasoon",visitKindsFilterIsInactive:"Käynnin luonne -suodatin ei vaikuta tähän karttatasoon",visitKindsListFetchLoadingMessage:"Ladataan Käynnin luonne -suodatinta...",visitKindsListFetchCancelledMessage:"Käynnin luonne -suodattimen lataaminen peruutettiin",visitKindsListFetchFailedMessage:"Käynnin luonne -suodattimen lataaminen epäonnistui",personnelTypesFilterHeader:"Ammatti",personnelTypesFilterName:"Ammattisuodatin",personnelTypesFilterIsActive:"Ammattisuodatin vaikuttaa tähän karttatasoon",personnelTypesFilterIsInactive:"Ammattisuodatin ei vaikuta tähän karttatasoon",personnelTypesListFetchLoadingMessage:"Ladataan Ammattisuodatinta...",personnelTypesListFetchCancelledMessage:"Ammattisuodattimen lataaminen peruutettiin",personnelTypesListFetchFailedMessage:"Ammattisuodattimen lataaminen epäonnistui",sosServiceDutiesFilterHeader:"Sosiaalihuollon palvelutehtävä",sosServiceDutiesFilterName:"Sosiaalihuollon palvelutehtäväsuodatin",sosServiceDutiesFilterIsActive:"Sosiaalihuollon palvelutehtäväsuodatin vaikuttaa tähän karttatasoon",sosServiceDutiesFilterIsInactive:"Sosiaalihuollon palvelutehtäväsuodatin ei vaikuta tähän karttatasoon",sosServiceDutiesListFetchLoadingMessage:"Ladataan Sosiaalihuollon palvelutehtäväsuodatinta...",sosServiceDutiesListFetchCancelledMessage:"Sosiaalihuollon palvelutehtäväsuodattimen lataaminen peruutettiin",sosServiceDutiesListFetchFailedMessage:"Sosiaalihuollon palvelutehtäväsuodattimen lataaminen epäonnistui",sosServicesFilterHeader:"Sosiaalipalvelu",sosServicesFilterName:"Sosiaalipalvelusuodatin",sosServicesFilterIsActive:"Sosiaalipalvelusuodatin vaikuttaa tähän karttatasoon",sosServicesFilterIsInactive:"Sosiaalipalvelusuodatin ei vaikuta tähän karttatasoon",sosServicesListFetchLoadingMessage:"Ladataan Sosiaalipalvelusuodatinta...",sosServicesListFetchCancelledMessage:"Sosiaalipalvelusuodattimen lataaminen peruutettiin",sosServicesListFetchFailedMessage:"Sosiaalipalvelusuodattimen lataaminen epäonnistui",selectionToolbarUndoText:"Kumoa valinta",selectionToolbarUndoTooltip:"Kumoa valinta",selectionToolbarRedoText:"Toista valinta",selectionToolbarRedoTooltip:"Toista valinta",selectionToolbarRemoveAllText:"Tyhjennä kaikki",selectionToolbarRemoveAllTooltip:"Tyhjennä kaikki valinnat",selectionToolbarResetAllText:"Poista rajaukset",selectionToolbarResetAllTooltip:"Poista kaikki rajaukset",selectedZipCodeRegionDashboardViews:"Region Dashboard -näkymät",selectedZipCodeShowMunicipalityCosts:"Näytä kunnan {0} kustannukset",selectedZipCodeShowMunicipalityCostsPerCitizen:"Näytä kunnan {0} kustannukset per asukas",selectedZipCodeBelongsToMunicipalityWithNameAndCode:"{0} kuuluu kuntaan {1} ({2})",selectedZipCodeArea:"Postinumeroalue {0} {1}",serviceProviderTreeContainerLabel:"Tuottavat yksiköt",serviceProviderTreeContainerLoadingMessage:"Ladataan Tuottavat yksiköt -suodatinta...",serviceProviderTreeContainerLoadingMessageError:"Tuottavat yksiköt -suodattimen lataaminen epäonnistui",serviceProviderTreeContainerLoadingMessageCancel:"Tuottavat yksiköt -suodattimen lataaminen peruutettiin",serviceProviderFilterNoResults:"Ei hakutuloksia",serviceGroupsTreeContainerLabel:"Tietopaketit",serviceGroupsTreeContainerLoadingMessage:"Ladataan tietopaketit -suodatinta...",serviceGroupsTreeContainerLoadingMessageError:"Tietopaketit -suodattimen lataaminen epäonnistui",serviceGroupsTreeContainerLoadingMessageCancel:"Tietopaketit -suodattimen lataaminen peruutettiin",serviceGroupsFilterNoResults:"Ei hakutuloksia",serviceGroupsFilterName:"Tietopaketit -suodatin",serviceProvidersPopupShowServiceUnitsInAddress:"Näytä tuottavat yksiköt osoitteessa {0}",serviceProvidersPopupAddressLabel:"Osoite",serviceProvidersPopupServiceUnitsLabel:"Tuottavat yksiköt",serviceProvidersPopupCommitServiceProviderSelection:"Suodata vain valitut tuottavat yksiköt",timeSliderLoadingInfo:"Ladataan aikavälisuodatinta näkyville...",timeSliderLoadingError:"Aikavälisuodattimen lataaminen epäonnistui",timeSliderLoadingCancel:"Aikavälisuodattimen lataaminen peruutettiin",timeSliderHeading:"Aikavälisuodatin",timeSliderSelectedTimeSpan:"Valittu aikaväli:",timeSliderSelectedTimeSpanFormat:"DD.MM.YYYY",customersGenderListContainerLoadingMessage:"Ladataan sukupuolisuodatinta...",customersGenderListContainerLoadingFailedMessage:"Sukupuolisuodattimen lataaminen epäonnistui",customersGenderListContainerLoadingCancelMessage:"Sukupuolisuodattimen lataaminen peruutettiin",customersEPRListContainerHeader:"EPR-ryhmä",customersEPRListContainerLoadingMessage:"Ladataan EPR-ryhmä-suodatinta...",customersEPRListContainerLoadingFailedMessage:"EPR-ryhmä-suodattimen lataaminen epäonnistui",customersEPRListContainerLoadingCancelMessage:"EPR-ryhmä-suodattimen lataaminen peruutettiin",customersAreaMDCListContainerHeader:"Alue-MDC (ICD10 tai ICPC2)",customersAreaMDCListContainerLoadingMessage:"Ladataan Alue-MDC (ICD10 tai ICPC2)-suodatinta...",customersAreaMDCListContainerLoadingFailedMessage:"Alue-MDC (ICD10 tai ICPC2)-suodattimen lataaminen epäonnistui",customersAreaMDCListContainerLoadingCancelMessage:"Alue-MDC (ICD10 tai ICPC2)-suodattimen lataaminen peruutettiin",customersAgeGroupListContainerLoadingMessage:"Ladataan ikäryhmäsuodatinta...",customersAgeGroupListContainerLoadingFailedMessage:"Ikäryhmäsuodattimen lataaminen epäonnistui",customersAgeGroupListContainerLoadingCancelMessage:"Ikäryhmäsuodattimen lataaminen peruutettiin",customerVisitsLegendTextAbsolute:"Suoritteet (kpl)",customerVisitsLegendTextRelativeToPopulation:"Suoritteet (per asukas)",customerVisitsLegendTextRelativeToCustomers:"Suoritteet (per asiakas)",customerVisitsLegendTextCohortAbsolute:"Suoritteet (kpl) (osuussuodattimessa valittujen prosenttiosuus)",customerVisitsNoResults:"Suoritteita ei löytynyt",customerVisitsLayerLoadingText:"Suoritteet: Ladataan postinumeroalueita näkyville...",customerVisitsLayerLoadingTextSuccess:"Suoritteet: Postinumeroalueiden lataaminen onnistui",customerVisitsLayerLoadingTextError:"Suoritteet: Postinumeroalueiden lataaminen epäonnistui",customerVisitsLayerLoadingTextCancel:"Suoritteet: Postinumeroalueiden lataaminen peruutettiin",customerVisitsDataLoadingText:"Suoritteet: Päivitetään suoritemääriä...",customerVisitsDataLoadingTextSuccess:"Suoritteet: Suoritemäärien päivittäminen onnistui",customerVisitsDataLoadingTextError:"Suoritteet: Suoritemäärien päivittäminen epäonnistui",customerVisitsDataLoadingTextCancel:"Suoritteet: Suoritemäärien päivittäminen peruutettiin",customerVisitsPopupShowCustomerVisitsInZipCodeArea:"Näytä suoritteet postinumeroalueella {0}",customerVisitsPopupZipCodeAreaLabel:"Postinumeroalue",customerVisitsPopupCustomerVisitsLabel:"Postinumeroalueen suoritteet",customerVisitsPopupPopulationRelativeCustomerVisitsLabel:"Alueen suoritteet per asukas",customerVisitsPopupCustomerRelativeCustomerVisitsLabel:"Alueen suoritteet per asiakas",customerVisitsPopupCohortCustomerVisitsLabel:"Osuussuodattimen mukainen suoritemäärä",customerVisitsValueTypeAbsolute:"Suoritteiden määrä",customerVisitsValueTypeRelativeToPopulation:"Suoritteet per asukas",customerVisitsValueTypeRelativeToCustomers:"Suoritteet per asiakas",accessibilityCatchmentDataLoadingInfo:"Saavutettavuus tieverkostoa pitkin: Ladataan...",accessibilityCatchmentDataLoadingSuccess:"Saavutettavuus tieverkostoa pitkin: Lataaminen onnistui",accessibilityCatchmentDataLoadingError:"Saavutettavuus tieverkostoa pitkin: Lataaminen epäonnistui",accessibilityCatchmentDataLoadingCancel:"Saavutettavuus tieverkostoa pitkin: Lataaminen peruutettiin",accessibilityLegendText:"Toimipaikkojen saavutettavuus tieverkostoa pitkin",accessibilityLegendAdditionalInfoShow:"Näytä lisätiedot",accessibilityLegendAdditionalInfoHide:"Piilota lisätiedot",accessibilityLegendAdditionalInfo:"Saavutettavuusajat on laskettu tieverkostoa pitkin (kesä)nopeusrajoituksia noudattaen. Mikäli (kesä)nopeusrajoitus ei ole tiedossa, laskennassa käytetään nopeutena 40 km/h. Tieverkostona on käytetty Väyläviraston Digiroad K -aineistoa, {0}. Värjäämätön osuus kartasta on yli 30 minuuttia.",accessibilityLegendCatchmentInfo:"Alle {0}",accessibilityByAirLoadingInfo:"Saavutettavuus linnuntietä pitkin: Ladataan...",accessibilityByAirLoadingSuccess:"Saavutettavuus linnuntietä pitkin: Lataaminen onnistui",accessibilityByAirLoadingError:"Saavutettavuus linnuntietä pitkin: Lataaminen epäonnistui",accessibilityByAirLoadingCancel:"Saavutettavuus linnuntietä pitkin: Lataaminen peruutettiin",extraBaseLayersDataLoadingInfo:"Muut karttatasot: Ladataan...",extraBaseLayersDataLoadingSuccess:"Muut karttatasot: Lataaminen onnistui",extraBaseLayersDataLoadingError:"Muut karttatasot: Lataaminen epäonnistui",extraBaseLayersDataLoadingCancel:"Muut karttatasot: Lataaminen peruutettiin",serviceCostsZipCodeLoadingInfo:"Kustannukset: Ladataan postinumeroalueita näkyville...",serviceCostsZipCodeLoadingSuccess:"Kustannukset: Postinumeroalueiden lataus onnistui",serviceCostsZipCodeLoadingError:"Kustannukset: Postinumeroalueiden lataus epäonnistui",serviceCostsZipCodeLoadingCancel:"Kustannukset: Postinumeroalueiden lataus peruutettiin",serviceCostsCostLineLoadingInfo:"Kustannukset: Ladataan kustannuksia postinumeroalueelta...",serviceCostsCostLineLoadingSuccess:"Kustannukset: Postinumeroalueen kustannusten lataus onnistui",serviceCostsCostLineLoadingError:"Kustannukset: Postinumeroalueen kustannusten lataus epäonnistui",serviceCostsCostLineLoadingCancel:"Kustannukset: Postinumeroalueen kustannusten lataus peruutettiin",serviceCostLineDetailsLoadingInfo:"Kustannukset: Ladataan toimipaikan kustannustietoja...",serviceCostLineDetailsLoadingSuccess:"Kustannukset: Toimipaikan kustannustietojen lataus onnistui",serviceCostLineDetailsLoadingError:"Kustannukset: Toimipaikan kustannustietojen lataus epäonnistui",serviceCostLineDetailsLoadingCancel:"Kustannukset: Toimipaikan kustannustietojen lataus peruutettiin",serviceCostsValueTypeAbsolute:"Kustannukset",serviceCostsValueTypeRelativeToPopulation:"Kustannukset per asukas",serviceCostsValueTypeRelativeToVisits:"Kustannukset per suorite",serviceCostsValueTypeRelativeToCustomers:"Kustannukset per asiakas",serviceProviderLayerLoadingInfo:"Toimipaikat: Ladataan...",serviceProviderLayerLoadingSuccess:"Toimipaikat: Lataaminen onnistui",serviceProviderLayerLoadingError:"Toimipaikat: Lataaminen epäonnistui",serviceProviderLayerLoadingCancel:"Toimipaikat: Lataaminen peruutettiin",municipalityFilterContainerLoadingMessage:"Ladataan kotikuntasuodatinta...",municipalityFilterContainerLoadingFailedMessage:"Kotikuntasuodattimen lataaminen epäonnistui",municipalityFilterContainerLoadingCancelMessage:"Kotikuntasuodattimen lataaminen peruutettiin",populationGridLayerInteractionShowDistance:"Näytä väestöruudun etäisyys lähimpään toimipaikkaan",selectedGridPopulation:"Ruudun väestömäärä",selectedGridDistance:"Etäisyys lähimpään toimipaikkaan linnuntietä pitkin (km)",colorRowDistanceToNearestServiceProvider:"Etäisyys lähimpään toimipaikkaan (km)",colorMatrixPeopleInGrid:"Ihmisiä ruudussa",accessibilityByAirUIContainerLegendsColorMatrixTitle:"Toimipaikkojen saavutettavuus linnuntietä pitkin",costPlotXAttributeText:"Kustannus yhtä suoritetta kohti",costPlotYAttributeText:"Suoritteet",costPlotXAttributeUnit:"€",costPlotYAttributeUnit:"kpl",costsWithinAddressSelectableFeature:"Kustannukset osoitteeseen {0}",costsWithinAddressServiceProviderNameLabel:"Toimiyksikön nimi",costsWithinAddressServiceProviderHideInfo:"Piilota toimipaikan kustannusten tiedot",costsWithinAddressServiceProviderShowInfo:"Näytä toimipaikan kustannusten tiedot",costsWithinAddressServiceProviderCostsAll:"Toimipaikan kustannukset yhteensä",costsWithinAddressServiceProviderCostsAllValue:"{0} euroa",costsWithinAddressServiceProviderVolumesAll:"Toimipaikan suoritteet yhteensä",costsWithinAddressServiceProviderVolumesAllValue:"{0} kpl",costsWithinAddressPlotHide:"Piilota toimipaikan kustannusten hajontakuvio",costsWithinAddressPlotShow:"Näytä toimipaikan kustannusten hajontakuvio",costsWithinAddressInfoLabel:"Huomaathan, että Käytä osuussuodattimena -valinta ei vaikuta tällä välilehdellä näytettävään informaatioon. Hajontakuviosta on piilotettu toimiyksiköt, joissa on alle 5 suoritetta.",costsWithinZipCodeAreaSelectableFeature:"Kustannukset postinumeroalueelta {0}",costsWithinZipCodeAreaServiceProviderAddressLabel:"Toimipaikan osoite",costsWithinZipCodeAreaServiceProviderInvalidAddress:"Toimipaikan osoitetta ei saatavilla",costsWithinZipCodeAreaServiceProviderHideInfo:"Piilota postinumeroalueen kustannusten tiedot",costsWithinZipCodeAreaServiceProviderShowInfo:"Näytä postinumeroalueen kustannusten tiedot",costsWithinZipCodeAreaServiceProviderCostsAll:"Postinumeroalueen kustannukset yhteensä",costsWithinZipCodeAreaServiceProviderCostsAllCohort:"Osuussuodattimen mukaiset kokonaiskustannukset",costsWithinZipCodeAreaServiceProviderCostsAllValue:"{0} euroa",costsWithinZipCodeAreaRelativeToPopulation:"Postinumeroalueen kustannukset per asukas",costsWithinZipCodeAreaRelativeToPopulationValue:"{0} euroa",costsWithinZipCodeAreaServiceProviderVolumesAll:"Postinumeroalueen suoritteet yhteensä",costsWithinZipCodeAreaServiceProviderVolumesAllValue:"{0} kpl",costsWithinZipCodeAreaInfoLabel:"Huomaathan, että Käytä osuussuodattimena -valinta vaikuttaa vain arvoon 'Osuussuodattimen mukaiset kokonaiskustannukset'. Hajontakuviosta on piilotettu toimipaikat, joissa on alle 5 suoritetta.",costsWithinZipCodeAreaPlotHide:"Piilota postinumeroalueen kustannusten hajontakuvio",costsWithinZipCodeAreaPlotShow:"Näytä postinumeroalueen kustannusten hajontakuvio",customerVolumesLayerLoadingInfo:"Asiakasmäärät: Ladataan postinumeroalueita näkyville...",customerVolumesLayerLoadingSuccess:"Asiakasmäärät: Postinumeroalueiden lataaminen onnistui",customerVolumesLayerLoadingError:"Asiakasmäärät: Postinumeroalueiden lataaminen epäonnistui",customerVolumesLayerLoadingCancel:"Asiakasmäärät: Postinumeroalueiden lataaminen peruutettiin",customerVolumesLayerUpdaterLoadingInfo:"Asiakasmäärät: Päivitetään asiakasmääriä...",customerVolumesLayerUpdaterLoadingSuccess:"Asiakasmäärät: Asiakasmäärien päivittäminen onnistui",customerVolumesLayerUpdaterLoadingError:"Asiakasmäärät: Asiakasmäärien päivittäminen epäonnistui",customerVolumesLayerUpdaterLoadingCancel:"Asiakasmäärät: Asiakasmäärien päivittäminen peruutettiin",customerVolumesLegendTextAbsolute:"Valitun asiakasryhmän asiakasmäärät (hlö)",customerVolumesLegendTextRelativeToPopulation:"Valitun asiakasryhmän asiakasmäärät (per asukas)",customerVolumesLegendTextCohort:"Valitun asiakasryhmän asiakasmäärät (hlö) (osuussuodattimessa valittujen prosenttiosuus)",customerVolumesLegendNoResults:"Valitulle asiakasryhmälle ei löytynyt asiakkaita",customerVolumesPopupShowCustomerVolumesInZipCodeArea:"Näytä asiakasmäärät postinumeroalueella {0}",customerVolumesPopupZipCodeAreaLabel:"Postinumeroalue",customerVolumesPopupCustomerVolumesLabel:"Postinumeroalueen asiakasmäärä",customerVolumesPopupRelativeCustomerVolumesLabel:"Alueen asukaslukuun suhteutettu asiakasmäärä",customerVolumesPopupCohortCustomerVolumesLabel:"Osuussuodattimen mukainen asiakasmäärä",customerVolumesValueTypeAbsolute:"Asiakkaiden määrä",customerVolumesValueTypeRelativeToPopulation:"Peittävyys",valueTypeCohortPortion:"Osuudet",paavoPTLayerLoadingInfo:"Paavo: Ladataan postinumeroalueita näkyville...",paavoPTLayerLoadingSuccess:"Paavo: Postinumeroalueiden lataaminen onnistui",paavoPTLayerLoadingError:"Paavo: Postinumeroalueiden lataaminen epäonnistui",paavoPTLayerLoadingCancel:"Paavo: Postinumeroalueiden lataaminen peruutettiin",paavoPTLayerUpdaterLoadingInfo:"Paavo: Ladataan kokonaiskuvaa pääasiallisesta toiminnasta...",paavoPTLayerUpdaterLoadingSuccess:"Paavo: Pääasiallisen toiminnan kokonaiskuvan lataaminen onnistui",paavoPTLayerUpdaterLoadingError:"Paavo: Pääasiallisen toiminnan kokonaiskuvan lataaminen epäonnistui",paavoPTLayerUpdaterLoadingCancel:"Paavo: Pääasiallisen toiminnan kokonaiskuvan lataaminen peruutettiin",paavoPTLegendText:"Työllisyysprosentti postinumeroalueittain",paavoPTLegendTextSourceShow:"Näytä lähde",paavoPTLegendTextSourceHide:"Piilota lähde",paavoPTLegendTextSource:"Lähde: Paavo, asukkaiden pääasiallinen toiminta (PT), {0}",paavoPTLegendNoResults:"Työllisyysprosentti ei saatavilla",paavoHELayerLoadingInfo:"Paavo: Ladataan postinumeroalueita näkyville...",paavoHELayerLoadingSuccess:"Paavo: Postinumeroalueiden lataaminen onnistui",paavoHELayerLoadingError:"Paavo: Postinumeroalueiden lataaminen epäonnistui",paavoHELayerLoadingCancel:"Paavo: Postinumeroalueiden lataaminen peruutettiin",paavoHELayerUpdaterLoadingInfo:"Paavo: Ladataan kokonaiskuvaa asukasrakenteesta...",paavoHELayerUpdaterLoadingSuccess:"Paavo: Asukasrakenteen kokonaiskuvan lataaminen onnistui",paavoHELayerUpdaterLoadingError:"Paavo: Asukasrakenteen kokonaiskuvan lataaminen epäonnistui",paavoHELayerUpdaterLoadingCancel:"Paavo: Asukasrakenteen kokonaiskuvan lataaminen peruutettiin",paavoHESelectableFeature:"Asukasrakenne postinumeroalueelta {0}",paavoHELegendText:"Keski-ikä postinumeroalueittain (v)",paavoHELegendTextSourceShow:"Näytä lähde",paavoHELegendTextSourceHide:"Piilota lähde",paavoHELegendTextSource:"Lähde: Paavo, asukasrakenne (HE), {0}",paavoHELegendNoResults:"Keski-ikä ei saatavilla",paavoHEAgeDistributionYAXisLabel:"Ikä",paavoHEAgeDistributionXAxisLabel:"Väestömäärä",paavoHEGenderDistributionYAXisLabel:"Sukupuoli",paavoHEGenderDistributionXAxisLabel:"Väestömäärä",paavoHEAdditionalInfo:"Paavo, asukasrakenne (HE), {0}",paavoHEAdditionalInfoShow:"Näytä lisätiedot",paavoHEAdditionalInfoHide:"Piilota lisätiedot",paavoHEZeroValuesInfo:"Datan mahdolliset nolla-arvot johtuvat siitä, että",paavoHEZeroValueActual:"datan arvo on nolla",paavoHEZeroValueNotAvailable:"data ei ole saatavilla",paavoHEZeroValueHidden:"data on piilotettu/tietosuojattu",paavoHEAgeAverageLabel:"Asukkaiden keski-ikä on {0} vuotta",paavoHEPopulationTotalLabel:"Asukkaita on yhteensä {0} henkilöä",paavoHEShowAgePlot:"Näytä ikäjakauman kuvaaja",paavoHEHideAgePlot:"Piilota ikäjakauman kuvaaja",paavoHEShowGenderPlot:"Näytä sukupuolijakauman kuvaaja",paavoHEHideGenderPlot:"Piilota sukupuolijakauman kuvaaja",paavoPTChartYAxisLabel:"Pääasiallinen toiminta",paavoPTChartXAxisLabel:"Väestömäärä",paavoPTSelectableFeature:"Pääasiallinen toiminta postinumeroalueella {0}",paavoPTSelectedFeatureDataLoadingInfo:"Paavo: Ladataan tietoja postinumeroalueen pääasiallisesta toiminnasta...",paavoPTSelectedFeatureDataLoadingSuccess:"Paavo: Postinumeroalueen pääasiallisen toiminnan tietojen lataaminen onnistui",paavoPTSelectedFeatureDataLoadingError:"Paavo: Postinumeroalueen pääasiallisen toiminnan tietojen lataaminen epäonnistui",paavoPTSelectedFeatureDataLoadingCancel:"Paavo: Postinumeroalueen pääasiallisen toiminnan tietojen lataaminen peruutettiin",paavoHESelectedFeatureDataLoadingInfo:"Paavo: Ladataan tietoja postinumeroalueen asukasrakenteesta...",paavoHESelectedFeatureDataLoadingSuccess:"Paavo: Postinumeroalueen asukasrakenteen tietojen lataaminen onnistui",paavoHESelectedFeatureDataLoadingError:"Paavo: Postinumeroalueen asukasrakenteen tietojen lataaminen epäonnistui",paavoHESelectedFeatureDataLoadingCancel:"Paavo: Postinumeroalueen asukasrakenteen tietojen lataaminen peruutettiin",paavoPTShowPlot:"Näytä pääasiallisen toiminnan kuvaaja",paavoPTHidePlot:"Piilota pääasiallisen toiminnan kuvaaja",paavoPTAdditionalInfo:"Paavo, asukkaiden pääasiallinen toiminta (PT), {0}",paavoPTAdditionalInfoShow:"Näytä lisätiedot",paavoPTAdditionalInfoHide:"Piilota lisätiedot",paavoPTZeroValuesInfo:"Datan mahdolliset nolla-arvot johtuvat siitä, että",paavoPTZeroValueActual:"datan arvo on nolla",paavoPTZeroValueNotAvailable:"data ei ole saatavilla",paavoPTZeroValueHidden:"data on piilotettu/tietosuojattu",paavoPTEmploymentPercentage:"Työllisyysaste on {0} prosenttia",notificationObjectCancelMessage:"Peruuta",notificationObjectRetryMessage:"Yritä uudelleen",genericCancelLoadingMessage:"Peruuta",genericRetryMessage:"Yritä uudelleen",mainDiagnosisSearchSelectedDiagnosesHeader:"Valitut diagnoosit",mainDiagnosisSearchErrorMessage:"Diagnoosien hakeminen epäonnistui",mainDiagnosisSearchNoResults:"Ei hakutuloksia",mainDiagnosisSearchResetSelectedDiagnoses:"Tyhjennä valitut diagnoosit",mainDiagnosisSearchSelectAllSearchResults:"Valitse kaikki hakutulokset",dashboardLinksHeader:"Region Dashboard -näkymät",dashboardLinksLoadingCancel:"Region-Dashboard linkkien lataaminen peruutettiin",dashboardLinksLoadingError:"Region-Dashboard linkkien lataaminen epäonnistui",dashboardLinkCostsHeader:"Kustannukset",dashboardLinkCostsMunicipality:"Näytä kunnan {0} kustannukset",dashboardLinkCostsZipCode:"Näytä postinumeroalueen {0} kustannukset",dashboardLinkCostsPerCitizenHeader:"Kustannukset asukasta kohti",dashboardLinkCostsPerCitizenMunicipality:"Näytä kunnan {0} kustannukset asukasta kohti ",dashboardLinkCostsPerCitizenZipCode:"Näytä postinumeroalueen {0} kustannukset asukasta kohti",selectOnlySearchResults:"Valitse vain kaikki hakutulokset",resetSelections:"Palauta valinnat",useAsCohortFilterLabel:"Käytä osuussuodattimena",useAsDynamicFilterLabel:"Käytä dynaamisena suodattimena",contactTypeFilterLabel:"Yhteystapa",contactTypeFilterActive:"Yhteystapasuodatin vaikuttaa tähän karttatasoon",contactTypeFilterInActive:"Yhteystapasuodatin ei vaikuta tähän karttatasoon",contactTypeFilterLoading:"Ladataan yhteystapasuodatinta ...",contactTypeFilterLoadingFail:"Yhteystapasuodattimen lataaminen epäonnistui",contactTypeFilterLoadingAbort:"Yhteystapasuodattimen lataaminen keskeytettiin",servKindsTypesFilterName:"Palvelumuotosuodatin",serviceKindsFilterHeader:"Palvelumuoto",servKindsFilterIsActive:"Palvelumuotosuodatin vaikuttaa tähän karttatasoon",servKindsFilterIsInactive:"Palvelumuotosuodatin ei vaikuta tähän karttatasoon",servKindsFilterLoading:"Ladataan palvelumuotosuodatinta...",servKindsFilterLoadingFail:"Palvelumuotosuodattimen lataaminen epäonnistui",servKindsFilterLoadingAbort:"Palvelumuotosuodattimen lataaminen keskeytettiin",customerVisitsLegendNoVisits:"Ei suoritteita",customerVisitsLegendTooFewVisits:"Alle {0} tai ei suoritteita",customerVolumesLegendNoCustomers:"Ei asiakkaita",customerVolumesLegendTooFewCustomers:"Alle {0} tai ei asiakkaita",providerCostsLegendNoCosts:"Ei kustannuksia",providerCostsLegendTooFewVisits:"Ei kustannuksia tai alle {0} suoritetta",paavoPTLegendDataNotAvailable:"Työllisyysprosentti ei saatavilla",paavoHELegendDataNotAvailable:"Keski-ikä ei saatavilla",paavo_he_men:"Miehet",paavo_he_women:"Naiset",paavo_he_age_0_2:"0-2",paavo_he_age_3_6:"3-6",paavo_he_age_7_12:"7-12",paavo_he_age_13_15:"13-15",paavo_he_age_16_17:"16-17",paavo_he_age_18_19:"18-19",paavo_he_age_20_24:"20-24",paavo_he_age_25_29:"25-29",paavo_he_age_30_34:"30-34",paavo_he_age_35_39:"35-39",paavo_he_age_40_44:"40-44",paavo_he_age_45_49:"45-49",paavo_he_age_50_54:"50-54",paavo_he_age_55_59:"55-59",paavo_he_age_60_64:"60-64",paavo_he_age_65_69:"65-69",paavo_he_age_70_74:"70-74",paavo_he_age_75_79:"75-79",paavo_he_age_80_84:"80-84",paavo_he_age_85_:"85-",paavo_pt_work_force:"Työvoima",paavo_pt_employed:"Työlliset",paavo_pt_unemployed:"Työttömät",paavo_pt_outside_work_force:"Työvoiman ulkopuolella olevat",paavo_pt_children:"Lapset 0-14 vuotiaat",paavo_pt_students:"Opiskelijat",paavo_pt_pensioners:"Eläkeläiset",paavo_pt_others:"Muut (työvoiman ulkopuolella olevat)",extraBaseLayersDigiroadPublicTransportStops:"Joukkoliikenteen pysäkki (Digiroad), myös käyttämättömät",extraBaseLayersTrafficBureau:"Julkinen liikenne",extraBaseLayersPaavoData:"Tilastokeskus: Paavo",extraBaseLayersPaavoPT:"Pääasiallinen toiminta",extraBaseLayersPaavoHE:"Asukasrakenne",extraBaseLayersStatisticsFinland:"Tilastokeskus: Muut",extraBaseLayersPopulationDensity:"Väestötiheys",extraBaseLayersParamsPublicTransportStopsLegendTitle:"Joukkoliikenteen pysäkit",extraBaseLayersParamsPublicTransportStopsLegendCustomMessage:"Seuraavat pysäkkien merkit ilmestyvät kartalle, kun lähennät näkymää tarpeeksi.",extraBaseLayersPopulationDensityLegendCustomMessage:"",extraBaseLayersPopulationDensityLegendTitle:"Väestötiheys ruuduittain",agefilter_header:"Ikäluokat (Tilastokeskus)",agefilter_ageGroup00:"0-vuotiaat",agefilter_ageGroup01:"1-6-vuotiaat",agefilter_ageGroup02:"7-14-vuotiaat",agefilter_ageGroup03:"15-49-vuotiaat",agefilter_ageGroup04:"50-64-vuotiaat",agefilter_ageGroup05:"65-74-vuotiaat",agefilter_ageGroup06:"75-84-vuotiaat",agefilter_ageGroup07:"85-vuotiaat ja vanhemmat",agefilter_ageGroup99:"Ikä tuntematon",genderfilter_header:"Sukupuoli",genderfilter_1:"Miehet",genderfilter_2:"Naiset",genderfilter_3:"Muut",servicegroups_header:"Tietopaketit",aura_header:"AURA-palveluluokat"},sv:{monthAbbreviation:"kk (sv)",errorCouldNotLoadTranslationWithLocalizationKey:"(Käännöstä ei voitu ladata) (sv)",mainMenuButtonLabel:"Päävalikko (sv)",mainMenuFilters:"Suodattimet (sv)",mainMenuMapLayers:"Karttatasot (sv)",mainMenuMapLayersDragHandleTooltip:"Järjestä karttatasoja raahaamalla tästä (sv)",mainMenuMapLayersRestoreDefaultOrder:"Palauta oletusjärjestys (sv)",mainMenuServiceProviders:"Toimipaikat (sv)",mainMenuCustomerVolumes:"Asiakasmäärät (sv)",mainMenuCustomerVisits:"Suoritteet (sv)",mainMenuServiceProviderCosts:"Kustannukset (sv)",mainMenuServiceProviderAccessibility:"Saavutettavuus linnuntietä pitkin(sv)",mainMenuServiceProviderAccessibilityByRoad:"Saavutettavuus tieverkostoa pitkin (sv)",mainMenuExtraBaseLayers:"Muut karttatasot (sv)",extraBaseLayersTreeLoadingMessage:"Ladataan valittavien karttatasojen puuta... (sv)",extraBaseLayersTreeLoadingMessageError:"Valittavien karttatasojen puun lataaminen epäonnistui (sv)",extraBaseLayersTreeLoadingMessageCancel:"Valittavien karttatasojen puun lataaminen peruutettiin (sv)",mainMenuServiceProvidersHelp:"Näyttää toimipaikat kartalla karttamerkkeinä. Klikkaamalla toimipaikkaa saa näkyville yksittäisten toimiyksiköiden perustiedot. (sv)",mainMenuCustomerVolumesHelp:"Näyttää asiakasmääriä alueittain. Katso värien selitteet Karttaselitteet-välilehdeltä. (sv)",mainMenuCustomerVisitsHelp:"Näyttää suoritteita alueittain. Katso värien selitteet Karttaselitteet-välilehdeltä. (sv)",mainMenuServiceProviderCostsHelp:"Näyttää valitulta alueelta viivat niihin toimipaikkoihin, joihin alueelta on kohdistunut kuluja. (sv)",mainMenuServiceProviderAccessibilityHelp:"Näyttää toimipaikkojen saavutettavuutta väestöruuduittain. Ruutu värjäytyy sen mukaan, kuinka paljon asukkaita kussakin ruudussa on ja kuinka lähellä toimipaikat sijaitsevat. Katso värien selitteet Karttaselitteet-välilehdeltä. (sv)",mainMenuServiceProviderAccessibilityByRoadHelp:"Näyttää toimipaikkojen saavutettavuutta tieverkostoa pitkin. (sv)",mainMenuExtraBaseLayersHelp:"Sisältää muista lähteistä tuotavat karttatasot. (sv)",cloneAppButtonLabel:"Kopioi valinnat (sv)",cloneAppButtonTooltip:"Avaa uusi kopio tästä ikkunasta (sv)",userManualButtonOpenLabel:"Ohje (sv)",userManualButtonCloseLabel:"Sulje ohje (sv)",userManualButtonOpenTooltip:"Avaa käyttöohjeen uuteen ikkunaan (sv)",userManualButtonCloseTooltip:"Sulkee uuteen ikkunaan avatun käyttöohjeen (sv)",systemInfoButtonOpenLabel:"Tietoja (sv)",systemInfoButtonCloseLabel:"Sulje tiedot (sv)",systemInfoButtonOpenTooltip:"Näyttää perustietoja järjestelmästä (sv)",systemInfoButtonCloseTooltip:"Sulkee järjestelmän perustiedot näkyvistä (sv)",systemInfoGeneralHeader:"Yleiset tiedot (sv)",systemInfoGeospatialDataLicensesHeader:"Kartta-aineistojen lisenssit (sv)",systemInfoGeospatialDataLicensesShowLabel:"Näytä kartta-aineistojen lisenssit (sv)",systemInfoGeospatialDataLicensesHideLabel:"Piilota kartta-aineistojen lisenssit (sv)",systemInfoVersionGIS:"Logex Region GIS-käyttöliittymän versio (sv)",systemInfoVersionGISBackend:"Logex Region GIS-taustajärjestelmän versio (sv)",systemInfoVersionPR:"Logex Region -versio (sv)",systemInfoVersionAPI:"Rajapintapalvelun versio (sv)",systemInfoDataLastLoaded:"Data päivitetty viimeksi (sv)",systemInfoSystemStatus:"Järjestelmän status (sv)",systemInfoDataRowCount:"Rivien määrä datassa (sv)",systemInfoInstancePRName:"Järjestelmän nimi (sv)",systemInfoTechnicalImplementation:"Tekninen toteutus (sv)",systemInfoLoading:"Ladataan yleisiä tietoja... (sv)",systemInfoLoadingCancelled:"Yleisten tietojen lataaminen peruutettiin (sv)",systemInfoLoadingFailed:"Yleisten tietojen lataaminen epäonnistui (sv)",systemInfoGeospatialDataInfo:"Kuvaus (sv)",systemInfoGeospatialDataLicense:"Lisenssi (sv)",systemInfoGeospatialDataVersion:"Aineistoversio (sv)",systemInfoGeospatialDataLicensesLoading:"Ladataan lisenssien tietoja... (sv)",systemInfoGeospatialDataLicensesLoadingCancelled:"Lisenssien tietojen lataaminen peruutettiin (sv)",systemInfoGeospatialDataLicensesLoadingFailed:"Lisenssien tietojen lataaminen epäonnistui (sv)",captureScreenButtonLabel:"Ruutu­kaappaus (sv)",captureScreenButtonTooltip:"Ottaa ruutukaappauksen sivun sisällöstä ja tarjoaa sen tallennettavaksi (sv)",captureScreenButtonIEAndEdgeNotification:"Ruutukaappaustoiminto suoritetaan tämän ilmoituksen sulkeutumisen jälkeen.\n\nHuomioi, että käyttämäsi selain (IE/Edge) ei tue kunnolla ruutukaappaustoimintoa.\n\nTarkista tallentamasi kuvan oikeellisuus!\n\nVinkki: Mikäli mahdollista, kannattaa käyttää eri selainta (Chrome, Firefox).\nSelaimesta riippumatta parhaan tuloksen saa käyttämällä Windowsin Ruutukaappaustyökalua (Snipping Tool).\n\n(sv)",bookmarkButtonLabel:"Kirjan­merkki (sv)",bookmarkButtonCloseLabel:"Sulje kirjanmerkit (sv)",boomarkNameLabel:"Kirjanmerkin nimi (pakollinen) (sv)",bookmarkSaveAsFileLabel:"Tallenna kirjanmerkki tiedostona (sv)",bookmarkSaveLabel:"Tallenna (sv)",bookmarkSaveSuccess:"Kirjanmerkin tallennus onnistui! (sv)",bookmarkSaveFail:"Kirjanmerkin tallennus epäonnistui! (sv)",bookmarkSaveBookmark:"Tallenna kirjanmerkki (sv)",bookmarkShowBookmarks:"Näytä kirjanmerkit (sv)",bookmarkButtonTipLabel:"Tarkastele ja tallenna uusia kirjanmerkkejä (sv)",bookmarkRemoveTipLabel:"Poista kirjanmerkki (sv)",bookmarkRemoveConfirmation:"Haluatko varmasti poistaa kirjanmerkin {0}? (sv)",bookmarkOpenTipLabel:"Avaa kirjanmerkin tila uuteen ikkunaan (sv)",bookmarkExportTipLabel:"Vie kirjanmerkki (sv)",bookmarkImportTipLabel:"Tuo kirjanmerkki (sv)",bookmarkOpenFailed:"Kirjanmerkin avaamisessa tapahtui virhe ja se epäonnistui. Kirjanmerkin versio: {0}. Nykyinen versio: {1} (sv)",bookmarkOpenConversionFound:"Avaamasi kirjanmerkki on tallennettu sovelluksen versiossa {0}, kun tämänhetkinen versio on {1}. Yritämme muokata kirjanmerkin tilaa yhteensopivaksi, mutta muokatussa tilassa saattaa esiintyä ongelmia (sv).",infoAreaTabInitialContent:"Kartalla näkyvien elementtien selitteet näkyvät tässä välilehdessä. (sv)",costsGroupedByServiceProviderOfficeNoResults:"Suoritteita ei löytynyt (sv)",costsGroupedByServiceProviderOfficeTooFewResults:"Alle {0} tai ei suoritteita (sv)",costsGroupedByServiceProviderOfficeLegendDescription:"Viivojen paksuus kertoo kustannusten suoritemäärästä: mitä paksumpi viiva, sitä enemmän suoritteita.\n\nViivojen väri kertoo suoritekohtaisista kustannuksista: mitä tummempi väri, sitä isompi suoritekohtainen kustannus. (sv)",costsGroupedByServiceProviderUnitNoResults:"Suoritteita ei löytynyt (sv)",costsGroupedByServiceProviderUnitTooFewResults:"Alle {0} tai ei suoritteita (sv)",costsGroupedByZipCodeNoResults:"Suoritteita ei löytynyt (sv)",costsGroupedByZipCodeLegendLoadingText:"Kustannukset: Ladataan suoritteiden kustannuksia... (sv)",costsGroupedByZipCodeLegendLoadingTextSuccess:"Kustannukset: Suoritteiden kustannusten lataaminen onnistui (sv)",costsGroupedByZipCodeLegendLoadingTextError:"Kustannukset: Suoritteiden kustannusten lataaminen epäonnistui (sv)",costsGroupedByZipCodeLegendLoadingTextCancel:"Kustannukset: Suoritteiden kustannusten lataaminen peruutettiin (sv)",costsGroupedByZipCodeLegendTextTotal:"Suoritteiden kokonaiskustannus (€) (sv)",costsGroupedByZipCodeLegendTextAverage:"Suoritteiden keskikustannus (€) (sv)",costsGroupedByZipCodeLegendTextTotalCohort:"Suoritteiden kokonaiskustannus (€) (osuussuodattimessa valittujen prosenttiosuus) (sv)",costsGroupedByZipCodeLegendTextRelativeToPopulation:"Alueen asukaslukuun suhteutetut kustannukset (€) (sv)",costsGroupedByZipCodeLegendTextRelativeToCustomers:"Alueen asiakasmäärään suhteutetut kustannukset (€) (sv)",tabCustomerDemographicsLabel:"Asiakasdemografiat (sv)",tabProviderCostsLabel:"Postinumeroalueen kustannukset (sv)",tabProviderCostsWithinAddressLabel:"Toimipaikan kustannukset (sv)",tabLegendsLabel:"Karttaselitteet (sv)",tabPaavoHEData:"Paavo: Asukasrakenne (sv)",tabPaavoPTData:"Paavo: Pääasiallinen toiminta (sv)",mapPanNorthTooltip:"Siirrä ylös (sv)",mapPanWestTooltip:"Siirrä vasemmalle (sv)",mapPanEastTooltip:"Siirrä oikealle (sv)",mapPanSouthTooltip:"Siirrä alas (sv)",mapZoomInTooltip:"Lähennä (sv)",mapZoomOutTooltip:"Loitonna (sv)",filterIsActiveSuffix:" -suodatin vaikuttaa tähän karttatasoon (sv)",filterIsInactiveSuffix:" -suodatin ei vaikuta tähän karttatasoon (sv)",agegroupFilterName:"Ikäsuodatin (sv)",agegroupFilterIsActive:"Ikäsuodatin vaikuttaa tähän karttatasoon (sv)",agegroupFilterIsInactive:"Ikäsuodatin ei vaikuta tähän karttatasoon (sv)",maindiagnosesFilterName:"Päädiagnoosi (ICD-10) tai käynnin 1. syy (ICPC) (sv)",maindiagnosesFilterIsActive:"Päädiagnoosi (ICD-10) tai käynnin 1. syy (ICPC) -suodatin vaikuttaa tähän karttatasoon (sv)",maindiagnosesFilterIsInactive:"Päädiagnoosi (ICD-10) tai käynnin 1. syy (ICPC) -suodatin ei vaikuta tähän karttatasoon (sv)",eprgroupFilterName:"EPR-ryhmä-suodatin (sv)",eprgroupFilterIsActive:"EPR-ryhmä-suodatin vaikuttaa tähän karttatasoon (sv)",eprgroupFilterIsInactive:"EPR-ryhmä-suodatin ei vaikuta tähän karttatasoon (sv)",areamdcFilterName:"Alue-MDC (ICD10 tai ICPC2)-suodatin (sv)",areamdcFilterIsActive:"Alue-MDC (ICD10 tai ICPC2)-suodatin vaikuttaa tähän karttatasoon (sv)",areamdcFilterIsInactive:"Alue-MDC (ICD10 tai ICPC2)-suodatin ei vaikuta tähän karttatasoon (sv)",genderFilterName:"Sukupuolisuodatin (sv)",genderFilterIsActive:"Sukupuolisuodatin vaikuttaa tähän karttatasoon (sv)",genderFilterIsInactive:"Sukupuolisuodatin ei vaikuta tähän karttatasoon (sv)",serviceproviderFilterName:"Tuottavat yksiköt -suodatin (sv)",serviceproviderFilterIsActive:"Tuottavat yksiköt -suodatin vaikuttaa tähän karttatasoon (sv)",serviceproviderFilterIsInactive:"Tuottavat yksiköt -suodatin ei vaikuta tähän karttatasoon (sv)",municipalityFilterName:"Kotikuntasuodatin (sv)",municipalityFilterRootLabel:"Kotikunta (sv)",municipalityFilterOthersLabel:"Muut (sv)",municipalityFilterIsActive:"Kotikuntasuodatin vaikuttaa tähän karttatasoon (sv)",municipalityFilterIsInactive:"Kotikuntasuodatin ei vaikuta tähän karttatasoon (sv)",municipalityFilterNoResults:"Kuntia ei löytynyt (sv)",timesliderFilterName:"Aikavälisuodatin (sv)",timesliderFilterIsActive:"Aikavälisuodatin vaikuttaa tähän karttatasoon (sv)",timesliderFilterIsInactive:"Aikavälisuodatin ei vaikuta tähän karttatasoon (sv)",timesliderSelectionText:"Valittu aikaväli: (sv)",timesliderDragLeft:"Siirrä valittua aikaväliä vasemmalle (sv)",timesliderDragRight:"Siirrä valittua aikaväliä oikealle (sv)",basicServiceTypesFilterHeader:"Perussuoritelaji (sv)",basicServiceTypesFilterName:"Perussuoritelajisuodatin (sv)",basicServiceTypesFilterIsActive:"Perussuoritelajisuodatin vaikuttaa tähän karttatasoon (sv)",basicServiceTypesFilterIsInactive:"Perussuoritelajisuodatin ei vaikuta tähän karttatasoon (sv)",basicServiceTypesListFetchLoadingMessage:"Ladataan perussuoritelajisuodatinta... (sv)",basicServiceTypesListFetchCancelledMessage:"Perussuoritelajisuodattimen lataaminen peruutettiin (sv)",basicServiceTypesListFetchFailedMessage:"Perussuoritelajisuodattimen lataaminen epäonnistui (sv)",serviceTypesFilterHeader:"Suoritelaji (esh, pth, sos) (sv)",serviceTypesFilterName:"Suoritelaji (esh, pth, sos) -suodatin (sv)",serviceTypesFilterIsActive:"Suoritelaji (esh, pth, sos) -suodatin vaikuttaa tähän karttatasoon (sv)",serviceTypesFilterIsInactive:"Suoritelaji (esh, pth, sos) -suodatin ei vaikuta tähän karttatasoon (sv)",serviceTypesListFetchLoadingMessage:"Ladataan Suoritelaji (esh, pth, sos) -suodatinta... (sv)",serviceTypesListFetchCancelledMessage:"Suoritelaji (esh, pth, sos) -suodattimen lataaminen peruutettiin (sv)",serviceTypesListFetchFailedMessage:"Suoritelaji (esh, pth, sos) -suodattimen lataaminen epäonnistui (sv)",contacttypes_header:"Yhteystapa (sv)",contactTypeFilter_E:"Etäkontaktit (sv)",contactTypeFilter_L:"Lähikontaktit (sv)",contactTypeFilter_M:"Muut kontaktit (sv)",zipCodesFilterHeader:"Asuinpaikka (sv)",zipCodesFilterName:"Asuinpaikka -suodatin (sv)",zipCodesFilterIsActive:"Asuinpaikka -suodatin vaikuttaa tähän karttatasoon (sv)",zipCodesFilterIsInactive:"Asuinpaikka -suodatin ei vaikuta tähän karttatasoon (sv)",zipCodesFilterNoResults:"Asuinpaikkoja ei löytynyt (sv)",zipCodesFilterLoadingText:"Ladataan asuinpaikkasuodatinta... (sv)",zipCodesFilterLoadingTextSuccess:"Asuinpaikkasuodattimen lataaminen onnistui (sv)",zipCodesFilterLoadingTextError:"Asuinpaikkasuodattimen lataaminen epäonnistui (sv)",zipCodesFilterLoadingTextCancel:"Asuinpaikkasuodattimen lataaminen peruutettiin (sv)",urgencyTypesFilterHeader:"Kiireellisyys (sv)",urgencyTypesFilterName:"Kiireellisyyssuodatin (sv)",urgencyTypesFilterIsActive:"Kiireellisyyssuodatin vaikuttaa tähän karttatasoon (sv)",urgencyTypesFilterIsInactive:"Kiireellisyyssuodatin ei vaikuta tähän karttatasoon (sv)",urgencyTypesListFetchLoadingMessage:"Ladataan Kiireellisyyssuodatinta... (sv)",urgencyTypesListFetchCancelledMessage:"Kiireellisyyssuodattimen lataaminen peruutettiin (sv)",urgencyTypesListFetchFailedMessage:"Kiireellisyyssuodattimen lataaminen epäonnistui (sv)",thlndgGroupsFilterHeader:"THL-kansantautiryhmä (sv)",thlndgGroupsFilterName:"THL-kansantautiryhmäsuodatin (sv)",thlndgGroupsFilterIsActive:"THL-kansantautiryhmäsuodatin vaikuttaa tähän karttatasoon (sv)",thlndgGroupsFilterIsInactive:"THL-kansantautiryhmäsuodatin ei vaikuta tähän karttatasoon (sv)",thlndgGroupsListFetchLoadingMessage:"Ladataan THL-kansantautiryhmäsuodatinta... (sv)",thlndgGroupsListFetchCancelledMessage:"THL-kansantautiryhmäsuodattimen lataaminen peruutettiin (sv)",thlndgGroupsListFetchFailedMessage:"THL-kansantautiryhmäsuodattimen lataaminen epäonnistui (sv)",thldgGroupsFilterHeader:"THL-sairausluokka (sv)",thldgGroupsFilterName:"THL-sairausluokkasuodatin (sv)",thldgGroupsFilterIsActive:"THL-sairausluokkasuodatin vaikuttaa tähän karttatasoon (sv)",thldgGroupsFilterIsInactive:"THL-sairausluokkasuodatin ei vaikuta tähän karttatasoon (sv)",thldgGroupsListFetchLoadingMessage:"Ladataan THL-sairausluokkasuodatinta... (sv)",thldgGroupsListFetchCancelledMessage:"THL-sairausluokkasuodattimen lataaminen peruutettiin (sv)",thldgGroupsListFetchFailedMessage:"THL-sairausluokkasuodattimen lataaminen epäonnistui (sv)",visitKindsFilterHeader:"Käynnin luonne (sv)",visitKindsFilterName:"Käynnin luonne -suodatin (sv)",visitKindsFilterIsActive:"Käynnin luonne -suodatin vaikuttaa tähän karttatasoon (sv)",visitKindsFilterIsInactive:"Käynnin luonne -suodatin ei vaikuta tähän karttatasoon (sv)",visitKindsListFetchLoadingMessage:"Ladataan Käynnin luonne -suodatinta... (sv)",visitKindsListFetchCancelledMessage:"Käynnin luonne -suodattimen lataaminen peruutettiin (sv)",visitKindsListFetchFailedMessage:"Käynnin luonne -suodattimen lataaminen epäonnistui (sv)",personnelTypesFilterHeader:"Ammatti (sv)",personnelTypesFilterName:"Ammattisuodatin (sv)",personnelTypesFilterIsActive:"Ammattisuodatin vaikuttaa tähän karttatasoon (sv)",personnelTypesFilterIsInactive:"Ammattisuodatin ei vaikuta tähän karttatasoon (sv)",personnelTypesListFetchLoadingMessage:"Ladataan Ammattisuodatinta... (sv)",personnelTypesListFetchCancelledMessage:"Ammattisuodattimen lataaminen peruutettiin (sv)",personnelTypesListFetchFailedMessage:"Ammattisuodattimen lataaminen epäonnistui (sv)",sosServiceDutiesFilterHeader:"Sosiaalihuollon palvelutehtävä (sv)",sosServiceDutiesFilterName:"Sosiaalihuollon palvelutehtäväsuodatin (sv)",sosServiceDutiesFilterIsActive:"Sosiaalihuollon palvelutehtäväsuodatin vaikuttaa tähän karttatasoon (sv)",sosServiceDutiesFilterIsInactive:"Sosiaalihuollon palvelutehtäväsuodatin ei vaikuta tähän karttatasoon (sv)",sosServiceDutiesListFetchLoadingMessage:"Ladataan Sosiaalihuollon palvelutehtäväsuodatinta... (sv)",sosServiceDutiesListFetchCancelledMessage:"Sosiaalihuollon palvelutehtäväsuodattimen lataaminen peruutettiin (sv)",sosServiceDutiesListFetchFailedMessage:"Sosiaalihuollon palvelutehtäväsuodattimen lataaminen epäonnistui (sv)",sosServicesFilterHeader:"Sosiaalipalvelu (sv)",sosServicesFilterName:"Sosiaalipalvelusuodatin (sv)",sosServicesFilterIsActive:"Sosiaalipalvelusuodatin vaikuttaa tähän karttatasoon (sv)",sosServicesFilterIsInactive:"Sosiaalipalvelusuodatin ei vaikuta tähän karttatasoon (sv)",sosServicesListFetchLoadingMessage:"Ladataan Sosiaalipalvelusuodatinta... (sv)",sosServicesListFetchCancelledMessage:"Sosiaalipalvelusuodattimen lataaminen peruutettiin (sv)",sosServicesListFetchFailedMessage:"Sosiaalipalvelusuodattimen lataaminen epäonnistui (sv)",selectionToolbarUndoText:"Kumoa valinta (sv)",selectionToolbarUndoTooltip:"Kumoa valinta (sv)",selectionToolbarRedoText:"Toista valinta (sv)",selectionToolbarRedoTooltip:"Toista valinta (sv)",selectionToolbarRemoveAllText:"Tyhjennä kaikki (sv)",selectionToolbarRemoveAllTooltip:"Tyhjennä kaikki valinnat (sv)",selectionToolbarResetAllText:"Poista rajaukset (sv)",selectionToolbarResetAllTooltip:"Poista kaikki rajaukset (sv)",selectedZipCodeRegionDashboardViews:"Region Dashboard -näkymät (sv)",selectedZipCodeShowMunicipalityCosts:"Näytä kunnan {0} kustannukset (sv)",selectedZipCodeShowMunicipalityCostsPerCitizen:"Näytä kunnan {0} kustannukset per asukas (sv)",selectedZipCodeBelongsToMunicipalityWithNameAndCode:"{0} kuuluu kuntaan {1} ({2}) (sv)",selectedZipCodeArea:"Postinumeroalue {0} {1} (sv)",serviceProviderTreeContainerLabel:"Tuottavat yksiköt (sv)",serviceProviderTreeContainerLoadingMessage:"Ladataan Tuottavat yksiköt -suodatinta... (sv)",serviceProviderTreeContainerLoadingMessageError:"Tuottavat yksiköt -suodattimen lataaminen epäonnistui (sv)",serviceProviderTreeContainerLoadingMessageCancel:"Tuottavat yksiköt -suodattimen lataaminen peruutettiin (sv)",serviceProviderFilterNoResults:"Ei hakutuloksia (sv)",serviceGroupsFilterName:"Tietopaketit -suodatin (sv)",serviceGroupsTreeContainerLabel:"Tietopaketit (sv)",serviceGroupsTreeContainerLoadingMessage:"Ladataan tietopaketit -suodatinta... (sv)",serviceGroupsTreeContainerLoadingMessageError:"Tietopaketit -suodattimen lataaminen epäonnistui (sv)",serviceGroupsTreeContainerLoadingMessageCancel:"Tietopaketit -suodattimen lataaminen peruutettiin (sv)",serviceGroupsFilterNoResults:"Ei hakutuloksia (sv)",serviceProvidersPopupShowServiceUnitsInAddress:"Näytä tuottavat yksiköt osoitteessa {0} (sv)",serviceProvidersPopupAddressLabel:"Osoite (sv)",serviceProvidersPopupServiceUnitsLabel:"Tuottava yksiköt (sv)",serviceProvidersPopupCommitServiceProviderSelection:"Suodata vain valitut tuottavat yksiköt (sv)",timeSliderLoadingInfo:"Ladataan aikavälisuodatinta näkyville... (sv)",timeSliderLoadingError:"Aikavälisuodattimen lataaminen epäonnistui (sv)",timeSliderLoadingCancel:"Aikavälisuodattimen lataaminen peruutettiin (sv)",timeSliderHeading:"Aikavälisuodatin (sv)",timeSliderSelectedTimeSpan:"Valittu aikaväli: (sv)",timeSliderSelectedTimeSpanFormat:"DD.MM.YYYY",customersGenderListContainerLoadingMessage:"Ladataan sukupuolisuodatinta... (sv)",customersGenderListContainerLoadingFailedMessage:"Sukupuolisuodattimen lataaminen epäonnistui (sv)",customersGenderListContainerLoadingCancelMessage:"Sukupuolisuodattimen lataaminen peruutettiin (sv)",customersEPRListContainerHeader:"EPR-ryhmä (sv)",customersEPRListContainerLoadingMessage:"Ladataan EPR-ryhmä-suodatinta... (sv)",customersEPRListContainerLoadingFailedMessage:"EPR-ryhmä-suodattimen lataaminen epäonnistui (sv)",customersEPRListContainerLoadingCancelMessage:"EPR-ryhmä-suodattimen lataaminen peruutettiin (sv)",customersAreaMDCListContainerHeader:"Alue-MDC (ICD10 tai ICPC2) (sv)",customersAreaMDCListContainerLoadingMessage:"Alue-MDC (ICD10 tai ICPC2)-suodatinta... (sv)",customersAreaMDCListContainerLoadingFailedMessage:"Alue-MDC (ICD10 tai ICPC2)-suodattimen lataaminen epäonnistui (sv)",customersAreaMDCListContainerLoadingCancelMessage:"Alue-MDC (ICD10 tai ICPC2)-suodattimen lataaminen peruutettiin (sv)",customersAgeGroupListContainerLoadingMessage:"Ladataan ikäryhmäsuodatinta... (sv)",customersAgeGroupListContainerLoadingFailedMessage:"Ikäryhmäsuodattimen lataaminen epäonnistui (sv)",customersAgeGroupListContainerLoadingCancelMessage:"Ikäryhmäsuodattimen lataaminen peruutettiin (sv)",customerVisitsLegendTextAbsolute:"Suoritteet (kpl) (sv)",customerVisitsLegendTextRelativeToPopulation:"Suoritteet (per asukas) (sv)",customerVisitsLegendTextRelativeToCustomers:"Suoritteet (per asiakas) (sv)",customerVisitsNoResults:"Suoritteita ei löytynyt (sv)",customerVisitsLegendTextCohortAbsolute:"Suoritteet (kpl) (osuussuodattimessa valittujen prosenttiosuus) (sv)",customerVisitsLayerLoadingText:"Suoritteet: Ladataan postinumeroalueita näkyville... (sv)",customerVisitsLayerLoadingTextSuccess:"Suoritteet: Postinumeroalueiden lataaminen onnistui (sv)",customerVisitsLayerLoadingTextError:"Suoritteet: Postinumeroalueiden lataaminen epäonnistui (sv)",customerVisitsLayerLoadingTextCancel:"Suoritteet: Postinumeroalueiden lataaminen peruutettiin (sv)",customerVisitsDataLoadingText:"Suoritteet: Päivitetään suoritemääriä... (sv)",customerVisitsDataLoadingTextSuccess:"Suoritteet: Suoritemäärien päivittäminen onnistui (sv)",customerVisitsDataLoadingTextError:"Suoritteet: Suoritemäärien päivittäminen epäonnistui (sv)",customerVisitsDataLoadingTextCancel:"Suoritteet: Suoritemäärien päivittäminen peruutettiin (sv)",customerVisitsPopupShowCustomerVisitsInZipCodeArea:"Näytä suoritteet postinumeroalueella {0} (sv)",customerVisitsPopupZipCodeAreaLabel:"Postinumeroalue (sv)",customerVisitsPopupCustomerVisitsLabel:"Postinumeroalueen suoritteet (sv)",customerVisitsPopupPopulationRelativeCustomerVisitsLabel:"Alueen suoritteet per asukas (sv)",customerVisitsPopupCustomerRelativeCustomerVisitsLabel:"Alueen suoritteet per asiakas (sv)",customerVisitsPopupCohortCustomerVisitsLabel:"Osuussuodattimen mukainen suoritemäärä (sv)",customerVisitsValueTypeAbsolute:"Suoritteiden määrä (sv)",customerVisitsValueTypeRelativeToPopulation:"Suoritteet per asukas (sv)",customerVisitsValueTypeRelativeToCustomers:"Suoritteet per asiakas (sv)",accessibilityCatchmentDataLoadingInfo:"Saavutettavuus tieverkostoa pitkin: Ladataan... (sv)",accessibilityCatchmentDataLoadingSuccess:"Saavutettavuus tieverkostoa pitkin: Lataaminen onnistui (sv)",accessibilityCatchmentDataLoadingError:"Saavutettavuus tieverkostoa pitkin: Lataaminen epäonnistui (sv)",accessibilityCatchmentDataLoadingCancel:"Saavutettavuus tieverkostoa pitkin: Lataaminen peruutettiin (sv)",accessibilityLegendText:"Toimipaikkojen saavutettavuus tieverkostoa pitkin (sv)",accessibilityLegendAdditionalInfoShow:"Näytä lisätiedot (sv)",accessibilityLegendAdditionalInfoHide:"Piilota lisätiedot (sv)",accessibilityLegendAdditionalInfo:"Saavutettavuusajat on laskettu tieverkostoa pitkin (kesä)nopeusrajoituksia noudattaen. Mikäli (kesä)nopeusrajoitus ei ole tiedossa, laskennassa käytetään nopeutena 40 km/h. Tieverkostona on käytetty Väyläviraston Digiroad K -aineistoa, {0}. Värjäämätön osuus kartasta on yli 30 minuuttia. (sv)",accessibilityLegendCatchmentInfo:"Alle {0} (sv)",accessibilityByAirLoadingInfo:"Saavutettavuus linnuntietä pitkin: Ladataan... (sv)",accessibilityByAirLoadingSuccess:"Saavutettavuus linnuntietä pitkin: Lataaminen onnistui (sv)",accessibilityByAirLoadingError:"Saavutettavuus linnuntietä pitkin: Lataaminen epäonnistui (sv)",accessibilityByAirLoadingCancel:"Saavutettavuus linnuntietä pitkin: Lataaminen peruutettiin (sv)",extraBaseLayersDataLoadingInfo:"Muut karttatasot: Ladataan... (sv)",extraBaseLayersDataLoadingSuccess:"Muut karttatasot: Lataaminen onnistui (sv)",extraBaseLayersDataLoadingError:"Muut karttatasot: Lataaminen epäonnistui (sv)",extraBaseLayersDataLoadingCancel:"Muut karttatasot: Lataaminen peruutettiin (sv)",serviceCostsZipCodeLoadingInfo:"Kustannukset: Ladataan postinumeroalueita näkyville... (sv)",serviceCostsZipCodeLoadingSuccess:"Kustannukset: Postinumeroalueiden lataus onnistui (sv)",serviceCostsZipCodeLoadingError:"Kustannukset: Postinumeroalueiden lataus epäonnistui (sv)",serviceCostsZipCodeLoadingCancel:"Kustannukset: Postinumeroalueiden lataus peruutettiin (sv)",serviceCostsCostLineLoadingInfo:"Kustannukset: Ladataan kustannuksia postinumeroalueelta... (sv)",serviceCostsCostLineLoadingSuccess:"Kustannukset: Postinumeroalueen kustannusten lataus onnistui (sv)",serviceCostsCostLineLoadingError:"Kustannukset: Postinumeroalueen kustannusten lataus epäonnistui (sv)",serviceCostsCostLineLoadingCancel:"Kustannukset: Postinumeroalueen kustannusten lataus peruutettiin (sv)",serviceCostLineDetailsLoadingInfo:"Kustannukset: Ladataan toimipaikan kustannustietoja... (sv)",serviceCostLineDetailsLoadingSuccess:"Kustannukset: Toimipaikan kustannustietojen lataus onnistui (sv)",serviceCostLineDetailsLoadingError:"Kustannukset: Toimipaikan kustannustietojen lataus epäonnistui (sv)",serviceCostLineDetailsLoadingCancel:"Kustannukset: Toimipaikan kustannustietojen lataus peruutettiin (sv)",serviceCostsValueTypeAbsolute:"Kustannukset (sv)",serviceCostsValueTypeRelativeToPopulation:"Kustannukset per asukas (sv)",serviceCostsValueTypeRelativeToVisits:"Kustannukset per suorite (sv)",serviceCostsValueTypeRelativeToCustomers:"Kustannukset per asiakas (sv)",serviceProviderLayerLoadingInfo:"Toimipaikat: Ladataan... (sv)",serviceProviderLayerLoadingSuccess:"Toimipaikat: Lataaminen onnistui (sv)",serviceProviderLayerLoadingError:"Toimipaikat: Lataaminen epäonnistui (sv)",serviceProviderLayerLoadingCancel:"Toimipaikat: Lataaminen peruutettiin (sv)",municipalityFilterContainerLoadingMessage:"Ladataan kotikuntasuodatinta... (sv)",municipalityFilterContainerLoadingFailedMessage:"Kotikuntasuodattimen lataaminen epäonnistui (sv)",municipalityFilterContainerLoadingCancelMessage:"Kotikuntasuodattimen lataaminen peruutettiin (sv)",populationGridLayerInteractionShowDistance:"Näytä väestöruudun etäisyys lähimpään toimipaikkaan (sv)",selectedGridPopulation:"Ruudun väestömäärä (sv)",selectedGridDistance:"Etäisyys lähimpään toimipaikkaan linnuntietä pitkin (km) (sv)",colorRowDistanceToNearestServiceProvider:"Etäisyys lähimpään toimipaikkaan (km) (sv)",colorMatrixPeopleInGrid:"Ihmisiä ruudussa (sv)",accessibilityByAirUIContainerLegendsColorMatrixTitle:"Toimipaikkojen saavutettavuus linnuntietä pitkin (sv)",costPlotXAttributeText:"Kustannus yhtä suoritetta kohti (sv)",costPlotYAttributeText:"Suoritteet (sv)",costPlotXAttributeUnit:"€ (sv)",costPlotYAttributeUnit:"kpl (sv)",costsWithinAddressSelectableFeature:"Kustannukset osoitteeseen {0} (sv)",costsWithinAddressServiceProviderNameLabel:"Toimiyksikön nimi (sv)",costsWithinAddressServiceProviderHideInfo:"Piilota toimipaikan kustannusten tiedot (sv)",costsWithinAddressServiceProviderShowInfo:"Näytä toimipaikan kustannusten tiedot (sv)",costsWithinAddressServiceProviderCostsAll:"Toimipaikan kustannukset yhteensä (sv)",costsWithinAddressServiceProviderCostsAllValue:"{0} euroa (sv)",costsWithinAddressServiceProviderVolumesAll:"Toimipaikan suoritteet yhteensä (sv)",costsWithinAddressServiceProviderVolumesAllValue:"{0} kpl (sv)",costsWithinAddressPlotHide:"Piilota toimipaikan kustannusten hajontakuvio (sv)",costsWithinAddressPlotShow:"Näytä toimipaikan kustannusten hajontakuvio (sv)",costsWithinAddressInfoLabel:"Huomaathan, että Käytä osuussuodattimena -valinta ei vaikuta tällä välilehdellä näytettävään informaatioon. Hajontakuviosta on piilotettu toimiyksiköt, joissa on alle 5 suoritetta. (sv)",costsWithinZipCodeAreaSelectableFeature:"Kustannukset postinumeroalueelta {0} (sv)",costsWithinZipCodeAreaServiceProviderAddressLabel:"Toimipaikan osoite (sv)",costsWithinZipCodeAreaServiceProviderInvalidAddress:"Toimipaikan osoitetta ei saatavilla (sv)",costsWithinZipCodeAreaServiceProviderHideInfo:"Piilota postinumeroalueen kustannusten tiedot (sv)",costsWithinZipCodeAreaServiceProviderShowInfo:"Näytä postinumeroalueen kustannusten tiedot (sv)",costsWithinZipCodeAreaServiceProviderCostsAll:"Postinumeroalueen kustannukset yhteensä (sv)",costsWithinZipCodeAreaServiceProviderCostsAllCohort:"Osuussuodattimen mukaiset kokonaiskustannukset (sv)",costsWithinZipCodeAreaServiceProviderCostsAllValue:"{0} euroa (sv)",costsWithinZipCodeAreaRelativeToPopulation:"Postinumeroalueen kustannukset per asukas (sv)",costsWithinZipCodeAreaRelativeToPopulationValue:"{0} euroa (sv)",costsWithinZipCodeAreaServiceProviderVolumesAll:"Postinumeroalueen suoritteet yhteensä (sv)",costsWithinZipCodeAreaServiceProviderVolumesAllValue:"{0} kpl (sv)",costsWithinZipCodeAreaInfoLabel:"Huomaathan, että Käytä osuussuodattimena -valinta vaikuttaa vain arvoon 'Osuussuodattimen mukaiset kokonaiskustannukset'. Hajontakuviosta on piilotettu toimipaikat, joissa on alle 5 suoritetta.(sv)",costsWithinZipCodeAreaPlotHide:"Piilota postinumeroalueen kustannusten hajontakuvio (sv)",costsWithinZipCodeAreaPlotShow:"Näytä postinumeroalueen kustannusten hajontakuvio (sv)",customerVolumesLayerLoadingInfo:"Asiakasmäärät: Ladataan postinumeroalueita näkyville... (sv)",customerVolumesLayerLoadingSuccess:"Asiakasmäärät: Postinumeroalueiden lataaminen onnistui (sv)",customerVolumesLayerLoadingError:"Asiakasmäärät: Postinumeroalueiden lataaminen epäonnistui (sv)",customerVolumesLayerLoadingCancel:"Asiakasmäärät: Postinumeroalueiden lataaminen peruutettiin (sv)",customerVolumesLayerUpdaterLoadingInfo:"Asiakasmäärät: Päivitetään asiakasmääriä... (sv)",customerVolumesLayerUpdaterLoadingSuccess:"Asiakasmäärät: Asiakasmäärien päivittäminen onnistui (sv)",customerVolumesLayerUpdaterLoadingError:"Asiakasmäärät: Asiakasmäärien päivittäminen epäonnistui (sv)",customerVolumesLayerUpdaterLoadingCancel:"Asiakasmäärät: Asiakasmäärien päivittäminen peruutettiin (sv)",customerVolumesLegendTextAbsolute:"Valitun asiakasryhmän asiakasmäärät (hlö) (sv)",customerVolumesLegendTextRelativeToPopulation:"Valitun asiakasryhmän asiakasmäärät (per asukas) (sv)",customerVolumesLegendTextCohort:"Valitun asiakasryhmän asiakasmäärät (hlö) (osuussuodattimessa valittujen prosenttiosuus) (sv)",customerVolumesLegendNoResults:"Valitulle asiakasryhmälle ei löytynyt asiakkaita (sv)",customerVolumesPopupShowCustomerVolumesInZipCodeArea:"Näytä asiakasmäärät postinumeroalueella {0} (sv)",customerVolumesPopupZipCodeAreaLabel:"Postinumeroalue (sv)",customerVolumesPopupCustomerVolumesLabel:"Postinumeroalueen asiakasmäärä (sv)",customerVolumesPopupRelativeCustomerVolumesLabel:"Alueen asukaslukuun suhteutettu asiakasmäärä (sv)",customerVolumesPopupCohortCustomerVolumesLabel:"Osuussuodattimen mukainen asiakasmäärä (sv)",customerVolumesValueTypeAbsolute:"Asiakkaiden määrä (sv)",customerVolumesValueTypeRelativeToPopulation:"Peittävyys (sv)",valueTypeCohortPortion:"Osuudet (sv)",paavoPTLayerLoadingInfo:"Paavo: Ladataan postinumeroalueita näkyville... (sv)",paavoPTLayerLoadingSuccess:"Paavo: Postinumeroalueiden lataaminen onnistui (sv)",paavoPTLayerLoadingError:"Paavo: Postinumeroalueiden lataaminen epäonnistui (sv)",paavoPTLayerLoadingCancel:"Paavo: Postinumeroalueiden lataaminen peruutettiin (sv)",paavoPTLayerUpdaterLoadingInfo:"Paavo: Ladataan kokonaiskuvaa pääasiallisesta toiminnasta... (sv)",paavoPTLayerUpdaterLoadingSuccess:"Paavo: Pääasiallisen toiminnan kokonaiskuvan lataaminen onnistui (sv)",paavoPTLayerUpdaterLoadingError:"Paavo: Pääasiallisen toiminnan kokonaiskuvan lataaminen epäonnistui (sv)",paavoPTLayerUpdaterLoadingCancel:"Paavo: Pääasiallisen toiminnan kokonaiskuvan lataaminen peruutettiin (sv)",paavoPTLegendText:"Työllisyysprosentti postinumeroalueittain (sv)",paavoPTLegendTextSourceShow:"Näytä lähde (sv)",paavoPTLegendTextSourceHide:"Piilota lähde (sv)",paavoPTLegendTextSource:"Lähde: Paavo, asukkaiden pääasiallinen toiminta (PT), {0} (sv)",paavoPTLegendNoResults:"Työllisyysprosentti ei saatavilla (sv)",paavoHELayerLoadingInfo:"Paavo: Ladataan postinumeroalueita näkyville... (sv)",paavoHELayerLoadingSuccess:"Paavo: Postinumeroalueiden lataaminen onnistui (sv)",paavoHELayerLoadingError:"Paavo: Postinumeroalueiden lataaminen epäonnistui (sv)",paavoHELayerLoadingCancel:"Paavo: Postinumeroalueiden lataaminen peruutettiin (sv)",paavoHELayerUpdaterLoadingInfo:"Paavo: Ladataan kokonaiskuvaa asukasrakenteesta... (sv)",paavoHELayerUpdaterLoadingSuccess:"Paavo: Asukasrakenteen kokonaiskuvan lataaminen onnistui (sv)",paavoHELayerUpdaterLoadingError:"Paavo: Asukasrakenteen kokonaiskuvan lataaminen epäonnistui (sv)",paavoHELayerUpdaterLoadingCancel:"Paavo: Asukasrakenteen kokonaiskuvan lataaminen peruutettiin (sv)",paavoHESelectableFeature:"Asukasrakenne postinumeroalueelta {0} (sv)",paavoHELegendText:"Keski-ikä postinumeroalueittain (v) (sv)",paavoHELegendTextSourceShow:"Näytä lähde (sv)",paavoHELegendTextSourceHide:"Piilota lähde (sv)",paavoHELegendTextSource:"Lähde: Paavo, asukasrakenne (HE), {0} (sv)",paavoHELegendNoResults:"Keski-ikä ei saatavilla (sv)",paavoHEAgeDistributionYAXisLabel:"Ikä (sv)",paavoHEAgeDistributionXAxisLabel:"Väestömäärä (sv)",paavoHEGenderDistributionYAXisLabel:"Sukupuoli (sv)",paavoHEGenderDistributionXAxisLabel:"Väestömäärä (sv)",paavoHEAdditionalInfo:"Paavo, asukasrakenne (HE), {0} (sv)",paavoHEAdditionalInfoShow:"Näytä lisätiedot (sv)",paavoHEAdditionalInfoHide:"Piilota lisätiedot (sv)",paavoHEZeroValuesInfo:"Datan mahdolliset nolla-arvot johtuvat siitä, että (sv)",paavoHEZeroValueActual:"datan arvo on nolla (sv)",paavoHEZeroValueNotAvailable:"data ei ole saatavilla (sv)",paavoHEZeroValueHidden:"data on piilotettu/tietosuojattu (sv)",paavoHEAgeAverageLabel:"Asukkaiden keski-ikä on {0} vuotta (sv)",paavoHEPopulationTotalLabel:"Asukkaita on yhteensä {0} henkilöä (sv)",paavoHEShowAgePlot:"Näytä ikäjakauman kuvaaja (sv)",paavoHEHideAgePlot:"Piilota ikäjakauman kuvaaja (sv)",paavoHEShowGenderPlot:"Näytä sukupuolijakauman kuvaaja (sv)",paavoHEHideGenderPlot:"Piilota sukupuolijakauman kuvaaja (sv)",paavoPTChartYAxisLabel:"Pääasiallinen toiminta (sv)",paavoPTChartXAxisLabel:"Väestömäärä (sv)",paavoPTSelectableFeature:"Pääasiallinen toiminta postinumeroalueella {0} (sv)",paavoPTSelectedFeatureDataLoadingInfo:"Paavo: Ladataan tietoja postinumeroalueen pääasiallisesta toiminnasta... (sv)",paavoPTSelectedFeatureDataLoadingSuccess:"Paavo: Postinumeroalueen pääasiallisen toiminnan tietojen lataaminen onnistui (sv)",paavoPTSelectedFeatureDataLoadingError:"Paavo: Postinumeroalueen pääasiallisen toiminnan tietojen lataaminen epäonnistui (sv)",paavoPTSelectedFeatureDataLoadingCancel:"Paavo: Postinumeroalueen pääasiallisen toiminnan tietojen lataaminen peruutettiin (sv)",paavoHESelectedFeatureDataLoadingInfo:"Paavo: Ladataan tietoja postinumeroalueen asukasrakenteesta... (sv)",paavoHESelectedFeatureDataLoadingSuccess:"Paavo: Postinumeroalueen asukasrakenteen tietojen lataaminen onnistui (sv)",paavoHESelectedFeatureDataLoadingError:"Paavo: Postinumeroalueen asukasrakenteen tietojen lataaminen epäonnistui (sv)",paavoHESelectedFeatureDataLoadingCancel:"Paavo: Postinumeroalueen asukasrakenteen tietojen lataaminen peruutettiin (sv)",paavoPTShowPlot:"Näytä pääasiallisen toiminnan kuvaaja (sv)",paavoPTHidePlot:"Piilota pääasiallisen toiminnan kuvaaja (sv)",paavoPTAdditionalInfo:"Paavo, asukkaiden pääasiallinen toiminta (PT), {0} (sv)",paavoPTAdditionalInfoShow:"Näytä lisätiedot (sv)",paavoPTAdditionalInfoHide:"Piilota lisätiedot (sv)",paavoPTZeroValuesInfo:"Datan mahdolliset nolla-arvot johtuvat siitä, että (sv)",paavoPTZeroValueActual:"datan arvo on nolla (sv)",paavoPTZeroValueNotAvailable:"data ei ole saatavilla (sv)",paavoPTZeroValueHidden:"data on piilotettu/tietosuojattu (sv)",paavoPTEmploymentPercentage:"Työllisyysaste on {0} prosenttia (sv)",notificationObjectCancelMessage:"Peruuta (sv)",notificationObjectRetryMessage:"Yritä uudelleen (sv)",genericCancelLoadingMessage:"Peruuta (sv)",genericRetryMessage:"Yritä uudelleen (sv)",mainDiagnosisSearchSelectedDiagnosesHeader:"Valitut diagnoosit (sv)",mainDiagnosisSearchErrorMessage:"Diagnoosien hakeminen epäonnistui (sv)",mainDiagnosisSearchNoResults:"Ei hakutuloksia (sv)",mainDiagnosisSearchResetSelectedDiagnoses:"Tyhjennä valitut diagnoosit (sv)",mainDiagnosisSearchSelectAllSearchResults:"Valitse kaikki hakutulokset (sv)",dashboardLinksHeader:"Region Dashboard -näkymät (sv)",dashboardLinksLoadingCancel:"Region-Dashboard linkkien lataaminen peruutettiin (sv)",dashboardLinksLoadingError:"Region-Dashboard linkkien lataaminen epäonnistui (sv)",dashboardLinkCostsHeader:"Kustannukset (sv)",dashboardLinkCostsMunicipality:"Näytä kunnan {0} kustannukset (sv)",dashboardLinkCostsZipCode:"Näytä postinumeroalueen {0} kustannukset (sv)",dashboardLinkCostsPerCitizenHeader:"Kustannukset asukasta kohti (sv)",dashboardLinkCostsPerCitizenMunicipality:"Näytä kunnan {0} kustannukset asukasta kohti (sv)",dashboardLinkCostsPerCitizenZipCode:"Näytä postinumeroalueen {0} kustannukset asukasta kohti (sv)",selectOnlySearchResults:"Valitse vain kaikki hakutulokset (sv)",resetSelections:"Palauta valinnat (sv)",useAsCohortFilterLabel:"Käytä osuussuodattimena (sv)",useAsDynamicFilterLabel:"Käytä dynaamisena suodattimena (sv)",contactTypeFilterLabel:"Yhteystapa (sv)",contactTypeFilterActive:"Yhteystapasuodatin vaikuttaa tähän karttatasoon (sv)",contactTypeFilterInActive:"Yhteystapasuodatin ei vaikuta tähän karttatasoon (sv)",contactTypeFilterLoading:"Ladataan yhteystapasuodatinta ... (sv)",contactTypeFilterLoadingFail:"Yhteystapasuodattimen lataaminen epäonnistui (sv)",contactTypeFilterLoadingAbort:"Yhteystapasuodattimen lataaminen keskeytettiin (sv)",servKindsTypesFilterName:"Palvelumuotosuodatin (sv)",serviceKindsFilterHeader:"Palvelumuoto (sv)",servKindsFilterIsActive:"Palvelumuotosuodatin vaikuttaa tähän karttatasoon (sv)",servKindsFilterIsInactive:"Palvelumuotosuodatin ei vaikuta tähän karttatasoon (sv)",servKindsFilterLoading:"Ladataan palvelumuotosuodatinta... (sv)",servKindsFilterLoadingFail:"Palvelumuotosuodattimen lataaminen epäonnistui (sv)",servKindsFilterLoadingAbort:"Palvelumuotosuodattimen lataaminen keskeytettiin (sv)",customerVisitsLegendNoVisits:"Ei suoritteita (sv)",customerVisitsLegendTooFewVisits:"Alle {0} tai ei suoritteita (sv)",customerVolumesLegendNoCustomers:"Ei asiakkaita (sv)",customerVolumesLegendTooFewCustomers:"Alle {0} tai ei asiakkaita (sv)",providerCostsLegendNoCosts:"Ei kustannuksia (sv)",providerCostsLegendTooFewVisits:"Ei kustannuksia tai alle {0} suoritetta (sv)",paavoPTLegendDataNotAvailable:"Työllisyysprosentti ei saatavilla (sv)",paavoHELegendDataNotAvailable:"Keski-ikä ei saatavilla (sv)",paavo_he_men:"Miehet (sv)",paavo_he_women:"Naiset (sv)",paavo_he_age_0_2:"0-2 (sv)",paavo_he_age_3_6:"3-6 (sv)",paavo_he_age_7_12:"7-12 (sv)",paavo_he_age_13_15:"13-15 (sv)",paavo_he_age_16_17:"16-17 (sv)",paavo_he_age_18_19:"18-19 (sv)",paavo_he_age_20_24:"20-24 (sv)",paavo_he_age_25_29:"25-29 (sv)",paavo_he_age_30_34:"30-34 (sv)",paavo_he_age_35_39:"35-39 (sv)",paavo_he_age_40_44:"40-44 (sv)",paavo_he_age_45_49:"45-49 (sv)",paavo_he_age_50_54:"50-54 (sv)",paavo_he_age_55_59:"55-59 (sv)",paavo_he_age_60_64:"60-64 (sv)",paavo_he_age_65_69:"65-69 (sv)",paavo_he_age_70_74:"70-74 (sv)",paavo_he_age_75_79:"75-79 (sv)",paavo_he_age_80_84:"80-84 (sv)",paavo_he_age_85_:"85- (sv)",paavo_pt_work_force:"Työvoima (sv)",paavo_pt_employed:"Työlliset (sv)",paavo_pt_unemployed:"Työttömät (sv)",paavo_pt_outside_work_force:"Työvoiman ulkopuolella olevat (sv)",paavo_pt_children:"Lapset 0-14 vuotiaat (sv)",paavo_pt_students:"Opiskelijat (sv)",paavo_pt_pensioners:"Eläkeläiset (sv)",paavo_pt_others:"Muut (työvoiman ulkopuolella olevat) (sv)",extraBaseLayersDigiroadPublicTransportStops:"Joukkoliikenteen pysäkki (Digiroad), myös käyttämättömät (sv)",extraBaseLayersTrafficBureau:"Julkinen liikenne (sv)",extraBaseLayersPaavoData:"Tilastokeskus: Paavo (sv)",extraBaseLayersPaavoPT:"Pääasiallinen toiminta (sv)",extraBaseLayersPaavoHE:"Asukasrakenne (sv)",extraBaseLayersStatisticsFinland:"Tilastokeskus: Muut (sv)",extraBaseLayersPopulationDensity:"Väestötiheys (sv)",extraBaseLayersParamsPublicTransportStopsLegendTitle:"Joukkoliikenteen pysäkit (sv)",extraBaseLayersParamsPublicTransportStopsLegendCustomMessage:"Seuraavat pysäkkien merkit ilmestyvät kartalle, kun lähennät näkymää tarpeeksi. (sv)",extraBaseLayersPopulationDensityLegendCustomMessage:"",extraBaseLayersPopulationDensityLegendTitle:"Väestötiheys ruuduittain (sv)",agefilter_header:"Ikäluokat (Tilastokeskus) (sv)",agefilter_ageGroup00:"0-vuotiaat (sv)",agefilter_ageGroup01:"1-6-vuotiaat (sv)",agefilter_ageGroup02:"7-14-vuotiaat (sv)",agefilter_ageGroup03:"15-49-vuotiaat (sv)",agefilter_ageGroup04:"50-64-vuotiaat (sv)",agefilter_ageGroup05:"65-74-vuotiaat (sv)",agefilter_ageGroup06:"75-84-vuotiaat (sv)",agefilter_ageGroup07:"85-vuotiaat ja vanhemmat (sv)",agefilter_ageGroup99:"Ikä tuntematon (sv)",genderfilter_header:"Sukupuoli (sv)",genderfilter_1:"Miehet (sv)",genderfilter_2:"Naiset (sv)",genderfilter_3:"Muut (sv)",servicegroups_header:"Tietopaketit (sv)",aura_header:"AURA-palveluluokat (sv)"},en:{monthAbbreviation:"kk (en)",errorCouldNotLoadTranslationWithLocalizationKey:"(Käännöstä ei voitu ladata) (en)",mainMenuButtonLabel:"Päävalikko (en)",mainMenuFilters:"Suodattimet (en)",mainMenuMapLayers:"Karttatasot (en)",mainMenuMapLayersDragHandleTooltip:"Järjestä karttatasoja raahaamalla tästä (en)",mainMenuMapLayersRestoreDefaultOrder:"Palauta oletusjärjestys (en)",mainMenuServiceProviders:"Toimipaikat (en)",mainMenuCustomerVolumes:"Asiakasmäärät (en)",mainMenuCustomerVisits:"Suoritteet (en)",mainMenuServiceProviderCosts:"Kustannukset (en)",mainMenuServiceProviderAccessibility:"Saavutettavuus linnuntietä pitkin (en)",mainMenuServiceProviderAccessibilityByRoad:"Saavutettavuus tieverkostoa pitkin (en)",mainMenuExtraBaseLayers:"Muut karttatasot (en)",extraBaseLayersTreeLoadingMessage:"Ladataan valittavien karttatasojen puuta... (en)",extraBaseLayersTreeLoadingMessageError:"Valittavien karttatasojen puun lataaminen epäonnistui (en)",extraBaseLayersTreeLoadingMessageCancel:"Valittavien karttatasojen puun lataaminen peruutettiin (en)",mainMenuServiceProvidersHelp:"Näyttää toimipaikat kartalla karttamerkkeinä. Klikkaamalla toimipaikkaa saa näkyville yksittäisten toimiyksiköiden perustiedot. (en)",mainMenuCustomerVolumesHelp:"Näyttää asiakasmääriä alueittain. Katso värien selitteet Karttaselitteet-välilehdeltä. (en)",mainMenuCustomerVisitsHelp:"Näyttää suoritteita alueittain. Katso värien selitteet Karttaselitteet-välilehdeltä. (en)",mainMenuServiceProviderCostsHelp:"Näyttää valitulta alueelta viivat niihin toimipaikkoihin, joihin alueelta on kohdistunut kuluja. (en)",mainMenuServiceProviderAccessibilityHelp:"Näyttää toimipaikkojen saavutettavuutta väestöruuduittain. Ruutu värjäytyy sen mukaan, kuinka paljon asukkaita kussakin ruudussa on ja kuinka lähellä toimipaikat sijaitsevat. Katso värien selitteet Karttaselitteet-välilehdeltä. (en)",mainMenuServiceProviderAccessibilityByRoadHelp:"Näyttää toimipaikkojen saavutettavuutta tieverkostoa pitkin. (en)",mainMenuExtraBaseLayersHelp:"Sisältää muista lähteistä tuotavat karttatasot. (en)",cloneAppButtonLabel:"Kopioi valinnat (en)",cloneAppButtonTooltip:"Avaa uusi kopio tästä ikkunasta (en)",userManualButtonOpenLabel:"Ohje (en)",userManualButtonCloseLabel:"Sulje ohje (en)",userManualButtonOpenTooltip:"Avaa käyttöohjeen uuteen ikkunaan (en)",userManualButtonCloseTooltip:"Sulkee uuteen ikkunaan avatun käyttöohjeen (en)",systemInfoButtonOpenLabel:"Tietoja (en)",systemInfoButtonCloseLabel:"Sulje tiedot (en)",systemInfoButtonOpenTooltip:"Näyttää perustietoja järjestelmästä (en)",systemInfoButtonCloseTooltip:"Sulkee järjestelmän perustiedot näkyvistä (en)",systemInfoGeneralHeader:"Yleiset tiedot (en)",systemInfoGeospatialDataLicencesHeader:"Kartta-aineistojen lisenssit (en)",systemInfoGeospatialDataLicencesShowLabel:"Näytä kartta-aineistojen lisenssit (en)",systemInfoGeospatialDataLicencesHideLabel:"Piilota kartta-aineistojen lisenssit (en)",systemInfoVersionGIS:"Logex Region GIS-käyttöliittymän versio (en)",systemInfoVersionGISBackend:"Logex Region GIS-taustajärjestelmän versio (en)",systemInfoVersionPR:"Logex Region -versio (en)",systemInfoVersionAPI:"Rajapintapalvelun versio (en)",systemInfoDataLastLoaded:"Data päivitetty viimeksi (en)",systemInfoSystemStatus:"Järjestelmän status (en)",systemInfoDataRowCount:"Rivien määrä datassa (en)",systemInfoInstancePRName:"Järjestelmän nimi (en)",systemInfoTechnicalImplementation:"Tekninen toteutus (en)",systemInfoLoading:"Ladataan yleisiä tietoja... (en)",systemInfoLoadingCancelled:"Yleisten tietojen lataaminen peruutettiin (en)",systemInfoLoadingFailed:"Yleisten tietojen lataaminen epäonnistui (en)",systemInfoGeospatialDataInfo:"Kuvaus (en)",systemInfoGeospatialDataLicense:"Lisenssi (en)",systemInfoGeospatialDataVersion:"Aineistoversio (en)",systemInfoGeospatialDataLicencesLoading:"Ladataan lisenssien tietoja... (en)",systemInfoGeospatialDataLicencesLoadingCancelled:"Lisenssien tietojen lataaminen peruutettiin (en)",systemInfoGeospatialDataLicencesLoadingFailed:"Lisenssien tietojen lataaminen epäonnistui (en)",captureScreenButtonLabel:"Ruutu­kaappaus (en)",captureScreenButtonTooltip:"Ottaa ruutukaappauksen sivun sisällöstä ja tarjoaa sen tallennettavaksi (en)",captureScreenButtonIEAndEdgeNotification:"Ruutukaappaustoiminto suoritetaan tämän ilmoituksen sulkeutumisen jälkeen.\n\nHuomioi, että käyttämäsi selain (IE/Edge) ei tue kunnolla ruutukaappaustoimintoa.\n\nTarkista tallentamasi kuvan oikeellisuus!\n\nVinkki: Mikäli mahdollista, kannattaa käyttää eri selainta (Chrome, Firefox).\nSelaimesta riippumatta parhaan tuloksen saa käyttämällä Windowsin Ruutukaappaustyökalua (Snipping Tool).\n\n(en)",bookmarkButtonLabel:"Kirjan­merkki (en)",bookmarkButtonCloseLabel:"Sulje kirjanmerkit (en)",boomarkNameLabel:"Kirjanmerkin nimi (pakollinen) (en)",bookmarkSaveAsFileLabel:"Tallenna kirjanmerkki tiedostona (en)",bookmarkSaveLabel:"Tallenna (en)",bookmarkSaveSuccess:"Kirjanmerkin tallennus onnistui! (en)",bookmarkSaveFail:"Kirjanmerkin tallennus epäonnistui! (en)",bookmarkSaveBookmark:"Tallenna kirjanmerkki (en)",bookmarkShowBookmarks:"Näytä kirjanmerkit (en)",bookmarkButtonTipLabel:"Tarkastele ja tallenna uusia kirjanmerkkejä (en)",bookmarkRemoveTipLabel:"Poista kirjanmerkki (en)",bookmarkRemoveConfirmation:"Haluatko varmasti poistaa kirjanmerkin {0}? (en)",bookmarkOpenTipLabel:"Avaa kirjanmerkin tila uuteen ikkunaan (en)",bookmarkExportTipLabel:"Vie kirjanmerkki (en)",bookmarkImportTipLabel:"Tuo kirjanmerkki (en)",bookmarkOpenFailed:"Kirjanmerkin avaamisessa tapahtui virhe ja se epäonnistui. Kirjanmerkin versio: {0}. Nykyinen versio: {1} (en)",bookmarkOpenConversionFound:"Avaamasi kirjanmerkki on tallennettu sovelluksen versiossa {0}, kun tämänhetkinen versio on {1}. Yritämme muokata kirjanmerkin tilaa yhteensopivaksi, mutta muokatussa tilassa saattaa esiintyä ongelmia (en).",infoAreaTabInitialContent:"Kartalla näkyvien elementtien selitteet näkyvät tässä välilehdessä. (en)",costsGroupedByServiceProviderOfficeNoResults:"Suoritteita ei löytynyt (en)",costsGroupedByServiceProviderOfficeTooFewResults:"Alle {0} tai ei suoritteita (en)",costsGroupedByServiceProviderOfficeLegendDescription:"Viivojen paksuus kertoo kustannusten suoritemäärästä: mitä paksumpi viiva, sitä enemmän suoritteita.\n\nViivojen väri kertoo suoritekohtaisista kustannuksista: mitä tummempi väri, sitä isompi suoritekohtainen kustannus. (en)",costsGroupedByServiceProviderUnitNoResults:"Suoritteita ei löytynyt (en)",costsGroupedByServiceProviderUnitTooFewResults:"Alle {0} tai ei suoritteita (en)",costsGroupedByZipCodeNoResults:"Suoritteita ei löytynyt (en)",costsGroupedByZipCodeLegendLoadingText:"Kustannukset: Ladataan suoritteiden kustannuksia... (en)",costsGroupedByZipCodeLegendLoadingTextSuccess:"Kustannukset: Suoritteiden kustannusten lataaminen onnistui (en)",costsGroupedByZipCodeLegendLoadingTextError:"Kustannukset: Suoritteiden kustannusten lataaminen epäonnistui (en)",costsGroupedByZipCodeLegendLoadingTextCancel:"Kustannukset: Suoritteiden kustannusten lataaminen peruutettiin (en)",costsGroupedByZipCodeLegendTextTotal:"Suoritteiden kokonaiskustannus (€) (en)",costsGroupedByZipCodeLegendTextAverage:"Suoritteiden keskikustannus (€) (en)",costsGroupedByZipCodeLegendTextRelativeToPopulation:"Alueen asukaslukuun suhteutetut kustannukset (€) (en)",costsGroupedByZipCodeLegendTextRelativeToCustomers:"Alueen asiakasmäärään suhteutetut kustannukset (€) (en)",costsGroupedByZipCodeLegendTextTotalCohort:"Suoritteiden kokonaiskustannus (€) (osuussuodattimessa valittujen prosenttiosuus) (en)",tabCustomerDemographicsLabel:"Asiakasdemografiat (en)",tabProviderCostsLabel:"Postinumeroalueen kustannukset (en)",tabProviderCostsWithinAddressLabel:"Toimipaikan kustannukset (en)",tabLegendsLabel:"Karttaselitteet (en)",tabPaavoHEData:"Paavo: Asukasrakenne (en)",tabPaavoPTData:"Paavo: Pääasiallinen toiminta (en)",mapPanNorthTooltip:"Siirrä ylös (en)",mapPanWestTooltip:"Siirrä vasemmalle (en)",mapPanEastTooltip:"Siirrä oikealle (en)",mapPanSouthTooltip:"Siirrä alas (en)",mapZoomInTooltip:"Lähennä (en)",mapZoomOutTooltip:"Loitonna (en)",filterIsActiveSuffix:" -suodatin vaikuttaa tähän karttatasoon (en)",filterIsInactiveSuffix:" -suodatin ei vaikuta tähän karttatasoon (en)",agegroupFilterName:"Ikäsuodatin (en)",agegroupFilterIsActive:"Ikäsuodatin vaikuttaa tähän karttatasoon (en)",agegroupFilterIsInactive:"Ikäsuodatin ei vaikuta tähän karttatasoon (en)",maindiagnosesFilterName:"Päädiagnoosi (ICD-10) tai käynnin 1. syy (ICPC) (en)",maindiagnosesFilterIsActive:"Päädiagnoosi (ICD-10) tai käynnin 1. syy (ICPC) -suodatin vaikuttaa tähän karttatasoon (en)",maindiagnosesFilterIsInactive:"Päädiagnoosi (ICD-10) tai käynnin 1. syy (ICPC) -suodatin ei vaikuta tähän karttatasoon (en)",eprgroupFilterName:"EPR-ryhmä-suodatin (en)",eprgroupFilterIsActive:"EPR-ryhmä-suodatin vaikuttaa tähän karttatasoon (en)",eprgroupFilterIsInactive:"EPR-ryhmä-suodatin ei vaikuta tähän karttatasoon (en)",areamdcFilterName:"Alue-MDC (ICD10 tai ICPC2)-suodatin (en)",areamdcFilterIsActive:"Alue-MDC (ICD10 tai ICPC2)-suodatin vaikuttaa tähän karttatasoon (en)",areamdcFilterIsInactive:"Alue-MDC (ICD10 tai ICPC2)-suodatin ei vaikuta tähän karttatasoon (en)",genderFilterName:"Sukupuolisuodatin (en)",genderFilterIsActive:"Sukupuolisuodatin vaikuttaa tähän karttatasoon (en)",genderFilterIsInactive:"Sukupuolisuodatin ei vaikuta tähän karttatasoon (en)",serviceproviderFilterName:"Tuottavat yksiköt -suodatin (en)",serviceproviderFilterIsActive:"Tuottavat yksiköt -suodatin vaikuttaa tähän karttatasoon (en)",serviceproviderFilterIsInactive:"Tuottavat yksiköt -suodatin ei vaikuta tähän karttatasoon (en)",municipalityFilterName:"Kotikuntasuodatin (en)",municipalityFilterRootLabel:"Kotikunta (en)",municipalityFilterOthersLabel:"Muut (en)",municipalityFilterIsActive:"Kotikuntasuodatin vaikuttaa tähän karttatasoon (en)",municipalityFilterIsInactive:"Kotikuntasuodatin ei vaikuta tähän karttatasoon (en)",municipalityFilterNoResults:"Kuntia ei löytynyt (en)",timesliderFilterName:"Aikavälisuodatin (en)",timesliderFilterIsActive:"Aikavälisuodatin vaikuttaa tähän karttatasoon (en)",timesliderFilterIsInactive:"Aikavälisuodatin ei vaikuta tähän karttatasoon (en)",timesliderSelectionText:"Valittu aikaväli: (en)",timesliderDragLeft:"Siirrä valittua aikaväliä vasemmalle (en)",timesliderDragRight:"Siirrä valittua aikaväliä oikealle (en)",basicServiceTypesFilterHeader:"Perussuoritelaji (en)",basicServiceTypesFilterName:"Perussuoritelajisuodatin (en)",basicServiceTypesFilterIsActive:"Perussuoritelajisuodatin vaikuttaa tähän karttatasoon (en)",basicServiceTypesFilterIsInactive:"Perussuoritelajisuodatin ei vaikuta tähän karttatasoon (en)",basicServiceTypesListFetchLoadingMessage:"Ladataan perussuoritelajisuodatinta... (en)",basicServiceTypesListFetchCancelledMessage:"Perussuoritelajisuodattimen lataaminen peruutettiin (en)",basicServiceTypesListFetchFailedMessage:"Perussuoritelajisuodattimen lataaminen epäonnistui (en)",serviceTypesFilterHeader:"Suoritelaji (esh, pth, sos) (en)",serviceTypesFilterName:"Suoritelaji (esh, pth, sos) -suodatin (en)",serviceTypesFilterIsActive:"Suoritelaji (esh, pth, sos) -suodatin vaikuttaa tähän karttatasoon (en)",serviceTypesFilterIsInactive:"Suoritelaji (esh, pth, sos) -suodatin ei vaikuta tähän karttatasoon (en)",serviceTypesListFetchLoadingMessage:"Ladataan Suoritelaji (esh, pth, sos) -suodatinta... (en)",serviceTypesListFetchCancelledMessage:"Suoritelaji (esh, pth, sos) -suodattimen lataaminen peruutettiin (en)",serviceTypesListFetchFailedMessage:"Suoritelaji (esh, pth, sos) -suodattimen lataaminen epäonnistui (en)",contacttypes_header:"Yhteystapa (en)",contactTypeFilter_E:"Etäkontaktit (en)",contactTypeFilter_L:"Lähikontaktit (en)",contactTypeFilter_M:"Muut kontaktit (en)",zipCodesFilterHeader:"Asuinpaikka (en)",zipCodesFilterName:"Asuinpaikka -suodatin (en)",zipCodesFilterIsActive:"Asuinpaikka -suodatin vaikuttaa tähän karttatasoon (en)",zipCodesFilterIsInactive:"Asuinpaikka -suodatin ei vaikuta tähän karttatasoon (en)",zipCodesFilterNoResults:"Asuinpaikkoja ei löytynyt (en)",zipCodesFilterLoadingText:"Ladataan asuinpaikkasuodatinta... (en)",zipCodesFilterLoadingTextSuccess:"Asuinpaikkasuodattimen lataaminen onnistui (en)",zipCodesFilterLoadingTextError:"Asuinpaikkasuodattimen lataaminen epäonnistui (en)",zipCodesFilterLoadingTextCancel:"Asuinpaikkasuodattimen lataaminen peruutettiin (en)",urgencyTypesFilterHeader:"Kiireellisyys (en)",urgencyTypesFilterName:"Kiireellisyyssuodatin (en)",urgencyTypesFilterIsActive:"Kiireellisyyssuodatin vaikuttaa tähän karttatasoon (en)",urgencyTypesFilterIsInactive:"Kiireellisyyssuodatin ei vaikuta tähän karttatasoon (en)",urgencyTypesListFetchLoadingMessage:"Ladataan Kiireellisyyssuodatinta... (en)",urgencyTypesListFetchCancelledMessage:"Kiireellisyyssuodattimen lataaminen peruutettiin (en)",urgencyTypesListFetchFailedMessage:"Kiireellisyyssuodattimen lataaminen epäonnistui (en)",thlndgGroupsFilterHeader:"THL-kansantautiryhmä (en)",thlndgGroupsFilterName:"THL-kansantautiryhmäsuodatin (en)",thlndgGroupsFilterIsActive:"THL-kansantautiryhmäsuodatin vaikuttaa tähän karttatasoon (en)",thlndgGroupsFilterIsInactive:"THL-kansantautiryhmäsuodatin ei vaikuta tähän karttatasoon (en)",thlndgGroupsListFetchLoadingMessage:"Ladataan THL-kansantautiryhmäsuodatinta... (en)",thlndgGroupsListFetchCancelledMessage:"THL-kansantautiryhmäsuodattimen lataaminen peruutettiin (en)",thlndgGroupsListFetchFailedMessage:"THL-kansantautiryhmäsuodattimen lataaminen epäonnistui (en)",thldgGroupsFilterHeader:"THL-sairausluokka (en)",thldgGroupsFilterName:"THL-sairausluokkasuodatin (en)",thldgGroupsFilterIsActive:"THL-sairausluokkasuodatin vaikuttaa tähän karttatasoon (en)",thldgGroupsFilterIsInactive:"THL-sairausluokkasuodatin ei vaikuta tähän karttatasoon (en)",thldgGroupsListFetchLoadingMessage:"Ladataan THL-sairausluokkasuodatinta... (en)",thldgGroupsListFetchCancelledMessage:"THL-sairausluokkasuodattimen lataaminen peruutettiin (en)",thldgGroupsListFetchFailedMessage:"THL-sairausluokkasuodattimen lataaminen epäonnistui (en)",visitKindsFilterHeader:"Käynnin luonne (en)",visitKindsFilterName:"Käynnin luonne -suodatin (en)",visitKindsFilterIsActive:"Käynnin luonne -suodatin vaikuttaa tähän karttatasoon (en)",visitKindsFilterIsInactive:"Käynnin luonne -suodatin ei vaikuta tähän karttatasoon (en)",visitKindsListFetchLoadingMessage:"Ladataan Käynnin luonne -suodatinta... (en)",visitKindsListFetchCancelledMessage:"Käynnin luonne -suodattimen lataaminen peruutettiin (en)",visitKindsListFetchFailedMessage:"Käynnin luonne -suodattimen lataaminen epäonnistui (en)",personnelTypesFilterHeader:"Ammatti (en)",personnelTypesFilterName:"Ammattisuodatin (en)",personnelTypesFilterIsActive:"Ammattisuodatin vaikuttaa tähän karttatasoon (en)",personnelTypesFilterIsInactive:"Ammattisuodatin ei vaikuta tähän karttatasoon (en)",personnelTypesListFetchLoadingMessage:"Ladataan Ammattisuodatinta... (en)",personnelTypesListFetchCancelledMessage:"Ammattisuodattimen lataaminen peruutettiin (en)",personnelTypesListFetchFailedMessage:"Ammattisuodattimen lataaminen epäonnistui (en)",sosServiceDutiesFilterHeader:"Sosiaalihuollon palvelutehtävä (en)",sosServiceDutiesFilterName:"Sosiaalihuollon palvelutehtäväsuodatin (en)",sosServiceDutiesFilterIsActive:"Sosiaalihuollon palvelutehtäväsuodatin vaikuttaa tähän karttatasoon (en)",sosServiceDutiesFilterIsInactive:"Sosiaalihuollon palvelutehtäväsuodatin ei vaikuta tähän karttatasoon (en)",sosServiceDutiesListFetchLoadingMessage:"Ladataan Sosiaalihuollon palvelutehtäväsuodatinta... (en)",sosServiceDutiesListFetchCancelledMessage:"Sosiaalihuollon palvelutehtäväsuodattimen lataaminen peruutettiin (en)",sosServiceDutiesListFetchFailedMessage:"Sosiaalihuollon palvelutehtäväsuodattimen lataaminen epäonnistui (en)",sosServicesFilterHeader:"Sosiaalipalvelu (en)",sosServicesFilterName:"Sosiaalipalvelusuodatin (en)",sosServicesFilterIsActive:"Sosiaalipalvelusuodatin vaikuttaa tähän karttatasoon (en)",sosServicesFilterIsInactive:"Sosiaalipalvelusuodatin ei vaikuta tähän karttatasoon (en)",sosServicesListFetchLoadingMessage:"Ladataan Sosiaalipalvelusuodatinta... (en)",sosServicesListFetchCancelledMessage:"Sosiaalipalvelusuodattimen lataaminen peruutettiin (en)",sosServicesListFetchFailedMessage:"Sosiaalipalvelusuodattimen lataaminen epäonnistui (en)",selectionToolbarUndoText:"Kumoa valinta (en)",selectionToolbarUndoTooltip:"Kumoa valinta (en)",selectionToolbarRedoText:"Toista valinta (en)",selectionToolbarRedoTooltip:"Toista valinta (en)",selectionToolbarRemoveAllText:"Tyhjennä kaikki (en)",selectionToolbarRemoveAllTooltip:"Tyhjennä kaikki valinnat (en)",selectionToolbarResetAllText:"Poista rajaukset (en)",selectionToolbarResetAllTooltip:"Poista kaikki rajaukset (en)",selectedZipCodeRegionDashboardViews:"Region Dashboard -näkymät (en)",selectedZipCodeShowMunicipalityCosts:"Näytä kunnan {0} kustannukset (en)",selectedZipCodeShowMunicipalityCostsPerCitizen:"Näytä kunnan {0} kustannukset per asukas (en)",selectedZipCodeBelongsToMunicipalityWithNameAndCode:"{0} kuuluu kuntaan {1} ({2}) (en)",selectedZipCodeArea:"Postinumeroalue {0} {1} (en)",serviceProviderTreeContainerLabel:"Tuottavat yksiköt (en)",serviceProviderTreeContainerLoadingMessage:"Ladataan Tuottavat yksiköt -suodatinta... (en)",serviceProviderTreeContainerLoadingMessageError:"Tuottava yksiköt -suodattimen lataaminen epäonnistui (en)",serviceProviderTreeContainerLoadingMessageCancel:"Tuottava yksiköt -suodattimen lataaminen peruutettiin (en)",serviceProviderFilterNoResults:"Ei hakutuloksia (en)",serviceGroupsTreeContainerLabel:"Tietopaketit (en)",serviceGroupsTreeContainerLoadingMessage:"Ladataan tietopaketit -suodatinta... (en)",serviceGroupsTreeContainerLoadingMessageError:"Tietopaketit -suodattimen lataaminen epäonnistui (en)",serviceGroupsTreeContainerLoadingMessageCancel:"Tietopaketit -suodattimen lataaminen peruutettiin (en)",serviceGroupsFilterNoResults:"Ei hakutuloksia (en)",serviceGroupsFilterName:"Tietopaketit -suodatin (en)",serviceProvidersPopupShowServiceUnitsInAddress:"Näytä tuottavat yksiköt osoitteessa {0} (en)",serviceProvidersPopupAddressLabel:"Osoite (en)",serviceProvidersPopupServiceUnitsLabel:"Tuottavat yksiköt (en)",serviceProvidersPopupCommitServiceProviderSelection:"Suodata vain valitut tuottavat yksiköt (en)",timeSliderLoadingInfo:"Ladataan aikavälisuodatinta näkyville... (en)",timeSliderLoadingError:"Aikavälisuodattimen lataaminen epäonnistui (en)",timeSliderLoadingCancel:"Aikavälisuodattimen lataaminen peruutettiin (en)",timeSliderHeading:"Aikavälisuodatin (en)",timeSliderSelectedTimeSpan:"Valittu aikaväli: (en)",timeSliderSelectedTimeSpanFormat:"YYYY/MM/DD",customersGenderListContainerLoadingMessage:"Ladataan sukupuolisuodatinta... (en)",customersGenderListContainerLoadingFailedMessage:"Sukupuolisuodattimen lataaminen epäonnistui (en)",customersGenderListContainerLoadingCancelMessage:"Sukupuolisuodattimen lataaminen peruutettiin (en)",customersEPRListContainerHeader:"EPR-ryhmä (en)",customersEPRListContainerLoadingMessage:"Ladataan EPR-ryhmä-suodatinta... (en)",customersEPRListContainerLoadingFailedMessage:"EPR-ryhmä-suodattimen lataaminen epäonnistui (en)",customersEPRListContainerLoadingCancelMessage:"EPR-ryhmä-suodattimen lataaminen peruutettiin (en)",customersAreaMDCListContainerHeader:"Alue-MDC (ICD10 tai ICPC2) (en)",customersAreaMDCListContainerLoadingMessage:"Ladataan Alue-MDC (ICD10 tai ICPC2)-suodatinta... (en)",customersAreaMDCListContainerLoadingFailedMessage:"Alue-MDC (ICD10 tai ICPC2)-suodattimen lataaminen epäonnistui (en)",customersAreaMDCListContainerLoadingCancelMessage:"Alue-MDC (ICD10 tai ICPC2)-suodattimen lataaminen peruutettiin (en)",customersAgeGroupListContainerLoadingMessage:"Ladataan ikäryhmäsuodatinta... (en)",customersAgeGroupListContainerLoadingFailedMessage:"Ikäryhmäsuodattimen lataaminen epäonnistui (en)",customersAgeGroupListContainerLoadingCancelMessage:"Ikäryhmäsuodattimen lataaminen peruutettiin (en)",customerVisitsLegendTextAbsolute:"Suoritteet (kpl) (en)",customerVisitsLegendTextRelativeToPopulation:"Suoritteet (per asukas) (en)",customerVisitsLegendTextRelativeToCustomers:"Suoritteet (per asiakas) (en)",customerVisitsLegendTextCohortAbsolute:"Suoritteet (kpl) (osuussuodattimessa valittujen prosenttiosuus) (en)",customerVisitsNoResults:"Suoritteita ei löytynyt (en)",customerVisitsLayerLoadingText:"Suoritteet: Ladataan postinumeroalueita näkyville... (en)",customerVisitsLayerLoadingTextSuccess:"Suoritteet: Postinumeroalueiden lataaminen onnistui (en)",customerVisitsLayerLoadingTextError:"Suoritteet: Postinumeroalueiden lataaminen epäonnistui (en)",customerVisitsLayerLoadingTextCancel:"Suoritteet: Postinumeroalueiden lataaminen peruutettiin (en)",customerVisitsDataLoadingText:"Suoritteet: Päivitetään suoritemääriä... (en)",customerVisitsDataLoadingTextSuccess:"Suoritteet: Suoritemäärien päivittäminen onnistui (en)",customerVisitsDataLoadingTextError:"Suoritteet: Suoritemäärien päivittäminen epäonnistui (en)",customerVisitsDataLoadingTextCancel:"Suoritteet: Suoritemäärien päivittäminen peruutettiin (en)",customerVisitsPopupShowCustomerVisitsInZipCodeArea:"Näytä suoritteet postinumeroalueella {0} (en)",customerVisitsPopupZipCodeAreaLabel:"Postinumeroalue (en)",customerVisitsPopupCustomerVisitsLabel:"Postinumeroalueen suoritteet (en)",customerVisitsPopupPopulationRelativeCustomerVisitsLabel:"Alueen suoritteet per asukas (en)",customerVisitsPopupCustomerRelativeCustomerVisitsLabel:"Alueen suoritteet per asiakas (en)",customerVisitsPopupCohortCustomerVisitsLabel:"Osuussuodattimen mukainen suoritemäärä (en)",customerVisitsValueTypeAbsolute:"Suoritteiden määrä (en)",customerVisitsValueTypeRelativeToPopulation:"Suoritteet per asukas (en)",customerVisitsValueTypeRelativeToCustomers:"Suoritteet per asiakas (en)",accessibilityCatchmentDataLoadingInfo:"Saavutettavuus tieverkostoa pitkin: Ladataan... (en)",accessibilityCatchmentDataLoadingSuccess:"Saavutettavuus tieverkostoa pitkin: Lataaminen onnistui (en)",accessibilityCatchmentDataLoadingError:"Saavutettavuus tieverkostoa pitkin: Lataaminen epäonnistui (en)",accessibilityCatchmentDataLoadingCancel:"Saavutettavuus tieverkostoa pitkin: Lataaminen peruutettiin (en)",accessibilityLegendText:"Toimipaikkojen saavutettavuus tieverkostoa pitkin (en)",accessibilityLegendAdditionalInfoShow:"Näytä lisätiedot (en)",accessibilityLegendAdditionalInfoHide:"Piilota lisätiedot (en)",accessibilityLegendAdditionalInfo:"Saavutettavuusajat on laskettu tieverkostoa pitkin (kesä)nopeusrajoituksia noudattaen. Mikäli (kesä)nopeusrajoitus ei ole tiedossa, laskennassa käytetään nopeutena 40 km/h. Tieverkostona on käytetty Väyläviraston Digiroad K -aineistoa, {0}. Värjäämätön osuus kartasta on yli 30 minuuttia. (en)",accessibilityLegendCatchmentInfo:"Alle {0} (en)",accessibilityByAirLoadingInfo:"Saavutettavuus linnuntietä pitkin: Ladataan... (en)",accessibilityByAirLoadingSuccess:"Saavutettavuus linnuntietä pitkin: Lataaminen onnistui (en)",accessibilityByAirLoadingError:"Saavutettavuus linnuntietä pitkin: Lataaminen epäonnistui (en)",accessibilityByAirLoadingCancel:"Saavutettavuus linnuntietä pitkin: Lataaminen peruutettiin (en)",extraBaseLayersDataLoadingInfo:"Muut karttatasot: Ladataan... (en)",extraBaseLayersDataLoadingSuccess:"Muut karttatasot: Lataaminen onnistui (en)",extraBaseLayersDataLoadingError:"Muut karttatasot: Lataaminen epäonnistui (en)",extraBaseLayersDataLoadingCancel:"Muut karttatasot: Lataaminen peruutettiin (en)",serviceCostsZipCodeLoadingInfo:"Kustannukset: Ladataan postinumeroalueita näkyville... (en)",serviceCostsZipCodeLoadingSuccess:"Kustannukset: Postinumeroalueiden lataus onnistui (en)",serviceCostsZipCodeLoadingError:"Kustannukset: Postinumeroalueiden lataus epäonnistui (en)",serviceCostsZipCodeLoadingCancel:"Kustannukset: Postinumeroalueiden lataus peruutettiin (en)",serviceCostsCostLineLoadingInfo:"Kustannukset: Ladataan kustannuksia postinumeroalueelta... (en)",serviceCostsCostLineLoadingSuccess:"Kustannuksett: Postinumeroalueen kustannusten lataus onnistui (en)",serviceCostsCostLineLoadingError:"Kustannukset: Postinumeroalueen kustannusten lataus epäonnistui (en)",serviceCostsCostLineLoadingCancel:"Kustannukset: Postinumeroalueen kustannusten lataus peruutettiin (en)",serviceCostLineDetailsLoadingInfo:"Kustannukset: Ladataan toimipaikan kustannustietoja... (en)",serviceCostLineDetailsLoadingSuccess:"Kustannukset: Toimipaikan kustannustietojen lataus onnistui (en)",serviceCostLineDetailsLoadingError:"Kustannukset: Toimipaikan kustannustietojen lataus epäonnistui (en)",serviceCostLineDetailsLoadingCancel:"Kustannukset: Toimipaikan kustannustietojen lataus peruutettiin (en)",serviceCostsValueTypeAbsolute:"Kustannukset (en)",serviceCostsValueTypeRelativeToPopulation:"Kustannukset per asukas (en)",serviceCostsValueTypeRelativeToVisits:"Kustannukset per suorite (en)",serviceCostsValueTypeRelativeToCustomers:"Kustannukset per asiakas (en)",serviceProviderLayerLoadingInfo:"Toimipaikat: Ladataan... (en)",serviceProviderLayerLoadingSuccess:"Toimipaikat: Lataaminen onnistui (en)",serviceProviderLayerLoadingError:"Toimipaikat: Lataaminen epäonnistui (en)",serviceProviderLayerLoadingCancel:"Toimipaikat: Lataaminen peruutettiin (en)",municipalityFilterContainerLoadingMessage:"Ladataan kotikuntasuodatinta... (en)",municipalityFilterContainerLoadingFailedMessage:"Kotikuntasuodattimen lataaminen epäonnistui (en)",municipalityFilterContainerLoadingCancelMessage:"Kotikuntasuodattimen lataaminen peruutettiin (en)",populationGridLayerInteractionShowDistance:"Näytä väestöruudun etäisyys lähimpään toimipaikkaan (en)",selectedGridPopulation:"Ruudun väestömäärä (en)",selectedGridDistance:"Etäisyys lähimpään toimipaikkaan linnuntietä pitkin (km) (en)",colorRowDistanceToNearestServiceProvider:"Etäisyys lähimpään toimipaikkaan (km) (en)",colorMatrixPeopleInGrid:"Ihmisiä ruudussa (en)",accessibilityByAirUIContainerLegendsColorMatrixTitle:"Toimipaikkojen saavutettavuus linnuntietä pitkin (en)",costPlotXAttributeText:"Kustannus yhtä suoritetta kohti (en)",costPlotYAttributeText:"Suoritteet (en)",costPlotXAttributeUnit:"€ (en)",costPlotYAttributeUnit:"kpl (en)",costsWithinAddressSelectableFeature:"Kustannukset osoitteeseen {0} (en)",costsWithinAddressServiceProviderNameLabel:"Toimiyksikön nimi (en)",costsWithinAddressServiceProviderHideInfo:"Piilota toimipaikan kustannusten tiedot (en)",costsWithinAddressServiceProviderShowInfo:"Näytä toimipaikan kustannusten tiedot (en)",costsWithinAddressServiceProviderCostsAll:"Toimipaikan kustannukset yhteensä (en)",costsWithinAddressServiceProviderCostsAllValue:"{0} euroa (en)",costsWithinAddressServiceProviderVolumesAll:"Toimipaikan suoritteet yhteensä (en)",costsWithinAddressServiceProviderVolumesAllValue:"{0} kpl (en)",costsWithinAddressPlotHide:"Piilota toimipaikan kustannusten hajontakuvio (en)",costsWithinAddressPlotShow:"Näytä toimipaikan kustannusten hajontakuvio (en)",costsWithinAddressInfoLabel:"Huomaathan, että Käytä osuussuodattimena -valinta ei vaikuta tällä välilehdellä näytettävään informaatioon. Hajontakuviosta on piilotettu toimiyksiköt, joissa on alle 5 suoritetta. (en)",costsWithinZipCodeAreaSelectableFeature:"Kustannukset postinumeroalueelta {0} (en)",costsWithinZipCodeAreaServiceProviderAddressLabel:"Toimipaikan osoite (en)",costsWithinZipCodeAreaServiceProviderInvalidAddress:"Toimipaikan osoitetta ei saatavilla (en)",costsWithinZipCodeAreaServiceProviderHideInfo:"Piilota postinumeroalueen kustannusten tiedot (en)",costsWithinZipCodeAreaServiceProviderShowInfo:"Näytä postinumeroalueen kustannusten tiedot (en)",costsWithinZipCodeAreaServiceProviderCostsAll:"Postinumeroalueen kustannukset yhteensä (en)",costsWithinZipCodeAreaServiceProviderCostsAllCohort:"Osuussuodattimen mukaiset kokonaiskustannukset (en)",costsWithinZipCodeAreaServiceProviderCostsAllValue:"{0} euroa (en)",costsWithinZipCodeAreaRelativeToPopulation:"Postinumeroalueen kustannukset per asukas (en)",costsWithinZipCodeAreaRelativeToPopulationValue:"{0} euroa (en)",costsWithinZipCodeAreaServiceProviderVolumesAll:"Postinumeroalueen suoritteet yhteensä (en)",costsWithinZipCodeAreaServiceProviderVolumesAllValue:"{0} kpl (en)",costsWithinZipCodeAreaInfoLabel:"Huomaathan, että Käytä osuussuodattimena -valinta vaikuttaa vain arvoon 'Osuussuodattimen mukaiset kokonaiskustannukset'. Hajontakuviosta on piilotettu toimipaikat, joissa on alle 5 suoritetta. (en)",costsWithinZipCodeAreaPlotHide:"Piilota postinumeroalueen kustannusten hajontakuvio (en)",costsWithinZipCodeAreaPlotShow:"Näytä postinumeroalueen kustannusten hajontakuvio (en)",customerVolumesLayerLoadingInfo:"Asiakasmäärät: Ladataan postinumeroalueita näkyville... (en)",customerVolumesLayerLoadingSuccess:"Asiakasmäärät: Postinumeroalueiden lataaminen onnistui (en)",customerVolumesLayerLoadingError:"Asiakasmäärät: Postinumeroalueiden lataaminen epäonnistui (en)",customerVolumesLayerLoadingCancel:"Asiakasmäärät: Postinumeroalueiden lataaminen peruutettiin (en)",customerVolumesLayerUpdaterLoadingInfo:"Asiakasmäärät: Päivitetään asiakasmääriä... (en)",customerVolumesLayerUpdaterLoadingSuccess:"Asiakasmäärät: Asiakasmäärien päivittäminen onnistui (en)",customerVolumesLayerUpdaterLoadingError:"Asiakasmäärät: Asiakasmäärien päivittäminen epäonnistui (en)",customerVolumesLayerUpdaterLoadingCancel:"Asiakasmäärät: Asiakasmäärien päivittäminen peruutettiin (en)",customerVolumesLegendTextAbsolute:"Valitun asiakasryhmän asiakasmäärät (hlö) (en)",customerVolumesLegendTextRelativeToPopulation:"Valitun asiakasryhmän asiakasmäärät (per asukas) (en)",customerVolumesLegendTextCohort:"Valitun asiakasryhmän asiakasmäärät (hlö) (osuussuodattimessa valittujen prosenttiosuus) (en)",customerVolumesLegendNoResults:"Valitulle asiakasryhmälle ei löytynyt asiakkaita (en)",customerVolumesPopupShowCustomerVolumesInZipCodeArea:"Näytä asiakasmäärät postinumeroalueella {0} (en)",customerVolumesPopupZipCodeAreaLabel:"Postinumeroalue (en)",customerVolumesPopupCustomerVolumesLabel:"Postinumeroalueen asiakasmäärä (en)",customerVolumesPopupRelativeCustomerVolumesLabel:"Alueen asukaslukuun suhteutettu asiakasmäärä (en)",customerVolumesPopupCohortCustomerVolumesLabel:"Osuussuodattimen mukainen asiakasmäärä (en)",customerVolumesValueTypeAbsolute:"Asiakkaiden määrä (en)",customerVolumesValueTypeRelativeToPopulation:"Peittävyys (en)",valueTypeCohortPortion:"Osuudet (en)",paavoPTLayerLoadingInfo:"Paavo: Ladataan postinumeroalueita näkyville... (en)",paavoPTLayerLoadingSuccess:"Paavo: Postinumeroalueiden lataaminen onnistui (en)",paavoPTLayerLoadingError:"Paavo: Postinumeroalueiden lataaminen epäonnistui (en)",paavoPTLayerLoadingCancel:"Paavo: Postinumeroalueiden lataaminen peruutettiin (en)",paavoPTLayerUpdaterLoadingInfo:"Paavo: Ladataan kokonaiskuvaa pääasiallisesta toiminnasta... (en)",paavoPTLayerUpdaterLoadingSuccess:"Paavo: Pääasiallisen toiminnan kokonaiskuvan lataaminen onnistui (en)",paavoPTLayerUpdaterLoadingError:"Paavo: Pääasiallisen toiminnan kokonaiskuvan lataaminen epäonnistui (en)",paavoPTLayerUpdaterLoadingCancel:"Paavo: Pääasiallisen toiminnan kokonaiskuvan lataaminen peruutettiin (en)",paavoPTLegendText:"Työllisyysprosentti postinumeroalueittain (en)",paavoPTLegendTextSourceShow:"Näytä lähde (en)",paavoPTLegendTextSourceHide:"Piilota lähde (en)",paavoPTLegendTextSource:"Lähde: Paavo, asukkaiden pääasiallinen toiminta (PT), {0} (en)",paavoPTLegendNoResults:"Työllisyysprosentti ei saatavilla (en)",paavoHELayerLoadingInfo:"Paavo: Ladataan postinumeroalueita näkyville... (en)",paavoHELayerLoadingSuccess:"Paavo: Postinumeroalueiden lataaminen onnistui (en)",paavoHELayerLoadingError:"Paavo: Postinumeroalueiden lataaminen epäonnistui (en)",paavoHELayerLoadingCancel:"Paavo: Postinumeroalueiden lataaminen peruutettiin (en)",paavoHELayerUpdaterLoadingInfo:"Paavo: Ladataan kokonaiskuvaa asukasrakenteesta... (en)",paavoHELayerUpdaterLoadingSuccess:"Paavo: Asukasrakenteen kokonaiskuvan lataaminen onnistui (en)",paavoHELayerUpdaterLoadingError:"Paavo: Asukasrakenteen kokonaiskuvan lataaminen epäonnistui (en)",paavoHELayerUpdaterLoadingCancel:"Paavo: Asukasrakenteen kokonaiskuvan lataaminen peruutettiin (en)",paavoHESelectableFeature:"Asukasrakenne postinumeroalueelta {0} (en)",paavoHELegendText:"Keski-ikä postinumeroalueittain (v) (en)",paavoHELegendTextSourceShow:"Näytä lähde (en)",paavoHELegendTextSourceHide:"Piilota lähde (en)",paavoHELegendTextSource:"Lähde: Paavo, asukasrakenne (HE), {0} (en)",paavoHELegendNoResults:"Keski-ikä ei saatavilla (en)",paavoHEAgeDistributionYAXisLabel:"Ikä (en)",paavoHEAgeDistributionXAxisLabel:"Väestömäärä (en)",paavoHEGenderDistributionYAXisLabel:"Sukupuoli (en)",paavoHEGenderDistributionXAxisLabel:"Väestömäärä (en)",paavoHEAdditionalInfo:"Paavo, asukasrakenne (HE), {0} (en)",paavoHEAdditionalInfoShow:"Näytä lisätiedot (en)",paavoHEAdditionalInfoHide:"Piilota lisätiedot (en)",paavoHEZeroValuesInfo:"Datan mahdolliset nolla-arvot johtuvat siitä, että (en)",paavoHEZeroValueActual:"datan arvo on nolla (en)",paavoHEZeroValueNotAvailable:"data ei ole saatavilla (en)",paavoHEZeroValueHidden:"data on piilotettu/tietosuojattu (en)",paavoHEAgeAverageLabel:"Asukkaiden keski-ikä on {0} vuotta (en)",paavoHEPopulationTotalLabel:"Asukkaita on yhteensä {0} henkilöä (en)",paavoHEShowAgePlot:"Näytä ikäjakauman kuvaaja (en)",paavoHEHideAgePlot:"Piilota ikäjakauman kuvaaja (en)",paavoHEShowGenderPlot:"Näytä sukupuolijakauman kuvaaja (en)",paavoHEHideGenderPlot:"Piilota sukupuolijakauman kuvaaja (en)",paavoPTChartYAxisLabel:"Pääasiallinen toiminta (en)",paavoPTChartXAxisLabel:"Väestömäärä (en)",paavoPTSelectableFeature:"Pääasiallinen toiminta postinumeroalueella {0} (en)",paavoPTSelectedFeatureDataLoadingInfo:"Paavo: Ladataan tietoja postinumeroalueen pääasiallisesta toiminnasta... (en)",paavoPTSelectedFeatureDataLoadingSuccess:"Paavo: Postinumeroalueen pääasiallisen toiminnan tietojen lataaminen onnistui (en)",paavoPTSelectedFeatureDataLoadingError:"Paavo: Postinumeroalueen pääasiallisen toiminnan tietojen lataaminen epäonnistui (en)",paavoPTSelectedFeatureDataLoadingCancel:"Paavo: Postinumeroalueen pääasiallisen toiminnan tietojen lataaminen peruutettiin (en)",paavoHESelectedFeatureDataLoadingInfo:"Paavo: Ladataan tietoja postinumeroalueen asukasrakenteesta... (en)",paavoHESelectedFeatureDataLoadingSuccess:"Paavo: Postinumeroalueen asukasrakenteen tietojen lataaminen onnistui (en)",paavoHESelectedFeatureDataLoadingError:"Paavo: Postinumeroalueen asukasrakenteen tietojen lataaminen epäonnistui (en)",paavoHESelectedFeatureDataLoadingCancel:"Paavo: Postinumeroalueen asukasrakenteen tietojen lataaminen peruutettiin (en)",paavoPTShowPlot:"Näytä pääasiallisen toiminnan kuvaaja (en)",paavoPTHidePlot:"Piilota pääasiallisen toiminnan kuvaaja (en)",paavoPTAdditionalInfo:"Paavo, asukkaiden pääasiallinen toiminta (PT), {0} (en)",paavoPTAdditionalInfoShow:"Näytä lisätiedot (en)",paavoPTAdditionalInfoHide:"Piilota lisätiedot (en)",paavoPTZeroValuesInfo:"Datan mahdolliset nolla-arvot johtuvat siitä, että (en)",paavoPTZeroValueActual:"datan arvo on nolla (en)",paavoPTZeroValueNotAvailable:"data ei ole saatavilla (en)",paavoPTZeroValueHidden:"data on piilotettu/tietosuojattu (en)",paavoPTEmploymentPercentage:"Työllisyysaste on {0} prosenttia (en)",notificationObjectCancelMessage:"Peruuta (en)",notificationObjectRetryMessage:"Yritä uudelleen (en)",genericCancelLoadingMessage:"Peruuta (en)",genericRetryMessage:"Yritä uudelleen (en)",mainDiagnosisSearchSelectedDiagnosesHeader:"Valitut diagnoosit (en)",mainDiagnosisSearchErrorMessage:"Diagnoosien hakeminen epäonnistui (en)",mainDiagnosisSearchNoResults:"Ei hakutuloksia (en)",mainDiagnosisSearchResetSelectedDiagnoses:"Tyhjennä valitut diagnoosit (en)",mainDiagnosisSearchSelectAllSearchResults:"Valitse kaikki hakutulokset (en)",dashboardLinksHeader:"Region Dashboard -näkymät (en)",dashboardLinksLoadingCancel:"Region-Dashboard linkkien lataaminen peruutettiin (en)",dashboardLinksLoadingError:"Region-Dashboard linkkien lataaminen epäonnistui (en)",dashboardLinkCostsHeader:"Kustannukset (en)",dashboardLinkCostsMunicipality:"Näytä kunnan {0} kustannukset (en)",dashboardLinkCostsZipCode:"Näytä postinumeroalueen {0} kustannukset (en)",dashboardLinkCostsPerCitizenHeader:"Kustannukset asukasta kohti (en)",dashboardLinkCostsPerCitizenMunicipality:"Näytä kunnan {0} kustannukset asukasta kohti (en)",dashboardLinkCostsPerCitizenZipCode:"Näytä postinumeroalueen {0} kustannukset asukasta kohti (en)",selectOnlySearchResults:"Valitse vain kaikki hakutulokset (en)",resetSelections:"Palauta valinnat (en)",useAsCohortFilterLabel:"Käytä osuussuodattimena (en)",useAsDynamicFilterLabel:"Käytä dynaamisena suodattimena (en)",contactTypeFilterLabel:"Yhteystapa (en)",contactTypeFilterActive:"Yhteystapasuodatin vaikuttaa tähän karttatasoon (en)",contactTypeFilterInActive:"Yhteystapasuodatin ei vaikuta tähän karttatasoon (en)",contactTypeFilterLoading:"Ladataan yhteystapasuodatinta ... (en)",contactTypeFilterLoadingFail:"Yhteystapasuodattimen lataaminen epäonnistui (en)",contactTypeFilterLoadingAbort:"Yhteystapasuodattimen lataaminen keskeytettiin (en)",servKindsTypesFilterName:"Palvelumuotosuodatin (en)",serviceKindsFilterHeader:"Palvelumuoto (en)",servKindsFilterIsActive:"Palvelumuotosuodatin vaikuttaa tähän karttatasoon (en)",servKindsFilterIsInactive:"Palvelumuotosuodatin ei vaikuta tähän karttatasoon (en)",servKindsFilterLoading:"Ladataan palvelumuotosuodatinta... (en)",servKindsFilterLoadingFail:"Palvelumuotosuodattimen lataaminen epäonnistui (en)",servKindsFilterLoadingAbort:"Palvelumuotosuodattimen lataaminen keskeytettiin (en)",customerVisitsLegendNoVisits:"Ei suoritteita (en)",customerVisitsLegendTooFewVisits:"Alle {0} tai ei suoritteita (en)",customerVolumesLegendNoCustomers:"Ei asiakkaita (en)",customerVolumesLegendTooFewCustomers:"Alle {0} tai ei asiakkaita (en)",providerCostsLegendNoCosts:"Ei kustannuksia (en)",providerCostsLegendTooFewVisits:"Ei kustannuksia tai alle {0} suoritetta (en)",paavoPTLegendDataNotAvailable:"Työllisyysprosentti ei saatavilla (en)",paavoHELegendDataNotAvailable:"Keski-ikä ei saatavilla (en)",paavo_he_men:"Miehet (en)",paavo_he_women:"Naiset (en)",paavo_he_age_0_2:"0-2 (en)",paavo_he_age_3_6:"3-6 (en)",paavo_he_age_7_12:"7-12 (en)",paavo_he_age_13_15:"13-15 (en)",paavo_he_age_16_17:"16-17 (en)",paavo_he_age_18_19:"18-19 (en)",paavo_he_age_20_24:"20-24 (en)",paavo_he_age_25_29:"25-29 (en)",paavo_he_age_30_34:"30-34 (en)",paavo_he_age_35_39:"35-39 (en)",paavo_he_age_40_44:"40-44 (en)",paavo_he_age_45_49:"45-49 (en)",paavo_he_age_50_54:"50-54 (en)",paavo_he_age_55_59:"55-59 (en)",paavo_he_age_60_64:"60-64 (en)",paavo_he_age_65_69:"65-69 (en)",paavo_he_age_70_74:"70-74 (en)",paavo_he_age_75_79:"75-79 (en)",paavo_he_age_80_84:"80-84 (en)",paavo_he_age_85_:"85- (en)",paavo_pt_work_force:"Työvoima (en)",paavo_pt_employed:"Työlliset (en)",paavo_pt_unemployed:"Työttömät (en)",paavo_pt_outside_work_force:"Työvoiman ulkopuolella olevat (en)",paavo_pt_children:"Lapset 0-14 vuotiaat (en)",paavo_pt_students:"Opiskelijat (en)",paavo_pt_pensioners:"Eläkeläiset (en)",paavo_pt_others:"Muut (työvoiman ulkopuolella olevat) (en)",extraBaseLayersDigiroadPublicTransportStops:"Joukkoliikenteen pysäkki (Digiroad), myös käyttämättömät (en)",extraBaseLayersTrafficBureau:"Julkinen liikenne (en)",extraBaseLayersPaavoData:"Tilastokeskus: Paavo (en)",extraBaseLayersPaavoPT:"Pääasiallinen toiminta (en)",extraBaseLayersPaavoHE:"Asukasrakenne (en)",extraBaseLayersStatisticsFinland:"Tilastokeskus: Muut (en)",extraBaseLayersPopulationDensity:"Väestötiheys (en)",extraBaseLayersParamsPublicTransportStopsLegendTitle:"Joukkoliikenteen pysäkit (en)",extraBaseLayersParamsPublicTransportStopsLegendCustomMessage:"Seuraavat pysäkkien merkit ilmestyvät kartalle, kun lähennät näkymää tarpeeksi. (en)",extraBaseLayersPopulationDensityLegendCustomMessage:"",extraBaseLayersPopulationDensityLegendTitle:"Väestötiheys ruuduittain (en)",agefilter_header:"Ikäluokat (Tilastokeskus) (en)",agefilter_ageGroup00:"0-vuotiaat (en)",agefilter_ageGroup01:"1-6-vuotiaat (en)",agefilter_ageGroup02:"7-14-vuotiaat (en)",agefilter_ageGroup03:"15-49-vuotiaat (en)",agefilter_ageGroup04:"50-64-vuotiaat (en)",agefilter_ageGroup05:"65-74-vuotiaat (en)",agefilter_ageGroup06:"75-84-vuotiaat (en)",agefilter_ageGroup07:"85-vuotiaat ja vanhemmat (en)",agefilter_ageGroup99:"Ikä tuntematon (en)",genderfilter_header:"Sukupuoli (en)",genderfilter_1:"Miehet (en)",genderfilter_2:"Naiset (en)",genderfilter_3:"Muut (en)",servicegroups_header:"Tietopaketit (en)",aura_header:"AURA-palveluluokat (en)"}});o.setLanguage(i);const s=o},99055:(e,t,n)=>{n.d(t,{PM:()=>i,YY:()=>o,b3:()=>u,kM:()=>s,mi:()=>c,nj:()=>a,q5:()=>l,sl:()=>r});const a="SET_FILTER_STATE",i="CLEAR_FILTER_VALUES",o="RESET_FILTER_STATE",s="SET_DYNAMIC_FILTER_VALUES",r=(e,t)=>({type:a,filterKey:e,filterData:t}),l=e=>({type:i,filterKey:e}),c=e=>({type:o,filterKey:e}),u=(e,t)=>({type:s,filterKey:e,values:t})},88937:(e,t,n)=>{n(14039),n(81802),n(10284),n(35012);var a=n(93379),i=n.n(a),o=n(7795),s=n.n(o),r=n(90569),l=n.n(r),c=n(3565),u=n.n(c),d=n(19216),p=n.n(d),m=n(44589),A=n.n(m),h=n(51424),g={};g.styleTagTransform=A(),g.setAttributes=u(),g.insert=l().bind(null,"head"),g.domAPI=s(),g.insertStyleElement=p(),i()(h.Z,g),h.Z&&h.Z.locals&&h.Z.locals;var v=n(81566),k=n(14890),C=n(69483),y=n.n(C),f=n(65427);const b=async(e,t)=>{const n=JSON.stringify(t);return await y().setItem(e,n),n};var E=n(78598),L=n(56462),B=n(74444);function S(e){const t={agegroups:{newFilterKey:L.oG,filterName:B.Z.agefilter_header},areamdcs:{newFilterKey:L.G1,filterName:B.Z.customersAreaMDCListContainerHeader},basicservicetypes:{newFilterKey:L.e3,filterName:B.Z.basicServiceTypesFilterHeader},eprgroups:{newFilterKey:L.WJ,filterName:B.Z.customersEPRListContainerHeader},genders:{newFilterKey:L.d5,filterName:B.Z.genderfilter_header},municipalities:{newFilterKey:L.$7,filterName:B.Z.municipalityFilterRootLabel},serviceproviders:{newFilterKey:L.XG,filterName:B.Z.serviceProviderTreeContainerLabel},servicetypes:{newFilterKey:L.xs,filterName:B.Z.serviceTypesFilterHeader},maindiagnoses:{newFilterKey:L.pA,filterName:B.Z.maindiagnosesFilterName}},n={};for(const a of Object.keys(t)){const i=t[a],o=i.newFilterKey,s=e.filters[a];let r=!1;if(e.filters&&e.filters.filterchangedstatuses&&(r=!!e.filters.filterchangedstatuses[o]),n[o]={filterName:i.filterName,values:s,labels:s,availableSelectionCount:s.length,enabled:!0,undoable:!1,changed:r},"maindiagnoses"===a){const t=[],a=[];for(const e of s)t.push(e.label),a.push(e);n[o].values=a,n[o].labels=t,n[o].availableSelectionCount=null,n[o].results=e.components.maindiagnosissearch.searchResults,delete n[o].enabled,delete n[o].undoable}}if(!0===e.components.timeslidercontainer.enabled){const t=!!e.filters.filterchangedstatuses[L.DU];n[L.DU]={filterName:"",enabled:!0,minimum:e.components.timeslidercontainer.minimum,maximum:e.components.timeslidercontainer.maximum,initialFrom:e.components.timeslidercontainer.initialFrom,initialTo:e.components.timeslidercontainer.initialTo,from:e.components.timeslidercontainer.from,to:e.components.timeslidercontainer.to,changed:t}}else n[L.DU]={filterName:"",enabled:!1,minimum:null,maximum:null,initialFrom:null,initialTo:null,from:null,to:null,changed:!1};return e.components.searchcontainer.searches={[L.pA]:e.components.searchcontainer.searches.MainDiagnosisFilterSearchKey,[L.XG]:e.components.searchcontainer.searches.ServiceProviderFilterSearchKey},delete e.components.timeslidercontainer,delete e.components.maindiagnosissearch,n[L.DU],e.filters={past:[],present:n,future:[]},e}const T={saveBookMark:async function(e,t,n){const a=Math.random().toString(36).substring(2)+Date.now().toString(36),i=JSON.stringify({name:e,id:a,frontendVersion:"1.3.0.4"}),o={name:e,frontendVersion:"1.3.0.4",id:a,state:n},s=await b(i,o);t&&this.exportBookMark(e,s)},importBookMark:async function(e){const{name:t,id:n,frontendVersion:a}=e,i=JSON.stringify({name:t,id:n,frontendVersion:a});await b(i,e)},exportBookMark:function(e,t){const n=new Blob([t],{type:"application/json;charset=utf-8"});(0,E.saveAs)(n,`${e}.json`)},tryToParseBookmarkFromStorageKey:function(e){try{const t=JSON.parse(e);if(t&&t.id&&t.name)return t}catch(e){return null}return null},getBookMarks:async function(){const e=await y().keys(),t=[];for(const n of e){const e=this.tryToParseBookmarkFromStorageKey(n);e&&t.push(e)}return t},removeBookMark:async function(e){await y().removeItem(JSON.stringify(e))},getBookMarkDataAsJSON:async function(e){return await y().getItem(JSON.stringify(e))},setSelectedBookMark:async function(e){await b(L.v7.SELECTED_BOOKMARK_KEY_IN_STORAGE,e)},restoreSelectedBookMarkState:async function(){const e=await y().getItem(L.v7.SELECTED_BOOKMARK_KEY_IN_STORAGE);if(!e)return null;const t=await y().getItem(e);if(t)try{const e=function(e){const t="1.3.0.4",n=e.frontendVersion;return t===n||(e.state=function(e,t,n){const a=[{fromVersions:[void 0,null,"1.0.6","1.0.7","<1.0.8"],toVersions:["1.0.8","1.0.9","1.0.10","1.0.11","1.0.12"],transformFn:S}];let i=null;for(const n of a)if(n.fromVersions.includes(e)&&n.toVersions.includes(t)){const a=B.Z.formatString(B.Z.bookmarkOpenConversionFound,e,t);alert(a),i=n.transformFn;break}return i?i(n):n}(n,t,e.state)),e}(JSON.parse(t)).state;return x(e),await y().removeItem(L.v7.SELECTED_BOOKMARK_KEY_IN_STORAGE),e}catch(e){const n="1.3.0.4",a=JSON.parse(t).frontendVersion;await y().removeItem(L.v7.SELECTED_BOOKMARK_KEY_IN_STORAGE),console.log(e);const i=B.Z.formatString(B.Z.bookmarkOpenFailed,a,n);alert(i)}return console.log("Could not find a bookmark to restore"),null}},x=e=>{P(e),e.components.overlayportal.mounted=!1,e.components.olpopup.mounted=!1,e.components.notificationcontainer.dataLoadingStatuses={},e.components.notificationcontainer.requestedAction={}},P=e=>{const t=["minimum","maximum","initialFrom","initialTo","from","to"],n=e.filters.present[L.DU];if(n)for(const e of t){const t=n[e];t&&(n[e]=(0,f.MY)(t))}};var I=n(96156);const w="SET_LANGUAGE";function F(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}const Z={languageCode:B.k},M="SET_ACTIVE_VIEWS",D="SET_SELECTABLE_VIEWS";function R(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function N(e){for(var t=1;tt.type===w?function(e){for(var t=1;t{switch(t.type){case M:return N({},e,{activeViews:t.activeViews});case D:return N({},e,{selectableViews:t.selectableViews});default:return e}},mainmenubar:(e=H,t)=>{switch(t.type){case j:return K({},e,{mainMenuBarWidth:t.width});case _:return K({},e,{open:!e.open});default:return e}},infoarea:(e=q,t)=>{switch(t.type){case U.Gj:return Y({},e,{infoAreaWidth:t.width});case U.vI:return Y({},e,{infoAreaOpen:!1,infoAreaWidth:0});case U.PF:return Y({},e,{infoAreaOpen:!0});default:return e}},infoareatabs:(e=Q,t)=>{switch(t.type){case $.OH:return J({},e,{activeTab:t.tabID});case $.Ft:return J({},e,{tabsWithData:e.tabsWithData.includes(t.tabID)?[...e.tabsWithData]:[...e.tabsWithData,t.tabID]});case $.OJ:return J({},e,{tabsWithData:e.tabsWithData.filter((e=>e!==t.tabID))});default:return e}},footer:(e=z,t)=>"SET_FOOTER_VISIBILITY"===t.type?function(e){for(var t=1;t{switch(t.type){case ee.MM:return ie({},e,{clickedPixel:t.clickedPixel,clickedCoordinates:t.clickedCoordinates,featuresIndexedByLayerName:t.featuresIndexedByLayerName});case ee.kn:return ie({},e,{selectedFeatureIndexedByLayerName:ie({},e.selectedFeatureIndexedByLayerName,{[t.layerName]:t.selectedFeature})});case ee.vM:return ie({},e,{clickedCoordinates:t.clickedCoordinates});case ee.cO:return ie({},e,{featuresIndexedByLayerName:ie({},e.featuresIndexedByLayerName,{[t.layerName]:t.features})});case ee.Sw:return ie({},e,{featuresIndexedByLayerName:ne()(e.featuresIndexedByLayerName,t.layerName)});case ee.IL:return ie({},e,{featuresIndexedByLayerName:ie({},e.featuresIndexedByLayerName,{[t.layerName]:e.featuresIndexedByLayerName[t.layerName].filter((e=>!t.featureIDsToRemove.includes(e.id)))})});case ee.XI:return ie({},e,{selectedFeatureIndexedByLayerName:ne()(e.selectedFeatureIndexedByLayerName,t.layerName)});default:return e}},overlayportal:(e=le,t)=>t.type===se?function(e){for(var t=1;t{switch(t.type){case ce.BS:return de({},e,{popupPath:t.popupPath});case ce.hN:return de({},e,{open:!0,popupPath:t.popupPath});case ce.yw:return de({},e,{mounted:!1,open:!1,popupPath:null});case ce.Ok:return de({},e,{mounted:t.mountedStatus});default:return e}},notificationcontainer:(e=ge,t)=>{switch(t.type){case me.BJ:return he({},e,{dataLoadingStatuses:he({},e.dataLoadingStatuses,{[t.key]:he({},e.dataLoadingStatuses[t.key],{dataLoadingStatus:t.dataLoadingStatus,dataLoadingNotificationType:t.dataLoadingNotificationType,dataLoadingNotificationMessage:t.dataLoadingNotificationMessage})})});case me.fA:return he({},e,{dataLoadingStatuses:ne()(e.dataLoadingStatuses,t.key)});case me.Gs:return he({},e,{dataLoadingStatuses:he({},e.dataLoadingStatuses,{[t.key]:he({},e.dataLoadingStatuses[t.key],{dataLoadingNotificationMessage:t.updatedMessage})})});case me.yk:return he({},e,{requestedAction:{notificationKey:t.key,actionType:t.actionType}});default:return e}},layerorderupdater:(e=Ce,t)=>t.type===ve?function(e){for(var t=1;tt.type===ye.D?be({},e,{searches:be({},e.searches,{[t.searchKey]:t.searchTerm})}):e,featureupdater:(e=Te,t)=>t.type===Le.f?Se({},e,{updatedFeatures:Se({},e.updatedFeatures,{layerName:t.layerName})}):e,loadablelayer:(e=we,t)=>t.type===xe.e?Ie({},e,{updatedLayer:Ie({},e.updatedLayer,{layerName:t.layerName})}):e,bookmarks:(e=Ne,t)=>{switch(t.type){case Fe:return Re({},e,{bookmarks:[...e.bookmarks,t.bookmark]});case Me:return Re({},e,{selectedBookmark:t.bookmark});case Ze:return Re({},e,{bookmarks:t.bookmarks});default:return e}}});var je=n(80240),_e=n(99055);function Ve(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Ke(e){for(var t=1;t{switch(t.type){case _e.nj:if(null!=t.filterData.values){const n=null!=t.filterData.availableSelectionCount?t.filterData.availableSelectionCount:e[t.filterKey].availableSelectionCount;let a=t.filterData.values;return t.filterData.values.length===n&&(a="all"),Ke({},e,{[t.filterKey]:Ke({},e[t.filterKey],{},t.filterData,{values:a})})}return Ke({},e,{[t.filterKey]:Ke({},e[t.filterKey],{},t.filterData)});case _e.PM:return Ke({},e,{[t.filterKey]:Ke({},e[t.filterKey],{values:[],labels:[],changed:!1})});case _e.YY:return Ke({},e,{[t.filterKey]:He[t.filterKey]});case _e.kM:return Ke({},e,{[t.filterKey]:Ke({},e[t.filterKey],{dynamicValues:t.values})});default:return e}}),(e=>e.filterData&&e.filterData.undoable)),ze=(0,k.UY)({components:Oe,views:je.I,filters:Ge});var Ue=n(67294),We=n(73935),Ye=n(6304),qe=n(45697),$e=n.n(qe),Xe=n(73955),Je=n.n(Xe);class Qe extends Ue.PureComponent{constructor(e){super(e),(0,I.Z)(this,"componentDidMount",(()=>{this.openChild()})),(0,I.Z)(this,"addEventListenersForWindow",(()=>{if(this.window)if(this.window.closed)clearInterval(this.addEventListenersForWindowInterval),this.release();else try{this.window.addEventListener("beforeunload",(()=>this.release())),this.unloadEventListenerSet=!0,clearInterval(this.addEventListenersForWindowInterval)}catch(e){}})),(0,I.Z)(this,"openChild",(()=>{const{url:e,name:t,features:n,center:a}=this.props;if("string"!=typeof a||void 0!==n.width&&void 0!==n.height){if("parent"===a)n.left=window.top.outerWidth/2+window.top.screenX-n.width/2,n.top=window.top.outerHeight/2+window.top.screenY-n.height/2;else if("screen"===a){const e=void 0!==window.screenLeft?window.screenLeft:screen.left,t=void 0!==window.screenTop?window.screenTop:screen.top,a=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width,i=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:screen.height;n.left=a/2-n.width/2+e,n.top=i/2-n.height/2+t}}else console.warn("width and height window features must be present when a center prop is provided");var i;this.window=window.open(e,t,(i=n,Object.keys(i).reduce(((e,t)=>{const n=i[t];return"boolean"==typeof n?e.push(`${t}=${n?"yes":"no"}`):e.push(`${t}=${n}`),e}),[]).join(","))),this.addEventListenersForWindowInterval=setInterval(this.addEventListenersForWindow,50)})),(0,I.Z)(this,"componentWillUnmount",(()=>{this.isUnMounted=!0,this.window&&this.window.close()})),(0,I.Z)(this,"release",(()=>{if(this.released)return;this.unloadEventListenerSet&&this.window.removeEventListener("beforeunload",this.release),this.released=!0;const{onUnload:e}=this.props;"function"==typeof e&&e(this.props.id)})),this.window=null,this.released=!1}render(){return null}}(0,I.Z)(Qe,"defaultProps",{url:"",name:"",title:"",features:{width:"600px",height:"640px"},onUnload:null,center:"parent"}),Qe.propTypes={children:$e().node,url:$e().string,name:$e().string,title:$e().string,features:$e().object,onUnload:$e().func,onBlock:$e().func,onLoad:$e().func,center:$e().oneOf(["parent","screen"]),copyStyles:$e().bool,id:$e().string.isRequired};const et=Qe;var tt=n(84668);class nt extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"state",{openWindowIDs:[]}),(0,I.Z)(this,"renderOpenWindows",(()=>{const e={height:window.innerHeight-100,width:window.innerWidth-100};return this.state.openWindowIDs.map((t=>Ue.createElement(et,{key:t,id:t,features:e,onUnload:this.handleWindowUnload,url:"/"})))})),(0,I.Z)(this,"cloneApp",(async()=>{const e=this.context.store.getState();await(async e=>{await y().setItem("reduxState",JSON.stringify(e))})(e);const t=Je()("window-");this.setState({openWindowIDs:[...this.state.openWindowIDs,t]})})),(0,I.Z)(this,"handleWindowUnload",(e=>{const t=this.state.openWindowIDs.filter((t=>t!==e));this.setState({openWindowIDs:t})})),(0,I.Z)(this,"renderIcon",(()=>Ue.createElement("span",{className:"fa-solid fa-window-restore"}))),(0,I.Z)(this,"renderText",(()=>B.Z.cloneAppButtonLabel))}render(){return Ue.createElement(Ue.Fragment,null,Ue.createElement(tt.Z,{onClick:this.cloneApp,renderIcon:this.renderIcon,renderText:this.renderText,tooltipText:B.Z.cloneAppButtonTooltip}),this.renderOpenWindows())}}nt.contextTypes={store:$e().object};const at=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(nt);var it=n(89601),ot={};ot.styleTagTransform=A(),ot.setAttributes=u(),ot.insert=l().bind(null,"head"),ot.domAPI=s(),ot.insertStyleElement=p(),i()(it.Z,ot),it.Z&&it.Z.locals&&it.Z.locals;class st extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"handleClick",(()=>{this.props.setLanguage(this.props.code)}))}render(){return Ue.createElement("li",{className:`languageSelectorEntry ${this.props.cls}`},Ue.createElement("button",{className:"languageSelectorEntry-button",onClick:this.handleClick},this.props.label))}}const rt=st;var lt=n(86982),ct={};ct.styleTagTransform=A(),ct.setAttributes=u(),ct.insert=l().bind(null,"head"),ct.domAPI=s(),ct.insertStyleElement=p(),i()(lt.Z,ct),lt.Z&<.Z.locals&<.Z.locals;const ut=[{code:"fi",label:"suomi"},{code:"sv",label:"svenska"},{code:"en",label:"English"}];class dt extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"setLanguage",(e=>{B.Z.setLanguage(e),this.props.setLanguage(e)}))}render(){return L.KW&&Ue.createElement("ul",{id:"languageSelector"},ut.map((e=>Ue.createElement(rt,{key:e.code,code:e.code,label:e.label,cls:this.props.languageCode===e.code?"active":"selectable",setLanguage:this.setLanguage}))))}}const pt=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})),(e=>({setLanguage:t=>{e((e=>({type:w,languageCode:e}))(t))}})))(dt);var mt=n(74679),At={};At.styleTagTransform=A(),At.setAttributes=u(),At.insert=l().bind(null,"head"),At.domAPI=s(),At.insertStyleElement=p(),i()(mt.Z,At),mt.Z&&mt.Z.locals&&mt.Z.locals;class ht extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"renderIcon",(()=>Ue.createElement("span",{className:"fa-solid fa-bars"}))),(0,I.Z)(this,"renderText",(()=>B.Z.mainMenuButtonLabel))}render(){const e=this.props.mainMenuBarOpen?"MainMenuButton MainMenuButton-active":"MainMenuButton";return Ue.createElement(tt.Z,{additionalClassNames:e,onClick:this.props.toggleMainMenuBar,renderIcon:this.renderIcon,renderText:this.renderText})}}const gt=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode,mainMenuBarOpen:e.components.mainmenubar.open})),(e=>({toggleMainMenuBar:()=>e({type:_})})))(ht);var vt=n(61120),kt=n.n(vt),Ct=n(96757);class yt extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"takeMapImage",(()=>{(0,Ct.$c)()&&alert(B.Z.captureScreenButtonIEAndEdgeNotification),kt()(document.getElementById("app")).then(this.saveCanvas)})),(0,I.Z)(this,"saveCanvas",(e=>{navigator.msSaveBlob?navigator.msSaveBlob(e.msToBlob(),"map.png"):e.toBlob((function(e){(0,E.saveAs)(e,"map.png")}))})),(0,I.Z)(this,"renderIcon",(()=>Ue.createElement("span",{className:"fas fa-camera"}))),(0,I.Z)(this,"renderText",(()=>B.Z.captureScreenButtonLabel))}render(){return Ue.createElement(tt.Z,{onClick:this.takeMapImage,renderIcon:this.renderIcon,renderText:this.renderText,tooltipText:B.Z.captureScreenButtonTooltip})}}const ft=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(yt);var bt=n(28540),Et={};Et.styleTagTransform=A(),Et.setAttributes=u(),Et.insert=l().bind(null,"head"),Et.domAPI=s(),Et.insertStyleElement=p(),i()(bt.Z,Et),bt.Z&&bt.Z.locals&&bt.Z.locals;var Lt=n(51871),Bt={};Bt.styleTagTransform=A(),Bt.setAttributes=u(),Bt.insert=l().bind(null,"head"),Bt.domAPI=s(),Bt.insertStyleElement=p(),i()(Lt.Z,Bt),Lt.Z&&Lt.Z.locals&&Lt.Z.locals;var St=n(7513),Tt=n(22913),xt=n(57369),Pt=n(5108),It=n(80983),wt=n(54973);class Ft extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"state",{loadingStatus:"loading",geospatialDataLicences:[],aborted:!1}),(0,I.Z)(this,"renderGeospatialDataLicences",(()=>Ue.createElement("table",null,Ue.createElement("thead",null,Ue.createElement("tr",{className:"InfoMenuGeospatialDataLicences-tableRow"},Ue.createElement("th",{className:"InfoMenuGeospatialDataLicences-tableCell"},B.Z.systemInfoGeospatialDataInfo),Ue.createElement("th",{className:"InfoMenuGeospatialDataLicences-tableCell"},B.Z.systemInfoGeospatialDataLicense),Ue.createElement("th",{className:"InfoMenuGeospatialDataLicences-tableCell"},B.Z.systemInfoGeospatialDataVersion))),Ue.createElement("tbody",null,this.state.geospatialDataLicences.map((e=>Ue.createElement("tr",{className:"InfoMenuGeospatialDataLicences-tableRow"},Ue.createElement("td",{className:"InfoMenuGeospatialDataLicences-tableCell"},e.description),Ue.createElement("td",{className:"InfoMenuGeospatialDataLicences-tableCell"},e.license),Ue.createElement("td",{className:"InfoMenuGeospatialDataLicences-tableCell"},e.data_fetched_at?e.data_fetched_at:"")))))))),(0,I.Z)(this,"fetchGeospatialDataLicenseData",((e,t,n)=>{if(this.isUnMounted)return;this.setState({loadingStatus:"loading",aborted:!1});const{promise:a,request:i}=(0,St.tU)("GET",`${L.yx}/system/geospatialdatalicences`,null,null,null,this.onGeospatialDataLicenseFetchAbort);a.then((n=>this.handleGeospatialDataLicenseDataFetchSuccess(e,t,n))).catch((e=>this.handleGeospatialDataLicenseDataFetchError(e))),n(i)})),(0,I.Z)(this,"handleGeospatialDataLicenseDataFetchSuccess",((e,t,n)=>{this.isUnMounted||t(e,JSON.parse(n))})),(0,I.Z)(this,"handleGeospatialDataLicenseDataFetchError",(()=>{this.setState({loadingStatus:"error",aborted:!1})})),(0,I.Z)(this,"commitGeospatialLicenseData",(e=>{this.setState({loadingStatus:"completed",geospatialDataLicences:e,aborted:!1})})),(0,I.Z)(this,"componentWillUnmount",(()=>{this.isUnMounted=!0})),(0,I.Z)(this,"refreshGeospatialDataLicenseFetch",(()=>{this.props.setRequestedAction("InfoMenuGeospatialDataLicences","refresh")})),(0,I.Z)(this,"abortGeospatialDataLicenseFetch",(()=>{this.props.setRequestedAction("InfoMenuGeospatialDataLicences","abort")})),(0,I.Z)(this,"onGeospatialDataLicenseFetchAbort",(()=>{this.setState({loadingStatus:"error",aborted:!0})}))}render(){const e=this.state.aborted?B.Z.systemInfoGeospatialDataLicencesLoadingCancelled:B.Z.systemInfoGeospatialDataLicencesLoadingFailed;return Ue.createElement(Ue.Fragment,null,Ue.createElement(Tt.Z,{notificationKey:"InfoMenuGeospatialDataLicences",canFetchData:!0,fetchData:this.fetchGeospatialDataLicenseData,handleFetchedDataCommit:this.commitGeospatialLicenseData}),Ue.createElement("h2",{className:"InfoMenuGeospatialDataLicences-header"},B.Z.systemInfoGeospatialDataLicencesHeader),Ue.createElement(It.Z,{loadingStatus:this.state.loadingStatus,loadingContent:Ue.createElement(Pt.Z,{loadingText:B.Z.systemInfoGeospatialDataLicencesLoading,onAbort:this.abortGeospatialDataLicenseFetch}),actualContent:Ue.createElement(wt.Z,{showLabel:B.Z.systemInfoGeospatialDataLicencesShowLabel,hideLabel:B.Z.systemInfoGeospatialDataLicencesHideLabel,isInitiallyHidden:!0},this.renderGeospatialDataLicences()),errorContent:Ue.createElement(xt.Z,{errorText:e,onRefresh:this.refreshGeospatialDataLicenseFetch})}))}}const Zt=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})),(e=>({setRequestedAction:(t,n)=>e((0,me.xd)(t,n))})))(Ft);var Mt=n(94473),Dt={};Dt.styleTagTransform=A(),Dt.setAttributes=u(),Dt.insert=l().bind(null,"head"),Dt.domAPI=s(),Dt.insertStyleElement=p(),i()(Mt.Z,Dt),Mt.Z&&Mt.Z.locals&&Mt.Z.locals;var Rt=n(30381),Nt=n.n(Rt);class Ot extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"state",{loadingStatus:"loading",systemInfo:{},aborted:!1}),(0,I.Z)(this,"renderSystemInfo",(e=>Object.keys(this.state.systemInfo).map((t=>{const n=e[t]?e[t]:t;return this.renderSystemInfoItem(t,n)})))),(0,I.Z)(this,"renderSystemInfoItemValue",(e=>Nt()(e,"YYYY-MM-DDTHH:mmZ",!0).isValid()?Nt()(e).format("D.MM.YYYY HH:mm"):e)),(0,I.Z)(this,"renderSystemInfoItem",((e,t)=>Ue.createElement("li",{key:e,className:"InfoMenuSystemInfo-item"},Ue.createElement("label",null,t,":")," ",this.renderSystemInfoItemValue(this.state.systemInfo[e])))),(0,I.Z)(this,"fetchSystemInfoData",((e,t,n)=>{if(this.isUnMounted)return;this.setState({loadingStatus:"loading"});const{promise:a,request:i}=(0,St.tU)("GET",`${L.yx}/system/status`,null,null,null,this.onSystemInfoFetchAbort);a.then((n=>this.handleSystemInfoDataFetchSuccess(e,t,n))).catch((e=>this.handleSystemInfoDataFetchError(e))),n(i)})),(0,I.Z)(this,"handleSystemInfoDataFetchSuccess",((e,t,n)=>{this.isUnMounted||t(e,JSON.parse(n))})),(0,I.Z)(this,"handleSystemInfoDataFetchError",(()=>{this.setState({loadingStatus:"error",aborted:!1})})),(0,I.Z)(this,"commitSystemInfoData",(e=>{this.setState({loadingStatus:"completed",systemInfo:e,aborted:!1})})),(0,I.Z)(this,"componentWillUnmount",(()=>{this.isUnMounted=!0})),(0,I.Z)(this,"refreshSystemInfoFetch",(()=>{this.props.setRequestedAction("InfoMenuSystemInfo","refresh")})),(0,I.Z)(this,"abortSystemInfoFetch",(()=>{this.props.setRequestedAction("InfoMenuSystemInfo","abort")})),(0,I.Z)(this,"onSystemInfoFetchAbort",(()=>{this.setState({loadingStatus:"error",aborted:!0})}))}render(){const e={versionGIS:B.Z.systemInfoVersionGIS,versionGISBackend:B.Z.systemInfoVersionGISBackend,versionPR:B.Z.systemInfoVersionPR,versionAPI:B.Z.systemInfoVersionAPI,lastLoaded:B.Z.systemInfoDataLastLoaded,systemInfo:B.Z.systemInfoSystemStatus,dataRows:B.Z.systemInfoDataRowCount,instancePRName:B.Z.systemInfoInstancePRName,technicalImplementation:B.Z.systemInfoTechnicalImplementation},t=this.state.aborted?B.Z.systemInfoLoadingCancelled:B.Z.systemInfoLoadingFailed;return Ue.createElement(Ue.Fragment,null,Ue.createElement(Tt.Z,{notificationKey:"InfoMenuSystemInfo",canFetchData:!0,fetchData:this.fetchSystemInfoData,handleFetchedDataCommit:this.commitSystemInfoData}),Ue.createElement("li",{className:"InfoMenuSystemInfo-item"},Ue.createElement("label",null,e.versionGIS,":")," ","1.3.0.4"),Ue.createElement(It.Z,{loadingStatus:this.state.loadingStatus,loadingContent:Ue.createElement(Pt.Z,{loadingText:B.Z.systemInfoLoading,onAbort:this.abortSystemInfoFetch}),actualContent:this.renderSystemInfo(e),errorContent:Ue.createElement(xt.Z,{errorText:t,onRefresh:this.refreshSystemInfoFetch})}))}}const jt=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})),(e=>({setRequestedAction:(t,n)=>e((0,me.xd)(t,n))})))(Ot);class _t extends Ue.PureComponent{render(){return Ue.createElement("div",{className:"InfoMenu"},Ue.createElement("h2",{className:"InfoMenu-header"},B.Z.systemInfoGeneralHeader),Ue.createElement("ul",{className:"InfoMenu-list"},Ue.createElement(jt,null),Ue.createElement(Zt,null)))}}const Vt=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(_t);var Kt=n(93390),Ht={};Ht.styleTagTransform=A(),Ht.setAttributes=u(),Ht.insert=l().bind(null,"head"),Ht.domAPI=s(),Ht.insertStyleElement=p(),i()(Kt.Z,Ht),Kt.Z&&Kt.Z.locals&&Kt.Z.locals;class Gt extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"state",{infoVisible:!1}),(0,I.Z)(this,"toggleInfo",(()=>{this.setState({infoVisible:!this.state.infoVisible})})),(0,I.Z)(this,"renderIcon",(()=>{const e=this.state.infoVisible?"fa-solid fa-circle-xmark":"fa-solid fa-circle-info";return Ue.createElement("span",{className:e})})),(0,I.Z)(this,"renderText",(()=>this.state.infoVisible?B.Z.systemInfoButtonCloseLabel:B.Z.systemInfoButtonOpenLabel))}render(){const e=this.state.infoVisible?"SystemInfoButton-active":"",t=this.state.infoVisible?B.Z.systemInfoButtonCloseTooltip:B.Z.systemInfoButtonOpenTooltip;return Ue.createElement(Ue.Fragment,null,Ue.createElement(tt.Z,{additionalClassNames:e,onClick:this.toggleInfo,renderIcon:this.renderIcon,renderText:this.renderText,tooltipText:t}),this.state.infoVisible&&Ue.createElement(Vt,null))}}const zt=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(Gt);var Ut=n(6746),Wt={};Wt.styleTagTransform=A(),Wt.setAttributes=u(),Wt.insert=l().bind(null,"head"),Wt.domAPI=s(),Wt.insertStyleElement=p(),i()(Ut.Z,Wt),Ut.Z&&Ut.Z.locals&&Ut.Z.locals;class Yt extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"state",{manualOpened:!1}),(0,I.Z)(this,"toggleManualOpenOrClosed",(e=>{this.setState((e=>({manualOpened:!this.state.manualOpened})))})),(0,I.Z)(this,"closeManual",(()=>{this.setState((e=>({manualOpened:!1})))})),(0,I.Z)(this,"renderIcon",(()=>{const e=this.state.manualOpened?"fa-solid fa-circle-xmark":"fa-solid fa-circle-question",t=this.state.manualOpened?"UserManualButton-activeIcon":"";return Ue.createElement("span",{className:`${t} ${e}`})})),(0,I.Z)(this,"renderText",(()=>{const e=this.state.manualOpened?"UserManualButton-activeText":"";return Ue.createElement("span",{className:e},this.state.manualOpened?B.Z.userManualButtonCloseLabel:B.Z.userManualButtonOpenLabel)})),(0,I.Z)(this,"render",(()=>{const e={height:window.innerHeight-100,width:window.innerWidth-100},t=this.state.manualOpened?B.Z.userManualButtonCloseTooltip:B.Z.userManualButtonOpenTooltip;return Ue.createElement(Ue.Fragment,null,Ue.createElement(tt.Z,{onClick:this.toggleManualOpenOrClosed,renderIcon:this.renderIcon,renderText:this.renderText,manualOpened:this.state.manualOpened,tooltipText:t}),this.state.manualOpened&&Ue.createElement(et,{key:"manualWindow",id:"manualWindow",features:e,onUnload:this.closeManual,url:"/resources/usermanual/usermanual.html"}))}))}}const qt=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(Yt),$t=n.p+"static/images/c18a1587e549c732e8e2..png";var Xt=n(9628),Jt={};Jt.styleTagTransform=A(),Jt.setAttributes=u(),Jt.insert=l().bind(null,"head"),Jt.domAPI=s(),Jt.insertStyleElement=p(),i()(Xt.Z,Jt),Xt.Z&&Xt.Z.locals&&Xt.Z.locals;var Qt=n(55929),en={};en.styleTagTransform=A(),en.setAttributes=u(),en.insert=l().bind(null,"head"),en.domAPI=s(),en.insertStyleElement=p(),i()(Qt.Z,en),Qt.Z&&Qt.Z.locals&&Qt.Z.locals;class tn extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"views",{root:"root",listbookmarks:"listbookmarks",savenewbookmark:"savenewbookmark"}),(0,I.Z)(this,"state",{currentView:this.views.root,bookmarkName:"",saveAsFile:!1,isSubmitSuccessful:null}),(0,I.Z)(this,"renderBookmarks",(()=>{const e=this.props.bookmarks.map((e=>Ue.createElement("li",{className:"BookmarkView-bookmark",key:e.id},Ue.createElement("p",null,e.name),Ue.createElement("div",{className:"BookmarkView-bookmark-actionButtons"},Ue.createElement("button",{className:"btn btn-default btn-xs BookmarkView-bookmark-actionButton",title:B.Z.bookmarkOpenTipLabel,onClick:()=>this.props.onBookmarkSelected(e)},Ue.createElement("span",{className:"fa-solid fa-window-restore"})),Ue.createElement("button",{className:"btn btn-default btn-xs BookmarkView-bookmark-actionButton",title:B.Z.bookmarkExportTipLabel,onClick:()=>this.props.onExportBookMark(e)},Ue.createElement("span",{className:"fa-solid fa-download"})),Ue.createElement("button",{className:"btn btn-default btn-xs BookmarkView-bookmark-actionButton",title:B.Z.bookmarkRemoveTipLabel,onClick:()=>this.props.onRemoveBookMark(e)},Ue.createElement("span",{className:"fa-solid fa-xmark"}))))));return Ue.createElement(Ue.Fragment,null,Ue.createElement("ul",null,e),this.props.bookMarkStorageType===L.B3.BOOKMARKING_LOCAL&&Ue.createElement("div",{className:"form-group"},Ue.createElement("label",{htmlFor:"importbookmark"},B.Z.bookmarkImportTipLabel),Ue.createElement("input",{type:"file",onChange:this.props.onImportBookMark,id:"importbookmark"})))})),(0,I.Z)(this,"setIsSubmitSuccessful",(e=>{this.setState({isSubmitSuccessful:e}),setTimeout((()=>{this.setState({isSubmitSuccessful:null})}),5e3)})),(0,I.Z)(this,"renderFormSubmitFeedback",(()=>{if(null===this.state.isSubmitSuccessful)return null;const e=this.state.isSubmitSuccessful?"BookmarkView-feedback-success":"BookmarkView-feedback-error",t=this.state.isSubmitSuccessful?B.Z.bookmarkSaveSuccess:B.Z.bookmarkSaveFail;return Ue.createElement("p",{className:`BookmarkView-feedback ${e}`},t)})),(0,I.Z)(this,"renderSaveBookmarkForm",(()=>Ue.createElement("form",{onSubmit:async e=>{try{e.preventDefault(),await this.props.onBookmarkSaved({bookmarkName:this.state.bookmarkName,saveAsFile:this.state.saveAsFile}),this.setIsSubmitSuccessful(!0)}catch(e){this.setIsSubmitSuccessful(!1)}}},Ue.createElement("div",{className:"form-group"},Ue.createElement("label",{htmlFor:"bookmarkname"},B.Z.boomarkNameLabel),Ue.createElement("input",{required:!0,type:"text",className:"form-control",id:"bookmarkname",value:this.state.bookmarkName,onChange:e=>{this.setState({bookmarkName:e.target.value})}})),Ue.createElement("div",{className:"checkbox"},Ue.createElement("label",null,Ue.createElement("input",{type:"checkbox",defaultChecked:this.state.saveAsFile,onChange:()=>{this.setState({saveAsFile:!this.state.saveAsFile})}})," ",B.Z.bookmarkSaveAsFileLabel)),Ue.createElement("button",{type:"submit",className:"btn btn-primary"},B.Z.bookmarkSaveLabel),this.renderFormSubmitFeedback()))),(0,I.Z)(this,"determineCurrentContent",(e=>{switch(e){case this.views.root:return Ue.createElement("div",{className:"BookmarkView-buttonContainer"},Ue.createElement("button",{className:"btn btn-default BookmarkView-button",onClick:()=>this.setState({currentView:this.views.savenewbookmark})},B.Z.bookmarkSaveBookmark),Ue.createElement("button",{className:"btn btn-default BookmarkView-button",onClick:()=>{this.props.onRequestBookMarks(),this.setState({currentView:this.views.listbookmarks})}},B.Z.bookmarkShowBookmarks));case this.views.listbookmarks:return this.renderBookmarks();case this.views.savenewbookmark:return this.renderSaveBookmarkForm()}}))}render(){return Ue.createElement("div",{className:"BookmarkView"},this.state.currentView!==this.views.root&&Ue.createElement("button",{className:"BookmarkView-backButton",onClick:()=>{this.setState({currentView:this.views.root})}},Ue.createElement("span",{className:"fa-solid fa-arrow-left"})),this.determineCurrentContent(this.state.currentView))}}tn.propTypes={bookmarks:$e().array.isRequired,onBookmarkSaved:$e().func,onBookmarkSelected:$e().func,onRequestBookMarks:$e().func,onImportBookMark:$e().func.isRequired,onExportBookMark:$e().func.isRequired,onRemoveBookMark:$e().func.isRequired,bookMarkStorageType:$e().oneOf([L.B3.BOOKMARKING_LOCAL,L.B3.BOOKMARKING_REMOTE]).isRequired,wasBookmarkSuccesfullySaved:$e().bool};const nn=tn;var an=n(51377),on={};on.styleTagTransform=A(),on.setAttributes=u(),on.insert=l().bind(null,"head"),on.domAPI=s(),on.insertStyleElement=p(),i()(an.Z,on),an.Z&&an.Z.locals&&an.Z.locals;class sn extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"state",{bookmarkViewVisible:!1,openWindowIDs:[]}),(0,I.Z)(this,"renderOpenWindows",(()=>{const e={height:window.innerHeight-100,width:window.innerWidth-100};return this.state.openWindowIDs.map((t=>Ue.createElement(et,{key:t,id:t,features:e,onUnload:this.handleWindowUnload,url:"/"})))})),(0,I.Z)(this,"handleWindowUnload",(e=>{const t=this.state.openWindowIDs.filter((t=>t!==e));this.setState({openWindowIDs:t})})),(0,I.Z)(this,"renderIcon",(()=>{const e=this.state.bookmarkViewVisible?"fa-solid fa-circle-xmark":"fa-solid fa-bookmark",t=this.state.bookmarkViewVisible?"BookmarkButton-activeIcon":"";return Ue.createElement("span",{className:`${t} ${e}`})})),(0,I.Z)(this,"renderText",(()=>{const e=this.state.bookmarkViewVisible?"BookmarkButton-activeText":"";return Ue.createElement("span",{className:e},this.state.bookmarkViewVisible?B.Z.bookmarkButtonCloseLabel:B.Z.bookmarkButtonLabel)})),(0,I.Z)(this,"toggleBookmarkView",(()=>{this.setState({bookmarkViewVisible:!this.state.bookmarkViewVisible})})),(0,I.Z)(this,"handleBookmarkSave",(async e=>{const{bookmarkName:t,saveAsFile:n}=e,a=this.context.store.getState();await this.props.bookMarkRepository.saveBookMark(t,n,a)})),(0,I.Z)(this,"fetchBookMarks",(async()=>{const e=await this.props.bookMarkRepository.getBookMarks();this.props.setBookMarks(e)})),(0,I.Z)(this,"handleBookMarkSelected",(e=>{this.props.setSelectedBookMark(e);const t=Je()("window-");this.setState({openWindowIDs:[...this.state.openWindowIDs,t]}),this.props.bookMarkRepository.setSelectedBookMark(e)})),(0,I.Z)(this,"handleBookMarkImported",(e=>{const t=e.target.files[0],n=new FileReader;n.onload=async e=>{const t=e.target.result,n=JSON.parse(t);await this.props.bookMarkRepository.importBookMark(n),this.fetchBookMarks()},n.readAsText(t,"UTF-8")})),(0,I.Z)(this,"handleBookMarkExported",(async e=>{const t=await this.props.bookMarkRepository.getBookMarkDataAsJSON(e);this.props.bookMarkRepository.exportBookMark(e.name,t)})),(0,I.Z)(this,"handleBookMarkRemoved",(async e=>{const t=e.name;confirm(B.Z.formatString(B.Z.bookmarkRemoveConfirmation,t))&&(await this.props.bookMarkRepository.removeBookMark(e),this.fetchBookMarks())}))}render(){return Ue.createElement(Ue.Fragment,null,Ue.createElement(tt.Z,{additionalClassNames:"BookmarkButton",renderIcon:this.renderIcon,renderText:this.renderText,onClick:this.toggleBookmarkView,tooltipText:B.Z.bookmarkButtonTipLabel},this.state.bookmarkViewVisible&&Ue.createElement(nn,{onBookmarkSaved:this.handleBookmarkSave,onBookmarkSelected:this.handleBookMarkSelected,bookmarks:this.props.bookmarks,onRequestBookMarks:this.fetchBookMarks,bookMarkStorageType:this.props.bookMarkStorageType,onImportBookMark:this.handleBookMarkImported,onExportBookMark:this.handleBookMarkExported,onRemoveBookMark:this.handleBookMarkRemoved})),this.renderOpenWindows())}}sn.contextTypes={store:$e().object},sn.propTypes={bookmarks:$e().array.isRequired,saveBookMark:$e().func.isRequired,setSelectedBookMark:$e().func.isRequired,bookMarkRepository:$e().object.isRequired,setBookMarks:$e().func.isRequired,bookMarkStorageType:$e().oneOf([L.B3.BOOKMARKING_LOCAL,L.B3.BOOKMARKING_REMOTE]).isRequired};const rn=(0,Ye.$j)((e=>({bookmarks:e.components.bookmarks.bookmarks})),(e=>({saveBookMark:t=>{e((e=>({type:Fe,bookmark:e}))(t))},setSelectedBookMark:t=>{e((e=>({type:Me,bookmark:e}))(t))},setBookMarks:t=>{e((e=>({type:Ze,bookmarks:e}))(t))}})))(sn);var ln=n(94892);class cn extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"goBackStepCount",1),(0,I.Z)(this,"formatActiveSelections",(()=>{const e=[];for(const[t,n]of Object.entries(this.props.filters)){const a=n.isSelectedAsDynamicFilter?n.dynamicValues:n.values;if(a&&a.length>0){const a={selectionID:t,selectionName:n.filterName,selectionValues:n.labels,availableSelectionCount:n.availableSelectionCount,isSelectedAsDynamicFilter:n.isSelectedAsDynamicFilter};e.push(a)}}return e})),(0,I.Z)(this,"onAllSelectionsRemoved",(e=>{this.goBackStepCount=e})),(0,I.Z)(this,"onAllSelectionsResetted",(e=>{this.goBackStepCount=e})),(0,I.Z)(this,"goBackSelection",(()=>{this.props.goBackSelection(this.goBackStepCount),this.goBackStepCount=1}))}render(){return Ue.createElement(ln.Z,{activeSelections:this.formatActiveSelections(),onGoBackSelection:this.goBackSelection,onGoForwardSelection:this.props.goForwardSelection,onAllSelectionsRemoved:this.onAllSelectionsRemoved,onAllSelectionsResetted:this.onAllSelectionsResetted,canGoBack:this.props.filtersPast.length>0,canGoForward:this.props.filtersFuture.length>0,languageCode:this.props.languageCode})}}cn.propTypes={filters:$e().object,clearFilterValues:$e().func,languageCode:$e().string};const un=(0,Ye.$j)((e=>({filtersPast:e.filters.past,filtersFuture:e.filters.future,filters:e.filters.present,languageCode:e.components.languageselector.languageCode})),(e=>({goBackSelection:t=>e({type:"UNDO",stepCount:t}),goForwardSelection:()=>e({type:"REDO"})})))(cn),dn=()=>Ue.createElement("div",{className:"Header"},Ue.createElement(gt,null),Ue.createElement("img",{id:"Header-logo",className:"Header-logo",src:$t,alt:"LOGEX logo",title:"LOGEX"}),Ue.createElement("h1",{className:"Header-ProductName"},"Region GIS"),Ue.createElement(un,null),Ue.createElement("div",{className:"Header-SecondaryButtonsContainer"},Ue.createElement(pt,null),Ue.createElement(rn,{bookMarkRepository:T,bookMarkStorageType:L.v7.SELECTED_BOOKMARK_STORAGE_TYPE}),Ue.createElement(ft,null),Ue.createElement(at,null),Ue.createElement(qt,null),Ue.createElement(zt,null)));var pn=n(78269),mn={};mn.styleTagTransform=A(),mn.setAttributes=u(),mn.insert=l().bind(null,"head"),mn.domAPI=s(),mn.insertStyleElement=p(),i()(pn.Z,mn),pn.Z&&pn.Z.locals&&pn.Z.locals;const An=({children:e})=>Ue.createElement("div",{className:"MainContent",id:"maincontent"},e);var hn=n(22122),gn=n(80789),vn={};vn.styleTagTransform=A(),vn.setAttributes=u(),vn.insert=l().bind(null,"head"),vn.domAPI=s(),vn.insertStyleElement=p(),i()(gn.Z,vn),gn.Z&&gn.Z.locals&&gn.Z.locals;var kn=n(10700);class Cn extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"renderFilters",(()=>L.XE.map((e=>{const t=L.Oq[e],n=this.props.filters[e].changed,a=this.props.filters[e].isSelectedAsCohortFilter,i=this.props.filters[e].isSelectedAsDynamicFilter,o=t.filterComponent;if(t.filterComponentType===L.dT.PORTAL)return Ue.createElement(o,(0,hn.Z)({key:e},t.props,{filterKey:e,setFilterState:this.props.setFilterState,resetFilterState:this.props.resetFilterState,languageCode:this.props.languageCode,setRequestedAction:this.props.setRequestedAction}));const s=(0,kn.j)(e);let r=`FilterListContainer-filterIcon ${s.props.className}`;a&&(r+=" isSelectedAsCohortFilter"),i&&(r+=" isSelectedAsDynamicFilter"),n&&(r+=" filter-has-changed");let l=Ue.cloneElement(s,{className:r});return!1===this.props.filters[e].enabled&&(l=null),Ue.createElement("div",{className:"FilterListContainer-filter",key:e},l,Ue.createElement(o,(0,hn.Z)({},t.props,{filterKey:e,resetFilterState:this.props.resetFilterState,setFilterState:this.props.setFilterState,clearFilterValues:this.props.clearFilterValues,languageCode:this.props.languageCode,setRequestedAction:this.props.setRequestedAction})))}))))}render(){return Ue.createElement("div",{className:"FilterListContainer"},this.renderFilters())}}const yn=(0,Ye.$j)((e=>({eprGroupsEnabled:e.filters.present[L.WJ].enabled,filters:e.filters.present,languageCode:e.components.languageselector.languageCode})),(e=>({setFilterState:(t,n)=>e((0,_e.sl)(t,n)),clearFilterValues:t=>e((0,_e.q5)(t)),resetFilterState:t=>e((0,_e.mi)(t)),setRequestedAction:(t,n)=>e((0,me.xd)(t,n))})))(Cn);var fn=n(32063),bn={};bn.styleTagTransform=A(),bn.setAttributes=u(),bn.insert=l().bind(null,"head"),bn.domAPI=s(),bn.insertStyleElement=p(),i()(fn.Z,bn),fn.Z&&fn.Z.locals&&fn.Z.locals;class En extends Ue.PureComponent{render(){return Ue.createElement("div",{className:"MainMenuBar-FilterBlockHeader"},Ue.createElement("h2",{className:"MainMenuBar-FilterListHeading"},this.props.title),this.props.children)}}En.propTypes={title:$e().string.isRequired};const Ln=En;var Bn=n(70776),Sn=n(33389),Tn=n(15263),xn={};xn.styleTagTransform=A(),xn.setAttributes=u(),xn.insert=l().bind(null,"head"),xn.domAPI=s(),xn.insertStyleElement=p(),i()(Tn.Z,xn),Tn.Z&&Tn.Z.locals&&Tn.Z.locals;var Pn=n(73138),In=n(37080),wn={};wn.styleTagTransform=A(),wn.setAttributes=u(),wn.insert=l().bind(null,"head"),wn.domAPI=s(),wn.insertStyleElement=p(),i()(In.Z,wn),In.Z&&In.Z.locals&&In.Z.locals;class Fn extends Ue.PureComponent{constructor(e){super(e),(0,I.Z)(this,"renderHelpTooltip",(e=>{const t=Je()();return Ue.createElement(Pn.u,{id:t,className:"HelpItem-HelpTooltip"},e)})),(0,I.Z)(this,"componentDidMount",(()=>{const{tooltipLocalizationKey:e,placement:t}=this.props,n=null!=t&&""!==t?t:"right",a=B.Z.getString(e,B.Z.getLanguage());this.tooltip=new Pn.u(this.tooltipRef.current,{title:a,placement:n,trigger:"hover"})})),(0,I.Z)(this,"componentWillUnmount",(()=>{this.tooltip.dispose()})),this.tooltipRef=Ue.createRef()}render(){return Ue.createElement("button",{type:"button",className:"HelpItem",ref:this.tooltipRef},Ue.createElement("span",{className:"fa-solid fa-circle-question"}))}}const Zn=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(Fn);var Mn=n(59325),Dn={};Dn.styleTagTransform=A(),Dn.setAttributes=u(),Dn.insert=l().bind(null,"head"),Dn.domAPI=s(),Dn.insertStyleElement=p(),i()(Mn.Z,Dn),Mn.Z&&Mn.Z.locals&&Mn.Z.locals;class Rn extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"renderIcons",(()=>L.XE.map((e=>{if(!1===this.props.filters[e].enabled)return null;const t=L.Oq[e],n=this.props.activeFilterNames&&this.props.activeFilterNames.includes(e),a=this.props.filters[e].changed,i=this.props.filters[e].isSelectedAsCohortFilter,o=this.props.filters[e].isSelectedAsDynamicFilter,s=(0,kn.j)(e);let r=`FilterIcon ${s.props.className}`;n&&(r+=" active",i&&(r+=" isSelectedAsCohortFilter"),o&&(r+=" isSelectedAsDynamicFilter"),a&&(r+=" filter-has-changed"));const l=n?t.filterActiveIconTooltipLocalizationKey:t.filterInactiveIconTooltipLocalizationKey,c=l?B.Z[l]:this.props.filters[e].filterName+B.Z[n?"filterIsActiveSuffix":"filterIsInactiveSuffix"];return Ue.cloneElement(s,{key:e,className:r,title:c})}))))}render(){return this.renderIcons()}}Rn.propTypes={activeFilterNames:$e().array};const Nn=(0,Ye.$j)((e=>({eprGroupsEnabled:e.filters.present[L.WJ].enabled,filters:e.filters.present,languageCode:e.components.languageselector.languageCode})))(Rn);class On extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"handleChange",(()=>{const{selected:e,viewId:t,toggleOption:n}=this.props;n(!e,t)}))}render(){const{selected:e,viewId:t,option:n,ComponentToRender:a,provided:i}=this.props;return Ue.createElement("div",(0,hn.Z)({className:"ViewOption-wrapper"+(e?" active":"")},i.draggableProps,{ref:i.innerRef}),Ue.createElement("div",{className:"ViewOption"},Ue.createElement("button",{className:"ViewOption-header",onClick:this.handleChange},Ue.createElement("div",{className:"ViewOption-icon"},(0,kn.j)(t)),Ue.createElement("span",{className:e?"ViewOption-checked":"ViewOption-unchecked"}),Ue.createElement("label",{className:"ViewOption-label"},B.Z.getString(n.labelLocalizationKey,B.Z.getLanguage()))),Ue.createElement("div",{className:"ViewOption-actionButtons"},Ue.createElement("span",(0,hn.Z)({title:B.Z.mainMenuMapLayersDragHandleTooltip},i.dragHandleProps,{className:"ViewOption-dragHandle fas fa-arrows-alt"})),Ue.createElement("div",{className:"ViewOption-helpItem"},Ue.createElement(Zn,{tooltipLocalizationKey:n.helpTooltipLocalizationKey})))),Ue.createElement("div",{className:"ViewOption-activeFilters"},Ue.createElement(Nn,{activeFilterNames:this.props.activeFilters})),e&&a&&Ue.createElement("div",{className:"ViewOption-Content"},Ue.createElement(a,null)))}}const jn=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(On);var _n=n(16e3),Vn={};Vn.styleTagTransform=A(),Vn.setAttributes=u(),Vn.insert=l().bind(null,"head"),Vn.domAPI=s(),Vn.insertStyleElement=p(),i()(_n.Z,Vn),_n.Z&&_n.Z.locals&&_n.Z.locals;class Kn extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"toggleOption",((e,t)=>{const n=this.props.activeViews,a=e?[...n,t]:n.filter((e=>e!==t));this.props.setActiveViews(a)})),(0,I.Z)(this,"reorder",((e,t,n)=>{const a=Array.from(e),[i]=a.splice(t,1);return a.splice(n,0,i),a})),(0,I.Z)(this,"renderOptions",(()=>{const e=this.props.activeViews;return this.props.selectableViews.map(((t,n)=>Ue.createElement(Sn._l,{key:t,draggableId:t,index:n},((n,a)=>Ue.createElement(jn,{key:t,viewId:t,option:L.nk[t],selected:e.includes(t),toggleOption:this.toggleOption,ComponentToRender:L.nk[t].viewUiComponent,isDragging:a.isDragging,provided:n,activeFilters:L.nk[t].viewFilters})))))})),(0,I.Z)(this,"onDragEnd",(e=>{if(!e.destination)return;const t=this.reorder(this.props.selectableViews,e.source.index,e.destination.index);this.props.setSelectableViews(t)})),(0,I.Z)(this,"resetViewOptionOrder",(()=>{this.props.setSelectableViews(L.dh)}))}render(){return Ue.createElement("div",{className:"ViewOptionList"},Ue.createElement("div",{className:"ViewOptionList-headerRow"},Ue.createElement("h2",{className:"ViewOptionList-header"},B.Z.mainMenuMapLayers),Ue.createElement("button",{className:"btn btn-default btn-xs ViewOptionList-resetOrder",onClick:this.resetViewOptionOrder},B.Z.mainMenuMapLayersRestoreDefaultOrder)),Ue.createElement(Sn.Z5,{onDragEnd:this.onDragEnd},Ue.createElement(Sn.bK,{droppableId:"droppable"},((e,t)=>Ue.createElement("div",(0,hn.Z)({ref:e.innerRef},e.droppableProps),this.renderOptions())))))}}const Hn=(0,Ye.$j)((e=>({activeViews:e.components.viewoptionlist.activeViews,selectableViews:e.components.viewoptionlist.selectableViews,languageCode:e.components.languageselector.languageCode})),(e=>({setActiveViews:t=>e({type:M,activeViews:t}),setSelectableViews:t=>e((e=>({type:D,selectableViews:e}))(t))})))(Kn);var Gn=n(80244),zn={};zn.styleTagTransform=A(),zn.setAttributes=u(),zn.insert=l().bind(null,"head"),zn.domAPI=s(),zn.insertStyleElement=p(),i()(Gn.Z,zn),Gn.Z&&Gn.Z.locals&&Gn.Z.locals;class Un extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"onResize",(e=>{this.props.updateMainMenuBarWidth(e)}))}render(){const{sidebarOpen:e,footerOpen:t}=this.props,n=e?"MainMenuBar":"MainMenuBar hidden ",a={height:`calc(100% - ${t?"80px":"0px"})`};return Ue.createElement("div",{className:n,style:a,id:"MainMenuBar"},Ue.createElement(Ln,{title:B.Z.mainMenuFilters}),Ue.createElement(yn,null),Ue.createElement(Hn,null),Ue.createElement(Bn.Z,{handleWidth:!0,onResize:this.onResize}))}}const Wn=(0,Ye.$j)((e=>({footerOpen:e.components.footer.open,languageCode:e.components.languageselector.languageCode,sidebarOpen:e.components.mainmenubar.open})),(e=>({updateMainMenuBarWidth:t=>e((e=>({type:j,width:e}))(t))})))(Un);var Yn=n(35141),qn=n(18446),$n=n.n(qn);class Xn extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"componentDidMount",(()=>{this.registerEventListenerForAMapClick(this.props.map)})),(0,I.Z)(this,"componentDidUpdate",(e=>{if(e.updatedFeatures!==this.props.updatedFeatures){const e=this.updateFocusedAndSelectedFeatures(this.props.updatedFeatures.layerName);0!==e.length&&this.props.dispatchBatchedActions(e)}if(e.updatedLayer!==this.props.updatedLayer){const e=this.updateFocusedAndSelectedFeatures(this.props.updatedLayer.layerName);0!==e.length&&this.props.dispatchBatchedActions(e)}})),(0,I.Z)(this,"updateFocusedAndSelectedFeatures",(e=>{const t=(0,Yn.xn)(this.props.map,e);let n=[];const a=this.updateFocusedFeaturesOfALayer(t,e),i=this.updateSelectedFeaturesOfALayer(t,e);return a&&(n=n.concat(a)),i&&(n=n.concat(i)),n})),(0,I.Z)(this,"updateFocusedFeaturesOfALayer",((e,t)=>{const n=this.props.featuresIndexedByLayerName[t];if(!n)return null;const a=[],i=[],o=[];for(const t of n){let n=null;if(t.properties.features)n=(0,Yn.LW)(e,t.properties.features[0].id);else{const a=t.id;n=(0,Yn.C_)(e,a)}if(!n){o.push(t.id);continue}const a=this.formatOpenLayersFeatureToReduxStore(n);$n()(t,a)||i.push(a)}return 0!==i.length&&a.push((0,ee.b8)(t,i)),0!==o.length&&a.push((0,ee.k4)(o,t)),a})),(0,I.Z)(this,"updateSelectedFeaturesOfALayer",((e,t)=>{const n=this.props.selectedFeatureIndexedByLayerName[t];if(!n)return null;const a=n.id,i=(0,Yn.C_)(e,a);if(!i)return(0,ee.u7)(t);const o=this.formatOpenLayersFeatureToReduxStore(i);return $n()(o,n)?null:(0,ee.fI)(t,o)})),(0,I.Z)(this,"formatOpenLayersFeatureToReduxStore",(e=>{if(!e.get("features"))return this.geoJSONFormat.writeFeatureObject(e);const t=this.geoJSONFormat.writeFeatureObject(e);return t.properties.features=this.geoJSONFormat.writeFeaturesObject(t.properties.features),t})),(0,I.Z)(this,"formatOpenLayersFeatureToReduxStore",(e=>{const t=e.get("features");if(!t){const t=e.getProperties();return delete t[e.getGeometryName()],{id:e.getId(),properties:t}}const n={id:Je()("feature-"),properties:{features:[]}};for(const e of t){const t=this.formatOpenLayersFeatureToReduxStore(e);n.properties.features.push(t)}return n})),(0,I.Z)(this,"registerEventListenerForAMapClick",(e=>{e.on("click",this.handleMapClick)})),(0,I.Z)(this,"handleMapClick",(e=>{const t=e.pixel,n=e.coordinate,a={};this.props.map.forEachFeatureAtPixel(t,((e,t)=>{const n=t.get("name"),i=this.formatOpenLayersFeatureToReduxStore(e);a[n]||(a[n]=[]),a[n].push(i)})),Object.keys(a).length>0&&this.props.setMapClickHandlerData(t,n,a)}))}render(){return null}}Xn.propTypes={};const Jn=(0,Ye.$j)((e=>({clickedPixel:e.components.mapclickhandler.clickedPixel,featuresIndexedByLayerName:e.components.mapclickhandler.featuresIndexedByLayerName,selectedFeatureIndexedByLayerName:e.components.mapclickhandler.selectedFeatureIndexedByLayerName,updatedFeatures:e.components.featureupdater.updatedFeatures,updatedLayer:e.components.loadablelayer.updatedLayer})),(e=>({setMapClickHandlerData:(t,n,a)=>e((0,ee.s6)(t,n,a)),dispatchBatchedActions:t=>e((0,v.$C)(t)),setSelectedFeatureIndexedByLayerName:(t,n)=>e((0,ee.fI)(t,n)),setFeaturesIndexedByLayerName:(t,n)=>e((0,ee.b8)(t,n))})))(Xn);class Qn extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"orderLayers",((e,t)=>{const n=[];for(const a of e){const e=t[a];n.push.apply(n,e)}const a=n.reverse(),i={};a.forEach(((e,t)=>{const n=(0,Yn.xn)(this.props.map,e),a=t+1;n&&n.setZIndex(a),i[e]=a})),this.props.updateLayerOrder(i)})),(0,I.Z)(this,"componentDidUpdate",(e=>{e.viewsOrdered===this.props.viewsOrdered&&e.viewsMappedToLayers===this.props.viewsMappedToLayers||this.orderLayers(this.props.viewsOrdered,this.props.viewsMappedToLayers)})),(0,I.Z)(this,"componentDidMount",(()=>{this.orderLayers(this.props.viewsOrdered,this.props.viewsMappedToLayers)}))}render(){return null}}Qn.propTypes={map:$e().object.isRequired,updateLayerOrder:$e().func.isRequired,viewsMappedToLayers:$e().object.isRequired,viewsOrdered:$e().array.isRequired};const ea=Qn;var ta=n(67930),na=n(62782),aa=n(47752),ia=n(62450),oa=n(28097),sa=n(4479);function ra(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function la(e){for(var t=1;t{const e=[];for(const t of this.props.selectableBaseLayers)e[t.z_index]=t.layer_name;return e.reverse()})),(0,I.Z)(this,"componentDidUpdate",(e=>{if(e.selectableBaseLayers!==this.props.selectableBaseLayers&&0!==this.props.selectableBaseLayers.length){const e=this.generateExtraBaseLayerOrder();this.setState({viewsMappedToLayers:la({},this.state.viewsMappedToLayers,{[L.gU]:e})})}}))}render(){return Ue.createElement(ea,{map:this.props.map,viewsOrdered:this.props.viewsOrdered,updateLayerOrder:this.props.updateLayerOrder,viewsMappedToLayers:this.state.viewsMappedToLayers})}}ca.propTypes={map:$e().object};const ua=(0,Ye.$j)((e=>({viewsOrdered:e.components.viewoptionlist.selectableViews,selectableBaseLayers:e.views.extrabaselayers.selectableBaseLayers})),(e=>({updateLayerOrder:t=>e((e=>({type:ve,updatedLayerOrder:e}))(t))})))(ca);var da=n(4470),pa={};pa.styleTagTransform=A(),pa.setAttributes=u(),pa.insert=l().bind(null,"head"),pa.domAPI=s(),pa.insertStyleElement=p(),i()(da.Z,pa),da.Z&&da.Z.locals&&da.Z.locals;var ma=n(90728),Aa=n(86320);const ha=n.p+"static/images/da6b3bb2b5415401394f..svg",ga=n.p+"static/images/579339e523829fb5ac28..svg",va=n.p+"static/images/a1418a33ef43042843d3..svg",ka=n.p+"static/images/f869b749804f4c0b3973..svg";var Ca=n(84177),ya={};ya.styleTagTransform=A(),ya.setAttributes=u(),ya.insert=l().bind(null,"head"),ya.domAPI=s(),ya.insertStyleElement=p(),i()(Ca.Z,ya),Ca.Z&&Ca.Z.locals&&Ca.Z.locals;class fa extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"panSouth",(()=>{this.pan("south")})),(0,I.Z)(this,"panNorth",(()=>{this.pan("north")})),(0,I.Z)(this,"panWest",(()=>{this.pan("west")})),(0,I.Z)(this,"panEast",(()=>{this.pan("east")})),(0,I.Z)(this,"pan",(e=>{const{map:t}=this.props,n=t.getView(),a=128*n.getResolution();let i=0,o=0;"south"===e||"north"===e?o="south"===e?-a:a:i="west"===e?-a:a;const s=[i,o];(0,ma.U1)(s,n.getRotation());const r=n.getCenter();if(r){const e=[r[0]+i,r[1]+o];n.getAnimating()&&n.cancelAnimations(),n.animate({center:e,duration:100,easing:Aa.GE})}}))}render(){return Ue.createElement("div",{className:"MapPanControl"},Ue.createElement("button",{className:"MapPanControl-button",onClick:this.panNorth,title:B.Z.mapPanNorthTooltip},Ue.createElement("img",{src:ka,alt:B.Z.mapPanNorthTooltip})),Ue.createElement("div",{className:"MapPanControl-center"},Ue.createElement("button",{className:"MapPanControl-button",onClick:this.panWest,title:B.Z.mapPanWestTooltip},Ue.createElement("img",{src:ga,alt:B.Z.mapPanWestTooltip})),Ue.createElement("button",{className:"MapPanControl-button",onClick:this.panEast,title:B.Z.mapPanEastTooltip},Ue.createElement("img",{src:va,alt:B.Z.mapPanEastTooltip}))),Ue.createElement("button",{className:"MapPanControl-button",onClick:this.panSouth,title:B.Z.mapPanSouthTooltip},Ue.createElement("img",{src:ha,alt:B.Z.mapPanSouthTooltip})))}}const ba=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(fa),Ea=n.p+"static/images/29c60473729ade2b25e9..svg",La=n.p+"static/images/56c02b7351200e7cb55f..svg";var Ba=n(61445),Sa={};Sa.styleTagTransform=A(),Sa.setAttributes=u(),Sa.insert=l().bind(null,"head"),Sa.domAPI=s(),Sa.insertStyleElement=p(),i()(Ba.Z,Sa),Ba.Z&&Ba.Z.locals&&Ba.Z.locals;class Ta extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"zoomIn",(()=>{this.zoom(1)})),(0,I.Z)(this,"zoomOut",(()=>{this.zoom(-1)})),(0,I.Z)(this,"zoom",(e=>{const{map:t}=this.props,n=t.getView();if(!n)return;const a=n.getZoom();if(a){const t=a+e;n.getAnimating()&&n.cancelAnimations(),n.animate({zoom:t,duration:250,easing:this.easeOut})}}))}easeOut(e){return 1-Math.pow(1-e,3)}render(){const e={left:`${this.props.sidebarWidth+10}px`};return Ue.createElement("div",{className:"MapZoomControl",style:e},Ue.createElement("button",{title:B.Z.mapZoomInTooltip,onClick:this.zoomIn,className:"MapZoomControl-button"},Ue.createElement("img",{src:Ea,alt:B.Z.mapZoomInTooltip})),Ue.createElement("button",{title:B.Z.mapZoomOutTooltip,onClick:this.zoomOut,className:"MapZoomControl-button"},Ue.createElement("img",{src:La,alt:B.Z.mapZoomOutTooltip})))}}const xa=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})))(Ta);class Pa extends Ue.PureComponent{render(){const e={right:`${this.props.infoAreaWidth+10}px`};return Ue.createElement("div",{className:"MapControls",style:e},Ue.createElement(ba,{map:this.props.map}),Ue.createElement(xa,{map:this.props.map}))}}const Ia=(0,Ye.$j)((e=>({infoAreaWidth:e.components.infoarea.infoAreaWidth})))(Pa);var wa=n(25303),Fa=n(64841),Za={};Za.styleTagTransform=A(),Za.setAttributes=u(),Za.insert=l().bind(null,"head"),Za.domAPI=s(),Za.insertStyleElement=p(),i()(Fa.Z,Za),Fa.Z&&Fa.Z.locals&&Fa.Z.locals;class Ma extends Ue.PureComponent{componentDidMount(){this.scaleLineControl=new wa.ZP({units:this.props.units,target:"mapScale"}),this.props.map.addControl(this.scaleLineControl)}componentWillUnmount(){this.props.map.removeControl(this.scaleLineControl)}render(){const e={position:"absolute",right:this.props.infoAreaWidth,bottom:!0===this.props.timeSliderEnabledStatus?"150px":"8px"};return Ue.createElement("div",{id:"mapScale",style:e})}}Ma.propTypes={map:$e().object.isRequired,units:$e().string.isRequired};const Da=(0,Ye.$j)((e=>({infoAreaWidth:e.components.infoarea.infoAreaWidth,timeSliderEnabledStatus:e.filters.present[L.DU].enabled})))(Ma);var Ra=n(40188),Na=n(58493),Oa=n(12868),ja=n(67644),_a=n(85386),Va=n(13002),Ka=n(21915);const Ha="element",Ga="map",za="offset",Ua="position",Wa="positioning",Ya=function(e){Na.ZP.call(this),this.options=e,this.id=e.id,this.insertFirst=void 0===e.insertFirst||e.insertFirst,this.stopEvent=void 0===e.stopEvent||e.stopEvent,this.element=document.createElement("DIV"),this.element.className=void 0!==e.className?e.className:"ol-overlay-container "+ja.$A,this.element.style.position="absolute",this.autoPan=void 0!==e.autoPan&&e.autoPan,this.autoPanAnimation=e.autoPanAnimation||{},this.autoPanMargin=void 0!==e.autoPanMargin?e.autoPanMargin:20,this.rendered={bottom_:"",left_:"",right_:"",top_:"",visible:!0},this.mapPostrenderListenerKey=null,(0,Va.oL)(this,(0,Na.v_)(Ha),this.handleElementChanged,this),(0,Va.oL)(this,(0,Na.v_)(Ga),this.handleMapChanged,this),(0,Va.oL)(this,(0,Na.v_)(za),this.handleOffsetChanged,this),(0,Va.oL)(this,(0,Na.v_)(Ua),this.handlePositionChanged,this),(0,Va.oL)(this,(0,Na.v_)(Wa),this.handlePositioningChanged,this),void 0!==e.element&&this.setElement(e.element),this.setOffset(void 0!==e.offset?e.offset:[0,0]),this.setPositioning(void 0!==e.positioning?e.positioning:Oa.Z.TOP_LEFT),void 0!==e.position&&this.setPosition(e.position)};var qa,$a;qa=Ya,$a=Na.ZP,qa.prototype=Object.create($a.prototype),qa.prototype.constructor=qa,Ya.prototype.getElement=function(){return this.get(Ha)},Ya.prototype.getId=function(){return this.id},Ya.prototype.getMap=function(){return this.get(Ga)},Ya.prototype.getOffset=function(){return this.get(za)},Ya.prototype.getPosition=function(){return this.get(Ua)},Ya.prototype.getPositioning=function(){return this.get(Wa)},Ya.prototype.handleElementChanged=function(){(0,_a.ep)(this.element);const e=this.getElement();e&&this.element.appendChild(e)},Ya.prototype.handleMapChanged=function(){this.mapPostrenderListenerKey&&((0,_a.ZF)(this.element),(0,Va.bN)(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const e=this.getMap();if(e){this.mapPostrenderListenerKey=(0,Va.oL)(e,Ra.Z.POSTRENDER,this.render,this),this.updatePixelPosition();const t=this.stopEvent?e.getOverlayContainerStopEvent():e.getOverlayContainer();this.insertFirst?t.insertBefore(this.element,t.childNodes[0]||null):t.appendChild(this.element)}},Ya.prototype.render=function(){this.updatePixelPosition()},Ya.prototype.handleOffsetChanged=function(){this.updatePixelPosition()},Ya.prototype.handlePositionChanged=function(){0!==this.element.offsetWidth&&(this.updatePixelPosition(),this.get(Ua)&&this.autoPan&&this.panIntoView())},Ya.prototype.handlePositioningChanged=function(){this.updatePixelPosition()},Ya.prototype.setElement=function(e){this.set(Ha,e)},Ya.prototype.setMap=function(e){this.set(Ga,e)},Ya.prototype.setOffset=function(e){this.set(za,e)},Ya.prototype.setPosition=function(e){this.set(Ua,e)},Ya.prototype.panIntoView=async function(){const e=this.getMap();if(!e||!e.getTargetElement())return;const t=this.getRect(e.getTargetElement(),e.getSize()),n=this.getElement(),a=this.getRect(n,[(0,_a.iO)(n),(0,_a.Pb)(n)]),i=this.autoPanMargin;if(!(0,Ka.r4)(t,a)){const n=a[0]-t[0],o=t[2]-a[2],s=a[1]-t[1],r=t[3]-a[3],l=[0,0];if(n<0?l[0]=n-i:o<0&&(l[0]=Math.abs(o)+i),s<0?l[1]=s-i:r<0&&(l[1]=Math.abs(r)+i),0!==l[0]||0!==l[1]){const t=e.getView().getCenter(),n=await(0,Yn.Ep)(e,t),a=[n[0]+l[0],n[1]+l[1]];e.getView().animate({center:e.getCoordinateFromPixel(a),duration:this.autoPanAnimation.duration,easing:this.autoPanAnimation.easing})}}},Ya.prototype.getRect=function(e,t){const n=e.getBoundingClientRect(),a=n.left+window.pageXOffset,i=n.top+window.pageYOffset;return[a,i,a+t[0],i+t[1]]},Ya.prototype.setPositioning=function(e){this.set(Wa,e)},Ya.prototype.setVisible=function(e){this.rendered.visible!==e&&(this.element.style.display=e?"":"none",this.rendered.visible=e)},Ya.prototype.updatePixelPosition=function(){const e=this.getMap(),t=this.getPosition();if(!e||!e.isRendered()||!t)return void this.setVisible(!1);const n=e.getPixelFromCoordinate(t),a=e.getSize();this.updateRenderedPosition(n,a)},Ya.prototype.updateRenderedPosition=function(e,t){const n=this.element.style,a=this.getOffset(),i=this.getPositioning();this.setVisible(!0);let o=a[0],s=a[1];if(i==Oa.Z.BOTTOM_RIGHT||i==Oa.Z.CENTER_RIGHT||i==Oa.Z.TOP_RIGHT){""!==this.rendered.left_&&(this.rendered.left_=n.left="");const a=Math.round(t[0]-e[0]-o)+"px";this.rendered.right_!=a&&(this.rendered.right_=n.right=a)}else{""!==this.rendered.right_&&(this.rendered.right_=n.right=""),i!=Oa.Z.BOTTOM_CENTER&&i!=Oa.Z.CENTER_CENTER&&i!=Oa.Z.TOP_CENTER||(o-=this.element.offsetWidth/2);const t=Math.round(e[0]+o)+"px";this.rendered.left_!=t&&(this.rendered.left_=n.left=t)}if(i==Oa.Z.BOTTOM_LEFT||i==Oa.Z.BOTTOM_CENTER||i==Oa.Z.BOTTOM_RIGHT){""!==this.rendered.top_&&(this.rendered.top_=n.top="");const a=Math.round(t[1]-e[1]-s)+"px";this.rendered.bottom_!=a&&(this.rendered.bottom_=n.bottom=a)}else{""!==this.rendered.bottom_&&(this.rendered.bottom_=n.bottom=""),i!=Oa.Z.CENTER_LEFT&&i!=Oa.Z.CENTER_CENTER&&i!=Oa.Z.CENTER_RIGHT||(s-=this.element.offsetHeight/2);const t=Math.round(e[1]+s)+"px";this.rendered.top_!=t&&(this.rendered.top_=n.top=t)}},Ya.prototype.getOptions=function(){return this.options};const Xa=Ya;class Ja extends Ue.PureComponent{constructor(e){super(e),(0,I.Z)(this,"enableEventPropagation",(e=>{e.stopPropagation=()=>{}})),(0,I.Z)(this,"convertToClick",(e=>{let t;-1!==navigator.userAgent.indexOf("MSIE")||1==!!document.documentMode?(t=document.createEvent("MouseEvent"),t.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null)):t=new MouseEvent("click",{bubbles:!0}),t.stopPropagation=()=>{},e.target.dispatchEvent(t)})),(0,I.Z)(this,"addOverlay",(e=>{this.overlay=new Xa({element:e,autoPan:!0,autoPanAnimation:{duration:250},stopEvent:!0,positioning:"top-center"}),this.props.map.addOverlay(this.overlay),this.props.map.render()})),(0,I.Z)(this,"cleanUp",(()=>{this.props.map.removeOverlay(this.overlay)})),(0,I.Z)(this,"componentDidMount",(()=>{this.props.position&&0!==this.props.position.length&&this.overlay.setPosition(this.props.position),this.props.overlayMounted()})),(0,I.Z)(this,"componentDidUpdate",(()=>{this.overlay.setPosition(this.props.position)})),this.el=document.createElement("div"),this.el.setAttribute("id","OLOverlay"),this.el.onclick=this.enableEventPropagation,this.addOverlay(this.el)}componentWillUnmount(){this.cleanUp()}render(){return null}}Ja.propTypes={map:$e().object.isRequired,position:$e().array};const Qa=(0,Ye.$j)((e=>({position:e.components.mapclickhandler.clickedCoordinates})),(e=>({overlayMounted:()=>e({type:se})})))(Ja);var ei=n(23903),ti=n(24472),ni=n(1908),ai=n(31564),ii=n(4039),oi=n(62914),si=n(36365);class ri extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"componentDidMount",(()=>{const{map:e}=this.props,t=L.pD?"/offlinemap/tile/{z}/{x}/{y}.png":"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png",n=new oi.Z({source:new si.Z({url:t,projection:"EPSG:3857"})});e.getLayers().insertAt(0,n)}))}render(){return null}}const li=ri;var ci=n(98280);class ui extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"componentDidMount",(()=>{const{map:e,center:t,projection:n,zoom:a,minZoom:i,maxZoom:o,extent:s}=this.props,r=new ci.ZP({center:t,projection:n,zoom:a,minZoom:i,maxZoom:o,extent:s,constrainOnlyCenter:!0,constrainResolution:!0});e.setView(r)}))}render(){return null}}const di=ui;var pi=n(82847),mi={};mi.styleTagTransform=A(),mi.setAttributes=u(),mi.insert=l().bind(null,"head"),mi.domAPI=s(),mi.insertStyleElement=p(),i()(pi.Z,mi),pi.Z&&pi.Z.locals&&pi.Z.locals;const Ai=[50199.4814,6582464.0358,761274.6247,7799839.8902];class hi extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"state",{canInitializeMap:!1,mapMounted:!1,mapInitialCenter:[491338.114526,6992833.349345],mapInitialZoom:2}),(0,I.Z)(this,"fetchMapConfiguration",((e,t,n)=>{const{promise:a,request:i}=(0,St.tU)("GET","/resources/map_config.json",{headers:{"Content-Type":"application/json"}},null,null,null);a.then((n=>t(e,JSON.parse(n)))).catch((e=>console.log(e))),n(i)})),(0,I.Z)(this,"configureProjection",(()=>{ti.Z.defs("urn:x-ogc:def:crs:EPSG:3067","+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"),(0,ni.z)(ti.Z),(0,ai.U2)("urn:x-ogc:def:crs:EPSG:3067").setExtent(Ai)})),(0,I.Z)(this,"getInitialCenterFromMapConfig",(e=>{const{mapInitialCenterPlaceOrCoordinate:t}=e;let n=this.state.mapInitialCenter;return"string"==typeof t&&e.possiblePlacesForInitialCenter[t]&&(n=e.possiblePlacesForInitialCenter[t]),Array.isArray(t)&&(n=t),n})),(0,I.Z)(this,"initMap",(e=>{const t=this.getInitialCenterFromMapConfig(e),n=e.mapInitialZoom?e.mapInitialZoom:this.state.mapInitialZoom;this.configureProjection(),this.map=new ei.Z({target:"MapContainer",controls:(0,ii.ce)({attribution:!1,zoom:!1,rotate:!1})}),this.setState({mapMounted:!0,mapInitialCenter:t,mapInitialZoom:n})})),(0,I.Z)(this,"renderMapComponents",(()=>{const{activeViews:e}=this.props;return Ue.createElement(Ue.Fragment,null,Ue.createElement(di,{map:this.map,center:this.state.mapInitialCenter,projection:"urn:x-ogc:def:crs:EPSG:3067",zoom:this.state.mapInitialZoom,maxZoom:18,minZoom:2,extent:Ai}),Ue.createElement(li,{map:this.map}),Ue.createElement(Ia,{map:this.map}),Ue.createElement(Da,{map:this.map,units:L.j3}),Ue.createElement(Jn,{map:this.map}),Ue.createElement(Qa,{map:this.map}),Ue.createElement(ua,{map:this.map}),e.map((e=>{const t=L.C5[e];return t?Ue.createElement(t,{key:e,map:this.map}):null})))}))}render(){const{mapMounted:e}=this.state;return Ue.createElement("div",{className:"MapContainer",id:"MapContainer"},Ue.createElement(Tt.Z,{canFetchData:!0,notificationKey:"mapContainer",fetchData:this.fetchMapConfiguration,handleFetchedDataCommit:this.initMap}),e&&this.renderMapComponents())}}const gi=(0,Ye.$j)((e=>({activeViews:e.components.viewoptionlist.activeViews})))(hi);n(97938);var vi=n(57368),ki=n(99174),Ci={};Ci.styleTagTransform=A(),Ci.setAttributes=u(),Ci.insert=l().bind(null,"head"),Ci.domAPI=s(),Ci.insertStyleElement=p(),i()(ki.Z,Ci),ki.Z&&ki.Z.locals&&ki.Z.locals;class yi extends Ue.PureComponent{render(){return Ue.createElement(vi.Ix,{toastClassName:"ToastContainer-overrides",draggable:!1})}}const fi=yi;var bi=n(77583),Ei={};Ei.styleTagTransform=A(),Ei.setAttributes=u(),Ei.insert=l().bind(null,"head"),Ei.domAPI=s(),Ei.insertStyleElement=p(),i()(bi.Z,Ei),bi.Z&&bi.Z.locals&&bi.Z.locals;class Li extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"onToggleInfoAreaContent",(()=>{this.props.infoAreaOpen?this.props.hideInfoAreaContent():this.props.showInfoAreaContent()}))}render(){if(0===this.props.tabsWithData.length)return null;const e=this.props.infoAreaOpen?"fa-solid fa-chevron-right":"fa-solid fa-chevron-left";return Ue.createElement("button",{id:"InfoAreaToggler",className:"btn btn-default InfoAreaToggler",onClick:this.onToggleInfoAreaContent},Ue.createElement("span",{className:`${e} InfoAreaToggler-glyph`}))}}Li.propTypes={infoAreaOpen:$e().bool.isRequired};const Bi=(0,Ye.$j)((e=>({tabsWithData:e.components.infoareatabs.tabsWithData})),(e=>({showInfoAreaContent:()=>e((0,U.r0)()),hideInfoAreaContent:()=>e((0,U.MQ)())})))(Li);var Si=n(29023),Ti={};Ti.styleTagTransform=A(),Ti.setAttributes=u(),Ti.insert=l().bind(null,"head"),Ti.domAPI=s(),Ti.insertStyleElement=p(),i()(Si.Z,Ti),Si.Z&&Si.Z.locals&&Si.Z.locals;var xi=n(38890),Pi={};Pi.styleTagTransform=A(),Pi.setAttributes=u(),Pi.insert=l().bind(null,"head"),Pi.domAPI=s(),Pi.insertStyleElement=p(),i()(xi.Z,Pi),xi.Z&&xi.Z.locals&&xi.Z.locals;class Ii extends Ue.PureComponent{render(){return Ue.createElement("div",{className:"InfoAreaTabContent "+(this.props.isHidden?"hidden":"")},Ue.createElement("div",{className:"InfoAreaTabContent-initialContent",id:`${this.props.tabID}-initialContent`},this.props.tabInitialContent),Ue.createElement("div",{id:this.props.tabID}))}}Ii.propTypes={tabID:$e().string,tabInitialContent:$e().string,isHidden:$e().bool};const wi=Ii;class Fi extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"renderTabs",(()=>Ue.createElement(Ue.Fragment,null,Ue.createElement("ul",{className:"nav nav-tabs"},this.props.tabsWithData.map((e=>{const t=L.G7[e],n=B.Z.getString(t.labelLocalizationKey,B.Z.getLanguage());return Ue.createElement("li",{key:e,className:"InfoAreaTab nav-item"},Ue.createElement("a",{href:"#",className:"nav-link "+(e===this.props.activeTab?"active":""),onClick:()=>this.props.setActiveInfoAreaTab(e)},Ue.createElement("div",{className:"InfoAreaTab-title"},Ue.createElement("div",{className:"InfoAreaTab-title-glyph"},(0,kn.j)(e)),Ue.createElement("label",{className:"InfoAreaTab-title-label"},n))))}))))))}render(){return 0===this.props.tabsWithData.length?null:Ue.createElement("div",{className:"InfoAreaTabs "+(this.props.visible?"":"hidden")},this.renderTabs(),this.props.tabsWithData.map((e=>{const t=e===L.sR?Ue.createElement("p",null,B.Z.infoAreaTabInitialContent):"",n=!(this.props.activeTab===e);return Ue.createElement(wi,{key:e,tabID:e,tabInitialContent:t,isHidden:n})})))}}Fi.propTypes={visible:$e().bool.isRequired,activeTab:$e().string,tabsWithData:$e().array,setActiveInfoAreaTab:$e().func};const Zi=(0,Ye.$j)((e=>({activeTab:e.components.infoareatabs.activeTab,tabsWithData:e.components.infoareatabs.tabsWithData,languageCode:e.components.languageselector.languageCode})),(e=>({setActiveInfoAreaTab:t=>e((0,$.Lt)(t))})))(Fi);var Mi=n(23477),Di={};Di.styleTagTransform=A(),Di.setAttributes=u(),Di.insert=l().bind(null,"head"),Di.domAPI=s(),Di.insertStyleElement=p(),i()(Mi.Z,Di),Mi.Z&&Mi.Z.locals&&Mi.Z.locals;class Ri extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"onResize",(e=>{this.props.updateInfoAreaWidth(e)}))}render(){const e={height:`calc(100% - ${this.props.footerOpen?"80px":"0px"})`};return Ue.createElement("div",{className:"InfoArea",style:e},Ue.createElement(Bi,{infoAreaOpen:this.props.infoAreaOpen}),Ue.createElement(Zi,{visible:this.props.infoAreaOpen}),Ue.createElement(Bn.Z,{handleWidth:!0,onResize:this.onResize}))}}Ri.propTypes={updateInfoAreaWidth:$e().func,infoAreaOpen:$e().bool};const Ni=(0,Ye.$j)((e=>({infoAreaOpen:e.components.infoarea.infoAreaOpen,footerOpen:e.components.footer.footerOpen})),(e=>({updateInfoAreaWidth:t=>e((0,U.yT)(t))})))(Ri);var Oi=n(11614),ji={};ji.styleTagTransform=A(),ji.setAttributes=u(),ji.insert=l().bind(null,"head"),ji.domAPI=s(),ji.insertStyleElement=p(),i()(Oi.Z,ji),Oi.Z&&Oi.Z.locals&&Oi.Z.locals;class _i extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"componentDidMount",(()=>{this.props.onPopupMount()}))}render(){return Ue.createElement("div",{className:"Popup",id:"Popup"},Ue.createElement("div",{className:"Popup-toolbar"},this.props.backButtonVisible&&Ue.createElement("button",{className:"Popup-glyph",onClick:this.props.onBackButtonClicked},Ue.createElement("span",{className:"fa-solid fa-arrow-left-long"})),Ue.createElement("button",{className:"Popup-glyph Popup-close",onClick:this.props.onClose},Ue.createElement("span",{className:"fa-solid fa-xmark"}))),Ue.createElement("div",{className:"Popup-content",id:"Popup-content"},this.props.children))}}_i.propTypes={onClose:$e().func,backButtonVisible:$e().bool,onBackButtonClicked:$e().func,popupPath:$e().string};const Vi=_i;class Ki extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"componentDidUpdate",(e=>{null!==e.currentPopupPath&&null!==this.props.currentPopupPath&&e.position!==this.props.position&&null!==this.props.position&&((0,Ct.EL)(this.props.featuresIndexedByLayerName)||this.props.setPopupPath("root"))})),(0,I.Z)(this,"handleClose",(()=>{this.props.setMapClickCoordinates(null),this.props.closePopup()})),(0,I.Z)(this,"handleBackButtonClicked",(()=>{const e=this.props.currentPopupPath.split("/");e.pop(),this.props.setPopupPath(e.join("/"))})),(0,I.Z)(this,"handlePopupMounted",(()=>{this.props.setPopupMountedStatus(!0)}))}render(){return this.props.OLOverlayMounted&&this.props.currentPopupPath?We.createPortal(Ue.createElement(Vi,{onClose:this.handleClose,backButtonVisible:"root"!==this.props.currentPopupPath,onBackButtonClicked:this.handleBackButtonClicked,onPopupMount:this.handlePopupMounted}),document.getElementById("OLOverlay")):null}}Ki.propTypes={OLOverlayMounted:$e().bool.isRequired};const Hi=(0,Ye.$j)((e=>({featuresIndexedByLayerName:e.components.mapclickhandler.featuresIndexedByLayerName,OLOverlayMounted:e.components.overlayportal.mounted,currentPopupPath:e.components.olpopup.popupPath,position:e.components.mapclickhandler.clickedCoordinates})),(e=>({setMapClickCoordinates:t=>e((0,ee.ZO)(t)),setPopupPath:t=>e((0,ce.v2)(t)),openPopup:()=>e((0,ce.Mw)()),closePopup:()=>e((0,ce.j4)()),setPopupMountedStatus:t=>e((0,ce.O3)(t))})))(Ki);var Gi=n(51661),zi={};function Ui(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Wi(e){for(var t=1;t{vi.Am.update(e,Wi({render:t},a,{type:vi.Am.TYPE[n]}))},qi=e=>{vi.Am.dismiss(e)};class $i extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"toastID",null),(0,I.Z)(this,"shouldCreateNewToast",!1),(0,I.Z)(this,"renderRefreshLink",(()=>Ue.createElement("button",{className:"NotificationObject-refresh",onClick:this.dispatchRefreshAction},B.Z.notificationObjectRetryMessage))),(0,I.Z)(this,"renderAbortLink",(()=>Ue.createElement("button",{className:"NotificationObject-abort",onClick:this.dispatchAbortAction},B.Z.notificationObjectCancelMessage))),(0,I.Z)(this,"componentDidMount",(()=>{this.create(this.props.notificationObject)})),(0,I.Z)(this,"dispatchRefreshAction",(()=>{qi(this.toastID),this.shouldCreateNewToast=!0,this.props.setRequestedAction(this.props.notificationKey,"refresh")})),(0,I.Z)(this,"dispatchAbortAction",(()=>{this.props.setRequestedAction(this.props.notificationKey,"abort")})),(0,I.Z)(this,"loading",(e=>{Yi(this.toastID,Ue.createElement("div",null,e.dataLoadingNotificationMessage,this.renderAbortLink()),e.dataLoadingNotificationType)})),(0,I.Z)(this,"create",(e=>{var t,n,a;this.toastID=(t=Ue.createElement("div",null,e.dataLoadingNotificationMessage,this.renderAbortLink()),n=e.dataLoadingNotificationType,a={autoClose:!1,onOpen:this.handleToastOpened},(0,vi.Am)(t,Wi({},a,{type:vi.Am.TYPE[n],position:vi.Am.POSITION.TOP_CENTER,closeButton:!0,closeOnClick:!1}))),this.shouldCreateNewToast=!1})),(0,I.Z)(this,"error",(e=>{Yi(this.toastID,Ue.createElement("div",null,e.dataLoadingNotificationMessage,this.renderRefreshLink()),e.dataLoadingNotificationType,{closeButton:!0}),this.shouldCreateNewToast=!0})),(0,I.Z)(this,"completed",(e=>{const t={autoClose:L.Y9};Yi(this.toastID,e.dataLoadingNotificationMessage,e.dataLoadingNotificationType,t),this.shouldCreateNewToast=!0})),(0,I.Z)(this,"handleToastOpened",(()=>{const{notificationObject:e}=this.props;this.renderToastAccordingToLoadingStatus(e.dataLoadingStatus,this.props.notificationObject)})),(0,I.Z)(this,"renderToastAccordingToLoadingStatus",((e,t)=>{switch(e){case"loading":this.shouldCreateNewToast?this.create(t):this.loading(t);break;case"completed":this.completed(t);break;case"error":this.error(t);break;default:console.warn(`NotificationObject: Unknown loading status: ${e}`)}})),(0,I.Z)(this,"componentDidUpdate",(()=>{const{notificationObject:e}=this.props;this.renderToastAccordingToLoadingStatus(e.dataLoadingStatus,e)})),(0,I.Z)(this,"componentWillUnmount",(()=>{qi(this.toastID)}))}render(){return null}}$i.propTypes={notificationObject:$e().object.isRequired};const Xi=(0,Ye.$j)((e=>({languageCode:e.components.languageselector.languageCode})),(e=>({setRequestedAction:(t,n)=>e((0,me.xd)(t,n))})))($i);class Ji extends Ue.PureComponent{constructor(...e){super(...e),(0,I.Z)(this,"renderNotifications",(()=>Object.keys(this.props.dataLoadingStatuses).map((e=>{const t=this.props.dataLoadingStatuses[e];return Ue.createElement(Xi,{key:e,notificationKey:e,notificationObject:t})}))))}render(){return this.renderNotifications()}}Ji.propTypes={dataLoadingStatuses:$e().object.isRequired};const Qi=(0,Ye.$j)((e=>({dataLoadingStatuses:e.components.notificationcontainer.dataLoadingStatuses})))(Ji);var eo=n(19731),to={};to.styleTagTransform=A(),to.setAttributes=u(),to.insert=l().bind(null,"head"),to.domAPI=s(),to.insertStyleElement=p(),i()(eo.Z,to),eo.Z&&eo.Z.locals&&eo.Z.locals;class no extends Ue.PureComponent{render(){return Ue.createElement("div",{className:"App"},Ue.createElement(dn,null),Ue.createElement(An,null,Ue.createElement(Wn,null),Ue.createElement(Ni,null),Ue.createElement(gi,null),Ue.createElement(fi,null),Ue.createElement(Qi,null),Ue.createElement(Hi,null)))}}const ao=no;class io extends Ue.PureComponent{constructor(e){super(e),B.Z.setLanguage(this.props.store.getState().components.languageselector.languageCode)}render(){return Ue.createElement(Ye.zt,{store:this.props.store},Ue.createElement(ao,null))}}io.propTypes={store:$e().object};const oo=io;(async function(){let e={};const t=await async function(){const e=await(async()=>{const e=await y().getItem("reduxState");if(!e)return null;const t=JSON.parse(e);return x(t),await y().removeItem("reduxState"),t})();return e||(T.restoreSelectedBookMarkState()||null)}();t&&(e=t);let a=[];{const e=n(94500);a=[...a,e.createLogger()]}return(0,k.MT)((0,v.H4)(ze),e,(0,k.md)(...a))})().then((e=>function(e,t){We.render(Ue.createElement(oo,{store:e}),document.getElementById("app"))}(e))),window&&window.navigator&&window.navigator.userAgent&&/Edge\/1[0-4]\./.test(window.navigator.userAgent)&&(console.log("Applying function.call fix for Microsoft Edge <= 14"),Function.prototype.call=function(e){return this.apply(e,Array.prototype.slice.apply(arguments,[1]))})},61201:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(818),i=n(50129);class o extends a.Z{constructor(e,t,n){super(e,t,n),this.clusterSource=new i.Z({source:this.vectorSource,distance:45}),this.vectorLayer.setSource(this.clusterSource)}}const s=o},818:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(96156),i=n(15821),o=n(3871),s=n(27258);function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}const l=class{constructor(e,t,n){if((0,a.Z)(this,"addFeatures",(e=>{this.vectorSource.addFeatures(e)})),(0,a.Z)(this,"replaceFeaturesWithNewFeatures",(e=>{const t=this.geoJSONFormat.readFeatures(e);this.vectorSource.clear(!0),this.addFeatures(t)})),(0,a.Z)(this,"removeAllFeatures",(()=>{this.vectorSource.clear(!0)})),(0,a.Z)(this,"cleanUp",(()=>{this.vectorSource.clear(!0),this.map.removeLayer(this.vectorLayer),this.vectorLayer=null,this.vectorSource=null})),this.map=e,this.vectorSource=new o.Z,this.vectorLayer=new s.Z(function(e){for(var t=1;t{n.d(t,{Z:()=>r});var a=n(96156),i=n(62914),o=n(13823);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}const r=class{constructor(e,t,n,r,l,c,u,d){(0,a.Z)(this,"cleanUp",(()=>{this.map.removeLayer(this.layer),this.layer=null})),this.map=e,this.layer=new i.Z(function(e){for(var t=1;t{n.d(t,{P6:()=>s,rw:()=>i,tU:()=>a,uY:()=>o});const a=(e,t,n,a,i,o)=>{const s=new XMLHttpRequest;return{promise:new Promise((function(r,l){n&&n.timeout&&(s.timeout=n.timeout),s.open(e,t),n&&n.headers&&Object.keys(n.headers).forEach((function(e){s.setRequestHeader(e,n.headers[e])})),s.onload=function(){if(s.status>=200&&s.status<300)return r(s.response);{const e=new Error(s.statusText||"Unsuccessful HTTP response");return e.req=s,l(e)}},s.onerror=function(){return l(new Error("Network Error"))},s.ontimeout=function(){var e=new Error("Timeout");return e.status="STATUS_TIMEOUT",l(e)},i&&(s.onprogress=i),o&&(s.onabort=()=>{s.cancelledByUser&&o()});try{a?s.send(a):s.send()}catch(e){return l(e)}})),request:s}},i=(e,t)=>[...t,e],o=(e,t)=>0!==t.length&&t.indexOf(e)===t.length-1,s=e=>{const t=e.loaded,n=parseInt(e.target.getResponseHeader("x-decompressed-content-length"),10);return Math.round(t/n*100)}},67674:(e,t,n)=>{n.d(t,{H:()=>a});const a="#033bfc"},96757:(e,t,n)=>{n.d(t,{$c:()=>s,EL:()=>A,EY:()=>m,FK:()=>o,Ss:()=>c,Xn:()=>p,Zw:()=>u,jQ:()=>r,pZ:()=>i,wn:()=>l});var a=n(74444);const i=(e,t)=>parseInt(e,10)-parseInt(t,10),o=(e,t)=>parseInt(e.split("-")[0].trim(),10)-parseInt(t.split("-")[0].trim(),10),s=()=>{if("Microsoft Internet Explorer"===navigator.appName)return!0;if("Netscape"===navigator.appName){if(navigator.appVersion.indexOf("Trident")>-1)return!0;if(navigator.appVersion.indexOf("Edge")>-1)return!0}return!1},r=(e,t,n)=>{const a=(e=>{const t=e.split("-");return t.length<2?{rangeStart:t[0].trim()}:{rangeStart:t[0].trim(),rangeEnd:t[1].trim()}})(e);let i=l(a.rangeStart,t,n);return a.rangeEnd&&(i=i.concat(" - ",l(a.rangeEnd,t,n))),i},l=(e,t,n)=>Number(e).toLocaleString(a.Z.getLanguage(),{minimumFractionDigits:t,maximumFractionDigits:n}),c=(e,t)=>e.map((e=>e[t])),u=e=>JSON.parse(JSON.stringify(e)),d=(e,t)=>t?e.length:e.filter((e=>e.id)).length,p=(e,t)=>{let n=0;const a=Object.values(e);for(const e of a)n+=d(e,t);return n},m=(e,t,n)=>{const a=p(t),i=((e,t,n)=>{const a=[];for(const e in t)d(t[e],n)>0&&a.push(e);return 1===a.length&&a[0]===e})(e,t,n);if(1===a&&i){const n=t[e][0];return!n.properties.features||1===n.properties.features.length}return!1},A=e=>{const t=p(e),n=Object.keys(e);if(1===t&&1===n.length){const t=e[n[0]][0];return!t.properties.features||1===t.properties.features.length}return!1}},10700:(e,t,n)=>{n.d(t,{j:()=>o});var a=n(67294),i=n(56462);const o=e=>{const t=i.UZ[e];return t?(e=>{const t=`fas fa-${e}`;return a.createElement("span",{className:t})})(t.iconName):null}},43605:(e,t,n)=>{n.d(t,{m:()=>r,y:()=>s});var a=n(74444),i=n(96757),o=n(65427);const s=e=>Object.keys(e).sort(i.pZ).map((t=>({value:a.Z.formatString(a.Z.accessibilityLegendCatchmentInfo,(0,o.IS)(t)),color:e[t]}))),r=(e,t,n)=>Object.keys(e).sort(i.FK).map((o=>({value:e[o].labelLocalizationKey?a.Z.formatString(a.Z[e[o].labelLocalizationKey],e[o].labelValue):(0,i.jQ)(o,t,n),color:e[o].color?e[o].color:e[o]})))},35141:(e,t,n)=>{n.d(t,{C_:()=>u,Ep:()=>r,LW:()=>p,XC:()=>d,fI:()=>c,qz:()=>m,xn:()=>l});var a=n(15565),i=n(20767),o=n(98185),s=n(56834);const r=(e,t)=>new Promise(((n,a)=>{const i=e.getPixelFromCoordinate(t);if(null!==i)return n(i);{const a=e.once("postrender",(()=>{const i=e.getPixelFromCoordinate(t);return(0,s.B)(a),n(i)}))}})),l=(e,t)=>e.getLayers().getArray().find((e=>e.get("name")===t)),c=(e,t,n)=>{const a=e.getLayers().getArray().find((e=>e.get("name")===t));return a&&n?a.getSource().getFeatureById(n):null},u=(e,t)=>e&&t?e.getSource().getFeatureById(t):null,d=(e,t,n)=>{const a=e.getLayers().getArray().find((e=>e.get("name")===t));return p(a,n)},p=(e,t)=>{if(!e||!t)return null;const n=e.getSource().getFeatures();for(const e of n){const n=e.get("features");for(const a of n)if(t===a.getId())return e}},m=e=>new a.Z({textAlign:"center",text:e,font:"500 14px Arial",fill:new o.Z({color:"black"}),stroke:new i.Z({color:"rgba(255, 255, 255, 1)",width:2})})},65427:(e,t,n)=>{n.d(t,{IS:()=>s,K4:()=>l,MY:()=>o,Yb:()=>r});var a=n(30381),i=n.n(a);const o=e=>i()(e),s=e=>{const t=e/60>>0,n=e%60;return n>0?`${t} min ${n} s`:`${t} min`},r=(e,t,n)=>{const a=t.clone().subtract(n,"months",!0);return{initialFrom:e>a?e:a,initialTo:t}},l=(e,t)=>e.year()===t.year()&&e.month()===t.month()},73542:(e,t,n)=>{n.d(t,{$k:()=>g,DI:()=>m,_w:()=>A,j$:()=>r,o8:()=>h,oI:()=>p,s8:()=>d});var a=n(96156),i=n(74444);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t{for(const n of e)l(n,t);return e},l=(e,t)=>{if(e&&!1!==t(e)&&e.children)for(const n of e.children)l(n,t)},c=(e,t,n,a)=>{const i=e.label.toLowerCase().includes(t);let o="";i?(a.matchingNodesCount+=1,o="active"):o="inactive",n&&(o+=" has-active-parent");const r=s({},e,{className:o,expanded:i});if((n||i)&&(r.showCheckbox=!0),e.children){r.children=[];for(const o of e.children){const e=c(o,t,n||i,a);r.children.push(e)}}if(!i&&r.children&&0!==r.children.length){const e=r.children.some((e=>!0===e.expanded));r.expanded=e,e&&(r.className+=" has-active-children"),e&&!n&&(r.showCheckbox=!1)}return r},u=e=>{const t=s({},e);if(delete t.className,delete t.expanded,delete t.showCheckbox,e.children){t.children=[];for(const n of e.children){const e=u(n);t.children.push(e)}}return t},d=(e,t)=>{let n={filteredTree:void 0,matchingNodesCount:void 0};return null==t||0===t.length?n.filteredTree=(e=>{const t=[];for(const n of e)t.push(u(n));return t})(e):n=((e,t)=>{const n={filteredTree:[],matchingNodesCount:0};t=t.toLowerCase();for(const a of e){const e=c(a,t,!1,n);n.filteredTree.push(e)}return n})(e,t),n},p=e=>{const t=[];return r(e,(e=>{!0===e.expanded&&t.push(e.value)})),t},m=e=>{const t=[];return r(e,(e=>{e.children||!0!==e.expanded||t.push(e.value)})),t},A=e=>{const t=[];return r(e,(e=>{e.children||t.push(e.value)})),t},h=e=>{if(e.labelLocalizationKey){const t=i.Z.getString(e.labelLocalizationKey,i.Z.getLanguage());e.label=t||e.label,e.label||(e.label=i.Z.errorCouldNotLoadTranslationWithLocalizationKey)}},g=(e,t,n)=>{let a=null;return r(e,(e=>{if(e[t]===n)return a=e,!1})),a}},19731:(e,t,n)=>{n.d(t,{Z:()=>r});var a=n(87537),i=n.n(a),o=n(23645),s=n.n(o)()(i());s.push([e.id,".App {\n display: flex;\n height: 100vh;\n flex-direction: column;\n}\n\n/* Easier to read